Diffie-Hellman算法是一种交换密钥的算法。
它是眼下比較经常使用的密钥交换算法。
这样的算法的优点是能让两台计算机在不安全的网络环境中完毕密钥的交换。
下面是整个算法的过程。当中红色字体表示私密数据,蓝色字体表示公开数据。
甲和乙事先协商使用质数p=和基数g=作为參数
-
甲随机生成了一个整数a=,然后将A=(g^a) % p发送给乙
A = (g^a) % p =
-
乙随机生成了一个整数b=。然后将B=(g^b) % p发送给甲
B = (g^b) % p =
-
甲计算s=(B^a) % p作为密钥
s=(B^a) % p =
-
乙计算s=(A^b) % p作为密钥
s=(A^b) % p =
最后两个人计算的密钥是同样的。能够用于对称加密算法。