🗝️Diffie–Hellman 密钥交换

📑协议:

(1) Alice 选取一个大的随机整数x并且发送给Bob。 $A =g^x mod \ \ p$ (2) Bob 选取一个大的随机整数y并且发送给Alice $B =g^y mod \ \ p$。 (3) Alice计算 $k= B^x mod\ \ p$。 (4) Bob计算 $k'= A^y mod\ \ p$。 k’和k都等于 $g^{xy}$ mod n。即使线路上的窃听者也不可能计算出这个值;他们只知道p、 g、A和B。除非他们计算离散对数,恢复x、y,否则无济于事。因此k是Alice和Bob独立 计算的秘密密钥。

<aside> 🔑 这是基于求解的离散对数难题的加密,必须使用非常大的A, B 以及*p,*如果 p 是一个至少 300 位的质数,并且A和B至少有100位长, 那么即使使用全人类所有的计算资源和当今最好的算法也不可能从g, *p,*A,B中计算出 x,y。g则不需要很大, 并且在一般的实践中通常是2或者5.

</aside>

安全性

迪菲-赫尔曼密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人攻击。一个中间人在信道的中央进行两次迪菲-赫尔曼密钥交换,一次和Alice另一次和Bob,就能够成功的向Alice假装自己是Bob,反之亦然。而攻击者可以解密(读取和存储)任何一个人的信息并重新加密信息,然后传递给另一个人。因此通常都需要一个能够验证通讯双方身份的机制来防止这类攻击。

🦈中间人攻击

(1)Alice发了一份加了密的消息M: E(K2, M)。 (2) Darth截获了该密消息,解密,恢复出M。 (3)Darth将E(K, M)或E(K,, M')发给Bob,其中M'是任意的消息。第一种情况, Darth 只 是简单地偷听通信,而不是改变它。第二种情况,Darth想修改给Bob的消息。

Untitled

❗❗模数p

离散对数困难性问题(DLP)

Untitled

离散对数难题是指:

当已知一个大质数 p 和它的一个原根 a ,如果给定一个b ,要计算 � 的值是相当困难的。

p−1为光滑数