维吉尼亚密码详解:原理、历史与破解
深入了解维吉尼亚密码(Vigenère Cipher):一种经典的多表替换密码。本文将介绍其历史背景、加密原理(维吉尼亚方阵)、具体的加密解密示例,以及如何通过卡西斯基试验等方法进行破解。
什么是维吉尼亚密码?
维吉尼亚密码(Vigenère Cipher)是一种多表替换密码。与凯撒密码这种单表替换密码不同,维吉尼亚密码使用一系列不同的凯撒密码组成,这些凯撒密码的位移量由一个关键词(Key)决定。
由于使用了多个字母表进行替换,维吉尼亚密码在很长一段时间内被认为是无法破解的,甚至获得了“不可破译的密码”(le chiffre indéchiffrable)的美誉。
👉 在线体验: 维吉尼亚密码加密/解密工具
历史背景
虽然这种加密方法现在被称为“维吉尼亚密码”,但它实际上并不是布莱斯·德·维吉尼亚(Blaise de Vigenère)发明的。
- 乔万·巴蒂斯塔·贝拉索(Giovan Battista Bellaso):他在 1553 年的一本小册子中描述了这种基于密钥的加密方法,是真正的发明者。
- 布莱斯·德·维吉尼亚:他在 1586 年发明了一种更强的自动密钥密码(Autokey Cipher)。
在 19 世纪,由于误传,人们将贝拉索发明的多表替换密码归功于维吉尼亚,从此“维吉尼亚密码”这个名字就流传了下来。直到 19 世纪中叶,查尔斯·巴贝奇(Charles Babbage)和弗里德里希·卡西斯基(Friedrich Kasiski)才独立找到了破解这种密码的方法。
维吉尼亚密码的工作原理
维吉尼亚密码的核心工具是维吉尼亚方阵(Vigenère Square),也称为维吉尼亚表格(Tabula Recta)。
维吉尼亚方阵
这只是一个简单的字母表表格。第一行是 A-Z,第二行是 B-Z 加上 A(向左移一位),第三行是 C-Z 加上 A-B(向左移两位),以此类推,直到最后一行。
每一行实际上就是一个不同位移量的凯撒密码。
| A | B | C | D | E | … | |
|---|---|---|---|---|---|---|
| A | A | B | C | D | E | … |
| B | B | C | D | E | F | … |
| C | C | D | E | F | G | … |
| D | D | E | F | G | H | … |
| … | … | … | … | … | … | … |
加密过程
- 准备明文:去掉空格和标点符号(通常做法),全部转为大写。
- 准备密钥:选择一个关键词(Key)。
- 对齐密钥:将密钥重复写在明文下方,直到与明文长度一致。
- 查找替换:
- 取明文的一个字母作为列。
- 取对应位置的密钥字母作为行。
- 在方阵中找到行列交叉点的字母,即为密文。
数学表达
如果将 A-Z 映射为 0-25:
:第个明文字母:第个密钥字母(循环使用):第个密文字母
加密公式:
解密公式:
加密示例
假设我们要加密明文 “ATTACK AT DAWN”(黎明进攻),使用的密钥是 “LEMON”。
- 明文 (P):
A T T A C K A T D A W N - 密钥 (K):
L E M O N L E M O N L E - 加密过程:
- 第 1 个字:P=‘A’(0), K=‘L’(11) -> 0+11=11 -> L
- 第 2 个字:P=‘T’(19), K=‘E’(4) -> 19+4=23 -> X
- 第 3 个字:P=‘T’(19), K=‘M’(12) -> 19+12=31 mod 26 = 5 -> F
- …以此类推
最终密文:LXFOPVEFRNHR
如何破解维吉尼亚密码?
维吉尼亚密码抵抗了简单的频率分析,因为同一个字母在不同位置可能被加密成不同的密文字母(例如上面的两个 ‘T’ 分别变成了 ‘X’ 和 ‘F’)。
但是,它仍然不是无懈可击的。主要的破解方法包括:
1. 卡西斯基试验(Kasiski Examination)
这是弗里德里希·卡西斯基在 1863 年提出的方法。 核心思想是:如果一段明文中重复出现的单词或短语,恰好对应了密钥的相同部分,那么它们在密文中也会产生重复的片段。
- 寻找密文中重复出现的长于 3 个字母的字符串。
- 计算这些重复字符串之间的距离。
- 密钥的长度很可能是这些距离的最大公约数(GCD)的因数。
一旦知道了密钥长度 ,就可以将密文每隔 个字母分成一组。每一组实际上就是用同一个单表(凯撒密码)加密的。此时,就可以对每一组分别使用频率分析法来攻破。
2. 重合指数法(Index of Coincidence, IC)
这是威廉·F·弗里德曼(William F. Friedman)在 1922 年发明的方法。 通过计算密文的重合指数,可以判断密文是单表代换还是多表代换,并估计密钥的长度。
- 英语明文的 IC 值约为 0.067。
- 随机文本(或使用很长密钥加密的文本)的 IC 值约为 0.038。
如果尝试猜测不同的密钥长度将文本分组,当某次分组后每组的 IC 值都接近 0.067 时,该长度很可能就是正确的密钥长度。
优缺点总结
- 优点:
- 比凯撒密码安全得多。
- 破坏了字母的原始频率特征,使简单的频率分析失效。
- 密钥越长,安全性越高(当密钥长度等于明文长度且完全随机时,就变成了一次性密码本,理论上不可破解)。
- 缺点:
- 加密和解密过程比单表替换繁琐(在手工时代)。
- 密钥需要保密并传输给接收方。
- 如果不使用一次性随机密钥,仍然容易受到卡西斯基试验等方法的攻击。
立即尝试
想要亲自体验维吉尼亚密码的魅力,或者尝试破解一段神秘代码吗?
👉 点击这里使用工具: 维吉尼亚密码在线工具