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,ba=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

指数交换值不变。

http://chestnut-phoenix.xyz/docs/notes/diffie-hellman密钥交换/

点赞