首页 > 代码库 > 网络密钥交换协议——Diffie-Hellman

网络密钥交换协议——Diffie-Hellman

Diffie-Hellman算法是一种交换密钥的算法。它是目前比较常用的密钥交换算法。这种算法的好处是能让两台计算机在不安全的网络环境中完成密钥的交换。


以下是整个算法的过程。其中红色字体表示私密数据,蓝色字体表示公开数据。

  1. 甲和乙事先协商使用质数p=7853和基数g=5224作为参数

  2. 甲随机生成了一个整数a=3594,然后将A=(g^a) % p发送给乙

    A = (g^a) % p = 6621

  3. 乙随机生成了一个整数b=7098,然后将B=(g^b) % p发送给甲

    B = (g^b) % p = 2055

  4. 甲计算s=(B^a) % p作为密钥

    s=(B^a) % p = 1251

  5. 乙计算s=(A^b) % p作为密钥

    s=(A^b) % p = 1251


最后两个人计算的密钥是相同的,可以用于对称加密算法。