现代密码学_清华大学_杨波著_部分习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(iv) DES 的轮变换为 ⎨
⎧ ⎪ Li = Ri −1 ,其中轮函数 F 可写为 = ⊕ R L F R , K ( ) ⎪ i −1 i −1 i ⎩ i
F ( R, K ) = P( S ( E ( R) ⊕ K )) 。 因此有如下推理:
Y = DES K ( X ) ⇒ Y ' = DES K ' ( X ') ⇔ Ri = Li −1 ⊕ F ( Ri −1 , Ki ) ⇒ Ri' = L'i −1 ⊕ F ( Ri'−1 , Ki' ) ⇔ 根据(i)(ii) 根据(iii)
状态(a1,a2,a3,a4) f(a1,a2,a3,a4) 1 1 1 0 1 1 … 输出 1 1 0 1 1 1 …
(1,1,0,1)
(1,0,1,1) (0,1,1,1) (1,1,1,1) (1,1,1,0)
(1,1,0,1)
…
因此,输出序列为 11011 11011 …,周期为 5。 4. 密钥流由 m=2s 级的 LFSR 产生,前 m+2 个比特是(01)s+1,即 s+1 个 01,请问第 m+3 个 比特有无可能是 1,为什么? 解: 根据题目条件,可知初始状态 s0 为: 设该 LFSR 的输出序列满足如下递推关系: 则第 m+1, m+2 个比特为:
(2) 对 DES 进行穷举搜索攻击时,需要在由 256 个密钥构成的密钥空间进行。能否根据(1) 的结论减少进行穷搜索攻击时所用的密钥空间。 解:(1) 根据取补的性质,密钥空间 K 可分成两部分 K1/2 和 K’1/2,即 K= K1/2∪K’1/2 对于任意一个 k∈K1/2,它的取补 k’∈K’1/2;对于任意一个 k∈K’1/2,它的取补 k’∈ K1/2。即,K1/2 和 K’1/2 是一一对应的;它们的空间大小都是 256/2=255。 其中 x、 y 分别为明文和密文, E 为 DES 加密算法, (2) 选择明文攻击时, 假设有 Ek0(x)=y, k0 为真实的密钥。
j =1 s
即第 m+3 比特为 0,因此不可能为 1. M 的散列值相同。
第 2 页
NCUT
密码学 – 习题与答案
2010
三、分组密码 (1,2,3,4)
1. (1) 设 M’是 M 的逐比特取补,证明在 DES 中,如果对明文分组和密文分组都逐比特取补, 那么得到的密文也是原密文的逐比特取补,即 如果 Y = DESK(X),那么 Y’=DESK’(X’) 提示:对任意两个长度相等的比特串 A 和 B,证明(A⊕B)’=A’⊕B。 证: (i) 容易验证,在 DES 中所有的置换操作,包括初始置换 IP、逆初始置换 IP-1、选择扩展算 法 E、置换运算 P 以及置换选择 PC1、置换选择 PC2,都满足如下性质: 如果 N=PO(M),则 N’=PO(M’),其中 PO 是某种置换操作 即有 (PO(M))’= PO(M’) (ii) 容易验证,密钥生成过程中的左循环移位 LS 满足如下性质: 如果 N=LS (M),那么 N’=LS(M’), 即有 (LS (M))’=LS(M’) 结合(1)可知,如果记子密钥为(K1,…,K16),K 为初始密钥,KG 为密钥生成算法,则有 如下性质: 如果 (K1,…,K16)=KG(K),那么 (K1',…,K16')=KG(K’) (iii) 对于任意两个比特 a 和 b, 有 (a⊕b)’= a⊕b⊕1=(a⊕1)⊕b=a’⊕b (= a⊕(b⊕1)=a⊕b’) , 因此对任意两个长度相等的比特串 A 和 B,有(A⊕B)’=A’⊕B=A⊕B’成立。
( Li −1 ⊕ F ( Ri −1 , Ki ) ) '
= ( Li −1 ⊕ F ( Ri'−1 , Ki' ) ) '
⇔ F ( Ri −1 , Ki ) = F ( Ri'−1 , Ki' ) ⇔ P( S ( E ( Ri −1 ) ⊕ Ki )) = P( S ( E ( Ri'−1 ) ⊕ Ki' )) ⇔ E ( Ri −1 ) ⊕ Ki = E ( Ri'−1 ) ⊕ Ki' 根据(iii)可知 E ( Ri −1 ) ⊕ Ki = ( E ( Ri −1 ) ⊕ Ki' )' = ( E ( Ri −1 ))' ⊕ Ki ⇔ ( E ( Ri −1 ))' ⊕ Ki = E ( Ri'−1 ) ⊕ Ki' ⇔ ( E ( Ri −1 ))' = E ( Ri'−1 ) 由(i)知此式成立
第 3 页
NCUT
密码学 – 习题与答案
2010
穷举搜索密钥空间 K1/2,对于某个 k∈K1/2,假设 (i) Ek(x)=y1,如果 y1=y,则说明 k0=k 而且 k0∈K1/2。 (ii) Ek(x’)=y2,如果 y2=y’,则说明 k= k0’,即 k0= k’ 而且 k0∈K’1/2。 综上可知:对于选定的明文密文对(x,y),只需遍历 K1/2 中的所有密钥即可,此时密钥空间 大小少为 255。 2. 证明 DES 的解密变换是加密变换的逆。 证明:定义 T 是把 64 位数据左右两半交换位置的操作,即 T(L,R)=(R,L),则 T2(L,R)=(L,R), 即 T2=I,其中 I 为恒等变换。 定义 DES 中第 i 轮的主要运算为 fi,即
−1 −1
… (*)
Fra Baidu bibliotek
把(*)式代入(#)式,可得 DES −1 ( DES (m)) = m ,由此可知 DES 的解密变换是加密变换 的逆。
第 1 页
则有:
可求得 A = ⎢
NCUT
密码学 – 习题与答案
2010
二、流密码 (1,3,4)
1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a1,a2,a3)=(1,0,1),求各线性反馈函数的输出序列及周期。 解:设反馈函数为 f(a1,a2,a3) = a1⊕c2a2⊕c1a3 当 c1=0,c2=0 时,f(a1,a2,a3) = a1,输出序列为 101101…,周期为 3。 当 c1=0,c2=1 时,f(a1,a2,a3) = a1⊕a2,输出序列如下 10111001011100…,周期为 7。 当 c1=1,c2=0 时,f(a1,a2,a3) = a1⊕a3,输出序列为 10100111010011…,周期为 7。 当 c1=1,c2=1 时,f(a1,a2,a3) = a1⊕a2⊕a3,输出序列为 10101010…,周期为 2。 3. 设 n=4,f(a1,a2,a3,a4)=a1⊕a4⊕1⊕a2a3,初始状态为(a1,a2,a3,a4)=(1,1,0,1),求此非线性 反馈移位寄存器的输出序列及周期。 解:列出该非线性反馈移位寄存器的状态列表和输出列表:
fi ( Li −1 , Ri −1 ) = ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 )
则有,
fi 2 ( Li −1 , Ri −1 ) = ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 ) = fi ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 ) = ( Li −1 , Ri −1 ) = ( ( Li −1 ⊕ F ( Ri −1 , Ki )) ⊕ F ( Ri −1 , Ki ), Ri −1 )
即 fi 2 = I 。
DES 的加密为: c = DES ( m) = IP −1 ⋅ f16 ⋅ (T ⋅ f15 ) ⋅ L ⋅ (T ⋅ f1 ) ⋅ IP ( m) 解密为: DES (c) = IP ⋅ f1 ⋅ (T ⋅ f 2 ) ⋅ L ⋅ (T ⋅ f16 ) ⋅ IP (c) … (#)
s0 = (a1 , a2 ,L , am −1 , am ) = (0,1,..., 0,1)
注:s个01
am + k = c1am + k −1 + c2 am −1 + L cm ak ,
s
k ≥1
am +1 = c1am + c2 am −1 + L cm a1 = ∑ c2 j −1 = 0
j =1 s
am + 2 = c1am +1 + c2 am + L cm a2 = ∑ c2 j = 1
j =1
而第 m+3 比特应为:
am +3 = c1am + 2 + c2 am +1 + c3am + c4am −1 + L + cm −1a4 + cm a3 = c1 ⋅ 1 + c2 ⋅ 0 + c3 ⋅ 1 + c4 ⋅ 0 + LL + cm −1 ⋅ 1 + cm ⋅ 0 = ∑ c2 j −1 = 0
NCUT
密码学 – 习题与答案
2010
( 声 明:非 标 准 答 案,仅 供 参 考 )
一、古典密码 (1,2,4)
字母 数字
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1. 设仿射变换的加密是 E11,23(m)≡11m+23 (mod 26),对明文“THE NATIONAL SECURITY AGENCY”加密,并使用解密变换 D11,23(c)≡11-1(c-23) (mod 26) 验证你的加密结果。 解:明文用数字表示:M=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] 密文 C= E11,23(M)≡11*M+23 (mod 26) =[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1] = YWPKXYHVKXONPTJCHYBXLPKTB ,或者直接穷举 1~25) ∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采用第 4 章的“4.1.6 欧几里得算法” ∴ 解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26) 对密文 C 进行解密: M’=D(C)≡19C+5 (mod 26) =[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] = THE NATIONAL SECURITY AGENCY 2. 设由仿射变换对一个明文加密得到的密文为 edsgickxhuklzveqzvkxwkzukvcuh,又已知明文 的前两个字符是“if” 。对该密文解密。 解: 设解密变换为 m=D(c)≡a*c+b (mod 26) 由题目可知 密文 ed 解密后为 if,即有: D(e)=i : 8≡4a+b (mod 26) D(d)=f : 5≡3a+b (mod 26) 由上述两式,可求得 a=3,b=22。 因此,解密变换为 m=D(c)≡3c+22 (mod 26) 密文用数字表示为: c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为 m=3*c+22 (mod 26) =[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17] = ifyoucanreadthisthankateahcer A 是 2×2 矩阵, B 是 0 矩阵, 又知明文 “dont” 4. 设多表代换密码 Ci ≡ AMi + B (mod 26) 中, 被加密为“elni” ,求矩阵 A。 解: dont = (3,14,13,19) 设 A= ⎢ => elni = (4,11,13,8)
⎡a b ⎤ ⎥, ⎣c d ⎦ ⎡ 4 ⎤ ⎡a b ⎤ ⎡ 3 ⎤ ⎡13⎤ ⎡ a b ⎤ ⎡13⎤ ⎢11⎥ = ⎢ c d ⎥ ⎢14 ⎥ (mod 26) , ⎢ 8 ⎥ = ⎢ c d ⎥ ⎢19 ⎥ (mod 26) ⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎡10 13⎤ ⎥ ⎣ 9 23⎦
⎧ ⎪ Li = Ri −1 ,其中轮函数 F 可写为 = ⊕ R L F R , K ( ) ⎪ i −1 i −1 i ⎩ i
F ( R, K ) = P( S ( E ( R) ⊕ K )) 。 因此有如下推理:
Y = DES K ( X ) ⇒ Y ' = DES K ' ( X ') ⇔ Ri = Li −1 ⊕ F ( Ri −1 , Ki ) ⇒ Ri' = L'i −1 ⊕ F ( Ri'−1 , Ki' ) ⇔ 根据(i)(ii) 根据(iii)
状态(a1,a2,a3,a4) f(a1,a2,a3,a4) 1 1 1 0 1 1 … 输出 1 1 0 1 1 1 …
(1,1,0,1)
(1,0,1,1) (0,1,1,1) (1,1,1,1) (1,1,1,0)
(1,1,0,1)
…
因此,输出序列为 11011 11011 …,周期为 5。 4. 密钥流由 m=2s 级的 LFSR 产生,前 m+2 个比特是(01)s+1,即 s+1 个 01,请问第 m+3 个 比特有无可能是 1,为什么? 解: 根据题目条件,可知初始状态 s0 为: 设该 LFSR 的输出序列满足如下递推关系: 则第 m+1, m+2 个比特为:
(2) 对 DES 进行穷举搜索攻击时,需要在由 256 个密钥构成的密钥空间进行。能否根据(1) 的结论减少进行穷搜索攻击时所用的密钥空间。 解:(1) 根据取补的性质,密钥空间 K 可分成两部分 K1/2 和 K’1/2,即 K= K1/2∪K’1/2 对于任意一个 k∈K1/2,它的取补 k’∈K’1/2;对于任意一个 k∈K’1/2,它的取补 k’∈ K1/2。即,K1/2 和 K’1/2 是一一对应的;它们的空间大小都是 256/2=255。 其中 x、 y 分别为明文和密文, E 为 DES 加密算法, (2) 选择明文攻击时, 假设有 Ek0(x)=y, k0 为真实的密钥。
j =1 s
即第 m+3 比特为 0,因此不可能为 1. M 的散列值相同。
第 2 页
NCUT
密码学 – 习题与答案
2010
三、分组密码 (1,2,3,4)
1. (1) 设 M’是 M 的逐比特取补,证明在 DES 中,如果对明文分组和密文分组都逐比特取补, 那么得到的密文也是原密文的逐比特取补,即 如果 Y = DESK(X),那么 Y’=DESK’(X’) 提示:对任意两个长度相等的比特串 A 和 B,证明(A⊕B)’=A’⊕B。 证: (i) 容易验证,在 DES 中所有的置换操作,包括初始置换 IP、逆初始置换 IP-1、选择扩展算 法 E、置换运算 P 以及置换选择 PC1、置换选择 PC2,都满足如下性质: 如果 N=PO(M),则 N’=PO(M’),其中 PO 是某种置换操作 即有 (PO(M))’= PO(M’) (ii) 容易验证,密钥生成过程中的左循环移位 LS 满足如下性质: 如果 N=LS (M),那么 N’=LS(M’), 即有 (LS (M))’=LS(M’) 结合(1)可知,如果记子密钥为(K1,…,K16),K 为初始密钥,KG 为密钥生成算法,则有 如下性质: 如果 (K1,…,K16)=KG(K),那么 (K1',…,K16')=KG(K’) (iii) 对于任意两个比特 a 和 b, 有 (a⊕b)’= a⊕b⊕1=(a⊕1)⊕b=a’⊕b (= a⊕(b⊕1)=a⊕b’) , 因此对任意两个长度相等的比特串 A 和 B,有(A⊕B)’=A’⊕B=A⊕B’成立。
( Li −1 ⊕ F ( Ri −1 , Ki ) ) '
= ( Li −1 ⊕ F ( Ri'−1 , Ki' ) ) '
⇔ F ( Ri −1 , Ki ) = F ( Ri'−1 , Ki' ) ⇔ P( S ( E ( Ri −1 ) ⊕ Ki )) = P( S ( E ( Ri'−1 ) ⊕ Ki' )) ⇔ E ( Ri −1 ) ⊕ Ki = E ( Ri'−1 ) ⊕ Ki' 根据(iii)可知 E ( Ri −1 ) ⊕ Ki = ( E ( Ri −1 ) ⊕ Ki' )' = ( E ( Ri −1 ))' ⊕ Ki ⇔ ( E ( Ri −1 ))' ⊕ Ki = E ( Ri'−1 ) ⊕ Ki' ⇔ ( E ( Ri −1 ))' = E ( Ri'−1 ) 由(i)知此式成立
第 3 页
NCUT
密码学 – 习题与答案
2010
穷举搜索密钥空间 K1/2,对于某个 k∈K1/2,假设 (i) Ek(x)=y1,如果 y1=y,则说明 k0=k 而且 k0∈K1/2。 (ii) Ek(x’)=y2,如果 y2=y’,则说明 k= k0’,即 k0= k’ 而且 k0∈K’1/2。 综上可知:对于选定的明文密文对(x,y),只需遍历 K1/2 中的所有密钥即可,此时密钥空间 大小少为 255。 2. 证明 DES 的解密变换是加密变换的逆。 证明:定义 T 是把 64 位数据左右两半交换位置的操作,即 T(L,R)=(R,L),则 T2(L,R)=(L,R), 即 T2=I,其中 I 为恒等变换。 定义 DES 中第 i 轮的主要运算为 fi,即
−1 −1
… (*)
Fra Baidu bibliotek
把(*)式代入(#)式,可得 DES −1 ( DES (m)) = m ,由此可知 DES 的解密变换是加密变换 的逆。
第 1 页
则有:
可求得 A = ⎢
NCUT
密码学 – 习题与答案
2010
二、流密码 (1,3,4)
1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a1,a2,a3)=(1,0,1),求各线性反馈函数的输出序列及周期。 解:设反馈函数为 f(a1,a2,a3) = a1⊕c2a2⊕c1a3 当 c1=0,c2=0 时,f(a1,a2,a3) = a1,输出序列为 101101…,周期为 3。 当 c1=0,c2=1 时,f(a1,a2,a3) = a1⊕a2,输出序列如下 10111001011100…,周期为 7。 当 c1=1,c2=0 时,f(a1,a2,a3) = a1⊕a3,输出序列为 10100111010011…,周期为 7。 当 c1=1,c2=1 时,f(a1,a2,a3) = a1⊕a2⊕a3,输出序列为 10101010…,周期为 2。 3. 设 n=4,f(a1,a2,a3,a4)=a1⊕a4⊕1⊕a2a3,初始状态为(a1,a2,a3,a4)=(1,1,0,1),求此非线性 反馈移位寄存器的输出序列及周期。 解:列出该非线性反馈移位寄存器的状态列表和输出列表:
fi ( Li −1 , Ri −1 ) = ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 )
则有,
fi 2 ( Li −1 , Ri −1 ) = ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 ) = fi ( Li −1 ⊕ F ( Ri −1 , Ki ), Ri −1 ) = ( Li −1 , Ri −1 ) = ( ( Li −1 ⊕ F ( Ri −1 , Ki )) ⊕ F ( Ri −1 , Ki ), Ri −1 )
即 fi 2 = I 。
DES 的加密为: c = DES ( m) = IP −1 ⋅ f16 ⋅ (T ⋅ f15 ) ⋅ L ⋅ (T ⋅ f1 ) ⋅ IP ( m) 解密为: DES (c) = IP ⋅ f1 ⋅ (T ⋅ f 2 ) ⋅ L ⋅ (T ⋅ f16 ) ⋅ IP (c) … (#)
s0 = (a1 , a2 ,L , am −1 , am ) = (0,1,..., 0,1)
注:s个01
am + k = c1am + k −1 + c2 am −1 + L cm ak ,
s
k ≥1
am +1 = c1am + c2 am −1 + L cm a1 = ∑ c2 j −1 = 0
j =1 s
am + 2 = c1am +1 + c2 am + L cm a2 = ∑ c2 j = 1
j =1
而第 m+3 比特应为:
am +3 = c1am + 2 + c2 am +1 + c3am + c4am −1 + L + cm −1a4 + cm a3 = c1 ⋅ 1 + c2 ⋅ 0 + c3 ⋅ 1 + c4 ⋅ 0 + LL + cm −1 ⋅ 1 + cm ⋅ 0 = ∑ c2 j −1 = 0
NCUT
密码学 – 习题与答案
2010
( 声 明:非 标 准 答 案,仅 供 参 考 )
一、古典密码 (1,2,4)
字母 数字
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1. 设仿射变换的加密是 E11,23(m)≡11m+23 (mod 26),对明文“THE NATIONAL SECURITY AGENCY”加密,并使用解密变换 D11,23(c)≡11-1(c-23) (mod 26) 验证你的加密结果。 解:明文用数字表示:M=[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] 密文 C= E11,23(M)≡11*M+23 (mod 26) =[24 22 15 10 23 24 7 21 10 23 14 13 15 19 9 2 7 24 1 23 11 15 10 19 1] = YWPKXYHVKXONPTJCHYBXLPKTB ,或者直接穷举 1~25) ∵ 11*19 ≡ 1 mod 26 (说明:求模逆可采用第 4 章的“4.1.6 欧几里得算法” ∴ 解密变换为 D(c)≡19*(c-23)≡19c+5 (mod 26) 对密文 C 进行解密: M’=D(C)≡19C+5 (mod 26) =[19 7 4 13 0 19 8 14 13 0 11 18 4 2 20 17 8 19 24 0 6 4 13 2 24] = THE NATIONAL SECURITY AGENCY 2. 设由仿射变换对一个明文加密得到的密文为 edsgickxhuklzveqzvkxwkzukvcuh,又已知明文 的前两个字符是“if” 。对该密文解密。 解: 设解密变换为 m=D(c)≡a*c+b (mod 26) 由题目可知 密文 ed 解密后为 if,即有: D(e)=i : 8≡4a+b (mod 26) D(d)=f : 5≡3a+b (mod 26) 由上述两式,可求得 a=3,b=22。 因此,解密变换为 m=D(c)≡3c+22 (mod 26) 密文用数字表示为: c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为 m=3*c+22 (mod 26) =[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17] = ifyoucanreadthisthankateahcer A 是 2×2 矩阵, B 是 0 矩阵, 又知明文 “dont” 4. 设多表代换密码 Ci ≡ AMi + B (mod 26) 中, 被加密为“elni” ,求矩阵 A。 解: dont = (3,14,13,19) 设 A= ⎢ => elni = (4,11,13,8)
⎡a b ⎤ ⎥, ⎣c d ⎦ ⎡ 4 ⎤ ⎡a b ⎤ ⎡ 3 ⎤ ⎡13⎤ ⎡ a b ⎤ ⎡13⎤ ⎢11⎥ = ⎢ c d ⎥ ⎢14 ⎥ (mod 26) , ⎢ 8 ⎥ = ⎢ c d ⎥ ⎢19 ⎥ (mod 26) ⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎡10 13⎤ ⎥ ⎣ 9 23⎦