Diffie-Hellman密钥交换

0x00.前提

  1. 公开一个生成器(generator),如:3 mod 7
  2. 双方各选择一个私有随机数


0x01.示例

  理论 示例
step 1  生成一个A,B双方认可的生成器G() 生成器G模型,n为私有随机数 G(n)=3^n mod 17
step 2 双方各选择一个随机数 a,b a=15,b=13
step 3 双方分别将各自的随机数放入生成器计算密钥c,d G(a)=c G(b)=d G(a)=3^15 mod 17 = 6=c G(b)=3^13 mod 17 = 12=d
step 4 互相交换各自生成的数值 交换后,A拥有15和12,B拥有13和6
step 5 将生成器中的底数和质数用私有数和对方生成数替换 将模型中的底数3替换为对方的密钥,质数为各自私有数 A:12^15 mod 17 =10 B:6^13 mod 17=10

联立step 3和step 5可得:

A:(313 mod 17)15 mod 17 = 313^15 mod 17 B:(315 mod 17)13 mod 17 = 315^13 mod 17

指数交换值不变。

Diffie-Hellman密钥交换
https://blog.async.website/index.php/archives/1359/
本文作者 snowysong@live.com
发布时间 2018-10-18
许可协议 CC BY-NC-SA 4.0
仅有 1 条评论
  1. 评论头像

    […] https://async.website/docs/notes/diffie-hellman密钥交换/ […]

    Diffie-Hellman密钥交换 - 算法网 November 23rd, 2019 at 04:20 pm 回复
发表新评论