密语 · CIPHER | 目录 CH.03 / 26
绝密
Phase 1 · 古典时代

频率分析:统计学的胜利

一个有 4×10²⁶ 种密钥的密码,如何在一杯咖啡的时间里被字母频率击溃。

阅读 ~14 分钟 前置 第 2 章 Demo 频率直方图 + 替换破解台

上一章结尾我们留了个悬念:如果让 26 个字母各自随机映射,密钥空间会暴涨到 26! ≈ 4×10²⁶,暴力破解彻底无望。这一章我们就来兑现那句话——密钥空间大,不等于安全。而击溃它的武器,九世纪的阿拉伯学者就已经握在手里了。

一、单表替换密码

单表替换密码用一张固定的替换表:每个明文字母对应唯一一个密文字母。凯撒密码是它的特例(替换表恰好是"整体移位");但一般的替换表可以是 26 个字母的任意置换。

明文  A B C D E F G …
密文  Q W E R T Y U …   (一张随意打乱的对照表)

密钥就是这整张表,共有 26! 种可能。这个数字大到什么程度?假设一台超算每秒能试一万亿(10¹²)张表,试完所有可能也要约 一千三百万年。凯撒的暴力破解在这里彻底失效了。

那 Alice 和 Bob 是不是终于安全了?九世纪的巴格达学者金迪(Al-Kindi)会告诉你:并没有。

二、语言会出卖自己

金迪的洞察极其简单:替换密码换掉了字母的"名字",却没换掉它们出现的"频率"。在英语里,字母 E 出现得最频繁(约 12.7%),其次是 T、A、O;而 Z、Q、X 极其罕见。如果 E 被替换成了 K,那么密文里 K 就会成为出现最多的字母——频率这条"指纹"原封不动地留了下来。

频率分析(frequency analysis)

通过统计密文中各符号的出现频率,并与目标语言的已知频率分布做匹配,来推断替换关系的破解方法。它是密码分析学的第一个系统性方法,也标志着密码学从"手艺"走向"科学"。

标准英文字母频率长这样(记住前几名 E T A O I N S H R 就够用了):

参考 英文字母标准频率

三、破解工作台

下面是一段用某个未知替换表加密的英文密文。工作台会画出它的字母频率(红条),叠在标准英文频率(浅色轮廓)之上。

你可以:①点 "按频率自动猜",让机器把"密文里最常见的字母"依次对应到"英文里最常见的字母"(E T A O…),看半通不通的明文浮现;②然后手动微调那张映射表,一两个字母一改,句子就会豁然开朗。这正是真实破译者的工作方式——统计学开个头,人脑补完剩下的。

DEMO 替换密码破解台
提示:这段密文其实是凯撒 K=3。自动猜会给出一个八九不离十的起点,剩下几个错位的字母靠上下文一眼就能修好——试着把明显拼错的单词里的字母改对。
为什么"自动猜"不能一步到位

因为一段有限文本的频率只是近似标准分布,尤其当文本较短时。真实的 E 也许在这段里排第二而非第一。所以频率分析给的是"高概率起点",不是答案。破译者还会用别的线索收尾:双字母组合(TH、HE、IN)、单字母词(只可能是 a 或 I)、词末的 S/E 等。语言的冗余无处不在,而冗余就是密码分析的养料

四、给现代密码学的启示

频率分析击溃替换密码,留下一条比"密钥要大"更深刻的教训:

好的密码必须抹平明文的统计结构,让密文看起来像均匀随机。

换句话说,密文里不该残留任何关于明文的可利用规律。这个要求上升到极致,就是第 1 章提过的"密文与随机噪声不可区分"。现代对称密码为此引入两个 Shannon 提出的核心性质:

替换密码有一点点混淆(字母被换了),却毫无扩散(每个明文字母只影响对应的一个密文字母,频率因此原样保留)。现代密码把这两者拉满,频率分析就再也无从下手。

这不只是历史

频率分析今天依然在"咬人"。2013 年前后,不少人以为把数据库字段用某种"确定性加密"(相同明文永远得到相同密文)存起来就安全了——直到研究者用类似频率分析的手法,仅凭密文的重复模式就还原出大量医疗记录里的性别、种族、诊断字段。确定性加密泄露的正是"哪些明文相同"这一统计结构。你会在第 8 章的 ECB 模式里,看到同一个幽灵以图像的形式现身。

本章要点

  • 单表替换密码密钥空间达 26!,暴力破解无望——但这不等于安全。
  • 频率分析利用"替换不改变字母出现频率"这一破绽,把统计指纹当作突破口。
  • 破解流程:频率匹配给起点 → 人工用双字母组合、常见词收尾。语言的冗余是养料。
  • 现代密码的应对是混淆 + 扩散,目标是让密文的统计特性与随机噪声不可区分。