1.简介和说明
- 通过字符间的置换和代换实现
- 绝大多数的古典密码机制安全性取决于加密算法
2.古典密码的分类
2.1置换密码(换位密码)
- 定义:根据一定的规则重新排列明文,以便打破明文的结构特性。
- 特点:保持明文所有字符不变,只是利用置换打乱了明文字符的位置和次序。
- 置换密码分类:
(1).列置换密码:明文按照密钥的规程按列换位并且按列读出序列得到密文。
过于复杂的定义不再总结,直接上例子:
加密举例:
解密举例:(本质:加密矩阵求逆)
(2).周期置换密码:将明文串P按固定长度m分组,然后对每组中的子串按1,2,···,m的某个置换重排位置从而得到密文C。其中密钥x包含分组长度的信息、也包含明文变化信息。解密时按照密钥x的长度m分组后进行求逆重新排列即可得到明文
2.2代换密码
- 定义:将明文中的一个字母由其他字母、数字或符号替代的一种方法。
- 方法:建立一个代换表,加密时将需要加密的明文一次通过查表。替换为相应字符,明文字符逐个替换之后,生成无任何意义的字符串,即密文。这样的代换表。称为密钥
- 分类:(规则:按照一个明文字母是否是被一个固定的字符代换进行划分)
(1).单表代换密码(移位、仿射、替换)
对明文消息中出现的同一个字母,在加密时都使用同一个固定的字母来替换,在任何地方。
***代换密码的映射性:
A.举例:最早的代换密码:凯撒密码(移位密码)
注意:代换表可以随意打乱,以下代换表只是为了举例,保密性并不高
K=3时的加密结果:
B.仿射密码(移位密码的扩展)
A.举例
PS:逆元的求法:怎么求 7 = 1 (mod 26)的逆元 —— 可以遍历1到26中和26互素的数,能和7相乘mod26等于1点数就是它的逆.很容易求出715=105,264=104.所以逆元是15 。
C.单表替换密码
(2).多表代换密码
PS:单表代换密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替。
多表代换密码:构造多个密文字母表,在密钥的控制下用相应密文字母表中的一个字母来代替明文字母中的一个字母,即一个明文字母有多种代替。
A.维吉尼亚密码(直接上例子:P(明文)看行表头,K(密钥)看列表头,交汇即为C(密文))
B.希尔密码(直接上例子:矩阵乘法)
更复杂一些的例子:(将字母符号换算成数字,加密完成后将数字模26之后在转换成字母)