正如玛丽女王的悲剧和爱伦·坡的挑战所揭示的,单表替换密码有一个根本性的弱点:字母频率特征。

http://100.115.229.49:8090/archives/nVz0eiOu

凯撒密码

凯撒密码是单表替换密码中最简单、最古老的一种形式。

核心机制: 将整个明文字母表固定地向右平移 N 个位置(N 就是密钥),得到密文字母表。

例如,密钥 N=3

一个字母平移了几个位置密钥就是多少,加密后即可得出密文

可以看到,凯撒密码根本不需要密码本,但依旧过不了频率分析

数学描述:

  • 加密: E(X) = (X + N) mod 26 (X 是明文序号,mod 26 保证结果在字母表范围内循环)

  • 解密: D(X) = (X - N) mod 26

优势与劣势: 它不需要厚厚的密码本,密钥(位移量 N)简单易记。然而,它完全无法抵御频率分析!因为它只是单表替换的一个特例,明文字母的频率特征在密文中原封不动地保留了下来。

维吉尼亚密码

在凯撒密码的基础上,为每个字母单独加密,它诞生于玛丽女王密码刚被沃尔辛厄姆破解的 1586 年,遗憾的是那时它并不为人所知,否则玛丽女王的断头台结局将很有可能被改写。

核心思想: 不再使用一张固定的替换表,而是使用一个密钥单词(如 HOWEVER)来为明文中的每一个字母选择不同的替换规则(本质上是不同的凯撒位移)。

加密过程:

  1. 将密钥单词重复书写,直到其长度与明文一致(如 HOWEVERHOWEVERHOW...)。

  2. 对于明文中的第 i 个字母:

    • 找到它对应的密钥字母(第 i 个)。

    • 在维吉尼亚方阵(一个 26x26 的字母表矩阵)中,以密钥字母所在行作为替换表,对明文字母进行替换。

    • ( 等效理解:密钥字母决定了该位置明文字母的凯撒位移量 NN 等于密钥字母在字母表中的序号 (A=0, B=1, ..., Z=25)。使用公式 E(X_i) = (X_i + N_i) mod 26 加密,其中 N_i由第 i 个密钥字母决定 )

示例 - 加密玛丽遗言片段:

  • 明文: I forgive you with all my heart for now wihope you shall make an end of all my troubles (注意:原文可能有笔误,按示例密文反推)

  • 密钥: HOWEVER (循环使用)

  • 加密片段:

    • 明文 I (8) + 密钥 H (7) = 15 -> P

    • 明文 (忽略空格) -> 空格

    • 明文 f (5) + 密钥 O (14) = 19 -> T

    • ...

    • 明文 v (21) + 密钥 R (17) = 38 mod 26 = 12 -> M

    • ...

  • 密文: P T K V B M M L M K Y R M K O O H P H C Y L O N X A S I U C S M C S G L M K Y N L R S Z I E F I R U S J H J J R S Z I C O V F B P H I N

现在明文中的 e 就被加密成了 L L L I S I ,其他字母也一样,这样维吉尼亚密码就混淆了字母的频率,弥补了单表替换密码的不足。

事实上用多套密码本加密的思路并不新鲜,但使用厚厚的密码本加密根本就不实用,维吉尼亚密码的优势就是方便,密钥单词可以任意选择,庞大的密钥空间和频率分析法的失效,让人们在几个世纪中都束手无策因此维吉尼亚密码一度被称为——不可破解的密码。

维吉尼亚的破绽

但任何密码都是有破绽的,只要仔细观察总能发现端倪

比如明文的 you 被加密成了 MKY ,两个 you 之间隔了 28 个字母

密钥 HOWEVER 加密完第一个 you 之后,经过四次循环加密,刚好在第四次加密时,再次将 you 加密成了 MKY

维吉尼亚密码可以混淆单个字母的出现频率,但无法掩盖明文的结构规律

找到密文中相同的字母组合,通过其间隔位置,可以判断出密钥的长度

简单理解,间隔出的某个公约数就可能是密钥长度,密文越长这种字母组合出现的可能就越多

这就是维吉尼亚密码的破绽,当我们猜出密钥的长度,就可以将维吉尼亚密码的问题,转变为多个凯撒密码的问题

比如在这里,我们猜测密钥的长度为 4,但不知道具体单词是什么

我们将密钥的位置进行编号,找出密钥 1-4 加密的密文,提出来就是 4 个凯撒密码,而凯撒密码是单表替换密码,用频率分析法就能轻易破解

其实就 5 步:

  1. 找出重复的密文,猜测密钥单词。

  2. 将密文按每个密钥字母提出来,得到多个凯撒密码。

  3. 对每个凯撒密码进行频率分析,找出其中可能对应着明文 E 的密文。

  4. 根据密文和明文 E ,再结合维吉尼亚加密表格,得到密钥字母。

  5. 用密钥字母对密文解密,看得出的明文是否有意义。

总结

安全性的局限: 维吉尼亚密码并非真正「不可破」。其安全性严重依赖于:

  • 密钥长度 >> 明文结构特征: 密钥越长,周期性越不明显,重复片段间隔是密钥倍数的概率越低,破译难度越高。但过长的密钥难以记忆和使用。

  • 密文长度: 如果密文长度远小于密钥长度,或者密钥是真正随机且与明文等长(即「一次一密」),那么上述方法将完全失效,理论上达到无条件安全(Unconditional Security)。

历史意义: 维吉尼亚密码代表了古典密码学对抗频率分析的智慧巅峰。它的出现标志着密码学从依赖单表替换的「易破」时代,迈向了利用多表替换混淆统计特征的新阶段。然而,其周期性密钥的破绽最终也被发现和利用,推动了密码学向更复杂、更安全的方向发展(如更长的密钥、无周期性的滚动密钥、一次一密)。

核心教训: 维吉尼亚密码的兴衰史再次证明,在密码学的攻防战中,没有永恒的「不可破译」。新的密码设计总会带来新的挑战,而新的分析方法也总会应运而生。真正的安全,往往在于对密码原理的深刻理解和对潜在破绽的持续警惕。

🧸 参考文献

基本操作 - 可以玩的大学课程

本文基于基本操作发行的《成为一名密码朋克》项目