传统的对称密码有两种类型:替代密码和换位密码。以下流程图对传统密码进行了分类:
![传统对称密码1](https://www.lsbin.com/wp-content/uploads/2021/05/trad-new.png)
1.替代密码:
替代密码又分为单字母密码和多字母密码。
首先, 让我们研究一下单字母密码。
单字母密码–
在单字母密码中, 纯文本中的每个符号(例如, "跟随"中的" o")都映射到一个密文符号。无论符号在纯文本中出现多少次, 它都将对应于相同的密文符号。例如, 如果纯文本为" follow", 并且映射为:
- f-> g
- o-> p
- l-> m
- w-> x
密文为"gpmmpx"。
单字母密码的类型为:
![传统对称密码2](https://www.lsbin.com/wp-content/uploads/2021/05/mono-new.png)
(a).附加密码(Shift密码/凯撒密码)–
最简单的单字母密码是加法密码。也称为" Shift Cipher"或" Caesar Cipher"。顾名思义, 对明文执行"加法模数2"运算以获得密文。
C =(M + k)mod n
M =(C – k)mod n
其中
C->密文
M->消息/纯文本
k->键
密钥空间为26。因此, 它不是非常安全。暴力攻击可以破坏它。
有关更多信息和实现, 请参见
凯撒密码
(b)。乘法密码–
乘法密码与加法密码相似, 不同之处在于在加密过程中将密钥位乘以纯文本符号。同样, 将密文与密钥的乘性逆相乘以进行解密, 以获取明文。
C =(M * k)mod n
M = (C * k-1) mod n
其中
k-1 -> k (key)的乘法逆
乘法密码的密钥空间为12。因此, 它也不是很安全。
(C)。仿射密码–
仿射密码是加法和乘法密码的组合。密钥空间为26 * 12(加法密钥空间*乘法密钥空间), 即312。由于密钥空间较大, 因此比上述两个密钥空间相对安全。
这里两个键k1和k2被使用。
C = [(M * k1) + k2] mod n
M = [(C – k2) * k1-1 ] mod n
有关更多信息和实现, 请参见仿射密码
现在, 让我们研究一下多字母密码。
多字母密码–
在多字母密码中, 明文中的每个符号都映射到不同的密文符号, 无论其出现与否。每次出现符号时, 对密文的映射都不同。例如, 在纯文本"跟随"中, 映射为:
f-> q
o-> w
l-> e
l-> r
o-> t
w-> y
因此, 密文为" qwerty"。
多字母密码的类型为:
![传统对称密码3](https://www.lsbin.com/wp-content/uploads/2021/05/poly-new.png)
2.换位密码:
换位密码不处理将一个符号替换为另一个符号。它着重于更改符号在纯文本中的位置。纯文本中位于第一位置的符号可以出现在密文中位于第五位置的符号。
换位密码中的两个是:
![传统对称密码4](https://www.lsbin.com/wp-content/uploads/2021/05/trans-new.png)
- 柱状换位密码–
有关信息和实现, 请参见柱状换位密码 - 围栏密码–
有关信息和实现, 请参见围栏密码