古典密码总结
猪圈密码
猪圈密码也称为朱高密码、共济会暗号、共济会密码或共济会员密码,是一种以格子为基础的简单替代式密码。只能对字母加解密并且符号无法复制,粘贴后会直接显示明文,即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。曾经是美国内战时盟军使用的密码,目前仅在密码教学、各种竞赛中使用。它的名称源自于字母的形状类似于猪圈的图案。
猪圈密码的原理是将字母替换为一系列特定的符号或图案。通常,字母被分成四个象限,每个象限代表一个特定的图案。在猪圈密码中,字母A被替换为一个没有符号的象限,而其他字母则被替换为具有不同符号组合的象限。这些符号可以是点、线、斜线等。加密时,将明文中的每个字母替换为相应的符号或图案。密文将由一系列符号组成,而不是实际的字母。接收方收到密文后,可以使用相同的图案和符号对照表来解密,将符号转换回明文的字母。
然而,它的安全性较低,容易被破解。由于猪圈密码的替换规则固定且有限,破解者可以通过分析频率统计和模式识别等方法来还原明文。
工具:猪圈密码解密
培根密码
培根密码是一种古老的替代密码,得名于英国哲学家弗朗西斯·培根。这种密码系统使用了字母的二进制编码,将字母分为两组,每组使用不同的符号代表。
培根密码的基本原理是将字母表中的每个字母对应到一个由A和B组成的五位二进制码。其中,A通常被表示为普通的字母,而B则是一个不同的符号(例如,大写字母I和小写字母j)。在培根密码中,明文中的每个字母被替换为对应的二进制码。这些二进制码可以使用A和B来表示,例如AAAAA、AAAAB、AAABA等。这样,明文就被转换为一系列由A和B组成的编码。解密时,接收方将编码转换回字母。每个五位二进制码都与培根密码字母表中的一个字母对应。通过对照字母表,接收方可以将编码还原为明文字母。由于培根密码的编码规则是固定的,且密文与明文长度相等,它并不提供很高的安全性。破解者可以通过分析频率统计和模式识别等方法来猜测明文。
工具:培根密码解密_培根密码转换器-ME2在线工具
仿射密码
仿射密码是一种古老的替代密码,使用了一种线性变换来对字母进行加密和解密。它的原理是通过对字母进行数学运算来改变它们的位置。
在仿射密码中,每个字母被映射到一个新的字母,具体的映射规则是通过两个参数来确定的:乘法因子(a)和加法因子(b)。乘法因子(a)必须与字母表大小互质,以确保加密和解密的唯一性。加法因子(b)用于平移字母表中的位置。加密时,明文中的每个字母先被乘以乘法因子(a),然后加上加法因子(b)。最后,对结果取模字母表大小,以保持在字母表范围内。这样,明文中的每个字母都被转换为一个新的字母。解密时,接收方将密文中的每个字母通过逆向运算还原为明文。首先,对密文字母进行减法运算,减去加法因子(b)。然后,将结果与乘法因子(a)的乘法逆元相乘,并取模字母表大小。最后,得到的结果就是明文中的原始字母。仿射密码的优点是相对简单,并且提供了一定的保密性。然而,由于仿射密码的加密和解密规则是固定的,且密文与明文长度相等,它并不提供很高的安全性。破解者可以通过频率分析和其他密码分析技术来破解仿射密码。尽管如此,仿射密码在早期密码学中有一定的应用,它可以用于教学、学术研究或玩具密码。
例子:
假设我们选择的乘法因子(a)为3,加法因子(b)为5,并且使用英文字母表作为字母集。
- 明文:HELLO
- 将明文中的每个字母转换为对应的数值(A=0,B=1,…,Z=25):
- H: 7
- E: 4
- L: 11
- L: 11
- O: 14
- 对每个字母应用仿射密码的加密公式:
- 加密公式: E ( x ) = ( a x + b ) m o d 26 E(x) = (ax + b) \mod 26 E(x)=(ax+b)mod26
- 加密过程:
- H: ( 3 × 7 + 5 ) m o d 26 = 0 (3 \times 7 + 5) \mod 26 = 0 (3×7+5)mod26=0,对应字母:A
- E: ( 3 × 4 + 5 ) m o d 26 = 17 (3 \times 4 + 5) \mod 26 = 17 (3×4+5)mod26=17,对应字母:R
- L: ( 3 × 11 + 5 ) m o d 26 = 0 (3 \times 11 + 5) \mod 26 = 0 (3×11+5)mod26=0,对应字母:A
- L: ( 3 × 11 + 5 ) m o d 26 = 0 (3 \times 11 + 5) \mod 26 = 0 (3×11+5)mod26=0,对应字母:A
- O: ( 3 × 14 + 5 ) m o d 26 = 9 (3 \times 14 + 5) \mod 26 = 9 (3×14+5)mod26=9,对应字母:J
- 密文:A RAJ
在以上示例中,我们使用了乘法因子(a)为3,加法因子(b)为5来进行仿射密码的加密过程。明文 “HELLO” 被加密为密文 “A RAJ”。我们对结果取模26,以确保结果仍在字母表的范围内。
埃特巴什码
埃特巴什码(Atbash cipher)是一种简单的替换密码,它是通过将字母表中的字母与其在字母表中对称位置的字母进行替换来进行加密和解密的。
在埃特巴什码中,字母表的对应关系是通过字母的位置对称来确定。明文字母表中的第一个字母 A 与密文字母表中的最后一个字母 Z 对应,B 与 Y 对应,以此类推。
例:
- 明文:HELLO2. 将明文中的每个字母与其在字母表中对称位置的字母进行替换:
- H 替换为 S
- E 替换为 V
- L 替换为 O
- L 替换为 O
- O 替换为 L
- 密文:SVOOO