前言
Diffie-Hellman:一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成部分。
一、DH密钥交换的实现
解:
5
1
5^1
51 mod 157 = 5 mod 157
5
2
5^2
52 mod 157 = 25 mod 157
5
4
5^4
54 mod 157 =
(
5
2
)
2
(5^2)^2
(52)2 mod 157 = 154 mod 157
5
8
5^8
58 mod 157 =
(
5
4
)
2
(5^4)^2
(54)2 mod 157 = 9 mod 157
5
16
5^{16}
516 mod 157 =
(
5
8
)
2
(5^8)^2
(58)2 mod 157 = 81 mod 157
(a)
Y
A
Y_A
YA =
α
X
A
\alpha^{X_A}
αXA mod q
=
5
15
5^{15}
515 mod 157
= (
5
8
•
5
4
•
5
2
•
5
1
5^8•5^4•5^2•5^1
58•54•52•51) mod 157
= ( 9 • 154 • 25 • 5) mod 157
= (1125 • 154) mod 157
= ( 26 • 154) mod 157
= 79
(b)
Y
B
Y_B
YB =
α
X
B
\alpha^{X_B}
αXB mod q
=
5
27
5^{27}
527 mod 157
= (
5
16
•
5
8
•
5
2
•
5
1
5^{16}•5^8•5^2•5^1
516•58•52•51) mod 157
= ( 81 • 9 • 25 • 5) mod 157
= (729 • 25 • 5 ) mod 157
= (101 • 25 • 5 ) mod 157
= (505 • 25) mod 157
= (34 • 25) mod 157
= 65
(c) s = ( Y B ) X A (Y_B)^{X_A} (YB)XA mod q = ( Y A ) X B (Y_A)^{X_B} (YA)XB mod q
= α X A X B \alpha^{X_AX_ B} αXAXB mod q
=
5
15
•
27
5^{15 • 27}
515•27 mod 157
=
5
405
5^{405}
5405 mod 157
=
5
(
156
•
2
+
93
)
5^{(156 • 2+93)}
5(156•2+93) mod 157 (费尔马小定理)
=
5
93
5^{93}
593 mod 157
= 78
二、DH算法的应用
解:
(a) 已知
Y
B
Y_B
YB =
α
X
B
\alpha^{X_B}
αXB mod q
则
X
B
X_B
XB =
log
α
(
k
q
+
Y
B
)
\log_{\alpha}{(kq+Y_B)}
logα(kq+YB) (
k
,
X
B
∈
Z
k ,X_B\in Z
k,XB∈Z 且
X
B
<
q
X_B <q
XB<q)
=
log
5
(
23
k
+
10
)
\log_5{(23k+10)}
log5(23k+10)
通过反复实验和试错后可知, 当k = 5时,
X
B
X_B
XB = 3
(b) 已知
K
K
K =
(
Y
A
)
X
B
(Y_A)^{X_B}
(YA)XB mod q
=
8
3
8^3
83 mod 23
= 6
(c)
∵
\because
∵ 22 = 2 x 11
∴
\therefore
∴ q-1 的所有素因子为 2 和 11
∴
\therefore
∴
5
(
22
/
2
)
5^{(22/2)}
5(22/2) mod 23 =
5
11
5^{11}
511 mod 23 = 22
5
(
22
/
11
)
5^{(22/11)}
5(22/11) mod 23 =
5
2
5^{2}
52 mod 23 = 2
以上两数皆不等于1,说明 5 是模 23 的原根
总结
Diffie-Hellman 机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实现加密和解密消息。