Diffie-Hellman密钥交换协议

我们加密、解密信息都需要利用到密钥

那么密钥信息是如何安全配送的呢?难道我们一定要俩人线下秘密会面吗?

**Diffie-Hellman密钥交换协议(Diffie-Hellman Key Exchange,DHKE)**就是一种可以通过互联网安全配送密钥的方式

它的工作方式是这样的

假设Alice和Bob之间想要确定一个密钥k

  1. Alice和Bob先商量好一个质数p和某个有限域的生成元g,通常会选取安全质数p=2⋅q+1(q是另一个大质数)。这能保护迪菲 - 赫尔曼协议免受波赫里格 - 赫尔曼算法的攻击。

  2. Alice生成一个秘密数字a,计算A = g^a mod p

  3. Alice把A发给Bob

  4. Bob生成一个秘密数字b,计算B = g^b mod p

  5. Bob把B发给Alice

  6. Alice计算S1 = B^a mod p

    Bob计算S2 = A^b mod p

经过这样的过程,我们由幂模运算的运算性质很容易推导出S1=S2

所以就把S1和S2定为密钥k

在上面的过程中,我们不难发现除了两人的秘密数字a和b,各个值都是直接在互联网上传递的。

同时根据p、g、A、B这些值极难获取a、b、S1、S2的值

这样就实现了密钥安全交换