古典密码设计思想与经典算法:从罗马军团到数字世界的密码学之旅

一、古典密码设计思想:信息的“魔法变形术”

1. 核心思想

古典密码学的基本目标是通过变换明文字符的位置或形式,使其对未授权者不可读。其核心设计思想分为两种:

  • 置换(Permutation):打乱字符顺序,但保留字符本身
  • 替代(Substitution):用其他字符替换原字符,改变字符内容

这两种操作如同“整理书架”和“换衣服”的区别:

  • 置换:把书架上的书按新顺序排列(位置变化)
  • 替代:把每本书的内容替换成其他文字(内容变化)

二、置换密码:字符的“位置魔术秀”

1. 定义与算法

置换密码通过重新排列明文字符的位置生成密文,解密时通过相同密钥恢复原始顺序。

  • 加密公式C = P(K, M)(根据密钥K对明文M进行位置置换)
  • 解密公式M = P⁻¹(K, C)(根据密钥K的逆置换还原密文C)

2. 例子

假设明文是“HELLO”,密钥为 [3,1,4,0,2](表示新位置索引):

  1. 原字符位置:H(0), E(1), L(2), L(3), O(4)
  2. 按密钥排列:L(3), E(1), O(4), H(0), L(2)
  3. 密文结果:LEOHL

解密过程
密钥逆序为 [3,4,2,0,1],将密文LEOHL还原为HELLO。


三、代替密码:字符的“身份伪装术”

1. 定义与分类

代替密码用其他字符替换明文字符,分为两类:

  • 单表代替:固定替换规则(如凯撒密码)
  • 多表代替:动态替换规则(如维吉尼亚密码)

2. 典型算法

  • 加密公式C = S(K, M)(根据密钥K对明文M进行字符替换)
  • 解密公式M = S⁻¹(K, C)(根据密钥K的逆替换还原密文C)

四、加法密码:字母的“位移游戏”

1. 定义与算法

加法密码(凯撒密码)通过字母表的循环位移加密,是最简单的单表代替密码。

  • 加密公式C = (M + K) mod 26
  • 解密公式M = (C - K) mod 26
    (注:字母A=0, B=1,... Z=25)

2. 例子

以凯撒密码(K=3)加密“ATTACK”:

  1. 明文转换为数字:A(0), T(19), T(19), A(0), C(2), K(10)
  2. 加密后数字:D(3), W(22), W(22), D(3), F(5), N(13)
  3. 密文结果:DWWDFN

五、乘法密码:字母的“数学魔法”

1. 定义与算法

乘法密码通过字符位置的乘法模运算加密,要求密钥与字母表长度互质(如26)。

  • 加密公式C = (M × K) mod 26
  • 解密公式M = (C × K⁻¹) mod 26
    (注:K⁻¹是K在模26下的乘法逆元)

2. 例子

以密钥K=5加密“hello”:

  1. 明文转换为数字:h(7), e(4), l(11), l(11), o(14)
  2. 加密后数字:7×5=35→9, 4×5=20→20, 11×5=55→3, 11×5=55→3, 14×5=70→18
  3. 密文结果:JUKKB(对应数字9,20,3,3,18)

解密:K⁻¹=21(因5×21 mod 26=1),将密文JUKKB还原为hello。


六、仿射密码:加法与乘法的“组合技”

1. 定义与算法

仿射密码结合加法和乘法,公式为:

  • 加密公式C = (a × M + b) mod 26
  • 解密公式M = a⁻¹ × (C - b) mod 26
    (注:a必须与26互质)

2. 例子

以a=5, b=8加密“HELLO”:

  1. 明文转换为数字:H(7), E(4), L(11), L(11), O(14)
  2. 加密过程:
    • H: (5×7 + 8) mod 26 = 43 mod 26 = 17 → R
    • E: (5×4 + 8) mod 26 = 28 mod 26 = 2 → C
    • L: (5×11 + 8) mod 26 = 63 mod 26 = 11 → L
    • L: 同上 → L
    • O: (5×14 + 8) mod 26 = 78 mod 26 = 0 → A
  3. 密文结果:RCLLA

七、凯撒密码:历史上的“密码鼻祖”

1. 定义与算法

凯撒密码是加法密码的特例(K=3),古罗马军队曾用它传递军事命令。

  • 加密公式C = (M + 3) mod 26
  • 解密公式M = (C - 3) mod 26

2. 例子

加密“ROMAN”:

  1. 明文转换为数字:R(17), O(14), M(12), A(0), N(13)
  2. 加密后数字:U(20), R(17), P(15), D(3), Q(16)
  3. 密文结果:URPDQ

八、古典密码的“弱点与挑战”

1. 频率分析攻击

古典密码依赖固定替换规则,因此容易通过字母频率统计破解。例如:

  • 英语中E出现频率最高(约12.7%)
  • 如果密文中X出现频率最高,可能对应E

2. 穷举攻击

  • 凯撒密码:仅25种可能密钥(K=1到25)
  • 加法密码:26种可能密钥(K=0到25)

3. 现代密码学的启示

尽管古典密码已被现代算法(如AES)取代,但它们是密码学的基石:

  • 置换思想:现代密码中的“混淆”与“扩散”原则
  • 替代思想:S盒(Substitution Box)的设计基础

九、结语:从古代到未来的密码学传承

古典密码如同密码学的“童谣”,用简单的数学规则守护着人类最早的通信秘密。从凯撒的军令到现代区块链的加密算法,密码学始终在进化。如今,量子计算和同态加密正在重塑密码学的边界,但古典密码的智慧——用数学保护信息——依然是所有密码系统的灵魂。

你可能感兴趣的:(密码学,密码学)