3. 古典密码学(二):维吉尼亚密码、Playfair密码的原理与安全性分析

在掌握了单表替换密码(如凯撒密码、仿射密码)的脆弱性后,密码学家开始寻求更安全的加密方式。本章将深入剖析两种最具代表性的多表替换密码:维吉尼亚密码与Playfair密码。它们通过引入密钥和分组结构,显著提升了古典密码的安全性,是通往现代密码学的重要桥梁。

3.1 维吉尼亚密码:多表替换的里程碑

维吉尼亚密码是16世纪由布莱斯·德·维吉尼亚提出的,它通过使用一个密钥词来动态选择多个凯撒密码表,从而打破了单表替换中字母频率分布固定的弱点。

3.1.1 加密与解密原理

维吉尼亚密码的核心是维吉尼亚方阵(Vigenère Square),它是一个26×26的表格,每一行都是一个凯撒移位表。加密过程如下:

  1. 确定密钥:选择一个密钥词(如 "KEY"),将其重复至与明文等长。
  2. 查找方阵:对于明文的每个字母,以明文字母为列,以密钥字母为行,在方阵中交叉点的字母即为密文。
  3. 数学等价:加密公式为 Ci = (Pi + Ki) mod 26,解密公式为 Pi = (Ci - Ki) mod 26。
示例: 明文 "HELLO",密钥 "KEY"(重复为 KEYKE)。
H(7) + K(10) = 17 → R
E(4) + E(4) = 8 → I
L(11) + Y(24) = 35 mod 26 = 9 → J
L(11) + K(10) = 21 → V
O(14) + E(4) = 18 → S
密文为 "RIJVS"。

3.1.2 安全性分析:卡西斯基测试与重合指数

维吉尼亚密码在长达三个世纪里被认为是不可破解的,直到19世纪被查尔斯·巴贝奇和弗里德里希·卡西斯基分别攻破。其核心弱点在于密钥的周期性重复。

攻击方法 原理 步骤
卡西斯基测试 寻找密文中重复出现的字符串,其间隔距离很可能是密钥长度的整数倍。 1. 找出所有重复的三字母及以上片段。
2. 计算各片段起始位置之间的差值。
3. 取所有差值的最大公约数,即为密钥长度。
重合指数法 利用字母频率分布统计特性,验证密钥长度猜测的正确性。 1. 按猜测的密钥长度将密文分组。
2. 计算每组的重合指数(IC)。
3. 若IC接近0.065(英语自然语言),则密钥长度正确。
安全警示: 维吉尼亚密码的安全性完全依赖于密钥的随机性和长度。若密钥长度小于明文,或密钥本身是字典单词,则极易被卡西斯基测试和频率分析联合攻破。现代密码学中,一次性密码本(OTP)可视为密钥长度等于明文长度的维吉尼亚密码,是唯一理论上安全的密码。
维吉尼亚密码:加密流程与攻击向量 明文 P 密钥 K (重复) 维吉尼亚方阵 密文 C 卡西斯基测试 重合指数分析 攻击结果:确定密钥长度 → 分组频率分析 → 恢复密钥 弱点根源:密钥周期性重复导致统计特征泄露 防御方向:增加密钥长度 → 一次性密码本 (OTP)

3.2 Playfair密码:双字母分组的矩阵密码

Playfair密码是1854年由查尔斯·惠斯通发明的,它是第一种使用双字母(digraph)作为加密单元的密码。通过将明文分成字母对,并基于一个5×5密钥矩阵进行替换,它有效隐藏了单字母频率特征。

3.2.1 密钥矩阵构建与加密规则

Playfair密码使用一个5×5的字母矩阵(将I和J视为同一字母),由密钥词决定矩阵的排列顺序。

矩阵构建步骤:
1. 选取密钥词(如 "PLAYFAIR")。
2. 从左到右、从上到下填入密钥词中的不重复字母。
3. 将剩余字母(I/J合并)按字母顺序填入空白格。

加密时,将明文按以下规则处理为字母对:

  • 规则1(相同对):若两个字母相同,在中间插入一个填充字母(如 'X'),然后重新分组。
  • 规则2(奇数长度):若明文长度为奇数,在末尾添加一个填充字母(如 'X')。

对于每一对字母(P1, P2),根据它们在矩阵中的位置进行替换:

位置关系 加密规则 示例(假设矩阵)
同行 取各自右侧的字母(循环) AR → RM
同列 取各自下方的字母(循环) MU → UZ
矩形 取同一行中另一列的字母(对角交换) HS → BP 且 BP → HS

3.2.2 安全性分析:抵抗频率分析的能力与局限

Playfair密码相比维吉尼亚密码有显著进步,但依然存在结构性弱点。

  • 优势:加密单元为双字母(共600种可能组合),有效抵抗了单字母频率分析。
  • 弱点1:双字母频率:英语中常见双字母(如 TH, HE, IN)的频率分布依然可被统计。
  • 弱点2:明文结构泄露:填充字母 'X' 的插入位置和频率会暴露明文结构。
  • 弱点3:已知明文攻击:若已知部分明文-密文对,可逐步恢复整个密钥矩阵。
实战对比: 在第一次世界大战中,Playfair密码被英军用于战术通信。虽然它比维吉尼亚密码更难手工破解,但借助计算机,现代攻击者可以在毫秒级内通过模拟退火算法或遗传算法完成破解。
Playfair密码:5×5密钥矩阵与三种加密规则 密钥矩阵 (密钥: PLAYFAIR) P L A Y F I/J R B C D E G H K M N O Q S T U V W X Z 规则1:同行 → 取右侧 规则2:同列 → 取下方 规则3:矩形 → 对角交换 示例:AR → RM (同行右移) 示例:MU → UZ (同列下移) 示例:HS → BP (矩形对角) 安全性:抵抗单字母频率分析 弱点:双字母频率 + 填充字母泄露 + 已知明文攻击

3.3 两种密码的对比与演进

维吉尼亚密码和Playfair密码代表了古典密码学从单表到多表、从单字母到多字母的两个重要演进方向。下表从多个维度对它们进行对比:

对比维度 维吉尼亚密码 Playfair密码
加密单元 单字母 双字母(字母对)
密钥形式 密钥词(重复使用) 5×5密钥矩阵
抗频率分析 中等(隐藏单字母频率,但泄露周期性) 较强(隐藏单字母频率,但泄露双字母频率)
主要攻击方法 卡西斯基测试 + 重合指数 双字母频率分析 + 已知明文攻击
计算复杂度 低(手工可算) 中(需要矩阵查找)
历史地位 多表替换的奠基者 分组密码的早期雏形
学习启示: 维吉尼亚密码的周期性弱点直接催生了一次性密码本的概念;而Playfair密码的双字母分组思想,则为现代分组密码(如AES)中的“扩散”与“混淆”设计原则提供了历史参照。理解这些古典密码的攻防博弈,是掌握现代密码学安全模型的最佳起点。