Diffie-Hellman密钥交换

Diffie-Hellman密钥交换(DHKE)是由Whitfield Diffie和Martin Hellman在1976年提出的。密钥交换方案提供了实际中密钥分配问题的解决方案,即允许双方通过不安全的信道进行交流获得一个共同密钥。许多公开和商业密码协议中都实现了这种基本的密钥协议技术,比如安全外壳(SSH),传输层安全(TLS)
DHKE的基本思想为\(Z^*_p\)内的指数运算(p是素数)是单向函数,并且该指数运算是可交换的:$$k = (ax)y = (ay)x\ mod\ p$$

Diffie-Hellman握手协议

  1. 选择一个大素数p
  2. 选择一个整数 \(\alpha \in \{2, 3, \cdots, p - 2\}\)
  3. 公开p和\(\alpha\)

p和\(\alpha\)两个值有时也称为域参数。如果Alice和Bob都知道握手阶段计算得到的公开参数p和\(\alpha\),则他们就可以使用下面的密钥交换协议生成以一个联合私钥k:

Diffie-Hellman密钥交换

  1. Alice选择则一个\(\alpha = k_{pr, A} \in \{2, \cdots, p - 2\}\)
  2. Bob选择一个\(b = k_{pr, B} \in \{2, \cdots, p - 2\}\)
  3. Alice计算\(A = k_{pub, A} = \alpha^a\ mod\ p\),将\(k_{pub, A}\)传递给Bob
  4. Bob计算\(B = k_{pub, B} = \alpha^b\ mod\ p\),将\(k_{pub, B}\)传递给Alice
  5. Alice计算\(K_{AB} = k^{k_{pr, A}}_{k_{pub, B}} \equiv B^a\ mod\ p\)
  6. Bob计算\(K_{AB} = k^{k_{pr, B}}_{k_{pub, A}} \equiv A^b\ mod\ p\)
posted @ 2017-03-17 15:29  Ant°  阅读(723)  评论(0编辑  收藏  举报