一、介绍与分类
1.介绍:
古典密码时期一般认为是从古代到19世纪末,这个时期生产力水平低,加密、解密方法主要以纸、笔或简单的器械来实现,在这个时期提出和使用的密码称为古典密码。古典密码是密码学发展的初级阶段。尽管古典密码大都较简单,但由于其安全性差,目前应用很少。研究古典密码的原理,有助于理解、构造和分析近代密码。替代( substitution)和置换(permutation)是古典密码中用到的两种基本处理技巧,它们在现代密码学中也得到了广泛使用。
2.实现技术:
- 代换 将明文字符替换成其他的字母、数字或符号
- 置换 明文的字母相同,但被打乱了
3.分类
- 代换密码
- 单表代换密码
- 多表代换密码
- 置换密码
二、代换密码
1.单表代换密码
(1).移位密码
Ek(P): Ci = (Pi+k) mod n, Dk(P): Pi = (Ci-k) mod n,
其中Ek为加密算法,Pi为明文,Ci为密文,k位密钥,n为字母的个数,Dk为解密算法。
如果是英文字母间的代换,也可以写成以下形式:
Ci = (Pi + k) mod 26 Pi = (Ci - k) mod 26,其中k∈[0,25]
其中凯撒密码Ci = (Pi + 3) mod 26就是一种移位代换密码。
(2).仿射密码
Ek(P) = (aPi + b) mod m
(3).代换密码
指每一个字母都由另一个字母表(从明文字母到密文字母的映射)中的字母加密
破译方法:穷举密钥法、统计分析法(利用语言规律)
2.多表代换密码
(1).维吉尼亚密码
维吉尼亚密码由一些偏移量不同的恺撒密码组成,每一个明文字母的偏移量由一个给定的密钥决定。如明文"abcd"(密钥为plan),则明文字母a的偏移量即为p的位数15。a偏移15位后为p,p即为明文字母对应的密文字母。
Ci = (Pi + ki) mod 26
维吉尼亚密码也看作是依据于一张二维密码表,明文字母和对应的密钥字母分别为行数和列数,在表中找到相应的字母即为密文字母
举例:
明文:howareyou
密钥:mine
明文(P) | H | O | W | A | R | E | Y | O | U |
密钥(k) | M | I | N | E | M | I | N | E | M |
密文(C) | T | W | J | E | D | M | L | S | G |
破译技巧:
- 间隔是密钥长度整数倍的对象代换结果也相同
- 间隔是密钥长度整数倍的位置上的代换是单表代换
(2).一次一密
用随机的非重复的字符集合作为输出密文。一旦使用了变换的输入密文,就不再在任何其他消息中使用这个输入密文(因此是一次性的)。输入密文的长度等于原消息明文的长度。
以下是主要步骤.
1.按递增顺序把每个明文字母作为一个数字,A=0,B=1等等.
2.对输入明文中每一个字母做相同的处理.
3.将明文中的每个字母与密钥中的相应字母相加.
4.如果得到的和大于26,则从中减去26 (mod 26)
5.将和转化为字母,从而得到密文.
三、置换密码
置换密码是⼀种通过⼀定规则改变字符串中字符的顺序从⽽实现加密的密码算法。
与代换密码的区别:
代换密码是将明文字母用不同的密文字母代替,生成的密文中可能有明文未包含的字母,而置换密码是仅仅打乱明文字母的位置和顺序
置换密码有很多种,举例一种:将密文一行一行写在表格中,按一列一列的顺序读取,如明文:howareyouImfinethankyouandyouhaha,则密文:hfuoiawnnaedrtyehoyauonhukaiyhmoa。
H | O | W | A | R | E | Y | O | U | I | M |
F | I | N | E | T | H | A | N | K | Y | O |
U | A | N | D | Y | O | U | H | A | H | A |