6.10 用Etaoin Shrdlu3破解密码
3Etaoin Shrdlu是本行作废的意思,此处指用这几个字母来破解密码。——译者注
你从来都不知道什么时候你将不得不破译一个密码,不论它来自男神詹姆斯·邦德的拦截消息,还是你的医生字迹潦草难以辨认的处方笺。以下是你所需的所有统计技巧,代号为003.14159。
你可能已经注意到,你电脑键盘上的某些键比其他键在更短的时间内变脏或磨损。那是因为你敲击它们的次数比其他键盘更多。你可能还注意到,这些字母往往在键盘中间,或者更确切地说,当你的手放在键盘正中时,它们在你手附近的小圆圈里。
磨损的按键及其在标准打字机中的位置(又名QWERTY,顶行前6个字母)都是基于它们在英语中的使用频率而定的。字母表中的不同字母在语言拼写中的使用频率是不同的。通过运用这些字母的已知频率及其他统计技巧,你可以快速解码机密文件,无论它们是达芬奇的日记、报纸上的谜题,还是在电视上被Vanna White翻转的、大而明亮的字母。
6.10.1 单替换密码
最简单且最古老的以字母为基础的代码类型是单替换形式。在这些代码中,一些消息单词的实际字母被转化为字母表中的其他字母。用这种方式编码的最简单形式是,整个消息中的相同字母被替换为同一个字母。例如,一个简单的密码文可以使用表6-18所示的替代方式,其中上面一行的字母(原文本)被底部一行(密码文本)的字母取代。
表6-18:单替换密码
| 原文本 | A | B | C | D | E | F | G | H | I | J | K | L | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 密码文本 | N | A | O | B | P | C | Q | D | R | E | S | F | T |
| 原文本 | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| 密码文本 | G | U | H | V | I | W | J | X | K | Y | L | Z | M |
有了表6-18这样的代码,以下的原文本段落:
Tom appeared on the sidewalk with a bucket of whitewash and long-handled brush.
以密码文本表示就是这样的:
Jut nhhpnipb ug jdp wrbpynfs yrjd n axospj uc ydrjp yhwd ngb u fugq-dngbfpb aixwd.
这段话看起来毫无意义,但有了表6-18所示的线索,任何人都可以轻松地把无意义的字母替换为原来的字母,这样《汤姆·索亚历险记》(Tom Sawyer)第2章第2段的开头就显示出来。
6.10.2 用概率来解码替换密码
当然,破译密码时,真正的任务是没有代码线索的。现实生活中的代码破解人员和幸运之轮的获奖选手使用相同的工具来解决他们的问题:他们运用英语单词中字母的已知分布。
电脑、电脑分析和数百万电子书籍的出现,已经使计算字母表中的每个字母的确切概率成为可能,虽然密码学家(代码制造者和破解者)已经知道这些基础知识很长时间了。下面是其中的一些基本知识:
- 英语中,最常使用的字母是E;
- 最不常使用的字母是Z;
- 最常用的辅音是T;
- J和X与很少被用到,Q也一样;
- 当Q被使用时,几乎总是伴随着U;
- 在英语中,只有A和I作为单个字母构成的单词来使用。
哪怕只掌握这些基础概率事实,你也可以开始着手对一个密码进行解码,如我们的马克·吐温段落。在乱码版本中,最常出现的字母是P和N。因为N是一个单一字母的单词,所以它不能是E(N最有可能是A),所以对P替代字母的最优先猜测是E。
仅靠字母分布的一点点知识,我们已经确定了E和A的替代字母。我们无法肯定这是正确的,但像任何优秀的统计学家一样,我们认为自己可能是正确的。表6-19显示了字母表中每个字母的可能分布。
表6-19:英语中字母的频率分布
| 字 母 | 频 率 |
|---|---|
| A | 8.04% |
| B | 1.54% |
| C | 3.06% |
| D | 3.99% |
| E | 12.51% |
| F | 2.30% |
| G | 1.96% |
| H | 5.49% |
| I | 7.26% |
| J | 0.16% |
| K | 0.67% |
| L | 4.14% |
| M | 2.53% |
| N | 7.09% |
| O | 7.60% |
| P | 2.00% |
| Q | 0.11% |
| R | 6.12% |
| S | 6.54% |
| T | 9.25% |
| U | 2.71% |
| V | 0.99% |
| W | 1.92% |
| X | 0.19% |
| Y | 1.73% |
| Z | 0.09% |
6.10.3 ETAOIN SHRDLU
奇怪的短语“ETAOIN SHRDLU”是一种帮助我们记住最频繁出现字母的记忆口诀(记忆方法)。这12个字母占全部字母出现频率的80%以上。
你可能已经注意到,在ETAOIN SHRDLU中,字母顺序并不完全与表6-19所示排名一致。但顺序足够接近,并且读起来比完全正确的排序更容易。另一件要记住的事是,任何“最终的”字母概率列表取决于字母计数的来源材料。你可以找到许多不同的字母排序和频率列表,其中一些和其他的稍有不同。
例如,一个制作英语文本中字母使用统计分布列表的组织,其结论来源于对7本文学名著的计算机分析以及实际的字母出现次数,如《简爱》(Jane Eyre)和《呼啸山庄》(Wuthering Heights)。7本书中两本是关于人猿泰山(Tarzan)的小说。我猜,如果我们比较这张表和其他表的字母分布,我们会发现,这张表显示的字母Z出现的比例大于使用其他来源的表。但是,对于常见的字母,比如E、T和A,对于它们作为密码破译的首选猜测字母,人们已经形成广泛的共识。
幸运之轮策略
电视节目真人秀《幸运之轮》(Wheel of Fortune)中,在最后解决大难题之前,友好的制片人会提供某些字母,并显示字母是否出现在刽子手式的短语中。他们提供R、S、T、L、N和E。当然,给定这些字母是因为它们非常常见,并在我们的前12名中:ETAOIN SHRDLU。玩家被允许再选择3个辅音和另外1个元音。利用我们的字母频率统计知识,一个较好的基本策略是:选择A作为元音,并选择H、D和C这3个最常见且尚未出现的辅音。
6.10.4 编码文本的统计分析
下面是如何使用这些字母统计量在现实生活中解码秘密消息或解决一个难题。如果编码的文本很长,这方法效果最好,但是它对较短一些的段落发挥出效果也足以令人吃惊。计算编码的、替换的字母(密码文本)分布,然后把它和表6-19所示的分布进行对比。
图6-8使这个方法的表述更为形象。该图只展示了前10个最常见的字母,但分析中会使用所有的字母。这个例子假设表6-18所示的编码文本和替代密码被大量使用。
因为最常见的替代字母为P,其次为J,所以破解代码时,首先猜测P是否真的代表E,以及J是否真的代表T。可以沿直线往下逐个猜测每一字母。从最频繁出现的字母开始,向列表下方移动,一名密码破解人员可以很快看出这些猜测是否正确,他们不断改变猜测,直到英语单词开始出现。

图6-8:英文字母频率(左)和编码字母频率(右)
6.10.5 其他常见的字母模式
除了知道个别字母的出现频率,优秀的密码破译者还使用其他的字母模式信息。
- 单词最有可能以T、O、A、W或B开头。
- 大多数的单词以E、T、D或S结尾。
- 如果某个字母在单词里连续出现两次,它们最有可能是SS、EE、TT、FF或LL。
- 频繁出现的两字母单词包括of、to、in和is。
- 到目前为止,最常见的三字母单词是the和and;其他较常见的三字母单词包括for、are和but。
- 往往成对出现的字母包括TH、HE、AN、IN和ER。
- 最常使用的单词是the、of、and、to、in、a、is、that、be和it。
- 也许还能指出哪些单词是人们常写的,在书面文本中,最常用的前100个词包括dollars、great、general和public。debts差一点就能进入前100名,但它也很常见。
6.10.6 参阅
- 一个很好的关于单替换密码的解释可以在http://en.wikipedia.org/wiki/Frequency_analysis网站的频率分析条目中找到。
- 本Hack涉及的一些统计数据可以在http://www.data-compression.com和http://www.scottbryce.com. com)找到。你还可以在这个网站上找到关于如何使用统计来解决密码电文和其他代码的有用信息和建议。
