当前位置:首页 > 现代密码学-第3章分组密码习题与解答-20091206
第3章 分组密码
第3章 分组密码
习题及参考答案
1. 设DES算法中,明文M和密钥K分别为:
M=0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110 K=1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011 求L1和R2。
解:
初始变换IP:
1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000 则,L0=1001 1010 1101 0101 1101 0010 0011 1000
R0=0101 0110 0010 0101 1100 0101 1110 1000
K去校验位得:
C0=1101 0111 1100 0000 0010 0111 0111
D0=1010 1000 0111 0110 0011 0101 0010
循环左移一位:C1=1010 1111 1000 0000 0100 1110 1111
D1=0101 0000 1110 1100 0110 1010 0101
经过置换选择得到:K1=0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001 同样可以得到:K2=0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 1110
L1=R0=0101 0110 0010 0101 1100 0101 1110 1000
1
第2章 序列密码
经过轮函数F后,R0经过扩展置换E后为:0010 1111 1100 0001 0000 1011 1110 0000
1011 1111 0000 0000
和K1异或后经S盒替换:0100 1100 0011 1000 0100 1100 0000 1010 经过P盒置换后输出:0001 1100 0000 1110 1000 0000 0101 1100 和L0异或得R1:1000 0110 1101 1011 0101 0010 0110 0100
R1经过扩展置换E得48位输出:1000 1010 0100 0010 0000 1000 0010 0101 1101 0100 1010
1010
同上过程可得R2:1101 0100 1100 0111 0000 1101 0001 0110 即:L1=0101 0110 0010 0101 1100 0101 1110 1000
R2=1101 0100 1100 0111 0000 1101 0001 0110
2. 设DES算法中S4盒的输入为010101,求其输出。 解:
01→1,1010→10. 在S4盒中,(1,5)→2,即输出0010.
在图3.18所示的IDEA算法MA部件中,已知输入数据为
X1= 0000100110010011, X2= 1010001001001011, K1= 1100001000100110, K2= 1000011010000110,
求输出求Y1和Y2。
3.
X1⊙K1=1100 1010 1001 0000 X1⊙K1[+]X2=0110 1100 1101 1011
Y2=【X1⊙K1[+]X2】⊙K2=0110 0011 0110 1111 Y1=X1⊙K1[+]Y2=0010 1101 1111 1111
4. 在IDEA算法中,已知明文M和密钥K分别为:
M=10101010 11100110 01010101 00001111 11001100 00110011 10011001 01100110 K= 00000000 11111111 00000000 11111111 11111111 00001111 11110000 11111111
00001111 11110000 11111111 00000000 00001111 11111111 11110000 00001111
2
第3章 分组密码
求第一轮的输出和第二轮的输入。
解:第一轮的输出和第二轮的输入是相同的。 根据IDEA迭代结构图:这里?代表⊙,
r1?M1?K1=0011 1010 0111 0000 r2?M2[?]K2=0101 0110 0000 1110 r3?M3[?]K3=1100 1011 0100 0010
r4?M4?K4=1101 1100 0011 0011 r5?r1?r3=1111 0001 0011 0010 r6?r2?r4=1000 1010 0011 1101 r7?r7?K5=1111 1101 1101 1101 r8?r7[?]r6=1000 1000 0001 1010 r9?r8?K6= 0101 1110 0110 1111 r10?r7[?]r9=0101 1100 0100 1100 r11?r1?r9=0110 0100 0001 1111
r12?r2?r12= 0000 1010 0100 0010 r13?r9?r3=1001 0101 0010 1101 r14?r4?r10=1000 0000 0111 1111
Y1?r11=0110 0100 0001 1111 Y2?r13=1001 0101 0010 1101 Y3?r12=0000 1010 0100 0010
Y4?r14=1000 0000 0111 1111
3
第2章 序列密码
5.
计算GF(28)上多项式乘法
(1) ‘57’ ? ‘9D’ (2) ‘66’ ? ‘D5’ (3) ‘8C’ ? ‘B5’ (4) ‘F4’ ? ‘3C’ 解:(1)‘57’ ? ‘02’=’AE’
‘57’ ? ‘04’=’47’ ‘57’ ? ‘08’=’8E’ ‘57’ ? ‘10’=’07’ ‘57’ ? ‘20’=’0E’ ‘57’ ? ‘40’=’1C’ ‘57’ ? ‘80’=’38’
因此,‘57’ ? ‘9D’=’57’ ? [‘80’+’10’+’08’+’04’+’01’]=’38’+’07’+’8E’+’47’ +’57’ =’A1’ (2)同上,‘66’ ? ‘D5’ =’FC’ (3) ‘8C’ ? ‘B5’=’62’
(4) ‘F4’ ? ‘3C’=’6C’ 6. 设AES算法分组长度为128,输入的明文M和密钥K分别为 M=32 6C A8 F6 42 31 8C D6 43 72 64 E0 98 89 07 C3 K=A3 61 89 B5 54 12 D8 90 F4 14 FC AB 81 70 AE 3F 求AES的第一轮输出。
解:考虑到扩展密钥的前Nk个字是由密码密钥填充的,即初始轮密钥为K。 明文与初始轮密钥加得:91 0D 21 43 16 23 54 46 B7 66 98 4B 19 F9 A9 FC 经过字节代换为:D0 B1 F4 8A 21 EB 4F AA 0E F6 3B F7 BD 84 C5 DF 行移位得:D0 B1 F4 8A EB 4F AA 21 3B F7 0E F6 DF BD 84 C5 列混合变换得:79 E2 9C 43 8F D0 2D 0C 17 D7 D5 08 1E 18 B0 C1 加密钥:A3 54 F4 81 61 12 14 70 89 D8 FC AE B5 90 AB 3F
即得第一轮输出:DA B6 68 C2 EE C2 39 7C 9E 0F 29 A6 AB 88 1B FE
4
共分享92篇相关文档