代换密码
- 代换密码是将明文中的字符替换为其他字符的密码体质。
- 基本方法是:
- 建立一个代换表,加密时将明文字符通过查表代换为对应的密文字符,代换表即密钥。
- (代换表即影视题材中常见的密码本,密码本由机要员保管,有电报需要发送时先由机要员用密码本将情报代换成电报代码,发报员负责发报,发报员不知道发报的内容是什么。)
单表代换密码
- 移位密码
- 首先建立英文字母与摸26的剩余之间的对应关系
A B C D …… Z
0 1 2 3 …… 25
- 定义:
- 设P=C=K=Z={0,1,2,……,25},明文x密文y,对于整数k(0<=k<=25),定义:
- 加密:y=e(x)=x+kmod26,
- 解密:x=d(y)=y-kmod26,x,y属于Z
凯撒(Caesar)密码是k=3的移位密码
明文:A B C D …… W X Y Z
密文:D E F G …… Z A B C
明文M=china,密文C=FKLQD
M=game is over,k=9.
加密过程: g a m e i s o v e r
6 0 12 4 8 18 14 21 4 17
6 0 12 4 8 18 14 21 4 17
+9mod26
------------------------
15 9 21 13 17 1 23 4 13 0
密文C= p j v n r b x e n a
解密过程: p j v n r b x e n a
15 9 21 13 17 1 23 4 13 0
15 9 21 13 17 1 23 4 13 0
-9mod26
------------------------
6 0 12 4 8 18 14 21 4 17
密文C= g a m e i s o v e r
- 单表代换密码
- 定义
- 设P=C=K=Z={0,1,2,……,25},K是0,1,2,……,25的所有置换的集合,对置换π属于K
置换π为:π=(0 1 2 …… 25
0' 1' 2' …… 25')
加密: y=e(x)=π(x),
解密: y=d(y)=π^-1(y).
- 密钥传递
- 为方便使用,通常代换后结果还是26个英文字母。
- 代换密钥可约定为当日的某份英文报纸的头版头条新闻(重复的字母只用一次)
- 优点
- 不需要携带密码本,且可以设定每天更换一次密码,不容易破译。
- 26个英文字母的代换密钥个数为26!>10^25,无法穷举破译。
- 攻击分析
- 26个英文字母的代换密钥个数26!>10^25,无法穷举破译。
- 缺点
- 相同明文字母对应密文字母相同,可用统计的方法攻击。