维吉尼亚表盘
发布 2026 年 9 月 11 日 · · 9 分钟阅读
维吉尼亚密码被称作 le chiffre indéchiffrable——不可破译的密码——这个名号保持了大约三百年,其中只有一半是虚张声势。它是本织机上第一个密钥空间真正无法暴力穷举的密码,也是第一个必须用全新思路、而非更多耐心才能破开的密码。
- 时代
- 文艺复兴
- 类型
- 多表
- 密钥空间
- 26^k
- 难度
- 野战
I现象
维吉尼亚是一台移位量逐字母变化的凯撒密码,由循环使用的关键词驱动。
明文:LOOM NEVER STOPS
密钥:BRASSBRASSBRA
把两者都转成数字(A = 0),逐位相加,对 26 取模,再转回字母。
| 位置 | 明文 | 明文数 | 密钥 | 密钥数 | 和 | 密文 |
|---|---|---|---|---|---|---|
| 1 | L | 11 | B | 1 | 12 | M |
| 2 | O | 14 | R | 17 | 31 → 5 | F |
| 3 | O | 14 | A | 0 | 14 | O |
| 4 | M | 12 | S | 18 | 30 → 4 | E |
| 5 | N | 13 | S | 18 | 31 → 5 | F |
| 6 | E | 4 | B | 1 | 5 | F |
| 7 | V | 21 | R | 17 | 38 → 12 | M |
| 8 | E | 4 | A | 0 | 4 | E |
| 9 | R | 17 | S | 18 | 35 → 9 | J |
同一个明文字母在每一个位置产出的密文字母都不同。字母 E 在第 6、8 位出现,离开时分别成了 F 和 E。这一个事实就击溃了频率统计,也正是整个设计的目的。
II密钥空间
对长度为 k 的关键词,不同密钥数是 26^k。这听起来极大,当 k = 12 时确实是:9.5 × 10^16,远超人工搜索和 1930 年代的机械能力。
算术与现实之间的落差就在密钥长度上。26^k 假设攻击者不知道 k。而在实践中,密码分析者会先求出 k,依据的是卡西斯基 1863 年发表的观察:密文中重复出现的序列,其间距是密钥长度的倍数。
一旦知道 k,密码就塌了。每隔 k 取一个字母,你就得到 k 个独立的凯撒密码,每个只有 25 个密钥,每个都能单独用频率分析读出来。一个 12 字母的密钥缩水成 12 道小作业。
维吉尼亚的弱点不是 26^12 太小,而是密钥会重复,而重复是可以被测量的。
III加密步骤
- 约定一个关键词并去掉空格:BRASS。
- 把明文清成大写并去掉空格。
- 把关键词写在明文上方,按需重复。
- 把明文字母和密钥字母转成数字,A = 0 到 Z = 25。
- 逐对相加,结果对 26 取模。
- 转回字母。输出按五个一组断开。
- 也可以使用 26 × 26 的表盘:在上方找明文字母、在左侧找密钥字母,读取交叉点。
IV解密步骤
- 先用卡西斯基检验求密钥长度 k:在密文中找出重复的三字母序列,记录彼此的间距,再取间距的最大公约数。
- 按每 k 个字母取一个,把密文切成 k 条流。
- 对每条流单独做频率分析。每条流都是一台移位恒定的凯撒密码。
- 恢复出 k 个移位量;这些移位量就是数字形式的密钥。
- 把数字转回字母即可读出关键词,然后一次性解密全文。
- 若卡西斯基给出多个候选长度,先试最短的:一个可信的短密钥出现的可能性远高于长密钥。
V弱点
密钥重复。 本密码的所有弱点都源于此。与消息等长、只使用一次的密钥在原理上不可破——那个密码(Vernam)也出现在本织机后面。
卡西斯基检验。 任何明文词若在相距为密钥长度倍数的位置重复,就会在该距离处产生相同的密文序列。找出这些重复,取间距的最大公约数,就得到密钥长度的候选清单。
重合指数。 即使没有重复词,文本的统计质地也会暴露周期:把密文切成 k 条流,若每条流看起来都像自然语言,那么这个 k 就是对的。
可能词。 一个已知短语——“DEAR SIR”、署名块、标准开头——就能钉住那些位置上的密钥字母。两三个已知短语,密钥就出来了。
密钥管理。 关键词必须被记住并共享。在实践中,十八、十九世纪的使用者会挑好记的词,而对候选关键词做字典攻击,代价远低于 26^k 所暗示的。
VI实战挑战
密文
UYEDGPDRWEFDBWJT
提示: 密钥 BRASS,A = 0。把密文数字减掉密钥数字,对 26 取模。
展开答案
明文
THE LOOM REMEMBERS
·史料
乔万·巴蒂斯塔·贝拉索于 1553 年在《贝拉索先生的密码》中公布了这张表盘。布莱兹·德·维吉尼亚于 1586 年公布的是另一套更笨重的自密钥系统,经由十七世纪的一次误归因,这套密码永久地冠上了他的名字。它虽已公开,却数百年未被攻破;查尔斯·巴贝奇 1854 年破出了其中一个版本但从未发表方法,弗里德里希·卡西斯基则在 1863 年独立发表了破解法。有记载的第一次实战破解发生在美利坚内战期间的北方阵营,其后是布尔战争中的英方。
·继续读
维吉尼亚的失败比它的成功更有教益。它说明大密钥空间是必要条件,但不是充分条件:真正重要的是密钥材料在每个位置上被不同地使用,而循环密钥按定义就是一遍又一遍地同样使用。
这一洞察催生了一次一密——唯一有完善保密性形式证明的密码——也催生了那些能在每个字符上改变有效密钥、且不带循环模式的转轮机,也就是本织机的下一条目。
接下来:playfair-square 从另一端进攻问题——一次加密两个字母。