第三章:3-1 使用密钥字为common 的代换密码方案,列出字母代换表 解:去除后来重复的字母后,真正的密钥字为comn3-2 解密下面的一段恺撒密码密文(明文单词间留空,以便阅读):EHVWWLPHRIWKHBHDULVVSULQJZKHQIORZHUVEORRP解:将密文字母在英文字母表上前移3个位置,即可得到这段恺撒密码密文对应的明文如下: best time of the year is spring when flowers bloom3-3 利用仿射密码算法加密下面的明文,假设k 1=7,k 2=3(要求首先列出明文字母-密文字母代换表,然后给出对应的密文,并以字母t 的加密为例给出计算过程):解:因为k 1=7,k 2=3,因此仿射密码的加密公式为)26(mod 37)(21+=+==p k p k p e c k字母t (19)被加密为)26(mod 61363197)(G t e k ===+⨯=完整的明文字母-密文字母代换表如下表所示:解:因为k 1=7,k 2=3,因此,根据仿射密码的解密公式,有)26(mod 1915)3(15)3(71-=-⨯=-⨯=-c c c p密文字母F (5)解密为:)26(mod 4561975195151915e c ===-=-⨯=-求仿照表3-7(P51)给出其加密和解密过程,并说明相同明文字符的加密结果。
解:去除密钥字student 中后来重复的字母后,真正的密钥为studen 。
因此,应将明文、密文按照6位长度进行分组,每组使用同样的密钥studen 加密、解密。
3-6 选择希尔密码的加密密钥矩阵k 为:⎥⎦⎤⎢⎣⎡=07050203k 试以明文love 为例解:将明文字符love 变换为数字,分别为11、14、21、4。
因为加密密钥矩阵k 为2阶矩阵,所以应将明文分成)1411(1=p 和)421(2=p 两组分别进行加密。
(1)确定解密密钥矩阵k -1111021527307050203=-=⨯-⨯==k1926mod 1111==--k(见表2-2(P21)) )26(mod 0321240703050207*⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡--=k )26(mod 05091403573994561330321240719*11⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡==--k k k(2)加密())26(mod )()1625()120103(07050203141111Q Z k p c ===⎥⎦⎤⎢⎣⎡•=•=⋅())26(mod )()185()7038(0705020342122S F k p c ===⎥⎦⎤⎢⎣⎡•=•=⋅因此,明文字符love 的加密密文为ZQFS 。
(3)解密())26(mod )()1411()430219(050914031625111o l k c p ===⎥⎦⎤⎢⎣⎡•=•=-())26(mod )()421()160177(05091403185122e v k c p ===⎥⎦⎤⎢⎣⎡•=•=-因此,密文字符ZQFS 的解密明文为love ,即解密后恢复了原来的明文。
3-7 使用每行5个字符的格子和密钥字money ,将下面的明文置乱为密文(多余的空格依次填入字母a 、b 、c …):cryptography is the science and study of secret writing提示:将密钥字money 变换为数字(字母表上最靠前的密钥字母用0表示,然后依次递增),即是读出列的顺序。
解:置乱密码的格纸表如下表所示:到置乱密文如下:RGYENDYCRG PASCETFETB YRISCSORIA COHHENDEWN TPTIAUSTIC3-9 用频数法破译下面的一段仿射密码密文(不含空格):FMXVE DKAPH FERBN DKRXR SREFM ORUDS DKDVS HVUFE DKAPR KDLYE VLRHH RH解:(1)密文字母频数统计该段仿射密码密文一共有57个密文字符,密文字母出现的频数如下表所示:从上表可见频数比较高的密文字母:R :8 ; D :7; E 、H 、K :5 ; F 、V :4 而明文字母频数比较高的几个英文字母依次为e 、t 、a 、o 、i 、n 、s 、h 、r 。
(2)假设与推论、证实第一次假设:频数最高的密文字母R (17)对应频数最高的明文字母e (4), 频数次高的密文字母D (3)对应频数次高的明文字母t (19)。
第二次假设:频数最高的密文字母R (17)对应频数最高的明文字母e (4), 频数第三高的密文字母E (4)对应频数次高的明文字母t (19)。
第三次假设:频数最高的密文字母R (17)对应频数最高的明文字母e (4), 频数并列第三的密文字母H (7)对应频数次高的明文字母t (19)。
第四次假设:频数最高的密文字母R (17)对应频数最高的明文字母e (4), 频数并列第三的密文字母K (10)对应频数次高的明文字母t (19)。
根据仿射密码的加密公式,列出密文和明文的关系方程组如下:)26(mod 41721k k += ⑦)26(mod 191021k k += ⑧⑧-⑦得:)26(mod 197151=-=k解得:)26(mod 3133197191511==⨯=⨯=-k由于1)26,3gcd()26,gcd(1==k ,因此31=k 存在乘法逆元,且93111==--k ,说明第四次假设正确。
将31=k 代入⑦式,得:)26(mod 5341741712=⨯-=-=k k因此,破译得到该仿射密码的加密密钥为31=k ,52=k 。
将它们代入仿射密码的解密公式,得到:)26(mod 199459)5(9)(211-=-=-⨯=-=-c c c k c k p⑨将密文字母代入⑨式,得到对应的明文字母,如下表所示:)26(mod 51611918019209199f c ===-=-⨯=-对照题上表,将密文变换为明文,得到如下的一段具有明确意义的明文:algorithms are quite general definitions of arithmetic processes第四章:4-5 分别使用(4-14)式和表4-1的S 盒查找表,求16进制数{5c}和{e2}的字节代换结果。
已知{5c}-1={51},{e2}-1={d6}。
解 由于{5c}-1={51}=(01010001)}4{010010100110001100101001011000110101000111111001111100001111100001111110001111110001111110001111110001'7'6'5'4'3'2'1'0a b b b b b b b b =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⊕⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⊕⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡ 而根据表4-1的S 盒查找表,可以直接得到{5c}的字节代换结果为{4a},可见二者结果相同。
同理,由于{e2}-1={d6}=(11010110),根据(4-14)式,有}98{100110000110001111111011011000111101011011111001111100001111100001111110001111110001111110001111110001'7'6'5'4'3'2'1'0=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⊕⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⊕⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡b b b b b b b b 而根据表4-1的S 盒查找表,可以直接得到{e2}的字节代换结果为{98},可见二者结果也相同。
4-6 AES 的中间态如题4-6图所示。
求AES 对其执行行移位运算ShiftRows 后的结果。
解 AES 对其执行行移位运算ShiftRows 后的结果如题4-6图2所示。
4-7 分别用多项式乘法、移位相加法和表操作法计算下列字节乘法运算: (1)}71{}51{• (2)}2{}5{e c •解 (1)1)01010001(}51{46++==x x ,1)10010101(}71{456+++==x x x 。
① 多项式乘法计算字节乘法运算30e5f1ae 525d 981141b4bf 271e b8e0d4e5f1ae 309811525d 2741b4bf 1e b8e0d464654121110610984654121198584358438435434358754764354{51}{71}(1)(1)11(1)1(1)(1)1(1)(1)1x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x •=+++++=+++++++++++=+++++=+++++=++++-+++++=++++++++=+++++++++243586528438652436526543211(1)11(01111111){7}x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x f ++++++++=+++=++++-+++=++++++=++++++==② 移位相加法计算字节乘法运算由于{51}{71}(01010001)(01110001)•=•,且(00000001)(01110001)(01110001)(00000010)(01110001)(11100010)(00000100)(01110001)(11000100)(00011011)(11011111)(00001000)(01110001)(10111110)(00011011)(10100101)(00010000)(01110001)(01001•=•=•=⊕=•=⊕=•=010)(00011011)(01010001)(00100000)(01110001)(10100010)(01000000)(01110001)(01000100)(00011011)(0101111)⊕=•=•=⊕= 因此,有{51}{71}(01010001)(01110001)[(00000001)(01110001)][(00010000)(01110001)][(01000000)(01110001)](01110001)(01010001)(01011111)(01111111){7}f •=•=•⊕•⊕•=⊕⊕==③ 表操作法计算字节乘法运算 查表4-2的对数表,有:{}{51}{03}dd =,{79}{71}{03}=。