DH 算法原理
一、背景
DH算法全称为Diffie-Hellman算法。这种方法可以在不安全的网络环境中协商密钥。
二、原理
步骤1)发送方和接收方设置相同的大数数n和g,这两个数不是保密的, 他们可以通过非安全通道来协商这两个素数。
步骤2)发送方选择一个大随机整数x,计算 X = g^x mod n,发送X给接收者;
步骤3)接收方选择一个大随机整数y,计算 Y = g^y mod n,发送Y给发送方;
确定最终密钥
发送方密钥为k1 = Y^x mod n,接收方密钥为k2=X^y mod n。
其他人可以知道n、 g、 X和Y, 但是他们不能计算出密钥,除非他们能恢复x和y。
三、缺点及解决方法
缺点:不能抵御中间人攻击。
解决方法:使用认证的方法,确保X 、Y可信。