1、习题 2.1 设英文字母 A, B, C, , Z 分别编码伪 0, 1, 2, 3, , 25。已知单表加密变换为 c5m7( mod 26)其中 m 表示明文,c 表示密文。试对明文 HELPME 加密。解. 明文 H E L P M E对应的编码值分别是 7 4 11 15 12 4。 用加密变换将上述 6 个编码值分别加密并转换为字母是c577 (mod 26)16 Qc547 (mod 26)1 Bc5117 (mod 26)10 Kc5157 (mod 26)4 Ec5127 (mod 26)15 Pc547 (mod 26)1 B从而得到密文 QBKEPB。习题 2.2 设英文字
2、母 A, B, C, , Z 分别编码伪 0, 1, 2, 3, , 25。已知单表加密变换为 c11m2 (mod 26)其中 m 表示明文,c 表示密文。试对密文 VMWZ 解密。解. 首先从加密变换求出解密变换m11 1 (c2)(mod 26)19(c2)( mod 26) 其中 1911 1 (mod 26)。其次将密文字母转换为编码值V M W Z 21 12 22 25。最后用解密变换将上述 4 个编码值分别解密并转换为字母是m19(212) (mod 26)23 Xm19(122) (mod 26)8 Im19(222)(mod 26)16 Qm19(252)(mod 26)2
3、1 V从而得到明文 XIQV。习题 2.5 设英文字母 A, B, C, , Z 分别编码伪 0, 1, 2, 3, , 25。已知 Hill 密码中的明文分 组长度为 2,密钥 K 是 Z26 上的一个 2 阶可逆方阵。假设明文 Friday 所对应的密文为 pqcfku,试求密钥 K。 解. 明文 f r i d a y对应的编码值分别是 5 17 8 3 0 24。密文 p q c f k u对应的编码值分别是 15 16 2 5 10 20。设加密变换为 CMK, 则可取 ,从而得到3817M。K5216如果矩阵 M 可逆,就可求得。5216387K事实上,|M|53817136 9
4、(mod 26),且 91 3(mod 26),从而。 152387538175|11*从而可求得密钥。 38975216952163875K注:(1) 矩阵 M 的逆矩阵也可通过初等置换可求得: 1529014027938103875)1(295)()2(81)(2)矩阵 K 也可通过待定系数法可求得:设 ,则 ,即4321k 20124038421k6mod204153k从 ,6mod10243k353 13mod8512k所以解得 即即即即 460,42681833 ik从 ,26mod024k13mod014k 13mod10214k所以解得 即即即即 46,6344 i取 ,则有 和
5、 ,类似以),8(,(43k2od21k 2od5982k上解法可得和72011即 1622即于是可得或 或 或3897K383890K3867K经检验 得到一个解 。)16,5(),( 1再类似 , , 的情形。,8,43k)3,2(,43k)6,2(),(4k习题 4.0 根据电子教案画出 DES 解密算法的流程图(注意:输入是密文,输出是明文)。解:流程图如下: 密文 C初始置换 IPL0 R0fL1 R1=L0f(R0,K16)K16fK15L15 R15=L14f(R14,K2)fK1R16=L15f(R15,K1) L16逆初始置换 IP1明文 m习题 4.1 求出用 DES 的
6、8 个 S 盒将 48 比特串 70a990f5fc36 压缩置换输出的 32 比特串(用 16 进制写出每个 S 盒的输出)。解:比特串 70a990f5fc36 用二进制表示为 011100 001010 100110 010000 111101 011111 110000 110110,每 6 比特一组共 8 组,分别用8 个 S 盒变换 如下:S1(011100)S 1(00,1110)S 1(0,14)00000 0;S2(001010)S 2(00,0101)S 2(0,5)111011=b;S3(100110)S 3(10,0011)S 3(2,3)91001 9;S4(0100
7、00)S 4(00,1000)S 4(0,8)10001 1;S5(111101)S 5(11,1110)S 5(3,14)50101 5;S6(011111)S 6(01,1111)S 6(1,15)81000 8;S7(110000)S 7(10, 1000)S 7(2,8)101010 a;S8(110110)S 8(10,1011)S 8(2,11)131101 d,故 8 个 S 盒的 输出为00001011 10010001 01011000 10101101即 0b9158ad。习题 4.2 设 F28 的不可约多项式为 x8+ x4+x3+ x+1。写出 F28 中二进制表示的
8、元素 10011111 和 01010111 的多项式表示,并求多项式乘法(10011111)(01010111)。解:10011111 表示的多项式是 x7+ x4+x3+x2+ x+1。01010111 表示的多项式是 x6+ x4+x2+ x+1。因为: x8+ x4+x3+ x+1 的向量表示是 100011011,又1 0 0 1 1 1 1 10 1 0 1 0 1 1 11 0 0 1 1 1 1 11 0 0 1 1 1 1 11 0 0 1 1 1 1 11 0 0 1 1 1 1 11 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 11 0
9、 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 11 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 11 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 11 0 0 0 1 1 0 1 1 1 1 1 1所以(10011111)(01010111)00001111。习题 4.3 设 mb5c9179eb1cc1199b9c51b92b5c8159d。对 m 使用AES 中的字节替换运算 SubBytes,即求出 SubBytes(m)的输出(用 16进制表示)。解:查 AES 的 SubBytes 表分别得到:SubBy
10、tes(b5)d5; SubBytes(c9)dd; SubBytes(17) f0; SubBytes(9e)0b; SubBytes(b1)c8; SubBytes(cc)4b;SubBytes(11)82; SubBytes(99)ee; SubBytes(b9)56; SubBytes(c5)a6; SubBytes(1b) af; SubBytes(92)4f;SubBytes(b5)d5; SubBytes(c8)e8; SubBytes(15)59; SubBytes(9d)5e 。故 SubBytes(m)d5ddf00bc84b82ee56a6af4fd5e8595e 。习题
11、 5.0 计算 57 和 93 的最大公约数(57,93), 并找出整数 s 和 t,使得57s 93t(57,93)。解: 用 Euclidean 算法。9315736,5713621,3612115,211156,15263,6230,逆推得到:31526152(211 15)3 152213(361 21)2213365213365(57136 )8365578(931 57)55789313 57,故得到 57 和 93 的最大公约数(57,93)3;s13,t8 使得(57,93)93t57s8 9313 573。习题 5.1 利用扩展 Euclidean 算法计算如下乘法逆:(1(
12、 171 mod 101,(2) 3571 mod 1234。解:(1)10151716171161逆推得到:117116171(101517)6171101,故得到 171 mod 1016。(2( 123433571633572163311635318313878171逆推得到:181781(3138)4 81314(163531)1 31416321 31416321(3572 163) 4616321 35746(12343357)21 357461234159357,故得到 3571 mod 1234159 mod 12341075。习题 5.2 设 p43,q59,n pq2537。设公钥(n, e) (2537,13),(1( 求私钥(p, q, d)。(2( 利用英文字母表的顺序:a 为 01,b 为 02,y 为 24,z为 25,求出用上述参数对明文 public 使用 RSA 加密的密文。解:(1) (n)42 382436。用 Euclidean 算法可求得de 1 mod (n)13 1 mod 2436937,故私钥(p, q, d) (43, 59, 937)。(2) 将明文 public 分 块为:pu bl ic,对应编码为 1520 0111 0802。分别加密得到: 152013 mod 25370095,