普莱费尔密码

如何破解普莱费尔密码:密码分析完全指南

学习如何使用频率分析、已知明文攻击、字典攻击以及带模拟退火的爬山算法破解普莱费尔密码。完整密码分析指南,含实例解析。

发布于 2026年3月18日
15 分钟阅读
密码学指南

如何破解普莱费尔密码:完整密码分析指南

普莱费尔密码是首个在军事通信中大规模使用的双字母替换密码,从布尔战争到两次世界大战,始终保护着英国的军事通信。尽管它远比简单替换密码安全,但并非牢不可破。本指南涵盖破解普莱费尔密码的所有主要方法,从经典频率分析到现代计算技术,一应俱全。

无论你手中的密文是附有已知密钥、疑似密钥,还是完全未知密钥,本指南都将逐步引导你完成密码分析过程。如需动手解密,请使用我们免费的普莱费尔密码解密器

了解普莱费尔密码的弱点

在尝试破解普莱费尔密码之前,必须先理解它为何可以被破解。该密码具有若干结构性特征,密码分析人员正是借此加以利用。

双字母组频率的保留

普莱费尔密码以字母对(双字母组)为单位进行加密,在给定密钥下,每个明文双字母组始终对应同一密文双字母组。这意味着英文双字母组的统计频率分布在密文中得以保留——只是映射到了不同的字母对上。

英文中最常见的双字母组如下:

排名双字母组频率
1TH3.56%
2HE3.07%
3IN2.43%
4ER2.05%
5AN1.99%
6RE1.85%
7ON1.76%
8AT1.49%
9EN1.45%
10ND1.35%

只要密文足够长(通常需要 200 个字符以上),这些规律便具有统计意义上的可识别性。

互逆特性

普莱费尔密码有一个关键结构特性:若明文双字母组 AB 加密为密文 CD,则明文 BA 加密为 DC。这种"互逆"关系在三条加密规则(同行、同列、矩形)下均成立。

这一特性意味着:若你观察到密文双字母组 XY 与其逆序 YX 以相关频率同时出现,便可推断明文中包含常见的可逆双字母组对(如 TH 与 HT,或 ER 与 RE)。

重复双字母组规律

相同的明文双字母组始终产生相同的密文双字母组。因此,明文中重复出现的词或短语会在密文中形成可识别的重复模式。英文中的常见模式(如"THE THE")或词尾(如"-TION")都会留下可检测的特征。

此外,普莱费尔密码会插入填充字符(通常为 X)以分隔相同的相邻字母对。如果在疑似解密结果中看到大量含 X 的双字母组,便可确认是普莱费尔机制所致,并有助于定位填充位置。

有限的字母表(25 个字母)

普莱费尔密码使用 25 个字母的字母表(I 和 J 共用一个位置),这意味着:

  • 密钥矩阵始终是 5×5 方格
  • 功能上不同的密钥矩阵共有 25! / 2 种(约 7.9 × 10^24)
  • 这个数字看似巨大,但远小于双字母密码的理论最大值,结构化搜索方法可以高效遍历

方法一:频率分析攻击

频率分析是破解普莱费尔密码最古老、最直观的方法。针对凯撒密码关键词密码的单字母频率分析(标准工具)对普莱费尔密码无效,但双字母组频率分析可以发挥重要作用。

建立英文双字母组频率表

进行频率分析需要一份英文双字母组频率参考表,通过统计大型英文语料库中所有连续字母对来构建。最常见的前 20 个双字母组约占典型英文散文全部字母对的 30%。

匹配密文双字母组

具体流程如下:

  1. 统计所有双字母组:对密文中的双字母组进行计数。若密文共有 N 个字符,则有 N/2 个双字母组(普莱费尔密文长度始终为偶数)。

  2. 按频率对密文双字母组排序,从最常见到最少见。

  3. 初步映射:将最常见的密文双字母组暂时对应到最常见的英文双字母组(TH、HE、IN、ER、AN 等)。

  4. 检查一致性:若密文双字母组 XY 对应明文 TH,其逆序 YX 是否以合理频率对应 HT?

  5. 尝试部分解密:使用暂定映射关系进行解密,观察输出中是否出现可识别的英文单词。

  6. 优化映射:调整产生不合理文本的对应关系。

实例解析

假设你有一段密文(300 个字符以上),频率统计结果如下:

最常见密文双字母组:QK (15)、BP (12)、KQ (10)、DM (9)、……

由于 TH 是英文中最常见的双字母组:

  • 暂时指定 QK -> TH
  • 检查 KQ(逆序)的出现频率是否与 HT 一致
  • KQ 出现 10 次——HT 确实是常见的逆序双字母组,因此此映射合理

对接下来最常见的双字母组重复此过程。建立 5 至 8 个映射后,通常已有足够的字母位置约束,可以开始推断密钥矩阵。

局限性:单独依靠频率分析需要相当长的密文(300 个字符以上),且最适用于自然英文散文。较短的信息,或词汇非常规的信息,可能缺乏足够的统计规律。

方法二:已知明文攻击(填词法)

已知明文攻击是破解普莱费尔密码最快的方法,前提是能猜到原始消息的部分内容。

什么是填词(Crib)?

"填词"是指你认为(或已知)出现在明文中的某个单词或短语,其来源包括:

  • 标准消息格式:军事消息通常以固定短语开头,如"ATTENTION"或"REPORT"
  • 上下文知识:若知道消息主题,某些术语极有可能出现(如"ATTACK"、"POSITION"、"SUPPLY")
  • 常见英文短语:"THE"、"AND"、"THAT"几乎出现在所有消息中
  • 署名或地址:消息通常以发件人姓名或标准结束语结尾

推断密钥矩阵位置

一旦获得填词及其对应的密文位置,每对明文-密文双字母组都能揭示密钥矩阵的结构信息:

  1. 同行对:若明文 AB -> 密文 CD,且 A 与 C 同行、B 与 D 同行,则可知这四个字母共处两行。

  2. 同列对:类似地,揭示列关系。

  3. 矩形对:揭示 A 与 C 同行、B 与 D 同行,同时 A 与 B 既不同行也不同列。

每个确认的字母对都进一步约束矩阵。通过 6 至 8 个确认的双字母组对,通常可以重建完整的 5×5 矩阵。

实例解析

假设你截获一段普莱费尔密文,并推测明文开头为"ATTACK AT DAWN":

明文双字母组:AT TA CK AT DA WN 密文双字母组(对应开头):BW WB HK BW NE XO

观察结果:

  • AT -> BW 且 TA -> WB(互逆特性得到确认)
  • AT 出现两次,均对应 BW(一致性得到确认)
  • 由于矩形规则下 A->B、T->W,A 与 B 同行,T 与 W 同行,且它们在矩阵中构成矩形

根据这些关系,可以开始在矩阵中定位 A、B、T、W。继续分析 CK -> HK(C 与 H 在同一行或同一列,且 K 位于其中),逐步构建完整矩阵。

方法三:字典攻击 / 暴力破解

为何完全暴力破解不可行(25!)

普莱费尔密钥矩阵是 25 个字母在 5×5 方格中的一种排列。不同排列的总数为 25! / 2(考虑到等价矩阵产生相同密码)。这约等于 7.9 × 10^24——即便使用现代计算机,穷举测试也远超可行范围。

以每秒十亿次测试的速度计算,完整的暴力破解约需 2.5 亿年。

基于字典的密钥搜索

一种可行的替代方案是以字典单词作为关键词进行测试:

  1. 构建关键词字典:收集常用英文单词、专有名词和短语(1 万至 10 万条)
  2. 对每个关键词:生成 5×5 矩阵,解密密文,并对结果评分
  3. 评分函数:通过以下方式衡量解密文本与英文的相似程度:
    • 四字母序列(quadgram)对数概率评分
    • 常用词检测(THE、AND、FOR 等)
    • 字母频率分布对比
  4. 按分数排序结果,检查得分最高的候选项

当密钥为单个英文单词时,字典攻击效果显著——这在军事和个人使用普莱费尔密码时是惯常做法。对于更复杂的密钥,请使用下文介绍的爬山算法。

方法四:带模拟退火的爬山算法

带模拟退火的爬山算法是破解普莱费尔密码最强大的通用方法。它无需任何密钥先验知识,对于 200 个字符以上的密文,破解成功率极高。

适应度函数设计(四字母组评分)

适应度函数用于评估候选解密文本与英文的相似程度。最有效的方法是使用四字母组对数概率

  1. 构建四字母组频率表:来自大型英文语料库(数百万字符)
  2. 对候选解密中的每个四字母序列:查询其对数概率
  3. 将所有对数概率求和,得到总适应度分数
  4. 分数越高,表示文本越接近英文

例如,四字母序列"THER"的对数概率较高(英文中频繁出现),而"QXZK"则极低。正确解密的消息总分将远高于随机排列。

标准适应度评分公式为:

fitness = sum(log10(count(quadgram_i) / total_quadgrams)) for all quadgrams in text

利用模拟退火跳出局部最优

纯爬山算法(始终接受改进)容易陷入局部最优——某些密钥矩阵得分较高,却并非真正的解。模拟退火解决了这一问题:

  1. 初始化:随机生成一个 25 个字母的密钥矩阵
  2. 设置初始温度 T 为较高值(如 T = 10)
  3. 主循环(通常迭代 5 万至 10 万次): a. 对当前密钥进行小幅随机修改(交换两个字母、交换两行、交换两列、翻转某行,或翻转某列) b. 用新密钥解密密文并计算适应度分数 c. 若新分数更高,则接受此变更 d. 若新分数更低,则以概率 exp((new_score - old_score) / T) 接受 e. 逐步降低 T(冷却策略,如 T = T × 0.999)
  4. 记录所有迭代中找到的最优密钥
  5. 多次重启,使用不同的随机初始密钥,以提高可靠性

步骤 3a 中的密钥修改应为小幅扰动,以探索邻近的密钥矩阵:

  • 交换两个随机字母:最常用的操作
  • 交换两行交换两列:较大的结构性变化
  • 翻转某行翻转某列:中等规模的修改

典型实现运行 20 至 30 次重启,每次迭代 5 万次,对于 200 个字符以上的密文可以可靠地找到正确密钥。较短的密文(100 至 200 个字符)可能需要更多次重启。

实战教程:逐步破解普莱费尔密码

下面通过一个完整示例,演示如何使用爬山算法破解普莱费尔密码。

第一步:确认是否为普莱费尔密码

在进行密码分析之前,先验证密文确实由普莱费尔密码加密。以下是判断依据:

  • 字符数为偶数:普莱费尔密文始终为偶数长度,因为它以双字母组为单位处理。若字符数为奇数,则不是普莱费尔密码。
  • 字母表检查:标准普莱费尔使用 25 个字母(I 和 J 合并)。若密文中出现 J,则可能是非标准变体或根本不是普莱费尔密码。
  • 重复双字母组规律:寻找以固定间隔重复出现的双字母组。在标准普莱费尔加密的英文中,200 个字符的消息里某些双字母组应出现 3 至 5 次。
  • 无单字母规律:与单表替换密码不同,普莱费尔不保留单字母频率分布。若标准频率分析结果与英文高度吻合,则该密码很可能不是普莱费尔。

第二步:初步分析

在运行爬山算法之前,先收集密文信息:

  • 统计所有双字母组并按频率排序。出现频率最高的 5 至 10 个双字母组是主要分析目标。
  • 寻找互逆特性:检查逆序双字母组是否以相关频率出现(例如,若 XY 出现 8 次,YX 是否也频繁出现?)。
  • 估计消息长度:较长的消息(300 个字符以上)为算法提供更多统计数据,破解速度更快,结果更可靠。

第三步:运行带模拟退火的爬山算法

使用以下参数配置算法:

  • 初始温度:T = 10(密文较短时可适当提高)
  • 冷却速率:每次迭代将 T 乘以 0.999
  • 每次重启的迭代次数:密文超过 200 个字符时为 5 万次;更短的密文增加到 10 万次
  • 重启次数:使用不同随机初始密钥重启 20 至 30 次
  • 适应度函数:英文四字母组对数概率评分

每次重启时,算法将收敛至高分密钥。记录所有重启中找到的最优密钥。

第四步:评估并验证结果

算法完成后,评估得分最高的解密结果:

  • 阅读文本:是否构成合理的英文散文?寻找可识别的单词和句子。
  • 检查适应度分数:与该长度英文文本的预期分数对比。正确解密的消息分数应显著高于随机文本。
  • 重新加密验证:使用发现的密钥矩阵,通过我们的普莱费尔密码计算器重新加密明文。若能还原出原始密文,则破解成功。
  • 提取关键词:检查密钥矩阵,寻找可识别的关键词。矩阵开头的几个字母通常拼出加密时使用的原始关键词。

亲自尝试

准备好解密普莱费尔密码了吗?请使用我们的免费在线工具:

如需探索其他密码类型,可参阅四方密码(普莱费尔的高级变体)、维吉尼亚密码(多字母替换)或 Hill 密码(基于矩阵的多字母替换加密)。

常见问题

破解普莱费尔密码需要多长的密文?

对于带模拟退火的爬山算法,约 200 个字符(100 个双字母组)是可靠运行的最低要求。300 个字符以上时,成功率接近 100%。单独使用频率分析通常需要 400 个字符以上。已知明文攻击在填词准确的情况下,对更短的密文也有效。

现代计算机能否即时破解普莱费尔密码?

能,对于典型密文而言。在现代笔记本电脑上,带模拟退火的爬山算法可在 10 秒内破解 200 个字符的普莱费尔密码。关键因素不是原始算力,而是适应度函数的质量和重启次数。

普莱费尔密码今天还在使用吗?

不再使用。普莱费尔密码已不用于现实安全场景,在第二次世界大战后正式退出军事用途。但它在密码学课程中广泛讲授,在解谜竞赛、密室逃脱和教育场合中仍很流行。

破解普莱费尔密码与破解凯撒密码有何区别?

凯撒密码只有 25 种可能的密钥,暴力破解轻而易举。普莱费尔密码约有 7.9 × 10^24 种可能的密钥,需要爬山算法等智能搜索方法。此外,凯撒密码通过单字母频率分析破解,而普莱费尔密码需要双字母组级别的分析。

普莱费尔密码为何在当时被认为是安全的?

1854 年问世时,普莱费尔密码具有革命性意义,因为它能抵抗当时唯一已知的攻击方法:单字母频率分析。巨大的密钥空间(25!)使得没有计算机的情况下暴力破解无从实现。直到 20 世纪初,密码分析人员才发展出针对双字母密码的有效技术;直到计算机时代,自动化破解才真正成为可能。

能否手动破解普莱费尔密码?

可以,但需要耐心和技巧。若有合适的填词,已知明文攻击可以手动完成。频率分析在密文较长时手动操作可行,但较为繁琐。爬山算法和模拟退火基本上需要借助计算机。普莱费尔解密工具可自动完成整个过程。

在安全性方面,普莱费尔密码与维吉尼亚密码相比如何?

维吉尼亚密码使用多字母替换(同一明文字母根据位置不同可映射到不同密文字母),而普莱费尔密码使用双字母组替换。对于短密钥,普莱费尔通常更为安全,因为其双字母组处理提供了更好的扩散效果。然而,使用长密钥的维吉尼亚密码可以更难分析。两者按现代标准均被视为不安全,且采用不同技术破解:维吉尼亚密码用 Kasiski 检验,普莱费尔密码用爬山算法。

哪些工具和软件可以破解普莱费尔密码?

多种工具可以自动破解普莱费尔密码。我们免费的在线普莱费尔密码解密器支持已知密钥的解密。对于未知密钥的破解,CrypTool(开源密码分析套件)、使用四字母组评分的自定义 Python 脚本,以及各类在线密码分析平台均支持普莱费尔破解。任何工具的关键要求是良好的适应度函数(四字母组评分)以及足够长的密文(200 个字符以上)。

关于本文

本文是我们综合 普莱费尔密码 教程系列的一部分。继续了解古典密码学,并探索我们的交互式密码工具。

试用 普莱费尔密码 工具

通过我们的交互式普莱费尔密码工具,将所学知识付诸实践。

试用 普莱费尔密码 工具