【密码学原理】Diffie-Hellman密钥交换算法与中间人攻击

泪湿孤枕 提交于 2020-10-06 08:58:13

Diffie-Hellman密钥交换算法

Diffie-Hellman密钥交换算法的目的是使两个用户能安全交换密钥,以便在后续的通信中用该密钥对消息加密。所以这个算法本身只限于密钥交换。

Diffie-Hellman密钥交换算法的有效性建立在离散对数上,在计算离散对数是困难的才能确保秘密交换。

Diffie-Hellman密钥交换算法如图所示

有素数q和本原根\alpha,为公开的整数,Alice选择随机整数X_A,Bob选择X_B,分别计算,其中X_AX_B保密,对算出的Y_AY_B公开。Alice和Bob通过计算K,将K作为共享的密钥。这样Alice和Bob就完成了密钥的交换。X_AX_B是私有的,攻击者只能通过q,\alpha,Y_AY_B来攻击,所以只能求离散对数来确定密钥。

如果攻击者要对Bob进行攻击,攻击者就要求离散对数算出X_B=dlog_{\alpha ,q}(Y_B),然后算出密钥K

Diffie-Hellman密钥交换算法的安全性建立在下列事实上:

  • 计算素数模的幂运算相对容易,计算离散对数却非常困难
  • 对大素数,求离散对数被认为是困难的

基于这样的事实,保证了Diffie-Hellman密钥交换算法的保密性。

中间人攻击

上图的协议,不能抵御中间人攻击,中间人攻击的过程如下图所示

 

通过上述协议,Bob和Alice以为各自共享了密钥,实际上他们都是与Darth共享密钥,所以如果Alice和Bob通过共享密钥加密传输,将会泄露各自的明文

密钥交换不能抵御上述攻击,是因为没有对通信的参与方进行认证。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!