RSA算法
DH密钥协商算法
Alice的私钥a,Bob的私钥b;
Alice和Bob约定使用一个模 p = 23和 g = 7
Alice选择一个保密的整数
a
=
4
a = 4
a=4作为私钥,计算出公钥
A
=
g
a
m
o
d
p
A = g^a mod p
A=gamodp,将公钥A发送给Bob;
A
=
7
4
m
o
d
23
=
9
A = 7^4 mod 23 = 9
A=74mod23=9
Bob选在一个保密的整数
b
=
5
b = 5
b=5,计算出公钥
B
=
g
b
m
o
d
p
B = g^b mod p
B=gbmodp,将公钥B发送给Alice;
B
=
7
5
m
o
d
23
=
17
B = 7^5 mod 23 = 17
B=75mod23=17
Alice 计算出共享密钥
s
=
B
a
m
o
d
p
s = B^a mod p
s=Bamodp
s
=
1
7
4
m
o
d
23
=
8
s = 17^4 mod 23 = 8
s=174mod23=8
Bob 计算共享密钥
s
=
A
b
m
o
d
p
s = A^b mod p
s=Abmodp
s
=
9
5
m
o
d
23
=
8
s = 9^5 mod 23 = 8
s=95mod23=8
Alice和Bob现在就共享一个密钥
(
s
=
8
)
(s = 8)
(s=8)
可以计算得出 g a ∗ b m o d p = 8 g^{a*b}modp = 8 ga∗bmodp=8,但是上述协议通过传递中间结果来相互隐藏自己的私钥,而结果是一致的。