下面用数字来尝试一下DH的密钥交换。
1 Alice向Bob发送两个质数P和G
假设我们选择13作为P,则:
P=13
然后我们选择2作为G,因为2是13的一个生成元。
G=2
2 Alice生成一个随机数A
A可以是1~P-2范围内的任意整数,在这里选择9。A是只有Alice知道的秘密数字。
A=9
3 Bob生成一个随机数B
B可以是1~P-2范围内的任意整数,在这里选择7。B是只有Bob知道的秘密数字。
B=7
4 Alice将G^A mod P这个数发给Bob
G^A mod P = 2^9 mod 13 = 5 (Alice发给Bob的数)
5 Bob将G^B mod P这个数发给Alice
G^B mod P =2^7 mod 13 = 11 (Bob发给Alice的数)
6 Alice用Bob发过来的数11计算A次方并求mod P
7 Bob用Alice发过来的数5计算B次方并求mod P