非对称加密:两个密钥优于一个密钥(学习笔记一)

非对称加密的引入

在前面关于对称加密的讨论中,我们曾提到:Alice和Bob在安全传递信件前需要见面,以确定他们将要使用的对称加密密钥。这是一个合理的要求,许多协议实际上都有这样的前提要求。然而,这样的要求在有许多参与者的协议中很快变得不那么实用:在安全连接到谷歌、Facebook、亚马逊和其他数十亿网站之前,网络浏览器是否也要满足这样的要求(即在连接前,浏览器之间要相互确定使用的对称加密密钥)?
这也称为密钥分发问题,在相当长的一段时间内该问题都未被解决,直到20世纪70年代末密码学家发现了另一类称为公钥密码(Public Key Cryptography)的算法,密钥分发问题才得以解决。

密钥分发就是要把正确的密钥安全地送达正确的地方。

非对称加密算法的分类

密钥交换

DH密钥交换算法是密码学家提出的第一个非对称加密算法,该算法以其提出者(Diffie和Hellman)的名字的首字母命名。DH密钥交换算法的主要目的是为通信双方生成一个共享的秘密。这个双方共享的秘密可以用于不同的目的,例如作为对称加密算法的密钥。
工作原理
与大多数密码算法一样,在密钥交换算法执行前,参与者也必须获得一组公共参数。在类比说明中,我们用正方形■表示Alice和Bob协商好的公共参数(公共形状)。接下来,他们各自找到一个秘密地点,并随机选择一个形状。假设Alice选择的形状是三角形▲,而Bob选择的是星形★,同时他们会不惜一切代价地保密自己所选的形状。这些随机选择的形状就是他们各自的私钥(Private Key)。
在这里插入图片描述
当Alice和Bob选择完私钥后,他们就各自将他们随机选择的形状与他们起初协商的公共形状(正方形)结合起来。这些组合会产生唯一的新形状,每个新形状表示一个公钥(Public Key)。公钥属于公开信息,因此Alice和Bob可以相互交换他们的公钥。
在这里插入图片描述
DH密钥交换算法的最后一步相当简单,即Alice和Bob分别将对方的公钥和自己的私钥结合在一起。最终,双方得到完全相同的结果(形状)。
在这里插入图片描述

公钥加密

在DH密钥交换算法提出后不久,密码学家Ron Rivest、Adi Shamir和Leonard Adleman又提出了一个新的密码算法,该算法也以他们的名字命名,称为RSA算法。RSA算法包含两类不同的密码学原语:公钥加密(或非对称加密)算法和(数字)签名算法。
工作原理
现在,我们用另外一个简单的类比示例来解释非对称加密的使用方法。我们再次从我们的老朋友Alice谈起,假设她持有私钥及其对应的公钥。我们把她的公钥想象成一个打开的盒子,它向公众敞开,任何人均可使用它。
在这里插入图片描述
任何人都可以使用Alice的公钥加密发向她的消息。在类比说明中,我们将加密消息想象成把消息放到打开的盒子里并关上它。一旦盒子关上,除了Alice,任何人都没法打开放有消息的盒子。这个盒子有效地保证了消息的机密性,避免第三方获得消息本身。Alice收到关闭的盒子(加密的消息)后,她可以用只有自己知道的私钥打开盒子(解密消息),获得消息。

在这里插入图片描述

数字签名

我们大家都熟悉签名这个概念。当一个人在文档上签名就表示该文档起源于他或者经由他同意。签名对接受者来说是文档来自正确实体的证据。例如,当客户签了一张支票,银行就需要确信支票是客户签署的,而不是其他人。换言之,文档上的签名是身份验证的标记,验证通过文档就可信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值