密码分析(上)
Tip:因为考试需要而总结的,因为写的比较通俗易懂,就放到博客里来了。
一、代换密码
1.1 移位(凯撒)密码
应该是
注意:别被左边那种公式误导了,应该是先加再取余的,下面我按0-25代表a-z来算(这个无所谓了,你用ASCII码来算都可以,只要最后再算回字母来表示密文就行了)
mod就是求余数的,N就是26(26个英文字母),假如k取为3
比如a的加密过程,
(‘a’ + 3) mod 26就相当于4对 26取余 算出来就是‘d’(4)
再比如z的加密过程
(‘z’ + 3) mod 26就相当于28对 26取余 算出来就是‘c’(3),
如果先取余就是25+3 (28)这个就跑出a-z的范围了
举个例子
原密码:a o p c d e f
加密后:d r s f g h i
1.2 单表代换
简单说就是一个字母在一张密码表里对应固定的另一个字符
加密表(当然这表可以由自己随便给[一行放不下,放两行了]):
0 1 2 3 4 5 6 7 8 9 10 11 12
21 12 25 17 24 23 19 15 22 13 18 3 9
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - -- - - -
13 14 15 16 17 18 19 20 21 22 23 24 25
5 10 2 8 16 11 14 7 1 4 20 0 6
解密表(扳着脚趾头想都可以想到是上面翻过来的):
0 1 2 3 4 5 6 7 8 9 10 11 12
24 21 15 11 22 13 25 20 16 12 14 18 1
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - -- - - -
13 14 15 16 17 18 19 20 21 22 23 24 25
9 19 7 17 3 10 6 23 0 8 5 4 2
0-25分别代表A-Z,就比如说c(2)加密就会变为z(25),解密时z(25)-->c(2)
举个例子
原密码:a o p c d e f
加密后:v k c . . . . (剩下的我就不算了,这26个字母数的比较烦)
1.3 仿射代换(乘数密码)
应该是
注意:还是别被左边那种公式误导了,应该是先加再取余的,解密的时候肯定先减掉了,比如k1 取7,k2取2,N还是26个英文字母,最终加密公式就是(7m+2)mod 26(m就是密码),解密公式就是(c-2)/7 mod 26(c是加密后的数据,-1次方就是除法,都知道的)
比如a是0 加密:(0×7+2)mod 26 = 2 即为