1.
(1) 设 (M’) 是 (M) 的逐比特取补,证明在 DES 中,如果对明文分组和密文分组都逐比特取补,
那么得到的密文也是原密文的逐比特取补,即
如果 (Y=DES_K(X)),那么 (Y’=DES_{K’}(X’))
提示:对任意两个长度相等的比特串 A 和 B,证明 ((A⊕B)’=A’⊕B)。
(2) 对 DES 进行穷举搜索攻击时,需要在由 (2^{56}) 个密钥构成的密钥空间进行。能否根据(1)
的结论减少进行穷搜索攻击时所用的密钥空间。
2.
证明 DES 的解密变换是加密变换的逆。
3.
在 DES 的 ECB 模式中,如果在密文分组中有一个错误,解密后仅相应的明文分组受到影响。
然而在 CBC 模式中,将有错误传播。例如在图 3-11 中 (C_1) 中的一个错误明显地将影响到 (P_1)
和 (P_2) 的结果。
(1)(P_2) 后的分组是否受到影响?
CBC 的加密: (C_0=IV, C_i=DES_K[P_i⊕C_{i-1}], i≥2)
解密: (P_i=DES_K^{-1}[C_i]⊕C_{i-1} , i≥1)
(C_2=DES_K[P_2⊕C_1])
(P_2=DES_K^{-1}[C_2]⊕C_1)
(C_3=DES_K[P_3⊕C_2])
(P_3=DES_K^{-1}[C_3]⊕C_2)
即 (C_2) 之后的明文都是正确的,所以不受影响。
(2)设加密前的明文分组 (P_1) 中有 1 比特的错误,问这一错误将在多少个密文分组中传播?
对接收者产生什么影响?
(C_i=DES_K[P_i⊕C_{i-1}) 之后的所有密文分组都会受到影响。
接收者无法解出正确的明文。
4.
在 8 比特 CFB 模式中,如果密文字符中出现 1 比特的错误,问该错误能传递多远?
(ans=trunc((64+8-1)/8)=9)
CBC 的错误传播只会影响当前分组和下一分组。
CFB 的错误传播会影响当前分组的解密和后续 (64/j) 或 (64/j+1) 个分组的解密
OFB 的错误传播只会影响当前分组的解密,不会传播。
5.
在实现 IDEA 时,最困难的部分是模 (2^{16}+1) 乘法运算。以下关系给出了实现模乘法的一种有效方法,其中 a 和 b 是两个 n 比特的非 0 整数。
注意:((ab mod 2^n)) 相当于 ab 的 n 个有效最低位,((ab div 2^n)) 是 ab 右移 n 位。
(1)证明存在唯一的非负整数 (q) 和 (r),使得 (ab=q(2^n+1)+r)
证明:设存在非负整数 (q) 和 (r) ,使得 (ab=q(2^n+1)+r)。
设存在另一对非负整数 (q') 和 (r') ,使得 (ab=q'(2^n+1)+r')。
两式相减得 (0=(q-q')2^n+1)+(r-r'))
因为 (q) , (r) ,(q') , (r') 均为非负整数,当且仅当 ((q=q'))、 ((r=r')) 时成立,得证。
(2)求 (q) 和 (r) 的上下界
(0leqslant r leqslant (2^n))
所以
(3)证明 (q+r<2^{n+1})
(q+r leqslant 2^n+2^n-3 <2^{n+1})
(4)(5)求 (ab mod 2^n) 和 ((ab div 2^n)) 关于 (q) 和 (r) 的表达式
因为 (ab=q(2^n+1)+r) ,当 (q+r<2^n) 时,((ab div 2^n)=q)
当 (q+rgeqslant 2^n) 时,((ab div 2^n)=q+1)
同理,当 (q+r<2^n) 时,((ab mod 2^n)=q+r)
当 (q+rgeqslant 2^n) 时,((ab mod 2^n)=q+r-2^n)
(6)用(4)和(5)结果求 r 的表达式,并说明 r 的含义
当 (ab=q(2^n+1)+r) 时,((ab div 2^n)=q①),((ab mod 2^n)=q+r②)
②式减①式得 (r=(ab mod 2^n)- (ab div 2^n))
同理,当 (q+rgeqslant 2^n) 时,(r=(ab mod 2^n)- (ab div 2^n)+2^n+1)
6.
(1)在 IDEA 的模乘运算中,为什么将模数取位 (2^{16}+1) 而不是 (2^{16})
因为 (2^{16}+1) 是素数,使得所有非 0 元都有逆元。
(1)在 IDEA 的模加运算中,为什么将模数取位 (2^{16}) 而不是 (2^{16}+1)
因为取 (2^{16}) ,使得所有元素都有逆元,构成群运算,使得求模运算易于实现,而取 (2^{16}+1) 时需要额外处理。
7.
证明 SM4 算法满足对合性,即解密过程和加密过程一样,只是密钥的使用顺序相反。