离散对数简介

Diffie-Hellman算法的有效性是依赖于计算离散对数的困难性。

  • 对于素数p,若a是其本原根,则各不相同,且由某个置换中的从1到p-1的整数组成。

  • 对于任意整数b和素数p的本原根a,我们可以找到唯一的指数,使得,指数i称为b的以a为底的模p的离散对数,记为

算法简介

Diffie-Hellman算法的目的是让两个用户安全的交换密钥。

Alice和Bob共享一个素数q以及整数a(a<q),其中a是q的本原根

Alice选择一个随机整数(<q)作为私钥,并计算公钥

Bob选择一个随机整数(<q)作为私钥,并计算公钥

Alice和Bob分别收到对方的公钥

Alice计算共享密钥

Bob计算共享密钥

Alice和Bob计算的共享密钥值是相同的,至此,双方完成了密钥值交换。

证明:

中间人攻击

Diffie-Hellman算法不能抵抗中间人攻击。

假设Alice和Bob希望交换密钥,而Darth是敌手。则攻击过程如下:

  1. Darth首先生成两个随机的私钥,并计算相应的公钥

  1. Alice将传给Bob

  1. Darth截获,将传给Bob,并计算

  1. Bob收到,计算

  1. Bob将传给Ailce

  1. Darth截获,将传给Alice,同时计算

  1. Alice收到,计算

此时,Alice和Bob认为他们共享一个密钥,但实际上,Bob和Darth共享密钥,Alice和Darth共享密钥

但这种缺陷可用数字签名和公钥证书来克服。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐