Diffie-Hellman密钥交换算法
Diffie-Hellman密钥交换算法的目的是使两个用户能安全交换密钥,以便在后续的通信中用该密钥对消息加密。所以这个算法本身只限于密钥交换。
Diffie-Hellman密钥交换算法的有效性建立在离散对数上,在计算离散对数是困难的才能确保秘密交换。
Diffie-Hellman密钥交换算法如图所示
有素数和本原根,为公开的整数,Alice选择随机整数,Bob选择,分别计算,其中和保密,对算出的和公开。Alice和Bob通过计算,将作为共享的密钥。这样Alice和Bob就完成了密钥的交换。和是私有的,攻击者只能通过,和来攻击,所以只能求离散对数来确定密钥。
如果攻击者要对Bob进行攻击,攻击者就要求离散对数算出,然后算出密钥。
Diffie-Hellman密钥交换算法的安全性建立在下列事实上:
- 计算素数模的幂运算相对容易,计算离散对数却非常困难
- 对大素数,求离散对数被认为是困难的
基于这样的事实,保证了Diffie-Hellman密钥交换算法的保密性。
中间人攻击
上图的协议,不能抵御中间人攻击,中间人攻击的过程如下图所示
通过上述协议,Bob和Alice以为各自共享了密钥,实际上他们都是与Darth共享密钥,所以如果Alice和Bob通过共享密钥加密传输,将会泄露各自的明文
密钥交换不能抵御上述攻击,是因为没有对通信的参与方进行认证。
来源:oschina
链接:https://my.oschina.net/u/4255345/blog/4660339