理解公钥与私钥

一、公钥与私钥原理
  1. 张三有两把钥匙,一把是公钥,另一把是私钥
    在这里插入图片描述

  2. 张三把公钥送给他的朋友们:李四、王五、赵六,每人一把

在这里插入图片描述

  1. 赵六要给张三写一封保密的信。他写完后用张三的公钥加密,就可以达到保密的效果。
    在这里插入图片描述

  2. 张三收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要张三的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
    在这里插入图片描述

  3. 张三给赵六回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。
    在这里插入图片描述

  4. 然后,张三使用私钥,对这个摘要加密,生成"数字签名"(signature)。

在这里插入图片描述

  1. 张三将这个签名,附在信件下面,一起发给赵六。

在这里插入图片描述
8) 赵六收信后,取下数字签名,用张三的公钥解密,得到信件的摘要。由此证明,这封信确实是张三发出的。

在这里插入图片描述
9) 赵六再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

在这里插入图片描述
10) 复杂的情况出现了。王五想欺骗赵六,他偷偷使用了赵六的电脑,用自己的公钥换走了张三的公钥。此时,赵六实际拥有的是王五的公钥,但是还以为这是张三的公钥。因此,王五就可以冒充张三,用自己的私钥做成"数字签名",写信给赵六,让赵六用假的张三公钥进行解密。
在这里插入图片描述

  1. 后来,赵六感觉不对劲,发现自己无法确定公钥是否真的属于张三。他想到了一个办法,要求张三去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对张三的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

在这里插入图片描述

  1. 张三拿到数字证书以后,就可以放心了。以后再给赵六写信,只要在签名的同时,再附上数字证书就行了。

在这里插入图片描述

  1. 赵六收信后,用CA的公钥解开数字证书,就可以拿到张三真实的公钥了,然后就能证明"数字签名"是否真的是张三签的。
    在这里插入图片描述
二、HTTPS详解

HTTP协议的网站容易被篡改和劫持,如一些不良的运营商会通过代理服务器在你的页面中植入广告等。
因此很多网站选择使用HTTPS协议。HTTPS协议通过TLS层和证书机制提供了内容加密,身份认证,数据完整性三大功能。

  1. 下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。

在这里插入图片描述

  1. 首先,客户端向服务器发出加密请求

在这里插入图片描述

  1. 服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端
    在这里插入图片描述
  1. 客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内

在这里插入图片描述

  1. 如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告
    在这里插入图片描述
  2. 如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告
    在这里插入图片描述

原文网址:What is a Digital Signature?

转载:公钥与私钥,HTTPS详解_https公钥-CSDN博客

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 公钥可搜索加密是一种保护隐私的加密技术,可以在不暴露明文的情况下,对加密数据进行搜索和匹配。实现公钥可搜索加密的代码需要使用一些加密算法和数据结构,如RSA加密算法、Bloom Filter等。具体实现方法可以参考相关的论文和开源代码。 ### 回答2: 公钥可搜索加密(Public Key Searchable Encryption)是一种安全的加密方案,它可以在保证数据安全的同时,允许用户在加密数据中进行搜索操作。 实现公钥可搜索加密的代码需要考虑以下几个方面。 首先,需要使用公钥加密算法,如RSA或椭圆曲线加密算法,生成公钥私钥对。公钥用于加密搜索关键字,私钥用于解密搜索结果。 其次,需要考虑如何将搜索关键字加密后存储在数据库中。可以使用加密哈希函数对搜索关键字进行加密,并将其与其他数据一起存储。加密哈希函数将关键字映射为固定长度的密文,保证了数据的安全性。 然后,需要实现一个搜索功能,使用户可以输入搜索关键字,并根据关键字对加密数据进行搜索。在搜索功能中,用户输入的搜索关键字需要先使用公钥加密算法加密,然后与数据库中存储的加密关键字进行匹配。匹配成功后,使用私钥解密搜索结果,返回解密后的数据。 最后,需要考虑数据的访问控制。只有拥有私钥的用户才能解密搜索结果,其他人无法获取明文数据。因此,代码中需要实现访问控制机制,确保数据的安全性。 总结来说,公钥可搜索加密的实现代码主要包括公钥加密算法的生成、搜索关键字的加密和存储、搜索功能的实现、搜索结果的解密以及数据的访问控制。这些代码的实现可以保证数据的安全性,并允许用户在加密数据中进行搜索操作。 ### 回答3: 公钥可搜索加密(Public Key Encryption with Keyword Search, PEKS)是一种能够实现关键字搜索的加密算法。在传统的公钥加密算法中,加密和解密是基于公钥私钥的,只能通过私钥来进行解密操作。但是,当我们需要在大量加密数据中搜索包含特定关键字的文件时,传统的公钥加密算法就显得不太适用了。 公钥可搜索加密算法通过引入一个陷门(trapdoor)的概念,能够实现在加密状态下进行关键字搜索。陷门是由用户的私钥生成的,用于加密指定的关键字。通过陷门,用户可以在不暴露私钥的情况下,在加密的数据集合中查询包含特定关键字的文件。 实现公钥可搜索加密的代码通常由以下几个步骤组成: 1. 密钥生成:生成公钥私钥对,公钥用于加密,私钥用于生成陷门。 2. 数据加密:将需要进行搜索的数据进行加密,并存储到云服务器或其他数据存储设备中。 3. 陷门生成:用户通过私钥生成陷门,将需要搜索的关键字加密成陷门的形式。 4. 关键字搜索:用户将生成的陷门发送到云服务器上,云服务器根据陷门与加密数据进行匹配,找出含有关键字的加密文件,并将其返回给用户。 需要注意的是,公钥可搜索加密算法并不直接泄露私钥,因此仍然能够保证用户的数据安全性。同时,为了提高搜索效率,通常会引入一些优化算法,例如倒排索引等。 公钥可搜索加密代码的实现需要理解公钥加密算法的基本原理,并结合关键字搜索的需求进行具体设计。近年来,该算法已经被广泛应用于云计算和数据隐私保护等领域,为数据安全和高效搜索提供了解决方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值