将纯文本消息转换为密文
有两种主要方法可以修改纯文本以获得密文:替换技术和转置技术。
1.替换技术:
替换技术涉及用其他字母和符号替换字母。更直接的方式是替换明文的字符,并在其位置使用其他替代字符、数字和符号。
替代技术的类型:
- 凯撒密码——
在这种情况下,纯文本的所有字符都被具有相同模式的其他字符替换。例如,a 替换为 D,B 替换为 E。 - 单字母密码 –
凯撒密码的主要缺点是所有元素都用相同的技术替换,密码分析者很容易破解它。在单字母密码中,字符替换之间没有关系。因此,密码分析者更难破解它。比如a可以换成BZ,B可以换成A、CZ。 - 谐音替换密码 –
在这种技术中,一个纯文本字母表可以映射到多个密文字母表。这是具有最大安全性的最佳替代技术。例如,a 可以替换为 D 和 E。 - Polygram 替换密码 –
在这种情况下,不是替换一个字母,而是替换字母块。例如,
Polygram substitution
HELLO -------------------> YUQQW
HELL --------------------> TEUI
- 维吉尼密码——
该技术使用多个字符键。每个密钥都加密一个字符。每个字符都替换为一个数字(A=0,B=1,…Z=25)。使用完所有密钥后,它们将被回收。对于加密,使用的公式:E=(M+K)mod 26
Plaintext: ATTACKATDAWN
Key: LEMONLEMONLE
Ciphertext: LXFOPVEFRNHR
2.换位技巧:
在转置技术中,字符的身份保持不变,但它们的位置被改变以创建密文。
换位技术的类型:
(i) 围栏技术——它使用一个简单的算法:
- 将纯文本消息写为对角线序列。
- 将步骤 1 中写入的纯文本读取为行序列。
Plain text: come home
c m h m
o e o e
Cipher text : (READ ROW BY ROW) cmhmoeoe
(ii) 简单的列转置技术——它使用一个简单的算法:
- 在预定义的列中逐行写入纯文本消息。
- 逐列阅读消息。它可以是任何顺序。
- 这样得到的消息是密文消息。
Plain text: come niki (suppose we have 4 columns )
C1 C2 C3 C4
c o m e
n i k i
现在我们可以按任何列顺序阅读。让我们通过 3 -> 2 -> 4 ->1 来阅读它
Cipher text : mkoieicn
(iii) Vernam Cipher——它使用一个简单的算法:
- 将每个纯文本字符视为递增序列中的数字(A=0,B=1,...Z=25)。
- 对键的每个字符执行相同的操作。
- 添加与纯文本字母和键对应的每个数字。
- 如果产生的总和大于 26,则从中减去 26。
- 将每个和的数字转换回字母表,它给出了我们的密文。
Plain text: HOW ARE YOU
Key : NCBTZQARX
H O W A R E Y O U
7 14 22 0 17 4 24 14 20
+
N C B T Z Q A R X
13 2 1 19 25 16 0 17 23
------------------------------------
20 16 23 19 42 20 24 31 43
Subtract 26 if >26: 20 16 23 19 16 20 24 5 17
Cipher text : U Q X T Q U Y F R
Cipher text : UQXTQUYFR
每种技术的弱点,
在替换的情况下:
- 因为它是基于一个基于翻译表的字母替换另一个字母。一旦知道转换表,代码就会被破坏。
- 简短的单词、重复模式的单词以及常见的首尾字母都为猜测加密模式提供了线索。
- 加密算法必须是规则的,它才能成为算法并且密码学家能够记住它。不幸的是,规律性为密码分析者提供了打破替换的线索。
在转置的情况下:
正如有特征字母频率一样,也有相邻字母对的特征模式,称为图表(2 个字母组)和三元组(3 个字母组)。字母组的出现频率可用于匹配已在密文中分离的明文字母。