频率分析:如何用字母统计破解替换密码
学习如何使用频率分析和字母统计破解替换密码。完整指南涵盖英语字母频率表、逐步密码破解教程、二元组分析和重合指数。
简介
频率分析是密码分析中最古老、最基础的技术——即在不知道密钥的情况下破解密码和暗语的科学。其基本原理看似简单:每种自然语言都有其特有的字母分布,而这种分布在经过替换密码加密后得以完整保留。通过统计密文中每个字母出现的次数,再与目标语言的预期频率进行对比,密码分析师便能推断出替换密钥,还原原始消息。
这一技术最早由阿拉伯博学家 Al-Kindi 于公元 850 年前后在其著作《密码消息解密手稿》中加以描述。此后近千年,它始终是破解密码的主要方法——即便在今天,它也是任何密码学入门课程中首先讲授的工具。
本指南深入覆盖频率分析的各个层面:数学基础、完整的英语字母频率参考表、破解真实密码的逐步教程、包含二元组和三元组分析的高级技术、重合指数,以及频率分析在现代密码面前的局限性。
欢迎使用我们的免费字母频率分析工具,实时分析任意文本并与标准英语频率分布进行对比。
什么是频率分析?
频率分析是研究某段文本中每个字母(或符号)出现频率的学问。在密码分析语境下,它利用了单表替换密码的一个根本弱点:这类密码将每个明文字母替换为唯一固定的密文字母,这意味着原始语言的频率模式在密文中被完整保留——只是映射到了不同的字母上。
举例来说,如果字母 E 在英语文本中出现的频率约为 12.7%,而某个替换密码将 E 替换为字母 Q,那么 Q 在密文中出现的频率也将约为 12.7%。替换改变的是标签,而非背后的统计分布。
这意味着,要破解密码,密码分析师只需:
- 统计密文中每个字母的出现频率
- 将这些频率与目标语言已知的频率分布进行对比
- 将密文中最常见的字母对应到明文中最常见的字母(英语中为 E),次常见的对应次常见(T),以此类推
- 利用二元组分析、常见单词模式和上下文线索对初步猜测进行修正
Al-Kindi 与密码分析的诞生
阿布·优素福·雅各布·伊本·伊斯哈格·阿尔-萨巴赫·Al-Kindi(约公元 801-873 年),西方世界称其为 Alkindus,是伊斯兰黄金时代在巴格达智慧宫工作的阿拉伯哲学家、数学家和博学家。他的著作《密码消息解密手稿》是已知最早记载频率分析的文献。
Al-Kindi 写道:
"破解一段加密消息的方法之一是——若已知其所用语言——找一段同种语言且足够长(约一页)的其他明文,然后统计每个字母出现的次数。我们将出现最多的字母称为'第一',次多的称为'第二',再次多的称为'第三',如此类推,直到统计完明文样本中所有不同的字母。"
这段描述与现代密码分析师所使用的技术本质上如出一辙。Al-Kindi 的著作在文艺复兴时期之前在欧洲几乎不为人知,但在阿拉伯世界,他的方法数百年间被用于破解外交和军事通信中使用的密码。
英语字母频率分布
下表呈现英语 26 个字母的标准频率分布,基于对数百万个词语的分析,涵盖报纸、小说、学术论文和通信等多类英语文本。
| 排名 | 字母 | 频率 (%) | 累计 (%) | 备注 |
|---|---|---|---|---|
| 1 | E | 12.702 | 12.70 | 最常见;出现于 "the"、"he"、"she"、"be" |
| 2 | T | 9.056 | 21.76 | 第二常见;"the"、"to"、"it"、"that" |
| 3 | A | 8.167 | 29.93 | 第三常见;"and"、"a"、"are"、"as" |
| 4 | O | 7.507 | 37.43 | "of"、"or"、"on"、"to"、"so" |
| 5 | I | 6.966 | 44.40 | "in"、"is"、"it"、"I"、"if" |
| 6 | N | 6.749 | 51.15 | "and"、"not"、"no"、"in"、"on" |
| 7 | S | 6.327 | 57.48 | "so"、"she"、"is",以及复数形式 |
| 8 | H | 6.094 | 63.57 | "the"、"he"、"has"、"had"、"his" |
| 9 | R | 5.987 | 69.56 | "are"、"or"、"her"、"for" |
| 10 | D | 4.253 | 73.81 | "and"、"did"、"do"、"had" |
| 11 | L | 4.025 | 77.84 | "all"、"like"、"last"、"will" |
| 12 | U | 2.758 | 80.60 | "up"、"us"、"but"、"use" |
| 13 | C | 2.782 | 83.38 | "can"、"come"、"could" |
| 14 | M | 2.406 | 85.79 | "me"、"my"、"may"、"more" |
| 15 | W | 2.360 | 88.15 | "was"、"we"、"with"、"will" |
| 16 | F | 2.228 | 90.38 | "for"、"from"、"first" |
| 17 | Y | 1.974 | 92.35 | "you"、"yes"、"year" |
| 18 | G | 2.015 | 94.37 | "go"、"get"、"good" |
| 19 | P | 1.929 | 96.30 | "put"、"part"、"people" |
| 20 | B | 1.492 | 97.79 | "but"、"be"、"by"、"been" |
| 21 | V | 0.978 | 98.77 | "very"、"have"、"over" |
| 22 | K | 0.772 | 99.54 | "know"、"keep"、"king" |
| 23 | X | 0.150 | 99.69 | "next"、"six"、"box" |
| 24 | J | 0.153 | 99.84 | "just"、"job"、"join" |
| 25 | Q | 0.095 | 99.94 | "queen"、"quite"、"question" |
| 26 | Z | 0.074 | 100.00 | "zero"、"zone"、"size" |
助记词 ETAOIN SHRDLU 包含了出现频率最高的前 12 个字母。这个序列在莱诺铸排机排字工人中广为人知(他们的键盘按字母频率排列),以至于这个词组进入了大众文化,成为乱码文字的代名词。
不同语言的频率差异
不同语言的频率特征差异显著,这有助于识别加密文本所用的语言:
| 语言 | 最常见字母(降序) | 重合指数 |
|---|---|---|
| 英语 | E, T, A, O, I, N, S, H, R | 0.0667 |
| 法语 | E, A, S, I, N, T, R, L, U | 0.0778 |
| 德语 | E, N, I, S, R, A, T, D, H | 0.0762 |
| 西班牙语 | E, A, O, S, R, N, I, D, L | 0.0775 |
| 意大利语 | E, A, I, O, N, L, R, T, S | 0.0738 |
| 葡萄牙语 | A, E, O, S, R, I, N, D, M | 0.0745 |
可以注意到,E 是大多数欧洲语言中最常见的字母,但其余字母的频率排序差异显著。这意味着频率分析需要事先知道(或合理猜测)明文所用语言。
逐步破解密码教程
下面通过一个完整示例,演示如何使用频率分析破解一段替换密码。密文如下:
UIF RVJDL CSPXO GPY KVNQT PWFS UIF MBAZ EPH.
UIF TFDPOET BGUFS UIF GJSTU BSF BMXBZT IBSEFS.
第一步:统计字母频率
首先统计所有字母字符,忽略空格和标点:
| 字母 | 次数 | 频率 (%) | 字母 | 次数 | 频率 (%) |
|---|---|---|---|---|---|
| F | 8 | 10.67 | B | 4 | 5.33 |
| U | 5 | 6.67 | S | 4 | 5.33 |
| I | 4 | 5.33 | T | 4 | 5.33 |
| P | 3 | 4.00 | G | 3 | 4.00 |
| E | 2 | 2.67 | J | 2 | 2.67 |
| Q | 2 | 2.67 | W | 2 | 2.67 |
| D | 2 | 2.67 | X | 1 | 1.33 |
| H | 1 | 1.33 | K | 1 | 1.33 |
| L | 1 | 1.33 | M | 1 | 1.33 |
| N | 1 | 1.33 | O | 2 | 2.67 |
| A | 2 | 2.67 | C | 1 | 1.33 |
| Z | 1 | 1.33 | R | 1 | 1.33 |
| V | 1 | 1.33 | Y | 1 | 1.33 |
字母字符总数:75
第二步:与英语频率对比
密文中出现频率最高的字母是 F(10.67%)。英语中最常见的字母是 E(12.7%)。初步假设:F = E。
出现频率第二高的是 U(6.67%)。英语中 T 排第二(9.1%)。假设:U = T。
第三步:寻找常见单词
三字母单词"UIF"出现了两次。若 U=T、F=E,则 UIF = T_E,强烈暗示 UIF = THE,即 I = H。
至此已确认三组替换关系:F=E、U=T、I=H。
第四步:验证凯撒密码假设
观察已有的替换关系:
- F(位置 6)→ E(位置 5):位移 +1
- U(位置 21)→ T(位置 20):位移 +1
- I(位置 9)→ H(位置 8):位移 +1
三组替换均显示相同的 +1 位移。这有力表明我们面对的是位移为 1 的凯撒密码——每个字母均向后移动了一位。
第五步:应用密钥解密
将每个字母向前移动 1 位,完整明文为:
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
THE SECONDS AFTER THE FIRST ARE ALWAYS HARDER.
这个示例特意设计得较为简单,以便清晰说明方法。在实际情况中,替换密码使用更复杂的密钥映射,但同样的频率分析方法依然适用——只是需要更多的迭代和模式匹配。
如果不是凯撒密码怎么办?
若各字母的位移不一致,则说明面对的是一般性单表替换密码。此时:
- 按频率将密文中最常见的 5-6 个字母对应到 ETAOIN
- 寻找重复出现的两字母和三字母模式(很可能是 "the"、"and"、"for"、"is"、"of")
- 检查单字母单词(很可能是 "a" 或 "I")
- 利用部分解密结果推断更多字母对应关系
- 反复迭代直至明文变得清晰
对于超过 200 个字符的文本,这一过程通常在 15 到 30 分钟的系统性分析后即可收敛到正确答案。
二元组、三元组与模式分析
单字母频率分析提供了初步近似,但分析连续字母对(二元组)和连续字母三组(三元组)能显著提高准确性和速度。
英语前 20 位二元组
| 排名 | 二元组 | 频率 (%) | 排名 | 二元组 | 频率 (%) |
|---|---|---|---|---|---|
| 1 | TH | 3.56 | 11 | ES | 1.34 |
| 2 | HE | 3.07 | 12 | ED | 1.17 |
| 3 | IN | 2.43 | 13 | OR | 1.15 |
| 4 | ER | 2.05 | 14 | TI | 1.14 |
| 5 | AN | 1.99 | 15 | HI | 1.09 |
| 6 | RE | 1.85 | 16 | AS | 1.07 |
| 7 | ON | 1.76 | 17 | TO | 1.05 |
| 8 | AT | 1.49 | 18 | HA | 1.02 |
| 9 | EN | 1.45 | 19 | NG | 0.95 |
| 10 | ND | 1.35 | 20 | SE | 0.93 |
英语前 15 位三元组
| 排名 | 三元组 | 频率 (%) | 排名 | 三元组 | 频率 (%) |
|---|---|---|---|---|---|
| 1 | THE | 3.51 | 9 | ION | 0.70 |
| 2 | AND | 1.59 | 10 | TER | 0.68 |
| 3 | ING | 1.47 | 11 | WAS | 0.61 |
| 4 | HER | 0.90 | 12 | THA | 0.58 |
| 5 | THA | 0.83 | 13 | HAT | 0.55 |
| 6 | ERE | 0.78 | 14 | ATE | 0.52 |
| 7 | FOR | 0.76 | 15 | ALL | 0.50 |
| 8 | ENT | 0.73 |
如何使用 n 元组分析
n 元组分析的价值在于其能够有效收窄解的空间:
- 找到密文中最常见的二元组。 它极有可能代表 TH 或 HE。
- 若已确定 T 和 H,寻找三元组 THE。这是英语中最常见的单词,三元组 THE 的出现频率高达 3.51%。
- 检查二元组模式 AB BA。 英语中最常见的互逆二元组是 ER/RE、HE/EH、ON/NO 和 AN/NA。发现这些模式可以确认字母对应关系。
- 分析词尾。 常见英语后缀包括 -ING、-TION、-ED、-ER、-EST、-LY 和 -MENT。在替换密码中,这些模式依然以可识别的重复序列出现在单词边界处。
- 利用双字母。 英语中最常见的重叠字母是 LL、SS、EE、OO、TT、FF、RR、NN、PP 和 CC。若在密文中发现重叠字母,优先从这些候选中查找。
重合指数详解
**重合指数(IC)**由 William Friedman 于 1922 年提出,是一种统计度量,用于判断消息所使用的密码类型。它计算从文本中随机抽取两个字母恰好相同的概率。
公式
对于长度为 N、各字母计数为 n1, n2, ..., n26(对应字母 A 到 Z)的文本,重合指数为:
IC = Sum of [ni * (ni - 1)] / [N * (N - 1)]
其中求和范围覆盖全部 26 个字母。
解读重合指数值
| 重合指数值 | 含义 |
|---|---|
| ~0.0667 | 典型英语文本或单表替换密码 |
| ~0.0500 - 0.0600 | 密钥较短(2-5 个字符)的多表替换密码 |
| ~0.0385 | 随机文本或密钥极长的多表替换密码 |
标准英语文本的重合指数(约 0.0667)远高于随机文本(约 0.0385,即 1/26),原因在于英语字母分布不均匀。某些字母(E、T、A)出现频率远高于其他字母(Z、Q、X),使得随机选取的两个字母更可能相同。
重合指数在密码分析中的应用
重合指数最适合用于区分单表替换密码和多表替换密码:
- 计算密文的重合指数。
- 若重合指数接近 0.0667:该密码很可能是单表替换(凯撒密码、替换密码、Atbash、仿射密码)。频率分布已被打乱,但未被拉平。标准频率分析可直接使用。
- 若重合指数介于 0.04 到 0.06 之间:该密码很可能是多表替换(维吉尼亚密码、Beaufort、Gronsfeld)。频率分布已被部分拉平。需要先确定密钥长度,再对每段子密码分别应用频率分析。
- 若重合指数接近 0.0385:该密码使用超长密钥(接近一次性密码本)或为现代密码。频率分析将无法直接发挥作用。
用重合指数确定密钥长度
对于疑似使用维吉尼亚密码的密文,可通过以下方法估算密钥长度:
- 依次尝试密钥长度 2、3、4、5 等。
- 对每个候选密钥长度 k,将密文分成 k 组(每隔 k 个字母归为同一组)。
- 计算每组的重合指数。
- 当每组的重合指数都接近 0.0667 时,便找到了正确的密钥长度——因为每组都是用同一个凯撒位移加密的。
这一方法与 Kasiski 检验(通过查找密文中的重复序列推断密钥长度)相结合,构成了破解维吉尼亚密码的标准方法。
频率分析的局限性
频率分析是一种强大的工具,但也有明确的局限性。了解其何时失效以及原因,与掌握其使用方法同样重要。
多表替换密码
维吉尼亚密码发明于 16 世纪,其设计初衷正是为了抵御频率分析。它使用由关键词控制的多套凯撒密码字母表循环轮换加密——每个明文字母根据其在关键词循环中的位置,被移动不同的位数。
这对频率分析造成了显著影响:明文中每个 E 不再映射到单一的密文字母,而是映射到多个不同的密文字母(每个关键词字符对应一个)。这将 E 的频率峰值分散到多个密文字母上,使整体分布趋于平坦,看起来更像随机文本。
然而,多表替换密码并非无懈可击。一旦通过重合指数或 Kasiski 检验确定了密钥长度,就可以将密文分组,每组均是用单一的凯撒位移加密的。频率分析对每组单独使用时效果完全一样。
同音替换密码
同音替换密码为每个明文字母分配多个密文符号,常见字母获得更多选择。例如:
- E(12.7%)可能映射到以下任意符号之一:14、27、38、51、63、79、82、91、03、45、56、68、74
- Z(0.07%)仅映射到:99
若每个字母的备选符号数量与其出现频率成比例,则生成的密文频率分布几乎完全均匀——约 100 个符号中每个约出现 1% 的时间。简单的频率统计将毫无收获。
破解同音替换密码需要更复杂的技术:二元组频率分析(替换对二元组模式的掩盖效果较差)、爬山算法和已知明文攻击。
文本过短
频率分析依赖大数定律:文本足够长时,观测频率会收敛到预期值。对于短文本(不足 100 个字符),统计噪声过大,难以得出可靠结论。
试想一个完全正常的英语句子"Fuzzy ducks quack by jinxing vows",其字母分布与标准英语大相径庭,仅仅因为它很短且恰好包含了罕见字母。分析这个句子会错误地暗示它已被加密。
作为经验法则:
- 不足 50 个字符:频率分析基本无用
- 50-100 个字符:只能提供微弱假设
- 100-200 个字符:对单表替换密码较为可靠
- 200 个字符以上:对单表替换密码高度可靠
- 500 个字符以上:可利用重合指数区分密码类型
一次性密码本
**一次性密码本(OTP)**是理论上唯一不可破解的密码。它使用与消息等长且永不重复使用的随机密钥。针对正确实现的一次性密码本,频率分析(以及所有其他密码分析技术)可被证明是完全无效的——密文中不含有关明文的任何信息,因为每一种可能的明文同等可能。
现代加密
现代密码学算法(AES、ChaCha20、RSA)产生的密文在计算上与随机数据无法区分。每个可能的字节值(0-255)以相同概率出现,任何统计规律均无法被检测到。频率分析对现代加密完全不适用——它严格地只是一种针对古典密码的工具。
频率分析的现代应用
频率分析虽起源于密码破解工具,但其核心原理——文本具有特征性统计规律——已在密码学之外找到了广泛应用。
作者归属分析
对字母、单词和 n 元组频率的统计分析,可以帮助识别匿名或有争议文本的作者。不同作者在使用功能词(the、a、of、and)、句子长度和词汇模式方面具有可测量的不同风格"指纹"。这一技术已被应用于莎士比亚争议作品的考证、匿名政治文章的溯源以及司法文件鉴定。
语言识别
频率分析可以通过将文本的字母和二元组频率与不同语言的已知特征进行对比,自动识别文本所用语言。这是搜索引擎、翻译工具和文本处理系统中语言检测功能的基础。
垃圾邮件检测
包括字符和词频模式在内的统计文本分析,是现代垃圾邮件检测系统的组成部分之一。垃圾邮件通常具有与正常通信截然不同的可测量频率特征——例如感叹号、大写字母以及"免费"、"中奖"、"紧急"等词语出现频率异常偏高。
数据压缩
频率分析的核心洞察——某些符号比其他符号更常见——与数据压缩算法所依赖的原理完全相同。霍夫曼编码为出现频率更高的符号分配更短的二进制码,正如摩尔斯电码为常见字母分配更短的点划组合。算术编码和熵编码将这一原理进一步延伸,实现接近最优的压缩比。
法证语言学
在法律场景中,频率分析技术有助于判断认罪书是否确为被告本人所写、威胁信是否与嫌疑人的写作风格相符,或某份文件是否遭到伪造。这类分析远不止简单的字母统计,还涵盖词频特征、句法模式和文本复杂度的统计度量。
常见问题
频率分析能破解任何密码吗?
不能。频率分析对单表替换密码(凯撒密码、关键词密码、Atbash、仿射密码)有效——这类密码中每个明文字母恰好映射到一个密文字母。对多表替换密码(维吉尼亚密码、Beaufort)效果较差,需要改进才能应对同音替换密码,而对现代加密算法(AES、RSA)完全无效——这些算法产生的是统计上的随机输出。
用频率分析破解密码需要多长时间?
对于密文超过 200 个字符的单表替换密码,有经验的密码分析师结合单字母频率分析、二元组/三元组模式和常见词识别,通常能在 15 到 30 分钟内还原明文。对于较短的文本或更复杂的密码,过程可能耗时更长,可能需要借助计算机分析。
专业密码分析师使用哪些频率分析工具?
现代密码分析师使用可自动完成字母统计、二元组/三元组分析、重合指数计算和替换测试的软件工具。工具范围从简单的 Python 脚本(使用 collections.Counter 类)到 CrypTool、Cipher Tools 等专用程序以及定制密码分析软件不等。我们的字母频率分析工具提供交互式图表和统计对比,适合分析古典密码。
频率分析与统计分析是同一回事吗?
频率分析是统计分析在文本和密码学领域的具体应用。统计分析是收集、整理和解读数据的更广泛学科。频率分析将统计计数和对比技术专门用于文本的字母(或其他元素),目的是识别揭示文本来源、语言或加密方式的规律。
频率分析能判断密码使用的语言吗?
可以。如果能解密出足够多的密文内容,明文的频率分布将指示所用语言。即使无法解密,重合指数也能提供线索:不同语言的重合指数不同(英语约 0.0667,法语约 0.0778,德语约 0.0762)。若已知密码类型但不知语言,尝试不同语言的频率特征,看哪种能产生连贯的明文即可。
频率分析与暴力破解有何区别?
频率分析是一种基于模式的智能攻击,利用语言的统计属性推断密钥。暴力破解则逐一尝试每个可能的密钥,直到找到能产生可读明文的那个。对于一般性 26 字母替换密码,暴力破解最多需要尝试 26!(约 4 × 10^26)个可能的密钥——在计算上不可行。相比之下,频率分析通常只需检验数十个假设,即便手工操作也切实可行。
频率分析如何改变了战争史?
频率分析影响了众多军事冲突。阿拉伯密码分析师在十字军东征期间用它破解了欧洲密码。苏格兰女王玛丽于 1587 年被定罪处决,部分原因是她与 Anthony Babington 之间的加密通信被频率分析破解。在第一次世界大战中,英国海军情报机构 40 号房间利用频率分析技术破解了德国外交密码,其中包括促使美国参战的齐默尔曼电报。
密码分析课程中频率分析之后学什么?
掌握频率分析之后,学习者通常会进一步研究用于破解多表替换密码的 Kasiski 检验和重合指数,继而学习换位密码分析、已知明文攻击、选择明文攻击,最终深入现代密码学的数学基础,包括模运算、素数理论和计算复杂度。本站在 caesarcipher.org/ciphers 提供了多种密码类型的工具。
结语
频率分析是语言学与数学最为优雅的交汇之一。从 Al-Kindi 在 9 世纪巴格达写下的开创性手稿,到今天的计算机化密码分析工具,其核心洞察始终未变:语言不是随机的,我们使用字母的统计规律为破解以一个字母替换另一个字母的密码提供了强大的密钥。
理解频率分析绝非纯粹的学术练习。它为理解现代密码的工作原理奠定了概念基础——具体而言,是为什么现代密码必须产生在统计上与随机数据无从区分的输出。自文艺复兴以来密码学的每一次进步,都可以理解为对频率分析的一次回应:多表替换密码试图拉平频率分布,同音替换密码试图均衡符号使用,而现代算法则确保加密后任何统计规律都无从留存。
准备好亲自尝试频率分析了吗?使用我们的免费字母频率分析工具,粘贴任意文本——明文或密文皆可——即时查看其字母分布与标准英语频率的对比。交互式图表和详细统计数据让识别规律、验证假设变得轻而易举。如需练习素材,可以用我们的凯撒密码或关键词密码工具加密一条消息,然后用频率分析破解自己的加密。