知识点整理(十一)——DH秘钥交换协议

知识点整理(十一)——DH秘钥交换协议
逐暗者什么是DH秘钥交换协议
Whitfield Diffie与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm)。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。
单向加密算法
单向加密算法就是利用正向计算非常容易,但反向计算非常难的一些公式进行加密数据。
这种单向算法有很多,常见的例如mod计算、各种摘要算法等等。
例如 11 mod 7 = 4 ,但是只知道4和7的情况下,很难计算出11 。因为18 mod 7 = 4,这样的数据会有很多很多。
DH秘钥交换协议
图解
我们从单向加密算法知道,正向计算非常容易,反向计算非常困难。
现在先简单的理解为2种颜色混合比较简单,但是把混合后的颜色再还原成之前的2种颜色比较困难。
接着用颜色来解释一下DH秘钥交换协议。(虽然叫秘钥交换协议,但实际上秘钥并不在网上传输)
假设Alice和Bob要进行通信,Eve作为监听者,能获取所有网络上通信的信息。Alice要和Bob建立加密通信,就需要一个对称加密的秘钥(性能考虑),而如何传输(协商)这个秘钥呢?
Alice和Bob都先生成自己的随机数(私钥)。分别为红色和蓝色,秘钥不进行传输。
随后Alice生成一个公开的随机数(实际上是加密方式),用绿色表示。
Alice和Bob都把自己的私钥混合到这个公开的随机数上。
把混合后的颜色发送给对方,当然Eve也能获取到这些数据。
最后一步,Alice和Bob再各自把自己的私钥混合上去。这个时候Alice和Bob获得了相同的颜色。
这个新的颜色就是对称加密的秘钥,这个颜色没有在网络上传输,并且Eve监听到的1个绿色和2个混合色(黄色和青色)是无法混合出这个颜色的(因为单向算法,Eve很难把黄色和青色进行分解成正确的红色和蓝色)
数学方式
Alice 和 Bob 生成自己的私钥 13、17 。
Alice 生成算法 已7为底,mod 11 。
Alice 用自己的13进行计算。
$$(7^{13}) mod 11 = 2$$
Bob用自己的17进行计算
$$(7^{17}) mode 11 = 6$$
互相交换数据后,再用公式算一遍。
Alice的
$$(6^{13}) mode 11 = 7$$
Bob的
$$(2^17) mode 11 = 7$$
于是Alice和Bob获得了相同的秘钥7。实际上会采用大数来增加分解难度。
题外话
为什么喜欢用Alice、Bob和Eve?
第一次出现在论文《一种实现数字签名和公钥密码系统的方法》,于1978年2月发表。1978年2月也就成为了这篇答案的主人公Alice和Bob的生日。这篇论文中首次使用了Alice和Bob来描述方案。在论文第2页,第2章的最后一个自然段,有这样一段描述:
在我们的场景中,假定A和B(也称为Alice和Bob)是公钥密码系统中的两个用户。
根据Rivest的回忆,当时之所以使用Alice和Bob,一方面是避免使用枯燥无味的A和B,而这两个名字的英文首字母仍然维持A和B不变;另一方面是因为Alice和Bob分别为女性名字和男性名字,这样在论文后面的部分中就可以使用英语的她(she)和他(he)分别指代Alice和Bob,不至于让读者混淆。
至于究竟为什么要用Alice和Bob,而不用其它名字,有2种说法。一种说法是Rivest可能比较喜欢《爱丽丝梦游仙境》(Alice’s Adventures in Wonderland)这部文学作品。另一种说法是Rivest、Shamir、Adleman对1969年的一部电影《鲍勃&卡罗尔&特德&爱丽丝》(Bob & Carol & Ted & Alice)比较熟悉。
1985年,密码学家Bennett、Brassard、Robert在论文《如何减少敌人的信息》(How to Reduce Your Enemy’s Information)中也使用了Alice和Bob作为主人公。不过,他们在论文中又给出了一个新的人物:Eve。Eve的首字母E实际上表示的是英文Eavesdropper,意为“窃听者”。顾名思义,Eve是一个攻击者,他的能力是窃听Alice和Bob之间的通信内容。1985年的论文《如何减少敌人的信息》中第一次出现了Eve的身影。