![](https://csdnimg.cn/release/download_crawler_static/86321015/bg1.jpg)
第五章作业参考答案
1.6.1.3 节的数据认证算法是由 CBC 模式的 DES 定义的,其中初始向量取为 0,试说明使
用 CFB 模式也可获得相同的结果。
解:设需认证的数据分为 64 比特长的分组,D
1
,D
2
,…,D
N
,其中 D
N
不够 64 比特则右边补 0,
由题设,数据认证算法相当于在 CBC 模式中初始向量取为 0,并按如下关系进行:
O
1
=E
K
(D
1
0); O
2
=E
K
(D
2
O
1
);… O
N
=E
K
(D
N
O
N-1
);
数据认证码取为 O
N
或 O
N
的最左 M 个比特
对于同样的认证数据序列,D
1
,D
2
,…,D
N
,使用 DES 的 CFB 模式,且取 j=64,IV=D
1
,
并从 D
2
开始加密得
C
1
= E
K
(D
1
)D
2
=O
1
D
2
,C
2
= E
K
(C
1
)D
3
=E
K
(O
1
D
2
)D
3
=O
2
D
3
,
由此可推出,对最后一个分组 D
N
加密后的密文 C
N-1
=O
N-1
D
N
,则此时将 CFB 模式再进行一
步,在该步中只计算 DES 的输出,则该输出值为 E
K
(C
N-1
)=E
K
(O
N-1
D
N
)=O
N
。
所以可获得相同的结果。
2.有很多杂凑函数是由 CBC 模式的分组加密技术构造的,其中的密钥取为消息分组。例如
将消息 M 分成分组 M
1
,M
2
,…,M
N
,H
0
=初值,迭代关系为 H
i
=E
M
i
(H
i-1
)H
i-1
(i=1,2,…,N),杂
凑值取为 H
N
,其中 E 是分组加密算法。
(1)设 E 为 DES,第 3 章习题 1 已证明如果对明文分组和加密密钥都逐比特取补,那么得到
的密文也是原密文的逐比特取补,即如果 Y=DES
K
(X)则 Y= DES
K
(X)。利用这一结论证明
在上述杂凑函数中可对消息进行修改但却保持杂凑值不变。
证:由 DES 的取反特性,如果令 M
i
和 H
i-1
取反,则有
E
M
i
(H
i-1
)H
i-1
=[E
M
i
(H
i-1
)]H
i-1
=E
M
i
(H
i-1
)H
i-1
=H
i
因此对任意的初始值 H
0
,如果将 H
0
取反且将第一个消息分组 M
1
也取反则杂凑值不变
(2)若迭代关系改为 H
i
=E
H
i-1
(M
i
)M
i
,证明仍可对其进行上述攻击。
证:与(1)同,略。
3.考虑公钥加密算法构造杂凑函数,设算法是 RSA,将消息分组后用公开钥加密第一个分
组,加密结果与第二个分组异或后,再对其加密,一直进行下去。设一消息被分成两个分组
B
1
和 B
2
,其杂凑值为 H(B
1
,B
2
)=RSA(RSA(B
1
)B
2
)。证明对任一分组 C
1
可选 C
2
,使得 H(B
1
,B
2
)=
H(C
1
,C
2
),证明这种攻击方法,可攻击上述用公钥加密算法构造的杂凑函数。
证:攻击值如果获得两个消息分组 B
1
和 B
2
,及其杂凑值 H(B
1
,B
2
),则攻击者可任选分组 C
1
并令 C
2
=RSA(B
1
)B
2
RSA(C
1
)
于是有 H(C
1
,C
2
)=RSA(RSA(C
1
)(RSA(B
1
)B
2
RSA(C
1
)))=RSA(RSA(B
1
)B
2
)=H(B
1
,B
2
)则
攻击成功。
6.设 a
1
a
2
a
3
a
4
是 32 比特长的字中的 4 个字节,每一 a
i
可看作由二进制表示的 0 到 255 之间
的整数,在 big-endian 结构中该字表示整数 a
1
2
24
+a
2
2
16
+a
3
2
8
+a
4
,在 little-endian 结构中该
字表示整数 a
4
2
24
+a
3
2
16
+a
2
2
8
+a
1
。
(1)用 MD5 使用 little-endian 结构,因消息的摘要值不应依赖于算法所用的结构,因此在
MD5 中为了对以 big-endian 结构存储的两个字 X=x
1
x
2
x
3
x
4
和 Y=y
1
y
2
y
3
y
4
,进行模 2
32
加运算,
必须对这两个字进行调整,试说明如何调整?
解:首先对 X 中的 4 个字节做如下处理:
将 x
1
和 x
4
交换,x
2
和 x
3
交换,对 Y 进行相同的处理
然后计算 Z=X+Y mod2
32
最后再将 z
1
和 z
4
交换,z
2
和 z
3
交换。
评论0