传统的对称密码
传统对称密码的两种类型是替换密码和转置密码。以下流程图对传统密码进行了分类:
1.替换密码:
替换密码进一步分为单字母密码和多字母密码。
首先,让我们研究一下单字母密码。
- 单字母密码 –
在单字母密码中,明文中的每个符号(例如,“follow”中的“o”)都映射到一个密文符号。无论一个符号在明文中出现多少次,都会对应同一个密文符号。例如,如果纯文本是 'follow' 并且映射是:- f -> g
- o -> p
- l -> 米
- w -> x
密文是'gpmmpx'。
单字母密码的类型有:
(一种)。加法密码(移位密码/凯撒密码)–
最简单的单字母密码是加法密码。它也被称为“移位密码”或“凯撒密码”。顾名思义,就是对明文进行“加法模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。由于密钥空间较大,因此相对安全。
这里使用了两个密钥 k 1和 k 2 。C = [(M * k 1 ) + k 2 ] mod n
M = [(C – k 2 ) * k 1 -1 ] mod n有关更多信息和实现,请参阅仿射密码
现在,让我们研究一下多字母密码。
- 多字母密码 –
在多字母密码中,明文中的每个符号都映射到不同的密文符号,而不管它是否出现。符号的每一次不同出现都有不同的密文映射。例如,在纯文本“follow”中,映射为:f -> q
o -> w
l -> e
l -> r
o->t
w -> y因此,密文是'qwerty'。
多字母密码的类型有:
2.转置密码:
转置密码不处理一个符号与另一个符号的替换。它着重于改变符号在纯文本中的位置。明文中第一个位置的符号可能出现在密文中的第五个位置。
其中两个转置密码是:
- 列转置密码 –
有关信息和实现,请参阅列转置密码 - 围栏密码 –
有关信息和实施,请参阅 Rail-Fence Cipher