密码破解实践指南-全-

密码破解实践指南(全)

原文:zh.annas-archive.org/md5/85d5afb0ed957d206b2d9c63a6459bae

译者:飞龙

协议:CC BY-NC-SA 4.0

序言

我们两人都对古典密码和破译感兴趣,因此我们的道路终究会在某个时刻交汇。这个时刻出现在 2009 年 10 月,当时我们参加了在马里兰州劳雷尔举行的国家安全局密码学历史研讨会。在第一次的社交环节中,我们意识到我们有很多共同点。这成为了我们友谊的起点,尽管我们分别住在世界的不同角落,相距约 4000 英里,还隔着广阔的水域(大西洋),埃隆卡住在马里兰州的罗克维尔,靠近华盛顿特区,而克劳斯则住在德国的吉尔森基兴。尽管如此,我们依然定期在马里兰州相聚,参加每两年一次的国家安全局密码学历史研讨会和其他活动。

2017 年,在一次访问中,我们突发奇想,驱车多小时前往弗吉尼亚州南部,探索一个著名的密码谜团:比尔密码(见第六章)。这个关于隐藏财宝和描述其位置的三条加密信息的故事可能只是个骗局,但至少它是个引人入胜的骗局。我们前往弗吉尼亚州贝德福德,在那里进行研究,图书馆里收藏了许多与比尔故事相关的纪念品。然后,我们在比尔的啤酒餐厅吃了晚餐,餐桌旁的那张大地图展示了比尔故事中的重要地点(图 1)。

图 1:克劳斯和埃隆卡站在一张地图前,地图上标出了与比尔财宝相关的重要地点以及据称描述其位置的三封加密信件

在我们从贝德福德到华盛顿特区的五小时车程中,我们谈到了包括破译文学在内的许多话题,其中令人遗憾的是,市面上并没有一本关于这个主题的最新书籍。我们所期望的是一本涵盖解密真实密文的书籍,这些密文我们经常遇到,通常以加密的明信片、信件、电报、日记、日志和其他几百年来的文献形式出现。解密这些密码总能让我们直接窥见历史的某一时刻——这是即使是最好的填字游戏或魔方也无法做到的。

此外,我们还感叹没有一本计算机意识强的破译书籍,能涵盖当今用于解密密文的各种软件程序和网站。我们还希望这本书能够包括最新的破译研究和一些有趣的解码方法。市面上没有一本书接近我们的期望。我们能想到的只有海伦·福谢·盖恩斯在计算机时代之前的 1939 年经典著作《密码分析》,以及其他书籍和期刊中的零散内容。没有一本书能将所有内容整合起来,真正满足我们的需求。

当我们回到马里兰州时,我们决定通过共同撰写一本这样的书来改变这种局面。接下来的故事就是历史了。第一版于 2020 年出版,几年后,我们正在对《破译:实用指南》的扩展版进行最后的润色。

对我们俩来说,写书并不是什么新鲜事。埃隆卡是一名游戏开发者,她曾在过去写过关于密码学的文章,特别是在 2006 年的《The Mammoth Book of Secret Codes and Cryptograms》一书中,以及在 2009 年畅销书《Secrets of the Lost Symbol》中关于丹·布朗的《达·芬奇密码》续集的两篇文章。她还创建了多个关于密码和密码破译的网页,这些网页在互联网上获得了数百万的页面浏览量。克劳斯已经著作了约 25 本德语书籍(其中超过一半是关于加密技术的),以及 250 篇杂志文章、30 篇研究论文和 1600 篇《Cipherbrain》博客文章。所有这些使得他成为世界上最多产的加密作家。

尽管我们有丰富的经验,共同撰写这本书远非一项常规的项目。我们俩都有繁忙的日常工作和演讲日程,这使得我们不得不频繁出差。而且,由于我们之间隔着一片海洋,我们必须远程同步日程,通过 Skype 和 Zoom 进行沟通,跨越五到九小时的时差,这取决于我们身处世界的哪个角落。虽然我们确实有过两次面对面的会议,但说实话,我们并没有真的利用这些时间来专注于书籍的工作;这段时间更多是用来在图书馆进行研究、采访加密领域人士以及进行其他实地考察。我们甚至第二次访问了位于弗吉尼亚州贝德福德的比尔密码家园,并朝圣般地参观了弗吉尼亚州列克星敦的乔治·C·马歇尔图书馆,研究美国最著名的密码破译夫妇——伊丽莎白和威廉·弗里德曼的历史。

尽管如此,撰写我们的破译密码书籍仍然是一项令人满足的任务。我们将占据我们超过二十年的思考写了下来,最终把这些思考定居于纸面上,感觉非常充实。你现在手中的这本书汲取了许多来源,包括来自计算机前时代的其他破译密码书籍、《Cryptologia》学术期刊中的文章,以及克劳斯的数百篇相关博客文章,许多文章已经收到了世界上一些最顶尖的密码破译者的评论。除了描述解决方法外,我们还包括了许多成功案例,证明了在破解密码的过程中,奉献、想象力和运气有时与专业知识和多年的经验一样重要。

作为我们为数不多的挫折之一,我们不得不接受一个事实,那就是关于密码破译的有趣材料远远超过了我们能够容纳在 500 多页书籍中的内容。在第一版中,我们别无选择,只能(在大声尖叫和咬牙切齿中)缩小我们的范围,这意味着许多我们原本希望能纳入的密码破译方法、未解的密码谜团、密码挑战以及成功案例未能进入最终稿。然而,现在我们有了扩展版,我们已经将其中许多内容重新加入!

然后,在我们(第一本)写书项目的末期,整个世界发生了一个奇怪的转折,COVID-19 疫情爆发了。这场危机影响了我们俩的生活,也影响了世界其他地方。疫情发生时,伊隆卡在旧金山,而最初的“居家令”和避免机场的建议让她无法返回位于马里兰州的家中,持续了数月。她在好友乔恩和贝丝·莱昂纳德(Jon and Beth Leonard)家中的客房里继续工作。克劳斯则在德国盖尔森基兴的公寓里度过了疫情时期。

在经历了 COVID 危机后,我们成功地提交了手稿,第一版书籍于 2020 年 12 月 10 日在英国出版。但随后,在 12 月 11 日,我们的同事戴夫·奥兰查克(Dave Oranchak)联系了我们,他告诉我们,我们需要重新修改这本书!正如后来新闻报道的那样,他和另外两个人刚刚破解了一个传奇的未解之谜:已经存在了五十年的“黄道带 Z340”密码。所以,我们几乎立刻意识到,书籍需要出新版。

这一版本当然包括了关于 Z340 破解的最新细节,还增加了更多关于其他目前(截至此刻)仍未破解的密码的信息。例如,我们扩展了关于赤道两侧的两座雕塑的内容:北半球的Kryptos和南半球的澳大利亚NKRYPT。回溯到 19 世纪,我们增加了更多关于弗朗隆明信片和科林森报纸广告的内容。我们还提供了关于最近挖掘出的萨默顿人遗体的更新;1982 年在烟囱中发现的二战信鸽消息;1897 年的多拉贝拉密码;以及我们与彼得·比斯诺(Peter Bisno)先生在 2020 年 12 月的对话中提到的中国金条的信息。

其他新增内容包括查尔斯一世(Charles I of England)发送的一条命名密码消息,我们在档案中找到了它,还有关于其他密码和密码破译者的更多信息。借鉴我们在学术期刊《密码学》(Cryptologia)上发表的文章《我们如何打破 Playfair 密码文本,创下世界纪录》,我们增加了更多关于爬山法这一热门密码分析技术的信息,以及它是如何被用来解决老旧密码的。此外,我们还修正了第一版中出现的几处错误。感谢所有眼尖的读者!

本书附录包含了摩尔斯电码表(我们惊讶地发现,在 2020 版中居然漏掉了它!);一节关于《沃伊尼奇手稿》的新内容,展示了我们将其特征与过去 600 年类似加密书籍进行比较的结果;许多新的参考资料;更新后的元谜(包括一两个新的提示);以及扩展的阅读书单,列出了对破译者有用的额外书籍,其中包括几本关于埃丽兹贝丝·弗里德曼的新传记。

一如既往,我们希望你在阅读本书时获得最大的乐趣。

伊隆卡·杜宁(Elonka Dunin)和克劳斯·施梅(Klaus Schmeh)

美国马里兰州罗克维尔市和德国吉尔森基兴市,2023 年

codebreaking.guide@gmail.com

codebreaking-guide.com

第一章:我怎样才能破解加密信息?以及其他入门问题

图 1-1 中的明信片(由 Karsten Hansky 提供)是 1904 年寄出的。^(1) 很容易看出,明信片上的信息是加密的。

图 1-1:显然,这张明信片的寄件人不希望邮递员或收件人的家人看到它。因此,他们选择加密信息。

数十年甚至上百年的加密信息并不罕见。无数加密的日记、信件、笔记本、无线电信息、报纸广告和电报被知晓存在——更不用提大量的加密明信片,例如图 1-1 中的那张。加密文件也可以在档案馆、私人收藏、跳蚤市场,以及互联网拍卖门户、网站和邮件列表中找到。更多的加密信息被印刷在书籍、报纸和杂志中,无论是旧的还是新的。

在计算机普及之前,加密主要是手工完成的,通常使用铅笔和纸(因此有了铅笔和纸加密这个术语)。有时,密码学家还会使用简单的工具,如皮革条或木质和金属工具,如圆盘或滑块。自 1920 年代末起,机械和电气加密机开始投入使用,其中最著名的是德国的恩尼格玛机(见第十五章)。由于加密机价格昂贵,它们主要在军事、情报机构和外交服务中得到广泛应用。经济资源较少的人群则倾向于继续使用铅笔和纸系统。

随着现代数字技术在 1970 年左右的出现,商业和军事加密开始使用计算机硬件和软件。然而,铅笔和纸的加密方式依然存在,并且至今仍然相关。它被广泛使用于各类人群中:犯罪分子保护非法活动、朋友和恋人交换秘密信息,以及其他从事各种娱乐活动的人。例如,地理藏宝游戏者、逃脱房间爱好者以及参与其他高科技寻宝游戏的人可能会使用密码学来隐藏经纬度坐标。

这本书是关于什么的?

我们将向您展示一些历史上真实的信息示例,比如使用铅笔和纸或其他手工方法加密的明信片、日记、信件和电报。我们还将教您破解它们的方法。尽管由于计算机技术的广泛应用,手工加密和解密的重要性已大大降低,但许多人仍然对破译加密信息感兴趣,原因有很多:

  • 家庭可能希望阅读他们从祖先那里继承的加密明信片、信件或日记。

  • 历史学家努力解密他们在研究过程中遇到的加密文档,以便深入了解过去的时代。

  • 警察可能想要破解犯罪分子写的加密信息。

  • 地理寻宝者希望解开谜题缓存。

  • 解密爱好者乐于破译几十年甚至几百年前创作的加密文档;许多爱好者认为,解开一个未解的密码任务,与登上珠穆朗玛峰或做出新的考古发现一样令人兴奋。

  • 学生们试图解决来自密码学课程的挑战。大多数课程侧重于计算机基础的加密方法,但通常也包括铅笔和纸的传统方法学习。

虽然一些解密者主要对历史加密信息感兴趣,但其他人则享受作为娱乐而创作的加密谜题,比如在 Elonka 的书籍《The Mammoth Book of Secret Codes and Cryptograms》中找到的谜题,或是在美国密码学协会的定期出版物中找到的谜题。本书主要涉及历史加密内容。本章开头展示的 1904 年明信片是我们提供的第一个例子。在第五章中,我们将解释如何解密它。

我需要了解哪些技术术语?

需要加密的文本称为明文。加密后的结果是密文。有时,密文可能嵌入到其他可读文本中,这种情况称为明文中嵌密文,以便将其与其中的密文区分开来。

许多加密方法基于某些秘密信息,这些信息可能只为发送者和接收者所知——密钥。一个典型的密钥例子是替换表,它将字母表中的每个字母替换成另一个字母。有时,密钥以一个词的形式表示,即关键词

有两种加密方法:密码和代码。描述两者区别的最简单方法是,密码(有时拼写为“cypher”)通常作用于字母,而代码作用于单词或短语。使用代码的难点在于,你通常需要先考虑几乎每一个你想用的单词,然后生成一本包含每个单词对应代码的代码书。由于语言中有成千上万的单词,这样的代码书可能会非常庞大!但密码仅作用于字母,因此可以成为一个更紧凑的系统。几乎任何东西都可以用密码加密,只要发送者和接收者都知道加密系统;无需庞大的代码书。本书中涵盖的大多数加密方法都是密码。代码将在第七章中讨论。

不幸的是,这些术语可能会让人混淆,因为代码一词在日常使用中有许多其他含义。例如,邮政编码或行为规范与加密无关。即使我们仅限于加密技术领域,代码一词的使用也有歧义,有时它指代的是一般的加密(例如在破译密码这个表达中)。即使是专业的密码学家,在随意谈论时,也可能会将代码密码这两个术语互换使用。在本书中,我们将仅在之前定义的意义上使用代码一词(即作为加密消息的词语和短语方法)。唯一的例外是:当我们说破译密码时,我们指的是所有类型的加密,而不仅仅是代码。

如果我们拥有密钥,我们可以解密密文得到明文。如果我们在不知道密钥的情况下尝试从密文推导明文,我们通常称之为破解加密。我们想要破解的加密消息叫做密码文

加密的艺术和技术被称为密码学,而破解密码则叫做密码分析破译密码是密码分析的另一种说法。此外,密码学这个术语通常指密码学和密码分析,但也可以指研究与加密相关的所有内容,包括人、机器、系统和历史。加密一词可以作为一个总括性术语,适用于此列表中的许多项目。

通常,密码学指的是已加密的消息,但有时隐写术(信息隐藏,见第十五章)也被包括在密码学中。

在破解密码文时,通常知道或猜到明文中出现的某个词或短语会有所帮助。这样的词或短语称为密码簿

此外,密码学文献中经常提到几个角色(尽管它们在本书中并没有发挥主要作用):爱丽丝鲍勃通常被用作占位符名称,用来解释加密方法。通常,加密消息的发送者被称为爱丽丝,接收者则被称为鲍勃。有时,还会出现其他角色,如卡罗尔(另一个加密用户)、伊芙(窃听者)和马洛里(恶意人物)。这些角色不一定代表人类,它们也可以指代计算机程序或硬件组件。

请参阅附录 C 中的词汇表,了解这些术语及其他术语的定义。

我怎样才能破解一段加密文本?

你来对地方了!我们书籍的目的是帮助你解答这个问题,特别是关于经典密码的部分。我们介绍了实践中遇到的主要纸笔加密技术,并随后描述了如何解决这些问题。

对于急于了解的读者,我们在下面的密码表中提供了我们的第一个破解示例:1873 年 8 月 1 日在伦敦报纸《泰晤士报》上发布的加密广告。我们稍后将参考一些其他加密报纸广告,这些广告出自琼·帕尔默(Jean Palmer)2005 年出版的书《痛苦的栏目密码与密码》(The Agony Column Codes & Ciphers)。(琼·帕尔默是伦敦的破解专家托尼·加夫尼的笔名。)^(3)

下面是以更易读方式写出的密文:

HFOBWDS wtbsfdoesksjd ji ijs mjiae (dai ditwy). Afods ks rofed dpficqp licqp. Toeqfwus yic lsrd vspojt uwjjid qsd ibsf. Aoll sjtswbicf di edwy apsfs yic lsrd ce doll O pswf rfik yic, qobs yicf wtbous. Yicf cjpwhhy aors jid asll.

破解密码的一个良好的第一步是计算消息中的字母数。这种称为频率分析的技术让我们能够根据每个字母在文本中出现的频率作出合理的猜测:

如图所示,密文中字母s出现频率最高。它很可能代表明文中的字母e,这是几乎所有英文文本中出现频率最高的字母。在e之后,tao是英语中出现次数第二多的字母,尽管仅凭频率很难确定它们。然而,我们可以通过观察密文轻松猜到另一个字母:单词O必须代表I,因为在英语中除了句首大写字母外,没有其他只有一个大写字母的单词适合。

进一步的分析显示,密文中包含单词yic三次和单词yicf两次。明文单词thethem是很好的猜测,但我们已经确定s(而不是c)代表e。因此,youyour是合理的选择。

知道六个明文字母eiyour的密文等效物,使得猜测更多单词变得容易。例如,ijs解密为o*e(星号表示未知字母),很可能意味着one。最终,我们得到了以下明文:

PRIVATE advertisement no one knows (two today). Write me first through lough. Disgrace you left behind cannot get over. Will endeavour to stay where you left us till I hear from you, give your advice. Your unhappy wife not well.

如果我们有计算机和像 CrypTool 2 这样的程序(这是一个免费的开源软件,可以在cryptool.org下载),我们可以使用一种更高效的方法来破解《泰晤士报》中的加密广告:我们在密文中寻找一个具有明显字母模式的单词。我们能找到的最佳候选词是 wtbsfdoesksjd——它在第四、第九和第十一位包含相同的字母(s),第六位和最后一位字母(d)也相同。这个单词中的其他字母都不同。CrypTool 2 提供了一个工具,可以在大型数据库中搜索具有给定重复模式的单词。对于 wtbsfdoesksjd,我们只找到一个匹配项:advertisement。这肯定是报纸广告中常见的一个词。

假设 advertisement 是正确的,我们可以确定以下字母的含义:

明文: a d e i m n r s t v

密文: w t s o k j f e d b

这些信息使我们能够识别或猜测更多的单词。例如,第一个单词 HFOBWDS 代表 *R*VATE,可以解密为 PRIVATE。现在我们知道密文字母 HO 分别代表 PI。密文 wtbous 解密为 advi*e,这应该是 advice。(它不可能是 advise,因为 s 已经被分配给了另一个字母。)这也表明密文 u 对应明文 c。我们现在已经识别了足够多的字母,应该能够解密更多的单词。最后,我们得到了上面给出的明文。

这个广告看起来像是一位女性给她离开的丈夫发的消息。我们可能永远也不会知道是谁创造了这个广告,或者为什么——毕竟,这个广告已经发布了 150 年。然而,从破译者的角度来看,这个谜题已经解开。

那并不难,对吧?在本书的过程中,你将了解更复杂的加密方法,以及破解它们的更高级技巧。

我怎么知道我正在处理哪种加密方式?

破解密文通常需要知道使用了哪种加密方法。因此,除了密码破解方法外,本书还介绍了几种密码检测技术。识别正在使用的密码可能非常简单,也可能非常困难。值得知道的是,大多数实际遇到的消息都已经使用大约十几种加密方法中的一种,而这些方法通常可以通过一些分析加以区分。

如果你想识别特定的密码,而不是阅读整本书,以下段落将为你提供一些指导。

如果你想破解的加密文本看起来像这样^(4) . . .

. . . 或者像这样^(5) . . .

. . . 或者像这样 . . .

. . . 或者像这样 . . .

SIAA ZQ LKBA. VA ZOA RFPBLUAOAR!

. . . 这个密码很可能是替换密码,你应该阅读第三章、第四章和第五章。

如果你想解密的密码看起来像这样^(6) . . .

. . . 请查看第七章(关于密码和命名法)。

如果你的密文看起来像这样^(7) . . .

. . . 它很可能是转轮加密,相关内容可以在第十一章找到。

如果你想解密的加密文本看起来像这样^(8) . . .

. . . 或者像这样 . . .

. . . 请查看第十三章(缩写密码)。

如果你想解密的加密文本看起来像这样 . . .

218.57 106.11 8.93 17.61 223.64 146.7 244.53 224.21 20 192.5 160.19 99.39 No. 8 251.70 1 223.64 58.89 151.79 226.69 8.93 40.12 149.9 248.101 167.12 252.35 12.31 135.100 149.9 145.76 225.53 212.25 20 241.6 222.22 78.45 12.31 66.28 252.33 158.33 6.65 20 2 11.50 142.37 223.87 12.31 142.37 105.33 142.37 157.20 58.62 133.89 250.86.

. . . 请阅读第十四章(关于字典码和书籍密码)。

如果你正在处理五个字母一组的加密文本 . . .

. . . 有几种可能性,最可能的是代码(第七章)、换位密码(第九章和第十章)、二字组合替换密码(第十二章)或机器密码(第十五章)。

如果你的密码信息看起来与这些都不相符,或者你不确定哪个类别最适合,恐怕你需要一章接一章地阅读,直到找到你需要的内容。

我在阁楼上找到了一个加密文本,你能帮我解密吗?

也许吧!你是否发现了一张来自曾祖父的加密明信片?你是否在跳蚤市场上购买了一本加密笔记本?你是否还保留着小时候最好的朋友发给你的加密信息?如果是这样,你可以尝试使用本书中描述的某种技术来破译消息。

如果你没有成功,或者你根本不想花时间自己解密密码,随时可以将其发送给我们。(我们的电子邮件地址在本章末尾的“我有一个评论”部分。)当然,我们不能调查收到的每一个加密谜团,但在许多情况下,我们可以提供帮助。我们特别感兴趣的是历史上的例子,现代发明的系统则较少关注。克劳斯总是在寻找他可以写作的有趣加密文本,而埃隆卡则有一个关于著名未解密代码的网站。我们不能保证任何事情,更不用说你的谜题一定会被破解,但我们至少会看看。

如果你给我们发送你找到的密码信息,请提供以下信息:

  • 告诉我们您对密码学背景了解多少。您在哪里找到它?谁创建了它?您是否有任何其他信息,例如创建时期?它是由您认识的人发送还是接收的?这个人讲过哪些语言?这类信息对于破译者非常有帮助。

  • 请告诉我们是否可以发布这个密码(比如在互联网上或者像这样的书中),或者您希望保密。当然,未经发件人同意,我们不会发布任何内容。

  • 如果您允许我们发布密码,告诉我们是否愿意署名,和/或者我们是否可以提及您的名字。

我自己加密了一段文本;你能破解吗?

虽然我们对真正的历史和经典密码始终充满兴趣,但通常无法帮助处理较新的项目。这在很大程度上是因为我们收到的邮件数量很多;此外,有人编译一堆随机文本并宣称“破解我的密码!”也太容易了。

当特定密码引起公众极大兴趣时,我们会例外。例如,如果加密消息呈现在艺术作品中,如建筑物的铭文、墓碑上,或以其他不寻常的方式,可能会引起更广泛的观众兴趣。此外,为解决密码谜题提供现金奖励或其他奖励是使新谜题更具吸引力的良好方法。我们也可能对由 NSA 或其他与密码破译有关系的组织发布的密码挑战感兴趣。

如果您喜欢设计加密挑战,我们建议加入美国密码协会,该协会始终在寻找人来为他们的定期通讯编写谜题。您也可以访问密码谜题平台 MysteryTwister(mysterytwister.org)并提交挑战。

我发明了一种新的加密方法;你能看一下吗?

就像每一个在密码学界具有一定声望的人一样,我们经常收到那些发明了自己加密方法的人发来的通讯,希望我们审查或破解。老实说,我们从未收到过一个坚固或看起来是我们花时间的好系统,所以认真地讲,这可能不是一个好主意。

如果您创建的方法与我们在本书中介绍的许多手动密码之一相关,那么很可能是可破解的,因为有很多方法,特别是现代计算机可以解开这些密码。新密码必须与 AES、Diffie-Hellman 和 RSA 等现代密码算法竞争(这些算法不在本书的范围内)。设计一个能在大联盟中立足的加密算法是一项艰巨的任务,即使是经过高度训练的专家通常也需要数年的努力才能创建一个良好的加密算法。

因此,如果您是加密技术领域的新手,并且真的想设计一个新系统,我们建议先找一本好的密码学书籍,并学习已经存在的加密算法。例如,Joachim von zur Gathen 的 CryptoSchool(2015)^(9) 是一个全面的介绍,而 Jean-Philippe Aumasson 的 Serious Cryptography(2017)^(10) 是一个更简短的替代方案。如果您懂德语,可以尝试克劳斯的书 Kryptografie—Verfahren, Protokolle, Infrastrukturen(2016)。^(11)

关于密码专家持续收到可破解系统示例的相关观点,我们强烈推荐 Bruce Schneier 1998 年的文章“给业余密码设计者的备忘录”。^(12) 虽然已经二十多年了,但仍然相关。总之,Schneier 说(而我们也同意),要尝试创建新的密码系统,首先必须有足够的经验来破解现有系统。

我已解决了一个著名的未解密密码; 我应该做什么?

在这本书中,我们介绍了几十个未解密的密码。其中一些,如弗因曼手稿,非常有名,而其他一些,如香烟盒密码,尚未引起太多关注。(这些密码都可以在第五章中找到。)著名密码列表可在埃隆卡的网站上找到,^(13) 克劳斯在他自己的博客上发布了他的前五十个未解密码。^(14)

几乎每个流行的未解密文本都收到了许多可疑的解决方案。一个密码越是有名,越有人声称已解决它。至少有六十种“解决方案”已发表关于弗因曼手稿。其他受欢迎的包括剩下的两个神秘杀手密码、多拉贝拉密码和第四条 克里普托斯 消息。(我们稍后将回到这些谜题。)网络上充斥着对著名密码的可疑解决方案。

如果您是一位严肃的密码破解者,并且相信自己已经找到了未解密码的解决方案,那么首先要做的是挑战自己的解决方案。您能简单地描述这种方法,以便第三方能够使用它并产生相同的结果吗?问问自己,您发现的解密过程是否简单明了,不涉及太多的调整和例外。检查结果明文是否意义明确,而不需要大量的修改和解释。最后,阅读 Ryan Garlick 2014 年的文章“如何知道您未解决神秘的 Zodiac-340 密码”。^(15) (这篇文章讨论了对第二个神秘杀手密码的所谓解决方案,但其中大部分内容也适用于其他密码谜题。)

如果你的解答确实有道理,我们当然非常感兴趣了解它。如果你破解了 Elonka 列表中提到的一个密码谜题,你甚至有可能成为一个著名的密码破解者。

在你挑战一个“破译难关”之前,亲爱的读者,我们建议你从那些已经被破解的密码谜题开始,你会在本书中找到很多这样的例子。然后,或许可以尝试那些较少为人知且尚未破解的谜题。这些谜题在研究界还没有得到太多关注,因此成功的几率会更大。本书中介绍的密码破解方法可能会帮助你取得成功。谁知道呢?也许有一天,你甚至能破解世界上最著名的未解密码挑战之一!

破解密码需要哪些工具?

本书专注于破解纸笔密码,而非现代基于计算机的加密。然而,这并不意味着我们在密码破解工作中完全不使用计算机。以下是本书中我们使用的三种最重要的计算机工具(所有这些工具都可以免费使用):

  • CrypTool 2 (cryptool.org) 是一个由 Bernhard Esslinger 带领的国际团队开发的密码学习程序。它支持许多有用的密码破解工具。此外,CrypTool 项目还提供了密码学和密码分析的电子学习程序,如 CrypTool 1、JCrypTool 和 CrypTool-Online。

  • 网站 dCode (dcode.fr/en) 由一群匿名的密码爱好者运营,提供了许多有用的密码破解和统计工具。

  • 密码工具 (rumkin.com/tools/cipher/) 是由 Tyler Akins 维护的一个大型经典密码分析工具集。

想找更多工具?请查看我们在第十七章中的密码破解工具列表。

如何加密我的文件和电子邮件?

请注意,本书中涉及的加密技术不应用于加密有价值的秘密。本书讲解的是纸笔(即手动)加密。虽然学习手动加密因多种原因而具有趣味性和重要性,但用这种加密方式保护敏感数据完全是过时的。如果你需要一个工具来加密计算机文件,可以寻找像开源的 VeraCrypt 或 Philip Zimmermann 著名的 PGP 这样的加密程序。这类程序使用现代加密算法,包括 AES、Diffie-Hellman 和 RSA,这些算法在今天的技术条件下是无法破解的。

我对这本书有评论,我该怎么办?

如果您喜欢这本书、或者不喜欢、发现了错误,或者只是想发表评论,请通过电子邮件联系我们:codebreaking.guide@gmail.com。您还可以访问codebreaking-guide.com/errata查看是否已有错误报告。反馈对我们非常重要。

谁为这本书做出了贡献?

我们要特别感谢 Tyler Akins、Michelle Barette、Kent D. Boklan、Bill Briere、Magnus Ekhall、Zachary Epstein、Thomas Ernst、Bernhard Esslinger、Dan Fretwell、Lawrence McElhiney、Dave Oranchak、Tobias Schrödel、Dale Sibborn、Gerhard Strasser、Erica Swearingen 和 Satoshi Tomokiyo,他们为本书进行了热情且全面的校对工作。

我们还要感谢 John Allman;Christiane Angermayr;Lucia Angermayr(安息);Nicolay Anitchkin;Eugen Antal;Philip Aston;Guy Atkins;Leopold Auer;Marc Baldwin;Paul Barron;Max Bärtl;Craig Bauer;Christian Baumann;Richard Bean;Stefan Beck;Arianna Benini;Neal Bennett;Yudhijit Bhattacharjee;Norbert Biermann;Peter Bisno;Sam Blake;Bob Bogart;Paolo Bonavoglia;Raymond Borges;Thomas Bosbach;Gert Brantner;Dan Brown(是的,就是Dan Brown!);Ralf Bülow;Chris Christensen;Frank Corr;Nicolas Courtois;Carola Dahlke;Jason Davidson;Melissa Davis;Deb Desch;Whitfield Diffie;Jörg Drobick;Stanley Dunin;Ralph Erskine(安息);Jarl Van Eycke;Jason Fagone;Cheri Farnsworth;Nick Fawcett;Gérard Fetter;Heathyr Fields;Frank Förster;Andrew Furlong;Tom(Monty)Fusco;Tony Gaffney;Jim Gandy;Joachim von zur Gathen;Declan Gilligan;Jim Gillogly;Dan Girard;Nicole Glücklich;Frank Gnegel;Marek Grajek;Joel Greenberg;Jackie Griffith;Marc Gutgesell;Sandi Hackney;Karsten Hansky;Louie Helm;Lonnie Henderson;Jürgen Hermes;Jan Henrik Holst;Michael Hörenberg;Günter Hütter;A.J. Jacobs;Ralf Jäger;JannaK;David Kahn;Bryan Kesselman;Manfred Kienzle;Michael Kirk;Gary Klivans;Oliver Knörzer;Stuart Kohlhagen;Daniel Kolb;Anatoly Kolker;Klaus Kopacz;Nils Kopal;Armin Krauß;Teresa Kuhl;Oliver Kuhlemann;Benedek Láng;Jew-Lee Lann-Briere;George Lasry;Karl de Leeuw(安息);Jon, Beth, Peter 和 Amber Leonard;Peter Lichtenberger;Greg Lloyd;Joe Loera;Krista van Loon;Tom Mahon;Denny McDaniels(安息);Glenn McIntosh;John McVey;Hans van der Meer;Beáta Megyesi;Glen Miranker;Didier Müller;Wolfgang Müller;Walter C. Newman;Jim Oram;Olaf Ostwald;Nick Pelling;Klaus Pommerening;Beryl Pratt;Duncan Proudfoot;Katja Rasch;Jim Reeds;Paul Reuvers;Dirk Rijmenants;Sara Rivers-Cofield;Richard SantaColoma;D.P.J.A. Scheers;Volker Schmeh;Wolfgang Schmidt;Leon Schulman;Dale Sibborn;Linda Silverman;Marc Simons;Ralph Simpson;Rob Simpson;Dale Speirs;Rene Stein;Moritz Stocker;Christoph Tenzer;Satoshi Tomokiyo;Dermot Turing;Alexander Uliyanenkov;Ilona Sofia Vine;TJ Dunin Vine;Arno Wacker;Rich Wales;Frode Weierud;Meg Welch;Bart Wenmeckers;Bart Wessel;David Allen Wilson;Richard van de Wouw;Ruth Wüst;Yefim Shifrin;Gordon Young;DeEva Zabylivich;René Zandbergen;以及 Philip Zimmermann,感谢他们为本书或相关讨论所做的贡献。

此外,我们感谢瑞士阿尔高州立图书馆;美国密码学协会;比尔酒吧餐厅;英国图书馆;dCode 小组;德国慕尼黑的德国博物馆;弗朗茨·斯坦纳出版社;乔治·C·马歇尔基金会(弗吉尼亚州列克星敦);海因茨·尼克斯多夫博物馆论坛(德国帕德博恩);约翰·F·肯尼迪总统图书馆与博物馆;克里普托洛基姆(德国卡尔斯鲁厄);联邦国防军消息、远程通信和信息技术教具收藏(德国费尔达芬);北卡罗来纳大学教堂山分校路易斯·朗德·威尔逊特别收藏图书馆;德国法兰克福的通信博物馆;伦敦共济会博物馆;国家密码学博物馆(马里兰州梅德堡);纽约的罗伯特·R·李文斯顿共济会图书馆与博物馆;纽约州档案馆;纽约州军事博物馆;下萨克森州档案馆沃尔芬比特尔分部;荷兰皇家收藏;瑞士普法菲肯的贝克打字机博物馆;Touchstone 影业;以及华特迪士尼电影公司;还要感谢所有我们的互联网朋友:博客读者、朋友,以及来自 Facebook、Reddit、Kryptos 小组和全球万维网的参与者。

第二章:凯撒密码

图 2-1:这张 1939 年的电报信息使用凯撒密码加密。

在 图 2-1 中所示的电报(由 Karsten Hansky 提供)是从英国圣利昂纳兹海岸发往英属圭亚那乔治敦的,时间是 1939 年。^(1) 该电报中的信息部分被加密。在以下的逐字稿中,密文以粗体显示在第四行:

CDE.

BRG9.IDCH. STLEONARDSONSEA. 10\. 9th. 13.20.

ROBERTSON TREASURY GEORGETOWNBG.

JKHQY GYULN QOOWE HAWNH EAOPL KODEX HAHQR.

10.25AM.

这里使用的加密方法,称为凯撒密码,十分简单,因此它将作为我们讨论加密技术的良好起点。我们专门为此章节安排了该内容。

凯撒密码的工作原理

凯撒密码将字母表中的每个字母按一定数量的字符进行位移。我们可以将密码的密钥视为确定位移偏移量的数字。

在 图 2-1 中所示的电报中,密钥为 4,具体参见以下表格:

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文: EFGHIJKLMNOPQRSTUVWXYZABCD

这里有另一种表示密钥的方法。这个图示显示了 A 被替换为 EB 被替换为 FC 被替换为 GD 被替换为 H,依此类推:

当我们将密钥反向应用于加密的电报行时,得到以下明文:NOLUC KCYPR USSAI LEARL IESTP OSHIB LELUV。如果我们将空格放到正确的位置,信息可能会变成:NO LUCK CYPRUS SAIL EARLIEST POSSIBLE LUV

我们仍然不完全知道这个信息的含义。POSHIBLE 可能是 POSSIBLE 的拼写错误,而 CYPRUS 可能指的是一艘同名的船只。LUV 可能是发件人姓名首字母的缩写,或者只是 LOVE 的缩写。

如果我们使用一个包含二十六个字母的凯撒密码,则会有二十五个(有效的)不同密钥。这是因为零位移不会改变文本,每个字母都会移到它自己的位置。而二十六位移也会产生相同的效果。

要应用凯撒密码,可以使用密码盘或密码滑块(见 图 2-2)。密钥为 13 的凯撒密码,也称为 ROT-13,是一种 自反式密码——如果使用两次,你会得到原文。

图 2-2:密码盘或密码滑块可以用来应用凯撒密码。

ROT-13 常常用于地理寻宝网站上加密剧透信息。

如何检测凯撒密码

如果你想检查某个密码是否使用凯撒密码创建,统计字母(即进行频率分析)会很有帮助。为了理解为什么这样做有用,我们首先来看一下典型英文文本中的字母频率:

我们看到E是出现频率最高的字母,它周围则是一些频率较低的字母。RST是三个连续的高频字母。最后五个字母,VWXYZ,都相当稀有。如果我们对一段英文文本应用凯撒密码,我们会注意到这个图表的条形图会按一定的步数移动。例如,如果K是频率最高的字母,我们应该看到它两侧被远不常见的字母包围,表示它对应的是E。我们可以利用这个特征来检测凯撒密码。

现在看一下以下两则广告,它们都于 1853 年在伦敦的报纸《泰晤士报》上刊登:^(2)

1853 年 2 月 2 日:

CENERENTOLA.—N bnxm yt ywd nk dtz hfs wjfi ymnx fsi fr rtxy fscntzx yt mjfw ymfy fsi, bmjs dtz wjyzws, fsi mtb qtsl dtz wjrfns, mjwj. It bwnyj f kjb qnsjx ifwqnsl, uqjfxj. N mfaj gjjs ajwd kfw kwtr mfuud xnshj dtz bjsy fbfd.

1853 年 2 月 11 日:

CENERENTOLA.—Zsynq rd mjfwy nx xnhp mfaj n ywnji yt kwfrj fs jcuqfsfynts ktw dtz, gzy hfssty. Xnqjshj nx xfkjxy nk ymj ywzj hfzxj nx sty xzxujhyji: nk ny nx, fqq xytwnjx bnqq gj xnkkyji yt ymj gtyytr. It dtz wjrjrgjw tzw htzxns’x knwxy uwtutxnynts: ymnsp tk ny.

我们假设这两则广告是以相同的方式加密的。CENERENTOLA(意大利语的“灰姑娘”)可能是发件人或收件人的化名。由于它没有被加密,我们可以将其从检查中省略。

一种好的方法是对这两个密文进行频率计数。我们可以手动计数字母,或者使用计算机辅助工具,例如 CrypTool 2,或者使用类似dcode.fr/en的基于网页的工具。以下是我们自己制作的图表:

我们在图 2-3 中看到,j是最常用的字母,并且它的周围是一些较不常见的字母。字母wxy形成了一组三个连续的高频字母。abcde组成了五个连续的低频字母。

图 2-3:将CENERENTOLA广告的字母频率与英语语言的字母频率进行比较,表明我们正在处理凯撒密码。

总的来说,我们的密文的频率分析看起来与英文的字母频率非常相似,唯一的不同是这些条形图都被移动了五个步长(A = FB = GC = H……)。这表明我们正在处理凯撒密码。实际上,通过应用这个精确的五步位移,我们可以得出以下的明文:

CENERENTOLA.—I wish to try if you can read this and am most anxious to hear that and, when you return, and how long you remain, here. Do write a few lines darling, please. I have been very far from happy since you went away.

CENERENTOLA.—直到我的心感到病痛,我才试图为你编写一个解释,但无能为力。如果真相没有被怀疑,沉默是最安全的:如果被怀疑,所有的故事都会被筛选到最底层。你还记得我们表亲的第一个提议吗?想一想吧。

显然,这两条信息是由一对浪漫的情侣写的。这并不令人惊讶,因为加密的报纸广告曾是维多利亚时代英国情侣之间常用的秘密交流方式。

如何破解凯撒密码

如应当显现的那样,一旦识别出凯撒密码,它就容易被破解。如果你知道密文中某个字母代表,例如 E,那么你就可以轻松找出密钥。

当然,破解凯撒密码还有其他方法。我们可以尝试所有可能的密钥,检查是否有符合常理的明文。这种方法称为 暴力破解穷举密钥搜索。由于只有二十五个密钥,对凯撒密码进行暴力破解并不难。我们来对以下广告进行破解,这则广告刊登在 1888 年 5 月 26 日的伦敦 Standard 报纸上:^(3)

对密文进行频率分析,显示很可能是凯撒密码。为了破解它,让我们将消息的前两个单词写在表格的第一行,然后通过每行将每个字母向后移动一个位置来填充表格。当我们到达Z时,回绕到A。我们建议按照列的方式书写这个表格:

0 URNYGU ORGGRE

1 VSOZHV PSHHSF

2 WTPAIW QTIITG

3 XUQBJX RUJJUH

4 YVRCKY SVKKVI

5 ZWSDLZ TWLLWJ

6 AXTEMA UXMMXK

7 BYUFNB VYNNYL

8 CZVGOC WZOOZM

9 DAWHPD XAPPAN

10 EBXIQE YBQQBO

11 FCYYRF ZCRRCP

12 GDZKSG ADSSDQ

13 HEALTH BETTER

14 IFBMUI CFUUFS

. . .

很明显,第 13 行的 HEALTH BETTER 是正确的。这意味着该文本使用了 ROT-13。通常,仅为一个单词创建这样的表格就足够了。

强力破解变得更加容易,如果我们使用 CrypTool 2 来执行二十五次凯撒解密。CrypTool 2 模板“凯撒暴力破解分析”提供了我们所需的功能。我们来应用它解密以下密文,这段密文来自 Elonka 的 《巨型密码与密码表》:^(4)

Devhqfh vkdushqv oryh, suhvhqfh vwuhqjwkhqv lw. Ehqmdplq Iudqnolq

以下是 CrypTool 2 执行的二十五次解密中的一部分:

1 Wxoajya odwnlajo hkra, lnaoajya opnajcpdajo ep. Xajfwiej Bnwjghej

2 Xypbkzb pexombkp ilsb, mobpbkzb pqobkdqebkp fq. Ybkgxjfk Coxkhifk

3 Yzqclac qfypnclq jmtc, npcqclac qrpclerfclq gr. Zclhykgl Dpylijgl

4 Zardmbd rgzqodmr knud, oqdrdmbd rsqdmfsgdmr hs. Admizlhm Eqzmjkhm

5 Absence sharpens love, presence strengthens it. Benjamin Franklin

6 Bctfodf tibsqfot mpwf, qsftfodf tusfohuifot ju. Cfokbnjo Gsbolmjo

7 Cdugpeg ujctrgpu nqxg, rtgugpeg uvtgpivjgpu kv. Dgplcokp Htcpmnkp

8 Devhqfh vkdushqv oryh, suhvhqfh vwuhqjwkhqv lw. Ehqmdplq Iudqnolq

. . .

很容易看出,第 5 行是正确的:

缺席加深了爱情,出席则使其更坚固。——本杰明·富兰克林

成功案例

一名监狱囚犯的密码

我们的同事加里·克里凡斯(Gary Klivans),一位来自纽约州的退役警察队长,是帮派和监狱囚犯使用的加密方法的著名专家。^(5) 他 2016 年出版的《帮派秘密代码:破解》一书,对于所有对破译密码感兴趣的人来说,都是必读之作。^(6) 截至 2023 年,加里在担任专门研究帮派密码的法医顾问。他还是该领域的常驻写作人和讲座者。加里向我们提供了一条未标明日期的来自监狱囚犯的加密信息,见图 2-4。^(7)

图 2-4:来自监狱囚犯的加密信息。明文非常有趣。

这条信息中的每个单词都以yp结尾。加里很清楚,这两个字母的后缀没有意义,目的是为了迷惑破译者。通过频率分析(忽略yp),加里发现这个密码很可能是通过凯撒密码加密的。由于Z是出现频率最高的字母,破解这个密码非常简单。以下是监狱囚犯使用的替代表(密钥为 21):

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文:VWXYZABCDEFGHIJKLMNOPQRSTU

基于这个表,可以恢复出以下明文:

你将收到# MRR STRIPS,确保

确保在处理之前你的手是完全干的

你触摸它们。不要撕裂它们,且大多数

重要的是不要让它们弄湿。拿起

#或它们,将它们一起折叠

尽可能小且紧密包裹 SIR-RAN-WRAP

再把它们折叠两次。把它们放入橡胶

压紧它,拧橡胶并系个结

剪掉多余的橡胶,接着

再放入另一个,并重复上述步骤

同样的事情,重复这个过程# I 次

最终的产品应层叠着

#H 避孕套的 SIR-RAN-WRAP #I 橡胶

然后对接下来的同样步骤重复

其他#或这样只有

#H 是我需要吞下的东西。

确保你使用的是手

消毒剂,直到你进来

这条信息非常有趣。一名监狱囚犯似乎在向收信人(可能是他的妻子)解释如何将毒品(MRR STRIPS)装进避孕套和保鲜膜(SIR-RAN-WRAP)中。他建议对方在探访时将这些毒品包交给他,以便他能立即将其吞下,把毒品偷运到监狱单间。

间谍的加密表

布赖恩·里根(与同名喜剧演员无关)曾在美国空军担任军士长。1999 年,他开始试图将高度机密的文件、录像带和存储介质卖给外国政府,企图获得超过 1000 万美元。2001 年,在他还未得手之前,他被逮捕并被定罪为间谍罪,判处终身监禁。

Regan 在密码学方面受过训练,使用了多种加密方法来隐藏银行代码、地址和其他信息。联邦调查局的破译单位——密码分析与敲诈记录单位(CRRU),通过其首席破译员 Dan Olson 的帮助,成功破解了 Regan 的大部分密文。以下是其中一个较容易破解的例子:

正如 Olson 发现的(可能是通过暴力破解),这份笔记是使用凯撒密码加密的,密钥为 1。数字也被移动了一位。我们可以轻松解密前两行:

Ciphertext: MM-56NVOAIPG CBIOIPG-TUS VCT-AV-533341011943418

Plaintext: LL-45MUNZHOF BAHNHOF-STR UBS-ZU-422230900832307

这条信息指的是瑞士联合银行(UBS),该银行位于瑞士苏黎世巴恩霍夫街 45 号的 Münzhof 大楼。(Regan 显然为这家银行使用了代号LL。)数字422230900832307是一个银行账户号码。第 3 和第 4 行的加密方式相同:

Ciphertext: SS-CVOEFTQMBUA3CFSO-576795218837795

Plaintext: RR-BUNDESPLATZ2BERN-465684107726684

瑞士伯尔尼的 Bundesplatz 2 是另一家瑞士大银行——瑞士信贷银行(Regan 为其使用了代号RR)的地址。同样,465684107726684是一个银行账户号码。

如果你想了解更多关于 Brian Regan 间谍案件的信息,你应该阅读 2016 年由 Yudhijit Bhattacharjee 所著的 highly recommended 书籍《The Spy Who Couldn’t Spell》。^(8)

来自电影《致命魔术》的加密日记

电影致命魔术(2006 年)讲述了 19 世纪末两位伦敦舞台魔术师展开致命竞争的故事。魔术师之一 Alfred Borden 使用密码学保护自己的魔术秘密。电影中多次出现了他日记中的片段。以下是一个例子(大约在影片的八分钟处出现):

加密爱好者很快发现,这本日志包含了真实的加密文本。^(9) 使用的密码是凯撒密码,密钥为 23,明文包含了大量无意义的词语。例如,这一行...

Dsulo 3 ug d ihz zhunt 1,000 ae

...解密为...

April 3 rd a few werkq 1,000 xb

我们不知道werkqxb究竟是什么意思。

挑战

要获取帮助你解决本书中所有挑战的提示及其解决方案,请参阅codebreaking-guide.com/challenges/

Herbert Yardley 的第一个挑战

赫伯特·雅德利(1889–1958)是美国国务院的一位成功破译者。他最著名的是他在 1931 年出版的揭露政府监听活动的书籍,《美国黑房间》。^(10) 他的另一部较不为人知的书籍是 1932 年的《密码文稿》,它提供了一系列加密谜题(雅德利称之为“密码文稿”),并附带了虚构的背景故事。^(11) 第一个密码文稿(见图 2-5)是使用凯撒密码加密的。

*

图 2-5:赫伯特·雅德利(Herbert Yardley)的其中一份密码文稿。它是使用凯撒密码加密的。

你能解开这个吗?

一系列来自 1900 年的报纸广告

这里有四则我们在《痛苦专栏》*中找到的报纸广告。^(12) 它们最初发表于 1900 年英国的《晚间标准报》。

ALICE R.P. Qcbufohizohs mci. 我不太确定,但你如果能早点回复,或许我们能约好一起见面。 1900 年 3 月 27 日,星期二

ALICE R.P. 你记得真好。一定会见面的。一直想着你。 1900 年 3 月 29 日,星期四

ALICE R.P. 我非常期待。Kobhhc gssmci acfs hvob wqob hszzmci. Will zsh ybck in opcih twjs kssyg hwas. 1900 年 4 月 2 日,星期一

ALICE R.P. Gvozz kowh dcfhzobr rd ghohwcb hvifgrom twjs qzcqy gvcizr aiqv zwys gssmci. 1900 年 5 月 17 日,星期四

如图所示,第二则广告完全以明文写成。其他三则则部分使用凯撒密码加密。你能破解这些密码文稿吗?*

第三章:简单的替换密码

任何对加密和破译感兴趣的人都应该参观密码学博物馆。在美国,最好的博物馆是国家密码学博物馆,它是 NSA 位于马里兰州福特·米德总部的大门。如果你在英国,可以去布莱切利公园,在德国,可以参观帕德博恩的海因茨·尼克斯多夫博物馆论坛或慕尼黑的德国博物馆。这些机构展示了许多迷人的密码机,比如恩尼格玛机(见第十五章),以及其他与密码相关的物品。

现在让我们把注意力转向我们在国家密码学博物馆礼品店找到的一件物品:一只带有加密铭文的杯子(见图 3-1)。

图 3-1:这些 NSA 杯子上的铭文是用猪圈密码加密的。

这里使用的加密算法是所谓的猪圈密码的变体。这个密码也被称为自由石匠密码,已经是一个非常古老且广泛使用的加密技术。^(1) 以下图示展示了猪圈密码如何将字母表中的每个字母转化为由线条和点组成的符号:

使用这个图示,我们可以清楚地看到,杯子上的铭文解密后是NATEONAL SECURITY AGENCY。(是的,第一个词有个错字。这种事即使在 NSA 也会发生!)

猪圈密码还有许多其他变体。例如,以下是 1796 年在纽约市一块墓碑上写的文字^(2)。 . .

. . . 结果证明它是用以下方案加密的:

明文是REMEMBER DEAAH

当然,第二个A应该是T,显然,原本的消息应该是REMEMBER DEATH。显然,石匠(或墓碑设计师)打了一个小错字,漏掉了两个点!在密码学中这是常见的现象。想想看,在没有加密的英文文本中,犯错是多么容易。这一问题在密文中变得更加突出,因为密文更难校对。这既会增加,也会减少破解者的难度。

还有许多其他的猪圈密码变体,例如那些改变字母顺序的表格。有关其他变体,请参见本书附录 C 中的词汇表。关于世界各地的密码学博物馆和其他密码学遗址的概述,请查看由 Klaus 和奥地利 IT 专家 Christian Baumann 运营的密码学旅行指南网站,cryptologictravelguide.com

简单的替换密码是如何工作的

豕笔密码和凯撒密码是加密方法的例子,它们将字母表中的每个字母替换为另一个字母或符号。此类密码被称为简单替换密码单字母替换密码(MASC)。简单替换密码为每个明文字母提供一个唯一的密文字母。

简单替换密码主要有两种类型:一种是在原字母表内进行替换,另一种则是将明文字母转换为不同字母表中的字符,这些字符可以是任何东西,从如西里尔字母表这样的书写系统,到密码使用者自己发明的字母表,甚至是数字序列或一组不常见的符号。豕笔密码就是一种不同字母表类型的简单替换密码。用于以下《Woo 之书》中的文本的密码也是如此,该书在 2013 年由网络漫画《Sandra and Woo》介绍:(3), ^(4)

相比之下,图 3-2 的左侧展示了一个相同字母表类型的消息。这是一本加密书籍的封面,书籍于 1835 年在伦敦出版。^(5)

图 3-2:这本书UMGJOML NÝFLOBJOF(左侧)是由伦敦的一个女性秘密组织于 1835 年出版的。它使用简单的替换密码进行加密。右侧显示了解密后的版本。

使用以下的解密表格……

密文: ABCDEFGHIJKLMNOPQRSTUVWXYÝZ

明文: URGPOSC-JIKTNMEDQBFLAWVXHYZ

……这个标题解密后的内容显示在图右侧。

还有两种方案的混合。例如,以下这封信(1841 年由 W.B. Tyler 寄给埃德加·爱伦·坡,^(6)我们将在第六章回到这个话题)同时使用了标准字符和非标准字符:

一种不同字母表的简单替换密码可以通过随机将每个非标准字符替换为普通字母表中的一个字母,轻松转换为相同字母表类型的密码。这个过程被称为转录,结果文本称为转录本。例如,使用一组独特符号(“Voynichese”)的沃伊尼奇手稿(在第五章中有详细介绍),已经被多个研究者以不同方式转录为标准字母表。^(7)

作为转录的一个例子,我们可以使用以下信息,这条信息由一位名为 RetroSA 的用户在 2018 年发布于 Reddit 的未解密码论坛,他表示自己在家人的私人遗物中发现了这条信息。^(8)(顺便说一下,这条信息至今未解开。)

另一位 Reddit 读者 NickSB2013 提供了基于以下表格的转录:

以下是该密码的转录版本:

ABCDE ABFGH ABIJKLMNO OPBD

OPNQAQRS ATRDH NVRDF: OSGA OQCEWKF T VFKO: PGA

DRQAPF OBRSADF EQWXF

不要被转录后的密码以ABCDE开头这一点所困惑。这只是因为 Reddit 读者将消息中出现的第一个字母转录为A,第二个转录为B,以此类推。

经过转录的消息比原始消息更容易分析,尤其是当使用计算机程序时。由于可以将不同字母表的简单替换密码转换为相同字母表的密码,因此密码分析师通常不会区分这两者。破解简单替换密码的方法并不依赖于密文是用标准字母还是替代字母书写的。

美国密码学协会称任何包含空格(即单词之间的边界)的相同字母表简单替换密码为贵族密码。其每期新闻通讯《密码学》都包含若干贵族密码供用户解答。其他报纸和杂志也会发布贵族密码,通常与填字游戏和象棋问题一起发布。此外,还有书籍出版,专门收录贵族密码。似乎很多人喜欢解决这种谜题!

如何检测简单替换密码

有一个简单而非常实用的经验法则:在绝大多数情况下,如果密文是用非标准字母表写的,则其作者使用了简单替换密码(有时会做一些附加的调整)。例如,我们遇到的所有用猪圈字母表写的文本都是这样加密的——虽然也可以结合其他加密方法使用猪圈字母表。显然,那些足够聪明以避免使用简单替换密码、选择更复杂的加密系统的人,也明白使用非标准字母表并不能增加安全性。

当然,不能保证用非标准字母写的文本一定是简单替换密码。为了做出更准确的诊断,我们需要进行频率分析,可能还需要其他统计方法。我们将在图 3-3 中展示这一过程,该图显示了 1909 年的一张加密明信片。^(9)

图 3-3:1909 年使用不同字母表类型的简单替换密码加密的明信片

使用下表...

. . . 我们创建了密码的转录版本。请注意,在转录中,字母UVWXYZ没有出现,因为明信片使用的字母表只有十八个字母:

ABC DCEFG

FHI JBK LHM KGFKN

OMPPHOK LHM JBK

OGQLCDE GH DCEFG

C FJRK SKKD GBLCDE

GH ANHMBCOF J

NCGGNK. FJRK

SKKD HMG SBKJTCDE

BHJQO GFCO

JAGKBDHHD AHB GFK

IJEHDO. EHHQ DCEFG

接下来,我们进行频率分析。以下报告是通过计算机程序 CrypTool 2 生成的,但你也可以手动计算这些频率,或者使用网站dcode.fr/en。在这种情况下,我们只关心百分比频率:

作为对比,这里是普通英语文本的百分比频率分析:

如果我们比较这两段文本中四个最常见和最不常见的字母,我们得到以下结果:

密文:10.87,10.87,9.42,7.97 / 0.00,0.00,0.00,0.00

普通英语:12.7,9.1,8.2,7.5 / 0.75,0.25,0.25,0.25

如你所见,这里有一些差异。例如,密文中最常见的字母的比例为 10.87%,而普通英语中为 12.7%。不过除此之外,这些数字相当相似。总体来说,这张明信片上的加密文本与应用于英语明文的简单替换密码一致。进一步检查显示,确实如此。这张明信片作为本章末尾的一个挑战题目之一。你能解开它吗?

一个不是简单替换密码的密码示例

现在让我们来看一下图 3-4 中的密文。这个信息是著名的Kryptos雕塑上加密铭文的前半部分,我们知道它并没有使用简单的替换密码(参见第八章和附录 A)。

图 3-4:著名的Kryptos雕塑的前半部分不具有简单替换密码的统计特征。

为了证明这一点,以下是这个密码文本的百分比频率分析:

再次,我们观察这四个最常见和最不常见的字母,并将它们的频率与普通英语中的频率进行比较:

密文:7.18,7.18,6.71,6.48 / 0.69,1.39,1.62,1.85

普通英语:12.7,9.1,8.2,7.5 / 0.75,0.25,0.25,0.25

如你所见,差异现在明显增大。与普通英语相比,这个密码文本中最常见的字母太稀有,而稀有的字母又过于频繁。该密码文本的频率分布比一般英语文本要平坦得多。这表明Kryptos铭文的前半部分并没有使用简单替换密码进行加密。我们将在第八章中再次讨论这个著名的密码文本。

同字偶合度技术

每当我们可以使用计算机时,我们可以采用另一种统计方法来推测某个密文是否由简单替换密码加密:同偶指数IC),它被定义为从文本中随机选取两个字母相同的概率。(其他来源可能对 IC 的描述有所不同。)这个重要的破译工具的详细信息在附录 B 中。暂时知道,使用简单替换密码加密的英文明文的 IC 通常为 6.7%,而纯随机文本的 IC 大约为 3.8%。

由于手动计算同偶指数(IC)是一项繁琐的工作,在这个例子中,我们使用网站dcode.fr/en,它提供了一个 IC 计算器。使用这个工具在明信片消息上进行计算……

……在Kryptos文本上,我们得到了以下值:

  1. 明信片消息的同偶指数:6.4%

  2. Kryptos文本的同偶指数:4.5%

明信片文本的同偶指数(6.4%)与使用简单替换密码加密的英文文本的预期值(6.7%)非常接近,而Kryptos文本的同偶指数(4.5%)则相距较远。这确认了一个(正确的)猜测,即明信片是用简单替换密码加密的,而Kryptos加密则不是。

如何破解简单替换密码

破解简单替换密码有两个基本工具:猜测单词和频率分析。^(10) 通常,将这两种方法结合起来效果最好,因此我们将在以下示例中这样做。你通常可以猜测频繁出现的单词和具有不寻常字母模式的单词。我们通过图 3-5 中的密文(取自 2015 年发布的电脑游戏使命召唤:黑色行动 III)演示这些技巧,密文采用的是猪圈密码变体。

图 3-5:从电脑游戏使命召唤:黑色行动 III(2015)中提取的密码谜题

为了转录这条信息,我们使用下图所示的猪圈密码变体:

这给我们提供了以下转录。现在我们已经将符号转换为字母,可以更轻松地审阅文本:

OVSRSVIMQ EXCEVTK 654371979 SRCE KHE GVEAK WAV ERDED WIKH KHE DEFEAK SF KHE ATSKHICSRJ, KHE OEETEVJ AJCERDED KS BECSQE KHE WAVDJ SF APP MRI LEVJEJ. KHE JMVLILIRG ATSKHICSRJ WEVE CAJK SMK, BARIJHED KS KHE DAVO AEKHEV BEREAKH CVEAKISR. AFKEV ESRJ SF EXIPE IR KHE DAVO AEKHEV, KHE ATSKHICSRJ ELSPLED IRKS KWIJKED CVEAKMVEJ KHAK RSW BEAV PIKKPE VEJEQBPARCE KS KHEIV OEETEV BVEKHVER. KHE ATSKHICSRJ CEAJEPEJJ DEJIVE IJ KS VEERKEV CVEAKISR KS CSRJMQE ARD CSVVMTK APP KHE MRILEVJEJ. IK IJ KHE OEETEVJ KHAK GMAVD AGAIRJK KHEJE TEVTEKMAP AKKEQTKJ KS VEERKEV CVEAKISR, ARD GMAVD AGAIRJK ARY BEIRGJ KHAK QAY HALE FAPPER MRDEV KHE IRFPMERCE SF KHE ATSKHICSRJ.

执行频率分析

我们通过数字母开始分析(可以手动进行,也可以使用如 CrypTool 2 等软件):

显然,E 是密文中最常见的字母。假设明文是英语,E 可能代表 E。有时候,事情就是这么简单。

猜测频繁出现的单词

现在,让我们尝试猜几个单词:

  • 单词 KHE(我们也可以写成 KH``E,因为我们已经知道 E 可能代表 E)在密文中出现了十四次。它只能代表 THE。这意味着我们已经识别出了字母 EHT

  • 单词 KHAK (TH``A``T) 必定代表 THAT,因为 THETTHITTHOTTHUTTHYT 没有意义。

  • 单词 KS (T``S) 在文本中出现了五次。由于英语中没有只有两个辅音字母的单词(拼字游戏专家可能会对某些古老形式提出异议),这个单词必须是 TATETITOTUTY。只有 TO 有意义。所以,我们现在已经识别出了字母 AEHOT

  • SMK (O``M``T) 可能代表 OUT

  • AEKHEV (AETHE``V) 显然代表 AETHER

  • APP (A``PP) 代表 ALL

剩余的字母也可以通过类似的方法轻松找到。我们得到以下明文:

KRONORIUM EXCERPT 654371979 ONCE THE GREAT WAR ENDED WITH THE DEFEAT OF THE APOTHICONS THE KEEPERS ASCENDED TO BECOME THE WARDS OF ALL UNIVERSES THE SURVIVING APOTHICONS WERE CAST OUT BANISHED TO THE DARK AETHER BENEATH CREATION AFTER EONS OF EXILE IN THE DARK AETHER THE APOTHICONS EVOLVED INTO TWISTED CREATURES THAT NOW BEAR LITTLE RESEMBLANCE TO THEIR KEEPER BRETHREN THE APOTHICONS CEASELESS DESIRE IS TO REENTER CREATION TO CONSUME AND CORRUPT ALL THE UNIVERSES IT IS THE KEEPERS THAT GUARD AGAINST THESE PERPETUAL ATTEMPTS TO REENTER CREATION AND GUARD AGAINST ANY BEINGS THAT MAY HAVE FALLEN UNDER THE INFLUENCE OF THE APOTHICONS.

利用我们的结果,我们可以重构正在使用的猪圈图。它与应用于 NSA 杯子的图略有不同:

猜测具有不寻常字母模式的单词

对于解密简单替换密码的第二种方法,我们可以通过字母模式猜测单词。直到几十年前,破译者必须使用单词模式列表来执行此任务,这非常繁琐,^(11) 但如今,我们可以使用计算机程序快速进行搜索。

首先,我们需要检查密文中具有稀有字母模式的单词。我们的密文中包含单词 VEERKEV,它是一个很好的候选词。首尾字母相同;此外,这个单词有三个相同字母的模式。当我们将这个单词输入到 CrypTool 2 的单词模式分析器时,我们得到以下结果,显示了哪些常见单词具有相同的字母模式:

如你所见,在所有英语词典中,只有 ADDENDAREENTER 符合这个模式。哪个可能是正确的呢?我们可以通过查看上面计算的频率分析来回答这个问题。如果 ADDENDA 是正确的,那么 D 就是文本中最常出现的字母。而如果是 REENTER,那就是 E。后者显然更有可能。知道 VEERKEV 代表 REENTER,这使我们得到了四个字母的潜在明文对应。接下来,我们可以将这些潜在的明文对应替换到密文中,然后继续猜测短单词,如 THETOOUT,或者寻找更多稀有字母模式的单词。

成功案例

Gary Klivans 如何破译一名监狱囚犯的密码

我们的同事 Gary Klivans 是加密方法的专家,专门研究黑帮和监狱囚犯使用的加密方法(见 第二章),他是 2016 年引人入胜的书籍 Gang Secret Codes: Deciphered 的作者。^(12) Gary 提供了一份有趣的加密便条——一封由新泽西监狱囚犯写给他女朋友的信(见 图 3-6)。^(13) 关于这条信息的背景我们没有更多的资料。

图 3-6:这封由新泽西监狱囚犯写给他女朋友的加密信件,被密码专家 Gary Klivans 破解。

如可以看出,这份便条的发送者使用了一种非标准字母表(可能是他自己发明的)。假设这封信很可能使用了简单的替换密码进行加密,那么转录文本并进行频率分析可能是破解的一个好起点。然而,Gary 通常避免繁琐的转录过程,更喜欢根据字母模式来猜测单词。当他仔细查看密文时,他发现了以下这个词,这个词出现了两次,看起来是一个不错的候选词:

Gary 猜测这些符号代表 HOLLA(这是一种类似于“你好”的俚语)。我们会看到,他的怀疑并不完全正确,但无论如何还是起到了帮助作用。根据他的假设,Gary 能够立即识别出不定冠词 A,这个词在文本中出现了几次。因为在英语中,只有另一个常见的由一个字母组成的单词——代词 I,所以代表它的符号也很容易找出来(见第 1、6 和 9 行的框住符号):

然后,Gary 尝试猜测接下来的这对单词:

转录后,符号是 OA***A* *OO****,这是一个独特的模式。Gary 猜测这些是 OATMEAL COOKIES,结果证明是正确的。到此为止,他已经知道了足够的字母,能够轻松破译整个文本(这时他才意识到,他最初尝试解密的单词并不是 HOLLA,而是 GONNA)。Gary 最终得出了以下替换表:

这导致了以下明文(请注意第七行和第八行中两次出现的 GONNA):

很好,漂亮,

刚吃完午饭,吃了鸡肉饼,他们

我们没问题。亲爱的,我喜欢你的信。什么

你说的这些女人真是太搞笑了。

不要让他们的屁味影响到你,亲爱的。

好的,亲爱的,我刚读了你写的信,里面谈到

我们有孩子。亲爱的,我要简短点

我爱你!!!你将成为我的妻子,

. . .

据我们所知,这是一封普通的情书,没有任何犯罪内容。发送者可能加密它是因为它包含亲密信息——而不是因为他想隐藏任何非法的东西。

Kent Boklan 如何破译南北战争中的加密日记条目

我们的同事 Kent D. Boklan 是纽约的计算机科学教授,也是一个成功的密码破译专家,专注于解密 19 世纪美国的加密内容。除了几篇 1860 年代的南北战争密文,他还解密了 1812 年战争期间一位医生写的日记中的加密段落。^(14) 这些成功案例都在 Kent 发表在科学期刊《Cryptologia》上的文章中有所描述。2014 年,他报告了另一个破译的密码,再次来自一本日记。^(15) 这本日记是由一位名叫 James Malbone 的南方联盟士兵在美国内战期间写的。尽管 Malbone 的日记大部分是明文,但其中有一些段落是加密的。以下是其中一个加密部分:

在明文表达Three1863 年 3 月 11 日之间,Malbone 写了一些非标准(可能是自创的)字母的密文。Kent 推测 Malbone 使用了一种简单的替换密码。第一个密文单词由三个字母组成:*.£。在另一个页面上,Kent 找到了一个类似的单词,位于段落的结尾:?*.£。(在下面的图片中,这两行上面的明文是愿主保佑并与你同在。)

如果我们转录这两个单词(忽略其他密文),我们得到BCDABCD。Kent 意识到AMEN可能是一个合适的候选词,用于描述祈祷的段落。如果这个假设正确,那么密文中的第一个明文单词应该是MEN,而文本应该以Three MEN开头。这是有道理的。

知道字母AMEN,Kent 很容易破译剩余的加密内容。上面展示的两个密文解密后是以下明文:

三个男人在鞭刑处公开鞭打

在整个旅团之前的邮局,1863 年 3 月 11 日

愿主保佑并与你同在

你在我的祈祷中。为了

基督的名义,阿门

Beatrix Potter 的日记

比阿特丽克斯·波特(1866-1943)是英国作家和插画家,最著名的作品是她 1902 年的经典儿童书籍《彼得兔的故事》。大约在 14 岁时,她开始用自己发明的单字母替换密码记录加密日记。她在这本日记中写了 15 年。

1952 年,即波特去世九年后,她的一个亲戚发现了加密的日记。^(16)由于无法理解内容,该亲戚请教了比阿特丽克斯·波特的粉丝——莱斯利·林德,林德立即产生了兴趣并开始着手解密这本日记。尽管波特的加密方法是纯粹的单字母替换密码,但破译工作却异常困难。波特的字写得很小,有时甚至非常细小,许多页面上挤满了成千上万的单词(见图 3-7)。

图 3-7:比阿特丽克斯·波特,著名 1902 年儿童书《彼得兔的故事》的作者,保持了一个加密日记。

在一页中,林德发现了两个清晰的未加密的表达式,非常有帮助:罗马数字XVI和年份1793。在一本历史书中,他读到法国国王路易十六于 1793 年被送上断头台。这使得他能够解密附近的一个单词为execution(执行)。林德于是知道了字母表中八个字母的符号,包括四个元音字母。当天结束时,他几乎解出了波特的全部密码字母表。然而,真正的工作才刚刚开始。林德花了十三年才解开了所有的日记。

林德在工作中非常细心,谨慎地确保一切解码正确。如果波特写到一株植物,林德会请教植物学家。如果她描述一件艺术作品,他则通过查阅艺术书籍和展览目录来验证她的想法。此外,他还会在地图上追踪波特的旅行路线,甚至亲自前往那些特定的地方。1966 年,林德的成果以《比阿特丽克斯·波特日记:1881-1897》一书的形式出版。^(17)以下是他推导出的替代表:

在他的书中,林德写到,图 3-7 中展示的摘录,来自 1886 年 4 月 9 日,解密后的内容如下:

这里下雪了,雾霾。这样的天气该怎么做才能帮助穷人呢?3 月 13 日星期天——老格拉德斯通感冒了。4 月 1 日关于爱尔兰问题的反思方式很方便。我不认为有人期望它能通过。布赖特先生在伦敦,身体健康,心情愉快。罗思特(他的女婿)加入了改革党,曾担心他进不去,因为布赖特在那儿很不受欢迎。

波特并不是唯一一个保持加密日记的人。^(18) 对于那些希望破解自己祖先日记的人来说,有一点值得注意的是,使用复杂密码书写大量文本是非常困难的。因此,几乎所有我们知道的加密日记都使用了简单的替代密码,尽管可能会在某些地方增加一些额外的表达方式,以便更容易书写。在波特的案例中,她使用2代表totoo,以及3代表the。作为经验法则,手写的加密文本越多,破解起来就越容易。

挑战

一种监狱代码

图 3-8 中显示的一段信息是由一名未知人士于 2013 年 12 月发送给宾夕法尼亚州蒙哥马利监狱的一名囚犯的。^(19) 监狱工作人员没有将这条信息送到预定的收件人手中,而是将其转发给了前面提到的法医破译专家 Gary Klivans,他使用本章中描述的技术,尤其是单词猜测法,解开了这条信息。后来,他明确意识到,这段文字是使用一种著名的星际大战书写系统——Aurebesh 写成的。了解这个符号集后,破解过程变得非常直接。

图 3-8:这条信息于 2013 年发送给监狱囚犯,最终证明是使用星际大战字体书写的。

你能像 Gary Klivans 一样,仅凭频率分析和单词猜测破解它吗?

一张明信片

破解本章前面提到的 1909 年的明信片,图 3-3 中所示。你可以使用我们提供的抄本和频率分析工具。

另一张明信片

你能破解图 3-9 中的明信片吗?这张明信片采用了猪圈变体加密(由 Raymond Borges 提供)。^(20)

图 3-9:另一张采用猪圈变体加密的明信片

弗里德曼夫妇的百年结婚纪念镍币

图 3-10 中所示的“木质镍币”复制品,由 Bill Briere 和 Jew-Lee Lann-Briere 于 2017 年在马里兰州福特米德举办的密码学历史研讨会上发放,以纪念 Elizebeth 和 William Friedman 夫妇的百年结婚纪念。这对传奇夫妇创造了美国密码学领域。该镍币上的铭文采用简单的替代密码加密。

图 3-10:一条加密的信息,写在木质镍币上

这是抄本。镍币的背面有一对婚礼铃铛。

UWCKWCCBSD EX KZW OWVVBCY

EX WDBRWTWKZ SCV OBDDBSJ

1917 * XHBWVJSC * 2017

你能破解它吗?

来自 ACA 的《贵族》文章

以下这篇《贵族》文章发表于 2018 年《密码图表》期刊,这是美国密码学协会的通讯期刊。^(21)

WNO ZA JYV YVA YNKHV RAU WNO XKRGUZAX JYV YVA YNKHV RGV JYV HRIV. JYKH, YV MYN NMAH JYV YVA YNKHV IKHJ SV UVRW, SBZAU, NG SNJY.

未解密的密码谜题

许多未解密的密码谜题似乎是通过简单的替代密码创建的(尽管这些仅仅是猜测,因为解决方案尚未知道)。以下是其中一些最有趣的例子。

1888 年的一则加密报纸广告

如图 3-11 所示,加密的报纸广告于 1888 年 2 月 13 日发布在伦敦的每日纪事报上。(22),^(23)

图 3-11:这是 1888 年发布的一则加密报纸广告的复刻版。明文尚未知。

这是一个文字记录:

H—H. A 500 ftb es lmv. 751308, 9sbletv qrex 2102\. Wftev G, sbmelo rqzvs Puveib 7504210 vrl no reasonable wftakil urs, tmze q? Vranziebbs 501 xtz mftebs rfz ut, ebseul crxt not. In fine 700 1, bftel S.S. ultsn zmt mitx bfln. (10th)

据我们所知,这个密码谜题从未被破译。你能解开它吗?

星座名人密码

1990 年 9 月 25 日,一位未知的人向位于旧金山地区的瓦列霍时报发送了图 3-12 所示的明信片。明信片上的信息模仿了星座杀手的风格,星座杀手是上世纪 60 年代末向地区报纸发送加密信件的连环杀手。(24)(星座杀手案件及相关密码谜题将在第六章中解释。)明信片的作者身份尚不清楚,但不太可能是星座杀手本人。(25) 这意味着我们在这里处理的是一个星座模仿者的密码谜题(在本书的后续部分,你将看到更多此类谜题)。

图 3-12:这张明信片是由星座杀手的模仿者所写。

卡片上的三行明文包含了报纸的名称和位置,以及CELEBRITY CYPHER这一表达。名人密码(今天通常拼写为celebrity cipher)是一种密码谜题(通常是贵族式的),一旦破译,结果通常是某位名人的名言。名人密码在美国密码谜题协会的成员和其他谜题爱好者中非常流行。有整本书和网页专门介绍名人密码。埃隆卡的书籍《巨型秘密代码与密码谜题大全》就包含了大量此类密码。^(26)

模仿者的明信片信息(被称为星座名人密码)至今未解开。自然,这有可能是加密了某位名人的名言,但我们并不能确定这一点。

不用说,破译者已经检查过“十二宫名人密码”消息的创造者是否可能使用了在前两个已破解的十二宫密码中找到的加密系统,但未果。有几个网页提供有关十二宫名人密码的信息,其中一些甚至提出了所谓的解密方案。然而,根据我们迄今为止看到的内容,这些都没有道理。

弗朗明信片

图 3-13 所示的明信片是由来自英国卢顿的足球官员乔治·弗朗(George Furlong,1843-1911)于 1873 年写给他妹妹莉齐(Lizzie)的。^(27) 与我们所知的当时大多数加密明信片不同,这张至今尚未被破解。

图 3-13:这张 1873 年的英国明信片至今未被破解。

这张明信片的文字书写方式本身就是一个谜。它可能是一种普通但不常用的书写系统,或者是一种发明的秘密文字。它也可能是一种速记方式,除了其中一些字母(例如三角形符号)不太适合快速书写之外。至少我们可以看出,作者写得流利,并且擅长使用这些符号。转录这段密码文本非常困难,因为某些字母是互相叠写的。包括克劳斯博客的粉丝在内的众多熟练的破译者曾尝试破解这条信息,但都未成功。也许有读者能为这个不寻常的秘密提供线索?

第四章:没有单词间空格的简单替换密码:Patristocrats

在图 4-1 中显示的消息是由臭名昭著的黄道杀手的模仿者于 1994 年发送给纽约邮报的——大约是在杀手最后一条原始信息发布的二十五年后。(参见第六章)该信息使用了同一图中提供的替换表进行加密,并解密为以下明文(包括一些拼写错误):THIS IS THE ZODIAC SPEUKING. I AM IN CONTROL. THO’ MASTERY, BE READY FOR MORE. YOURS TRLIY.

一个 Patristocrat 密码,作为一种没有空格的简单替换密码,如何运作

正如你肯定注意到的,这个黄道模仿者密码是用不同字母表类型的单字母替换密码加密的。然而,与我们在第三章中看到的密码不同,这个密码没有单词之间的空格。密码谜题爱好者和美国密码谜语协会的成员通常用Patristocrat这个术语来指代没有空格的单字母替换密码,特别是那些使用拉丁字母的密码。

图 4-1:这条疑似凶手的信息使用单字母替换密码进行加密,并且没有空格。

应该很明显,缺少空格使得 Patristocrat 密码比贵族密码更难破译。然而,Patristocrat 密码对合法接收者来说也更难处理,因为在解密消息时,有时很难正确确定单词边界。可能会出现歧义。例如,YOUDONTGETMEAPARTOFTHEUNION可能意味着“你不了解我,联合的一部分”,或者“你不了解我,联合之外的一部分”。

正因如此,我们在实际应用中遇到 Patristocrat 密码的频率远低于普通的简单替换密码。然而,这种加密方式并非罕见,因此任何有意研究破译密码的人都应该学习它。

如何检测一种 Patristocrat 密码

如果你看到的文本没有单词间的分隔符,或者这种模式过于规律(例如,由五个字符一组组成),那么你可能正在处理一个 Patristocrat 密码。Patristocrat 密码通常具有与其他简单替换密码相同的字母种类,这意味着频率分析和巧合指数是有效的工具来检测它。

例如,来看一下美国国家安全局(NSA)发布的一个密码谜题。如许多读者可能知道,NSA 在社交媒体上非常活跃,在 Facebook(NSAUSGov)和 Twitter(@NSAUSGov)上发布加密谜题。如果你对在该机构的职业生涯感兴趣,解决这些挑战可能是引起他们注意的好方法。图 Figure 4-2 中的密文是 NSA 于 2014 年 5 月通过 Twitter 发布的四个挑战密码中的第一个。因为每个密码都是在周一发布的,所以它们被称为“NSA 周一挑战”^(2)。

图 4-2:2014 年四个 NSA 周一挑战中的第一个

以下是第一个 NSA 周一挑战的文字记录:

tpfccdlfdtte pcaccplircdt dklpcfrp?qeiq

lhpqlipqeodf gpwafopwprti izxndkiqpkii

krirrifcapnc dxkdciqcafmd vkfpcadf.

不要让空格搞混了视线。它们将字母分成十二个一组,并不对应于明文中的单词分隔。以下是频率分析结果:

这些频率与简单的替代密码一致。密文的重合指数为 6.7%,这恰好是英语文本的预期值。因此,假设第一个 NSA 周一挑战是一个 Patristocrat 密码是合理的。

如何破解一个 Patristocrat 密码

第一个 NSA 周一挑战可以通过计算机在几秒钟内解决,采用的方法如爬山算法(见 第十六章)。为了实现这一点,你可以使用 Tyker Akins 的 Cipher Tools 中提供的密码解密工具,网址为 rumkin.com/tools/cipher/ 或 CrypTool 2。如果你更喜欢手动解密密码,接着阅读。

使用双字母组合进行的频率分析

显然,频率分析对于破解一个 Patristocrat 密码非常有帮助,但我们可以在分析中使用一些额外的统计数据。第一个涉及到 双字母组合,即出现在文本中的连续字母对。以下是第一个 NSA 周一挑战中的双字母组合频率分析:

要利用这些统计数据,我们还需要了解一些关于英语语言的额外事实:

  • 英语中最常见的双字母组合是 EN

  • 双字母组合 ER 在两个方向上都很常见:ER/RE

  • 由重复字母组成的最常见的双字母组合是 LL,其次是 TTSS

  • 双字母组合 AAII 在英语中非常罕见,尽管 AI 是常见的独立字母。

你可以在附录 B 中找到更多关于英语双字母(digraphs)的信息。

你可能最初会认为,密文中最频繁的双字母组合对应着英语中最常见的双字母组合。然而,这个假设对于只有大约一百个字母的密文来说效果并不好。尽管如此,了解双字母组合的频率仍然是有帮助的,后面会更加明确。

在我们继续之前,让我们也对密文进行三字母组(trigraph)的分析。这个分析显示,三字母组PQEPCA各出现了两次,而其他所有三字母组合的出现频率都为一次。英语中最常见的三字母组合是THE,接下来是ANDINGENTIONHERFORTHA(更多的三字母组统计见附录 B)。

三字母组的频率可能对破解较长的密文非常有帮助,但在这里并不相关,因为在本挑战中只有两个三字母组出现了多次。出于类似的原因,四字母组、五字母组和六字母组的频率在这个情况下也没有用,尽管不可思议的是,它们曾被密码破译者使用过。一般来说,n个字母的组合被称为n-graph

现在,让我们尝试应用我们已经计算出的统计数据。如我们在最初的频率分析中所示,第一个 NSA Monday Challenge 密文中最常见的字母是P(12.5%),接着是C(11.54%)和I(10.58%)。因此,我们假设这些字母分别代表英语中最常见的字母ETA。有几种方法可以将PCI映射到ETA,我们从以下选项开始:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

* * T * * * * * A * * * * * * E * * * * * * * * * *

我们可以通过手动检查或使用现代工具(如 Cipher Tools 或 CrypTool 2)来验证这个假设的可信度,这些工具会生成如下结果:

很明显,有些东西看起来不太合理。例如,二字母组AA(出现了两次)和二字母组AE在英语中并不常见。我们可能走错了方向。

因此我们尝试另一个假设:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

* * A * * * * * T * * * * * * E * * * * * * * * * *

这会生成如下的明文候选:

*E*AA*******EA*AAE*T*A*****EA**E?**T***E**TE******E****E*E**TT*****T*E*TT**T**T*A*E*A****AT*A*******EA***

我们再次遇到了两个AA,这种情况不太可能。而且,三字母组AAE出现在明文中,但在英语中非常罕见。显然,我们的猜测又错了。

现在,让我们尝试第三个假设:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

* * T * * * * * E * * * * * * A * * * * * * * * * *

这会呈现如下结果:

*A*TT*******AT*TTA*E*T*****AT**A?**E***A**EA******A****A*A**EE*****E*A*EE**E**E*T*A*T****TE*T*******AT***

这是迄今为止最好的结果,所以我们就坚持这个。

进一步检查结果后,很明显,在AT*TTA中的缺失字母(一个密文中的A)很可能是一个元音字母。由于AE已经被使用,这个字母只能是IOUY。如果I是正确的,我们就得到了二字母组IT,这是一个常见的英语单词。我们来试试这个:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

I * T * * * * * E * * * * * * A * * * * * * * * * *

这可以转化为以下内容:

*A*TT*******ATITTA*E*T*****AT**A?**E***A**EA******A*I**A*A**EE*****E*A*EE**E**E*TIA*T****TE*TI******ATI**

这看起来不错;它可能是英语,且没有什么明显的警告。接下来我们可以尝试什么呢?结尾的字符串ATI**可能代表ATING,例如RATINGSKATING。让我们在我们的表格中添加NG

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

I * T N * G * * E * * * * * * A * * * * * * * * * *

我们现在得到的是:

*AGTTN*GN***ATITTA*E*TN*N**ATG*A?**E***A**EA***NG*A*IG*A*A**EE***N*E*A*EE**E**EGTIA*TN**NTE*TIG*N**GATING

AGTTNGTIA在英语文本中不太常见。而且,结尾的单词GATING也不太合理。最常见的英语二元组EN在这个明文候选中完全没有出现。总体来说,这意味着我们对NG的假设可能是错误的。

或许最后五个字母不是ATING,而是ATION。有很多以这个结尾的单词,例如STATIONRELATIONFRUSTRATION。让我们检查一下这个猜测:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

I * T O * N * * E * * * * * * A * * * * * * * * * *

这是我们的明文候选:

*ANTTO*NO***ATITTA*E*TO*O**ATN*A?**E***A**EA***ON*A*IN*A*A**EE***O*E*A*EE**E**ENTIA*TO**OTE*TIN*O**NATION

这看起来不错。NATION作为 NSA 加密信息中的最后一个单词是相当合理的。我们预期频繁出现的二元组EN出现了一次。而且,我们现在可以猜测出几个额外的单词:O**NATION可能表示OUR NATION(我们的国家);E**ENTIA*可能代表ESSENTIAL(必不可少的);而*ANTTO很可能表示WANT TO(想要)。这给我们提供了更多的字母:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

I * T O * N * * E * R * * L * A * S * W * U * * * *

这是我们下一个明文候选:

WANTTO*NOWW*ATITTA*ESTOWOR*ATNSA?**E***A**EA***ON*A*IN*A*ASWEE**LORE*AREERSESSENTIALTO*ROTE*TIN*OURNATION

猜测剩余的字母很简单。以下是第一次 NSA 星期一挑战的明文:

WANT TO KNOW WHAT IT TAKES TO WORK AT NSA? CHECK BACK EACH MONDAY IN MAY AS WE EXPLORE CAREERS ESSENTIAL TO PROTECTING OUR NATION.

这是替代字母表(用?标记的密文字母表示对应的明文字母不存在):

明文: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

密文: P H Q G I ? M E A ? L N O F D X ? K S C V ? T Z W ?

单词猜测

其他技术可以帮助我们解密"Patristocrats"。让我们再次查看第一次 NSA 星期一挑战(包括频率图):

tpfccdlfdtte pcaccplircdt dklpcfrp?qeiq lhpqlipqeodf gpwafopwprti izxndkiqpkii krirrifcapnc dxkdciqcafmd vkfpcadf.

一种可能性是从猜测一个单词开始。如果我们知道空格的位置,这将变得容易得多,但在这里并不是如此。不过,猜单词可能有效。我们知道 NSA 是消息的发送者,因此搜索三字母组合NSA似乎是个不错的主意。然而,这个搜索并不起作用,因为这个字母组合在我们需要检查的上百个三字母组合中很难被发现。

假设我们知道某个来源提供的信息,表示单词CAREER出现在明文中(毕竟,CAREER是 NSA 为吸引有才华的破译者而制作的加密题目中的一个可能单词)。现在我们可以将它作为密码提示。单词CAREER包含字符串REER,它的字母模式是 1221 型。如果我们在密文中搜索这个模式,就会找到两个类似的字符串:

  • KIIK:这看起来是一个不错的候选项。

  • IRRI:第一个I左边有一个R,因此字母模式实际上是 21221 型。这与CAREER不匹配。

这意味着KIIK是唯一符合的字符串。如果我们的猜测是正确的,QPKIIK代表CAREER。已识别的字母ACER应该足以确定其余的字母。我们将解密的剩余部分留给读者。

成功故事

一条监狱消息

如图 4-3 所示,2012 年,一名英国曼彻斯特监狱的囚犯将这张纸条寄给了他的姐姐。^(3) 根据消息的发送者说,数字代表了一个谜题,让他的姐姐来解答。警方当然立即怀疑这是加密信息,于是他们请来了英国法医语言学家 John Olsson 来查看这张纸条。

图 4-3:这份由 2012 年英国监狱囚犯发送的加密消息中没有空格。

Olsson 发现加密文本中包含二十三个不同的数字。频率分析显示,这与简单替换加密密文一致。为了破解这个密码,Olsson 首先尝试猜测单词——这是一项艰难的任务,因为消息中没有空格。通过系统地分析 Olsson 分析了密文中 840 种不同长度的字母组合,并检查每个字母组合是否能够代表某个特定的单词。突破口出现在他假设38951035代表PLEASE时——这个猜测证明是正确的。在知道了五个字母之后,Olsson 便能识别出所有其他字母。以下是明文的前八行。(它包含许多错误和不常见的拼写。)

KOH C U M M A x I WID SA

xY UNCLE PLEASE I

RUSH SHUD TAKE 2 DAYS 2

A WEK DA TASK IS TO BE

COMPLETED BY ANY ME-

ANS NECERSSARY PLEASE

TASK STATEMENT FROM

SHAKA THROUGH INDECEND-

一种可能的方式来解读这个明文是:

Kohcumma 和我会说:“叔叔,请别急。应该需要两天到一周。”任务必须通过任何手段完成。请从释迦那里获取任务声明,经过不雅的...

其余的信息可以在克劳斯的博客上找到。^4

切尔滕纳姆数字石

英国政府通信总部(GCHQ)是世界上最强大的监控机构之一,与美国的 NSA 不相上下。它位于英国切尔滕纳姆郊区的一座大型圆形建筑(“甜甜圈”)内。该建筑的一侧出口通向赫斯特公园,公园内展示着由艺术家戈登·杨(Gordon Young)于 2004 年创作的九座石雕——听石。^5

每块听石上都有一组刻字,包括字母、数字或符号。其中有两块刻字包含加密信息。由于其中一块是由数字组成,而另一块则由字母构成,我们将它们分别称为“数字石”和“字母石”(尽管这不是它们的正式名称)。字母石将在第十六章中介绍。

图 4-4 展示了数字石,它上面刻有大约 1300 个两位数的数字,范围从 01 到 66。

图 4-4:数字石是由英国艺术家戈登·杨(Gordon Young)于 2004 年创作的听石之一。上面刻的数字代表了一条加密信息。

这里是信息的前一百个数字:

23 02 13 22 25 33 02 14 33 25 02 21 16 26 10 03 06 33 04 13 21 16 01 15 26 25 33 47 44 33 26 10 12 15 16 11 10 05 10 33 10 20 13 22 16 33 30 53 46 64 33 46 33 42 51 57 54 37 53 64 33 54 64 33 54 63 33 30 53 51 43 33 40 43 33 64 53 51 33 47 46 60 47 40 40 33 60 46 64 64 54 43 37 33 16 43 33 60 44 33

2015 年,克劳斯在他的Cipherbrain博客上发布了一篇关于这个密码图的文章。^6 仅仅几个小时后,一位名叫罗伯特的博客读者就在评论区发布了解答(正确答案)。事实证明,信息的创建者使用了一种简单的替换密码。我们不知道罗伯特究竟是如何破解这个密文的,但我们猜测他使用了频率分析。考虑到这条信息相当长,仅凭字母出现的频率就能识别出一些字母是完全可能的。此外,替换表也显示出一些规律,因为字母表的顺序是用艺术家戈登·杨的名字作为关键字来排序的。以下是替换表:

G O R D N Y U A B C E F H I J K L M P Q S T V W X Z

01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32

_ . , ’

33 34 35 36

g o r d n y u a b c e f h I j k l m p q s t v w x z

37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70

这里是明文的前几行:

孤独的快乐诗篇,由

立花明美 真是令人高兴

是当在竹席上时

在我的草屋里,

全凭我自己,我使自己处于

轻松。多么令人愉快

当,借用稀有的文献

来自朋友的,我展开了

第一张纸。多么令人愉快

它是当,铺开纸张时,

我拿起我的画笔,找到我的

手 比我想象的要好。

挑战

拉迪亚德·吉卜林的加密信息

拉迪亚德·吉卜林是许多著名故事的作者,比如《丛林之书》(1894 年)中的故事。在他丰富的作品中,还有为儿童创作的《恰如其分的故事》(1902 年),其中之一是《如何写下第一个字母》。故事的原版印刷中,包括了在两组符号之间的插图(图 4-5)。这些符号是以父权主义风格加密的信息。你能破解它吗?

图 4-5:这幅插图中,1902 年拉迪亚德·吉卜林故事左右两边的符号代表了一个用替换密码加密的信息。

提示:这并不像看起来那么难!仔细看,你会发现第一个单词是THIS。更多提示,请参考我们的挑战部分,就像所有的内容一样,查看codebreaking-guide.com/challenges/

NSA 第二次星期一挑战

在本章早些时候,我们介绍了 2014 年发布的第一次 NSA 星期一挑战。这里是第二个:

Rimfinnpeqcnvqauuagcrdokvdisndrdcrpigaisacpsdffaicvhakcfdqfpqdetrk

ilfa ecnpqacakqisacpfampoacfimannicfakdumfalddnraprf

这个密码需要反向读取。除此之外,它是一个普通的无空格替换密码。

未解密的密码

几个未解的密码似乎是用无空格替换密码加密的英文文本。我们将介绍其中三个。

多拉贝拉密码

多拉贝拉密码是极为著名的。从大卫·卡恩 1967 年的经典著作《破译者》(包括 1996 年版)(7),到伊隆卡的“著名未解密的代码和密码”页面(8),再到克劳斯的“前 50 大未解密码”列表^(9),都涉及到这个密码。

英国作曲家爱德华·埃尔加(1857–1934 年)不仅创作了著名的音乐作品,比如 20 世纪初的进行曲《荣耀与典礼》,而且还对密码学充满兴趣。1897 年,当他的妻子爱丽丝给佩妮家族寄去感谢信时,他附上了一封加密的便条给他的朋友——23 岁的多拉·佩妮(图 4-6)。^(10) 这段密文被称为多拉贝拉密码,尽管经过了一个多世纪许多人的分析(从业余爱好者到著名的密码破译者),它仍未被破解。

图 4-6:多拉贝拉密码是最著名的未解加密谜团之一。

多拉贝拉密码的频率分布与单字母替换密码非常吻合,但这并没有带来最终的解答。有许多方法可以解释这一点。埃尔加可能故意避免包含字母 E 的词汇。也有观点认为多拉贝拉密码可能加密的是旋律(即音符),而不是文本。也有可能明文使用的语言并非英语。或者,当然,多拉贝拉密码根本就不是一个简单的替换密码。如果你想深入了解,可以看看克雷格·鲍尔(Craig Bauer)2017 年出版的《未解之谜!》^(11),它提供了对多拉贝拉密码的全面分析。

中国金条之谜

另一个著名的未解密码刻在七根中国金条上,正如 1996 年在国际密码学研究协会网站上所描述的^(12)。这些金条据称是 1933 年由上海的一位王将军发放的。它们似乎代表与美国银行存款相关的金属证书。金条上刻有图片、中文文字、某种书写形式和拉丁字母密码。中文文字讨论了一笔超过 3 亿美元的交易。密码由十六行加密文字组成,其中有些是重复的:

SKCDKJCDJCYQSZKTZJPXPWIRN

MQOLCSJTLGAJOKBSSBOMUPCE

RHZVIYQIYSXVNQXQWIOVWPJO

FEWGDRHDDEEUMFFTEEMJXZR

XLYPISNANIRUSFTFWMIY

HFXPCQYZVATXAWIZPVE

YQHUDTABGALLOWLS

UGMNCBXCFLDBEY

ABRYCTUGVZXUPB

JKGFIJPMCWSAEK

KOWVRSRKWTMLDH

HLMTAHGBGFNIV

MVERZRLQDBHQ

VIOHIKNNGUAB

GKJFHYXODIE

ZUQUPNZN

很难知道如何对这个密码进行分类,因为它仍未解开。我们猜测它可能是一个“教父密码”(Patristocrat),但当然也可能是其他系统。

自本书第一版出版以来,这个谜团有了新的进展:2020 年 12 月 10 日,我们尝试联系金条的所有者,但发现电话号码已被断开。我们联系了列出的律师彼得·比斯诺(Peter Bisno),并取得了一些进展。他确认他曾见过这些金条,且它们“很大”,差不多有电视遥控器的大小。他告诉我们,曾在 1990 年代尝试联系银行了解这些金条,但没有结果,且他已停止了相关研究。他并不知道金条目前的具体所在。

詹姆斯·汉普顿的笔记本

另一个难以分类的未解决密码学谜团是由美国业余艺术家詹姆斯·汉普顿(1909-1964 年)创建的。他留下了一件作品,被称为“第三天堂的宝座”,在多年的时间里,从 1950 年开始,用纸板、铝箔和其他廉价材料制成了这个大型的、类似祭坛的装置。今天,它展示在华盛顿特区的史密森尼美国艺术博物馆。汉普顿还创作了手工加密的笔记,包括一本有上百页密文的笔记本(图 4-7)。^(13) 他的笔记从未被解密过。所有页面的扫描版已在网上公开。^(14)

图 4-7:业余艺术家詹姆斯·汉普顿的加密笔记本从未被解密过。

第五章:非英语语言中的简单替换密码

世界上最著名的未解密码——《沃伊尼奇手稿》,是耶鲁大学康涅狄格州贝尼克稀有书籍与手稿图书馆收藏的一本 230 页的文献。从封面到封底,这本可能已有 600 年历史的手写书籍中充满了难以理解的文字。文字看起来像是使用不同字母表类型的简单替换密码,并且明文似乎是用一种未知语言写的(但也有可能是用某种失传的文字书写的普通文本,或者完全是无意义的胡言乱语)。我们将在本章末尾再次提到《沃伊尼奇手稿》。

让我们看看图 5-1 中的明信片(由 Richard SantaColoma 提供给我们),这张明信片是 1912 年寄出的。^(1) 因为我们看到的至少 90%的加密明信片都是用简单替换密码加密的,所以我们可以假设这张明信片也是如此。此外,寄件人使用了非标准字母表,这也通常是简单替换密码的特征。

图 5-1:这张 1912 年加密明信片的明文是葡萄牙语。

然而,这张明信片不太可能是用英语写的。因为这张明信片贴有葡萄牙邮票,且寄给了一个住在葡萄牙的、拥有葡萄牙姓氏的女性,我们可以猜测明文是用葡萄牙语写的。

我们可以尝试使用第 2 至 4 章中讨论的破译方法来破解这张明信片;然而,我们必须将我们的单词猜测、频率分析和词汇模式搜索方法调整为适应葡萄牙语。

不会说葡萄牙语?别犹豫,还是试着破解这个信息吧。经验表明,破解加密信息并不一定需要掌握所使用的语言。字母频率及其他关于非英语语言的信息可以在附录 B 和许多网页上找到。

检测所用语言

确定明信片的语言并不困难。然而,事情并不总是如此简单。事实上,检测密码文的明文语言可能是一个重大挑战,这就是为什么了解一个项目的上下文总是一个好主意。在分析密文之前,先弄清楚它的来源以及作者使用了哪些语言。

我们还可以应用统计技术来检测密码文的语言。看看图 5-2 中的明信片,这张明信片写于 1906 年,并由 Tobias Schrödel 提供给我们。^(2) 同样,由于非标准字母表的存在,简单的替换密码很可能是其中的一种。单词之间的空格通过逗号表示。

图 5-2:一张 1906 年寄给芬兰女性的俄罗斯明信片。寄件人可能使用了哪种语言?

可能使用的语言是什么?明信片本身,就像邮票一样,是俄语的。收件人,某位 Inkeri Wink,住在芬兰的瓦萨。那里的主要语言是芬兰语,但瑞典语也很常见。芬兰也能听到其他斯堪的纳维亚和波罗的海语言。Wink 这个姓氏可能是英语或德语的。我们像往常一样从一份抄本开始分析(由 Thomas Bosbach 提供):

ABCDB JORB ATOG

SBCDBD NCBFBD GHIËDBD

FKCBL FBMEAABD STDM

IBKPNCHIBD STDM

CDJKCS CHI FCD GE

JNÖHMNCHI ACR LKBOSCJBA

IBKPBD KBCGB CHI DTHI ITOGB

CHI MTDD DEHI DCHIR GTJBD QTDD

SO FBMEAAGR BKGR DEHI BCDBD FKCB

IBKPNCHI GBC JBJKÖGGR ODS

JBMÖGGR QED SBCDBA ITDG

频率分析可能再次帮助我们。以下是明信片信息的字母频率:

这些频率与明信片上最有可能使用的五种语言(芬兰语、俄语、瑞典语、英语和德语)匹配得如何?以下是每种语言中最常见和第二常见字母:

语言 最常见字母 频率 第二常见字母 频率
芬兰语 A 12% I 11%
俄语 O 11% E 9%
瑞典语 A 10% E 10%
英语 E 12% T 9%
德语 E 16% N 10%

关于最常见的字母,德语是最匹配的。我们看到明信片中最常见的字母频率为 14.88%,而德语字母表中最常见的字母频率为 16%。但是明信片中第二常见的字母与芬兰语最匹配(分别为 13.02%和 11%)。以下是一些可能有助于检测语言的统计指标(更多信息请参见附录 B):

  • 没有一个字母的单词出现在这个密码中。这与德语和芬兰语一致,因为它们也没有单字母单词。由于英语、瑞典语和俄语中存在单字母单词,因此这些语言的可能性较小。

  • 明信片信息的平均单词长度是 5.0 个字母。这与德语(6.0 个字母)和瑞典语(6.0 个字母)最匹配。英语、俄语和芬兰语的平均单词长度分别为 6.2、6.6 和 7.6。

  • 如果我们有计算机可用,我们可以计算密码的巧合指数(参见附录 B)。结果为 7.2%。以下是其他语言巧合指数的相关比较值:芬兰语:7.0%,俄语:5.3%,英语:6.7%,瑞典语:6.8%,德语:7.3%。德语再次提供了最好的匹配。

如果我们看发送者使用的字母表,我们会注意到一些有趣的事情:这个字符集包含两个字母...

. . . 在某些情况下在顶部都有两个点。我们使用 EO 转录了这些带点的字母;这些点也出现在转录中。在某些语言中,像 Ä, Ö, 和 Ü 这样的字母有时会有点,如 A, O, 和 U。这些点被称为变音符号。芬兰语、瑞典语和德语(等等)有变音符号,但英语没有。在俄语字母表中,只有一个双点字母。

如图所示,德语在最常见字母、平均词长和巧合指数方面是最合适的选择。此外,德语有变音符号,德语中没有单字母词。总体而言,德语显然是明信片上使用的最可能的语言。考虑到这条信息是从俄罗斯寄往芬兰的,这当然是一个惊喜!

如何破解非英语简单替换密码

现在我们已经猜出明信片信息的语言,我们可以根据第三章 中介绍的方法将这些技术应用到德语上。

频率分析和猜测单词

频率分析在德语中比在英语中更有效,因为最常见的字母(E)由于与第二常见字母的较大差距更容易辨别:E 的频率为 16%,其次是 N,为 10%(见附录 B)。德语中最常见的双字母组合是 ENER

在这张明信片上,B 是最常见的字母,因此很可能代表 E,而第二常见的 D 可能代表 N。这些猜测得到了确认,因为 BD 是密文中最常见的字母对,这与 EN 是德语中最常见的双字母组合一致。

在德语文本中搜索的好词汇是常用的不定冠词 EIN, EINE, EINEN, EINER, 和 EINES。这些对于密码破译者很有帮助,因为它们经常出现,由常见的字母组成,并且(除了 EIN 以外)包含字母重复。(EINEN 中甚至包含两个。) 事实上,剧本倒数第三行的单词 BCDBD 很容易识别为 EINEN。知道这一点后,我们可以猜测信的第一个单词 ABCDBMEINE(英语中的 my)。有了一些基本的德语知识,其余部分也可以解决。

猜测单词模式

另一种解密这张明信片的方法是搜索具有罕见字母模式的单词。CrypTool 2 软件支持这种技术,适用于包括德语在内的多种语言。因此,我们的下一步可能是检查密文中是否存在具有许多字母重复的单词。JNÖHMNCHI,其模式为 123452647,看起来是一个很好的候选者。乍一看,CrypTool 2 给出了令人失望的结果,因为它为这个模式提供了 26 个不同的匹配项(参见#figure5-3)。即使我们排除诸如PIPELINESMACULATUREGOLDBONDS等不太可能出现在 1906 年明信片上的词语,我们仍然有很多选择。

图 5-3:CrypTool 2 可以用来搜索许多不同语言中的单词模式。

然而,有一个词引人注目:GLÜCKLICH,意思是“快乐”。首先,这个词似乎很适合一张显然包含爱的信息的明信片。其次,如果我们看看下一个单词。

. . .(转录为JNÖHMNCHI),我们看到第三个字母上有两个点(即,它有一个变音符,假设我们对变音符的假设是正确的)。单词GLÜCKLICH的第三个位置也有一个变音符。

确定了GLÜCKLICH之后,我们就有了七个字母,可以猜测出其余的文本:

Plaintext: I CHG KLU

Ciphertext: ABCDEFGHIJKLMNOPQRST

有了对德语的基本了解,猜测更多的词语并不是很困难。例如,我们已经知道密文单词DCHIR的中间三个字母代表*ICH*。这个表达可以被识别为常见的词语NICHT(不)。

如果你不懂德语,可以通过结合单词模式搜索和频率分析来加快进程。我们已经知道的七个字母(I,C,H,G,K,L,U),再加上 B 代表 E(因为它是最频繁的字母)和 D 代表 N(因为它是第二频繁的字母),已经可以走很远了。接下来,寻找不定冠词EINEINEEINENEINEREINESEINES,如上所述。已经识别了十多个字母后,剩下的解密工作应该很容易。

这个关键词恢复了以下明文:

MEINE GUTE MAUS

DEINEN LIEBEN SCHÖNEN

BRIEF BEKOMMEN. DANK

HERZLICHEN DANK.

INGRID ICH BIN SO

GLÜCKLICH. MIT FREUDIGEM

HERZEN REISE ICH NACH HAUSE.

ICH KANN NOCH NICHT SAGEN WANN.

DU BEKOMMST ERST NOCH EINEN BRIE[F.]

HERZLICH SEI GEGRÜSST UND

GEKÜSST VON DEINEM HANS.

这翻译成:

My dear mouse

我收到了你美丽而温暖的来信。谢谢,非常感谢。Ingrid,我很开心。我将怀着喜悦的心情回家。我还不能确定具体时间。你会先收到一封信。来自你的 Hans 的诚挚问候和吻。

成功的例子

一个女孩的猪圈密码(西班牙语)

图 5-4 中展示的密文出现在 Klaus 经常推荐的一本书里,即 André Langie(1871–1961)于 1922 年出版的《密码学》一书中。^(3) 根据 Langie 的说法,一位富翁在他儿子的课本里发现了这条加密便条。好奇为什么他的孩子会写下或收到这样一条信息,他请来密码学专家 Langie 来破解它。

图 5-4:一位富翁在他儿子的课本里发现了这条信息。(这些数字是后来由一位密码分析师添加的。)

Langie 发现这个加密系统是变种的“猪圈密码”。这个便条还包括了单词之间的空格和标点符号,这通常能大大提高猜测单词的难度。正如你所看到的,符号 1 到 42 被引号括起来,符号 20 后面有一个冒号。出现频率最高的符号是符号 7,它出现了九次。

Langie 首先尝试确定明文的语言。由于关于那位富翁和他儿子的故事发生在瑞士的法语区,法语是最可能的选择。然而,从符号 43 开始的单词包含了一个双字母,而法语中几乎不会出现这种情况。Langie 于是猜测,明文可能是西班牙语,这正是那位客户的儿子所讲的语言。在西班牙语中,唯一出现在单词开头的双字母是 L(例如,在 llevarllamarse 中)。

如果这个假设是正确的,那么符号 45,即密码中最常出现的符号,很可能是西班牙语中的 AE(在西班牙语中,双 L 总是跟着元音字母,AE 是常见的字母)。这两个字母 LA/E 又出现在文本最后一个单词的末尾,但顺序相反。这是一个五个字母的单词,其第一个字母和第三个字母相同,所以它一定是 PAPEL(“纸”)。

知道了字母 AELP,Langie 很容易猜出更多的字母。最终,他得出了以下的替代图表。在这个优雅的系统中,字母表从左到右按顺序绘制,一次一个网格:

它生成了以下的明文:

“AMOR NO ES MAS QUE PORFIA:

NO SON PIEDRAS LAS MUJERES"

LLEVA TU ESTE PAPEL

这翻译为:

“Love is nothing more than a squabble:

Women are not stones.”

Keep this paper.

显然,这条信息是一个女孩加密的拒绝信。

La Buse 密码(法语)

法国海盗奥利维尔·莱瓦瑟(Olivier Levasseur,约 1690–1730),也被称为“La Buse”(“秃鹰”),在 18 世纪初期在印度洋劫掠了许多装载丰富的船只。他于 1729 年被捕,并于一年后在法国留尼汪岛(La Réunion)被处决,该岛位于马达加斯加海岸附近。^(4) 传说中,莱瓦瑟在绞刑架上时,脖子上挂着绳索,他将一张写有加密信息的羊皮纸抛向人群,并喊道:“Mon trésor à qui saura le prendre!”(“我的宝藏,赠予那个知道如何取它的人!”)该信息在图 5-5 中有展示。

图 5-5:这幅 1730 年的密码,据称是由海盗奥利维尔·莱瓦瑟(Olivier Levasseur)创作的,据信揭示了宝藏的位置。虽然该信息已经被破译,但宝藏至今未被发现。

这段密文使用了猪圈密码(pigpen cipher)。1947 年,一位名叫雷金纳德·克鲁斯-威尔金斯(Reginald Cruise-Wilkins)的英国人破译了这段加密信息(很可能通过频率分析)。

该法语明文于 2013 年在 Nick Pelling 的博客上发布。^(5)

aprè jmez une paire de pijon tiresket

2 doeurs sqeseaj tête cheral funekort

filttinshientecu prenez une cullière

de mielle ef ovtre fous en faites une ongat

mettez sur ke patai de la pertotitousn

vpulezolvs prenez 2 let cassé sur le che

min il faut qoe ut toit a noitie couue

povr en pecger une femme dhrengt vous n ave

eua vous serer la dobaucfea et pour ve

ngraai et por epingle oueiuileturlor

eiljn our la ire piter un chien tupqun

lenen de la mer de bien tecjeet sur ru

nvovl en quilnise iudf kuue femm rq

i veut se faire dun hmetsedete s/u dre

dans duui ooun dormir un homm r

esscfvmm / pl faut n rendre udlq

u un diffur qecieefurtetlesl

即使你会说法语,这段文字也没有太多意义。到目前为止,似乎没有人能够根据它找到宝藏,但至少这个谜团的加密部分已经被破解。

一张带有爱情信息的明信片(德语)

1901 年,一位年轻人从德国伊瑟尔隆(Iserlohn)寄出了一张加密的明信片,寄往附近的阿恩斯贝格(Arnsberg)(见图 5-6)。^(6) 该加密系统看起来像是一个简单的替换密码,类似于猪圈密码,其中空格由冒号表示。最可能的明文语言是德语。明信片地址上的收件人,一位名叫海伦(Helene)的女性,可能是寄信人的爱人。以下是这段密文的转录:

ABCD:ACEB!

ÜDCH:ICBECE:ABCDCE:DHBCJ:KCLH:MCJHCFN.:IF:OFEICKN:IBPL:ÜDCH:QCBEC:RSCKBC:.ICBE:KPLTNU:QFKK:TAACK:VÖEECE:ITQBN:IF:QBN:KCBECE:ACBKNFEMCE:UF=JHBCICE:DBKN.:IBH:HÄFQC:BPL:ITK:HCPLN:CBE:,ITKK:IF:CENUÜPVCEI:ABCDCE:VTEEKN:OBH:DCBIC:VCHKNCLCE:FEK:VSH=NHCJJABPL:.FEKCH:UFKTQQCEKCBE:KSAA:KRÄNCH:CBE:RTHTIBCK:KCBE,:QCBE:KÜKKCH:CEMCA!!!MFKNTV:KTMNC:TQ:KSEENTM:TEEC:VTQC:BE:ETPLKNCE:NTMCE:KPLSE:OBCICH.:VBCA=ACBPLN:KBEI:OBH:KSEENTM:ISHN:.KPLHCBDC:IBH:VSHLCH:QCBE:ABCD:ACECVCE.LCHUABPL:MHFKKN:FEI:VFKKN:IBPL:BQQCH:ICBE:IBPL:NHCF:ABCDCEICH:JHBNUC.

图 5-6:这张来自 1901 年的德国明信片上带有一条加密的情书。

Tobias Schrödel 在 2018 年向 Klaus 提供了这张明信片。Klaus 将明信片的照片发布在他的博客上,而经验丰富的破译者 Thomas Bosbach 很容易就破解了这段密文。由于密文中 C 是最常出现的字母,Thomas 推测 C 代表明文中的 E。密文中 BE 也出现得很频繁,这使它们成为了明文中的 NISR 的候选字母。

经过一番尝试和错误,Thomas 发现第一行(ABCD:ACEB!)代表了 LIEB LENILIEB 意为“亲爱的”,而 LENI 是女性名字 Helene 的常见缩写。知道了这五个字母后,Thomas 便能推测出剩余的消息。明文竟然是一封甜美的情书。这并不令人惊讶,因为大多数加密的明信片似乎都是年轻男子(有时是年轻女子)寄给他们的情人:

LIEB LENI,

ÜBER DEINEN LIEBEN BRIEF SEHR GEFREUT. DU WUNDE(R)ST DICH ÜBER MEINE POESIE. DEIN SCHATZ MUSS ALLES KÖNNEN DAMIT DU MIT SEINEN LEISTUNGEN ZUFRIEDEN BIST. DIR RÄUME ICH DAS RECHT EIN, DASS DU ENTZÜCKEND LIEBEN KANNST. WIR BEIDE VERSTEHEN UNS VORTREFFLICH. UNSER ZUSAMMENSEIN SOLL SPÄTER EIN PARADIES SEIN, MEIN SÜSSER ENGEL!

GUSTAV SAGTE AM SONNTAG, ÄNNE KÄME IN NÄCHSTEN TAGEN SCHON WIEDER. VIELLEICHT SIND WIR SONNTAG DORT. SCHREIBE DIR VORHER, MEIN LIEB LENEKEN.

HERZLICH GRÜSST UND KÜSST DICH IMMER DEIN DICH TREU LIEBENDER FRITZE.

替换一些名字(Leneken 是 Helene 的另一个昵称,Änne 是一个女性名字,Fritze 是发信人的名字),我们可以得出以下翻译:

亲爱的 Leni,

非常高兴收到你的来信。你对我的诗歌感到好奇。你的宝贝需要具备做一切事情的能力,以便让你满意。我允许你以一种令人愉悦的方式去爱。我们俩相处得非常好。我们在一起的日子将是以后的天堂,我亲爱的天使!

Gustav 上周日说,Änne 很快就会回来。也许我们周日会在那里。我会提前写信给你,亲爱的 Leneken。

衷心的问候和吻,永远忠诚地爱你的 Fritze。

一条黑手党消息(意大利语)

在 2013 年的一次黑手党突袭中,意大利警方发现了一份长达三页的加密文件。图 5-7 显示了一部分。^(7) 调查人员没有可以咨询的密码破译单位,因此他们向几名热衷于填字游戏的警察求助来解开密码。他们成功了,尽管遗憾的是,新闻报道没有透露密码是如何破译的。我们可以假设这些警察使用了频率分析和单词猜测的方法。图中的摘录解密如下:

图 5-7:这条信息是由意大利黑手党成员创建的。警方破译了它,并从文本下方推导出密钥。

A NOME DEI NOSTRI TRE VECCHI ANTENATI, IO BATTEZZO IL LOCALE E FORMO SOCIETÀ COME BATTEZZAVANO E FORMAVANO I NOSTRI TRE VECCHI ANTENATI, SE LORO BATTEZZAVANO CON FERRI, CATENE E CAMICIE DI FORZA IO BATTEZZO E FORMO CON FERRI, CATENE E CAMICIE DI FORZA, SE LORO FORMAVANO

这段话的翻译如下:

以我们三位老祖先的名义,我给这个地方施洗并组建公司,正如他们以铁器、锁链和紧身衣给我们三位老祖先施洗并组建的方式,如果他们用铁器、锁链和紧身衣施洗,我也将用铁器、锁链和紧身衣施洗并组建。

这条信息描述了黑手党的入会仪式。由于没有包含任何有关犯罪行为或人员的参考,其内容对调查官员并没有帮助,但至少解开了一个黑手党的谜团。

挑战

一张加密的明信片

我们由卡尔斯滕·汉斯基提供的图 5-8 显示了一张加密的法国明信片,使用了凯撒密码。^(8) 明文为法语。你能解密它吗?

图 5-8:你能解密这张来自 1904 年的法国明信片吗?

NSA 星期一挑战赛的第三个

如在第四章中提到的,NSA 在 2014 年 5 月通过 Twitter 发布了四个加密挑战:NSA 星期一挑战赛。以下密文是这一系列的第三个:^(9)

nbylcrhspclbyxrnmlbzevsmlchscrhrhnmbebfs

vhcxmxxrmzencmfyvychclcmscgmyimkcncxm

xrydsmnrhsbyemfmmefrhxrfdyrfczmtchmscgby

使用的加密系统原来是一个简单的替换密码,明文是用一种非英语语言写成的。你能解决它吗?

克里斯托利布·冯克的挑战密码

1783 年出版的《自然魔法》(Natürliche Magie)是德国作者克里斯托利布·本尼迪克特·冯克(1736–1786)的著作,其不同寻常之处在于它对心灵现象持高度怀疑态度。^(10) 书中揭穿了各种所谓的超自然活动,如占卜、水蛭治疗和占星术,与詹姆斯·兰迪、迈克尔·舍默等现代怀疑论者揭露这些做法的方式相似。

《自然魔法》中的一章涉及那些在破译加密文本时假装他们的能力来自超自然力量,而不是通过频率分析和单词猜测。作为对读者的挑战,Funk 在图 5-9 中介绍了这一密码谜题。我们将其留给读者,使用传统或超心理的破译技巧来解码它。

图 5-9:与当时的普遍看法相反,解密 1783 年这份密码谜题不需要任何超自然力量。

未解的密码谜题

许多未解的密码谜题看起来像是简单的替代加密文本,而且不太可能有英语明文。接下来的章节中,我们将介绍其中的一些。

《沃伊尼奇手稿》

世界上最著名的未解密码谜题之一,几百年历史的《沃伊尼奇手稿》是一本手写的包含未知文本和神秘插图的书籍。手稿以书商 Wilfrid Voynich(1865–1930)的名字命名,据说他于 1912 年从一家意大利耶稣会学院购得该书。如今,该手稿由位于康涅狄格州耶鲁大学的贝内基稀有书籍与手稿图书馆拥有,图书馆将其称为贝内基 MS 408。

该手稿使用由大约二十五个符号组成的字母表。通过放射性碳分析,发现其书写用的羊皮纸(小牛皮)可追溯到十五世纪初。数百位专家和几代业余研究者已对该手稿进行了详细检查,但他们的主要问题仍然没有答案。尽管有放射性碳定年法,我们仍然不知道它是何时、何地以及由谁编写的。手稿的目的也不明确。有人提出它可能是一本草药或宗教文本,一本炼金术书籍,或者是一本关于药膏的销售目录。也有人认为它可能是伪造品或欺诈行为。手稿中描绘的植物无法确定具体身份,大多数看起来像是纯粹的幻想图像,与任何特定的地方、时间、宗教或意识形态没有明确的关系。

在过去的几十年中,至少有六十种关于《沃伊尼奇手稿》的所谓解决方案已被发表,但没有一个被专家接受。研究人员自然而然地运用了我们书中描述的所有破译方法,包括频率分析、单词猜测和巧合指数,但都没有取得进展。至于明文所使用的语言(如果有的话)也不明确。有人主张它可能是意大利语、拉丁语、希腊语、英语、德语,甚至其他多种语言。

Klaus 在他的网站上汇编了一个详细的加密书籍清单。Elonka 鼓励他将这个清单正式化,现在它正式被称为“Klaus Schmeh 的加密书籍清单”,简称 EBL。Klaus 根据数量将 125 本书(还在增加中!)按类别分组,得出了以下结果:^(11)

  • 日记

  • 秘密社团书籍

  • 知识类书籍

  • 文学

  • 拼图书籍

  • 艺术书籍

  • 骗局

  • 宗教书籍

  • 笔记本

  • 无法分类

在检查每个分类的特征并将这些特征与福因奇手稿(图 5-10)进行比较后,我们的结论是,假设手稿不是由精神错乱者创作的,它很可能是知识之书,或者是一个恶作剧。

图 5-10:福因奇手稿是世界上最著名的未解密密码文本。

在互联网时代,随着福因奇手稿神秘图像被更广泛地展示给大众,一群名为福因奇学家的亚文化活动变得更加兴盛。2012 年在意大利举办的一次福因奇手稿会议吸引了众多研究者,包括本书的两位作者。^(12) 十年后的另一次(虚拟)会议在马耳他岛举行,作者们在此展示了他们的分类研究成果。^(13)

有许多网站专门致力于该手稿,其中最全面的是由 René Zandbergen 运营的 voynich.nu。此外,该文本还启发了许多书籍(14), (15), (16), ^(17),以及 voynich.ninjavoynich.net 上的讨论论坛。后者由 Richard SantaColoma 运营,他还管理着一个福因奇手稿邮件列表。最终提供手稿的可接受破译者将被视为最伟大的密码破译者之一。

香烟盒密码

2017 年,我们收到了一位拥有一只带有加密铭文的古老香烟盒的所有者的联系(见 图 5-11)。^(18) 这条消息看起来像是一种普通的简单替换密码,属于不同字母表类型,任何优秀的密码分析家通常都能轻松解密。Klaus 与他在线的热衷于密码破译者社区分享了这个密码,但令人惊讶的是,没有人能够找到解决方案。

图 5-11:这个刻在德国香烟盒上的铭文至今未能破译。正面刻有 AS 字样(左上角)。

香烟盒密码由四行加密文本组成。文本下方有一个以标准德式日期格式(dd.mm.yyyy)书写的日期,标明为 1909 年 12 月 24 日。此日期表明盒子可能是圣诞礼物。(在德国,圣诞礼物通常在 12 月 24 日交换。)盒子的主人说,它已经是家族的传家宝。他从父亲那里继承了它,但对其来源知之甚少。他的祖籍主要来自古代图林根(Thüringen),现为德国中部地区,他的家族一直讲德语。盒子正面有一个符号,描绘了字母AS。这些字母很可能是原主人名字的首字母。

香烟盒密码是最著名的未解密密文之一,算是一个相对较新的谜题。如果你是一个雄心勃勃的破译者,你或许会选择研究这个加密谜团。

NSA 的第四项周一挑战

尽管前面三项 NSA 周一挑战并不算太难(都只是简单的替换密码谜题,且一天内就能解开),但第四项于 2014 年 5 月 26 日发布的挑战则是另一个难题:^(19)

pjbbfcklerfebjppjjlboumcuppelqpfezbjruoqlerdjbcuddbu

kulfjojprfebjbjzfrtmloupraublxpepkurtppdbjcbelfrfebkj

字母频率和偶合指数(6.7%)与简单的替换密码一致。(记住,英语的偶合指数是 6.7%。)尽管如此,据我们所知,至今仍未找到解决方案。

和所有未解之谜一样,很难确定究竟使用了哪种系统或明文语言是什么。然而,我们将其包含在非英语替换密码章节中,因为我们认为明文很可能不是英语。当然,我们也可能错了!

穆斯蒂耶祭坛铭文

穆斯蒂耶是比利时东部弗拉内兹-莱兹-安瓦讷小镇的一个区,这里是一个未解加密谜团的发源地:圣马丁教堂中的两块加密祭坛铭文(见图 5-12)。^(20) 穆斯蒂耶祭坛铭文在 2013 年被 NSA 解密并公开了 136 期内部新闻简报《Cryptolog》后,成为密码历史爱好者关注的焦点。当英国密码研究员 Nick Pelling 阅读这些资料时,他发现了一篇 1974 年的文章介绍了这些密码谜题。^(21) 他之前从未听说过这些密码,于是在他的博客《Cipher Mysteries》中写下了相关内容,向破译社区分享他的发现。^(22)

图 5-12:比利时穆斯蒂耶的加密祭坛铭文

第一个穆斯蒂尔神秘文字是在教堂的圣马丁祭坛上,第二个在圣母祭坛上。这些祭坛及其加密铭文可能建于十九世纪上半叶,但我们不知道是谁创造了这些信息,或者创作者有什么意图。与其他密码学谜团(如多拉贝拉密码和北美连环杀手的信息)相比,穆斯蒂尔祭坛铭文受到的密码专家关注较少。它们至今仍未解开。

第六章:同音密码

世界上最著名的密码之一是三组密文,它们于 1885 年在一本名为《比尔文集》的小册子中发布。^(1) 这些被称为“比尔密码”的密文,据说是由一位名叫托马斯·比尔的弗吉尼亚水牛猎人在 1820 年代创作,用以隐藏一笔埋藏在弗吉尼亚州贝德福德县某地的金矿宝藏的位置。

尽管我们和许多其他加密专家认为整个比尔故事只是一个骗局(托马斯·比尔,更不用说他的宝藏,可能从未存在过),但这三组密文仍然值得研究。消息#1 和#3 尚未破解,因此被包含在本章的“未解密的密码”部分。第二条比尔密文可以通过《独立宣言》进行解密,其中一版已在小册子中重印。

第二条消息的加密版本如下:

`115, 73, 24, 807, 37, 52, 49, 17, 31, 62, 647, 22, 7, 15, 140, 47, 29, 107, 79, 84, 56, 239, 10, 26, 811, 5, 196, 308, 85, 52, 160, 136, 59, 211, 36, 9, 46, 316, 554, 122, 106, 95, 53, 58, 2, 42, 7, 35, 122, 53, 31, 82, 77, 250, 196, 56, 96, 118, 71, 140, 287, 28, 353, 37, 1005, 65, 147, 807, 24, 3, 8, 12, 47, 43, 59, 807, 45, 316, 101, 41, 78, 154, 1005, 122, 138, 191, 16, 77, 49, 102, 57, 72, 34, 73, 85, 35, 371, 59, 196, 81, 92, 191, 106, 273, 60, 394, 620, 270, 220, 106, 388, 287, 63, 3, 6, 191, 122, 43, 234, 400, 106, 290, 314, 47, 48, 81, 96, 26, 115, 92, 158, 191, 110, 77, 85, 197, 46, 10, 113, 140, 353, 48, 120, 106, 2, 607, 61, 420, 811, 29, 125, 14, 20, 37, 105, 28, 248, 16, 159, 7, 35, 19, 301, 125, 110, 486, 287, 98, 117, 511, 62, 51, 220, 37, 113, 140, 807, 138, 540, 8, 44, 287, 388, 117, 18, 79, 344, 34, 20, 59, 511, 548, 107, 603, 220, 7, 66, 154, 41, 20, 50, 6, 575, 122, 154, 248, 110, 61, 52, 33, 30, 5, 38, 8, 14, 84, 57, 540, 217, 115, 71, 29, 84, 63, 43, 131, 29, 138, 47, 73, 239, 540, 52, 53, 79, 118, 51, 44, 63, 196, 12, 239, 112, 3, 49, 79, 353, 105, 56, 371, 557, 211, 505, 125, 360, 133, 143, 101, 15, 284, 540, 252, 14, 205, 140, 344, 26, 811, 138, 115, 48, 73, 34, 205, 316, 607, 63, 220, 7, 52, 150, 44, 52, 16, 40, 37, 158, 807, 37, 121, 12, 95, 10, 15, 35, 12, 131, 62, 115, 102, 807, 49, 53, 135, 138, 30, 31, 62, 67, 41, 85, 63, 10, 106, 807, 138, 8, 113, 20, 32, 33, 37, 353, 287, 140, 47, 85, 50, 37, 49, 47, 64, 6, 7, 71, 33, 4, 43, 47, 63, 1, 27, 600, 208, 230, 15, 191, 246, 85, 94, 511, 2, 270, 20, 39, 7, 33, 44, 22, 40, 7, 10, 3, 811, 106, 44, 486, 230, 353, 211, 200, 31, 10, 38, 140, 297, 61, 603, 320, 302, 666, 287, 2, 44, 33, 32, 511, 548, 10, 6, 250, 557, 246, 53, 37, 52, 83, 47, 320, 38, 33, 807, 7, 44, 30, 31, 250, 10, 15, 35, 106, 160, 113, 31, 102, 406, 230, 540, 320, 29, 66, 33, 101, 807, 138, 301, 316, 353, 320, 220, 37, 52, 28, 540, 320, 33, 8, 48, 107, 50, 811, 7, 2, 113, 73, 16, 125, 11, 110, 67, 102, 807, 33, 59, 81, 158, 38, 43, 581, 138, 19, 85, 400, 38, 43, 77, 14, 27, 8, 47, 138, 63, 140, 44, 35, 22, 177, 106, 250, 314, 217, 2, 10, 7, 1005, 4, 20, 25, 44, 48, 7, 26, 46, 110, 230, 807, 191, 34, 112, 147, 44, 110, 121, 125, 96, 41, 51, 50, 140, 56, 47, 152, 540, 63, 807, 28, 42, 250, 138, 582, 98, 643, 32, 107, 140, 112, 26, 85, 138, 540, 53, 20, 125, 371, 38, 36, 10, 52, 118, 136, 102, 420, 150, 112, 71, 14, 20, 7, 24, 18, 12, 807, 37, 67, 110, 62, 33, 21, 95, 220, 511, 102, 811, 30, 83, 84, 305, 620, 15, 2, 108, 220, 106, 353, 105, 106, 60, 275, 72, 8, 50, 205, 185, 112, 125, 540, 65, 106, 807, 138, 96, 110, 16, 73, 33, 807, 150, 409, 400, 50, 154, 285, 96, 106, 316, 270, 205, 101, 811, 400, 8, 44, 37, 52, 40, 241, 34, 205, 38, 16, 46, 47, 85, 24, 44, 15, 64, 73, 138, 807, 85, 78, 110, 33, 420, 505, 53, 37, 38, 22, 31, 10, 110, 106, 101, 140, 15, 38, 3, 5, 44, 7, 98, 287, 135, 150, 96, 33, 84, 125, 807, 191, 96, 511, 118, 40, 370, 643, 466, 106, 41, 107, 603, 220, 275, 30, 150, 105, 49, 53, 287

如上所示,它由一系列介于11005之间的数字组成。使用的加密方法非常简单:每个数字代表一个特定的字母,多个数字可以代表同一个字母。以下是替代表的一个片段:

A``: 24, 27, 28, 36, 45, 81, 83 . . .

B``: 9, 77, 90 . . .

C``: 21, 84, 92, 94 . . .

D``: 15, 52, 63 . . .

使用这个片段,我们可以用多种不同的方式对明文字符串ABC进行加密。例如,24921ABC的有效加密方式,27992457721也是如此。

第二个比尔密码的替代表是用《独立宣言》的一个版本创建的。¹托马斯²比尔(³或者⁴真实⁵作者⁶是⁷谁)⁹给¹⁰每个¹¹单词¹²编号¹³,就像我们在¹⁴这个¹⁵句子中¹⁶所做的¹⁷那样。然后,他使用每个数字作为该数字所指代的单词首字母的潜在替代。例如,消息WE ARE THE WORLD可以加密为以下形式:11 107 6 1020 17 104 3 6 15 18

当我们按照上述方式使用《独立宣言》时,第二个比尔密码解密后得到如下内容:

我已将以下物品存放在贝德福德县,距离布福德约四英里处,在一个地下六英尺的挖掘坑或宝库中,这些物品属于第三号中提到的各方,现附带如下:

第一次存款由一千一百十四磅黄金和三千八百一十二磅白银组成,存放时间为一八九一年十一月十八日。第二次存款发生在一八二一年十二月十八日,金额为一千九百零七磅黄金和一千二百八十八磅白银;还包括在圣路易斯交换得到的珠宝,以节省运输费用,价值一万三千美元。

上述内容被安全地包装在铁锅中,并且有铁盖。宝库大致用石头衬里,容器放置在坚固的石头上,并且被其他容器覆盖。纸张一描述了宝库的准确位置,以便找到它时不会遇到任何困难。

自从比尔小册子在一八八五年出版以来,成千上万的寻宝者带着铁锹、铲子和推土机纷纷涌向弗吉尼亚州的贝德福德地区。虽然许多洞已经被挖掘,但至今没有发现任何宝藏。尽管我们认为该小册子很可能是一个骗局、一个共济会的故事,或者仅仅是为了一家濒临倒闭的报纸筹集资金,但比尔密码的故事以及他们关于未发现宝藏的设想,依然是世界上最著名的密码谜团之一。

同音密码是如何工作的

若干个代表相同明文字母的密文字母、数字或符号被称为 同音词。一种替换字母并使用同音词的密码被称为 同音异文密码。第二个比尔密码就是使用同音异文密码进行加密的。(它也是一本书密码,正如第十四章所示。)

当然,制作同音异文密码并不需要像《独立宣言》这样的原文。相反,你可以简单地为一个明文字母分配多个密文字母,并将它们列出在一个表格中。这里有一个十七世纪的例子^(2),其中每个字母可以使用多个符号进行加密,表格的顶部是字母表:

同音异文密码自中世纪以来一直被用来破解频率分析。

同音异文密码中使用的字母表大小可能会有很大差异。有些密码仅对更频繁的字母使用同音词,正如下面这个十八世纪的例子所示:^(3)

大多数同音异文密码使用的字母表比这个要大。根据我们的经验,同音异文密码通常使用五十到一百个密文字母来加密原始字母表。每个密文字母由字母、数字和符号的组合组成。

理想情况下,分配给字母的同音词数量应与该字母在相应语言中的频率成正比;频率较高的字母,如 ET,应分配更多的同音词,而频率较低的字母,如 QX,则应分配较少的同音词。然而,经验表明,实际使用的大多数同音异文密码并未按照如此复杂的方式构造。

如何检测同音异文密码

要识别同音异文密码,通常需要将其与简单替换密码区分开来。如果密文中有空格,它可能仅仅是一个贵族密码(Aristocrat)。如果没有空格,我们需要将其与父系贵族密码(Patristocrat)区分开。

任何简单替换密码和同音异文密码之间有一个明显的区别:后者需要一个更大的密文字母表。如果你遇到一个使用标准字母表或其他包含约二十六个字母的字母表写成的密文,你可以假设它不是同音异文密码(或者,至少可以确定该消息不会包含很多同音词)。如果字母表包含五十个字母,那么同音异文密码的可能性就大大增加。

图 6-1 显示了一条由本杰明·富兰克林等人使用的同音异文密码加密的部分消息^(4)。这里使用的密文字母表由数字组成,本文摘录中的最大数字是 227。这意味着可以为每个字母(AZ)分配大量的同音词。

图 6-1:一段使用同音密码加密的消息示例,记录在《美国大陆会议文献》中。

我们遇到的某些同音密码使用的字母表既包括普通字母,也包括自创字母。图 6-2 展示了一个例子。这是一段 1969 年通过报纸广告发送给黄道带杀手的挑战性密码消息。^(5)我们将在本章的“挑战”部分回到这个密码。像这样的字母表非常适合具有数十个同音词的同音密码。然而,要以这种方式编写第二个比尔密码是困难的,因为发明几百个不同的符号是一项艰巨的任务。

图 6-2:这张 1969 年的报纸广告,由黄道带专家 Dave Oranchak 提供,展示了一个密文,旨在挑战黄道带杀手。它使用了同音密码加密。

如何区分同音密码和其他非简单替换系统的问题仍然存在。维金纳密码和本书中描述的许多其他加密方法通常使用包含大约二十六个字母的字母表,这使它们与同音密码有所区别。然而,同音密码很容易与nomenclator混淆,后者是密码和代码的混合体,由一组名称组成(有关命名符号的详细信息,请参见第七章)。区分这两种方法有时很棘手,因为许多命名符号包含同音词。因此,从某种意义上说,命名符号可以看作是同音密码的一种概括。

然而,同音密码和命名符号之间有一个重要的区别:前者在实际应用中遇到的频率要远高于后者。事实上,在历史上,使用同音密码的情况远不如命名符号常见。如果你检查一个基于大字母表的原始密文(不是伪造的谜题),极有可能你正在处理的是命名符号。

还有一种区分同音密码和命名符号的方法:同音密码很少使用超过 200 个字母的字母表。第二个比尔密码,其字母表超过 1,000 个字母,是一个例外,可能因为它也是一种书本密码(见第十四章)。如果你遇到一个包含 1,000 个或更多不同数字或字母序列的密文,那么很有可能你正在处理一个命名符号或密码。如果字母表较小,同音密码就更可能。

如何破解同音密码

今天,解决同音密码的最佳方法——就像许多其他加密系统一样——是基于计算机的、计算密集型的爬山法。几款软件程序支持这一技术;在搜索引擎中输入“同音密码解码器”可以找到相应工具。这些程序可以在几秒钟内破解某些同音密码(见第十六章)。

如果你想在没有计算机支持的情况下破解同音密码,你的成功几率将很大程度上取决于单词之间的空格是否可见。如果不可见,除非你有一段非常长的密文可供分析,否则任务将变得非常困难。然而,如果单词边界清晰可见,只要没有太多同音异义词在其中,你的成功几率相当高。我们将通过以下文本演示如何破解同音密码,这是你在地理寻宝活动中可能遇到的密文:

这是一个抄本:

U3EI0 RH84 MB9Y B3 0GN DEIYP1C DZEX5 KJB4 7ELN1SB XI5JY 3NK AP95U 1F40O HT XFHZSKC0F1 FK IHEL 3MF 0MJ13R TH9ZFM 3GN THH0DBEO KF40G 3OIH8CG 3OJ TFI5U0 ET054 E7H83 F1J YP9HAN05I 3BYN B 4SCG0 EKL MBZY E9F1C 3OJ T5KXN BT05I USQ O81L4JL AN05IU RH8 MP99 4NEXG B DPX1SX DZBXJ MP3O E D9ERCIF8KL SK 0G5 XN13N4 HT 0O5 DPXKSX DZBXJ 3G5IN PU E OB0 S1 3G5 9FM54 DBI0 HT 3GJ 4NE4 MB9Z FT 0OJ OB3 7JGSKL 0O5 7N1XG RH8 MPZ9 TS1L E UABZ9 D9BU3PX 7FQ XHK0ESKP1C T8I3O5I SKU0I8X3SF1U CFHL Z8XY

这里使用的密文字母表有三十六个字符(AZ09)。一种合理的解释是,它使用了一个同音密码,涉及大约十个同音异义词。频率分析 . . .

. . . 显示,没有任何字母在密文中所占比例超过 5.4%,尽管在英语中,某些字母,尤其是ETAOI,出现的频率远远更高。这可能是因为作者使用了同音异义词来替代最常见的字母,以使它们更难被发现——这正是同音密码的作用所在。

由于我们的密码文本中包含空格(前提是这些空格正确标示了单词之间的边界),我们可以利用每个单词初始字母和最后一个字母的频率分布,而这与文本中所有字母的频率分布是不同的。在深入研究我们的寻宝密码之前,我们需要一些关于英语语言的一般统计数据。 图 6-3 (a) 显示了普通英语文本的字母频率分布。接下来,我们假设在普通英语文本中,每个字母 AEIOT 都有两种不同的表示方式(即同音字)。我们称这些为 A1 和 A2、E1 和 E2、I1 和 I2、O1 和 O2、T1 和 T2。我们选择专注于 AEIOT,因为它们是英语中最常见的字母。如果我们将这些字母中的每一个替换为相应的同音字,并大致均等地使用这两种表示方式,那么典型英语文本的字母频率分布将如 图 6-3 (b) 所示。

图 6-3:图 (a) 显示了典型英语文本中各字母的出现频率,图 (b) 介绍了同音字,图 (c) 和 (d) 显示了初始字母频率的相同统计数据。

为了生成另一个参考统计数据,让我们单独看看典型英语文本中单词的初始字母。 图 6-3 (c) 显示了没有同音字的初始字母频率,而 图 6-3 (d) 显示了引入与上述相同的 A1/A2、E1/E2 等同音字后的初始字母频率。

同音字(b)中的整体字母频率与同音字初始字母频率(d)之间的许多差异可能对破译者有帮助。然而,对我们来说,了解一个具体的差异就足够了:T 是英语中最常见的字母之一(占 9%),如果考虑它作为单词初始字母的出现频率,它的出现频率甚至更高(14%)。由于这一增长,同音字中的 T 很可能在英语同音加密文本中具有最高的初始字母频率。这可能帮助我们在此类密码中识别出明文 T

如果我们看每个单词最后一个字母在英语文本中的出现频率,情况也类似。特别是,I 是英语中常见的字母,但它几乎从不出现在单词的结尾。这可能帮助我们在同音加密文本中识别出明文 I

有了这些背景信息,我们可以回到地理藏宝的文本。我们需要查看字母的总频率、首字母的频率以及每个单词尾字母的频率。我们已经使用 CrypTool 2 完成了这项工作,CrypTool 2 支持首字母和尾字母的计数,并且我们已经将结果整理在图 6-4 中。(我们不知道有哪个计算机程序能自动完成这项完整工作。)

图 6-4:该图中的条形图展示了所有字母的频率(中间的条形),以及我们正在分析的密文中每个单词的首字母和尾字母的频率。

这里有一些观察结果:

  • 密文字母3是最常见的首字母。它在文本中的其他地方不太常见。因此,3可能是一个同音字,代表字母T

  • 必须至少有一个T同音字(否则我们会期望密文字母3的首字母频率大约为 15%)。E似乎是一个合适的候选字母,因为它和3一样,尽管整体频率和尾字母频率较低,但首字母频率非常高。

  • 密文字母HS的整体频率和首字母频率大致相同,但它们并未出现在单词的尾字母位置。它们可能代表字母I

现在我们进行字母对(双字母)频率分析。我们将只考虑没有字母间空格的双字母。以下是所有出现超过一次的双字母。我们使用了网站dcode.fr/en进行此分析:

四次出现 三次出现 两次出现
05 KL, H8, 3O FH, 0O, HT, AN, F1, OB, 40, O5, U3, G5, SX, XJ, 1L, YP, ZB, SK, EI, DP

这里有一些与双字母相关的事实,可能会对你有帮助:

  • 英语中最常见的双字母是THHEIN

  • 最常见的反向双字母是ER/RE。(不幸的是,在我们的密文中,没有反向双字母出现超过一次。)

  • 我们的密码本中有两个只包含一个字母的单词:B(出现两次)和E(出现三次)。常见的英语单字母词只有两个:AI

  • 密文中出现的以下双字母词有:B3HT(出现三次)、FKSKBUS1FT。常见的英语双字母词有OFTOINITISBEASATSO

我们该如何继续?我们知道,密文字母BE(它们都作为单字母词出现)代表的是AI(英语中唯一常见的单字母词)。我们还知道,字母I很少作为单词的尾字母出现。从频率图中可以看到,密文字母BE都多次出现在单词的结尾。因此,我们可以得出结论,BE都不解密为I,这意味着它们代表的是A

我们还能发现什么?正如我们所讨论的,密文字母3T的一个好候选。如果是这样,加密文本中的第四个单词(B3)就是AT,这也很合理。注意,我们在密文中找到了3O这一对最频繁的字母。3O是否代表TH,这是英语中最常见的字母对之一?可能是的。

看看这个加密文本,我们看到单词3OJ出现了两次。如果我们假设3O代表TH是正确的,那么3OJ就应该代表THE,因为没有其他常见的三个字母的单词是以TH开头的。这意味着J解密为E

密文中包含单词3GJ,它解密为T*E。很可能G,就像O一样,代表H

现在我们知道了AEHT的密文等价物,我们可以推测其他字母。例如,密文单词MP3O,解密后是**TH,可能代表WITH。单词MP99应该是WILLMPZ9可能有相同的意思,表明Z9是同音字。现在看看MB9Y,它必须是WAL*WALK是一个合理的猜测。

我们跳过剩下的推测练习,提供明文:

START YOUR WALK AT THE PARKING PLACE NEAR BADENIA CREEK TEN MILES NORTH OF COOLINGTON ON ROAD TWO TWENTY FOLLOW THE FOOTPATH NORTH THROUGH THE FOREST AFTER ABOUT ONE KILOMETER TAKE A RIGHT AND WALK ALONG THE FENCE AFTER SIX HUNDRED METERS YOU WILL REACH A PICNIC PLACE WITH A PLAYGROUND IN THE CENTER OF THE PICNIC PLACE THERE IS A HAT IN THE LOWER PART OF THE REAR WALL OF THE HAT BEHIND THE BENCH YOU WILL FIND A SMALL PLASTIC BOX CONTAINING FURTHER INSTRUCTIONS GOOD LUCK

成功案例

第一个黄道带信息(Z408)

黄道带杀手是一个在 1960 年代末和 1970 年代初活跃在加利福尼亚北部的连环杀手。他至少杀害了五人,并重伤了两人。在一系列发送给当地报纸的挑衅信件中,他嘲笑警察,并宣布他计划进行更多的谋杀和破坏。黄道带杀手的身份仍然未知。这个案件对破译者来说有趣之处在于,杀手的一些信件中包含了加密信息。^(6) 总共可以归属给黄道带杀手的加密信息有四个。

第一个黄道带杀手的加密信息,也叫 Z408,因为它包含的字符数,可以在图 6-5 中看到。它最初分为三部分,每部分都发送给了不同的报纸。警方咨询了专业的破译者,但并没有很快得到回复。由于迫切需要,每家报纸在几天内就发布了这些加密文本。

唐纳德和贝蒂·哈登是一对居住在加利福尼亚州萨利纳斯的谜题爱好者夫妇,他们在报纸上读到了 Z408,并决定尝试解密。贝蒂测试了一个假设,即黄道杀手可能是一个自恋且矫揉造作的人,他可能会用明文词汇I开头,而且也许KILL这个词也会出现在文本中。她猜测第一组明文词汇是I LIKE KILLING,这一猜测成为了突破点。

贝蒂·哈登很快发现,黄道杀手使用了同音加密法来加密这条信息。以下是(相当血腥的)明文,包含拼写错误:

I LIKE KILLING PEOPLE BECAUSE IT IS SO MUCH FUN IT IS MORE FUN THAN KILLING WILD GAME IN THE FORREST BECAUSE MAN IS THE MOST DANGEROUE ANAMAL OF ALL TO KILL SOMETHING GIVES ME THE MOST THRILLING EXPERENCE IT IS EVEN BETTER THAN GETTING YOUR ROCKS OFF WITH A GIRL THE BEST PART OF IT IS THAE WHEN I DIE I WILL BE REBORN IN PARADICE AND ALL THEI HAVE KILLED WILL BECOME MY SLAVES I WILL NOT GIVE YOU MY NAME BECAUSE YOU WILL TRY TO SLOI DOWN OR ATOP MY COLLECTIOG OF SLAVES FOR MY AFTERLIFE. EBEORIETEMETHHPITI

图 6-5:第一条来自黄道杀手的信息被唐纳德和贝蒂·哈登破解。

黄道杀手的第二条信息(Z340)

图 6-6 展示了黄道杀手四条信息中的第二条,它被寄送到当地报纸。该信息于 1969 年 11 月 8 日邮寄。这条密码由 340 个字符组成,因此被称为 Z340。与前述的 Z408 不同,这条信息并未立即被破解。几十年来,Z340 足够长,可以进行有意义的频率分析和其他统计检查,成为世界上最著名的未解加密谜题之一。在本书的第一版中,于 2020 年 12 月 10 日发布时,Z340 甚至被列在本章的“未解密的密码”部分。

图 6-6:黄道杀手的第二条加密信息长达数十年未解。

然而,在 2020 年 12 月 11 日,仅在第一版出版的第二天,我们收到了来自黄道杀手专家戴夫·奥兰查克的消息。他写的内容让人难以置信:他说 Z340 已被破解!根据他的消息,这一成功是由由戴夫本人、比利时破译专家贾尔·范·埃基和澳大利亚数学家山姆·布莱克三人组成的专家团队实现的(见图 6-7)。

图 6-7:从左到右:戴夫·奥兰查克、贾尔·范·埃基和山姆·布莱克破解了 Z340 信息。

当然,我们当时持怀疑态度,因为之前已经发布了许多关于这个著名密文的伪解密。然而,Dave 发布的一段关于他和同事们找到的解决方案的视频似乎有道理。^(7) 我们书中提到的几位密码学专家,包括 Nils Kopal,^(8) Nick Pelling,^(9) Joachim von zur Gathen,^(10) 和 George Lasry(通过电子邮件),都确认了 Dave、Jarl 和 Sam 解密的正确性。为了彻底确认,FBI 通过 Twitter 发布了官方声明,称:“最近,私人公民破解了一个被归于 Zodiac Killer 的密码。”^(11) 现在毫无疑问:Z340 已经被破译!

Dave 和 Jarl 最初在 2014 年联系上,之后 Jarl 在 2015 年创建了 AZDecrypt 软件,用于破解同音替代密码。随后,Dave 和 Sam 在 2019 年通过 Dave 的 YouTube 频道《Let's Crack Zodiac》联系上。他们共同研究 Z340 数月,怀疑 Zodiac Killer 使用了两种密码的组合:一种类似于 Z408 所用的同音替代密码,另一种是换位密码(见第九章)。(12), ^(13)

由于可以应用于如此长文本的换位方式数量庞大——事实上,这些选项似乎是无限的——三位破译者不得不将他们的检查限制在最可能的选项上。因此,他们假设消息以简单的方式被分割——水平、垂直,或两者兼有。除了其他可能性,他们考虑了以下几种情况:

  • 它可能被分成了一个水平部分和两个垂直部分。

  • 它可能被分成了两个水平部分和三个垂直部分。

2015 年,Jarl 和一位匿名论坛用户“daikon”已经发现,当每隔十九个符号读取一次时,Z340 的双字母频率具有一些有趣的统计特性。这表明,通过十九步跳跃加密文本是解密过程的一部分,最终得到了明文。

即便在这些限制下,筛选所有可能的替换和换位选项仍然意味着在一个巨大的干草堆里找针。Dave、Jarl 和 Sam 测试了不少于 650,000 种换位变体。当他们最初没有找到接近 Z340 解法的任何内容时,他们决定将注意力转向重新检查 AZDecrypt 评分中排名前 10%的候选换位选项。这一次,他们还给了软件更多的时间进行搜索。

2020 年 12 月 3 日,突破性进展出现了。在无数次解密尝试中,出现了HOPE YOU ARE, TRYING TO CATCH METHE GAS CHAMBER这两个短语。当 Dave 将这些文本片段配置为密码提示时,AZDecrypt 突然生成了有意义的句子。

一个更加激动人心的进展是,这个明文候选包含了短语 THAT WASNT ME ON THE TV SHOW,Dave 立刻意识到这是对一个男人的暗示,这个男人曾在 1969 年加密消息发送前两周打电话到一个电视节目,假装自己是犯罪者。这强烈暗示他们已经破解了密文前九行的内容!

然而,将这一技术应用于剩余的部分消息仍然没有得到有意义的明文。团队需要进一步的突破才能揭示整个明文。首先,Dave 发现最后两行中的一些单词是倒写的,且没有使用其他的置换。其次,Jarl 找到了第二部分中的一些错误或被打乱的置换。现在,成功的破译者终于能够确定以下明文(已更正一些错误):

I HOPE YOU ARE HAVING LOTS OF FUN IN TRYING TO CATCH ME THAT WASNT ME ON THE TV SHOW WHICH BRINGS UP A POINT ABOUT ME I AM NOT AFRAID OF THE GAS CHAMBER BECAUSE IT WILL SEND ME TO PARADICE ALL THE SOONER BECAUSE I NOW HAVE ENOUGH SLAVES TO WORK FOR ME WHERE EVERYONE ELSE HAS NOTHING WHEN THEY REACH PARADICE SO THEY ARE AFRAID OF DEATH I AM NOT AFRAID BECAUSE I KNOW THAT MY NEW LIFE IS DEATH LIFE WILL BE AN EASY ONE IN PARADICE

不幸的是,明文并没有包含任何直接暗示 Zodiac Killer 身份的信息。在破译过程中,团队意识到消息被分成了三个部分。这意味着破解者们假设文本是以简单的方式分割的这一猜想是正确的。这正是破解困难密码时所需要的幸运猜测!

图 6-8 展示了 Zodiac Killer 使用的同音加密表。正如预期的那样,每个字母可用的同音字数量大致与字母的频率成正比。ET 这两个最常见的英文字母,分别可以映射到六个不同的符号。

图 6-8:用于 Z340 的替代表代表了一种同音加密法。

Z340 所基于的换位密码在图 6-9 中得到了说明。如图所示,信息需要分为两个大段(每段九行)和一个小段(两行)。解密这两个大段时,从每个段的左上角开始,用骑士走法(右移两步,下移一步)遍历信息。一旦到达段的右边缘,重复这一模式,从第一行的第二个符号开始。当块的右上半部分的所有符号都被访问后,路径将继续在左下半部分进行。请注意,在许多情况下,需要跨越符号(例如,从第一行的第一个符号到第二行的第三个符号),正如“daikon”和 Jarl 所建议的那样。

图 6-9:黄道带杀手在 Z340 的前两个区块中使用的换位方法主要基于骑士走法(右移两步,下移一步)。

在第三部分中,未使用骑士走法。相反,信息是从左到右、从上到下书写的,其中一些单词是倒写的。似乎有可能,此外,LIFE ISLIFE WILLDEATH这些表达式也需要移动到其他地方。截至目前,已提出了几个可能的建议。^(14)

黄道带杀手是否希望 Z340 被解密?短语THAT WASN’T ME ON THE TV SHOW暗示他确实希望这样,因为它包含了他可能希望尽快被人知道的信息。这引出了一个问题:杀手是否低估了他密码的难度。我们能否推测他从未尝试过解决这样的系统?他过去曾尝试解过哪些类型的密码,以至于他认为这个密码可以在当时的技术条件下解开?

不言而喻,Dave、Jarl 和 Sam 在梳理无数潜在的替代表和换位模式,以识别正确的方案方面做了巨大的工作。在我们看来,这证明是几代人中最伟大的非军事密码破译成功之一!

费迪南德三世的信件

费迪南德三世(1608–57),来自哈布斯堡家族的神圣罗马帝国皇帝,在欧洲最具破坏性的战争之一——三十年战争中发挥了重要作用。在研究他的生平时,维也纳的历史学家如利奥波德·奥尔遇到了加密信件。费迪南德三世使用的系统基于数字和简单的几何符号,按对排列。如图 6-10 所示,费迪南德的信件是加密和明文段落的混合,但历史学家未能解开这些信件。

图 6-10:费迪南德三世于 1640 年写给他弟弟利奥波德·威廉的加密信件第一页。德国语言学家和历史学家托马斯·恩斯特破解了它。

托马斯·恩斯特(Thomas Ernst),一位在美国教学的德国科学家,尝试破解这个谜题。^(15) 恩斯特在 1990 年代已在学术界崭露头角,当时他破解了约翰内斯·特里特修(Johannes Trithemius)(1462–1516)所著的《Steganographia》第三卷(参见第十五章)。

费迪南德的信件部分内容已经被转录:包括明文的字母和单词,以及与数字和符号混合的加密部分。

作为一位语言学者和历史学家,恩斯特能够轻松阅读皇帝的明文部分,这些部分是 17 世纪德语和拉丁语的混合体。在剩余的部分,恩斯特测试了几个假设。他的核心发现是每个几何符号代表了它由多少条线或半圆组成。例如,一个方形有四条边,代表数字4,一个三角形代表数字3,以此类推。使用这些数字,恩斯特构建了以下的记录:

1640 年,7 月 20 日 /

Zifra 21 13 42 04 23 14 33 13 / 43 02 01

Si haberemus 00 23 03 44 33 quam 13 20 34 / 44 33 were Ich eben der meinung wie E L vnd / were wol der rechte weg, aber eben das non habere / glaube Ich 33 11 42 41 13 33 41 12 34 41 / 14 31 14 42 30 34 13 12 40 13 32 12 24 / ob E L zwar wenig Considerationes haben tam quo: / ad 41 13 41 44 23 44 33 quam 44 / 13 41 44 23 44 33 / so habe Ich doch gar grosse Dann hoc quod scripsi quia me Vestigia / terrent, non intellexi tantum de 22 63 24 13 35 / 41 23 25 25 11 43 41 65 27, sunder von allen / 44 43 67 34 12 89 24 12 43 99 76 22 13 24 / 55 56 34 41 12 43 46 48 47 E L schauen nuhr / was wir vor nuz von 13 66 31 77 12 88 43 99 55 / gehabt haben Vnd noch haben. 12 32 12 43 20 12 24 / 32 senex fuit origo istius mali. 42 01 24 23 44 04 43 / 23 13 12 42 30 41 12 43 34 12 13 43 / fuit 43 14 34 41 24 00 ruina in / 42 66 11 33 53 12 24 00 40 13 42 13 34 / 22 24 13 41 23 01 43 41 in 21 12 23 63 73 / 13 42 13 34 65 55 32 44 43 41 01 42 31 / 12 24 wais schir nicht wie er 12 44 12 24 65 73

第二次突破发生在他意识到哈布斯堡家族的座右铭“AEIOU”在密码中起到了作用。这个座右铭的一种解释是“Austria erit in orbe ultima”,意为“奥地利将存在直到世界的尽头”。从“AEIOU”座右铭中,恩斯特推导出了以下在费迪南德密码中的映射:

A``: 01, 11

E``: 02, 12

I``: 03, 13

O``: 04, 14

当他查看信件开头的序列21 13 42 04 23 04 33 03 43 02 01时,他识别出了以下元音:I – O – O – I – E A,其中的破折号代表缺失的辅音。这个元音模式提示了一个形容词,唯一的可能性是PICOLOMINEA。奥塔维奥·皮科洛米尼(Octavio Piccolomini)与皇帝的兄弟利奥波德·威廉(Leopold Wilhelm)一起,是当时帝国军队的总指挥。PICOLOMINEA在加密时省略了双CZifra PICCOLOMINEA意味着一封以皮科洛米尼为密码名的加密信件。

接下来,恩斯特猜测fuit 43 04 34 41 24 00 ruina中的缺失词是NOSTRA(拉丁语意为我们)。然后他能够轻松推导出剩余的字母,构建以下替代表:

A B,W,P C,K,Z E F G H I/J K L M N O P R S D,T U/V Z

| 00 01

11 | 20 21 | 42 | 02 12 | 22 | 32 | 30 31 | 03 13 | 30 | 23 | 33 | 43 | 04 14 | 21 | 24 | 34 | 40 41 | 44 | 10 |

以下是根据恩斯特的解密所得出的信件第一部分的明文:

Zifra PICOLOMINEA

Si haberemus ALIUM quam IPS

UM were Ich eben der Meinung wie E L Vnd

Were Wol der rehte Weg, aber eben das non habere

glaube Ich MAC‹H›T IM DEST

O HOCHSIEDIGER

ob E L zwar wenig Considerationes haben tam quo:

ad TITULUM quam U

ITULUM so habe Ich doch gar

grosse Dann hoc quod scripsi quia me Vestigia

terrent, non intellexi tantum de FRI

DLANT, sunder Von allen

UNSEREN FIR

STEN E L schauen Nuhr

我们之前从 IH‹N›EN 那里知道的

gehabt haben Vnd noch haben. EGENBER

G senex fuit origo istius mali. CARL UON

LIECHTENS‹T›EIN senior

fuit NOSTRA ruina in

CAMERADICIS

FRIDLAND in BEL

ICIS‹.› GUNDACK

[. . .]

这是以一种难以理解的旧德语和拉丁语混合写成的,包括缩写和拼写错误。以下是恩斯特提供的粗略注释翻译:

Zifra picolominea

如果我们有别人[担任总司令]而不是他[场元帅奥塔维奥·皮科洛莫尼]

我会同意你的观点,

并且这本应是正确的道路,但问题在于没有做到这一点

其他人[没有其他适合的总司令候选人],那就使他[皮科洛莫尼]成为唯一选择

甚至更加专横。

尽管你可能对某些方面有些保留意见

to another title [rewarding Piccolomini with an imperial princicipality],

我有不少[保留意见]。

让我困扰的不仅仅是弗里德兰德

. . .

一张来自夏威夷的明信片

如图 6-11 所示的密码,写在 1886 年从夏威夷寄出的明信片上。^(16) 它是由马里兰州的国家密码学博物馆提供的,并由我们同事阿尔敏·克劳斯解决,他是一位非常熟练的德国破译者。阿尔敏知道大多数加密的明信片都是用简单的替代密码加密的——但通常包含空格,而这里并没有。这意味着这是一个父权主义密码,而不是贵族密码。因此,阿尔敏怀疑其中一个符号表示空格字符。经过一些分析,阿尔敏意识到,实际上有两个符号表示空格(即同音词):T及其倒置版本。接下来,他确定文本中出现四次的单字词是I

阿尔敏随后试图识别E,这是英语中最常见的字母。然而,没有任何符号像预期的那样频繁地出现,表明它们代表E,于是他做出了另一个猜测:也许有两个符号代表E。这个假设被证明是正确的。通过频率分析和一些猜测,阿尔敏发现X和由三条平行的横线组成的符号都代表E。剩下的解密过程相对简单。以下是阿尔敏恢复的明文:

二月二十八日。

感谢你的来信

我上周收到

星期三。我很高兴

事实上,丘吉尔有

做一些工作,你

字母有多个

它有一些错误,BU

T 我敢说我的 HA

S 也是一个数字。我 SH

一只大山羊,上面

昨天的山脉,W

重约一百磅。

DRED 和 TMENTY 英镑。

不要开始你的信

ER “亲爱的”,因为

如果有人抓到

一个,他们可能猜到一些

字母表的。

再见。

图 6-11:这张 1886 年的夏威夷明信片采用了字母替换密码,其中包括空格符号和E的同音字。

挑战

给黄道带杀手的留言

本章早些时候,我们介绍了一个黄道带风格的加密信息(见图 6-2),它是加利福尼亚警察在 1960 年代末黄道带杀人事件发生时,刊登在报纸广告中的。该信息使用简单的同音替代密码加密,明文中包含了一个电话号码。警方希望杀手能够成功破译该信息,然后打电话给该号码,以展示他的优越性。计划失败了,但至少这个密码谜题提供了一个不错的解密挑战。你能解开它吗?

埃德加·爱伦·坡的第二个挑战

美国作家埃德加·爱伦·坡对密码学有着长久的兴趣。他 1843 年的短篇小说《金甲虫》是描述破译密码的最著名小说。(故事中破译的系统是简单的替代密码。)几年前的 1839 年,当坡为《亚历山大周刊》写作时,他发起了一场密码学竞赛,挑战读者发送加密文本给他破译。^(17) 结果,他的读者们发送了简单的替代密码文本,正如我们现在所知,它们相对容易解开。他在 1841 年于《格雷厄姆杂志》上发起了类似的挑战,收到了大约一百个密码谜题,据说他都解开了。为了结束约 1840 年的《信使》竞赛,他发表了两个加密文本(据说是由 W.B. Tyler 提交的),这两个文本保持了超过 150 年的未解状态。

1985 年,达特茅斯学院英语教授路易斯·伦扎提出,W.B.泰勒从未存在,坡自己创造了这些信息。伦扎的著作使这两个挑战性密码重新引起公众注意,1990 年代,这些信息的第一条由特伦斯·沃伦和约翰·霍奇森独立解开(参见第九章)。

第二个密码显示在图 6-12 中。2000 年,加拿大软件工程师吉尔·布罗扎找到了正确的解密方法,结果发现使用了同音密码。^(18) 从密码被解开花了 160 年这一事实中可以推测出,这个密码并不是初学者的挑战!

图 6-12:这个由埃德加·爱伦·坡留下的同音密码在创作后 160 年被解开。

欲了解此挑战的逐字稿和一些提示,请查看codebreaking-guide.com/challenges/

未解密的密码

比尔文件第 1 页和第 3 页

正如本章前面讨论的那样,一个名为托马斯·比尔的 19 世纪弗吉尼亚冒险家据称在三份加密笔记中描述了一个宝藏及其位置。这个故事很可能只是虚构,但这些加密笔记值得研究。第二条信息已经被破译,但其他两个密码仍未被解开。据称比尔文件第 1 页包含宝藏的位置,而第 3 页包含比尔及其伙伴及其家人的姓名和住址。

这是比尔文件第 1 页,“宝库的位置”:

71, 194, 38, 1701, 89, 76, 11, 83, 1629, 48, 94, 63, 132, 16, 111, 95, 84, 341, 975, 14, 40, 64, 27, 81, 139, 213, 63, 90, 1120, 8, 15, 3, 126, 2018, 40, 74, 758, 485, 604, 230, 436, 664, 582, 150, 251, 284, 308, 231, 124, 211, 486, 225, 401, 370, 11, 101, 305, 139, 189, 17, 33, 88, 208, 193, 145, 1, 94, 73, 416, 918, 263, 28, 500, 538, 356, 117, 136, 219, 27, 176, 130, 10, 460, 25, 485, 18, 436, 65, 84, 200, 283, 118, 320, 138, 36, 416, 280, 15, 71, 224, 961, 44, 16, 401, 39, 88, 61, 304, 12, 21, 24, 283, 134, 92, 63, 246, 486, 682, 7, 219, 184, 360, 780, 18, 64, 463, 474, 131, 160, 79, 73, 440, 95, 18, 64, 581, 34, 69, 128, 367, 460, 17, 81, 12, 103, 820, 62, 116, 97, 103, 862, 70, 60, 1317, 471, 540, 208, 121, 890, 346, 36, 150, 59, 568, 614, 13, 120, 63, 219, 812, 2160, 1780, 99, 35, 18, 21, 136, 872, 15, 28, 170, 88, 4, 30, 44, 112, 18, 147, 436, 195, 320, 37, 122, 113, 6, 140, 8, 120, 305, 42, 58, 461, 44, 106, 301, 13, 408, 680, 93, 86, 116, 530, 82, 568, 9, 102, 38, 416, 89, 71, 216, 728, 965, 818, 2, 38, 121, 195, 14, 326, 148, 234, 18, 55, 131, 234, 361, 824, 5, 81, 623, 48, 961, 19, 26, 33, 10, 1101, 365, 92, 88, 181, 275, 346, 201, 206, 86, 36, 219, 324, 829, 840, 64, 326, 19, 48, 122, 85, 216, 284, 919, 861, 326, 985, 233, 64, 68, 232, 431, 960, 50, 29, 81, 216, 321, 603, 14, 612, 81, 360, 36, 51, 62, 194, 78, 60, 200, 314, 676, 112, 4, 28, 18, 61, 136, 247, 819, 921, 1060, 464, 895, 10, 6, 66, 119, 38, 41, 49, 602, 423, 962, 302, 294, 875, 78, 14, 23, 111, 109, 62, 31, 501, 823, 216, 280, 34, 24, 150, 1000, 162, 286, 19, 21, 17, 340, 19, 242, 31, 86, 234, 140, 607, 115, 33, 191, 67, 104, 86, 52, 88, 16, 80, 121, 67, 95, 122, 216, 548, 96, 11, 201, 77, 364, 218, 65, 667, 890, 236, 154, 211, 10, 98, 34, 119, 56,216, 119, 71, 218, 1164, 1496, 1817, 51, 39, 210, 36, 3, 19, 540, 232, 22, 141, 617, 84, 290, 80, 46, 207, 411, 150, 29, 38, 46, 172, 85, 194, 39, 261, 543, 897, 624, 18, 212, 416, 127, 931, 19, 4, 63, 96, 12, 101, 418, 16, 140, 230, 460, 538, 19, 27, 88, 612, 1431, 90, 716, 275, 74, 83, 11, 426, 89, 72, 84, 1300, 1706, 814, 221, 132, 40, 102, 34, 868, 975, 1101, 84, 16, 79, 23, 16, 81, 122, 324, 403, 912, 227, 936, 447, 55, 86, 34, 43, 212, 107, 96, 314, 264, 1065, 323, 428, 601, 203, 124, 95, 216,814, 2906, 654, 820, 2, 301, 112, 176, 213, 71, 87, 96, 202, 35, 10, 2, 41, 17, 84, 221, 736, 820, 214, 11, 60, 760.

这里是 Beale 论文 #3,“姓名和住址”:

317, 8, 92, 73, 112, 89, 67, 318, 28, 96, 107, 41, 631, 78, 146, 397, 118, 98, 114, 246, 348, 116, 74, 88, 12, 65, 32, 14, 81, 19, 76, 121, 216, 85, 33, 66, 15, 108, 68, 77, 43, 24, 122, 96, 117, 36, 211, 301, 15, 44, 11, 46, 89, 18, 136, 68, 317, 28, 90, 82, 304, 71, 43, 221, 198, 176, 310, 319, 81, 99, 264, 380, 56, 37, 319, 2, 44, 53, 28, 44, 75, 98, 102, 37, 85, 107, 117, 64, 88, 136, 48, 154, 99, 175, 89, 315, 326,78, 96, 214, 218, 311, 43, 89, 51, 90, 75, 128, 96, 33, 28, 103, 84, 65, 26, 41, 246, 84, 270, 98, 116, 32, 59, 74, 66, 69, 240, 15, 8, 121, 20, 77, 89, 31, 11, 106, 81, 191, 224, 328, 18, 75, 52, 82, 117, 201, 39, 23, 217, 27, 21, 84, 35, 54, 109, 128, 49, 77, 88, 1, 81, 217, 64, 55, 83, 116, 251, 269, 311, 96, 54, 32, 120, 18, 132, 102, 219, 211, 84, 150, 219, 275, 312, 64, 10, 106, 87, 75, 47, 21, 29, 37, 81, 44, 18, 126, 115, 132, 160, 181, 203, 76, 81, 299, 314, 337, 351, 96, 11, 28, 97, 318, 238, 106, 24, 93, 3, 19, 17, 26, 60, 73, 88, 14, 126, 138, 234, 286, 297, 321, 365, 264, 19, 22, 84, 56, 107, 98, 123, 111, 214, 136, 7, 33, 45, 40, 13, 28, 46, 42, 107, 196, 227, 344, 198, 203, 247, 116, 19, 8, 212, 230, 31, 6, 328, 65, 48, 52, 59, 41, 122, 33, 117, 11, 18, 25, 71, 36, 45, 83, 76, 89, 92, 31, 65, 70, 83, 96, 27, 33, 44, 50, 61,24, 112, 136, 149, 176, 180, 194, 143, 171, 205, 296, 87, 12, 44, 51, 89, 98, 34, 41, 208, 173, 66, 9, 35, 16, 95, 8, 113, 175, 90, 56, 203, 19, 177, 183, 206, 157, 200, 218, 260, 291, 305, 618, 951, 320, 18, 124, 78, 65, 19, 32, 124, 48, 53, 57, 84, 96, 207, 244, 66, 82, 119, 71, 11, 86, 77, 213, 54, 82, 316, 245, 303, 86, 97, 106, 212, 18, 37, 15, 81, 89, 16, 7, 81, 39, 96, 14, 43, 216, 118, 29, 55, 109, 136, 172, 213,64, 8, 227, 304, 611, 221, 364, 819, 375, 128, 296, 1, 18, 53, 76, 10, 15, 23, 19, 71, 84, 120, 134, 66, 73, 89, 96, 230, 48, 77, 26, 101, 127, 936, 218, 439, 178, 171, 61, 226, 313, 215, 102, 18, 167, 262, 114, 218, 66, 59, 48, 27, 19, 13, 82, 48, 162, 119, 34, 127, 139, 34, 128, 129, 74, 63, 120, 11, 54, 61, 73, 92, 180, 66, 75, 101, 124, 265, 89, 96, 126, 274, 896, 917, 434, 461, 235, 890, 312, 413, 328, 381, 96, 105, 217, 66, 118, 22, 77, 64, 42, 12, 7, 55, 24, 83, 67, 97, 109, 121, 135, 181, 203, 219, 228, 256, 21, 34, 77, 319, 374, 382, 675, 684, 717, 864, 203, 4, 18, 92, 16, 63, 82, 22, 46, 55, 69, 74, 112, 134, 186, 175, 119, 213, 416, 312, 343, 264, 119, 186, 218, 343, 417, 845, 951, 124, 209, 49, 617, 856, 924, 936, 72, 19, 28, 11, 35, 42, 40, 66, 85, 94, 112, 65, 82, 115, 119, 236, 244, 186, 172, 112, 85, 6, 56, 38, 44, 85, 72, 32, 47, 73, 96, 124, 217, 314, 319, 221, 644, 817, 821, 934, 922, 416, 975, 10, 22,18, 46, 137, 181, 101, 39, 86, 103, 116, 138, 164, 212, 218, 296, 815, 380, 412, 460, 495, 675, 820, 952.

如果你找到了宝藏,请告诉我们。

黄道杀手的第三封信(Z13)

1970 年 4 月 20 日,黄道杀手向一家报纸发送了第三封密码信(如今称为 Z13)。它仅由十三个字母组成。

据说,这段简短的加密文本包含了凶手的名字。它仍然未解。

黄道带杀手的第四条信息(Z32)

黄道带杀手的第四条信息(Z32)由三十二个字母组成,并于 1970 年 6 月 26 日发送。与 Z32 一起,杀手还寄送了一张旧金山地区的地图以及以下明文信息:这张地图和这个密码将告诉你炸弹的放置地点。^(19)

解答仍然未知。

蝎子密码

在 1990 年代,约翰·沃尔什,以主持美国最想要的人而闻名,收到了一系列签名为 SCORPION 的信件。^(20) 这些信件中有一些包含了加密信息,通常被称为蝎子密码。^(21) 迄今为止,仅有两份加密文本和几页未加密的文本被公开。图 6-13 展示了其中一份公开流传的加密文本。

如图所示,发件人模仿了黄道带杀手。这些蝎子密码的解答仍然未知。

图 6-13:蝎子密码(这里只是其中的一部分)是由一位黄道带杀手的模仿者所创作。

亨利·德博斯尼的消息

1882 年,一位名叫亨利·德博斯尼(1836–1883)的人定居在纽约州的埃塞克斯县。^(22) 他很快开始追求一位名叫伊丽莎白·威尔斯的寡妇,仅仅几周后,两人便结婚。几个月后,伊丽莎白被发现被谋杀,德博斯尼被逮捕为嫌疑人。很快就发现,德博斯尼的两任前妻也在相似的奇怪情况下年轻去世。在监狱里,德博斯尼是一个博学且受过良好教育的人,他绘制了画作,写了诗歌,也创作了一些看似加密的文本(见图 6-14)。1883 年,他被判死刑,并随后被绞死。纽约州埃利兹贝斯敦的阿迪朗达克历史博物馆展出了许多关于此执行的有趣展品,以及德博斯尼创作的实际密码。

亨利·德博斯尼的故事由切丽·法恩斯沃思在其 2010 年出版的《阿迪朗达克之谜》一书中进行了详细记录。^(23) 关于此案仍然有许多未解的问题,包括关于他两任前妻死亡的更可靠信息。

图 6-14:被定罪的妻子杀手亨利·德博斯尼的密码至今未解。

Debosnys 留下的四个已知的密码图可能会为这些问题提供一些线索,但它们从未被破译过。Debosnys,一位技艺高超的艺术家,使用了大量象形风格的符号来编码他的信息,这表明他应用了同音密码。尽管 Debosnys 的密码图是一个引人注目的密码谜团,但在国际密码破译界并没有得到太多关注。也许你,亲爱的读者,能够解决它们!

第七章:密码和命名法

1917 年的齐默尔曼电报(图 7-1),其破解改变了第一次世界大战的进程,是德国国务卿阿图尔·齐默尔曼于 1917 年 1 月发送给墨西哥的一份秘密外交通知。电报提议,在美国参战对抗德国的情况下,德国与墨西哥建立军事同盟。^(1) 该电报在英国被秘密截获并转交给英国密码分析师,后者成功破解了它。内容的披露激怒了美国人,并帮助促使美国(此前一直保持中立)支持对德国宣战。

图 7-1:齐默尔曼电报,1917 年由德国国务卿发送的秘密外交通知,采用密码加密。

如所见,齐默尔曼电报的内容由数字组成,其中大部分是五位数。每个数字代表一个单词。例如,4458代表zusammen一起),13850代表finanziell财务),36477代表德克萨斯。为了加密信息,德国人使用了一种字典,其中包含数千个常用词的条目。解密和翻译后,齐默尔曼电报的内容如下:

我们计划于二月一日开始无限制的潜艇战。尽管如此,我们的意图是尽力保持美国中立。

如果此次尝试不成功,我们提议与墨西哥建立以下基础上的同盟:我们将共同作战,并共同达成和平。我们将提供一般的财政支持,且明言墨西哥将重新夺回新墨西哥、德克萨斯和亚利桑那的失地。细节由你来决定……

你被指示在确信与美国爆发战争后,尽快以绝对保密的方式通知墨西哥总统上述内容,并建议墨西哥总统主动与日本沟通,建议立即遵守这一计划;同时,提出调解德国与日本之间的争端。

请提醒墨西哥总统,现在使用无情的潜艇战有望迫使英国在几个月内达成和平。

齐默尔曼(国务卿)

密码

一种将整个单词或短语替换为单一数字、字母组合或符号的加密方法称为密码。密码在电报时代尤为流行——正如下面所指出的那样——许多密码不仅用于保密,还用于缩短信息。

在齐默尔曼电报的情况下,保密性,而非简化消息,是主要目标。德国人于 1916 年引入了名为 13040 代码的系统。该系统部分基于早期已经为英国密码分析员所知的代码。通过分析数十个 13040 代码的电报,伦敦的密码破译员能够提升对它的理解,到了 1917 年初,当他们接到破译齐默尔曼电报的命令时,他们已经准备充分。他们能够立刻解开消息的一部分,随后完全破译了该电报。

本书中描述的大多数加密方法在技术上并不是代码,而是密码,因为它们作用于单个字母,而非单词。简单的替换密码,如凯撒密码(或 ROT-13)、多字母的维吉尼亚系统以及双字母交换的普雷费尔方法,都是密码。齐默尔曼电报使用的系统,包括字典代码(见第十四章)和纳瓦霍代码(见第十五章),都是代码。换句话说:代码是一种通常作用于单词或短语级别的加密方法,而密码一般加密消息时作用于单个字母级别。

我们必须简要介绍一些附加术语。代码组是指在代码中表示一个单词的数字、字母组合或符号。任何旨在加密任意文本的代码都需要为语言中的每个常见单词提供一个代码组。这可能意味着成千上万的条目,因此编写代码通常需要创建一本完整的书,称为密码本。因此,本文定义的代码也可以称为密码本代码。图 7-2 和 7-3 显示了 1911 年和 1892 年印刷的密码本页面。(2),^(3)

虽然有些代码用于各种消息,但其他一些则提供了专门用于电报的词汇。例如,木材、棉花、铁路、机械和象棋代码。一些公司根据其销售目录创建了代码,为每个产品分配了代码组。股票经纪人的代码提供了如等单词的代码组,以及公司名称和编号。这类代码使得基于电报的交易成为可能,它是今天在线交易的前身。

需要区分单部分代码和双部分代码。在单部分代码中,明文单元和代码组是根据某种顺序分配的(例如按字母顺序排序:A = 1AM = 2AND = 3ARMY = 4AT = 5AUSTRIA = 6 ……)。在双部分代码中,不可能进行这样的排序(例如:A = 1523AM = 912AND = 2303ARMY = 809AT = 1825AUSTRIA = 145 ……)。齐默尔曼电报使用的代码 13040 就是一种双部分代码。

一个双重编码通常需要两个替代表——一个按单词和字母排序(用于加密),另一个按编码组排序(用于解密)。没有按编码组排序的表,解密一个双重编码信息是费力的,除非该代码非常简短。同样,代码 13040,虽然填满了一整本书,如果仅有按编码组排序的表,它将几乎无法使用。解密可能很简单,但加密将非常耗时,因为很难找到需要加密的单词。

额外的替代表使得双重编码比单一编码更为复杂。另一方面,双重编码要更加安全,因为密码分析员无法利用相关代码表达式和编码组之间的关系。例如,如果解码员处理一个单一编码,知道1代表A3代表AND,他们可以猜测2代表一个位于编码书中AAND之间的单词:例如,AM。我们稍后会回到这个弱点。

图 7-2:一本 1911 年出版的代码书页面,展示了如何替换单词和短语。在这种情况下,编码组由五个字母组成。

图 7-3:这本 1892 年的作品,谢翰的电报密码代码,列出了每个明文单词的数字和有意义的词语作为编码组。

命名法

现在让我们来看看一种系统,它是两种系统的混合体:命名法。这个系统既包含一种代码,如用数字表示不同的单词;也包含一种密码,使用数字或其他符号表示字母或字母组合。这个术语本身来源于这些系统通常由一组名称构成。在大型活动中,会有一个人被称为命名员,他会宣布到达者的名字。Nomen在拉丁语中意味着“名字”——特指一个人的第二个名字,用来指示他们的家族。

无法准确划定代码和命名法之间的边界。大多数人会认为任何拥有 50,000 个条目的代码书都是一个代码,即使它包含字母表的编码组。(大多数代码书都包含,因为列出所有潜在用户可能想要加密的单词和名字是不可能的。)如果一个加密表包含至少几千个单词或短语,大多数作者会使用代码这个术语。如果包含的少于这个数量,则该表通常被称为命名法。

命名法加密系统在 14 世纪到 19 世纪之间最为常见。例如,图 7-4 展示了 1670 年威廉·佩尔维奇(William Perwich)写的一封信的摘录。(4), ^(5) 它以约十五个明文单词开头(But now whilst all the world was in . . .),后面是以 76 开头的数字行,并被一些更多的明文单词打断。

图 7-4:这封来自十七世纪的信件部分通过命名法加密。

我们这里处理的是一条部分加密的信息。一位未知的人(希望是接收者!)在每个数字上方写下了其明文等价物。该信息的内容如下(加粗部分已去除,原本加密的部分已恢复):

But now whilst all the world was

in tears & extraordinary affliction, you may well

aske what did Monsieur whi he

imediatly emploied himsel

f in sesing all Madame’s money

to a far``thing in any of her

ladis hands al her Jewels

在这条信息中,大多数数字(代码组)代表字母,就像密码一样,但有些则替换了完整的单词,就像代码一样。例如,76代表W23代表T47代表H。另一方面,161等同于Monsieur164等同于Madame165等同于money240等同于and

以下是一个非常简单的命名法示例:

  1. A = 1B = 2C = 3,……Z = 26

  2. London = 27Paris = 28Rome = 29today = 30tomorrow = 31

使用这个命名法,明文WILL TRAVEL FROM LONDON TO PARIS TOMORROW会被加密为23 9 12 12 / 20 18 1 21 5 12 / 6 18 15 13 / 27 / 20 15 / 28 / 31

现在已丢失,用于加密 Perwich 信的命名法可能包含了几十个单词。除了MonsieurMadamemoneyand外,它可能还包括了名字和地名。信息的发送者可能用一个数字加密了英语中最常用的单词,同时用一个数字逐字加密较不常见的表达。

图 7-5 展示了意大利科学家和军事官员路易吉·马尔西利(Luigi Marsigli,1658–1730)使用的命名法。他从 1691 年起开始使用它,当时他在服务于神圣罗马帝国皇帝期间。(6) 如图所示,这个命名法为每个字母提供了三个可选的数字(同音词)。此外,许多常见字母组合还有两个同音词。最后,还有一组 130 个单词,每个单词都有一个自己的代码组。

图 7-5:这份由意大利科学家在十七世纪末使用的命名法包含了约 130 个单词。

就像有一部分和两部分代码一样,也有一部分和两部分命名法。在一部分命名法中,代码组以及它们所代表的字母、单词或短语是根据某种系统分配的;但在两部分命名法中,情况并非如此。上面显示的十七世纪命名法是这两种变体的混合体。虽然字母代码组是无序的,但单词代码组是按字母顺序分配的:Ablegat = 216Adrianopol = 217Agri = 219Allianz = 220,等等。

一部分代码和命名法比两部分的更为常见。这是因为有序的代码组使得代码或命名法更容易设计,也更方便使用。另一方面,一部分方案的安全性较差。举个例子,一旦破译者知道4523代表华盛顿,他们就能确定4524代表另一个以W开头的单词。类似地,一旦他们意识到A = 44B = 45C = 46,其他字母也会变得容易猜测。

术语

命名法和代码是一个活跃的研究领域。近年来,许多有趣的论文已经在《密码学》期刊、《HistoCrypt》研讨会论文集中发表,(7), (8)以及其他会议论文集中。(9), ^(10)

在 2018 年 HistoCrypt 会议上,来自荷兰的密码历史专家 Karl de Leeuw 发起了一次关于代码和命名法的研讨会,会议在瑞典乌普萨拉举行,约有五十位密码历史学家参加。(11) 本次会议的一个目标是建立一致的术语,因为有时不同的术语用来表示相同的概念。例如,“nulls”也被称为“非值”或“混合器”。在此研讨会中发展出的术语已在线文档化。^(12)

代码和命名法的历史

命名法的出现早于代码的发明。已知最古老的命名法是十四世纪时在梵蒂冈使用的。(13) 它们可能是由密码员引入的,密码员通过为常见单词添加一些符号,扩展了简单的替代密码或简单的同音密码,以节省加密和解密的时间。后来,密码专家系统地创造了命名法。

命名法很快变得非常流行。^(14) 如果你遇到一份 1800 年前写的加密文件,很大概率它是使用命名法加密的。在档案馆做研究的密码学历史专家,如 Anne-Simone Rous、Karl de Leeuw、Beáta Megyesi 和 Paolo Bonavoglia,常常遇到这种类型的加密消息。欧洲档案馆中可能有成千上万这样的文件,主要是贵族、外交官和士兵发送的消息。这些加密文件中只有一小部分曾公开面向大众。图 7-6 展示了詹姆斯·麦迪逊(美国开国元勋之一,并最终成为总统)在十八世纪发送的一封加密消息。^(15)

图 7-6:这封 1782 年的詹姆斯·麦迪逊信件展示了一个命名法消息,信中混合了加密字母和单词。

图 7-7 提供了另一个例子。在 2021 年,当我们在英国图书馆进行文献研究时,我们发现了这封来自英格兰查理一世国王的采用命名法加密的消息。这封信是他于 1648 年 8 月 1 日写给儿子的。(16), ^(17)

图 7-7:这封 1648 年的查理一世国王信件使用了命名法密码,信中清密文交替出现。

最早的命名法是在中世纪生成的,通常只有几十个代表单词的代码组。其他的则代表字母。^(18) 随着时间的推移,越来越大的命名法表格被构建出来。许多命名法表格包括了同音词(不同的代码组代表相同的明文项目)、空值(没有意义的代码组)和无效符号(使其他附近的代码组失去意义的代码组)。除了字母和单词,字母对、音节和常见短语也进入了命名法。

在图 7-8 中展示的命名法表格是一个简单的例子。^(19) 如图所示,每个字母有两个或三个同音词(例如,21222 代表字母 E)。数字 8 被用作空值(在最后一行中作为“无效符号”(chiffre non-valeur)出现)。此外,它还提供了大约三十五个代表单词的代码组。这个命名法是两部分的,因为代码组没有经过排序。

图 7-8:一张十九世纪重印的命名法表格,原为十六世纪梵蒂冈使用。

图 7-9 中所示的 18 世纪命名符号是部分排序的。例如,字母表的前半部分被分配给以下数字:A = 44B = 45C = 46D = 47……后半部分是N = 33O = 34P = 35Q = 36……单词也进行了排序:Aquaviva = 100Abbate = 101Althann = 102Antonio = 103Ascanio = 104……

图 7-9:与许多类似的命名符号一样,这个 18 世纪的命名符号是部分排序的。例如,字母表的前半部分被分配给数字A = 44B = 45C = 46D = 47……,M = 55

随着 19 世纪电报的出现,发送的消息数量大幅增加,这导致了对加密技术和经济高效的长消息发送方式的需求日益增加。由此开始了密码本的时代,这些密码本的条目超过 50,000 个^(21),其中的代码组通常由五位或六位数字组成。由于电报公司按传输的单词数收费,许多密码本主要用于缩短消息。对于大多数人来说,使文本更难阅读甚至不是目标。为了节省单词和成本,这些代码不仅替换了单个表达式,还将常见短语替换为代码组。电报公司对此做出了反应,对不可读(即加密)消息收取更高的费用,这导致密码本的生产商加入了更多更长的短语。

在第二次世界大战期间,密码仍然在使用,尽管通常不在最高安全级别。随着加密机(它们基于字母工作,应用密码而非代码)的普及,密码本和命名符号的流行在 20 世纪中期结束。自从电子技术和计算机技术的出现以来,密码本和命名符号几乎失去了用途。

尽管密码本和命名符号在约 500 年间是最流行的加密方式,且有成千上万的消息被加密,但这一加密领域并没有像密码那样受到密码历史学家的关注。一些著名的破译书籍,如 Helen Fouché Gaines^(22)和 Abraham Sinkov^(23)的著作,仅简要地涉及这一主题,甚至完全没有提及。命名符号和密码本通常也未在休闲破译中发挥作用,因为破译者必须查看密码本才能有机会破解它们。我们也未见有任何专门设计用于分析和破解密码本和命名符号的计算机程序。大多数密码书、谜题专栏和密码挑战完全忽视了密码本和命名符号。

然而,近年来,这类系统已经成为历史研究的一个活跃领域。历史学家们在档案中发现了大量加密文献,开始与破译专家合作,尝试破解这些文献。(当然,并非所有存档中的加密信息都是通过代码或命名符加密的。)以下章节展示了一些例子。我们有信心,历史学家们将继续发布更多此类密码文,并努力破解它们。

代码和命名符的超级加密

一种使代码或命名符更加安全的简单技术是超级加密,即在信息已经使用代码、命名符或其他系统加密后,再添加第二步加密。这第二步加密可以非常简单。例如,如果代码组由数字组成,可以将当前日期得出的数字添加到代码组中。例如,在 10 月 16 日,可能会将数字 1016 添加到每个代码组中,这样1234就变成了2250。虽然收件人——知道所应用的超级加密方法——可以轻松地从密文中的每个数字中减去 1016,但密码分析师的工作就变得更加困难,因为每个代码组在一年中的不同日期有不同的含义。除此之外,如果对不同日期发送的消息应用频率分析,它几乎是无效的。

如何检测代码或命名符

在许多情况下,识别通过代码或命名符加密的密文比通过密码系统加密的密文要容易得多。在 1800 年之前,命名符消息通常是手写文本,包含多个数字,常常夹杂着明文内容。1783 年发送的消息,如图 7-10(a)所示,是非常典型的,我们将在本章的“未解密密码”部分再次提到它。当时没有其他常用的加密系统会产生这种类型的密文。图 7-10(b)中的 1702 年示例也是如此。^(24) 虽然诸如书籍密码(参见第十四章)或二重替换(参见第十二章)之类的系统可能会产生类似的密文,但当时它们并不常见。

如果我们看一下 19 世纪或 20 世纪创建的消息,情况就会变得稍微复杂一些。这一时期的一些密码本使用来自不同语言的随机单词作为代码组。图 7-10(c)中的 1898 年密码就是一个例子。像CRAQUEREZIMPAZZAVA这样的单词很可能是代码组,并可能是超级加密的。

图 7-10(d)中的信息是 1911 年通过电报发送的。^(25) 我们可以假设这条信息是通过代码或命名符生成的,因为 20 世纪初使用的其他加密方法很少能产生这种数字序列。

然而,在其他情况下,过去 200 年中的代码和名称法消息很难与通过其他方法(例如,像恩尼格玛这样的加密机器)生成的密文区分开来。如果代码词由五个字母组成,尤其如此;自 20 世纪初以来,所有类型的密文通常都是以五个字母一组的形式写成。例如,下面这条 1940 年的领事消息(由恩尼格玛专家 Frode Weierud 提供给我们)就是一条代码密码,尽管它看起来可能与由加密机器(见第十五章)或其他系统产生的密文相似:^(26)

BBBTT YIXBA YIVYL OXUAB ARPBO UJTNU ASZAF UKURL YORAY MAXAD EWDKY IBEKY WITOS WIYVU MAMAN REKTI ASTCA EUKIM IVYDE UCHRE CEXLO HUNAL OXUAB ARXPU WIFOH IGAEB

名称法或代码密码的典型特点是消息的部分内容保持明文形式。本章展示的大多数代码和名称法消息都是这种类型。当然,在使用密码时,也可以将一些词汇保持为明文,但这较为少见,尤其是在使用加密机器的情况下。

图 7-10:代码和名称法消息通常,尽管不是总是,容易被检测出来。

统计证据也可以用来检测代码或名称法。例如,消息中的字母或数字组之间的重复,例如上述领事消息中第一行和第三行中的OXUAB,可能表明要么是较弱的密码(如简单替换密码或维吉尼亚密码),要么是代码或名称法。这是因为由强密码系统(如恩尼格玛)生成的密文在视觉上类似于随机序列,因此非常不可能出现,例如,一个五个字母的组在几百个字符的消息中出现两次,更不用说出现多次了。

如何破解代码或名称法

一个构造和使用得当的代码或名称法非常难破解,甚至几乎不可能破解。然而,熟练的破译员已经解开了令人惊讶数量的此类密码谜题。其原因有多个:

  • 有时可以找到表格或代码本。

  • 一些代码组的含义可能为破译员所知,可以作为破解线索。

  • 许多名称法构造得很差。例如,字母/数字组合通常按照易于确定的字母或数字顺序排序。也可能能够区分字母代码组和词语代码组。例如,如果两个数字组往往一个接一个地出现,它们可能是字母组。如果这些字母组可以通过常规的密码分析技术破解,它们可能为破解其他代码组提供线索。

  • 历史上,许多密码员并没有正确使用代码和名称法;例如,他们总是选择同一个同音字,而忽视了其他可选项。

这些弱点在我们接下来介绍的破解命名法的方法中扮演着重要角色。

寻找命名法表格或密码本

密码或命名法的一个缺点是,更改密钥(即使用的密码本或表格)是一个昂贵的过程。编制一个新的命名法表格是费力的,重新编写整个密码本也是如此。因此,密码和命名法通常会长时间使用相同的表格或密码本,甚至几年而不更改。这一点,当然,对破译者来说是有帮助的。

当尝试破解一个密码或命名法信息时,搜索所使用的密码本或命名法表格是一个不错的主意。对于大约 1850 年以后创建的信息,这种方法尤其有效,当时电报技术正在蓬勃发展。命名法表格开始逐渐不再流行,但加密文本的数量和密码本的规模却大幅增加。今天,成百上千本来自那个时期的旧密码本可以在网上找到。一个很好的起点是查看由日本密码专家富木尾聪史^(27) 和约翰·麦克维(John McVey)^(28) 维护的网站,每个网站上列出了数百本电报密码本,其中许多可以下载。值得记住的是,这些密码本中的许多并非主要用于保密,而是为了简化消息。此类密码本大规模出售,并未保密。

例如,看看图 7-11 中描绘的十九世纪电报,这封电报由博客读者卡斯滕·汉斯基提供。^(29) 这封便条的发送者是美国天文学家约翰·里奇,他于 1896 年 9 月 7 日从马萨诸塞州波士顿发送至科罗拉多州丹佛的钱伯兰天文台。电报中的一些词汇,如COMETUSUAL,显然是明文。了解天文学的读者可能会知道,BROOKSGIACOBINI是彗星的名称,而LICKHUSSEY是美国的天文台。其他一些词,如BOUCHETROUCALIMAFACILENESS,没有意义,它们可能是密码组。如果是这样,我们正在处理一种基于虚构词汇的密码。

使用传统的破译技术破解这条简短的信息将非常困难,甚至几乎不可能。找到密码本是唯一现实的选择。卡斯滕试了试运气,并且成功了。在互联网档案馆网站上(archive.org),他找到了与之匹配的密码本,《科学观察者密码》,该密码本来自 1885 年。^(30) 电报的发送者里奇(Ritchie)是该密码本的作者之一,这使得卡斯滕的搜索变得稍微容易了一些!

图 7-11:这张 1896 年的电报,由天文学家约翰·里奇发送,包含了一些密码词。通过识别所用的密码本后,信息便可以解读。

图 7-12 展示了这本密码本中的一页——它相当特别。它用于传输明文数字039,999。天文学家可以使用这些密码组来编码位置、轨道和其他天文数据。这个密码可能并不是为了保持消息的机密性,而是为了避免在数字传输中的错误。例如,BOUCHETROU代表6835。电报中出现的其他密码组含义如下:FACILENESS = 20756ARMERIEZ = 3435AFORRECHO = 1085CALIMA = 8085BOQUINEGRO = 6691HUMILIMO = 25844CHAYROOT = 9752GLADNESS = 23266DISACCEPT = 16388

图 7-12:1885 年《科学观察者密码》中的一页。天文学家约翰·里奇(John Ritchie)在他的电报中使用了这个密码。

即便我们知道了这些密码组的含义,电报的内容仍然难以理解。这是因为发件人以一种使消息更简短的方式对日期和天文信息进行了编码。他使用的方法在密码本的介绍中有解释。运用这些方法,卡斯滕重建了以下明文:

波士顿,马萨诸塞州,9 月 7 日

布鲁克斯彗星于 9 月 6.8355 日被利克天文台(Lick Observatory)观测到,位置如下

位置:

RA: 207° 56' 01" ' 13h 51m 44.1s

赤纬:55° 24' 52"

贾科比尼彗星于 9 月 6.6916 日被哈塞(Hussey)观测到,位置如下:

RA: 258° 44' ' 17h 14m 58.3s

赤纬:-7° 52' 26"

约翰·里奇(John Ritchie Jr)

这封电报的目的是通知接收者(科罗拉多州丹佛市的天文台)1896 年 9 月 6 日在波士顿观测到的布鲁克斯和贾科比尼彗星的坐标。

利用密码和命名法的弱点

如果我们找不到所使用的替代表格,我们需要采用破译方法来解码密码或命名法消息。如前所述,如果密码或命名法构造得当并正确使用,这将是一个极其困难的任务。执行此类密码分析的计算机算法是一个活跃的研究领域。爬山算法(参见第十六章)是历史上密码破译中看似无所不能的工具,但在这里并不太有用,因为潜在的单词和短语太多了。到目前为止,还没有可用的计算机程序来解决密码和命名法问题。这可能会改变,但目前来说,破解密码或命名法消息主要还是依赖于人类智慧,而非计算机智慧。

幸运的是,许多密码和命名法质量较差。例如,一个单一部分的密码或命名法比两部分的密码或命名法更容易破解。即便在两部分的密码中,我们也能预期密码组的排列方式存在规律性,这使得破解消息变得更加容易。

让我们解析一条由十七世纪在大英帝国的间谍写的命名器消息。这个密码和我们呈现的解密方案由数学家兼密码学历史学家彼得·P·法戈内在《密码学》杂志中描述。^31。以下是消息中的一段摘录:

. . . 44, 38, 62, 39, 我发送给你我的 34, 74, 58, 44, 38, 62, 与 116, 66, 57, 给他自己 50, 38, 30, 64, 67, 42, 50, 30, 54, 38, 有, 51, 56, 64, 66, 46, 67, 26 &, 我, 42, 30, 68, 38, 125, 这 36, 57, 68, 32, 50, 38, 让他看到我公平交易,什么东西会来, 40, 62, 56, 52, 26, 116, 必须来, 66, 56, 27, 125, 告诉 103, 他必须 70, 62, 46, 66, 39, 54, 56, 38, 52, 57, 63, 38 . . .

这个密文由(主要是两位数的)数字组成,数字之间用逗号分隔。一些段落是明文写成的。总的来说,消息包含大约一千个数字和一个由九十个不同数字组成的字母表。根据本章前面讨论的标准,我们可以假设这个密码是通过命名器创建的。

作为第一步,我们计算代码组以执行频率分析。这揭示了3077之间的数字出现频率远高于其他数字,这引发了一个怀疑:这四十八个数字可能代表字母,而其余的可能编码完整的单词。由于十七世纪使用的字母表包含了二十四个字母(UV,以及IJ没有区分),我们可以适当假设每个字母都有两个数字(同音字)。我们首先尝试以下方案:

A``: 30/31

B``: 32/33

C``: 34/35

D``: 36/37

E``: 38/39

. . .

事实证明,我们得到了一个有意义的文本。命名器的开发者简直为我们提供了便利!

下面是解密后带有字母代码组的摘录:

. . . 这里我发送给你我的密码 116,给他自己,至少他不会丢失它,26, &, 我给了 125,双倍给他,让他看到我公平交易,什么东西从 26, 116 来,必须来 27, 125,告诉 103,他必须不再写 c . . .

我们能猜出剩下的代码组吗?它们可能代表单词、短语或音节。事实证明,1130之间的数字可以直接省略。它们中的大多数或全部可能是空值。110的数字可能代表数字。由于命名器设计得不好,我们可以假设1 = 12 = 23 = 3,以此类推。三位数的数字很可能代表姓名和地点。没有详细的背景信息,我们无法确定它们的含义。

然而,消息的内容确实确认了有间谍在工作,谈论贿赂和其他隐秘行动。或许这条消息的发送者是英国间谍,活跃于爱尔兰的爱尔兰联邦战争时期(1641–1653)。他们的身份可能永远会保持谜团。

接下来,让我们看看十六世纪的教皇密码。图 7-13 显示了 1573 年梵蒂冈发给一位驻波兰教皇外交官的命名器信息。这条信息最初由密码历史学家阿尔伯特·莱顿于 1969 年破译。^(32)

图 7-13:这条十六世纪的命名器信息之所以被破译,是因为使用的命名器非常简单。

密文由一系列不间断的数字组成。更仔细的检查表明,这些数字倾向于成对出现。也有一些例外,例如几个三位数的数字组,以及某些数字对的第一个数字上方有点。这里是前两行的转录。带点的数字被转录为带下划线的数字:

608 53 17 11 75 17 55 25 77 75 29 97 41 77 13 79 11 77 15 59 19 79 15 79 17 39 19 79 15 59 13 79 99 58 99 11

17 59 13 6``7 79 15 77 17 99 15 15 83 5``4 97 41 57 15 77 75 15 59 26 99 15 37 1``5 38 34 17 37 57 19 79

考虑到写作时期,并且知道梵蒂冈在文艺复兴时期广泛使用命名器,我们可以推测这段文本是使用命名器加密的。如果我们处理的是一个结构不良的命名器,似乎有可能三位数的数字和带点的数字代表的是单词,而所有其他的数字对则代表字母。以下是对假定字母的频率分析:

一张有两行的表格。上排显示:25 29 17 77 13 79 59 99 37 75 11 55 57 97 41 27 39 53 35 19 83 23 31 15 33 86 91 10 51 96。下排显示:78 45 43 42 38 33 32 29 25 24 21 15 12 12 11 10 9 9 8 7 6 5 4 4 3 1 1 1 1 1。

如所见,使用了三十二个两位数。如果它们真的代表字母表的字母,那么有足够的数字可以对字母AZ进行编码,并且还可以编码一些空值。五个最常见的数字中有四个以12开头(25291713),这些数字在密文中没有形成更长的序列。它们可能代表元音字母。在意大利语中,元音字母EAIO的频率几乎相同(大约在 10%到 12%之间),而U(在古文献中通常与V相同)仅占文本的约 3%(见附录 B)。因此,可能只有一个代码组代表U,并且这是最稀有的元音代码组,即11

最常见的非元音是77。这个数字必须代表N,它是意大利语中最常见的辅音。接下来的三个辅音是597999。它们可能分别代表字母RST。通过反复试验,确认59 = R79 = S99 = T是有效的。知道这些辅音和意大利语中最常见的双字母组合(在附录 B 中也有描述),我们就能推导出元音25291713的含义:A = 25E = 13I = 17O = 29。到目前为止,我们所发现的足以破译大部分信息:

(608) giudicando che con nessuna cosa si possa restituire piu sanita a questo regno che con mandar costoro a la guerra ricuperation de' beni regii il mosco per smaltire in questo modo i mali umori turbano la religion cattolica et inanz(i) la sua partita ha dato molto indrizzo a questo consiglio et ne ha lassato a me particolar ordine et benche li heretici temano molto che il re abbia da dare in questo sua santita et lo dannano nondimeno cammina molto bene et con sucretezza secondo che bisogna et si va ogni giorno guadagnando qualcuno con questi giorni il castellano di sendomiria que e' persona di lingua et d'autorita' fra li heretici ha sottoscritto a questo parere in casa de' ? dopo averci fatto molto resistenza

(508). ha mostrato molto travaglio que il re abbia rimesso le cose sue a la dieta et io ho veduto una lettera del basino secretario del re christianissimo che venendo di (308) ha parlato in (108) con essa (508) che scrive che per molto che abbia fatto non li e parso di lassar punto aquetato l'animo suo

数字 608、508、308 和 108 不能以相同的方式解码,因为它们可能指的是特定的名字或地方。

这是前几句话的翻译:

(608) 判断认为,通过其他任何手段无法恢复这个王国的理智,只有派遣一个代表团前往战争[以便]恢复王室财富,IL MOSCO,借此清除扰乱天主教信仰的邪恶荣耀,在出发前,他做了很多工作以实施这一决定,并留下了特别的责任交给我;尽管异端分子害怕国王因此可能会失去圣洁并因此受到指责,然而一切进行得非常顺利,且保密工作做得很好,每天我们都能赢得一些人心。

许多其他的代码和命名法密码也以类似的方式被解开。

使用密钥和命名法解码

有时,了解相关代码或命名法中使用的代码组的含义有助于破解。这些代码在与你试图解密的环境中使用过。你甚至可能拥有一对密文和明文,用来重建相关的代码。Paolo Bonavoglia、George Lasry 和 Luigi Sacco 等人曾发布过关于这类成功破译的报告。此技巧对于许多密码类型也非常有帮助。^(35) 研究密码创造的背景可以是一个非常强大的工具。

成功案例

发送到特拉维夫的电报

图 7-14 所示的加密电报由我们提供,来自卡尔斯滕·汉斯基^(36),它于 1948 年 6 月 5 日从纽约经伦敦发送至特拉维夫。电报表格上列出的收件人是GOVTT MEMISRAEL TEL AVIV,即以色列政府。由于以色列在 1948 年 5 月 14 日在特拉维夫成立,因此这封电报发送的时间和地点都非常特别。密文中包含几个明文单词,如VERTICALLYBANKANGLOPALESTINE

图 7-14:1948 年从纽约发往特拉维夫的加密电报。由于使用的密码本可以在线获得,因此解密该信息并不困难。

以色列政府如果使用了一种精良制作的密码,那么破解者解决这个密码的唯一机会就是找到使用的密码本,事实上,事情正是如此。密码本专家约翰·麦克维发现,密码的作者们使用了皮特森国际密码(第三版,1929 年)。^(37) 理查德·范·德·沃乌也得出了相同的结论。汉斯基推导出了以下明文(省略了一些冗余部分):

电报从巴勒斯坦海法发出,日期为 5 月 28 日,董事会货币表示遗憾无法同意提案销毁纸币——他们准备接受以下安排——纸币垂直对半切割,一半未经保险交给我们,如果未发行的纸币按序列顺序保留,并且每包纸币上有标签标明序列号和面值,每捆纸币由你保留,且仅在收到第一批货物安全到达的通知后才进行发货——董事会将在收到第一批纸币时根据银行的证书支付其内容的 1127P 捆,之后再核对,并且银行对短缺或伪造负责——电报询问你是否同意此程序,如果同意,涉及的准确金额是多少——此电报是根据 FRIEDBERG 发给 ANGLO PALESTINE BANK 的电报内容发出的副本。

玛丽·斯图尔特女王的加密信息

十六世纪的解决方案

1569 年,英格兰的伊丽莎白一世女王将她的表亲玛丽·斯图尔特(苏格兰女王)囚禁。玛丽以经常与支持者通过密码通信而闻名。

她的盟友中有一群英国天主教徒,他们试图刺杀伊丽莎白一世,目的是让玛丽登上英国王位。玛丽和阴谋者通过藏在啤酒桶塞中的加密信件进行通信。不幸的是,运送这些信件的仆人实际上是为英国间谍头目弗朗西斯·沃尔辛厄姆工作的间谍,沃尔辛厄姆随后将这些加密信件的副本提供给了他的密码破译者托马斯·费利普斯。

费利普斯注意到,玛丽和阴谋者用大约四十个符号组成的字母表写他们的加密信件。他的猜测是,他所面对的是一个由大约二十五个字母符号组成的命名法,其中大约十五个符号代表词语或空白。仅由四十个代码组组成的命名法在十六世纪非常常见,后来这些命名法变得更大。

一个由四十个代码组组成的命名法可以通过频率分析来破解。我们不确切知道费利普斯是如何工作的,但他可能假设最频繁的符号代表英语中最常用的字母,尽管他可能被一些空白符号所困扰。经过一些分析后,费利普斯能够重建整个命名法,如图 7-15 所示。^(38)

图 7-15:十六世纪苏格兰女王玛丽使用的命名法

在加密系统被破解之后,沃尔辛厄姆可以轻松监控玛丽与阴谋者之间的通信,且这些通信变得越来越频繁。最终,沃尔辛厄姆和费利普斯伪造了一条给玛丽的消息,要求她提供阴谋者的名单——这一计划成功了。根据这一证据,玛丽的阴谋者被逮捕、定罪并于 1586 年执行死刑。在另一次单独的审判中,苏格兰女王玛丽于 1587 年 2 月 8 日被斩首。

二十一世纪对另一种玛丽·斯图尔特命名法的解决方案

另一个值得注意的成功故事涉及三位在我们书中多次提到的人:乔治·拉斯里、诺伯特·比尔曼和友田聪清(参见图 7-16)。他们十多年来的兴趣之一就是检查世界各地的档案,寻找任何未知的加密消息,以便记录并破解它们。许多大型档案馆和私人收藏中仍然有无法解读的加密文件,有时甚至无法确定这些文件的归属。这些文件大多数已有数百年历史。这三位无畏的探险者(以及我们的其他同事)发现,通过在线目录搜索数字化的文件,并使用诸如cipher之类的标签,往往能找到许多此类加密文件。友田聪清更进一步,有时他会逐一检查文件,看看其中是否有加密内容!

图 7-16:从左到右:乔治·拉斯里(以色列)、诺伯特·比尔曼(德国)和佐藤友清(日本)在翻阅法国国家图书馆的档案时,做出了一个了不起的发现。

2021 年,在梳理法国国家图书馆(BnF)在线收藏的加密文档时,研究小组偶然发现了一大批未标记的文件,所有文件都是加密的,并且使用了相同的图形符号集(见图 7-17)。根据 BnF 目录,这些文档应该是 16 世纪上半叶的,且与意大利事务相关。2021 年 4 月,团队首次尝试破解这些密码,假设语言是意大利语,但未能成功。2022 年 2 月,他们再次尝试,这次假设语言可能是法语,并使用了一个带有模拟退火算法的爬山程序(见第十六章)。这次他们能够获得一些似乎合理的文本片段,比如“catholi”和“persecu”。^(39)

图 7-17:一封 16 世纪的加密信件,直到 2021 年才在档案中被发现

随后,他们使用了手动破译技巧,如猜词(见第四章),逐步恢复了密码钥匙——在这种情况下是一个命名表,结合了同音密码。这种系统比早期的系统复杂得多,如图 7-15 所示。总的来说,团队能够识别出 219 个不同的符号(见图 7-18),其中一些代表音节或单词。当他们开始能够读取文档时,团队意识到这些文本是由一名囚犯写的,文中提到了囚禁、诸如“我的儿子”这样的短语,以及沃尔辛厄姆(Walsingham)这个名字。这个名字非常关键,因为在那个时期,弗朗西斯·沃尔辛厄姆爵士是伊丽莎白一世女王的间谍头目,这引发了信件可能来自玛丽·斯图亚特——伊丽莎白女王的被囚禁的表妹——的怀疑。这个假设在团队在英国档案中发现一些相应的明文副本后得到了证实。随后,团队开始着手转录并破译玛丽的 57 封加密信件,令人震惊。

图 7-18:玛丽–卡斯特尔诺命名表的一部分

新解码的信件原来是长期被历史学家认为已经失传的秘密通信的一部分。大部分信件是在 1578 年到 1584 年之间,由玛丽写给法国驻英大使米歇尔·德·卡斯特尔诺(Michel de Castelnau)的。这些信件构成了一大批关于玛丽·斯图亚特的新原始资料——总计约 5 万字。它们突出了英法和苏格兰的政治,玛丽努力争取自己被释放并恢复苏格兰女王的身份,以及众多其他话题。这个发现为现代历史学家打开了一座宝藏。

这一令人震惊的发现,被剑桥大学的历史学专家约翰·盖伊(John Guy)称为“过去 100 年里关于苏格兰玛丽女王的最重要新发现”^(40),于 2023 年 2 月 8 日(巧合的是,这一天也是玛丽于 1587 年被斩首的纪念日)宣布。此事成为国际头条新闻,并促使我们在最后一刻将这一新发现添加到我们的书中!^(41)

一个值得记住的教训是,密码历史学家的工作还远未完成。还有许多这样的文件等待被发现。在一次 HistoCrypt 大会上,估计仍有数百甚至数千份这样的编码信息未被找到并解码,这些信息能为我们打开一扇通往过去的窗。

科林森的搜寻探险

1850 至 1855 年间,几乎五十则加密广告定期发布在伦敦的报纸The Times上,显然使用的是相同的密码。以下是其中一则来自 1851 年 10 月 1 日的广告示例:

No. 16th.-S.lkqo. C. hgo & Tatty. F. kmn at npk1 F. qgli lngk S mhn F. olhi E qkpn. S. niql S mnhq, F. qgli. Austin S pgqn C. kioq 6th F. iqhl. born. 13th F. kipo a F khg. hmip. to E. mlhg by D oi. S. pkqg C omgk B. hkq. qkng F. ioph. to hnio. S. ompi C. mkop F. oiph to Mr. C. nhmg & F. mpkh. nmkq E. lhpq. J. de W.

一个世纪后,1980 年,The Times举办了一次比赛,看看是否有人能解开一条类似的消息,这条消息来自 1852 年 4 月 2 日。尽管没人能够解开,但有人指出,其中一条信息似乎包含了类似于经纬度的内容。

经过数年,才有两位经验丰富的破译员成功独立地解开了这些信息。其一,约翰·拉布森(John Rabson),在 1992 年于科学期刊Cryptologia上报道了他的解密方法。^(42)拉布森怀疑这些信息使用了一种带有附加字母加密(超级加密)的密码。在经过一番搜索后,他发现普遍信号编码是一个不错的候选者。加密技术被用来将代码中的数字转换成字母序列。他的解码如下:

No. 16th. your wife and family were all well when I left Bernard & Tatty both at home Captain Penny arrived at from Baffin's Bay early in September without success Captain Austin hourly expected Margarets 6th son born 13th September a box went to Sandwich Isles by Antelope early in January Emily Sophia Thomason go to Wales early in October James goes to Mr. Hawk & lives in Gateshead. J. de W.

现在这系列广告的背景变得清晰。这些加密信息可能是由英国航海家理查德·科林森(Richard Collinson,1811–1883)的一位家庭成员发布的。科林森于 1850 至 1855 年间领导了一次前往北美北极的探险,试图营救失踪的极地探险家约翰·富兰克林勋爵及其船员,他们在尝试寻找西北航道时未能归来。

这些加密广告不太可能是用于军事或商业机密。更有可能的是,它们只是为了隐私而加密。这些广告是用来告诉 Collinson 他在五年探险期间家人和朋友的情况。看来,这些消息的创作者希望即使在非常偏远的地方,也能获得当时世界上最重要的报纸——《泰晤士报》。

即使有密码本,进行精确翻译也可能很棘手。例如,下面是 1853 年 1 月 1 日的另一条消息:

S lmpi F. npi npil pil pink. C. klmh F. oimg ogq, khq lqkh ikpg ogql, lqoi qoin oing lqkh. hmig C, omgk F, npi npil qmk. C hgo, F, ploi omnl. qoip, C qkin. F oing ihlm, ik, lmhn, C nhgq F, iomn hkom C. okiq F, mqho, olhi. C, iko. F olhi B, nlo, F. pgnq. kipo 17th S lmpi. F mpoh C. ngil B opkg F npi npil qmk ikpg npkl. okgh. P. F, pil. M. mhik lph hqpm oilg qolg. nmkq ikpg npkl C. nkq S lmpi C kgql F, oing ihlm mlgi mkiq qnhi koil lgoq lgqo. olhi B. qnp.

密钥的数字已经转化为字母:

0987654321

ghiklmnopq

当 Elonka 处理这条消息时,她渐渐明白,解密这条消息需要大量的猜测,并且要考虑人为错误。例如,npil,直接用密码本翻译,得到了4286,在密码本中代表hook(钩子)。但在上下文中这并没有意义,产生了像“在钩子和其他地方”以及“所有一切都好在钩子”这样的句子。4286这个数字出现得很频繁,但有时在相同的上下文中,她会发现npkl,即4276,它意味着home(家)。当她把hook换成home,得到像“家里一切都很好”这样的短语时,消息开始变得更加合理了!

消息中的其他地方同样模糊不清,使得很难判断是解密错误还是有打字错误。这让事情变成了一个真正的难题。另一个难点是,《信号通用法典》的出版商会不时重印这本书,具体作者使用的是哪个版本也不清楚。当然,不能晚于 1855 年。但是,Elonka 只找到 1864 年的版本或更晚的版本,这些版本显然不可能是 1853 年发送的消息所使用的。

她对明文的最佳猜测是:

家里和其他地方都很好。玛格丽特在圣诞节当天晚上生了另一个男孩,一切顺利。艾米丽回家了。伯纳德也回家过圣诞。夏洛特也要回家,增添了人气。哈丽特和范妮一起待着。来自本杰明的信件已通过皇家号到达,一切安好,喜欢弗雷德里克港。斯托克斯利也回家了,家里热闹非凡。P 和 M 都很好,家里有 12 个孙子孙女。萨拉和简,一切安好。劳伦斯·德拉尼要娶科尔里奇小姐。没有来自 Resolute 号的消息。

无论如何,在科林森的远征之后,他的兄弟将他的日志编成了一本书,名为《HMS Enterprise 日记》(1889 年),以船的名字命名。根据这本书,科林森确实收到了至少四条信息,当时他到达了印度尼西亚的“班古旺吉”(可能是班尤旺吉镇)(见图 7-19)。^(43)

图 7-19:在科林森的环球旅行中,他在船只停靠在印度尼西亚班尤旺吉时能够接收到一些加密信息。

我们可以说这是第一个安全的全球通信系统!

日本的 JN-25 密码

在第二次世界大战的太平洋战区,美国军队遇到了许多日本的加密系统。美国和英国的密码破译员在破解这些系统方面取得了相当大的成功。他们最著名的两项成就就是破解了 JN-25——日本主要的海军密码,以及 PURPLE——一种用于日本外交信息的机器加密系统。^(44) 美国陆军的 SIS(信号情报局),由传奇人物威廉·弗里德曼领导,他的团队由弗兰克·罗列特带领,甚至在从未见过该机器的情况下就破解了 PURPLE(见第十五章)。

另一个改变历史的成功是破解了 JN-25。除了加密机器(如 PURPLE)之外,日本还使用了许多手动密码来加密他们的通信。最重要的其中之一就是 JN-25,美国密码学家将其命名为 JN-25,因为这是他们识别出的第 25 个日本海军加密系统。^(45) JN-25 在 1939 年初被引入,就在德国入侵波兰和战争爆发的几个月前。这个加密系统立即被英国和美国的密码分析小组进行了分析。

布莱切利公园的约翰·提尔特曼在 1939 年 9 月首次成功破解 JN-25。美国方面,由“海军密码学第一夫人”阿格尼斯·梅耶·德里斯科尔领导的美国海军 OP-20-G 小组在 1940 年也独立做出了类似的发现。^(46) 两者都发现,JN-25 是一个超级加密密码,生成五位数的组合。这个复杂的系统包含了多达 30,000 个代码组,这些代码组被列在一本密码本中,并且还有数百页其他数字,或者用于超级加密的附加信息。

密码破译员们了解到,JN-25 包含一个他们可以利用的错误检测机制:所有代码组的数字都是 3 的倍数。^(47) 但是,即使知道这一点,他们只能破译大约 10%到 20%的日本信息。进展的一个障碍是,同盟国的密码分析员能拦截和分析的信息流量并不多。^(48)

1941 年 12 月 7 日,日本袭击珍珠港后,美国加入了战争,致力于密码学的资源大幅增加。美国人首先使用 IBM 生产的打孔卡计数机,随后设计了全新的破译机器,以协助进一步的密码分析攻击。日本不时更换密码本和附加物,因此分析人员必须同时破解多个系统,但在珍珠港事件后的几个月内,他们就能读取大约 90%的 JN-25 消息。^(49)

这一发现特别重要,尤其是在 1942 年中期,当时加密的日本无线电消息中提到了攻击一个代号为AF的目标。美国海军情报专家知道,以字母A开头的代号通常用于夏威夷附近的岛屿(例如,OahuAH),但他们不确定AF指的是哪个地点。他们猜测它代表的是中途岛这个小岛。

为了确认这一怀疑,密码分析师贾斯帕·霍尔姆斯和约瑟夫·罗谢福特建议,美国驻中途岛的军事基地广播一条“普通语言”的无线电信息,声明中途岛的水净化系统出现故障,急需新鲜水源。该计划得到了指挥官埃德温·T·莱顿和海军上将切斯特·W·尼米兹的批准,并付诸实施。日本人上当了,在 24 小时内,美国的破译人员接收到了用 JN-25 加密的日本情报报告,内容为:“AF 缺水。” AF 代表中途岛的怀疑得到了证实。

这些信息使得美国人能够正确地定位他们的舰队,在中途岛附近与日本海军交战,^(50) 这场战斗成为战争中的一个重要转折点。密码学历史学家经常引用此案例,认为破解一条信息就可能改变整场战争的走向。

挑战

珠穆朗玛峰电报

图 7-20 所示的电报,1924 年由英国登山队从珠穆朗玛峰大本营发出,包含以下部分加密信息:^(51) MALLORY IRVINE NOVE REMAINDER ALCEDO. 乔治·马洛里(最著名的回答是,“你为什么要攀登珠穆朗玛峰?” “因为它在那里!”)和安德鲁·欧文是此次探险队的成员之一。NOVEALCEDO是代码组。你能找到使用的密码本吗?如果能,你一定能破译这份电报。

图 7-20:1924 年由英国登山队从珠穆朗玛峰发出的电报

未解的密码图案

丝绸裙子的密码图案

图 7-21:这条加密信息藏在一件 19 世纪末期裙子的隐藏口袋里。

2013 年,古董服饰收藏家萨拉·里弗斯-科菲尔德在她的博客中描述她获得了一件“1880 年代中期的铜色丝绸两件套蓬蓬裙,配有条纹的生锈天鹅绒装饰和蕾丝袖口。”^(52) 当她把裙子翻转过来时,她发现了一个隐藏的口袋,里面有两张纸,纸上都写着加密的文字(图 7-21)。以下是第一张纸的转录:

史密斯·药方·柳鸟·得到无事件

101 PM·安东尼奥·标题·列表·全墨水

制作 Snapls 气压计·海螺

春季荒野内衬一个阅读新手·干草

维克斯堡粗糙架子内衬我的保姆桶

圣西·西方·月亮·马来西亚·新·市场·干草

西沃斯愉快的柠檬沉没每个

开罗乡村内衬新约翰逊无冰

密苏里·多风的月亮·新·约翰逊·无·桶

塞利特·记住·遗产·敦克·露水

康科迪亚·财产·平民·无事件

康科迪亚·梅拉克康斯·腐殖质·钉子·菜单·兵营

这里是第二张纸:

1113 PM·比斯马克·省略叶子·桶银行

保罗·扩展·泥土事件·虚假新事件

海伦娜·奥纳斯洛福通常每个

格林贝高贵的胡椒

1124 P·阿辛·欧内斯·联盟·新·禁止事件

库辛·下

哈里·诺恩·勒塔尔·劳布尔·棕榈·新手·事件

梅梅多斯·诺恩·贾米·叶子·鸟嘴·驮马·冰

卡尔加里·杜巴·未防护·反驳·鸭子·塔根·埃及

编织错误的拥抱·鸭子·法甘·每个

卡尔加里·诺恩·西格诺·泥土·新·金纳特事件

兰丁诺恩·鲁金斯·遗产·鸭子·婴儿·冰

不难看出,这条消息是通过某种密码编写的。与看似随机的文字或数字不同,这些密码组是有意义的单词,比如开罗格林贝卡尔加里鸭子泥土。这种密码在 19 世纪下半叶并不罕见。该信息可能是通过电报发送的,因为在每行下方标注了该行包含的单词数。(这些数字在转录中被省略了。)请注意,正如我们的书在印刷时所了解到的,可能已经有人解开了这个谜题!详情见codebreaking-guide.com/errata/

火车站抢劫密码

1916 年 6 月 27 日,一名男子在俄亥俄州利马市的西俄亥俄铁路售票处抢劫。抢劫犯用枪威胁售票员,强迫他交出保险箱的内容。抢劫犯带走了 265 美元(相当于今天约 6000 美元)。几周后,由国家谜题联盟出版的杂志《Enigma》写道:

利马(俄亥俄州)警察局对与西俄亥俄铁路票务代理人抢劫事件相关的加密信息感到非常困惑。信息内容如下:WAS NVKVAFT BY AAKAT TXPXSCK UPBK TXPHN OHAY YBTX CPT MXHG WAE SXFP ZAVFZ ACK THERE FIRST TXLK WEEK WAYX ZA WITH THX.

这个有趣的故事由黄道带杀手专家戴夫·奥兰查克(Dave Oranchak)于 2013 年发现,并由英国密码学博客作者尼克·佩林(Nick Pelling)推广。^(53)尼克在《利马时报-民主报》旧期中发现了关于这个密码的两篇文章。那里打印的密文版本与国家谜语联盟发布的版本略有不同。由于《谜题》一书的作者可能是从报纸上复制的,因此我们应当使用《利马时报-民主报》版本。以下是密文:

Was nvlvaft by aakat txpxsck upbk txphn ohay ybtx cpt mxhg wae sxfp zavfz ack there first txlk week wayx za with thx

我们遗憾地表示,我们并不清楚这个密码与抢劫案之间的全部关系。最有可能的解释是,这条信息是用密码本加密的电报。发件人似乎将一些不太重要的词(如WASBYFIRSTTHX……)保持为明文,其他词则查找了一个(尚未发现的)密码本。

如果火车站抢劫案件的密码确实是电报,那么很可能是抢劫犯在事件发生前后立即发送的。也许电报员在电报发送后产生了怀疑,并向警方报告,称他可能处理了一名罪犯。

火车站抢劫案件的密码至今未被解开。

波拉基的报纸广告

伊格纳修斯·波拉基(Ignatius Pollaky)(1828–1918)是维多利亚时代英国的一位成功私人侦探,他是亚瑟·柯南·道尔创作《福尔摩斯》角色的灵感来源之一。^(54)波拉基经常使用报纸广告来寻找证人或传递加密信息。他在 1871 年 2 月 20 日的《泰晤士报》(伦敦)上发布了图 7-22 中的广告。(55), ^(56) 这个密文看起来像是用某种密码加密的信息。也许使用了某种超加密技术。维多利亚时代有许多密码书,因此波拉基有很多选择。

迄今为止,还没有人能够解开这个信息的密码。

图 7-22:由私人侦探伊格纳修斯·波拉基发布的加密报纸广告

曼彻斯特勋爵的信件

图 7-23 中的信件是乔治·曼特古(George Mantagu),曼彻斯特第四公爵和英国驻法大使于 1783 年发送的。^(57)

图 7-23:1783 年英国驻法大使的信件页面

以下是抄本:

Fontainbleau Sep 20, 1783

先生,

我收到了您 9 月 2 日的信件,

我不应该耽搁这么久才发送回信,

answer to it, had I anything very material

to communicate. 3693.2517.65.3423.576.1100.

97.1765.3000.259.3032.57.66.1795.19.211.

46.1038.1637.970.2609.3369.696.3696.427.118.

3364.1362.456.111.566.77.1551.2961.1504.1437.

3560.1453.2053.1555.1834.1406.9.2044.2694.

3423.678.1359.493.809.1094.956.636.1618.61.

1437.1369.2316.497.314.684.1205.193.685.2072.

65.39.3459.3937.2108.2615.1359.766.2450.880.1291.

647.3339.1175.3714.809.184.564.2101.1581.566.2323.

2066.823.665.2401.1692.3560.1444.2784.970.830.

3601.3263.1612.3000.1291.2000.1936.3056.3287.1618.

2894.3498.233.2424.3137.3928.1501.3364.434.492.

566.1998.2450.3560.1603.3905.3082.1504.1242.

1624.987.2615.1306.350.1245.1504.1145.9.3658.

S John Stepney 2622.

2622.122.3901.1350.758.1986.3905.2426.2051.3791.

678.498.2109.3438.3536.3487.2999.2694.3892.

3056.1350.1397.2985.1778.1719.3739.1753.2126.

566.77.956.3000.56.9.576.3006.10.

法院现在在枫丹白露

据说它将保持到很晚

11 月,尽管有怀孕的情况

女王的

我是

尊敬的

致以最崇高的敬意

您最忠诚的

谦卑的仆人

曼彻斯特

这封信的高分辨率扫描件以及转录本可以在codebreaking-guide.com在线获取。信件似乎是用某种代码加密的。考虑到这个代码可能包含了几千个代码组,而只有两页加密文本供分析,使用常规的破译工具很可能无法破解这条消息。破解它唯一的现实机会是找到密码本。

第八章:多字母替换密码

Kryptos雕塑的第四条铭文位于位于弗吉尼亚州兰利的中央情报局总部,是过去四十年中最著名的未解之谜。该艺术品上的另外三条密文已经解开。

Kryptos和雕塑家吉姆·桑伯恩(Jim Sanborn)创作的至少另外两件艺术作品使用了一种被称为多字母替换密码的加密方式,这种加密方法会在不同的替代表之间切换。Kryptos的概述请参见附录 A。

多字母替换密码的工作原理

为了介绍多字母替换密码,我们从桑伯恩在 1980 年代末期制作的一件迷你雕塑(称为模型)开始,这件模型是他在创作实际雕塑之前制作的(图 8-1)。这个鞋盒大小的模型与原版相似,但传达了完全不同的信息。

图 8-1:一个类似鞋盒大小的Kryptos模型,采用了更简单的加密方式。所用的密码是最常见的多字母替换加密方法:维吉尼亚密码

几十年来,这个模型对公众来说是未知的;但在 2015 年,桑伯恩的密码学顾问埃德·谢伊特(Ed Scheidt)在由埃隆卡(Elonka)组织的Kryptos会议上向与会者展示了它。这里是加密的部分:

TIJVMSRSHVXOMCJVXOENA

KQUUCLWYXVHZTFGJMKJHG

DYRPMASMZZNAKCUEURRHJ

KLGEMVFMOKCUEURKSVVMZ

YYZIUTJJUJCZZITRFHVCT

XNNVBGIXKJNZFXKTBVYYX

NBZYIAKNVEKPYZIUTJYCA

Jew-Lee Lann-Briere 和 Bill Briere 在晚餐结束后几个小时内,仅用纸和铅笔就破译了这个密码。在发布后,Christoph Tenzer 也找到了答案。结果发现桑伯恩使用了所谓的维吉尼亚密码来加密这条消息。

维吉尼亚密码

今天被称为维吉尼亚密码的加密方法最早由乔凡尼·巴蒂斯塔·贝拉索(Giovan Battista Bellaso,1505–?)在 16 世纪描述。后来,在 19 世纪,这项发明被误归功于贝拉索的同代人布莱兹·德·维吉尼尔(Blaise de Vigenère,1523–1596)。我们将通过使用Kryptos模型中的密码文本(该文本包含一些拼写错误;最后一个单词是桑伯恩的错误)来解释这种加密方法的工作原理:^(2)

CODES MAY BE DIVIDED INTU TWO DIFFERENT CLASSES, NAMELY SUBSTITUTIONAL AND TRANSPOSITIONAL TYPES, THE TRANSPOSITIONAL BEING THE HARDEST TO DECHPHER WHTHOUT TPNQJHFCDZDHIU.

为了使用维吉尼亚密码加密此消息,我们在明文下方反复写下一个关键词,为每个字母分配一个数字值(例如,A = 0B = 1C = 2,等等),然后将明文和关键词的字母逐列相加。如果结果大于 25,我们就减去 26。每个数字然后转换回字母。

据报道,Sanborn 原本打算使用关键词GRU。然而,他开始使用密钥的第二个字母对明文进行加密,实际上将其更改为RUG。为了本演示的目的,我们将关键词视为RUG

CODES MAY BE DIVIDED INTO TWO DIFFERENT CLASSES NAMELY SUBSTITUTIONAL . . .

RUGRU GRU GR UGRUGRU GRUG RUG RUGRUGRUG RUGRUGR UGRUGR UGRUGRUGRUGRUG . . .

---------------------------------------------------------------------------

TIJVM SRS HV XOMCJVX OENA KQU UCLWYXVHZ TFGJMKJ HGDYRP MASMZZNAKCUEUR . . .

我们得到的密文与微型雕塑上的密文完全一致。为了解密密文,我们从密文中减去关键词。

很容易看出,维吉尼亚密码实际上由多个凯撒密码组成(见图 8-2)。所以,当使用一个三字母的关键词(RUG)时,我们得出如下结果:

  • 明文的第一个、第四个、第七个和第十个字母使用凯撒密码加密,密钥是A = R

  • 对于第二、第五和第八个字母,应用凯撒替代A = U

  • 第三个凯撒密码的密钥是A = G

请注意,Sanborn 定义了方案A = 0B = 1C = 2,依此类推。这是今天维吉尼亚密码常用的方式,因为计算机精通的人倾向于从零开始计数。然而,在计算机时代之前,几乎所有的维吉尼亚加密者都使用方案A = 1B = 2C = 3,依此类推。

图 8-2:一个具有三字母关键词(这里是RUG)的维吉尼亚密码可以被看作由三个凯撒密码组成。

今天,许多计算机程序和常见的工具实现了维吉尼亚密码。

其他多字母表密码

维吉尼亚密码源于一个洞察:简单的替代密码容易通过频率分析破解。防止这种情况的显而易见的方法是使用多个替代表而不是一个,并在它们之间切换。例如,如果我们有五个替代表,我们可以用第一个替代表加密明文的第一个字母,第二个替代表加密第二个字母,依此类推。当我们到达第六个明文字母时,我们就返回第一个替代表。

在密码学中,替代表的第二行有时被称为密码字母表,或者简化为字母表。因为简单的替代密码仅基于一个替代表,所以它被称为单字母表。一个在不同的替代表之间切换的密码叫做多字母表。维吉尼亚密码是一种多字母表密码,因为它使用的替代表数量等于关键词中的字母数。例如,当使用关键词RUG(如在Kryptos模型中)时,将应用三个替代表:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

--------------------------

RSTUVWXYZABCDEFGHIJKLMNOPQ

ABCDEFGHIJKLMNOPQRSTUVWXYZ

--------------------------

UVWXYZABCDEFGHIJKLMNOPQRST

ABCDEFGHIJKLMNOPQRSTUVWXYZ

--------------------------

GHIJKLMNOPQRSTUVWXYZABCDEF

我们可以方便地将这三张表合并为一个,称为维吉尼亚表:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

--------------------------

1 RSTUVWXYZABCDEFGHIJKLMNOPQ

2 UVWXYZABCDEFGHIJKLMNOPQRST

3 GHIJKLMNOPQRSTUVWXYZABCDEF

这张合并表包含三个字母表,分别由标号为 1、2 和 3 的行表示。

除了维吉尼亚密码外,许多其他多表密码也在密码学文献中有所提及。想了解更多,可以查看美国密码协会的网站,该网站在分类加密方法方面做得非常出色。^(3) 在本书中,我们只限于实践中遇到的多表密码。这些都可以看作是维吉尼亚密码的变体。

一次性密码本

维吉尼亚密码的安全性随着关键词长度的增加而提高。为了最大安全性,我们甚至可以选择一个与消息长度相等的密钥!这可以通过使用非常长的文本来实现,例如,一首诗或一段小说。

然而,使用一个与明文长度相同的随机字母序列作为密钥要更为常见,例如,随机字符串LAVBF HJHWQ UIELS KJFLS JFKSA JHFQI UDAJL KX。现在,明文I TRAVEL OVER THE SEA AND RIDE THE ROLLING SKY(摘自 1975 年 Fairport Convention 的歌曲《Rising for the Moon》)的加密结果如下:

明文: ITRA VELOVE RT HESEAAN DRIDE THER OLLINGS KY

密钥:LAVB FHJHWQ UI ELSKJFL SJFKS AJHF QIUDAJL KX

--------------------------------------------------------------------------

密文:TTMB ALUVRU LB LPKOJFY VANNW TQLW ETFLNPD UV

我们称这种类型的密码为一次性密码本。这个名字来源于该密码的早期实现,当时随机字母序列被分发为一叠纸,使用完后可以撕下并销毁。

如果正确使用,意味着密钥是随机的且仅使用一次,那么一次性密码本是一种无法破解的加密方法。因为使用这种方法,任何明文都可以加密为相同长度的所有可能的密文。换句话说,单个密文可以被解密为该长度的任何可能明文,无法区分哪种明文是正确的。

由于其安全性,一次性密码本曾一度非常流行。军队和外交机构在 1950 年代初期的冷战时期广泛使用它。许多间谍通过一次性密码本加密与他们的接头人通信,接头人提供给他们一长串随机字母或数字作为密钥。

密码机也使用了一次性密码本。这些设备大多看起来像打字机,几乎所有设备都使用一种二进制版本的一次性密码本方案,这种方案也被称为维尔南密码(Vernam cipher),以纪念吉尔伯特·S·维尔南(1890–1960)。这意味着每个字符都以一串零和一的序列编码;密钥也通常是从穿孔带中获取的一系列零和一。将明文与密文相加相当于应用异或操作(参见附录 C)。

然而,所有使用一次性密码本的用户都面临一个严重问题:他们需要大量的密钥材料,因此需要复杂的过程来分发这些密钥给用户。这是因为,根据定义,每个密钥只能使用一次,而且一次性密码本的密钥长度总是与要加密的消息长度相等。这种繁琐的密钥处理方式是一次性密码本在 20 世纪 60 年代电子技术和计算机技术出现后开始失去其重要性的原因,新的加密方法也随之问世。

如何检测多表替换密码

要检测维吉尼亚密码,我们需要对密文进行频率分析并计算重合指数。图 8-3 展示了Kryptos模型文本的维吉尼亚加密字母频率,并与典型的英文文本进行对比。注意,在这个维吉尼亚密码文本中,最常见字母的频率为 7.48%,而在普通英文中约为 11.89%。一般来说,维吉尼亚密码的频率分布比简单替换密码加密的文本更加平坦:常见字母变得不那么常见,罕见字母也不再那么稀有。

图 8-3:维吉尼亚密码文本(上)和英文明文(下)的字母频率图。如图所示,维吉尼亚密码文本的频率分布较为平坦。(注意,两张图的比例稍有不同。)

记住,英文文本的重合指数(即随机抽取的两个密码字母相同的概率)大约是 6.7%。如果文本使用简单的替换密码加密,这个指数不会发生变化。Kryptos 模型文本的重合指数约为 4.3%,明显较低。(我们可以通过rumkin.com/tools/cipher/dCode 网站的密码工具来计算此值。)完全随机的文本重合指数大约是 3.8%。一般来说,维吉尼亚密码的重合指数介于普通语言和随机文本之间。一旦使用一次性密码本进行加密,密码文本与随机文本无异,因此其重合指数大约是 3.8%。

需要注意的是,多字母替换密码通常类似于字母对替换。我们将在第十二章中解释如何区分这两种技术。

如何破解多字母替换密码

几个世纪以来,维吉尼亚密码和其他多字母替换密码被广泛认为是无法破解的,被称为“无法破解的密码(le chiffre indéchiffrable)”。当然,这种说法并不成立,因为早在十七世纪,就有人提出通过猜测单词来解决此类密码系统的方法。^(4) 在十九世纪,卡西斯基方法(在本节后续部分讨论)被开发出来。如今,有许多方法可以破解多字母替换密码,其中大多数在不涉及一次性密码本的情况下效果很好。这些破译方法中的一些可以手动使用,另一些则需要计算机支持。与本书中许多其他加密算法一样,大多数多字母替换密码可以通过计算机化的爬山法(见第十六章)进行攻击。

在接下来的部分,我们将重点讨论维吉尼亚密码,并介绍多种破解方法。这些方法中的大多数也可以应用于其他多字母替换密码,即使它们可以手动应用,也早已被实现为计算机程序。如果你在搜索引擎中输入“维吉尼亚密码解码器”,你会找到许多网站,使用各种方法破解维吉尼亚密码(有时甚至没有记录所用的方法)。此外,你当然可以使用像 CrypTool 2 或 dCode 这样的工具,使用不同的方法来破解维吉尼亚密码。

单词猜测

在 1990 年代,当克劳斯还是德国一所大学的计算机科学学生时,他被布置了一项破解密码的作业——这是他以前从未做过的事情。他知道该密码是维吉尼亚密码,并且文本和关键字是英文。此外,字母与数字的映射按照A = 0B = 1C = 2的方案进行。以下是密文的一部分:

"VMFA CKT ZM, KK ZSSH,", YX QTER, "DCL VYG'P KNB PHS DJCB. MFN ATJ'H QWV BL YNCSH FY RAA PZZCWMSAF NBUXDBJWYSCR." FX PFNSU MM FWYJ VZL CRAG GZRSC YESWQVEW UQH YVVR HNOH BCLEBG'P RT WK.

TPMDIW ZRR GG PVJ ALW YGZ GVIVEAAAR FH YBK.

"B'I UFAV," AC LWWI, "KV'EJ LAS BVF KSLPG KWILR."

如可以看到,标点符号和空格是可见的。这使得像贵族密码一样,可以通过猜测单词来进行破解。例如,字母序列YX QTER位于两个引号内的段落之间,可能表示直接引语。克劳斯认为HE SAID是一个不错的猜测。为了验证这个假设,他将猜测的明文从密文中减去:

YX QTER

HE SAID

-------

RT YTWO

对于计算机科学学生来说,其余的密钥并不难猜:它是FORTYTWO,这是道格拉斯·亚当斯 1979 年畅销小说《银河系漫游指南》中的“生命、宇宙以及一切问题的终极答案”(见图 8-4)。用这个密钥解密整个文本后,发现明文内容同样来自这本小说。克劳斯解决了这一挑战,激发了他对密码破译的终生兴趣。

图 8-4:道格拉斯·亚当斯(Douglas Adams)1979 年著名小说中的一段维吉尼亚密码文本,首次由作者克劳斯·施梅(Klaus Schmeh)破译。密钥是FORTYTWO

检查重复模式(卡西斯基方法)

如果没有标点符号或空格,破解维吉尼亚密码会变得稍微更困难。然而,一个熟练的密码破译者可以在二十分钟内不借助计算机解决一个简单的维吉尼亚密码。以下是之前例子中更大一段加密文本,省略了标点和空格:

KWWMC XJGJQ FGBLH OYSIA CPWGT IKHDM DSMCL LCTJR QMZGE BJTWC

EMMYW PNUPX JEKKG ICEBH VSWHY TRPWG FRMTL VEBLI GAGLC OWRVG

NTPVR FCIPH OGJFN TQTOH MSPLY RKBQM YNKTJ WSCKA CKSCW RJACP

WGFQR KZHJP FGVWJ BBSKC IFBXO QJBUX BYNCR OETNX ICWSJ ICVET

NQREJ RDSBO JYMKP MKOKT LWOVF PSRYG ZKTFB XBYKF YVVEM VWZHC 5

LGABH QZFZH SLHMJ BFNEA PVTIX AFXZW IBKDL HSWYV VPYLW ZXCRW

GKAQY ARECE EBJRV LAXJR FBKHD ZABLV ZLIAW BYVFN EAEBY SIOCG

EBLUV GCKWH NCELY GZFFQ ZTJFE LNBXA YWOCO IXZJX ZVNGX XLXOH

MOKAC AWRSC UBQVA FSWSE CFKBL CCHGW YVFFR VRXNW XHZVQ TJRYV

VHLEU JJGKB EXOZJ TKBLF NZUFF LQXNC KVZLK BCVYM RGAXO HWMNX 10

PXWDW CEHSG YSIGK HSMJS XGRUM NPHMS KNKTJ RFDIX BBHSH HZHLY

KFQWK MJXBI WVRMQ AAKFG SRLHI SFBJT EKAOY KRKPB KFNBW TAMDS

BOJTL XNJTI JPMKN WJRDT LMKRF MYXUT ODFFK BANHO WZPGC KRCZG

RGBPK FWWVW ZXYOZ GVLMF AHMWE ZFTZU TBVLC KECZG CRUKK BLKZM

FAEGO CSPFB YVBOJ MMLAS YVRMY KPVZF UXLMO VTIJX EHPQQ SRKCW 15

KIYCW MFXSO DPVYM KAHMS UTWPW GTIKV MFACK TZMKK ZSSHY XQTER

DCLVY GPKNB PHSDJ CBMFN ATJHQ WVBLY NCSHF YRAAP ZZCWM SAFNB

UXDBJ WYSCR FXPFN SUMMF WYJVZ LCRAG GZRSC YESWQ VEWUQ HYVVR

HNOHB CLEBG PRTWK TPMDI WZRRG GPVJA LWYGZ GVIVE AAARF HYBKB

IUFAV ACLWW IKVEJ LASBV FKSLP GKWIL RBIOK FRBBR KIWSX HGGCH 20

TVROC MKOHQ VIRBP GFWUF PINCX GVKEK EDUWE ZFBOT ZFYTR TJRWC

CEGGC WYFFN LWPVJ HFIMY DWXVV TBMDW XPPIY LOVFG XHRMK PJPLB

JMWBI WKLEH EBLHF UCUQW QHWBP LPWAS YXYKZ CKWKL YBZOW HYNPP

DMXWK ZMBJU YCSXZ NEZYA IIPHO GJFJA MHGVN GWBLZ AFFHY BKYKF

FPZMR AABXH FINXZ OSRGN RBPOB OPTET EBBVR MBHUC ZAVTL PDMXW 25

KZMMP CGSSN GEPVJ GRBBB PGFPP IYLOM TIMXE HPHTP LBJWX MUOJL

CLXMU OJLCL WFJRV OGVAG BVZVF THZTK JHKXL STDCX RHZFN JVYPH

IDTWE MYMKD TWEMZ OAFDT RLRPD WQGKH RAAFU SFIJX ZOXVW KMFLC

NBKUR HLCNB KTTXN MKOJM NXKDQ SCBTB JUFHG HGGPQ GSZGE TLCNB

KWGKA QYZPB LUAHB SVGYK ACKHV GEBRS SHFPM GZSWK YTRLO CLFVT 30

RTXCZ HGHGG POYVR MQHIO SMGXM IHSTT GHGGP PFFVL MDASS HFZCM

PVJFV TLWSV FHJLM ZNSFH RUMNP DTWEM ZMDOY GFFYG UDJCG ECHBD

TWEMY TNSXC BXCGP CLSKM FXNSY VVRMY PSSKZ LFMDO YDVHN EAKTI

CWHNO HTBTX YGZTT FREJP KFPCL MUAAF JHYXF XHZYV VRUTJ HJRKH

ZXIFU FFLQX NKFBK XBMKP JOKIM BJHID FBLMZ KFGEM YGUKM SIXGG 35

LOWHZ VSEWF NHNTQ CQGYO ERAHJ JJBZX LMLCN BKTTX NMQCE ZUTUT

WCDIM BJHXO STLWY VJKFN JWDOA SRGGV AZNHK ECVKH YOXXY MLCNB

KWUBP VFLVL MOAFY VVWMH NOSRJ ICGZO UZVTQ TJHFA FNLMK TYWDX

YMLCN BKXUA EQMKF NJWXS YVVGC TNSXH GNZMK DTWEM BAEGB WWXMY

YCZFJ XUTJH JRTEG FXWSU IHQXO PZHYX UTJHJ RRQCL DSIWU GRDJC 40

BKYRF XFIXH CBIXZ OCSJA CYHIX VVWFH PZDIE WCKPV JRVKG LEJJU

IBLLK TYVV

这个技巧是首先发现关键词的长度。一旦知道了它,解密一个维吉尼亚密码就变成了解决几个凯撒密码。猜测关键词长度的一个好方法是通过寻找密文中的重复模式,这种技术被称为卡西斯基方法。例如,在第 22 行和第 26 行中,我们找到了重复的模式PPIYLO

第一个和第二次出现该模式的起始位置之间的距离是 192 个字母。

在第 28 行和第 33 行中,我们找到了另一个重复模式DTWEMY

这一次,重复开始之前的字母数是 248。

在第 28 行中,可以找到第三次重复的DTWEM

这里,距离是 8。

我们发现的距离是 192、248 和 8。 这三个数字的最大公约数是 8。 这意味着关键词的长度很可能是 8 或 8 的约数。一个长度为 8 的关键词意味着我们正在处理八个凯撒密码。接下来的步骤,我们需要进行八次频率统计。我们从统计位置 1、9、17、25、33、41 等字母开始。结果如下:

如果我们将这个与普通英语文本的频率进行比较(见附录 B),我们会发现这里使用的凯撒密码是直接的一对一对应关系,A = FB = GC = H ……这意味着关键词的第一个字母很可能是F

现在,让我们统计位置 2、10、18 等的字母:

这一次,我们得到A = OB = PC = Q……因此,第二个关键词字母很可能是O

如果我们再重复这个过程六次,得到的字母是FORTYTWO。这表明关键词的长度确实是 8。如果我们得到的关键词是FORTFORT,我们就知道四个字母FORT是实际的关键词。使用关键词FORTYTWO,我们可以轻松解密密文并恢复出《银河系漫游指南》的摘录。

使用一致性指数

卡西斯基方法通常是通过手工确定维吉尼亚关键字长度的最佳方法。如果有计算机可用,存在更好的方法。通常,重合指数可以帮助我们确定关键字中的字母数量。一种好的方法是假设不同的关键字长度(例如,长度在 3 到 25 之间),并为每个情况计算重合指数。假设是英文明文,重合指数最接近 6.7%的值可能是正确的。

dCode 网站 (dcode.fr/en)为我们提供了一个可以进行此类测试的工具。以下是我们为《银河系漫游指南》摘录得到的结果:

  1. 长度 = 24: 重合指数 = 6.4%

  2. 长度 = 8: 重合指数 = 6.3%

  3. 长度 = 16: 重合指数 = 6.2%

  4. 长度 = 4: 重合指数 = 4.9%

  5. 长度 = 12: 重合指数 = 4.9%

  6. 长度 = 20: 重合指数 = 4.8%

  7. 长度 = 26: 重合指数 = 4.6%

  8. 长度 = 14: 重合指数 = 4.6%

长度为二十四时,重合指数最高,最接近英语的 6.7%。二十四是错误的,但我们可以接受,因为它是 8 的倍数。当我们在下一步解决二十四个凯撒密码时,我们会得到FORTYTWOFORTYTWOFORTYTWO作为关键字。第二次猜测(8 个字母的关键字长度)是正确的。

现在我们知道了关键字的长度,我们可以告诉 dCode 工具解密密文。通过为每个字母解决凯撒密码,dCode 给出正确的解答。这在图 8-5 中展示。

图 8-5:网站 dCode (dcode.fr/en)提供逐步解决维吉尼亚密码的工具。

现在我们尝试对Kryptos模型上的文本进行相同的操作。以下是 dCode 为我们提供的结果:

  1. 长度 = 3: 重合指数 = 6.3%

  2. 长度 = 6: 重合指数 = 6.2%

  3. 长度 = 9: 重合指数 = 5.9%

  4. 长度 = 13: 重合指数 = 5.2%

  5. 长度 = 11: 重合指数 = 4.9%

  6. 长度 = 12: 重合指数 = 5.5%

  7. 长度 = 15: 重合指数 = 5.8%

  8. 长度 = 18: 重合指数 = 5.9%

  9. 长度 = 8: 重合指数 = 4.3%

  10. 长度 = 1: 重合指数 = 4.3%

如图所示,长度为 3 的关键字提供了最佳结果。这是正确的,因为关键字是RUG

威廉·弗里德曼(William Friedman)是将“巧合指数”引入密码破解领域的先驱,他提出了一种利用该指数从密文中估算关键字长度的公式。这个公式被称为弗里德曼测试。它比我们刚才演示的巧合指数比较方法需要更少的计算,但也 less 准确,尤其是当明文语言未知时。关于巧合指数方法和弗里德曼测试的详细讨论,我们推荐克雷格·鲍尔(Craig Bauer)的《秘密历史》一书。^(5)

字典攻击

另一种破解维吉尼亚密码的方法是所谓的字典攻击,这需要使用计算机程序。字典攻击需要一个长长的单词列表,称为字典,它存储在一个文件中。各种字典文件在互联网上有大量的可用资源。例如,有包含英语中 20,000 个最常用单词的文件。类似的集合也为其他许多语言、地理名词、名字、缩写等创建了。除此之外,还有一些程序能够为给定单词生成几十种不同的版本(例如,CALIFORNIACALIFORNYACALIFCAAINROFILAC等)。

执行字典攻击的程序会逐个从这样的源中取出单词,推导出不同版本的该单词,并将每个版本作为可能的密钥来解密密文。然后,它会检查结果是否看起来像是正常的英文(或使用的任何其他语言)。区分有意义文本和无意义文本的方法将在第十六章中介绍。当有意义的语言测试为正时,解密成功;否则,将测试下一个关键字候选。

尝试通过字典攻击破解维吉尼亚密码是可行的,^(6) 但并不常见。这可能是因为有更强大的基于计算机的攻击方法可用于破解维吉尼亚密码,比如爬山法(hill climbing),在第十六章中有讨论。

托比亚斯·施罗德尔(Tobias Schrödel)的方法

2008 年,我们的同事、德国密码学专家托比亚斯·施罗德尔在《Cryptologia》上发表了一种迄今未知的维吉尼亚密码破解方法。^(7) 该攻击基于消除明文和关键字中的稀有字母组合。它需要一个计算机程序(实际上是 CrypTool 1 的一部分,CrypTool 2 的前身)。托比亚斯的方法在消息长度不比关键字长太多的情况下特别有效(例如,一个十五个字母的明文用一个七个字母的关键字加密)。然而,关键字必须是一个真实的单词,而不是一个随机字母序列——否则,消除稀有字母组合就没有任何意义。

在他的文章中,托比亚斯介绍了密文IZRUOJVREFLFZKSWSE,它是用维吉尼亚密码加密的。传统的攻击维吉尼亚密码的方法在这里行不通。例如,无法猜测出任何单词,因为文本中没有空格。此外,密码文本很短,没有可能揭示密钥长度的重复出现。即便我们知道或猜测密钥的长度,进行例如六次频率分析也无济于事,因为字母太少。

然而,托比亚斯的方法可以破解这个密码。通过消除稀有的字母组合,它发现常见的三字母组合BLAHOR在一个与另一个加密时会生成IZR(密文的前三个字母)。基于频率考虑,该方法接着建议BLACKHORSE作为这两个三字母组合的扩展。虽然不清楚哪个是密钥词,哪个是明文,但进一步的测试揭示了密钥词HORSE更有意义。当用它来解密密码时,得到的明文是BLACK CHAMBER IS OPEN

其他维吉尼亚破解方法

在她 1939 年的书籍《密码分析》中,海伦·福什·盖恩斯描述了一种语言学方法来破解维吉尼亚密码。^(8)它需要运气和大量的试验与错误。理查德·海耶斯在 1943 年描述了一种类似但更先进的技术,基于常见的三字母组合。^(9)这两种方法如今已经很少使用,因为随着计算机技术的出现,更强大的替代方法已经问世。

本书不讨论的另一种方法是维特比分析,它基于隐马尔可夫模型。关于这种方法的有趣文章已经发表在科学期刊《Cryptologia》上。(10), ^(11)

如何破解一次性密码

正如我们提到的,如果密钥是完全随机且没有任何规律,并且只使用一次,那么一次性密钥是无法破解的。然而,在历史的长河中,更多时候这些要求被违反了。最常见的错误之一是重复使用相同的密钥。

接下来,我们将解释如果对两个消息使用相同的密钥,如何破解一次性密码。为了演示这一点,首先让我们用(随机的)密钥KDFYDVKHAP加密明文WASHINGTON

WASHINGTON

KDFYDVKHAP

----------

GDXFLIQAOC

接下来,我们用相同的密钥加密明文CALIFORNIA

CALIFORNIA

KDFYDVKHAP

----------

MDQGIJBUIP

现在,我们用第二个密文解密第一个明文:

WASHINGTON

CALIFORNIA

----------

UAHZDZPGGN

如果我们用第二个密文解密第一个密文,我们会得到相同的结果:

GDXFLIQAOC

MDQGIJBUIP

----------

UAHZDZPGGN

这意味着,如果密码破译者知道两个密文(GDXFLIQAOCMDQGIJBUIP),并且其中一个明文是WASHINGTON,他们就能轻松推导出第二个明文CALIFORNIA。反过来也一样:如果知道CALIFORNIA,就可以推导出WASHINGTON

我们可以很容易地将这种方法推广到更长的消息。如果一位密码分析师知道两个用相同密钥加密的一次性密码密文,并且其中一个密码本中有已知的部分,他们就能轻松推导出另一个明文的部分。如果后半部分是,例如,E UNITED S,这可以扩展为THE UNITED STATES,这意味着THTATES变成了新的已知部分。使用这种方法,可能会完全推导出两个明文。

成功案例

戴安娜·多尔斯的消息

英国女演员戴安娜·多尔斯(1931-1984)曾被认为是英国版的玛丽莲·梦露。在数十部电影中,她饰演了一个诱人的金发女郎,并过着一个堪比电影女神的私人生活。在五十二岁因癌症去世之前,她给她的儿子马克·道森留下了一段加密的信息,告诉他这段信息描述了她藏匿的巨额财富:200 万英镑。

该文本的标题使用猪圈密码进行加密:

经过一些研究,Dawson 解密出这段文字为LOCATIONS AND NAMES。结果发现,他的母亲使用了以下的替代表:

密码的主要部分用普通字母写成:

EAWVL XEIMO RZTIC SELKM KMRUQ

QPYFC ZAOUA TNEYS QOHVQ YPLYS

OEOEW TCEFY ZZEPI NYAUD RZUGM

SSONV JDAER SZNVS QSHRK XPVCC

WUAEJ JTWGC WQRCC NRBKZ VIITF

RZLTS VOAIB NQZOK VANJJ TFAJO

GYUEB XZHRY UFSDM ZEBRK GIECJ

QZHFY QBYVU FNEGD EDIXF YZHOM

PMNLQ XFHFO UXAEB HZSNO EAUIL

JXIWD KTUDN MCCGC EURDG SRBCW

GMNKC RLHER HETVP GWOGC WANVJ

NGYTZ RALTM TAYTL UUSKM QIRZH

由于道森无法解密这段密文,他向一组英国密码学家请教,其中包括安德鲁·克拉克,后者成功破解了这段密码。然而,信息的意义仍然是一个谜。2004 年一部电视纪录片后来记录了该团队的工作。^(12)

一开始,克拉克和他的同事们对密码进行了几项统计分析。结果证明这与维吉尼亚密码一致,他们没有遇到太大困难地破解了它(可能是通过首先确定关键字长度,然后使用本章前面描述的方法)。结果,关键字是DMARYFLUCK(可能源自多尔斯的法定名字,戴安娜·玛丽·弗拉克)。

下面是如何解密第一行的方法:

密文: EAWVL XEIMO RZTIC SELKM KMRUQ . . .

密钥: DMARY FLUCK DMARY FLUCK DMARY . . .

明文: BOWEN STOKE ONTRE NTRIC HARDS . . .

该文本由一系列姓氏组成,每个姓氏后面跟着一个英格兰或威尔士的城市:

  1. Bowen, Stoke-on-Trent

  2. Richards, Leeds

  3. Woodcock, Winchester

  4. Wilson, York

  5. Downey, Kingston Upon Hull

  6. Grant, Nottingham

  7. Sebastian, Leicester

  8. Leigh, Ipswich

  9. Morris, Cardiff

  10. Mason, Slough

  11. Edmundson, Portsmouth

  12. Padwell, London

  13. Pyewacket, Brighton

  14. McManus, Sunderland

  15. Coyle, Bournemouth

  16. Humphries, Birmingham

  17. Dante, Manchester

  18. Bluestone, Liverpool

  19. Cooper, Bristol

这个列表的含义未知,我们不知道这些名字是否指代真实的人。戴安娜·多尔斯的儿子从未找到过母亲 allegedly 留下的数百万英镑,而这个遗产是否真的存在也值得怀疑。尽管多尔斯在早期的职业生涯中做得不错,但她在 1968 年宣布破产,从那以后,她只能通过一些小的演出谋生。

Kryptos 1 和 2

位于中央情报局总部的Kryptos雕塑右侧的两个面板显示了一个 Vigenère 类型的表格,字母顺序如下。单词KRYPTOS的字母被移到了开头:

KRYPTOSABCDEFGHIJLMNQUVWXZ

左上方面板包含以下密文:

EMUFPHZLRFAXYUSDJKZLDKRNSHGNFIVJ

YQTQUXQBQVYUVLLTREVJYQTMKYRDMFD

VFPJUDEEHZWETZYVGWHKKQETGFQJNCE

GGWHKK?DQMCPFQZDQMMIAGPFXHQRLG

TIMVMZJANQLVKQEDAGDVFRPJUNGEUNA

QZGZLECGYUXUEENJTBJLBQCRTBJDFHRR

YIZETKZEMVDUFKSJHKFWHKUWQLSZFTI

HHDDDUVH?DWKBFUFPWNTDFIYCUQZERE

EVLDKFEZMOQQJLTTUGSYQPFEUNLAVIDX

FLGGTEZ?FKZBSFDQVGOGIPUFXHHDRKF

FHQNTGPUAECNUVPDJMQCLQUMUNEDFQ

ELZZVRRGKFFVOEEXBDMVPNFQXEZLGRE

DNQFMPNZGLFLPMRJQYALMGNUVPDXVKP

DQUMEBEDMHDAFMJGZNUPLGEWJLLAETG

正如在附录 A 中所述,这个密码本至少被三位互不知情的密码破译者独立破解。在本节中,我们提供了中央情报局员工 David Stein 使用的方法,他是第二个破解此密码的人。他的工作记录在一篇可以在线查阅的论文中。^(13)

斯坦因首先进行了频率分析。他意识到加密信息看起来像是一个 Vigenère 密码。使用弗里德曼方法(基于一致性指数),斯坦因发现最可能的关键字长度是八个字母。这一点通过第四行(Kasiski 方法)中DQM三字母组合在八个字母之后的重复得到了验证:

D Q M C P F Q Z D Q M

1 2 3 4 5 6 7 8

斯坦因的第一个猜测是,DQM三字母组合代表英语中最常见的三字母组合THE。在对密文进行的另一次攻击中,他进行了额外的频率分析。知道一个具有八个字母关键字的 Vigenère 密码等同于八个凯撒加密,斯坦因计算了每第八个字母的频率。然而,这两种方法都没有得到解决方案。

他接着猜测,使用了一个包含排列字母表的维吉尼亚加密法——一个以KRYPTOS开头的字母表,正如雕塑另一面所示。基于这一假设,他再次尝试通过频率分析破解八个凯撒密码。这一次,他走在了正确的道路上。他找到的维吉尼亚关键字是ABSCISSA,一个指代图表中点的横坐标的词。DQM的密文解密为THE(Y)THE

然而,只有第 3 行到第 13 行的加密信息解密出了有意义的明文,而前两行解密出来的则是乱码。Stein 猜测这两行使用了相同的加密方法,但关键字不同。这个猜测被证实是正确的,Stein 确定这两行的关键字是PALIMPSEST。(palimpsest是一种手稿页面,其文字被刮掉或冲洗,以便可以重新使用并为另一个文本提供空间,这样可以通过新的文本看到旧文本的部分内容。)以下是用于加密第 1 行和第 2 行的维吉尼亚表(请注意第一列的关键字是PALIMPSEST):

KRYPTOSABCDEFGHIJLMNQUVWXZ

--------------------------

PTOSABCDEFGHIJLMNQUVWXZKRY

ABCDEFGHIJLMNQUVWXZKRYPTOS

LMNQUVWXZKRYPTOSABCDEFGHIJ

IJLMNQUVWXZKRYPTOSABCDEFGH

MNQUVWXZKRYPTOSABCDEFGHIJL

PTOSABCDEFGHIJLMNQUVWXZKRY

SABCDEFGHIJLMNQUVWXZKRYPTO

EFGHIJLMNQUVWXZKRYPTOSABCD

SABCDEFGHIJLMNQUVWXZKRYPTO

TOSABCDEFGHIJLMNQUVWXZKRYP

前两行的明文如下。它包含一个拼写错误:

在微妙的阴影和光明的缺失之间, lies the nuance of illusion

对于第 3 行到第 13 行,Sanborn 使用了以下基于关键字ABSCISSA的维吉尼亚表:

KRYPTOSABCDEFGHIJLMNQUVWXZ

--------------------------

ABCDEFGHIJLMNQUVWXZKRYPTOS

BCDEFGHIJLMNQUVWXZKRYPTOSA

SABCDEFGHIJLMNQUVWXZKRYPTO

CDEFGHIJLMNQUVWXZKRYPTOSAB

IJLMNQUVWXZKRYPTOSABCDEFGH

SABCDEFGHIJLMNQUVWXZKRYPTO

SABCDEFGHIJLMNQUVWXZKRYPTO

ABCDEFGHIJLMNQUVWXZKRYPTOS

这是相应的明文结果(包括另一个拼写错误):

完全看不见,这怎么可能?他们使用了地球的磁场,信息被收集并传输到地下的一个未知地点,*兰利*知道这件事吗?他们应该知道,它埋在某个地方。谁知道确切的位置?只有 WW 知道,这是他最后的消息,北纬三十八度五十七分六点五秒,西经七十七度八分四十四秒,ID 按行排列

2006 年,在解密方案公开几年的时候,Kryptos的创造者 Sanborn 指出,明文的最后三个词ID BY ROWS是错误的,因为密文的最后一行缺少了一个S。明文的原定结尾应为X LAYER TWO。之前的解密者没有注意到这个错误,因为巧合的是,表达式ID BY ROWS似乎是有意义的。

塞里尔投影仪

Sanborn 不仅是Kryptos的创造者,还创作了其他几部加密作品。例如,在 1990 年代,他创作了另一座雕塑,刻有加密信息:西里尔投影仪。它首先在他的画廊展出,然后在 1997 年搬到了目前的位置——北卡罗来纳大学夏洛特分校的校园。西里尔投影仪由一个超过两米高的大铜柱组成,柱身上刻着数百个字母。雕塑中心有一道明亮的光,透过字母投射出它们的影像,覆盖着庭院。

Kryptos一样,西里尔投影仪上的字母刻在四块面板上,这些面板组成了柱体。位于图 8-6 中视线之外的两块面板展示了一个维金纳表格(Vigenère-type tableau),使用的是俄语(西里尔字母)字母表,并进行了转置,使得单词ТЕНЬ(俄语中的“影子”)位于开头。需要注意的是,西里尔字母的未转置顺序会因地区而有所不同,而西里尔投影仪上使用的字母顺序并不是最常见的那种。

图 8-6:西里尔投影仪位于夏洛特北卡罗来纳大学校园,是一座雕塑,雕刻着加密的铭文。右上方的照片显示了 Elonka 作为投影词MEDUSA的屏幕(唯一一部分不是用西里尔字母书写的)。

这两块面板上的文字(如图所示)是加密信息。它同样使用了西里尔字母,除了第十四行中的单词MEDUSA。在西里尔字母中,通常应拼写为MEДУЗA;而使用拉丁字母则暗示了其中一个密钥。

这里是西里尔投影仪上的密文:

ЛTФEЮTФЯЙЯMПXЦФAЧHЩПBБГЖЧCКЬГГЛЗДЭЙП

ЪКXCЙPЭAФHФПЩBПEЦPДФAЩШTКCXCЧЫУXXEЮ

КУMЛEЧЛЫTOБHEЯЖЖИЬHЭЗЩЦPЛЫБПHФOИИAБЬ

ПИКЛEУPЫCMЪШЛЛБXMXЛЖШPAЩPЙЛПEOOЙЙBЦ

ИЪЛБXЦPЫЧCКAPCPBЯЭФКЮФPЮMOЯЗOЛOДЭШPЗУ

ДXMAЭXOЙГЙЮФMЩXXCBИИЗXAГЙЯЬПCИБPPШOM

КTCУЯГXУЬЛEУPЫCMЪШCППЯЯЦШУШAЦЧПИMШH

PБЧPЯЫMИУPAДФAИЮЙЫЦЯЛOHУФЖOФШXФЖCБ

BЪЧДЦCФБMДЭШPЗУДXУPБШTOКЩЪMXПOTOXOЩЧ

ЖAЦДЩPAЮГOЙBPБГЮБЗГEЖPЙЛПEOOЙЙBЦHЗПГФ

ЦЗAИBЯЮФЛЪЦXCЧЫШЬБEOMЩШЖTЭДЙOTTФXПP

ПЛOДЭЩPЗУДXКПГФOЦБЩЪMMЭКЧEPЛMКЪЦЦЗЩЛ

ФЦЧЪЩКBHФAECДПTДФПPЯЙКЮHXBЦБЮEИCЧЯЧЦ

XMЖЛCПPЧУЛЭШЖЫИИMEDUSAИHXEЗЛЧЗPЗЙКЛ

ППEBЛЧCXЦЫOЙBPБУДXCBЪГЖЧCКAPCPBЯЭФPЩФ

ЯЦЩПЪЗЫTФOЙЙУCДTЮTBCБPXCПБЩЛШКУBЙЙГЗ

ЙAЧЛЬPЙЭMДЧЧPЬCTHКЙEКДOБЖБЛШИЫЙБЙИДPP

ЦXOЩЖBЪКБЧКЖHФПШЦЗУЙДЯГAЧЙКУЗФEЦИЯИ

ЙФЭБЛCДTГЗШPЖEДФЩЖЙЯHБOOЬШФПЮКЗЦУДИ

HXEOXПOЙAXДЭCБЩЙЖЭШBЪOДЩBУCЛMЩГЖШУД

ИГЛEШКПУУEЧДЛCУЦЮTЮHXЪПБУПPЬГИУCБЙЙПЮ

ГAФФEШБФБMЙПИMЪЮКЩXXTHФЩШПEЯБЧККЩ

BЙЩЗЛЮCBЮЙКУКФCЫTЫCBЛCЛЬЗУЦИКЩДPCУPЗ

XPФЙPЭMPXФЛКФAЙЙКУAЛЩГMЙЖШЪЙЬЩКФHФ

ИДЙPФГКУКAЯЙOУMATЭTЦКBEЖOЙИДЦДКГЩФEЖ

БЮXЛECCЭCHЩЩXПOЬДЖЙЙЗГEИTЙMAШЙЙУMФC

ЫTЫCBCИДCДPБФHУOPУШTБЗПЪДЗЯЫAAЧКУMAЯX

TMЦPИЦЗЩЛЛEУУПФЖTЭДУXPШЙOPБЭЦЙOПЙЛЪЙ

TЧШЙAФHПШФЭMБЩЪЖTПДЛPШБШБЧPЖЫMHЧЗЫ

TЙЖЪCMЪЧДXКЛHЦПЗXPФЙPЭMPXФMЫБBЪЧБШEФ

БЖTЩBBЪУБЧКЖAЦПЫГШAMИПPЙЪГOЦКЙГPЛЮБУ

CПБЮPPXФTЫXЖTГИЙКAФMTHКЙФФHЦЙЫCЧБШE

在 Sanborn 使雕塑对公众开放后,过去了几年,才有人认真尝试破解这段加密。2003 年,一群由 Elonka 领导的七十位Kryptos 爱好者终于开始着手此事。小组成员 Randall Bollig 拍摄了 Cyrillic Projector 的多张照片。经过数周的艰苦工作,另外三名小组成员,Elonka、Bill Houck 和 Brian Hill,各自独立地制作了抄本。然后,他们对比了各自的抄本,生成了一个完全准确的版本。(想象一下,从倒影的圆柱形雕塑中读取西里尔字母的难度!)随后,Elonka 在她的网站上发布了修正后的抄本。^(14)

在抄本发布后不久,两位业余破译者,Frank Corr 和 Mike Bales,独立地破解了加密。他们没有发布完整的英文解答,因为他们不懂俄语,而原文就是用俄语写的,无法翻译。当 Elonka 得知他们可能的成功后,她联系了一位俄语母语者,Anatoly Kolker。他是 Elonka 父亲 Stanley Dunin 在世界银行的同事。Anatoly 确认了解答是用俄语写的,并提供了最终的英文翻译。该明文证明由两篇冷战时期的文本组成,内容如下:

B Ы C O Ч A Й Ъ И M И C К У C C T B O M B T A Й H O Й P A З B E Д К E C П И T A E . . .

结果证明使用的加密算法是 Vigenère 加密的一个变种,关键词是 MEДУЗAMEDUSA),字母表的排列与表格中的方式相同,字母 TEHЬ 被移到了最前面。^(15) 为了创建用于加密明文的 Vigenère 表格,我们首先需要以下的表格:``

`` АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ---------------------------------- А ТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯ Б ЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТ В НЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕ Г ЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕН Д АБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬ Е БВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬА Ж ВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБ З ГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВ И ДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГ Й ЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГД К ЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖ Л ИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗ М ЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИ Н КЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙ О ЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙК П МОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛ Р ОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМ С ПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМО Т РСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОП У СУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПР Ф УФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРС Х ФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУ Ц ХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФ Ч ШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХ Ш ЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШ Щ ЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦ Ъ ЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧ Ы ЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩ Ь ЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪ Э ЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫ Ю ЮЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭ Я ЯТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮ 如上所示,使用了西里尔字母表А,Б,В,Г ……)来索引表格的行。为了加密此信息,只有行MEДУЗA是相关的。我们将它们排列成一个单词MEДУЗAАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ---------------------------------- М ЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИ Е БВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬА Д АБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬ У СУФХШЦЧЩЪЫЭЮЯТЕНЬАБВГДЖЗИЙКЛМОПР З ГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯТЕНЬАБВ А ТЕНЬАБВГДЖЗИЙКЛМОПРСУФХШЦЧЩЪЫЭЮЯ 以下行展示了如何使用简化表将明文映射到密文: 明文: BЫCOЧAЙЪИMИ . . . 密文: ЛTФEЮTФЯЙЯM . . . 我们将把完整的解决方案留给那些希望像冷战时期一样破译西里尔字母表信息的读者! ### Thouless的第二个密码谜题 1948 年,英国心理学家兼超心理学家罗伯特·索尔斯(1894–1984)开始了一个不寻常的实验。^(16)他取了一段简短的文本,对其进行了加密,并发布了密文,保持了明文和密钥的秘密。他的计划是在死后通过超自然的方式传递密钥。如果有人通过这种超常方法收到正确的密钥,他们将能够解密这个密码。这个实验,如果成功的话,将证明死后有生命,死者能够与活人交流——这无疑会成为科学史上最伟大的发现之一。 据我们所知,索尔斯的实验并未成功——没有人曾通过超自然方式获得正确的解密方法。这对于索尔斯的同僚、超心理学家T.E. Wood(其密码谜题稍后在本章中讨论)也是如此。 为了确保万无一失,索尔斯在 1948 年发布了第二个密文,使用了不同的加密方式。然而,他的计划被挫败了,因为仅仅几周后,一位未知的密码破译者解决了他的第一个密文。对此,索尔斯创作了第三个密码谜题。由此,他在 1948 年一共留下了三个信息。第一个和第三个密码是使用Playfair 密码的变体加密的,相关内容将在第十二章中讲解。 索尔斯为第二个信息使用的加密方法非常复杂,但其中有一些与维吉尼亚密码相似的元素。它使用了一段短语或文本作为密钥。举个例子: TO BE OR NOT TO BE THAT IS THE QUESTION 从这个短语中,他去除了已经出现的单词(在这个例子中,TOBE),从而缩短了文本: TO BE OR NOT THAT IS THE QUESTION 接着,他将每个字母转换为一个数字(即A=1,B=2,C=3 ……): `20.15 2.5 15.18 14.15.20 20.8.1

第九章:完整的列交换密码

1935 年,某人将图 9-1 中展示的匿名信息发送给富兰克林·D·罗斯福总统。(1), ^(2) 尽管第二行OR ELSE YOU DIE是可读的,但第一行显然是加密的。我们可以通过将消息按每行两个字母的方式写下来,恢复明文:

ND

OI

MD

EY

LO

AU

EE

TV

IE

BR

图 9-1:1935 年发送给富兰克林·D·罗斯福总统的匿名加密信息

注意,从上到下,第二列是DIDYOUEVER。第一列从下往上读是BITEALEMON。这两列组合成了预期的明文信息,DID YOU EVER BITE A LEMON?

罗斯福患有小儿麻痹症(或当时无法与其他类似疾病区分开来)。根据一个已被驳斥的理论,柠檬汁能够治愈小儿麻痹症。看起来,这条信息的发送者想通过这种不寻常的方式向罗斯福推荐柠檬汁疗法。

这种加密方法的一个特别之处在于,没有对明文中的字母或单词进行替换。相反,只是改变了字母的顺序。具有这一特性的密码被称为交换密码

完整的列交换密码是如何工作的

交换密码有很多种,几乎每种改变信息中字母顺序的方式都能形成一种新的交换密码。罗斯福的明文由二十个字母组成,这意味着它可以有 2,432,902,008,176,640,000(超过两千五百亿)种重新排列的方式!一般来说,一个包含n个字母的消息可以通过n的阶乘(n! = 1 × 2 × 3 × 4 × 5 × . . . × n)种方式进行交换,且不一定是独特的。然而,使用随机交换方法进行加密并不实用。相反,需要定义一个方便的交换规则。

图 9-2 中的明信片是使用了一种交换规则编写的,这种规则确实方便,但安全性不高。^(3)

图 9-2:这张加密明信片并不难解密。

你稍微看一会儿就会发现,明信片上的信息是倒着写的。这种写法是交换密码的一种特别简单的变体。另一种方法是将明文中的每个单词倒着写。以下这则报纸广告发表于 1888 年 4 月 4 日的Morning Pos**t,采用了这种方法:^(4)

Ma gniyrt ym tseb ot esaelp uoy.

应该很清楚,从实际隐匿信息的角度来看,为了避免信息被不希望的接收者窃取,转置规则需要更加复杂。此外,基于密钥,转置应当能够变化。例如,我们可以将消息分为五个字母的块,并根据定义的方案重新排列每个块。使用这种方案,明文 SWISS CHEESECAKE 可以加密如下:

这解释了在图 9-3 中我们在聚会中遇到的标志是如何加密的。它使用了密钥 1 = 52 = 13 = 24 = 45 = 3,或者简单地表示为 51243

图 9-3:这款蛋糕的名字通过转置密码进行了加密。

这种方法相当于以下方法,使用了关键词 TABLE。首先,我们将消息写成如下形式,放在关键词下方:

TABLE

-----

SWISS

CHEES

ECAKE

然后,我们对列进行排序,使得关键词的字母按字母顺序排列:

ABELT

-----

WISSS

HESEC

CAEKE

这产生了我们在标志上看到的密文 WISSS HESEC CAEKE

我们可以通过按列转录字母来扩展这种基于行的转置,从而得到以下加密消息:WHC IEA SSE SEK SCE。我们还可以从底部向上、从右向左或以其他方式转录消息。

长期以来,人们低估了转置密码的强度。许多密码设计师认为,重新排列字母比替换字母不安全。直到 20 世纪,人们才知道转置密码实际上可以非常安全。

在本章中,我们将仅限于处理明文以相等长度的行编写,按列转置并以任意方向进行转录的情况。此外,我们假设最后一行完全填充,不包含空格。这种转置称为“完全列转置”。本章早些时候展示的罗斯福密码就是一种完全列转置,行长度为二。反向书写的明信片(行长度等于消息长度)也是如此。将每个单词倒写的报纸广告肯定是一种转置,但不是完全列转置,因为它不是基于恒定长度的行。

如何检测完全列转置密码

从破解者的角度来看,转置密码(无论哪种类型)的优点是加密后消息的字母频率不会发生变化。因此,频率分析有助于我们检测这种类型的密码。例如,看看 1882 年 6 月 16 日《晚间标准报》上刊登的加密广告:^(5)

ECALAP Ardnaxela eht ta sekal elpirt eht no strecnoc ocserf la eh tot og syadrutasnda syadsruht syadseut no.

如果我们进行频率分析 . . .

. . . 我们看到AET的出现频率特别高,而BQJMVWZ完全没有出现。这与一段英文的短文本一致(在较长的文本中,我们预计E会比A更频繁)。唯一一种常见的加密算法,它能生成这种字母频率的密文,就是换位密码。

就像字母频率一样,偶然指数在应用换位密码时不会改变。使用 CrypTool 2 或dcode.fr/en,我们可以计算 1882 年报纸广告的偶然指数为 7.0%,这与英语的偶然指数 6.7%非常接近。

如何破解完整的列换位密码

对于基于行的换位密码(即完整的列换位密码),有多种解密方法。在每种方法中,确定行的长度起着关键作用。

排列和读取法

让我们再来看一下发给罗斯福总统的加密便条:NDOIMDEYLOAUEETVIEBR。这条信息由二十个字母组成。假设我们面对的是完整的列换位密码,那么只有少数几种可能的行长度,即二十的约数:二、四、五和十。

作为第一次尝试,我们将信息写成十个字符一行:

NDOIMDEYLO

AUEETVIEBR

现在,让我们尝试以四个方向读取这两行文本:从左到右,反向,从上到下,和从下到上。然而,无论我们如何读取,它都没有意义。所以接下来,我们尝试五字母行:

NDOIM

DEYLO

AUEET

VIEBR

仍然没有发现规律。这里是四字母一行的消息:

NDOI

MDEY

LOAU

EETV

IEBR

再次,我们以四种不同的方式读取这些行;没有什么特别的。接下来,我们尝试两字母的行:

ND

OI

MD

EY

LO

AU

EE

TV

IE

BR

现在,从下到上读取的第一列是BITE A LEMON。或者,也许更容易先看到第二列,从上到下读取是DID YOU EVER。密码被破解了。有时,破解一个完整的列换位密码就这么简单!

让我们来看一个类似的例子。图 9-4 中的密码谜题是英国情报机构 GCHQ 在 2013 年发布的一段挑战性密文。^(6)

图 9-4:英国情报机构 GCHQ 发布的挑战性密码谜题

频率分析揭示字母频率与英文语言非常匹配,除了大量的Q之外。因此,我们可以假设这段密文是通过换位密码生成的,而Q代表空格字符。

这段密码文本包含 143 个字母。143 只有两个因数,它们都是质数:11 和 13。假设我们处理的是完全的列置换密码,我们应该检查 11 和 13 的行长度。我们先从 11 开始:

AWVLIQIQVTQ

OSQOELGCVII

QWDLCUQEEOE

NNWWOAOLTDN

UQTGAWTSMDO

QTLAOQSDCHP

QQIQDQQTQOO

TUDBNIQHBHH

TDUTEETFDUE

AUMORESQEQE

MLTMETIRECL

ICAIQATUNQR

ALTENEINRKG

无论我们如何阅读这一段文字——从左到右、倒着读、从上到下,还是从下到上——它看起来都不像真实的语言。接下来,让我们检查一下十三个字母的变体:

AWVLIQIQVTQOS

QOELGCVIIQWDL

CUQEEOENNWWOA

OLTDNUQTGAWTS

MDOQTLAOQSDCH

PQQIQDQQTQOOT

UDBNIQHBHHTDU

TEETFDUEAUMOR

ESQEQEMLTMETI

RECLICAIQATUN

QRALTENEINRKG

如果我们从上到下读取第一列,我们得到AQCOMPUTERQ。记住,Q代表空格,这条消息就变得有意义了。用Q替换为空格后,从列出发读,这段文字变成了这样:

一个计算机如果能够欺骗一个人让他相信它是人类,那它就值得被称为智能的。WWW 点 METRO 点 CO 点 UK 斜杠 TURING

明文是对“图灵测试”常见定义的总结,图灵测试是以杰出的数学家艾伦·图灵(1912-1954)命名的。

元音频率和多次重排

我们刚才介绍的排列和读取方法只适用于如果置换的第二步,即列的排列被省略的情况。如果不是这种情况,我们需要更复杂的破译方法。为了继续,我们需要知道英语中元音和辅音的比例大约是 40:60。连续三个以上的元音或辅音是可能的,但在实际中很少见。

让我们看看以下从《军事密码分析 IV》一书中摘取的密码本(作者:William Friedman,1959 年):^(7)

频率分析揭示了与英语语言非常相似的分布,表明这个密文可能是用列置换密码生成的。我们先假设它是一个完全的列置换密码。

由于消息由 126 个字母组成,因此可能的行长有:2、3、6、7、9、14、18、21、42 和 63。2、3 和 6 的行长不安全,因为可以转置的内容很少;而 21、42 和 63 的行长不切实际,因为行太长了。因此,这些行长很少被使用。所以我们从检查 7、9、14 和 18 的行长开始。

如果我们以 7 个字母为一行来写密文,我们得到如下表格。(因为我们假设密文是按列读取的,所以我们以列而非行的方式写文本。)

1 IONTTUM

2 LONRCPA

3 HEVRUOS

4 HEUIVLA

5 DETIRRF

6 TELAASA

7 IIBRUOT

8 EOFIOMY

9 OEAVOTE

10 EFENONC

11 UTDLFFF

12 DRFRDRX

13 HRONAAR

14 THYRONT

15 SNCWNFG

16 OEAEAME

17 NAPTJNT

18 STDUIDA

第 12 行和第 15 行仅由辅音组成。由于英语文本中几乎不可能连续有七个辅音字母,我们得出结论,当前的方向可能是错的。现在,我们尝试九个字母的行,再次从上到下按列排列:

1 ISTBRTATF

2 LORFIUONA

3 HNRAITNFT

4 HSHEACARY

5 DONDRUJAE

6 TOEFIVINC

7 IEAOVRUFF

8 EETYNAPMX

9 OENCLUONR

10 EENAROLDT

11 UIVPNORMG

12 DOUDROSAE

13 HETTWFOST

14 TFLREDMAA

看起来更好一些。每行的元音数是合理的。我们会把九个字母的变体作为一个有前景的候选保持在心里。

下一个候选是十四个字母版本:

1 IFOFNETNTOUNMC

2 LUOTNDRLCFPFAF

3 HDERVFRRUDORSX

4 HHERUOINVALAAR

5 DTEHTYIRRORNFT

6 TSENLCAWANSFAG

7 IOIEBAREUAOMTE

8 ENOAFPITOJMNYT

9 OSETADVUOITDEA

第 7 行中的十个元音虽然不不可能,但还是相当不太可能。所以,这个猜测并不是一个好的初步选择。以下是最后一个候选,十八个字母每行:

1 IESETTBYRNTAAPTMFX

2 LOOERNFCILUUOONNAR

3 HENERNAAIRTONLFDTT

4 HUSIHVEPANCOARRMYO

5 DDOONUDDRRUOJSAAEE

6 THOEETFTIWVFIONSCT

7 OTEFALORVERDUMFAFA

这个也看起来不错。

我们现在有两个不错的候选(九个和十八个字母的行),一个不太可能的候选(十四个字母的行),以及一个极不可能的候选(七个字母的行)。我们将继续尝试这两个较好的候选,通过应用一种叫做多重重排法的技术。这种方法的步骤是:通过重排一个块的列,直到某一行出现一个有意义的单词。然后,我们检查其他重新排列的行,看看它们是否看起来像从英文文本中提取的。如果是这种情况,我们可能在正确的轨道上;如果不是,我们就尝试另一个单词。

首先,我们看一下是否可以通过重新排列十八字母候选行中的字母,拼出有意义的单词。第四行中,我们看到需要的字母来拼出ARMY——这是军事信息中可能出现的一个单词。我们以此为第一步的多重重排尝试。由于第四行中有两个A和两个R,我们可以用四种方式来构造这个单词:

9 14 16 17 13 14 16 17 9 15 16 17 13 15 16 17

R P M F A P M F R T M F A T M F

I O N A O O N A I N N A O N N A

I L D T N L D T I F D T N F D T

A R M Y A R M Y A R M Y A R M Y

R S A E J S A E R A A E J A A E

I O S C I O S C I N S C I N S C

V M A F U M A F V F A F U F A F

第一个可能性非常不太可能,因为第一行中的RPMF和最后一行中的VMAF并不是常见的英语四字组合。第二个块也不太好——看看第一行中的APMF和第五行中的JSAE。出于类似的原因,第三个和第四个组合也不成立。我们已经走到了死胡同。

我们来找找能拼出来的其他单词。我们很容易找到几个单词,其中一些可以通过不同的方式拼成。例如,第六行的字母TTTTOOW可能拼成TWO(数字在军事信息中很常见)。以下是拼写这个单词的八种方式:

1 10 3 6 10 3 8 10 3 18 10 3

I  N  S T  N  S Y  N  S  X N  S

L  L  O N  L  O C  L  O  R L  O

H  R  N N  R  N A  R  N  T R  N

H  N  S V  N  S P  N  S  O N  S

D  R  O U  R  O D  R  O  E R  O

T  W  O T  W  O T  W  O  T W  O

I  E  E L  E  E R  E  E  A E  E

1 10 14 6 10 14 8 10 14 18 10 14

I  N P  T  N P  Y  N P X N P

L  L O  N  L O  C  L O R L O

H  R N  N  R N  A  R N T R N

D  R S  U  R S  D  R S E R S

T  W O  T  W O  T  W O T W O

I  E M  L  E M  R  E M A E M

这些八个猜测导致的其他行字母组合在英语文本中并不常见,如HNRVNRXNP。看来我们又走错了方向。

接下来,我们可以尝试AIR FORCE,它可能出现在第二行。由于这一行有四个O和两个R,所以有八种拼写方式。其他可能性包括第一行的BY TRAIN,第六行的THOSE,以及第七行的OVER。然而,这些组合在其他行中都导致了不太可能的字母组合。

不情愿地,我们得出结论,十八个字符长的候选行可能不正确,因此我们转向九个字母长的块:

1 ISTBRTATF

2 LORFIUONA

3 HNRAITNFT

4 HSHEACARY

5 DONDRUJAE

6 TOEFIVINC

7 IEAOVRUFF

8 EETYNAPMX

9 OENCLUONR

10 EENAROLDT

11 UIVPNORMG

12 DOUDROSAE

13 HETTWFOST

14 TFLREDMAA

在寻找可能的候选词时,我们找到了一些与数字相关的单词。第一行提供了我们可能需要的字母来拼成单词FIRST。第六行和第七行包含了单词FIVE的字母。因为字母V是相对不常见的字母,让我们把第六行的FIVE作为第一个猜测。这一行有两个I,所以有两种拼法:

4 5 6 3 4 7 6 3

B R T T B A T T

F I U R F O U R

A I T R A N T R

E A C H E A C H

D R U N D J U N

F I V E F I V E

O V R A O U R A

Y N A T Y P A T

C L U N C O U N

A R O N A L O N

P N O V P R O V

D R O U D S O U

T W F T T O F T

R E D L R M D L

很明显,第二块看起来非常有希望。除了“FIVE”之外,它还能产生英语单词“FOUR”和“EACH”,并且有一些有前途的单词片段,如“BATT”,“OURA”,“COUN”,“ALON”和“PROV”。只有最后一行“RMDL”不像英语单词,但这可能是因为它是一个缩写。让我们假设这个猜测是正确的。

我们该如何继续?因为我们认为我们已经知道了第 4、7、6 和 3 列,所以最好检查其余五列(1、2、5、8 和 9)中的哪一列在我们选择的块前放置最合适。共有五种选择:

1 4 7 6 3 2 4 7 6 3 5 4 7 6 3 8 4 7 6 3 9 4 7 6 3

I B A T T S B A T T R B A T T T B A T T

L F O U R O F O U R I F O U R N F O U R A F O U R

H A N T R N A N T R I A N T R F A N T R T A N T R

H E A C H S E A C H A E A C H R E A C H Y E A C H

D D J U N O D J U N R D J U N A D J U N E D J U N

T F I V E O F I V E I F I V E N F I V E C F I V E

I O U R A E O U R A V O U R A F O U R A F O U R A

E Y P A T E Y P A T N Y P A T M Y P A T X Y P A T

O C O U N E C O U N L C O U N N C O U N R C O U N

E A L O N E A L O N R A L O N D A L O N T A L O N

U P R O V I P R O V N P R O V M P R O V G P R O V

D D S O U O D S O U R D S O U A D S O U E D S O U

H T O F T E T O F T W T O F T S T O F T T T O F T

T R M D L F R M D L E R M D L A R M D L A R M D L

第四个选项,84763,产生了最佳结果:REACH,NFOUR 和 MYPAT。其他大部分五个字母的组合可以轻松地想象为来源于英语文本。其余的列(1,2,5 和 9)现在也可以以类似的方式轻松添加。我们会在现有的块之前或之后检查每一项的放置,以确定最合理的排列方式。最后,我们得到如下结果:

FIRSTBATT

ALIONFOUR

THINFANTR

YHASREACH

EDROADJUN

CTIONFIVE

FIVEFOURA

XENEMYPAT

ROLENCOUN

TEREDALON

GUNIMPROV

EDROADSOU

THWESTOFT

ATEFARMDL

这个明文可以按行读取。X 被用作句号:

第一营第四步兵已经到达路口五五四 A。敌军巡逻队在塔特农场西南的未改良道路上遭遇。

我们之前看到的那个辅音四字组合 RMDL,正是单词 FARM 的结尾。我们不确定剩下的字母 DL 可能代表什么,也许是一个签名或填充字母,用来达到特定的消息长度?

如今变得越来越明显,多重变位是一种非确定性方法,这意味着可以得出多个解答候选。因此,必须小心、富有创造力并通过试错法来完成。然而,有一些技巧可以简化破译过程:

  1. 字母 Q 对于多个变位(anagramming)非常有用,因为它通常后面跟着一个 U

  2. 字母 JVZ 几乎总是后面跟着元音。

  3. 字母 AOU 通常后面跟着辅音。

  4. 字母 H 通常前面是辅音,后面跟着元音。

如果你想了解更多关于多重变位的内容,我们推荐海伦·富歇·盖恩斯的经典 1939 年著作《密码分析》Cryptanalysis。^(8)

成功故事

唐纳德·希尔的日记

唐纳德·希尔(约 1915–1995)是二战期间的英国军事飞行员。他驻扎在香港,被日本军队俘虏并送往战俘营。在囚禁四年后,他被释放。即使在囚禁之前,希尔也一直保留着日记。但由于英国士兵不允许保留私人笔记,他用数字代替字母,并将日记伪装成一本乘法表,标题为拉塞尔的数学表。这看起来并不令人怀疑,因为在口袋计算器发明之前,乘法表是非常常见的。希尔在囚禁期间继续写他的日记。

返回英国后,希尔与未婚妻结婚,并再也没有谈论过他的日记或其中的内容。直到 1995 年希尔去世,他的妻子才开始调查他留下的这本小册子中的奇怪数字序列。她请来萨里大学的数学教授菲利普·阿斯顿分析这些数字。阿斯顿成功地推测出了这些数字的含义,并发表了一篇关于解密日记的论文。^(9) 唐纳德·希尔的故事也在安德罗·林克拉特的 2001 年著作《爱的密码》中讲述。^(10)

当阿斯顿第一次检查希尔所谓的数学表时,他看到大多数页面上填满了四位数字的组合(见图 9-5)。这些数字据称是乘法结果,但结果与实际的乘法运算不符。阿斯顿得出结论,这些数字的真正用途是用来编码一段文本。

图 9-5:战俘唐纳德·希尔将他的日记伪装成一本数学表。此外,他还使用了置换密码。

解读这些数字的最明显方法是,每四位数字组编码了两个字母。(换句话说,每一对数字代表一个字母。)当阿斯顿看到几乎所有的数字对都代表介于十到三十五之间的数字时,他确定最明显的编码方式是A = 10B = 11C = 12D = 13,等等。阿斯顿根据这种编码进行了频率分析,发现字母频率几乎完全符合英语语言的字母频率。然而,他得到的字母序列并没有意义。因此,他假设希尔除了使用替换密码外,还使用了置换密码。

更仔细地观察日记中的数字时,阿斯顿注意到偶尔会出现一个由四个零(0000)组成的组合。这与编码不符。阿斯顿猜测这些零块是分隔符。事实证明,每两个分隔符之间恰好有 561 个四位数字组(1,122 个字母)。这使得希尔可能对每 1,122 个字母应用了置换密码。

通过排列 1,122 个字母成一个矩形是非常容易的,因为数字 1,122 有很多因子。这表明 Hill 可能使用了一个完整的列转置密码,矩形的大小可能是 66 × 17、11 × 102 或 33 × 34。尽管如此,Aston 并不需要很长时间就能找到最合适的猜测,因为在日记的第一页上写着一个右箭头,旁边是数字340,还有一个下箭头,旁边是数字330。Aston 认为这些数字中的零是为了迷惑读者,然后他将其中一个 1,122 字母的单位排列成一个包含 33 列 34 行的表格。将文本按行写入表格中,快速生成了列中的有意义单词。遗憾的是,Aston 的论文中没有描述他到底看到了什么,但这个 33 × 34 的表格可能是这样的:

DMSTIINSKDSEATALDSGMTOOARNRRBUENDE

IBABLAWTBAARMRLEETHEOENPTIEESTAOOF

WEFLMMESYMBSEALTTWTIASEPWSTTANRTAT

AREAADDTTALCRTWEHEENSUPEEIAHMOAUNR

KSTZCIAHHGAOTEELEARDHPLANMREOCNNYE

EEYIHSSEEEZMCDVYBRSIETARTMYINAOSTP

TSANITHBFBEEAFEBLESALNNHYIRRGSMCHR

HCNGNUDOTOAONIGUATWNTSEEMNILSUIAIA

EODAEROMGTNVCRORZOOTEMIATENETANRNY

ORBNSBWBHHOELETNELORRONDNNGWTLORGI

TTYDAENETWTRIIWETDPOTKTIUTSIATUEEN

HEASROTREAHAPNHDSTDONEANTHUSEISDXG

EDMIEEOSRLEGPTIWTHOPTACGEEPGRERWCT

RBINBAFPSRRAEOCTOAWSHNTOSLTUUSOEEH

OYRKURLATUBIROHTOTNGEDWUOLONITAHPA

FOAFRLISHSANIUIHFWOETITRFTSTNOROTT

FVCINYGSEADBNRSTIENTRHAWCHAHSPOPTT

IELNTAHOBRLOTPPWEAUPEETAOEYEOEFEOH

CREAOSTVEEYMHLRORRSAXTTYNRTRNRPAME

ETNLUTSEEGDBEAERCEANCWETCEHEESLNAB

RHOLTHJRSOATANCEEANITOMHEGATAOADNO

SIOYIEUHTNMWFETDATDCTWPENOTSINNWOM

ORNTNCSEEEAGTSOHNWPKEATRTEWARNEEUB

VTEHCOTAWOGTEWUODAOYMLTERSAMCESTRS

EYIELLLDINERHRSTSRUAEROSAMRARLANDW

RFSYUONBTEDENGLHHWNNNUPNTYWDAENSEO

BIHMDNTUHBLDOTIEETADTSUOESTRFIDPFN

RGIATIITBEEOOVTATICRTATTDITUTGNEET

EHTKNAMTOEACNETVSHOUHROTAEHSLHICNE

ATAEGLEHMSVKBTLYCJNSEEUMTEJHETNTCX

KEFOTSTEBTISOHEBOACHYLTETPAFFCETEP

FRTFHEOFSENAMESOMPETFETTAAPOTIBHPL

ASEFECHIGIGABMOMPANNIFHOCNARBVOEOO

第一列从上到下包含了信息 I WAKE THE OTHER OFFICERS。第二列 MBERSESCORTEDBYOVE 看起来并不直接跟随第一列,但显然它是英文的一个片段。很明显,列的顺序需要改变。Donald Hill 是否用了一个关键词进行这种转置呢?同样,Aston 并不需要很长时间就找到了答案。在日记的封面上,他发现了 Hill 和他的未婚妻的全名,这些名字一共包含了 34 个字母:

DONALD SAMUEL HILL PAMELA SEELY KIRRAGE

按字母顺序排列,这 34 个字母读作:

AAAAADDEEEEEGHIIKLLLLLLMMNOPRRSSUY

为了解密日记,Aston 在表格的第一行写下了这些字母:

AAAAADDEEEEEGHIIKLLLLLLMMNOPRRSSUY

----------------------------------

DMSTIINSKDSEATALDSGMTOOARNRRBUENDE

IBABLAWTBAARMRLEETHEOENPTIEESTAOOF

. . .

然后他重新排列了列,使得关键词再次出现:

DONALDSAMUELHILLPAMELASEELYKIRRAGE

----------------------------------

IRNDSNEMADSGTAMTRSRKOTNDSOEDLBUIAE

AETITWABPOTHRLEOEATBEBOAANFEESTLMR

MTSWWEREPASTALIATFWYSLTMBEITTANMES

DATAEDARENTETWNSHEETUAUALPRHEMOARC

IRMKAANSAYHREEDHETNHPZNGALEELOCCIO

SYMERSOERTESDVIETYTEIISEZAPBYNAHCM

TRITEHMSHHBSFEALRAYFNNCBENRLBGSIAE

UINHTDICEIOWIGNTLNMISGAOAEAAUSUNNO

RNEEOONOANMOROTEEDIGMARTNIYZRTAECV

BGNOLWORDGBOETRRWBNHONRHONIENTLSLE

ESTTDNUTIEEPIWOIIYUTKDEWTTNIEHTAIR

DUHHTTSENXRDNHONSATEESDAHAGSDEIRPA

EPEBHORDGCSOTIPTGMERAIWLECTTWREEPG

ATLRAFOBOEPWOCSHUISSNNERRTHOIUSBEA

ROLOTLAYUPANOHGENROTDKHUBWAOTITURI

LSTFWIRORTSOUIEITAFHTFOSAETFHNORIN

YAHFEGOVWTSNRSTRHCCEHIPADATITSPNNB

AYETAHFEAOOUPPPEELOBENERLTHEWOETTO

STRCRTPRYMVSLRAXRENETAAEYTERONROHM

THEEESLTTAEAAENCENCEWLNGDEBCRESUEB

HAGRAJAHHNRNNCIIIOESOLDOAMOEEAOTAI

ETOSTUNIEOHDEICTSONTWYWNMPMADINIFN

CWEOWSERRUEPSOKEANTEATEEATBNHRNNTG

OASVATSTERAOWUYMMERWLHIOGTSDOCECET

LRMERIAYSDDUESAEAIAIRENNEOWSTRLLRH

OWYRWNNFNEBRGLNNDSTTUYSEDPOHHAEUNE

NISBITDIOFUAITDTRHEHSMPBLUNEEFIDOD

ITLRTINGTETCVTRTUIDBAAEEETTIATGIOO

AHEEHMIHINTOETUHSTAORKCEAOESVLHNNC

LJEAJENTMCHNTLSEHATMEETSVUXCYETGBK

SAPKATEHEEECEEHYFFTBLOTTITPOBFCTOS

EPAFPOBRTPFEESIFOTASEFHENTLMOTIHMA

CANAAHOSOOINMONTRECGFFEIGHOPMBVEBN

现在,解码完成了。按列读取,下面是明文内容,这是一篇写于 1941 年 12 月 8 日的日记:

我被吵醒了,因为殖民地秘书打电话来说与日本的战争迫在眉睫。天啊,睡眠就这样没了,我把其他官员叫醒。早餐时我们得知我们和日本开战了。我们急忙跑向飞机场,正好听到飞机的恐怖轰鸣声,九架轰炸机和三十多架战斗机正飞向我们。没有时间做任何事,除了站好防线。轰炸机飞过头顶,但战斗机突然俯冲下来,集中火力攻击我们的飞机。我们尽力反击,尽管我们的装备十分简陋。部分印度部队慌乱地冲进了掩体,激动之下开火了他们的路易斯机枪。大家纷纷抢着躲避,幸运的是没有人受伤。经过 20 分钟的战斗后,Beeste 轰炸机被击落,两个 Walrus 水上飞机着火并沉没。最终它们撤退了,希望它们也没什么损伤,我们开始检查损失。两个 Walrus 不见了,一架 Beeste 着火,另一架严重受损,只剩下一架完好无损的飞机。我们尽力扑灭火灾,祈祷炸弹不会爆炸。火势太猛,飞机被完全烧毁,废墟中有两个炙热的重型炸弹。剩下了一架飞机,但没有人员伤亡。包括美国水上飞机在内的八架民用飞机被烧毁。下午,轰炸机再次飞来,炸弹投向码头等。

其余的日记可以在阿斯顿 1997 年的论文和安德罗·林克莱特 2001 年出版的《爱的密码》一书中找到。

巴布罗·瓦贝尔斯基间谍案件

在他 1931 年的书《美国黑色密码室》中,赫伯特·雅尔德利(1889–1958)讨论了美国的秘密密码学能力,这本书引起了轰动。雅尔德利在书中描述了一种德国的置换密码。^(11) 据雅尔德利回忆,1918 年 2 月 10 日,在第一次世界大战期间,美国特工在墨西哥边境逮捕了一名自称巴布罗·瓦贝尔斯基的男子。调查人员怀疑,这名被拘留者实际上是名为洛塔尔·维茨克的德国间谍。(12), ^(13) 在嫌疑人外套的左袖里,发现了以下加密信息:^(14)

SEOFNATUPK ASIHEIHBBN UERSDAUSNN

LRSEGGIESN NKLEZNSIMN EHNESHMPPB

ASUEASRIHT HTEURMVNSM EAINCOUASI

INSNRNVEGD ESNBTNNRCN DTDRZBEMUK

KOLSELZDNN AUEBFKBPSA TASECISDGT

IHUKTNAEIE TIEBAEUERA THNOIEAEEN

HSDAEAIAKN ETHNNNEECD CKDKONESDU

ESZADEHPEA BBILSESOOE ETNOUZKDML

NEUIIURMRN ZWHNEEGVCR EODHICSIAC

NIUSNRDNSO DRGSURRIEC EGRCSUASSP

EATGRSHEHO ETRUSEELCA UMTPAATLEE

CICXRNPRGA AWSUTEMAIR NASNUTEDEA

ERRREOHEIM EAHKTMUHDT COKDTGCEIO

EEFIGHIHRE LITFIUEUNL EELSERUNMA

ZNAI

赫伯特·雅尔德利受命破译这一加密信息。他和他的团队进行了频率分析和其他一些统计测试。测试结果表明,字母E是最常见的字母,其次是N,而QXY则完全没有出现。这些特点典型地反映了德语的特点(见附录 B),这表明作者可能使用了置换密码。

雅尔德利知道如何利用常见的二字组合(字母对)来破解这种加密。在德语中,字母C尤其有帮助,因为它通常出现在H之前,有时也会出现在K之前,且很少出现在其他字母前面。因此,雅尔德利在文本中标记了所有的C,然后寻找H。接着,他计算了每个CH之间的距离。结果显示,108 个字母的距离非常突出,经常出现。当雅尔德利将信息以 108 个字母为一行进行转录时,他得到了以下字母序列:

SEOFNATUPK ASIHEIHBBN UERSDAUSNN LRSEGGIESN NKLEZNSIMN . . .

CNDTDRZBEM UKKOLSELZD NNAUEBFKBP SATASECISD GTIHUKTNAE . . .

HPEABBILSE SOOEETNOUZ KDMLNEUIIU RMRNZWHNEE GVCREODHIC . . .

AATLEECICX RNPRGAAWSU TEMAIRNASN UTEDEAERRR EOHEIMEAHK . . .

从上到下阅读,几乎每一列都产生了一个典型的德语四字序列:第一列是SCHA,第十列是KMEX,第二十列包含NDZU。接下来,雅德利和他的团队将这些列按有意义的顺序组织起来,结果相当简单。例如,KMEX后跟IKOP组成了单词MEXIKO(德语中的MEXICO)。最终,雅德利成功地读取到了以下明文:

AN DIE KAISERLICHEN KONSULARBEHOERDEN IN DER REPUBLIK MEXIKO PUNKT STRENG GEHEIM AUSRUFUNGSZEICHEN DER INHABER DIESES IST EIN REICHSANGEHOERIGER DER UNTER DEM NAMEN PABLO WABERSKI ALS RUSSE REIST PUNKT ER IST DEUTSCHER GEHEIMAGENT PUNKT ABSATZ ICH BITTE IHM AUF ANSUCHEN SCHUTZ UND BEISTAND ZU GEWAEHREN KOMMA IHM AUCH AUF VERLANGEN BIS ZU EINTAUSEND PESOS ORO NACIONAL VORZUSCHIESSEN UND SEINE CODETELEGRAMME AN DIESE GESANDTSCHAFT ALS KONSULARAMTLICHE DEPESCHEN ABZUSENDEN PUNKT

VON ECKHARDT

这是翻译:

致墨西哥共和国的帝国领事当局。最高机密!此[纸张]的所有者是德国帝国成员,他以俄罗斯人帕布洛·瓦贝尔斯基的名字旅行。他是德国的秘密特工。我恳请您根据要求为他提供保护和支持,按要求提供最高 1000 比索的 Oro Nacional,并将他的加密电报作为外交函件送往此领事馆。

Von Eckhardt

这封信证明了嫌疑人帕布洛·瓦贝尔斯基实际上是德国间谍。他在 1918 年被判死刑。战争结束后,当德美关系改善时,他被特赦,并且他的指控最终在 1923 年被撤销。

挑战

兰佩杜萨的信息

唐纳德·麦考马克在 1980 年出版的书《加密中的爱》是一本关于恋人使用加密技术的精彩概述。^(15) 它涵盖了数百年的加密情书、日记、报纸广告以及其他由浪漫情侣创造的密码文本,旨在保持他们的通讯私密。在其中一章《战争中的爱》中,麦考马克报道了一个居住在地中海小岛兰佩杜萨的女性,在 1943 年美国军队轰炸该岛时的故事。^(16) 这位女性在一块白布上用粗体字画下了以下信息,并将其放在海滩上让入侵者看到:

TSURT EM, SYOB. I NEEUQ FO ASUDEPMAL

解读这个密码比理解它的意义要容易得多。那位女性从未被确认身份,且此信息的目的尚不明确。

弗里德曼夫妇的情书

威廉和伊丽莎白·弗里德曼(分别于 1891–1962 和 1892–1980 去世)是破解密码的黄金搭档。两人都曾在军事、警察以及其他机构担任密码分析师,拥有长时间的职业生涯。2017 年,美国作家杰森·法贡写了一本关于伊丽莎白·弗里德曼的迷人书籍,内容不仅涵盖了这对夫妇的密码破解工作,还讲述了他们的追求与婚姻。^(17)(近年来,关于伊丽莎白的传记书籍层出不穷;见 第十七章。(18), ^(19))

威廉和伊丽莎白据称对密码学如此热衷,以至于他们甚至在私人生活中使用加密技术。图 9-6 展示了威廉大约在 1917 年写给伊丽莎白的一封情书,以及伊丽莎白回寄给他的另一封信。这两封信都使用了简单的换位密码加密。威廉的明文是英语,而伊丽莎白的则是法语。你能解开这两组密码吗?

图 9-6:威廉·弗里德曼(签名“Biwy”)大约在 1917 年发给妻子伊丽莎白的消息,以及伊丽莎白回寄给他的另一条消息(签名“Elsbeth”)。两者都使用了简单的换位加密。

一则加密的“痛苦”广告

我们已经提到过 《痛苦专栏的密码与密码学》,这是让·帕尔默 2005 年出版的一本书,书中列出了超过一千个加密的报纸广告。这些广告中有一些(但并不很多)是用换位密码加密的。以下广告曾于 1882 年发布在英国的《晚间标准报》上:^(20)

CEM.—我 e g c n e h d n h a o a s s b i s e r c g d h l i h u s a c c b k h e i e 。 1882 年 7 月 31 日,星期一

CEM.—钥匙 11. – L k e o i s v s t e s o e e m l d y o d b v e n s e d t p l i a a n a e g l m s l y h b r m n e b e m r s e a o u t f W e y r w o i h o a e u v n l e y e. 1882 年 8 月 5 日,星期六

第一条信息是德语,第二条是英语。你能解开它们吗?

雅德利的第十一组密码

赫伯特·雅德利 1932 年的《密码学》第十一章^(21)描述了一条加密信息,信息是通过墨西哥的一个无线电台发送给一名德国间谍,在第一次世界大战期间传送到美国。这个故事,包括信息内容,属于虚构,但破解加密(完全列换位密码)仍然很有趣:

TSKGL AATYI LTLPA SAHLM DPLGI ENEAI WTUEN N

提示:数一数!

埃德加·爱伦·坡的第一次挑战

1841 年,埃德加·爱伦·坡发布了两个据称由 W·B·泰勒创建的密码图。第二个密码图及其背景故事详见第六章。第一个消息在 1991 年被伊利诺伊大学芝加哥分校的坡专家特伦斯·韦伦解开,尽管他的论文直到 1994 年才出版。与此同时,约翰·霍奇森也于 1993 年独立解密了这个密码。密码原来是一个没有空格的简单替代密码,结合了置换方法。

泰勒的第一个密码图解见图 9-7。

图 9-7:这是埃德加·爱伦·坡 1841 年发布的密码图之一,150 年后才被解开。

可以看出,泰勒使用了非标准字母表。一些密码分析专家认为这是一个没有空格的简单替代密码(Patristocrat),但这一假设并没有产生任何进展。当韦伦研究了泰勒与坡之间的通信时,他发现了一个提示,表明消息中每个单词的字母都被反转了。进一步分析显示,三字母组,†§特别频繁。韦伦猜测它代表EHT,即THE的反转版本,这是英语中最常见的三字母组。

韦伦的猜测被证明是正确的。知道三个字母和密码方法,他能解密消息。你也能做到吗?

一条爱尔兰共和军的信息

由于顶尖的密码破译者吉姆·吉洛格利的帮助,这里是一条 20 世纪 20 年代爱尔兰共和军成员发送的信息,使用了完整的列置换系统加密:

TTSEW UDSEE OOEHS BERTN TCEUG EHYNT CLCER TNMEF KCUFE HDPDE SIDRN EESDT TREDM EIHUS WHRTB DLETI IEERE TAIRF FLABI FOPWV EEROI RTLAC OWNOT ATLAE

提示:计算字母数量。你能找到任何好的因子吗?

第十章:不完全列换位密码

在上一章我们已经介绍了完全列换位密码,现在我们将关注更一般的情况:不完全填充矩形的列换位密码,也称为不完全列换位密码。这种方法的工作原理几乎与第九章中介绍的相同,唯一的区别是行长度不是消息长度的约数。

不完全列换位密码的工作原理

为了解释不完全列换位密码是如何工作的,让我们从以下明文开始,这是一条由爱尔兰共和军(IRA)在 1920 年代加密并发送的原始信息(有关背景信息,请参见第十六章):

ARGUMENTS FOR SUCH MATCHES HELPED BY FACT OF TOUR BEING PRIVATE ENTERPRISE AND FOR PERSONAL GAIN OF PROMOTERS

为了加密这条信息,我们首先根据关键词CMOPENSATION进行换位。IRA 确实使用了这个关键词,包括拼写错误。请注意,矩形的最后一行没有完全填充:

CMOPENSATION

------------

ARGUMENTSFOR

SUCHMATCHESH

ELPEDBYFACTO

FTOURBEINGPR

IVATEENTERPR

ISEANDFORPER

SONALGAINOFP

ROMOTERS

现在我们像在第九章中一样,对列进行排序,使关键词的字母按字母顺序排列:

ACEIMNNOOPST

------------

TAMFRERGOUNS

CSMEUAHCSHTH

FEDCLBOPTEYA

IFRGTBROPUEN

TIERVERAPTNE

OINPSDREEAFR

ISLOOGPNFAAN

SRT OE M OR

如果我们现在按列顺序读取密文,就会得到以下内容:

TCFITOIS ASEFIISR MMDRENLT FECGRPO RULTVSOO EABBEDGE RHORRRP GCPOAENM OSTPPEF UHEUTAAO NTYENFAR SHANERN

这是我们同事 Jim Gillogly 在 1920 年代的 IRA 档案中找到的同一条加密信息:^(1)

即使有合法的解密(由知道密钥的接收者执行),这种类型的密码系统解密时需要的工作量也比完全列换位密码要大。接收者首先需要查看消息的长度(这里是九十二个字母)和关键词的长度(这里是十二个字母)。九十二除以十二等于七,余数为八。因此,接收者需要一个包含七行完整数据和一行八列不完全填充数据的十二列表格,并且还需要一行包含关键词的表头:

C M O P E N S A T I O N
1
2
3
4
5
6
7
8

接下来,接收者按字母顺序将密文逐列填写到表格中,从 A 列开始,因为 A 是在关键字中出现的第一个字母:

C M O P E N S A T I O N
1 T
2 C
3 F
4 I
5 T
6 O
7 I
8 S

接下来的关键字字母按字母顺序是 CEI,因此接收者按此顺序继续(注意 I 列只有七个单元格):

C M O P E N S A T I O N
1 A M T F
2 S M C E
3 E D F C
4 F R I G
5 I E T R
6 I N O P
7 S L I O
8 R T S

然后,接收者将在字母 MNNOOPST 下填入列:

C M O P E N S A T I O N
1 A R G U M E N T S F O R
2 S U C H M A T C H E S H
3 E L P E D B Y F A C T O
4 F T O U R B E I N G P R
5 I V A T E E N T E R P R
6 I S E A N D F O R P E R
7 S O N A L G A I N O F P
8 R O M O T E R S

接收者现在可以逐行阅读明文(ARGUMENTS FOR SUCH MATCHES。。。)。

也有可能进行两次连续的不完全列换位,在第一次换位的结果基础上再次进行换位。这种方法被称为双重列换位密码,在第二次世界大战期间以及随后冷战时期的 1980 年代被广泛使用。被认为是最好的手动加密方法之一,尤其在情报人员中非常受欢迎。不言而喻,双重列换位密码应该使用两个不同的关键词(最好长度不同)。尽管有这样的建议,当然,这一最佳实践并不总是得到遵循。

如何检测不完全列换位密码

如第九章所述,换位密码通常很容易检测。当消息中的字母发生换位时,语言的重合指数或频率分析的特性并不会改变。因此,如果这些值对于密文看起来像某种已知语言——在这种情况下是英语——那么换位密码极有可能是最符合的候选项。

那么,如何确定使用的是哪种换位密码呢?为了简单起见,我们假设已排除其他类型的换位密码(详见第十一章),剩下的选择只有完全列换位或不完全列换位。在这个时候,我们应该检查消息的长度。例如,看看以下这条 1920 年代发出的 IRA 消息(详细内容见第十六章):

它由 119 个字母组成。由于 119 是一个质数,这条消息不可能用完全填充的矩阵加密(除非矩阵只包含一行,长度为 119,这种情况不太可能)。同样,下面这条来自同一时期的 IRA 消息也...

. . . 有四十六个字母。发送者可能使用了一个 23 × 2 的矩阵,但经验表明,IRA 很少选择二十字母的关键词。无论哪种情况,我们都可能在处理不完全列换位密码。

当我们遇到一条包含例如八十个字母的消息时,情况发生了变化。在这种情况下,完全列换位是可能的,但并不一定。遗憾的是,如果消息的长度允许两种情况,我们目前还没有发现任何简单的方法来区分完全列换位和不完全列换位密码。我们能做的就是检查是否有完全列换位的解法有效(如我们在第九章中所描述的)。如果无效,我们可能正在处理不完全列换位密码或其他类型的密码。

如何破解不完全列换位密码

与完全填充矩阵的换位密码相比,带有不完全填充矩阵的换位密码要难破解得多,原因有两个:

  1. 猜测行长度要困难得多,因为它在定义上不是消息长度的约数。

  2. 多重字谜法在这里效果不好,因为列的长度变化且对密码破译者是未知的。

因此,攻击这些换位密码的最佳方法是使用计算机辅助爬山算法(参见第十六章)。

如果你想在没有计算机支持的情况下解决不完全的列换位密码,还是有一些方法可以做到的。例如,我们可以测试不同的行长度和短行中的各种空格位置,以进行多次字谜解法,但这将非常费力。然而,我们确实会在本章稍后描述一个涉及这种技术的成功案例,用于解密Kryptos K3 消息。

一个更有前景的方法是猜测出现在明文中的单词或短语。这一策略需要对明文有所了解,并且需要一些运气,但通常情况下,没有其他选择。

作为示例,我们看一下 1920 年代的另一个 IRA 密码,由 Tom Mahon 和 Jim Gillogly 提供(参见第十六章):

这是一个摘录,省略了开头的数字:

UHTAO EUESI YSOIO OMTOG OSMNY DMHRS OSRAS NOEEO MRYUR TRRRF CNTYR NIRIH IUSNR TNENF UMYOA SRREO TOIME IPEFR TIAOT TRHDT AOTNP TOCOA NMB

频率分析确认我们可能在处理一个换位密码。这一点不足为奇,因为我们的同事 Gillogly 破解的绝大多数 IRA 消息都属于这种类型。该消息包含 113 个字母。由于 113 是一个质数,它不能是完全填充矩形类型的密码。因此,我们假设我们正在处理一个不完全的列换位密码。

为了简化问题,假设我们有一个密码本:明文包含短语DESTROY ANY AMMUNITION(二十个字母)。当然,实际中能够知道连续三个明文单词是一个罕见的情况,但没有这样的密码本,手动破解密码将变得非常困难。

假设密钥少于二十个字母,短语会至少扩展到两行。如果密钥有十五个字母,它可能看起来是这样的:

......DESTROYAN

YAMMUNITION....

在这个例子中,字母对DIETSITORN来自不同的行。这意味着,如果我们的猜测是正确的,字母对DIETSITORN必须出现在密文中。由于我们在实际密文中没有看到所有这些字母对,我们可以得出结论,我们假定的密钥长度是错误的。

现在让我们以系统化的方式寻找其他可能性。下表列出了密文中以我们密码本的前四个字母开头的字母对:

字母 以该字母开头的密文字母对 字母对在短语中的距离
D DM 11, 12
DT 3
E EE
EI 14, 16
EF
EN 7, 13, 18
EO 4
ES 1
EU 12
S SI 14, 16
SM 9, 10
SN 6, 12, 17
SO 16
SR 2
T TA 4, 7
TI 1, 12, 14
TN 3, 5, 11, 16
TO 2, 15
TR 1
TT 13
TY 3, 6

如图所示,每个字母至少出现过一次间距为十二的情况。因此我们可以得出结论,我们正在寻找的关键词由十二个字母组成,并且我们可以设置以下(空的)十二列换位表:

? ? ? ? ? ? ? ? ? ? ? ?
1
2
3
4
5
6
7
8
9
10

与十二间距的字母对是 DMEUSNTI。如果我们将密码本按如下方式写入表格,我们就能得到匹配:

? D E S T R O Y A N Y A
? M M U N I T I O N

字母对 DM 仅在密文中出现一次,后面跟着一个 H。同样,EU(后跟 E)、SN(后跟 R)、TI(后跟 A)、YO(后跟 A)和 AN(后跟 M)也是如此。字母对 RTOI 出现多次。现在我们可以在表格片段中添加第三行:

? D E S T R O Y A N Y A
? M M U N I T I O N
? H E R A I/N/R O/M A M

现在,我们尝试在已有的三行表格上方和下方添加更多行。当然,我们无法确定这些行是否真的存在;我们可能已经到达了表格的底部或顶部。让我们尝试在表格片段的上方添加一行:

? Y O U R F/N/U S/T M O
? D E S T R O Y A N Y A
? M M U N I T I O N
? H E R A I/N/R O/M A M

新的一行包含了单词 YOUR。这很有道理,因此我们可以假设这一行确实存在。接下来,看看第六列和第七列的第一行和最后一行。哪个选项(F/N/US/TI/N/R,或 O/M)是正确的?第一行中的 YOURFSMO 是没有意义的。因为 ST 是辅音,所以很可能 U(在三个选项中唯一的元音)是正确的。

这给我们提供了两个组合的选择:YOURUSMO(第 1 行)/ HERAROAM(第 4 行)和 YOURUTMO(第 1 行)/ HERARMAM(第 4 行)。后者更有可能,因为可以从中推导出单词 UTMOSTARMAMENT。以下是我们表格的新版本:

? Y O U R U T M O
? D E S T R O Y A N Y A
? M M U N I T I O N
? H E R A R M A M

现在,我们以类似的方式添加更多行:

? O U R I O R E P
? S H I P M E N T
? M T H E R E F O
? N A I F Y O U
? Y O U R U T M O
? D E S T R O Y A N Y A
? M M U N I T I O N
? H E R A R M A M

由于字符串 UHTAO(位于第三列)出现在密文的开头,我们知道在 OURIO 上方不会有行……现在我们已经到达表格的顶部,其余部分可以轻松推导出来:

? ? ? ? ? ? ? ? ? ? ? ?
1 Y O U R I O R E P O R T
2 S S H I P M E N T S F R
3 O M T H E R E F O R C H
4 I N A I F Y O U C A N D
5 O Y O U R U T M O S T T
6 O D E S T R O Y A N Y A
7 M M U N I T I O N O R O
8 T H E R A R M A M E N T
9 O R S T O R E S B E I N
10 G S I N T

这是明文:

YOURIOREPORT

SSHIPMENTSFR

OMTHEREFORCH

INAIFYOUCAND

OYOURUTMOSTT

ODESTROYANYA

MMUNITIONORO

THERARMAMENT

ORSTORESBEIN

GSINT

正如你可能注意到的,我们已经在不重构关键词的情况下破译了这个加密(表格的标题行仅包含问号)。通常,破译者并不特别关心获取关键词,只要他们能够发现明文。

在这种情况下,甚至无法确定地恢复出关键词。我们所知道的是,关键词有十二个字母,并且如果按字母顺序排列这些字母,我们会得到某种置换。使用计算机程序,Gillogly 搜索了具有所需特性的英语单词。他找到的唯一合理候选词是CHAMPIONSHIP。很可能这就是 IRA 使用的关键词。这为我们提供了完整的置换表:

C H A M P I O N S H I P
1 Y O U R I O R E P O R T
2 S S H I P M E N T S F R
3 O M T H E R E F O R C H
4 I N A I F Y O U C A N D
5 O Y O U R U T M O S T T
6 O D E S T R O Y A N Y A
7 M M U N I T I O N O R O
8 T H E R A R M A M E N T
9 O R S T O R E S B E I N
10 G S I N T

成功的故事

Kryptos K3

早期章节讨论了Kryptos雕塑的部分内容(见附录 A)。在本节中,我们重点讨论Kryptos信息的第三部分,被其爱好者称为 K3。这段 336 个字母的密码被包括 CIA 员工 David Stein 在内的人于 1998 年解开了。^(2) Stein 并没有使用计算机进行破译工作,而是仅依赖铅笔和纸的方法。

Kryptos上的完整密文由 869 个字符组成,全部为字母及一些问号。Stein 没有意识到Kryptos包含多个加密信息,像大多数破译者一样,他首先从频率计数开始。他的第一次成功是解开了上板上的 K1 和 K2(见第八章)。

当他将目光投向下板的部分时,他注意到它与上板的密文之间存在明显的差异。其他的不同之处包括,位于下板上唯一一个问号前的字母频率与问号后字母的频率不同。(这个问号可以在附录 A 中的Kryptos文本完整转录中看到。)从下板开始并以该问号结束的这段文本,最终被称为 K3。其内容如下:

ENDYAHROHNLSRHEOCPTEOIBIDYSHNAIA

CHTNREYULDSLLSLLNOHSNOSMRWXMNE

TPRNGATIHNRARPESLNNELEBLPIIACAE

WMTWNDITEENRAHCTENEUDRETNHAEOE

TFOLSEDTIWENHAEIOYTEYQHEENCTAYCR

EIFTBRSPAMHHEWENATAMATEGYEERLB

TEEFOASFIOTUETUAEOTOARMAEERTNRTI

BSEDDNIAAHTTMSTEWPIEROAGRIEWFEB

AECTDDHILCEIHSITEGOEAOSDDRYDLORIT

RKLMLEHAGTDHARDPNEOHMGFMFEUHE

ECDMRIPFEIMEHNLSSTTRTVDOHW

斯坦为 K3 确定了以下频率:

这些字母的频率类似于正常的英语,因此他假设使用了置换密码。他的第一个猜测是他处理的是一个完整的列置换。例如,包含十六列和二十一行的表格似乎是可能的,六列和五十六行也有可能。然而,他的进一步检查并未证实这个假设。

斯坦接下来考虑了一个不完整的列置换,例如一个 17 × 20 的表格,其中底部一行只有十三个字母。正如本章前面提到的,手动破译一个不完整的列置换没有字典是非常困难的——而斯坦没有字典。因此,他决定通过艰难的方式,检查所有看似可能的表格大小。因为密文由 336 个字母组成,理论上有不下于 336 种不同的行长度可以测试。即使去掉了特别短和长的行,仍然至少有 200 个选项。

为了简化问题,斯坦假设置换表有四行。这只是一个猜测,但他必须从某个地方开始。这将表格变体的数量限制为二十八个。对于每个变体,斯坦必须检查许多可能的短三字母列(与四字母列相比)的位置。以下是一个例子,行长度为八十八:

EAHRCODHITYSSOORNRANPNLPAWNEAEUTETSIHOYEAETPHNMGETOIEEAENBDATEEGEBTIHIOSYRKEGANMMHDPMLTD

NHNHPIYNANULLHSWENTRENEICMDEHNDNOFEWAYQNYIBAEAAYREAOTORERSDAMWRRWADLITEDDILHTREGFEMFESRO

DRLETBSACRLLLSMXTGIASEBIATINCERHEODEETHCCFRMWTTELESTUTMRTENHSPOIFEDCSEADLTMADDOFEEREHSTH

YOSOEI HED NN MP HRL L EWTRT EA LTNIEETR SHEAE BFFUAOATI ITTIA ECHE GORORL HPH UCIINTVW

为了检查某一行的长度和三字母列的位置是否正确,斯坦尝试重新排列列直到出现常见的字母组合,如ENASLLYTHE。换句话说,他使用了基于列的多重字谜解法。在上面的示例中,似乎前两列可能是连在一起的,因为EANHDRYO都是常见的英语双字母组合。另一方面,最后两列不太合适,因为字母对VW在英语文本中很少出现,无论是在单个词语中还是在连接两个词语时(一个词的结尾和另一个词的开头)。它可能是“Volkswagen”的缩写,但这个术语出现在Kryptos中似乎不太可能!

如你所见,斯坦因的方法相当繁琐。不仅仅是通过三个或四个二字母组合来检查两个相邻列的可信度非常困难,而且当其中几个三字母列被移动时,这些列会发生显著变化。然而,斯坦因还是排除了 84 和 85 这两个线长(如果有四行的话,它们是最短的)。

接下来,他测试了八十六个字母的行长。这样,最后一行剩下了七十八个字母。这是他可能尝试的许多布局之一:

EYOSOEIHANULLHSXTGHRLLPCANEAEDNOODEEIQNYIRMWTTEBFOTUTMRTEITTIEIECHEIOSYRKLGANMFEMFESRO

NAHRCODNCRLSLSMMPANPNEIEMDEHNRHELTNOTHCCFSHEAEETAFUAOATIDATERAEBTIITEDDIMETREGEEREHSTH

DHNHPIYAHEDLNNRNRTRENBIWTINCEEATSIHYEETRTPHNMGRESIEEAENBDAMWOGWADLHEADLTLHDDOFUCIINTVW

RLETBSITYS OOWENIASELA WTRTUTEFEWA YEAEBAEAAYLE OTORERSNHSP RFEDCSGOROR AHPHMHDPMLTD

在处理这个以及包含八十六个字母的其它组合时,斯坦因意识到这次多重排列的结果更加有希望。二字母组合看起来很合理;然而,他无法确定三字母列的正确位置。

经过一些额外的检查后,斯坦因得出结论,三字母列中的空白字段应该位于顶部行,而不是最低行,这意味着第一行而非最后一行是不完整的。接着,经过无数个小时的手动多重排列(全是在他自己的时间里完成的,而不是作为员工时进行的),斯坦因终于找出了以下组合……

YOSOEIHANU LHSXTGHRLLP ANEAEDNOODE IQNYIRMWTTEB OTUTMRTEITT EIECHEIOSYR LGANMFEMFESR

EAHRCODNCRLLLSMMPANPNEICMDEHNRHELTNETHCCFSHEAEETFFUAOATIDATEIAEBTIITEDDIKETREGEEREHSTO

NHNHPIYAHEDSNNRNRTRENBIETINCEEATSIHOEETRTPHNMGREAIEEAENBDAMWRGWADLHEADLTMHDDOFUCIINTVH

DRLETBSITYSLOOWENIASELAWWTRTUTEFEWAYYEAEBAEAAYLESOTORERSNHSPORFEDCSGORORLAHPHMHDPMLTDW

……可以重新排序为以下有意义的文本:

FLICKERBUTPRESENTLYDETAILSOFTHEROOMWITHINEMERGEDFROMTHEMISTXCANYOUSEEANYTHINGQ

OLEALITTLEIINSERTEDTHECANDLEANDPEEREDINTHEHOTAIRESCAPINGFROMTHECHAMBERCAUSEDTHEFLAMETO

ASREMOVEDWITHTREMBLINGHANDSIMADEATINYBREACHINTHEUPPERLEFTHANDCORNERANDTHENWIDENINGTHEH

SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYW

在寻找列的正确排列时,斯坦因得到了一个帮助,那就是这些列被以规律的方式重新排列。如下图所示,第一列(END)被移到了第 79 位置,第二列(YAHR)移到了第 72,第三列(OHNL)移到了第 65,第四列(SRHE)移到了第 58,第五列(OCPT)移到了第 51,以此类推。每一步,数字都降低了 7:

YOSO ... ... DFR``O``MTHEMI``S``TXCANY``O``USEEAN``Y``THINGQ

EAHRC ... → ... RES``C``APINGF``R``OMTHEC``H``AMBERC``A``USEDTH``E``FLAMETO

NHNHP ... ... EUP``P``ERLEFT``H``ANDCOR``N``ERANDT``H``ENWIDE``N``INGTHEH

DRLET ... ... THA``T``ENCUMB``E``REDTHE``L``OWERPA``R``TOFTHE``D``OORWAYW

最后的解密步骤是将四行文字倒序阅读:

SLOWLY DESPARATLY SLOWLY THE REMAINS OF PASSAGE DEBRIS THAT ENCUMBERED THE LOWER PART OF THE DOORWAY WAS REMOVED WITH TREMBLING HANDS I MADE A TINY BREACH IN THE UPPER LEFT HAND CORNER AND THEN WIDENING THE HOLE A LITTLE I INSERTED THE CANDLE AND PEERED IN THE HOT AIR ESCAPING FROM THE CHAMBER CAUSED THE FLAME TO FLICKER BUT PRESENTLY DETAILS OF THE ROOM WITHIN EMERGED FROM THE MIST X CAN YOU SEE ANYTHING Q

这段文字是霍华德·卡特(Howard Carter)的日记摘录,卡特是发现埃及法老图坦卡蒙墓的考古学家,时间是 1922 年 11 月 26 日。

斯坦因花了数百小时破解这个密文,但他的解决方案仍然需要运气,这与许多破译者的成功经验一样。例如,他猜测的一组字母代表单词THE,最终被证明是THEY。此外,他(相当猜测性地)假设表格中有四行,这一假设也得到了验证。最后,他检查的 28 种可能的行长度中的第三个,恰好是正确的。有时候,运气是勤奋者的伴侣。

安东尼奥·马尔齐的无线电信息

安东尼奥·马尔齐(1924–2007)是二战期间在意大利北部乌迪内与德国占领军作斗争的间谍和游击队员。(3), (4) 每天,马尔齐都会向外部联系人发出一份关于城市当前情况的加密报告,这个人可能是英国情报人员。与通常的防范措施不同,他没有在发送报告后销毁它们——这是一种危险的做法,但也为密码历史学家留下了一笔宝贵的财富!他保存下来的报告集是一本包含 200 页的加密战时日记,其中包含 1944 年至 1945 年间创作的数十条加密条目(图 10-1)。

几十年后,当历史学家开始对马尔齐的报告感兴趣时,马尔齐本人已经无法解密这些报告。他记得自己使用了双列换位密码,并且选择了意大利诗人阿莱亚尔多·阿莱阿尔迪(Aleardo Aleardi,1812–1878)所作诗歌《Un giovinetto pallido e bello》中的关键词。但是每当他尝试以这种方式解密消息时,却无法得到任何有意义的文本。2003 年,马尔齐最终向意大利加密专家菲利波·西纳格拉(Filippo Sinagra)求助。西纳格拉也无法解密这些信息,于是他将其分享给了其他专家。

图 10-1:在第二次世界大战期间,意大利间谍安东尼奥·马尔齐从乌迪内市向外部联系人发送加密报告。七十年后,这些密码被德国密码分析师阿尔敏·克劳斯(Armin Krauß)破解。

2011 年,密码谜题网站 MysteryTwister 将 Antonio Marzi 的无线电消息发布为一个未解的挑战。两年来,该门户网站的许多用户都没有找到解决方案。然后,我们的同事 Armin Krauß(Krauss),当时的得分最高参与者,研究了这个谜题。他从编写一个尝试用双列换位解码的计算机程序开始。通过检查许多配置可能性,他尝试了 Aleardi 诗中出现的单词作为解码的关键词,检查了一到五个单词的所有组合;然而,即使经过 260 万次尝试,程序也只得到了乱码。

突破出现在 Armin 猜测每条信息的第一组和最后一组五个字母的组合可能不属于加密消息,而是提供了一些元信息(也称为 指示符)。当 Armin 忽略这两组时,解密程序突然开始返回有意义的单词。他认出的第一句话是 SITUAZIONE LOCALE TRANQUILLA当地情况安静)。

到那时,Armin 已经能够解密所有无线电消息,尽管他不断遇到令人惊讶的拼写错误。在进一步调查后,他发现了这个原因:元信息包含在第四组中,而不是第一组。当 Armin 相应地调整他的程序,忽略每条消息的第四组和最后一组时,大多数拼写错误消失了。

最后,Armin 想知道每条消息的第四组和最后一组中给出的元信息意味着什么。最明显的解释是,这些组隐藏了 Marzi 从诗中选择的关键词。这个猜测被证明是正确的;我们将在本节稍后解释这个系统的细节。

让我们加密日记中的一段文字作为示例。1945 年 4 月 28 日,Marzi 写下了下面的消息。消息开头的字母 ZC 和结尾的 SL 是无意义的空值。罗马数字用来编码数字;单词 ALT 作为句号:

ZC NR LXXXIV DEL XXVIII ORE DICIOTTO

ALT

QUESTA NOTTE FORZE PARTIGIANE DELLA GARIBALDI ET OSOPPO FRIULI CHE HANNO REALIZZATO ACCORDO COMANDO UNICO TENTERANNO OCCUPAZIONE UDINE

ALT

PREFETTO MEDIAZIONE RESA COMANDO PIAZZA TEDESCO ANCORA ESITANTE ACCETTAZIONE

ALT

OGGI PATRIOTI TENTATO INVANO PRESA CIVIDALE

ALT

TARCENTO ET CISTERNA GIA POSSESSO PATRIOTI

ALT

TEDESCHI AVVIANO NORD QUANTI AUTOMEZZI POSSIBILE MA PARE ORMAI SICUR O BLOCCAGGIO PATRIOTI

ALT

TEDESCHI ORDINATO COPRIFUOCO ORE VENTI PERQUISIZIONI STRADE

FINE

SL

这是一个翻译:

28 号 6 点 第 84 号

今晚,加里波第和奥索波弗留利的游击队,在达成单一指挥协议后,将尝试占领乌迪内。省长正在调解投降。德国指挥部仍在犹豫是否接受。今天,爱国者试图占领奇维达莱,但未果。塔尔琴托和奇斯特尔纳已被爱国者控制。德国人带着尽可能多的车辆向北进发,但由于有爱国者阻挡,局势看似安全。德国人下令实施宵禁,并在晚上 8 点后巡逻街道。结束。

Marzi 总是从诗歌中的以下摘录中选择他的关键词。每个单词都被字母标记,字母 RENATO 被跳过。Renato 是意大利的常见名字,意味着“重生”。

[B]UN [C]GIOVINETTO [D]PALLIDO [F]BELLO [G]COLLA [H]CHIOMA [I]DORO [J]COL [K]VISO [L]GENTIL [M]DA [P]SVENTURATO [Q]TOCCO [S]SPONDA [U]DOPO [V]LUNGO [W]MESTO [X]REMIGAR [Y]DELLA [Z]FUGA

英文翻译如下:“一个苍白的美丽男孩,金色的头发,带着不幸者的友好面庞,经过长时间悲伤的划船逃脱后,触及了岸边。”

Marzi 选择了诗歌中的第二个和第十二个词作为当天的密钥:GIOVINETTOSVENTURATO,生成了关键词 GIOVINETTOSVENTURATO。在诗歌中标识这个关键词的两个字母是 CP,稍后它们会变得很重要。以下是写在关键词下方的明文:

GIOVINETTOSVENTURATO

--------------------

ZCNRLXXXIVDELXXVIIIO

REDICIOTTOALTQUESTAN

OTTEFORZEPARTIGIANED

ELLAGARIBALDIETOSOPP

OFRIULICHEHANNOREALI

ZZATOACCORDOCOMANDOU

NICOTENTERANNOOCCUPA

ZIONEUDINEALTPREFETT

OMEDIAZIONERESACOMAN

DOPIAZZATEDESCOANCOR

AESITANTEACCETTAZION

EALTOGGIPATRIOTITENT

ATOINVANOPRESACIVIDA

LEALTTARCENTOETCISTE

RNAGIAPOSSESSOPATRIO

TIALTTEDESCHIAVVIANO

NORDQUANTIAUTOMEZZIP

OSSIBILEMAPAREORMAIS

ICUROBLOCCAGGIOPATRI

OTIALTTEDESCHIORDINA

TOCOPRIFUOCOOREVENTI

PERQUISIZIONISTRADEF

INESL

接下来,按字母顺序对列进行排序:

AEEGIINNOOORSTTTTUVV

--------------------

IXLZCLXXNVOIDXIXIVRE

TOTRECIQDONSATTUAEIL

NRTOTFOITPDAAZEGEIER

ORIELGAELAPSLIBTPOAD

AINOFULNREIEHCHOLRIA

DCCZZOAOARUNDCOMOATO

UNNNITEOCRACATEOPCON

EDTZIEUPOETFAINRTENL

MZEOMIASENNOEIOAACDR

CZSDOAZCPERNDATOOAIE

INEAETATSANZCTETOAIC

EGIEAOGOLATTTIPTNITR

IASATNVAOPAVRNOCDIIE

SAOLETTEAEEINRCTTCLT

RPSRNIAOASOTEOSPIAGS

AEITITTAASOICDEVNVLH

ZATNOQUORIPZANTMIEDU

ALROSBIESASMPEMOIRIA

TLGICOBIUCIAAOCORPRG

ITHOTLTIIEADSEDONRAC

NIOTOPRRCOIECFUETVOO

DSIPEUISRIFAOIZTERQN

INL E S

通过列式转录信息,Marzi 推导出了以下中间信息:

ITNOADUEMCIEISRAZATINDXORRICNDZZNGAAPEALLTISLTTINCNTESEISOSITRGHOI ZROEOZNZODAEALRTNOIOTPICETLFZIIMOEATENIOSCTOENLCFGUOTEIATONTITQBOL PULXIOALAEUAZAGVTATUIBTRIXQIENOOPSCTOAEOAOEIIRSNDTLRACOEPSLOAAARSU ICREVOPAERRENEAAPESSIACEOIONDPIUATNRNTAEOOPSIAIFISASENCFONZTVITIZM ADEADAALHDAAEDCTRNECAPASCOXTZICCTIIATINRODNEOEFIITEBHOENOTEPOCSETM CDUZXUGTOMORAOTTCTPVMOOOETIAEPLOPTAOONDTINIIRNTEVEIORACECAAIICAVER PRVRRIEAITONDIITILGLDIRAOQSELRDAONLRECRETSHUAGCON

为了得到双列换位,Marzi 现在必须重复之前的步骤。当然,此时使用不同的关键词会是个好主意,但可能由于不明智的选择,Marzi 总是选用与第一次换位时相同的表达式(在本例中为 GIOVINETTOSVENTURATO)。

下面是写在关键词下方的中间信息:

GIOVINETTOSVENTURATO

--------------------

ITNOADUEMCIEISRAZATI

NDXORRICNDZZNGAAPEAL

LTISLTTINCNTESEISOSI

TRGHOIZROEOZNZODAEAL

RTNOIOTPICETLFZIIMOE

ATENIOSCTOENLCFGUOTE

IATONTITQBOLPULXIOAL

AEUAZAGVTATUIBTRIXQI

ENOOPSCTOAEOAOEIIRSN

DTLRACOEPSLOAAARSUIC

REVOPAERRENEAAPESSIA

CEOIONDPIUATNRNTAEOO

PSIAIFISASENCFONZTVI

TIZMADEADAALHDAAEDCT

RNECAPASCOXTZICCTIIA

TINRODNEOEFIITEBHOEN

OTEPOCSETMCDUZXUGTOM

ORAOTTCTPVMOOOETIAEP

LOPTAOONDTINIIRNTEVE

IORACECAAIICAVERPRVR

RIEAITONDIITILGLDIRA

OQSELRDAONLRECRETSHU

AGCON

按字母顺序排列列之后,表格看起来是这样的:

AEEGIINNOOORSTTTTUVV

--------------------

AUIITADSNCEIZIEIMRTA

EINNDRRGXDLPZCNAAAOZ

OTELTLTSICISNINESIST

EZNTROIZGELAOROOADHZ

MTLRTIOFNCEIEPIZOIOT

OSLATIOCEOECECTFTGNN

OIPIANTUTBLIOTQLAXOL

XGIAEZABUAIITVTTQRAU

RCAENPSOOANIETOESIOO

UOADTACALSCILEPAIRRO

SEAREPAAVEASNRRPIEOE

EDNCEONROUOAAPINOTIT

TICPSIFFISIZESAOVNAN

DEHTIADDZATEAADACAML

IAZRNAPIEOATXSCCICCT

ONITIODTNENHFEOEEBRI

TSUOTOCZEMMGCETXOUPD

ACOORTTOAVPIMTPEETOO

EOILOAOIPTETINDRVNTN

RCAIOCEVRIRPIAAEVRAC

IOIRIITLEIADINDGRLAT

SDEOQLRCSNUTLAORHEER

AGN C O

将这个新版本按列逐行转录,Marzi 接着得出了以下密文:

AEOEMOOXRUSETDIOTAERISUITZTSIGCOEDIEANSCOCODINENLLPIAAANCHZIUOIAIE INLTRAIAEDRCPTRTOOLIROATDTRTTAENTEESINITROOIQGARLOIINZPAPOIAAOOTAC ILNDRTIOOTASCANFDPDCTOETRSGSZFCUBOAARFDITZOIVLCNXIGNETUOLVOIZENEAP RESCCDCECOBAASEUSAOEMVTIINILILEELINCAOITANMPERAUZPSAIUIIISSAZETHGI TPDTIZNOEEOTELNAEAXFCMIIILECIRPCTVTERPSASEETNANAMNNOITQTOPRIADCOTP DADORAEOZFLTEAPNOACEXEREGRTASAOTAQSIIOVCIEOEVVRHAAIDIGXRIRETNACBUT NRLEOOSHONOAOROIAMCRPOTAAEOEZTZTNLUOOETNLTIDONCTR

在最后一步,Marzi 需要包含他所使用关键词的标识符。如前所述,GIOVINETTOSVENTURATO分别通过字母CP来表示。Marzi 将这两个字符扩展成五个字母的组CRPEN,并加入了空字符REN。(请记住,字母RENATO在诗歌中并不代表任何词语,因此可以用作无意义的填充物。)然后,他将这些填充物转换为数字,并在此表达式中加上了 44,739。这个数字对所有消息都是相同的。为了执行字母到数字的转换,他使用了以下顺序的字母表:BCDFGHIJKLMPQSUVWXYZRENATO。完整的操作如下:

CRPEN

44739

-----

HTYTH

接下来,Marzi 重复了这个过程,将CP与空字符ATO扩展为五个字母的块ATOCP,然后加上 44739:

ATOCP

44739

-----

CDIGR

最后,Marzi 将消息分成五个字母一组,添加了表示第一个关键词(HTYTH)的块到第四个位置,并在最后加上表示第二个关键词(CDIGR)的块:

AEOEM OOXRU SETDI HTYTH OTAER ISUIT ZTSIG COEDI EANSC OCODI NENLL PIAAA NCHZI UOIAI EINLT RAIAE DRCPT RTOOL IROAT DTRTT AENTE ESINI TROOI QGARL OIINZ PAPOI AAOOT ACILN DRTIO OTASC ANFDP DCTOE TRSGS ZFCUB OAARF DITZO IVLCN XIGNE TUOLV OIZEN EAPRE SCCDC ECOBA ASEUS AOEMV TIINI LILEE LINCA OITAN MPERA UZPSA IUIII SSAZE THGIT PDTIZ NOEEO TELNA EAXFC MIIIL ECIRP CTVTE RPSAS EETNA NAMNN OITQT OPRIA DCOTP DADOR AEOZF LTEAP NOACE XEREG RTASA OTAQS IIOVC IEOEV VRHAA IDIGX RIRET NACBU TNRLE OOSHO NOAOR OIAMC RPOTA AEOEZ TZTNL UOOET NLTID ONCTR CDIGR

这正是 Marzi 在 1945 年 4 月 28 日发送的加密无线电消息。

挑战

又一条 IRA 消息

图 10-2 展示了一条使用不完全列换位加密并由 IRA 在 1920 年代发送的消息。^(5)

图 10-2:使用不完全列换位加密的 IRA 消息

你可以尝试自己解开它。

双重列换位加密重载挑战

我们提到过,双重列换位加密(DCT)是已知最好的手工密码之一。在第十六章中,我们将介绍一个相当困难的 DCT 挑战,这个挑战是我们同事、以色列破译专家 George Lasry 在 2013 年通过爬山算法解决的。成功之后,Arno Wacker、Bernhard Esslinger 和 Klaus 决定创建一个全新的、更困难的谜题。

实际上,他们创建了三个新挑战,命名为 DCT Reloaded 1、2 和 3。第一个谜题是最简单的,而最后一个是最难的。这些和其他 DCT 挑战的详细信息可以在加密谜题网站 MysteryTwister 上找到(mysterytwister.org)。

这里,例如,是 DCT Reloaded 2. 在这个换位中使用的两个关键字都是随机选择的字母字符串,每个字母字符串的长度为二十到二十七个字符:

NWTDSSHAUIASOOTLDEDNLTHOBENHETCWTHERTPSNTMCTIAYEINNIUIYOPLEIRGHMNU TARFONYMLDSERSAELANNLOSAWALTODOCAHUOTOPAREAEEESPDEYATUENINNCNBDPCO FORETSYHAHANTEDERPERCRSGEANNIHYTTEDNGICOIOLABSRONNWLNTALWLVRIBHKTE TECNPSFHACMIGTYODEONMTOIVUAIAEESKKLAROMBAYKOSRNEEHTHSIMSEOUAWLYAWH SWWSSWLCIYCEONUPNEESURSBETDALHDAHLIOAAETONNDOELTHHNHHDCOTUIITEAYTE RRHOENKEUCTIRANECYQNACTMBWAPDIAEXEUTIATAJLITEALFISIEATATAEOTNEESME UDDADOROEGORPELGPVMETHHSDDRMSNDERMSLEOANENHTCHPHSSEASSEDBHVESNUGON IOLELSUCASELSTEIESYATREEELADIEYOEOKAREEELETCOSDHCSAETSTSFRTSELEITD NHBRINSERHRTLNAXYONAMECAIESATAEERIAOTCEENETFARMRTSREAPAYNIRTNITSRA THIWRIPRTDIIRECSWADSOATUTENMVVOAISISONGGWTH

毫无疑问,这个挑战是一个极其困难的任务!

未解密的密码文案

Catokwacopa 广告系列

我们所知的最令人困惑的加密报纸广告系列之一是在 1875 年发布的《伦敦晚报》上。像本书中涵盖的其他报纸广告一样,我们在 Jean Palmer 的 2005 年出版的《痛苦栏目密码与密文》一书中发现了这些广告。^(6) 这个特定的广告系列由两则广告组成。第一则广告在 1875 年 5 月 8 日的报纸上发布:

W. Str 53\. Catokwacopa. Olcabrokorlested. Coomemega. Sesipyyocashostikr. Rep.—Itedconlec mistrl. —Hfsclam 54, 3 caselcluchozamot. 1\. 6\. 9\. Mopredisco. Contoladsemot. Iadfilisat. Qft. Cagap. Balmnopsemsov. Ap. 139.—Hodsam 55, 6\. Iopotonrogfimsecharsenr. Tolshr. Itedjolec. Mistrl.—Ding Declon. Ereflodbr.

十二天后,也就是 5 月 20 日,同一报纸上发布了类似的广告:

W.—Umem 18\. Poayatlgerty. Dpeatcnrftin. Nvtinrdn. Dmlurpinrtrcamur. Etd.—Atndngtnsurs. Otenpu.—Eftdorshpxn. 18\. Ndtsfindseseo. Cotegr Tavlysdinlge. Ngtndusdcndo. Edrstneirs. Ui, Ndted. Iolapstedtioc. A. P. 138.—Yxn. 18\. 18\. Wtubrfftrstendinhofsvmnr. Dily.—Atdwtsurs. Oatvpu.—Y Arati. Rileohmae.—这将会是可理解的,如果与我在本栏发布的 8 号日的通讯一起阅读。

注意,第二则广告的最后一句话没有被加密。如果它是正确的,那么第一则广告可能是解密第二则广告的关键(或反之亦然)。字母频率与普通英语文本一致。这使得我们很可能在处理的是一种换位密码。我们猜测,两个密文需要以某种方式混合(例如,第一则广告的字母 1,第二则广告的字母 1,第一则广告的字母 2,第二则广告的字母 2……)。然而,迄今为止,还没有人找到一个合理的混合规则。读者能够做得更好吗?

第十一章:旋转格子转置密码

不足为奇的是,除了前几章中讲解的两种密码系统:完全和不完全列转置密码之外,还有其他类型的转置密码。以下是几个例子:

  1. 鲁比克魔方加密:Douglas W. Mitchell 提出了一种使用鲁比克魔方的转置密码。^(1) 明文写在魔方的各个面上,一系列的操作形成密钥。随后,从魔方中读取密文。使用得当时,这种加密方式很难破解,尽管并非不可能。^(2)

  2. 填字谜加密:在第二次世界大战期间,德国间谍有时使用填字谜作为转置密码的密钥。^(3) 发信人将信息写入空白格子中,而黑色格子保持为空。之后,收信人按列顺序读取字母。接收者必须用相同的填字谜,并按相反的顺序进行操作。虽然这种方法很巧妙,但我们今天知道,当时敌方的密码分析员已破解了它。

  3. Rasterschlüssel 44:德国军队在第二次世界大战期间也使用了这种转置密码。它基于类似填字谜的矩形形式。^(4) 这个系统主要用于较不重要的消息以及作为 Enigma 的替代品。英国人能够破解这种加密,但解密过程繁琐,通常需要几天时间。由于从这些解密中获得的情报通常不重要,他们最终放弃了破解 Rasterschlüssel 44 密码,认为这样做不值得投入精力。

图 11-1 展示了这三种转置类型。

图 11-1:各种转置类型的示例:(a) 使用鲁比克魔方作为密码装置;(b) 基于填字谜的加密方法(第二次世界大战期间一名特工使用);(c) 德国二战密码 Rasterschlüssel 44 使用的形式

还有许多其他类型的转置密码常在密码学书籍中提到;然而,我们在这里没有包括它们,因为它们通常不会在实际中使用,仅作为密码爱好者的谜题挑战。例如,美国密码谜语协会的竞赛经常包括诸如铁道栅栏密码和路线转置密码等系统。^(5)

除此之外,还有一种转置方法被频繁遇到,值得单独成章讲解:旋转格子加密。

旋转格子加密的工作原理

在图 11-2 中的示例圣诞卡片上,可能是 2009 年一位密码爱好者寄给另一位的,上面有一段由三十六个字母组成的加密文字:TDHOAA PYHPEH UNFYAS MFNROH OLTIII NLMGYT

图 11-2:用旋转格栅加密的圣诞卡

这个铭文的明文是 HAPPY HOLIDAYS FROM THE HUNTINGTON FAMILY。它是用所谓的旋转格栅加密的,这种加密法也被称为弗莱斯纳格栅(Fleissner grille),以 19 世纪加密书作者爱德华·弗莱斯纳·冯·沃斯特罗维茨(Edouard Fleissner von Wostrowitz,1825–1888)命名。

旋转格栅 通常是一个带孔的方形模板,用于四个步骤。在每个步骤中,明文的四分之一会从左到右、从上到下写入孔中。每一步之后,格栅会顺时针旋转九十度。例如,下面是用一个 6 × 6 的格栅加密之前提到的 HAPPY HOLIDAYS . . . 消息的步骤:

当我们在第四步后移除模板时,我们就得到了圣诞卡上的消息:

T D H O A A

P Y H P E H

U N F Y A S

M F N R O H

O L T I I I

N L M G Y T

旋转格栅加密方法是一种换位密码。格栅可以是任何大小,但必须是方形的。我们遇到的大多数旋转格栅都有偶数行和列,因为如果模板使用奇数行,则会有一个“中心”位置,通常保持空白。

格栅越大,安全性越高。

构建旋转格栅时,可以按照图 11-3 中的步骤进行,如下所示:

  1. 从一个矩形矩阵开始,它的大小是最终格栅的四分之一。例如,如果最终格栅是 6 × 6 的,那么它有四个部分,每个部分是 3 × 3 的,就从这些 3 × 3 的部分开始。在这个较小的部分中,有九个位置,随机写上数字 1 到 4,填满这九个位置。(无论你的格栅大小如何,始终使用数字 1 到 4,因为这些数字代表了格栅旋转的四个方向。)

  2. 将较小的矩阵放置在较大格栅的左上角,并将 1 标记复制到较大格栅中。接下来,将较小矩阵移动到格栅的右上方,顺时针旋转九十度,然后在较大格栅中标记 2。将较小矩阵移动到格栅的右下角,再次顺时针旋转九十度,然后标记 3。最后,将较小矩阵移动到格栅的左下角,再次旋转九十度,并标记 4。

  3. 在较大的矩阵中,任何位置有数字的地方都要打孔或切孔。

图 11-3 中构建的格栅就是用来加密圣诞卡的那个。

图 11-3:可以通过填充 1 到 4 的随机数字构建一个方形矩阵,从而构建旋转格栅。得到的格栅会是原来的四倍大。

用此模板加密的消息必须恰好有三十六个字母。如果字母少于这个数量,我们需要添加一些空字符。

如何检测旋转格栅加密

旋转栅栏密码通常容易被识别。如果一条信息是以正方形形式写成的,并且频率分析表明它是一个换位密码,那么很可能你正在处理的是旋转栅栏密码。当然,将这种信息安排成其他形态也是可能的,但经验表明,许多旋转栅栏用户放弃了这一简单的安全措施。图 11-4 中的信息是荷兰密码学家奥古斯特·凯尔霍夫斯(Auguste Kerckhoffs,1835–1903)在其 1883 年出版的《军事密码学》(La Cryptographie Militaire)一书中发布的典型示例。^(6)

图 11-4:19 世纪奥古斯特·凯尔霍夫斯(Auguste Kerckhoffs)创作的旋转栅栏密码

如果一条信息不是以正方形形式写成的,那么信息长度可能是你正在处理旋转栅栏密码的一个指示。一个行长是偶数的旋转栅栏产生的消息长度是偶数平方数(例如,16、36、64 或 100)。如果行长是奇数且中间的正方形为空,则消息长度是奇数平方数减去一(例如,24 或 48)。当然,这个长度也可以通过添加一些空值来改变。但再次强调,根据我们的经验,大多数旋转栅栏用户并没有采取这种额外步骤来增强他们的系统安全性。

如何破解旋转栅栏加密

破解旋转栅栏密码与爬山法密码分析非常契合,这是一种迭代计算机技术,我们将在第十六章中介绍。尽管如此,还是可以手动破解旋转栅栏密码,尽管通常需要一个明文的样本,或者至少需要猜测出一些字母。我们将在图 11-5 中的模拟生日卡片上演示这一策略。

图 11-5:这张生日卡片上的信息(由作者为本书制作)使用了旋转栅栏密码进行加密。

这是信息的抄本:

H L H O D V

T A I A E P

Y B P E T T

I Y L O H T

Y B O L W Y

I E R U T N

这个密码文由 36 个字母组成,排列成一个正方形。分析表明,字母频率与英语语言相似。因此,我们假设这是一个旋转栅栏加密。

我们能猜出一个明文单词吗?考虑到这条信息是一个生日祝福,BIRTHDAY 是一个有前景的候选词。通过字母 B、I、R、T、H、D、A 和 Y 都出现在密码文中,可以确认这一猜测。

每个旋转栅栏信息的固有特性之一是,明文中相邻的两个字母之间的平均距离是四(即它们之间有三个字母),无论网格的大小如何。这是因为栅栏总是有恰好四个不同的位置。

所以,我们的第一步是找到密码中的字母,并记住这个平均字母间隔。如果我们寻找 BIRTHDAY,找到这个词的起始字母很容易,因为消息中只有一个 B。接着向右,我们会在五个单元格后遇到字母 I。接下来的一行中还有字母 R 和 T:

假设我们已经发现了 BIRTHDAY 中的字母 BIRT,现在我们将格栅旋转 180 度,并将其放置在格栅顶部,看看哪些字母是通过孔“看到”的:

我们已识别出的四个方块展示了字母 LOVE——这是一个在生日卡片上有意义的词。接下来,我们要寻找字母 HDAY,我们预计它会跟在 BIRT 后面。由于 BIRT 中的 T 靠近密码图的末尾,我们需要在其开头寻找 HDAY。有四种不同的可能性(由实线方块表示;虚线方块表示当我们将这个拟议的格栅碎片旋转 180 度时得到的字母序列):

我们在旋转格栅时得到的潜在四字母序列有 TWEN、HLIR、TOEN 和 TOEU。所有这些都可能出现在英文文本中。然而,由于我们处理的是生日卡片,TWEN 最为合适,因为 TWENTY 或 TWENTIETH 可能指的是收信人的年龄。这意味着四个选项中的第一个最为可能。现在,我们已经识别出两个四孔格栅碎片。它们可以与一个五孔碎片连接,如图 11-6 所示。

图 11-6:两个可以拼接在一起的格栅碎片

TWEN 中的 N 是最后一行的最后一个字母。如果我们假设下一个字母是 T(如同 TWENTY 或 TWENTIETH),我们需要在格栅的顶部寻找继续的字母。作为辅助工具,我们将五孔格栅碎片旋转九十度。

事实上,这个格栅碎片现在在一个合适的位置指示了字母 T。那么 T 和 BIRT 之间可能是什么字母呢?IETH 这个字母序列是合理的,因为它可以组成 TWENTIETH BIRTHDAY。IETH 中的 I 和 H 的位置很清楚。(请注意,第四行开头的 I 不是正确的字母,因为它后面没有 ETH。)有两个 E,但第一个已经使用了。不过,哪个 T 是正确的还不清楚:

为了确定哪个 T 是正确的,我们再次将格栅碎片旋转 180 度:

很明显,字母序列 BILLY 比 BYLLY 更可能。这意味着第二个 T 是正确的。

我们现在已经找到了格栅上九个孔中八个的位置。对于剩下的一个孔,有四种选择:I、T、Y 和 L:

这里只有 Y 有意义,因为它使我们的前九个明文字母变为 HAPPYTWEN。我们完成了。图 11-7 展示了我们推导出的格栅。

图 11-7:用于加密生日卡的格栅

明文是HAPPY TWENTIETH BIRTHDAY TO YOU LOVE BILLY

成功案例

保罗·博纳沃利亚的转动格栅解决方案

我们的同事保罗·博纳沃利亚是一位关于意大利密码学历史的多产现代作者,也是路易吉·萨科(1883-1970)的孙子。萨科是一位著名的意大利密码学家,在其他成就中,在第一次世界大战期间为意大利军队建立了一个密码办公室,以破译来自奥地利和德国军队的消息。

在他祖父留下的笔记本中,保罗发现了许多德文密文,包括图 11-8 中所示的密文。^(7)他着手解决这条显然未解开的消息。第一行中出现的字母Ö确认给保罗这条消息是德文的。他的眼睛也立即被底部左侧的XY所吸引,因为在德文文本中这两个字母都非常罕见。因此,保罗怀疑这两个字母被用作填充格栅的空白。

图 11-8:保罗·博纳沃利亚在他祖父路易吉·萨科留下的笔记本中找到的转动格栅密码

另外,保罗猜测密码包含单词 SUCHE(搜索)或 SUCHEN(寻找),起始位置在右侧。文本中的四个 S、三个 U、四个 E 和两个 N 中的任何一个都可以形成这些单词。保罗必须检查几十种组合,但经过多次尝试,他找到了以下解决方案:

ES WURDEN DREI PUNKTE GESEHEN ÖTLLICH WEITESRSSUCHEN XY

单词ÖTLLICH 拼写错误,应为ÖSTLICH(东方)。这条消息翻译为:三点已见,继续在东部寻找 XY。

保罗于 2017 年发布了他的解决方案,不久之后,新西兰的密码学专家巴特·温梅克斯使用基于计算机的爬坡法同样破解了这个密码(见第十六章)。

有趣的是,在我们写作过程中,并请这些杰出的密码破译专家帮助审查我们的工作时,托比亚斯·施雷德尔在 2020 年校对本章时发现了一些以前未知的东西!在检查萨科的笔记本页中转动格栅密码时,他注意到了一个数字序列,从 1、37、25、26、38 开始,以及 2。他意识到这是密文的解决方案:密文中的第一个字母(E)在明文中的位置是 1,第二个字母(E)在明文中的位置是 37,第三个字母(N)在明文中的位置是 25,依此类推。

托比亚斯将这些信息发给了保罗,但保罗没有联系起来;这意味着他的祖父已经解开了这个密文,并留下了一个加密的线索!

安德烈·朗吉的转盘格解法

在他那本精彩的 1922 年著作《密码学》中,瑞士密码学家安德烈·朗吉(André Langie,1871–1961)讲述了一个绅士的故事,这个绅士在一家名为北极的酒店住下时收到了一个加密的信息。^(8) 发送者是这位绅士认识的人,他们曾约定使用转盘格加密法。然而,这位酒店中的男子丢失了包含格描述的笔记,因此无法解密消息。于是,他联系了朗吉。

这是该消息的 64 字符英文版本。每本书的翻译版本提供了不同的版本:

AITEGFLYTBOEEHREAUWNANOARRDRTEETHOSHFPETAPOTOYHLRETIHENEMGAOARNT

为了解密这个消息,朗吉将它写成了网格格式,并对 64 个方格进行了编号以便于识别(见图 11-9)。朗吉的注意力立刻被字母 A 和 T(第 1 和第 3 个方格)吸引,因为 AT 是英语中常见的词,并且可能是一个消息的开头。因此,他在描图纸上标记了这两个字母的位置,并将转盘格旋转了 180 度。

图 11-9:安德烈·朗吉在 20 世纪初解开的转盘格密码

描图纸上的标记与字母 R 和 T(第 62 和第 64 个方格)重合。RT 是常见的词尾,显然从最后两行可以轻松提取出单词 HEART,位于第 53、54(或 56)、59(或 61)、62 和 64 个方格中。标记这些并再次翻转描图纸,朗吉发现,在对应的方格——1、3、4(或 6)、9(或 11)和 12 中——出现了字母 ATE(或 F)、T(或 O)和 E。由于这并不令人满意,他放弃了这个组合,尝试了另一个。

接下来,朗吉把注意力转向了第二行,决定标记 THE(第 9、14 和 16 个方格),这是英语中最常见的三字母组合。将描图纸翻转后,标记移动到了第六行的第 49、51 和 56 个方格,对应字母为 RTE——一个有前景的组合。为了寻找前面的元音,朗吉首先注意到了 O(在第 45 个方格)。再往前三个方格(第 42 个方格)是 P。于是,他得到了组合 PORTE,这似乎需要最后的 R,这个字母出现在最后一行的第 62 个方格。

朗吉再次将纸张旋转了 180 度,揭示了 T(3 号格)和 NO(20 号和 23 号),从而得到序列 TTHENO。这些字母中的第一个无疑是某个单词的最后一个字母,而最后两个则是新单词的开头。

下一步是初步开始构建格栅,Langie 通过在字母 PORTER 周围画出格子来进行(42, 45, 49, 51, 56, 和 62)。然后他在这六个字母上做了小标记。接着,他将描图纸旋转 90 度。这时,他标记的六个格子覆盖了字母 IOUSAG(2, 11, 18, 35, 41, 和 58)。他为这些字母标注了不同的符号。

经过进一步旋转,他得到了字母组TTHENO(格子 3, 9, 14, 16, 20, 和 23),他也对这些格子进行了标记:

最后的旋转产生了LAEHEN(格子 7, 24, 30, 47, 54, 和 63),他以另一种方式标示了这些字母:

Langie 现在已经中和了 64 个格子中的 24 个,从而大大缩小了他的研究范围。回到他最初的字母组PORTER,他开始寻找一个可能出现在其前面的词,并倾向于THE(32, 36, 39)。在TE之间有两个H,他实验性地选择了第二个。

标记完这些字母后,Langie 反转描图纸,发现三个对应的字母是RTH(26, 29, 和 33)。这将字母组TTHENO扩展为T THE NORTH,这一结果证明他走在正确的道路上。因此,他用四种颜色标注了四个位置上的对应字母,使得已中和的格子总数达到了 36 个。

随后进展飞速。例如,在仔细检查了“THE NORTH”和其后未标记的字母后,Langie 辨认出 P 和 O,并联想到 POLE。这些字母分别出现在格子 38, 43, 48, 和 50 中。标记了这些字母及其它位置上的对应字母后,他发现只剩下 12 个格子没有被解决。通过一些额外的猜测,他推导出了以下明文:

如果你住在北极酒店,请小心经理和搬运工

卡尔·德·李乌的旋转格栅解法

1993 年,密码学专家卡尔·德·李乌(我们的一位同事)和密码学专家汉斯·范·德·梅尔在阿姆斯特丹的一个档案馆里发现了一条加密消息(图 11-10),这条消息是荷兰总督兼橙公爵威廉五世(1748–1806)留下的。[9] 该密码的形状表明,写信人使用了一个 16×16 的旋转格栅。由于消息的长度超出了格栅的 256 个格子,因此有些格子包含了两个字母。

字母频率表明该明文语言为德语。第三行倒数第二个位置的字母Ü,带有独特的双点,证实了这一怀疑。

图 11-10:18 世纪的旋转格栅密码,由卡尔·德·李乌和汉斯·范·德·梅尔在 20 世纪解密

在 1993 年,使用计算机支持(如爬山算法)破解旋转格栅密码的技术仍处于起步阶段。因此,卡尔和汉斯尝试用手动方法解密,而当模板像这里使用的那么大的时候,这通常是非常困难的。然而,这两人找到了一种出奇简单的方式来解密这个密码。他们利用了一个事实:作者在把字母放入孔洞时非常马虎。最明显的例子出现在第六行,其中字母 E(位于第 8 位)、I(位于第 10 位)和 N(位于第 16 位)写得比其他字母略低,这表明它们都是在某个特定的位置用模板写的。

在第七行,同样适用于 G、E、G 和 A:

在第八行,虽然不太清楚,N、G、E 和 N 字母的位置略低于其他字母。这些字母合起来形成了“EINGEGANGEN”这个德语单词,意思是“已接收”。

反转模板得到了 BIERWELCHESI,这在德语中也有意义(BIER 意味着 啤酒,WELCHES 意味着 哪种)。根据这些观察,卡尔和汉斯能够重建出十一个位孔的位置,从而得到了总共四十四个字母。然后,借助本章前面描述的技术,他们解开了其余的消息。由此得出的格栅可以在图 11-11 中看到。以下是明文内容:

根据收到的询问和信息,法国人已经离开了坎贝尔。然而,根据传闻,其他人很快会取代他们。也许他们害怕英式啤酒,喝了之后会让他们生病。我希望他们能喝到适量的啤酒。——科尼希

它的翻译如下:

根据收到的询问和消息,法国人已离开坎贝尔。不过,按照传闻,其他人将很快取而代之。也许他们害怕英式啤酒,喝了以后会让他们生病。我希望他们能喝到适量的啤酒。——科尼希

图 11-11:卡尔·德·刘和汉斯·范·德·梅尔在解密荷兰总督威廉五世留下的消息时得出的旋转格栅。这个消息写得有些潦草,这使得它更容易被解开。此外,孔洞的规律性对密码破解者也很有帮助。

显然,这篇笔记的作者是在开玩笑,关于英式啤酒——确实是一个有趣的发现,特别是因为他们花时间对这个笑话进行加密!

《Mathias Sandorf》密码谜题

在他那部著名的 1885 年小说《Mathias Sandorf》中,法国作家儒勒·凡尔纳(1828–1905)描述了两个小罪犯,他们发现了一条加密的信息,这条信息挂在一只信鸽的腿上,后来他们找到了一块旋转格栅,并用它解密了这条密码信息(图 11-12)。这条消息内容如下:

IHNALZ ARNURO ODXHNP AEEEIL SPESDR EEDGNC

ZAEMEN TRVREE ESTLEV ENNIOS ERSSUR TOEEDT

RUIOPN MTQSSL EEUART NOUPVG OUITSE ERTUEE

2000 年,德国密码学教授 Klaus Pommerening 发表了一篇文章,解释了如何在不知道格的情况下,密码破译者可以解开消息。^10 Pommerening 描述的密码破译过程太长,无法在我们的书中完全涵盖,因此我们将使用一些捷径。

让我们从 Pommerening 的假设开始,即明文为法语,每行三十六个字母使用一个 6×6 的旋转格来单独加密,并且每行使用相同的格。

对于密码分析师来说,法语中一个好的特点是字母 Q 在短词中相对频繁,比如 QUE、QUOI 和 QUEL,而且和其他许多语言一样,Q 通常后面跟着 U。(词语 CINQ,意为“五”,是唯一的常见例外。)这意味着,在处理法语明文时,寻找 Q 是一个良好的起点。正如我们所见,第三行中第 9 个位置有一个 Q。不幸的是,同一行中有五个 U,这使事情变得更加复杂。

图 11-12:朱尔斯·凡尔纳(Jules Verne)的 1885 年小说《马西亚斯·桑多夫》包含一个用旋转格加密的消息。

Pommerening 知道所有三行使用了同样的格,因此他可以应用多重排列技术(见第九章)来检查最有可能的组合。通过这种方法,在第三行 Q 后面的五个 U 导致第一行和第二行有以下五个选项:

NH NX NE NP NG

VA VT VN VR VE

QU QU QU QU QU

虽然 NH、NX、VT 和 VN 的字母对在法语中很少见,但 NG 和 VE 相当常见。因此,最后一个选项看起来最好,因此 Pommerening 假设这是正确的。由于在法语中,QU 通常后面跟着 E 或 I,他有八种合理的可能性继续:

NGN NGO NGD NGE NGR NGE NGN NGC

VEE VEE VES VES VER VET VED VET

QUI QUE QUE QUI QUE QUE QUE QUE

4、5 和 6 的可能性看起来很有希望。通常,密码破译者需要检查所有三个选项,但为了简化问题,让我们选择第五块(正确的块,这一点很快就会变得清楚)。作为另一个捷径,我们假设根据小说内容,NGR 是单词 HONGRIE 的一部分,法语中意为匈牙利。这一假设得到了支持,因为密码文的第一行也包含字母 H 和 O(甚至每个都有两个),这为 Pommerening 提供了四种可能的排列方式:

HONGR HONGR HONGR HONGR

AEVER AEVER LEVER LEVER

ULQUE UEQUE ALQUE AEQUE

Pommerening 现在选择了第三个块,因为字母序列LEVERALQUE在法语中有意义,而字母组合AE相当罕见。他继续在HONGR后面添加了一个I(记住我们想构造单词HONGRIE),产生了两种可能性:

HONGRI HONGRI

LEVERZ LEVERO

ALQUER ALQUEV

第二种可能性看起来更为合理,因为 ERZ 在法语中并不是一个常见的三字母组合。Pommerening 现在需要在 HONGRI 后添加一个 E,从而得出六种变体:

HONGRIE HONGRIE HONGRIE HONGRIE HONGRIE HONGRIE

LEVERON LEVERON LEVEROI LEVEROS LEVEROT LEVEROO

ALQUEVO ALQUEVU ALQUEVP ALQUEVI ALQUEVA ALQUEVR

他在这里认出了单词 LEVERONT(“站起来”),并且最后一个字母缺失。这意味着最初的两个选项是最有可能的。第一个选项看起来是正确的,因为最后一行中的 VO 可以扩展为 VOUS(“你”)。为了形成这个单词,Pommerening 在第二行中添加了一个 U(省略了 S,因为有多个选择):

HONGRIEX

LEVERONT

ALQUEVOU

X 的使用并不特别合适,但它可能是填充字符。由于单词 LEVERONT 是反身的(完整表达为 SE LEVERONT),Pommerening 现在需要在第二行中 LEVERONT 之前添加一个 E。第二行中的十个 E 已经吸收了两个,但仍有八个选择:

NHONGRIEX LHONGRIEX RHONGRIEX OHONGRIEX

ELEVERONT ELEVERONT ELEVERONT ELEVERONT

IALQUEVOU PALQUEVOU SALQUEVOU EALQUEVOU

NHONGRIEX AHONGRIEX SHONGRIEX DHONGRIEX

ELEVERONT ELEVERONT ELEVERONT ELEVERONT

RALQUEVOU NALQUEVOU OALQUEVOU TALQUEVOU

选项 1、3、5 和 6 看起来最有前景。在真正的破解过程中,必须跟踪所有四条路径以找出正确的路径。然而,这只是一个总结,因此我们只讨论选项 6,这是正确的。为了得到 SE LEVERONT,Pommerening 需要在第二行的开头加一个 S。从四个选项中选择:

DAHONGRIEX LAHONGRIEX EAHONGRIEX SAHONGRIEX

SELEVERONT SELEVERONT SELEVERONT SELEVERONT

ENALQUEVOU GNALQUEVOU INALQUEVOU TNALQUEVOU

第二个选项使得第一行呈现出 LA HONGRIE(“匈牙利”),这看起来不错,因为法语通常在提到国家时使用定冠词。Pommerening 现在在第三行中寻找扩展。他发现 SIGNAL QUE VOUS(“信号你”或“信号你们”)。在第三行的左侧添加一个 I 后,得到了两种可能性:

NLAHONGRIEX ELAHONGRIEX

ESELEVERONT SSELEVERONT

IGNALQUEVOU IGNALQUEVOU

第一个选项没有结果,因此 Pommerening 选择了第二个,并在第三行的左侧添加了一个 S:

UELAHONGRIEX RELAHONGRIEX DELAHONGRIEX

RSSELEVERONT ESSELEVERONT USSELEVERONT

SIGNALQUEVOU SIGNALQUEVOU SIGNALQUEVOU

第三个变体因第一行中的序列 DE LA HONGRIE(“来自匈牙利”)而引人注目。

出于空间考虑,我们将跳过其余的多重重排过程。Pommerening 继续解开剩余的密码,得到以下明文:

SSEPOURLI NDEPENDAN CEDELAHON GRIEXRZAH

SENVERREZ DETRIESTE TOUSSELEV ERONTENMA

TOUTESTPR ETAUPREMI ERSIGNALQ UEVOUSNOU

然而,只有按照先读第三行,再读第二行,最后读第一行的顺序,这条消息才有意义:

TOUTESTPR ETAUPREMI ERSIGNALQ UEVOUSNOU

SENVERREZ DETRIESTE TOUSSELEV ERONTENMA

SSEPOURLI NDEPENDAN CEDELAHON GRIEXRZAH

加上标点后,明文如下:

TOUT EST PRÊT. AU PREMIER SIGNAL QUE VOUS NOUS ENVERREZ DE TRIESTE, TOUS SE LÈVERONT EN MASSE POUR L’INDÉPENDANCE DE LA HONGRIE. XRZAH.

它的翻译如下:

一切准备就绪。你从的里雅斯特发出的第一个信号一到,所有人都会集体站起来支持匈牙利独立。Xrzah

XRZAH 是发件人的代号。

法语明文(TOUT EST PRÊT...)正是儒勒·凡尔纳的法文原版《马提亚斯·桑多尔夫》中的信息。在该小说的英文翻译中(至少是我们在线找到的版本),该信息并未被翻译。

注意,Pommerening 在破译过程中并未使用任何关于旋转格栅的特殊信息。他仅使用了多次的字母重排来确定每行中三十六个字母的顺序。

确定所使用的格栅种类通常很容易,如果已知明文和密文。然而,在这种情况下,没有任何旋转格栅能够使用典型的方法从给定的明文生成密文。然而,如果我们将每行倒着写,就能找到合适的格栅。用于这种转换的旋转格栅可以在 图 11-13 中看到。

图 11-13:用于《马提亚斯·桑多尔夫》1885 年版中的加密信息的旋转格栅。通过孔洞看到的字母按顺序排列为(从底部开始)(HON)GRIE XRZAH(匈牙利 XRZAH),这是明文的最后部分。

如前所示,明文的第三行需要在第二行和第一行之前读取。此外,每行必须倒着读。这些观察可以通过一个简单的方式来解释:加密者在加密之前,将整个信息倒着写,然后将其分成三十六个字母一组,并使用每个 6 × 6 的旋转格栅加密。

挑战

弗里德曼夫妇的圣诞卡

图 11-14 中的圣诞卡是世界著名的密码破译专家威廉和伊丽莎白·弗里德曼于 1928 年创作的。^(11)

图 11-14:威廉和伊丽莎白·弗里德曼在 1928 年发送的加密圣诞卡

这是一个抄本。请注意,原文中末尾的数字 28 视为一个字符:

ABFWORREC

U SRIYEPN G

CT HARSI OS

YMO UTE AWN

ETLM AESP

OSRQ DUOI

GHRO TEOE

FTX MTE UAP

GI RTASM NH

O DGCSAIH E

NEETRREE28

这个密码非常容易解开,可能是为了让弗里德曼夫妇的非密码学朋友们能够更轻松地解密!只需使用卡片左侧展示的旋转格栅。如果你想挑战更高的难度,可以尝试在不使用格栅的情况下解密这个加密信息。

Jew-Lee 和 Bill 的加密电报

图 11-15 中的“Cryptocablegram”是由现代破译爱好者 Jew-Lee Lann-Briere 和 Bill Briere 为他们在 2017 年 NSA 密码学历史研讨会上的讲座关于 William 和 Elizebeth Friedman 所创作的。

图 11-15:由 Jew-Lee Lann-Briere 和 Bill Briere 创作的挑战密码

Jew-Lee 和 Bill 对明文应用了两步加密。首先,他们使用简单的替换密码加密了它。然后,他们使用了转盘栅栏。以下是逆转替换的表格:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

HJKLOPQSTUVWXYZFRIEDMANBCG

这个密码谜题有一种简单的解法,也有一种困难的解法。在没有更多提示的情况下,你能解开这个转盘栅栏加密吗?

一个 MysteryTwister 挑战

MysteryTwister (mysterytwister.org) 是一个大型加密谜题网站,拥有数百个挑战,难度从简单到困难不等,还有一个由成千上万的会员组成的社区,他们通过解谜来赚取积分。其众多困难的密码谜题之一涉及转盘栅栏加密(图 11-16)。^(12)

图 11-16:2011 年的转盘栅栏挑战,可在 MysteryTwister 网站上找到

解决方案是一个英语句子。如果你想要提示,可以查看 codebreaking-guide.com/challenges/

一个 Kerckhoffs 密码

在本章早些时候,我们介绍了 1883 年由 Auguste Kerckhoffs 发布的转盘栅栏密码(图 11-4)。明文是法语。你能解开它吗?

第十二章:字母对替换

在他 1563 年的著作《De Furtivis Literarum Notis》中,意大利博学家和密码学家 Giambattista della Porta(1535–1615)提出了一种有趣的加密方法。他的系统并非替换单个字母,而是替换字母对(也称为字母二重组合)。在随后的几个世纪中,这种字母对替换法被发展出了不同的变种——包括所谓的 Playfair 密码。在本章中,我们将介绍这两种方法:Playfair 和 Porta 的原始系统。

一般字母对替换的工作原理

Giambattista della Porta 提出的加密方法基于一个包含 400 个独特条目的字母对替换表。该表为每一对可能的字母对提供了不同的符号,如图 12-1 所示。^(1)(他使用的字母表包含 20 个字母。)

图 12-1:Giambattista della Porta 提出了这张替换表,为每一对字母提供了不同的符号。

例如,如果我们想使用这个表加密单词STREET,我们首先需要将其视为三个字母对:STREET。如果我们查找表格中的每对字母(使用表格顶部的第一个字母和右侧的第二个字母),我们会得到如下结果:

然而,Porta 的表格可能从未在实际中使用过,因为处理 400 个不同符号是相当麻烦的。其他密码设计师更倾向于将字母对替换为三位数的替代符号(我们将在第十六章中提供一个示例),但最终证明,替换字母对最方便的方式是使用另一个字母对。以下是一个例子,它替换了每个现有字母对,用一个新的字母对替代,表格的左上角如下所示:

A B C D E F G H I . . .

A KF SW JL OO QA CP DA BN CX . . .

B LH WS WM CO XE YP WW NV CH . . .

C JX KV AS PI CS PX NU SR LS . . .

D TR AL FG AD WU QM GH PG JC . . .

E ND SG RE AT NA TU RX SS OD . . .

. . .

使用这个表时,单词BEAD加密后的结果是SGTR(假设每对字母的第一个字母来自顶部行)。顶部和左侧的字母表也可以根据关键词的不同进行调整。例如,以下表格就是使用关键词AMERICABALL创建的:

A M E R I C B D F . . .

B KF SW JL OO QA CP DA BN CX . . .

A LH WS WM CO XE YP WW NV CH . . .

L JX KV AS PI CS PX NU SR LS . . .

C TR AL FG AD WU QM GH PG JC . . .

D ND SG RE AT NA TU RX SS OD . . .

. . .

在使用这样的表时,通常保持矩阵中的字母对不变,同时频繁更换两个关键词。

Playfair 密码的工作原理

即使是一个 26 × 26(或 676)条目的表格,也相当繁琐,既难以构建又不容易使用。因此,虽然双字母替换法使用了一个详尽的表格,虽然合理安全,但它在密码学历史中从未发挥过重要作用。实践中,密码学家们更倾向于使用一些规则来替换双字母,而不是使用庞大的表格。尽管他们可以用多种方式构建这样的规则集,但实际上只有一种方法(具有多种变体)在实践中频繁使用:Playfair 密码。该密码由查尔斯·惠特斯通(1802–1875)于 1854 年发明,后来由莱昂·普雷费尔(1818–1898)推荐给英国军队,因此得名。^(2)

英国心理学家和超心理学家罗伯特·索尔斯(1894–1984),在我们书中多次出现,创作了两种著名的加密文。这些加密文使用了这种类型的双字母密码。还记得在第八章中提到,1948 年,索尔斯开始了一个有趣的实验:为了验证是否可以从死者的领域向活人传递信息,他发布了一段加密文本,保密了明文和关键词。他的计划是死后从另一个世界传递关键词。在 1984 年去世前,索尔斯公开了他三次超心理学实验的结果:两次使用了 Playfair 密码,另一次使用了多表替换系统。他的两次 Playfair 尝试将在本章中讨论。

在他的第一次实验中,索尔斯使用 Playfair 系统加密了一句莎士比亚名言。明文如下:

伤痛心灵的药膏,伟大自然的第二道菜,生命盛宴中的主要滋养者

用双字母书写的内容为:

BA LM OF HU RT MI ND SG RE AT NA TU RE SS EC ON DC OU RS EC HI EF NO UR IS HE RI NL IF ES FE AS T

通常,Playfair 密码要求没有一对字母相同,因为标准规则集没有加密相同字母对的方法,稍后我们会解释。因此,在这些情况下,索尔斯常常会在两个S之间加一个X

BA LM OF HU RT MI ND SG RE AT NA TU RE SX SE CO ND CO UR SE CH IE FN OU RI SH ER IN LI FE SF EA ST

如果明文中字母的个数是奇数,他必须在最后一个位置加一个X,以确保每个字母都属于一个对,但是在这里并不需要这样做。索尔斯选择了SURPRISE作为他的关键词。基于这个词,他使用了以下转置的字母表。它从关键词开始,省略了重复的字母,并且将 I 和 J 视为等同,从而得到了一个包含二十五个字母的字母表:SURPIEABCDFGHKLMNOQTVWXYZ。接下来,索尔斯将这个字母表写成一个 5 × 5 的网格(也称为 Playfair 矩阵):

S U R P I

E A B C D

F G H K L

M N O Q T

V W X Y Z

从这里,索尔斯根据以下三条最常见的 Playfair 规则替换了明文的双字母(BALMOFHU……),这些规则在图 12-2 中进行了可视化:

规则 1:如果两个字母既不在同一列也不在同一行(这是最常见的情况),找到由这两个字母形成的矩形,并用矩形的另两个角字母替换这两个字母(将上方的明文字母替换为矩形的另一个上方字母,下方的明文字母替换为矩形的另一个下方字母)。在这个例子中,LM变为FT

规则 2:如果两个字母位于同一行,将每个字母替换为其右侧的邻居。这里,BA变为CB

规则 3:如果两个字母位于同一列,将每个字母替换为其下方的邻居。在我们的示例中,AN变为GW

图 12-2:Playfair 密码通过三条规则替换字母对。

当我们将 Playfair 规则应用于上面显示的 5×5 矩阵时,莎士比亚的名言会被加密为以下内容:

CB FT MH GR IO TS TA UF SB DN WG NI SB RV EF BQ TA BQ RP EF BK SD GM NR PS RF BS UT TD MF EM AB IM

这是 Robert Thouless 在 1948 年发布的加密信息。他将其写成五个字母一组,最后六个字母除外:

CBFTM HGRIO TSTAU FSBDN WGNIS BRVEF BQTAB

QRPEF BKSDG MNRPS RFBSU TTDMF EMA BIM

要了解更多关于该实验后续的内容,请参见第八章。

当然,我们描述的 Playfair 方法可以以多种方式进行修改。例如,我们可以使用一个 4×6 或 5×6 的 Playfair 矩阵,而不是 5×5 版本。5×6 矩阵可以提供更多空间,比如用于表示空格、句号或无意义的字母(空字符)。替换规则也可以以多种方式进行更改。例如,可以添加一个规则来替换双字母,或者将字母移到左边而不是右边。

在第二次世界大战中,德国军队实施了 Playfair 密码的一个版本,使用两个 5×5 矩阵而不是一个,每个矩阵使用不同的关键字构造。这个系统被称为 Doppelkasten(“双箱”)方法。^(3) 相关示例可以在《Cryptologia》学术期刊的早期期刊中找到。

如何检测一般的双字母替换

Klaus 使用一般的双字母替换而非 Playfair 密码创建了以下密文。他将其作为挑战发布给博客读者,测试这种长度的双字母替换加密信息是否能够被破解。我们将在本章的“挑战”部分回到这个故事。^(4)

UNGOZIHIJGSLGVWPIVGJSOKEFMAHSDBDGLUBUNZIWPIEBIUNKFVOUNB

DSLPPHELVAQBAHEBIFJMHKVFLHXQQEFSLQQBDAQRIBVBIBYGJMOSOZB

SDUXZINXUNEQVKUGYHUNVOWPSGSMGEFLFKRUHELFPHGVUXFGHRJYFUH

IPBMHUNVOWPSGHXVKRSSGPHPWQXPLKCXGUNFGBICJFGJGCLLCFPNXUN

TUUKKIZBKFABEQNHRFWLKCYHDJHJOPBZRLAHQVFTHETGRQRJTDAYDTX

TVDBDKFEFZKSDHETUFVIQBIYABDEXZIKCHXRUKQRLGECJAQAOBKZIOB

TEFMFRZNZACLWDWAUNEBBISLMREQKWRJRCUGHERGJMXONWGJHIPBEYG

DZOHXIXKFOXFLKVRUDWAOBIDLSRRICSICJGKFZBBUMRFMGQKFYBXOHE

TGHEOAMUEMWLAYRJWPKIGXUOSKZIHIJGSLHIGIBLFUXXUKUQPHGEGWH

IOPZIBDLVBUKQRJSMUGFPWLWPSGPHFIKVYXCJLVULKVQSZIBDLVBUUI

SRRUGJAIYXXGLKQXFRPBUOJIBTGHGDTGRCICUNVOWPSGDTLIEMTAVOU

NVUQQKCRTLHBDAIUXFGOAKPBTKVFLAHVWRHWAUGKCXGUNFGBIXAGJHE

HXGLBIRNGDOEBPUQSGBDIKACVORUBLKVVLZIHIJGSLWPIEUNCEPHFOM

KFVMHUGNOPKBGLKCGCLHEXFAYUOMKTAGDZOHEKFLVBWKVPLGXBPHEGI

XOTJWURUUNCLSOFMKVWGFMFPIKGJLLJYOGDWFRGLFQQEYDFVCAHYZPJ

GKFBIRQHEBAHELFHEFSVUCLWDBWIGJGDRAYVKFPWLZNLQFGGJQAKFBL

FUWQPWGJOBSLRIVVBXBDVUMHYIZYBZKFGQLWROZIOBMACTPHSMGECLF

GVOSGUNTUJYOGBIHECERCUGWDEMFGKPAYSQKCBWONQVGEKVDHBIDWPH

EMGEAQAONOEXZIOBMAUNTUPHFYNXXGUNFGBIFNFMMFOXJBBDCLBIBIF

JMHKVFLFJMHXNHXVKUNKFZBTFFMHMFVLVWLYHHEMFOFICOJVUYXMFZN

WLLWICLVSDZIFSEBUNNXVUFIHARCXOZKMMFPKVRUUNVOWPSGLCQWUGC

ECJTGHIVKWAFLPHAQVKPHHJSGMFHMRLDDHJZUBPTDBOFGVOSGUNTUJY

OGXGUNFGBIXAFMWAAQFPAIEQQQKCFIHAQWFIBPGLUBZNNNSOWDXMXGU

NFGBIEAHAKCAHAQSGRLMSKFWDBAHEFVMHWGPHFYBIUNTUJYOGAIYXWA

ZIFLYNKCRUSOKVLKBOWARIBIHJ

通过频率分析,很容易区分双字母替换密码和简单替换密码。请看图 12-3 中的两个图表。上半部分显示了密文中字母的频率,下半部分显示了同一明文在简单替换密码加密下的字母频率。可以看出,上图(双字母替换)的频率分布要平坦得多(即,频繁出现的字母不那么频繁,罕见的字母也不那么罕见)。

相同的,重合指数也不同。虽然用简单替换密码加密的英语文本(以及原始的英语文本)的重合指数是 6.7%,我们这里的字母对密码加密文本的重合指数只有 4.3%。

那么,其他不是简单替换的密码呢?它们的频率分布是否相似?

图 12-3:双字母替换加密(上)和简单替换加密(下)的字母频率分布

我们可以对双字母进行频率计数,帮助判断算法是 Playfair 密码、另一种双字母系统、换位密码、多表代换密码,还是其他类型。然而,这里使用的双字母频率计数方法不同于我们在第四章中应用的方法,在第四章中我们计算了重叠对。比如,字符串ABCDEF包含五个重叠的双字母对(ABBCCDDE,和EF)。在双字母替换的情况下,我们只应考虑非重叠的对。ABCDEF包含三对非重叠的双字母:ABCD,和EF。从数学角度来看,如果文本中有偶数个n个字母,那么将有n-1个重叠的双字母对和n/2 个非重叠的双字母对。

图 12-4 展示了我们密码的(非重叠)双字母频率分析,接着是用维吉尼亚密码加密的相同明文的双字母频率分析。我们使用了dcode.fr/en来统计字母对,并用 Excel 绘制了图表。需要注意的是,双字母密码图案中只有大约 220 个不同的字母对,而维吉尼亚密码中有大约 380 个不同的字母对。

图表的下部还显示,只有少数几个字母对在维吉尼亚密码图案中频率超过 1%,而在上部,我们可以看到大约二十五个此类字母对出现在双字母替换密码图案中,其中最常见的一个接近 4%。

值得注意的是,即使在较长的英语文本中,明文也只会展示出大约三百种不同的双字母组合,无论我们是否统计重叠的双字母。这是因为在英语中,许多字母对如QZVHIIJN极为罕见。

总的来说,如果将非重叠双字母频率统计与另一种密码进行比较,混淆双字母替换与其他密码的风险并不高。

图 12-4:使用非重叠双字母的两个频率分布图。我们的双字母替换密码图案(上方)与维吉尼亚密码图案(下方)看起来不同,因为出现的双字母较少,而最常见的双字母频率要高得多(超过 3.0)。

如何检测 Playfair 密码

我们如何检查某个密码是否是用 Playfair 密码创建的呢?举个例子,考虑一下二战时期发送的消息。在战争期间,美国海军及其盟友频繁使用 Playfair 密码进行太平洋战区的战术通信。有一个故事涉及PT-109,一艘由年轻海军军官、后来的总统约翰·F·肯尼迪指挥的巡逻鱼雷艇。^(5) 在更大的日本驱逐舰天霧PT-109相撞,将其一分为二并击沉后,美国船员游了好几英里,最终冲上了附近布朗布丁岛的海滩。

澳大利亚海岸观察员阿瑟·雷金纳德·埃文斯中尉目击了坠机事件,并接收并解密了多条 Playfair 密码信息,协调了一个营救行动,派遣了他的所罗门群岛团队之一去寻找机组人员。^(6) 在他的一名团队成员比乌库·加萨的建议下,肯尼迪用他的口袋刀在椰子上刻下了一张便条(用英语写的)。我们将在第十五章回到这个故事。现在,我们只关心一条发送给埃文斯的 Playfair 密码消息(图 12-5),它报告了PT-109的失踪。

这份于 1943 年 8 月 7 日上午 9:20 收到的 Playfair 密码文本,发生撞机事故后的第五天,明文记录在纸张的上半部分,并在此复原:

ELEVEN SURVIVORS PT BOAT ON GROSS IS X HAVE SENT FOOD AND LETTER ADVISING SENIOR COME HERE WITHOUT DELAY X WARN AVIATION OF CANOES CROSSING FERGUSON RE

如你所见,这条信息有 125 个字母。结尾的RE代表 Reginald Evans,而GROSS IS表示 Gross Island(也称为 Cross Island 或 Nauru)。X表示句号。

图 12-5:澳大利亚海岸观察员 Arthur(“Reg”)Reginald Evans 中尉收到的 Playfair 加密信息,报告了二战期间PT-109的失踪。

这个信息使用了密钥PHYSICAL EXAMINATION,并采用了几乎与本章早些时候看到的标准 Playfair 加密技术完全相同的加密方法,只有三个小的例外。首先,成对的相同字母不是通过添加额外的字母来避免的;而是简单地保持不变。例如,LETTER中的TT加密成密文TT。其次,J在密文中用作I的等价字母。第三,由于文本中字母的数量是奇数,消息的最后一个字母E(代表“Evans”)未与任何填充字母配对,而是保持不变。

检测 Playfair 密码是相对容易的,因为它会产生一些非常特殊且容易识别的特征:

  • 密文中的字母数量是偶数。

  • 字母J没有出现,因为它由I表示。

  • 没有双字母是由相同的字母组成的。

然而,所有这些特征都可以很容易地被隐藏,就像上述二战 Playfair 密文所展示的那样。这个信息包含奇数个字母,因为最后一个字母没有加密;其中包括了J,它被用作I的等价字母;并且包含了相同的双字母,它们是未改变的双字母,而不是通过插入X来避免的。然而,在我们实际遇到的大多数情况下,Playfair 密码的加密者并没有采取这些预防措施。

如果这些标准不足以识别 Playfair 密码的使用,我们可以转向统计方法进一步了解。虽然统计不重叠的双字母有助于区分双字母替代法与许多其他密码,但它并不能将 Playfair 密码与基于 26×26 图表的一般双字母替代法区分开。为此,我们可以对单个字母进行普通的频率计数。Playfair 密码文本的频率分布较为平坦——意味着常见字母变得不那么常见,而稀有字母也不再那么稀有——相较于简单替代密码,但仍不如一般的双字母替代法那么平坦(见图 12-6)。

图 12-6: Playfair 密码文的频率分布(上)比简单替代密码的分布(下)平坦,但又不如一般双字母替代密码的分布(中)那么平坦。

如何破解双字母替代密码

我们可以使用计算机程序,借助爬山算法(见第十六章),有效地破解 Playfair 密码以及一般的双字母替代密码,且无需使用提示词。接下来的几节中,我们将介绍其他几种方法,并着重讨论一种可以手动使用的方法。正如后文所示,一般的双字母替代密码比 Playfair 密码更难破解,需要更多的密文。

频率分析

攻击双字母替代密码的一种方法是对不重叠变体进行双字母频率分析。英语中最常见的双字母是THHEINER。一个更全面的列表可以在附录 B 中找到。然而,这种方法只适用于长密码文。你大约需要 2,000 个字母才能得到有意义的双字母频率图表。不幸的是,在实际中,双字母替代密码文很少有这么长,因此我们很少单独使用频率分析来攻击双字母替代密码。

字典攻击

如果一个密码文是基于关键字(如上所示)使用 Playfair 密码算法创建的,我们可以通过使用计算机程序进行字典攻击,逐一尝试不同的关键字候选,直到解密后的明文候选看起来像是有意义的文本。为了检查字母序列是否有意义,程序可以使用适应度函数,如在第十六章中所述。关键字候选可以从字典文件中获取(即列出某种语言所有常用词的文件)。有许多字典文件包含来自多种语言的数百万个单词,在线可以轻松找到。我们将在本章的“成功案例”部分描述一个对 Playfair 密码文进行字典攻击的示例。

手动攻击

确实可以在没有计算机支持的情况下破解 Playfair 密码。然而,这比破解简单替代密码或完全列转置密码要困难得多——尤其是当我们处理的密文长度不超过大约 200 个字母时。我们遇到的大多数 Playfair 密码文都属于这种情况。

手动破解 Playfair 密码文通常需要知道或猜测一些密文双字母对应的明文,并根据这些明文推导出其他的明文,遵循我们将在此介绍的一些规则。这样,我们将重建使用的 Playfair 矩阵。当然,如果我们有提示词,这个方法会更容易。因此,我们的成功依赖于可用的提示词、我们的猜测质量、密文的长度以及运气。

需要注意的是,不同的 Playfair 矩阵可能会实现相同的密码。一般来说,一个 Playfair 矩阵可以在列和行上循环位移,而不改变它所定义的加密方法。例如,以下三个矩阵是等效的:

S U R P I U R P I S V W X Y Z

E A B C D A B C D E S U R P I

F G H K L G H K L F E A B C D

M N O Q T N O Q T M F G H K L

V W X Y Z W X Y Z V M N O Q T

因此,我们在解码信息时重构的矩阵可能是消息创建者使用的矩阵的列和行循环位移版本。一旦找到一个矩阵,我们可以通过查看哪个位移产生了一个合理的关键词,来发现可能的原始方向。

要破解 Playfair 密码(英文版),我们可以使用一些规则,这些规则是从该系统的弱点中衍生出来的:

  1. 我们提到过,双字母频率很难利用,除非密码文本包含成千上万个字母。然而,我们可以利用这样一个事实:在英文文本中,一些字母对,如 THHEINER,尤其常见,而其他字母对,如 QGJN,几乎不存在。

  2. 英文中最常见的四字母组合(即四个字母的组合)是 THERTIONATIOTHAT。这意味着两个最常见的双字母组合(THER)组成了 THER,这是最常见的四字母组合之一。

  3. 如果 加密为 ,那么 将加密为 。例如,如果 AB 加密为 XY,则 BA 会加密为 YX

  4. 最常见的双字母组合是 ER/RE,其次是 ES/SE

  5. 没有字母会被加密为它自身。例如,AB 不会变成 AYYB

  6. 如果 被替换为 ,则字母 将按该顺序一起出现在行或列中。如果 被替换为 ,也会出现相同的情况。例如,如果 XY 被替换为 YZ,你会发现字母 XYZ 会按顺序出现在行或列中,而不是作为一个矩形的一部分。同样,如果 XY 被替换为 ZX,字母 XZY 将按该顺序出现在行或列中。

  7. 如果 在 Playfair 矩阵中形成一个矩形(这发生在二十四个中的十六个案例中),则有以下规则:如果 加密为 ,那么 会加密为 。例如,如果 AB 形成一个矩形,则如果 AB 加密为 XY,则 XY 会加密为 AB

  8. 每个字母在任何 Playfair 表格中只能被加密为五个特定的密文字母。

  9. 在与频繁出现的字母(尤其是 ET)在同一行或列中出现的字母,在密文中比其他字母更常见。

  10. 如果 Playfair 密码使用上面展示的关键词,那么更频繁的字母可能会出现在方阵的顶部。许多情况下,字母 VWXYZ 形成最后一行,因为这些字母的频率较低(因此它们出现在关键词中的概率较低)。UVWXZ 这一行也很常见出现在矩阵的底部,因为 Y 的频率高于它的邻居。

为了应用这些规则,我们现在将解密 Dorothy L. Sayers 1932 年犯罪小说《Have His Carcase》中的 Playfair 密码消息(图 12-7)。

图 12-7:Dorothy L. Sayers 的 1932 年犯罪小说《Have His Carcase》中包含了一个 Playfair 密码。

这是加密的消息:

XNATNX

RBEXMG

PRBFX ALI MKMG BFFY, MGTSQ IMRRY. ZBZE

FLOX P.M. MSIU FKX FLDYPC FKAP RPD KL DONA

FMKPC FM NOR ANXP.

SOLFA TGMZ DXL LKKZM VXI BWHNZ MBFFY

MG. TSQ A NVPD NMM VFYQ. CIU ROGA K.C. RAC

RRMTN S.B. IF H.P. HNZ ME? SSPXLZ DFAX LRAEL

TLMK. XATL RPX BM AEBF HS MPIKATL TO

HOKCCI HNRY. TYM VDSM SUSSX GAMKR. BG AIL

AXH NZMLF HVUL KNN RAGY QWMCK. MNQS

TOIL AXFA AN IHMZS RPT HO KFLTIM. IF MTGNLU

H.M. CLM KLZM AHPE ALF AKMSM, ZULPR FHQ --

CMZT SXS RSMKRS GNKS FVMP RACY OSS QESBH

NAE UZCK CON MGBNRY RMAL RSH NZM, BKTQAP

MSH NZM TO ILG MELMS NAGMIU KC KC.

TQKFX BQZ NMEZLI BM ZLFA AYZ MARS UP QOS

KMXBP SUE UMIL PRKBG MSK QD.

NAP DZMTB N.B. OBE XMG SREFZ DBS AM IMHY

GAKY R. MULBY M.S. SZLKO GKG LKL GAW

XNTED BHMB XZD NRKZH PSMSKMN A.M. MHIZP

DK MIM, XNKSAK C KOK MNRL CFL INXF HDA

GAIQ.

GATLM Z DLFA A QPHND MV AK MV MAG C.P.R.

XNATNX PD GUN MBKL I OLKA GLDAGA KQB

FTQO SKMX GPDH NW LX SULMY ILLE MKH

BEALF MRSK UFHA AKTS.

下面是相同文本,按双字母分解:

XN AT NX RB EX MG PR BF XA LI

MK MG BF FY MG TS QI MR RY ZB

ZE FL OX PM MS IU FK XF LD YP

CF KA PR PD KL DO NA FM KP CF

MN OR AN XP SO LF AT GM ZD XL

LK KZ MV XI BW HN ZM BF FY MG

TS QA NV PD NM MV FY QC IU RO

GA KC RA CR RM TN SB IF HP HN

ZM ES SP XL ZD FA XL RA EL TL

MK XA TL RP XB MA EB FH SM PI

KA TL TO HO KC CI HN RY TY MV

DS MS US SX GA MK RB GA IL AX

HN ZM LF HV UL KN NR AG YQ WM

CK MN QS TO IL AX FA AN IH MZ

SR PT HO KF LT IM IF MT GN LU

HM CL MK LZ MA HP EA LF AK MS

MZ UL PR FH QC MZ TS XS RS MK

RS GN KS FV MP RA CY OS SQ ES

BH NA EU ZC KC ON MG BN RY RM

AL RS HN ZM BK TQ AP MS HN ZM

TO IL GM EL MS NA GM IU KC KC

TQ KF XB QZ NM EZ LI BM ZL FA

AY ZM AR SU PQ OS KM XB PS UE

UM IL PR KB GM SK QD NA PD ZM

TB NB OB EX MG SR EF ZD BS AM

IM HY GA KY RM UL BY MS SZ LK

OG KG LK LG AW XN TE DB HM BX

ZD NR KZ HP SM SK MN AM MH IZ

PD KM IM XN KS AK CK OK MN RL

CF LI NX FH DA GA IQ GA TL MZ

DL FA AQ PH ND MV AK MV MA GC

PR XN AT NX PD GU NM BK LI OL

KA GL DA GA KQ BF TQ OS KM XG

PD HN WL XS UL MY IL LE MK HB

EA LF MR SK UF HA AK TS

在我们开始解码之前,需要做一些统计分析。密文中有 696 个字母。图 12-8 展示了字母和不重叠的字母二重组频率。M是密文中最频繁的字符。这表明它位于一行或一列中,与E(英语中最频繁的字母)一起。

图 12-8:在多萝西·L·赛尔斯 1932 年犯罪小说《有尸体》中描述的普莱菲尔密码中,字母(上)和字母二重组(下)的频率分析

出现在密文中的最频繁的可逆字母对如下:

  1. ZM/MZ分别出现了七次和四次。

  2. MK/KM分别出现了六次和三次。

  3. IL/LI分别出现了五次和四次。

通过仅应用到目前为止提到的规则,我们是有可能解决普莱菲尔密码的。然而,这样做需要大量的反复试验——这是一个过于冗长和复杂的过程,无法在本书中详细记录。为了稍微简化问题,我们假设我们对文本内容有一些信息。研究密码消息创建时的上下文可以成为一个强有力的工具。在这个例子中,我们了解到以下信息:

  • 这条信息是从波兰华沙发出的。

  • 与波兰签订的条约可能会被提及。

  • 消息的接收人通常被称为“他的宁静殿下”。

这些信息给我们提供了一些破解线索。例如,密文的第一行仅由六个字母组成:XN AT NX。注意,第三个字母对是第一个字母对的反向,这意味着它的明文表示也是反转的。由于信件是从华沙发出的,因此WARSAW(华沙)是一个潜在的匹配。所以,我们将WARSAW作为第一个线索。如果我们的猜测正确,我们可以得出以下结论:

WA = XN

RS = AT

AW = NX

此外,通过反转第二个语句中的字母对,我们得到以下内容:

SR = TA

字母对XN AT NXWARSAW)在密文的第 32 行再次出现。在它之前,我们找到了字母对PRPR出现了五次,是密文中最频繁的十二个字母对之一。那么它代表什么呢?像THWARSAWENWARSAWERWARSAWONWARSAW等可能性,以及一些其他基于字母对频率的猜测,似乎都不太可能。最合理的选择是TOWARSAW,这给了我们以下结果:

TO = PR

再次,我们通过反转字母获得另一个映射:

OT = RP

根据本章前面列出的破译普莱菲尔信息的第 7 条规则,我们可以假设以下六个语句对最可能是正确的。这些映射结果来自于我们已经知道的语句中交换明文和密文的过程,每个都有 16/24(或 66.6%)的概率是正确的:

XN = WA

NX = AW

AT = RS

TA = SR

PR = TO

RP = OT

为了检查这些映射是否合理,我们可以查看它们的频率。WA在密文中没有出现,所以我们不必担心。AW出现了一次;目前我们无法确定它是否真正代表NX,但NX是一个合理的二字母组合,前提是字母X用于分隔相同字母对。此外,AT = RSTA = SR是合理的,因为RS在密文中出现了三次,正如预期的那样,这符合了常见字母对AT的密文等价物。至于PR = TORP = OT是否有意义,目前很难说,但为了简化起见,我们假设它们是合理的。(在现实生活中,进一步的分析是必要的,以确认这一点。)

总结一下,我们假设所有这些映射都是正确的。现在,我们填入已经猜测出来的字母对:

XN AT NX RB EX MG PR BF XA LI

WA RS AW TO

MK MG BF FY MG TS QI MR RY ZB

ZE FL OX PM MS IU FK XF LD YP

CF KA PR PD KL DO NA FM KP CF

TO

MN OR AN XP SO LF AT GM ZD XL

RS

LK KZ MV XI BW HN ZM BF FY MG

TS QA NV PD NM MV FY QC IU RO

GA KC RA CR RM TN SB IF HP HN

ZM ES SP XL ZD FA XL RA EL TL

MK XA TL RP XB MA EB FH SM PI

OT

KA TL TO HO KC CI HN RY TY MV

PR

DS MS US SX GA MK RB GA IL AX

HN ZM LF HV UL KN NR AG YQ WM

CK MN QS TO IL AX FA AN IH MZ

PR

SR PT HO KF LT IM IF MT GN LU

TA

HM CL MK LZ MA HP EA LF AK MS

MZ UL PR FH QC MZ TS XS RS MK

TO AT

RS GN KS FV MP RA CY OS SQ ES

AT

BH NA EU ZC KC ON MG BN RY RM

AL RS HN ZM BK TQ AP MS HN ZM

AT

TO IL GM EL MS NA GM IU KC KC

PR

TQ KF XB QZ NM EZ LI BM ZL FA

AY ZM AR SU PQ OS KM XB PS UE

UM IL PR KB GM SK QD NA PD ZM

TO

TB NB OB EX MG SR EF ZD BS AM

TA

IM HY GA KY RM UL BY MS SZ LK

OG KG LK LG AW XN TE DB HM BX

NX WA

ZD NR KZ HP SM SK MN AM MH IZ

PD KM IM XN KS AK CK OK MN RL

WA

CF LI NX FH DA GA IQ GA TL MZ

AW

DL FA AQ PH ND MV AK MV MA GC

PR XN AT NX PD GU NM BK LI OL

TO WA RS AW

KA GL DA GA KQ BF TQ OS KM XG

PD HN WL XS UL MY IL LE MK HB

EA LF MR SK UF HA AK TS

这些已知的字母对不足以重建完整的单词。需要额外的猜测,坦率说,这不是一件容易的任务。以下的序列(从密文第 17 行开始)可能会有所帮助:RS MK RS,解密为AT**AT。记住,MK是我们密文中一个特别频繁的可逆字母对。它代表的是RE,即英语中最常见的可逆字母对吗?如果是这样,我们得到ATREAT,可能代表一个TREATY。记住,TREATY是我们期望在明文中出现的一个单词。新的猜测给了我们这个:

RE = MK and ER = KM

假设我们已经识别出了单词 TREATY,我们可以合理猜测接下来的短语是 WITH POLAND。记住,我们知道明文中可能会提到与波兰的条约。这意味着 RS MK RS GN KS FV MP RA 可能代表 AT RE AT YW IT HP OL AN,从而得到以下配对(包括它们的反向版本):

YW = GNWY = NG

IT = KSTI = SK

HP = FVPH = VF

OL = MPLO = PM

AN = RANA = AR

最后的替换对 (AN = RANA = AR) 也表明替换表的一行或一列包含字母 NAR,按照规则 6。这里是我们对密码文本的下一次查看,并且我们已经知道的明文部分:

XN AT NX RB EX MG PR BF XA LI

WA RS AW TO

MK MG BF FY MG TS QI MR RY ZB

RE

ZE FL OX PM MS IU FK XF LD YP

LO

CF KA PR PD KL DO NA FM KP CF

TO ON

MN OR AN XP SO LF AT GM ZD XL

NO PA RS

LK KZ MV XI BW HN ZM BF FY MG

TS QA NV PD NM MV FY QC IU RO

GA KC RA CR RM TN SB IF HP HN

ED AN

ZM ES SP XL ZD FA XL RA EL TL

IL AN

MK XA TL RP XB MA EB FH SM PI

RE OT

KA TL TO HO KC CI HN RY TY MV

PR ED

DS MS US SX GA MK RB GA IL AX

RE

HN ZM LF HV UL KN NR AG YQ WM

CK MN QS TO IL AX FA AN IH MZ

SR PT HO KF LT IM IF MT GN LU

TA YW

HM CL MK LZ MA HP EA LF AK MS

RE

MZ UL PR FH QC MZ TS XS RS MK

TO AT RE

RS GN KS FV MP RA CY OS SQ ES

AT YW IT HP OL AN

BH NA EU ZC KC ON MG BN RY RM

AL RS HN ZM BK TQ AP MS HN ZM

AT

TO IL GM EL MS NA GM IU KC KC

PR

TQ KF XB QZ NM EZ LI BM ZL FA

AY ZM AR SU PQ OS KM XB PS UE

NA ER

UM IL PR KB GM SK QD NA PD ZM

TO TI ON

TB NB OB EX MG SR EF ZD BS AM

TA

IM HY GA KY RM UL BY MS SZ LK

OG KG LK LG AW XN TE DB HM BX

NX WA

ZD NR KZ HP SM SK MN AM MH IZ

TI

PD KM IM XN KS AK CK OK MN RL

ER WA IT

CF LI NX FH DA GA IQ GA TL MZ

AW

DL FA AQ PH ND MV AK MV MA GC

PR XN AT NX PD GU NM BK LI OL

TO WA RS AW

KA GL DA GA KQ BF TQ OS KM XG

AP ER

PD HN WL XS UL MY IL LE MK HB

RE

EA LF MR SK UF HA AK TS

TI

现在,我们将 APER 扩展为 PAPER,这是一个在外交消息中合理的单词。那么,哪个字母出现在 P 前面呢?换句话说,*P = TQ 中的 * 是什么?因为 TQ 在密码中出现了三次,我们几乎可以确定缺失的字母是 S,从而得到 SP = TQ,因为 SP 是以 P 结尾的英语中最常见的字母组合。包括反向组合,我们得到以下结果:

SP = TQPS = QT

可能出现在 SPAPERS 前面的是什么呢?最佳的选项似乎是 HIS PAPERS,这给我们 HI = BF 和反向 IH = FB。密码文本第五行的表达式 PA**RS 也可能代表 PAPERS,这给我们 PE = LFEP = FL

现在,回想一下我们的第三个线索。假设我们知道表达式HIS SERENE HIGHNESS通常出现在信件的开头。在这种情况下,它可能跟在第一行的TO之后。包括反向版本,这个线索揭示了陈述SX = XAXS = AXSE = LIES = ILNE = MGEN = GMGH = FY,和HG = YF

根据规则 6,陈述SX = XA表示字母SXA以这种顺序出现在 Playfair 矩阵的一行或一列中,中间没有其他字母。记住,我们还识别出了字母序列NAR属于一行或一列。因为这两个三重字母都包含字母A,我们可以重构矩阵的以下部分:

S

X

NAR

将其与我们已知的陈述WA = XNRS = AT结合,我们得到如下结果:

ST

WX

NAR

现在让我们将新检测到的陈述应用到密文中:

XN AT NX RB EX MG PR BF XA LI

WA RS AW NE TO HI SX SE

MK MG BF FY MG TS QI MR RY ZB

RE NE HI GH NE

ZE FL OX PM MS IU FK XF LD YP

EP LO

CF KA PR PD KL DO NA FM KP CF

TO ON

MN OR AN XP SO LF AT GM ZD XL

NO PA PE RS EN

LK KZ MV XI BW HN ZM BF FY MG

HI GH NE

TS QA NV PD NM MV FY QC IU RO

GH

GA KC RA CR RM TN SB IF HP HN

ED AN

ZM ES SP XL ZD FA XL RA EL TL

AN

MK XA TL RP XB MA EB FH SM PI

RE SX OT

KA TL TO HO KC CI HN RY TY MV

PR ED

DS MS US SX GA MK RB GA IL AX

RE ES SX

HN ZM LF HV UL KN NR AG YQ WM

PE

CK MN QS TO IL AX FA AN IH MZ

ES SX

SR PT HO KF LT IM IF MT GN LU

TA YW

HM CL MK LZ MA HP EA LF AK MS

RE PE

MZ UL PR FH QC MZ TS XS RS MK

TO AT RE

RS GN KS FV MP RA CY OS SQ ES

AT YW IT HP OL AN

BH NA EU ZC KC ON MG BN RY RM

ON NE

AL RS HN ZM BK TQ AP MS HN ZM

AT SP

TO IL GM EL MS NA GM IU KC KC

PR ES EN ON EN

TQ KF XB QZ NM EZ LI BM ZL FA

SP SE

AY ZM AR SU PQ OS KM XB PS UE

NA ER

UM IL PR KB GM SK QD NA PD ZM

ES TO EN TI ON

TB NB OB EX MG SR EF ZD BS AM

EN TA

IM HY GA KY RM UL BY MS SZ LK

OG KG LK LG AW XN TE DB HM BX

NX WA

ZD NR KZ HP SM SK MN AM MH IZ

TI

PD KM IM XN KS AK CK OK MN RL

ER WA IT

CF LI NX FH DA GA IQ GA TL MZ

SE AW

DL FA AQ PH ND MV AK MV MA GC

PR XN AT NX PD GU NM BK LI OL

TO WA RS AW SE

KA GL DA GA KQ BF TQ OS KM XG

HI SP AP ER

PD HN WL XS UL MY IL LE MK HB

ES RE

EA LF MR SK UF HA AK TS

PE TI

为了简便起见,我们将跳过其余的破译过程。最终,我们得到以下明文:

“华沙致尤恩·托·他的殿下大公帕夫洛·阿列克谢耶维奇,俄罗斯罗曼诺夫家族王位继承人委托给我们的文件现在已彻底审查完毕,证明您杰出祖先沙皇尼古拉斯一世的婚姻无可置疑地得到确认。现在一切准备就绪,您的人民在残暴的苏维埃压迫下呻吟,迫切欢迎帝国统治的恢复。与波兰的条约已顺利签订,金钱与武器任由您支配。您的到来便足以,间谍正在行动,请小心行事,销毁所有文件和身份线索。星期四六月,请乘火车到达达尔利车站,向西沿海岸公路步行至平铁石岩,在那里等候来自这些人的骑士,带来您前往华沙的指示。密码是‘帝国’,请随身携带此纸。保持沉默和保密。鲍里斯。”

这是完整的 Playfair 矩阵,基于关键字 MONARCHY。我们可以通过按矩阵的行列进行循环移动,来重新生成一个有意义的关键字:

M O N A R

C H Y B D

E F G I K

L P Q S T

U V W X Z

现在我们可能会觉得有趣的是,再次查看我们分析开始时生成的文本统计数据。M,作为密码中最常见的字母,出现在与E相同的列中——正如我们预期的那样。最常见的二字母组合ZMHNGA分别解码为URYOIN。二字母组合UR在英语文本中通常不会这么常见;这里,它频繁出现的原因是示例中频繁使用了单词YOUR。频繁出现的可逆二字母组合ZM/MZMK/KMIL/LI的明文对应分别是UR/RURE/ERES/SE。再一次,UR/RU的出现频率高于预期,但这种情况在破译者的工作中是常有的。总的来说,文本统计数据在破解这个 Playfair 密码时并没有特别大的帮助,尽管在其他情况下它们可能会有用。

现在应该很清楚,手动破解一个 Playfair 密码是非常困难的。尽管我们有几个已知的密码线索(当然,这在实际中并不总是能预料到),我们仍然不得不做出一些相当乐观的猜测。我们也作弊了,只跟随我们知道是正确的猜测。真正的破译过程需要更多的反复试验和错误。然而,在没有计算机的时代,人们确实能通过这里描述的方法破解 Playfair 密码。我们不得不对他们表示敬意。

如果你正在寻找更多详细解释本章介绍的技术的资源,可以查阅Helen Fouché Gaines的《Cryptanalysis》(密码分析)中的相关章节^(7),Parker Hitt的《Manual for the Solution of Military Ciphers》(军事密码解法手册)中的章节^(8),或者André Langie的《Cryptography》(密码学)^(9)。在《Solution of a Playfair Cipher》(Playfair 密码的破解)中,Alf Monge 也详细讲解了如何破解一个仅包含三十个字母的 Playfair 密码^(10)。

成功案例

Thouless 的第一条消息

正如本章早些时候提到的,英国的超心理学家罗伯特·Thouless(1894–1984)于 1948 年发布了一条 Playfair 加密消息,意图在去世后通过超感官方式传递其密钥(详情见第八章)。^(11)这条消息在这里以及在图 12-9 中展示:

CBFTM HGRIO TSTAU FSBDN WGNIS BRVEF BQTAB

QRPEF BKSDG MNRPS RFBSU TTDMF EMA BIM

一位想保持匿名的破译者在这条消息发布仅几周后就解开了它,导致 Thouless 第一次实验的尝试失败。我们不知道这位破译者是如何解开这个密码的——这位破译者在 Thouless 的下一篇论文中只被简短提及——但我们可以做一些合理的推测。

图 12-9:罗伯特·Thouless(如图所示)希望在自己去世后传达这条经过 Playfair 加密的消息,以证明死者可以与活人交流。然而,在 Thouless 去世之前,一位破译者就已经解开了这个密码——并没有依靠超能力。

由于 Thouless 没有透露他使用的加密系统,第一道难题是找出他的加密方法。频率分析清楚表明,Thouless 没有使用简单的替换密码。未知的破译者可能发现,消息中没有J,且字母数是偶数,这符合 Playfair 密码的特点。密文中没有任何一个双字母组合由两个相同的字母组成,这一点也与 Playfair 密码一致。考虑到所有这些证据,破译者有足够的理由推测他们正在处理的是一个 Playfair 密码。

但是,一旦他们确定了使用的是 Playfair 加密系统,他们是如何解密的呢?在 2017 年出版的《未解之谜》一书中,我们的同事 Craig Bauer 指出了一些有前景的起点。^(12)我们在本章早些时候提到,基于关键字推导出的 Playfair 矩阵的最后一行通常是VWXYZ,因为这五个字母在英语的关键字中不太可能出现。在这个案例中,这个假设是正确的。此外,Craig 写道:

我们看到一些双字母组合(BQEFSB,和TA)出现了两次。这些可能代表英语中常见的高频双字母组合。正确匹配这些组合可能涉及大量的试错,但密码分析员们很有耐心。

也许还因为 Thouless 的消息包含了BSSB这两个反向双字母组合(digraph)。在英语文本中,最常见的反向双字母组合是ER/RE。那么,BS是否代表ERSB是否代表RE,还是反过来呢?事实证明,BS = ERSB = RE的映射是正确的。

这位未知的破译者可能也采取了完全不同的方法。虽然索尔斯并未透露他使用的密码,但他提到明文是一句莎士比亚的名言。或许破译者通过列出著名的莎士比亚名句,寻找包含与密文相同字母重复的句子。模式BQTABQ,由两个相同的二字母组和其中一个不同的字母组成,可能对这个过程有帮助。通过这种方式,确实有可能识别出正确的明文。

无论破译者使用了哪种方法,他们最终得出了以下的 Playfair 矩阵(基于关键词SURPRISE):

S U R P I

E A B C D

F G H K L

M N O Q T

V W X Y Z

从这个矩阵中,他们推导出了以下明文,来自莎士比亚的麦克白,第二幕,第二场,并证明是正确的:BALM OF HURT MINDS GREAT NATURE’S SECOND COURSE CHIEF NOURISHER IN LIFE’S FEAST.

索尔斯的第三条信息

罗伯特·索尔斯的第三个密码也使用了 Playfair 密码(有关背景故事请参见第八章)。然而,这一次,索尔斯采用了双重加密,使用两个不同的关键词分别进行两次 Playfair 加密,以增强安全性。在两次加密之间,他将相同的字母添加到结果的开始和结束,以增加解密难度。以下是他发布的密码:

BTYRR OOFLH KCDXK FWPCZ KTADR GFHKA

HTYXO ALZUP PYPVF AYMMF SDLR UVUB

这一次,索尔斯透露了他所使用的密码,但将两个关键词保密。

当他在 1984 年去世时,解法依然未解,而他实验中有趣的部分才刚开始。生存研究基金会,一个研究死后通讯的组织,提供了 1,000 美元的奖励,只要在 1987 年之前提供正确的第二或第三条消息的解答。^(13)

据我们所知,没人从死者的领域得到过这两个关键词,因此奖励也没有发放。所以,索尔斯的信息并没有证明死者能够与活人沟通。或者,也许死者根本记不得关键词了!

1995 年,著名的密码破译者吉姆·吉洛戈利和他的搭档拉里·哈尼什开始了一个旨在解决索尔斯第二条和第三条信息的项目。他们没有解决第二条信息,但成功破译了第三条信息。毫不奇怪的是,他们并没有使用超能力,而是应用了密码破译方法和计算机。

作为第一步,他们的计算机程序尝试使用一个包含 64,000 个关键词候选项的文件解密信息(字典攻击)。但当然,这种反复试探的解密只能完成一半工作,因为索尔斯使用了两次连续的 Playfair 加密。一个问题依然存在:他们如何判断一个关键词是否正确,而又不知另一个关键词是什么?

吉洛格利和哈尼施发现了两种简单的方法来验证这一点。首先,他们利用了瑟尔斯在中间结果的开始和结尾添加了相同字母这一事实。其次,他们知道他们进行的解密需要产生另一个 Playfair 密码文本。如前所述,Playfair 密码文本具有某些可预测的特性,比如没有重复字母。计算机程序可以轻松检查这两个条件。

在吉洛格利和哈尼施检查的 64,000 个关键词候选中,有 1,385 个满足了两个标准(它们的首尾字母相同,且没有重复的双字母组合)。对于这些候选项,他们进行了第二次 Playfair 解密,测试了所有 64,000 个关键词,结果得到了约 8800 万个组合。接着,他们的程序对每个组合进行了检查,分析其三字母频率,验证该明文候选是否像英语文本。

经过 8.5 小时的计算,计算机程序返回了一个潜在的解答。使用BLACK作为第一个关键词,BEAUTY作为第二个关键词,程序生成了一个可读的英语句子。选择这些关键词看起来合理,因为罗伯特·瑟尔斯(Robert Thouless)显然知道安娜·瑟威尔(Anna Sewell)1877 年出版的著名小说《黑美人》Black Beauty。问题得到了最终解决:

THIS IS A CIPHER WHICH WILL NOT BE READ UNLESS I GIVE THE KEY WORDS X

吉洛格利和哈尼施在 1996 年发表的《密码学》期刊上,介绍了他们的解决方案,论文标题为《来自地下室的密码》。^(14) 不幸的是,这个解决方案为时已晚,无法赢得 1,000 美元奖金。因此,吉洛格利和哈尼施在文章的结尾写道:“我们的成功计算会议必须是它自己的奖励。”

挑战

《国家宝藏:秘密书》中的密码文本

让我们尝试一个简单的挑战。在 2007 年电影《国家宝藏:秘密书》中,出现了以下 Playfair 密码文本:

ME IK QO TX CQ TE ZX CO MW QC TE HN FB IK ME HA KR QC UN GI KM AV

关键词是DEATH。你能解密吗?

未解决的密码文本

世界纪录双字母挑战

使用一般双字母替换法破译的最短消息长度为 750 个字母。^(15) 我们将在第十六章中讨论这个纪录,特别是当我们讨论爬山法时。

克劳斯在 2020 年 3 月创建了以下更短的密文,以同样的方式加密,鼓励他的博客读者提高纪录:

UGBZAEHINYQLBPZLNFTLUEBMULTLSLZPBZPZKPOVUGYSQPNYHL

RYFHATQKRHTZEHPDQUUGYSUJOVYTUGYVRHAJNFTLUEXFRUEOOJ

TZOSLUPZEICVADYMYLCRBZXOUGSVDJOIDYRHTZOSWZROYNKJRM

EIXOREOVNFTLUESAMNDJHIIWJGKRYFUBTIQPULBPRMJORECJCY

WZZPQRXXVNOSZLBLNYJMPLYNOVLCLKIOGUKUKFSAKAQRSVQXUJ

IOANYSWZSDKUKFLNRMEIRJYVEOLXLKMEYKERHXZPBZXOZXQPCR

KSYOSVHNTLIXKRYFUBTIMGWIZLOSONRMIDKYNYLCFFOMTTLLJH

WTADHLYNRHMZADOGMUKBWZZPPQBZBZNOCRHINYNFTLUEYNOVBZ

NOQPGCQMRHTZIDKYNYCRBZXOUGSVTTQPOSDYXOMQKKVNEALUYV

RMUFPYNXZAVLRHTZNYQXMFYVUCMZSAJMBZZPXPBZMNVFUCJTNY

QXGHEITPPYFWKUZFPZQUDEVLDBOMGRUEKFSCYTVNANLDRMNBYV

UTFNUJMUMMEOIXIISDVNZPMNRYRCTFUGZPDNUTLXJNSSVNCRJC

这个挑战也被称为 Bigram 600 挑战,这条信息由 600 个字母组成,并且截至目前,所有破解尝试都未能成功。

世界纪录 Playfair 挑战

尽管一般的双字母替代法看起来能够很好地保护一个 600 字母的明文,如上一部分的密文所示,Playfair 密码却被证明更容易被破解。根据目前的资料,使用随机 Playfair 矩阵(即没有关键词)的最短 Playfair 密文,已经被破解的由 26 个字母组成。我们将在第十六章中讨论这一记录,届时我们将探讨爬山算法。我们之前提到的 1936 年由 Alf Monge 破解的 30 字母 Playfair 密文,是基于一个关键词的,因此不算在此类别中。

2020 年 1 月,Klaus 总是挑战他的博客读者,发布了一个更短的 Playfair 密码,仅包含 24 个字母:^(16)

VYRSTKSVSDQLARMWTLRZNVUC

你能解读这条信息吗?如果可以,你可能会创下新纪录!

第十三章:13 缩写密码

如图 13-1 所示的信息,来自于雷·V·邓斯洛在 1931 年出版的《共济会守护者》一书中的例子。^(1) 方阵中的每个字母都是一个单词的首字母,最终信息应按列读取。例如,第一列代表以下句子:进入学徒的学位被划分为三个部分。

图 13-1:按列阅读时,这条信息中的每个字母代表一个单词的首字母。

任何以这种方式编码文本的系统都被称为...

第十四章:字典密码和书本密码

1918 年,第一次世界大战接近结束时,一家德国广播电台向墨西哥的接收人发送了以下消息:^(1)

49138 27141 51336 02062 49140 41345

42635 02306 12201 15726 27918 30348

53825 46020 40429 37112 48001 38219

50015 43827 50015 04628 01315 55331

20514 37803 19707 33104 33951 29240

02062 42749 33951 40252 38608 14913

33446 16329 55936 24909 27143 01158

42635 04306 09501 49713 55927 50112

13747 24255 27143 02803 24909 15742

49513 22810 16733 41362 24909 17256

19707 49419 39408 19801 34011 06336

15726 47239 29901 37013 42635 19707

42022 30334 06733 04156 39501 03237

14521 37320 13503 42635 33951 29901

49117 46633 02062 16636 19707 01426

11511 42635 11239 04156 02914 12201

23145 55331 49423 03455 12201 30205

33951 30219 50015 04156 43827 06420

23309 19707 33104 42635 00308 29240

05732 54628 01355 39338 02914 12201

06420 11511 24909 27142 33951 49223

49618 42022 42635 17212 55320 15726

12201 06420 38219 21060 46633 37406

43644 33558 22527

一家美国监听站记录了该消息并将其转发给美国战争期间的密码破译单位 MI-8 进行分析。MI-8 的著名负责人赫伯特·亚德利很快猜测到,这个密码是通过一种所谓的字典密码创建的。

我们将在本章中使用此消息的分析作为示例。

字典密码和书本密码的工作原理

字典密码,通常使用商业上可用的字典,通过记录单词在书中的页码和位置作为其密文表示。根据亚德利的报告,本章的第一个例子使用了克利夫顿的法语新词典的英法部分。例如,五位数字43827代表了该字典第 438 页上的第 27 个单词。(正如我们在第七章中讨论的那样,字典密码不是一种密码,因为它加密的是单词,而不是字母。)

以下列表解释了密码文中的第一行五个字母组:

  1. 49138(第 491 页,第 38 个词):电报

  2. 27141(第 271 页,第 41 个词):1 月

  3. 51336(第 513 页,第 36 个词):

  4. 02062(第 20 页,第 62 个词):

  5. 49140(第 491 页,第 40 个词):电报

  6. 41345(第 413 页,第 45 个词):报告

因此,明文的开头如下:电报 [来自] 1 月 2 日,来自西班牙通过圣安东尼·德尔马的电报报告已接收。

一种类似的加密方案可以通过任何其他书籍定义,例如小说。我们称这些为书本密码。由于通常在小说中找到特定单词非常困难(除非是像THEANDIF这样的常用表达),所以书本密码通常引用单个字母而不是整个单词,这也是它成为密码,而不是代码的原因。

使用书籍密码的著名人物是尼古拉斯·特里斯特(Nicholas Trist,1800–1874),他是美国的一位外交官,1848 年由总统詹姆斯·K·波尔克派往墨西哥,正值美墨战争结束之际。特里斯特与墨西哥政府谈判达成了一项条约,导致大量领土被吞并,成为了现代十个州的一部分或全部。^(2)

为了保护往来华盛顿的信件,特里斯特需要一种加密系统。他设计了两种加密方式,都使用书籍密码。请参见本章的“成功案例”部分,了解为找到正确书籍所需的侦查工作。

以下文本是用他的第一个密码(部分)加密的:

先生,

在我最后的信中,我说过:“我认为早日和平的可能性非常大。”随信附上的内容将证明这一点。1,2,3,10—15,13,4,1—39,26,11,31—44,75,121,31—/47,1,6,16/7,3,15,20,24,27,28,29/,,8,1,9/,,9,1/,,2,5/,,1,1/,,1,16,29/69,2,1/,,6,7/,,2,3,2/,,6,4,6,10,8/ 日期为 7 月 29 日:5,33,25,4—30,105,44,45,58—来自一位外国商人的来信 . . .

特里斯特使用的书是一本 1827 年的西班牙语学习教材:《西班牙语的真正原理》(True Principles of the Spanish Language),作者为 José Borras。特里斯特可能认为,在美国旅行者手中,这种书籍在墨西哥不会引起怀疑。

特里斯特第一个密码中的每个数字组,以逗号分隔,代表从《西班牙语的真正原理》一书中提取的一个或多个字母,具体方式如下:页码、行号、字母、字母 . . . 这意味着数字组1,2,3,10编码了两个字母,而数字组7,3,15,20,24,27,28,29编码了六个字母。

同样,47,1,6,16编码了两个字母。如果我们知道第 47 页的第一行是 . . .

表格第二十五:苍蝇与公牛

. . . 然后我们可以得出结论,数字47,1,6,16代表字母TH(空格和破折号不算在内)。如果一个数字组以两个缺失的数字开始(如,,2,3,2),则使用前一个数字组的页码和行号。

历史上还存在许多其他书籍密码。我们甚至在第六章中提到过一种:用于加密第二个比尔密码的系统,其中“书籍”是《独立宣言》。与通过三组数字(页码、行号和位置)来识别每个字母不同,比尔的密码仅记录单词的位置。这意味着《独立宣言》中的第一个单词是数字1,第二个单词是数字2,以此类推。为了编码明文,只使用单词的第一个字母。

尼古拉斯·特里斯特设计了第二种基于贝尔密码概念的密码,并使用与他其他密码相同的书籍。在一封信中,他提到“一封简短的便条 [发给] 121,13,1,2,17,5,9,20。”我们可以通过查看这本书的第一页来解密这八个字母,这些字母被加密在他的第二种密码中(见图 14-1)。如果你尝试解密,你会发现表达式121,13,1,2,17,5,9,20解密为MR THNTON。这可能指的是一位名叫 Thornton 先生的人。(特里斯特似乎遗漏了名字中的两个字母。)

图 14-1:尼古拉斯·特里斯特在其书籍密码中使用的《西班牙语言真理原则》一书的首页,西班牙语言真理原则

词典码和书籍密码在美国初期非常流行。在美国独立战争期间,叛徒本尼迪克特·阿诺德使用威廉·布莱克斯通爵士的《英格兰法律评论》进行加密,发送了许多书籍密码的信件。^(3) 由于书籍密码显得繁琐,他很快转而使用基于纳森·贝利词典的词典码。

亚历山大·汉密尔顿,美国开国元勋之一,也是林-曼努埃尔·米兰达同名百老汇音乐剧的主角,曾由他的岳父菲利普·斯凯勒描述了一个词典码系统,该系统基于 1777 年版的《恩蒂克拼写词典》。^(4) 历史没有记录汉密尔顿是否曾使用这个密码,但我们知道英美两国的军队都使用过这个词典进行加密。英国将领查尔斯·康沃利斯和亨利·克林顿在美国独立战争期间使用过它,而且有记录显示,美国副总统亚伦·伯尔——因在 1804 年与汉密尔顿进行决斗并致其死——也曾在他的信件中使用过 1805 年版的同一本词典。^(5)

如何检测词典码或书籍密码

检测词典码其实非常简单。例如,看看图 14-2 所示的二战时期的消息。^(6) 这是一个德语电报的英文翻译。^(7)

图 14-2:这份(已翻译的)来自二战时期的电报包含了两个词典码表达式。

数字24413454992可能是来自某个未识别的密码本的密码组,且与此处无关。

值得注意的是,这个密码包含了表达式264/6112/3。使用这种斜杠格式的常见加密方法有词典码和书籍密码。如果这个推测正确,264中的264/6可能代表页码,而6则代表单词或字母的位置。事实上,这两个表达式来自于Langenscheidt 的小型英德词典264/6代表PIER112/3代表DECEMBER

如果页面编号和单词位置之间没有明显的分隔,那么检测字典密码或书籍密码会稍微困难一些。这样的系统,例如,可以很容易与代码或命名法混淆(见第七章)。在这种情况下,以下是一些有用的信息:通常,字典页面上有不到一百个单词,通常甚至不到五十个。所以,如果密码包含以XXXYY形式的数字组,应该检查每个实例中YY是否小于五十。

当然,代码可能是反转系统,例如YY-XXX,或者其他某种混乱的方法。此外,如果数字大于五十,可能使用了书籍密码,其中大量的单词会适合在一页上。例如,Beale 系统从头到尾数过《独立宣言》中的几百个单词。

如何破解字典密码或书籍密码

破解字典密码或书籍密码可能非常困难。如果密码使用得当,并且密码分析员不知道所用的书籍,甚至可能不可能破解。然而,书籍有时可以被找到。此外,正如密码学中的常见情况一样,破译者可以利用加密者的失误来获益。

确定书籍或字典

破解字典密码或书籍密码最直接的方法是找到其所基于的书籍。我们已经在第六章看到过一个例子(可能是虚构的):根据 Beale 小册子,一名男子在识别出《独立宣言》被用作加密后破解了第二个 Beale 密码。

另一个(绝对是虚构的)例子出现在亚瑟·柯南·道尔 1915 年的福尔摩斯小说《恐怖山谷》中。在这部小说中,福尔摩斯收到了一条来自某个弗雷德·波洛克的加密信息,并怀疑他正在处理一本书籍密码的密码。福尔摩斯推测所用的书籍是广泛可得的,大型(至少有 534 页),每页有两列。大多数年鉴正好符合这些条件。

福尔摩斯首先尝试了他几天前才收到的《惠特克年鉴》最新版本,但没有成功。接着,他尝试了同一本书的前一版本——并且成功了。借助这本年鉴,福尔摩斯解读出了信息,并揭示了一个警告,说明“某些恶行”将会发生。当然,最终他解决了案件。

重建字典

在他 1922 年的著作《密码学》中,瑞士密码学家安德烈·朗吉报告了他被要求破解的下列密码:^(8)

5761 3922 7642 0001 9219 6448 6016 4570 4368 7159

8686 8576 1378 2799 6018 4212 3940 0644 7262 8686

7670 4049 3261 4176 6638 4833 4827 0001 3696 6062

8686 2137 4049 2485 7948 0300 9712 0300 4212 9576

2475 8576 8337 0702 9185

如上所示,消息由四十五个四位数字组成。乍一看,这不像是字典密码,因为将四位数字分为“页码”和“单词”号码并没有意义,除非所使用的字典大约有一百页,每页大约有一百个条目,这种情况并不太可能。

但是,如果消息的发送者按从头到尾的顺序对字典中的条目进行编号,而没有包含页码呢?当我们考虑到数字0001在此文本中出现了两次时,这种情况就变得更加可能。英文词典中的第一个条目通常是词条A。由于A是一个常见词,因此它在这样一个长度的文本中出现两次是合理的。

假设我们可能正在处理这种类型的字典密码。以下是文本中出现的四位数字的排序列表:

0001, 0001, 0300, 0300, 0644, 0702, 1378, 2137, 2475, 2485, 2799, 3261, 3696, 3922, 3940, 4049, 4049, 4176, 4212, 4212, 4368, 4570, 4827, 4833, 5761, 6016, 6018, 6062, 6448, 6638, 7159, 7262, 7642, 7670, 7948, 8337, 8576, 8576, 8686, 8686, 8686, 9185, 9219, 9576, 9712

除了0001,我们还可以看到其他组也有重复的情况:03004049421285768686

以下表格可能会有所帮助。它展示了从字母AZ的词汇在包含 10000 个最常见英文单词的字典中的分布情况。^(9) 除了单词的起始位置之外,这个表格还展示了对于某些字母来说,条目的页数明显少于其他字母。

A 0001 – 0643

B 0644 – 1178

C 1179 – 2160

D 2161 – 2755

E 2756 – 3177

F 3178 – 3599

G 3600 – 3926

H 3927 – 4295

I 4296 – 4717

J 4718 – 4800

K 4801 – 4877

L 4878 – 5216

M 5217 – 5710

N 5711 – 5871

O 5872 – 6109

P 6110 – 6960

Q 6961 – 7019

R 7020 – 7513

S 7514 – 8715

T 8716 – 9298

U 9299 – 9453

V 9454 – 9637

W 9638 – 9929

X 9930 – 9941

Y 9442 – 9971

Z 9972 – 10000

现在看看组0300,它在密码中出现了两次。如果我们对所使用的加密系统是正确的,那么很可能这个单词以A开头,并且第二个字母位于字母表的中间位置。AND是一个很好的候选词。

数字8686在密码中出现了三次,这使它成为此密文中出现频率最高的数字组。与之接近的是8576,它出现了两次。根据我们创建的表格,这些位置的单词应该以S开头。但字母表中是否有两个以S开头的常见英语单词如此接近呢?STILLSUCH可能是候选词,但进一步检查显示它们并不是很好的匹配。

相反,我们假设消息作者所使用的词典中的字母分布与我们表中的略有不同。或许看一下以T开头的单词会有帮助。事实上,有两个单词似乎适合:THETO。这个猜测得到了验证,因为在密文中出现了8686 8576,而TO THE是一个常见的词组。

根据我们的猜测,我们可以绘制出以下内容:

5761 3922 7642 0001 9219 6448 6016 4570 4368 7159

A

8686 8576 1378 2799 6018 4212 3940 0644 7262 8686

TO``THE``TO

7670 4049 3261 4176 6638 4833 4827 0001 3696 6062

A

8686 2137 4049 2485 7948 0300 9712 0300 4212 9576

TO``AND``AND

2475 8576 8337 0702 9185

THE

下一步是根据分布表尝试猜测所有其他的起始字母:

5761 3922 7642 0001 9219 6448 6016 4570 4368 7159

N G S A T P O I I R

8686 8576 1378 2799 6018 4212 3940 0644 7262 8686

TO THE C E O H H B R TO

7670 4049 3261 4176 6638 4833 4827 0001 3696 6062

S H F H P K K A G O

8686 2137 4049 2485 7948 0300 9712 0300 4212 9576

TO C H D S AND W AND H Y

2475 8576 8337 0702 9185

D THE S B T

毋庸置疑,从这里开始就变得困难了。我们需要猜测更多的单词,但我们只能知道每个单词的(可能的)首字母。

为了让事情稍微简单一点,假设我们知道明文的一小部分(即一个线索)。假设我们已经得知,这条消息是关于军事的,且包含敌人进攻的信息。事实上,第二行中的数字27996018可能代表ENEMY OFFENSIVE。如果是这样的话,1378,它位于TO THEENEMY OFFENSIVE之间,可能是COMING。第一行中的数字60166018OFFENSIVE)非常接近。最可能的解密结果是OF

第二高的数字9576可能是一个W开头的单词,或许是WEREWILL。接下来是2475,一个以D开头的单词,后面跟着THE。这可能是什么呢?按字母顺序,它出现在COMING1378)和ENEMY2799)之间。这两个词的间隔是1421,而13782475之间的差值是1097,大约是间隔的四分之三。这将我们引导到了DisDos。文本中还有另一个数字,它大致占据相同的词典位置:248524752485可能是DO。假设我们将DO分配给2485,并寻找一个适合我们上下文的、紧接着它的单词。字典文件向我们展示了DIVULGEDIVIDE。因此,数字03008576可能代表AND YOU AND I WILL DIVIDE THE

要解开其余的密文,我们可以使用类似的猜测。我们肯定会偶尔犯错,但每一个被确定的单词都会增强我们的立足点。我们猜的单词越多,找到更多单词就会变得更容易。这里是我们最终得到的明文。(第一个单词未知,但很可能是以M开头的名字。)

???? 已经获得了关于即将到来的敌人进攻的宝贵情报。我已被要求送给他五百英镑。这是揭发他的一个好机会。照做,你我将分担这笔钱。

以这种方式破解字典密码确实不容易。然而,正如本章“成功案例”部分所展示的那样,这是可能的。

把书本密码当作简单的替换密码来处理

根据其构造方式,书本密码也可以被看作是一个简单的替换密码、同音密码或命名法。这意味着我们可以使用每种类型的加密破解技术来解决某些书本密码密码。举个例子,看看我们在一本二手书《密码、暗号与密写》中找到的手写献辞,这本书是著名的马丁·加德纳于 1972 年出版的,是一本关于密码学的非常基础的入门书籍(见图 14-3)。^(10)

图 14-3:用书本密码加密的献辞

这是一个抄本:

1-11,1-9,1-4,1-4,1-12 78-3,3-3,1-8,1-5,1-11,5-1,1-9,1-12

解决这个密码的方法有很多种,但如果我们仅仅把它看作是一个简单的替换密码,我们可以采用以下策略。首先,让我们用字母替换每一组由连字符分隔的两位数字,从左到右,每次遇到新的数字对时引入一个新的字母。这将把这个密码转录为以下内容:

ABCCD EFGHAIBD

在许多符合ABCCD模式的单词中,有一个是HAPPY。(快速找到这样的单词模式匹配的方法是使用像 CrypTool 2 这样的程序。)如果我们然后根据字母替换,它给出了以下第二个单词:****H*AY。从这里猜测,明文很容易是HAPPY BIRTHDAY

作为另一种解决方法(可能是最初意图的方式),如果我们查看加德纳的《密码、暗号与密写》第一段……

密码学,消息的编写和解码……

……我们看到我们正在处理一个书本密码。在这里,1-11代表第一个单词的第十一字母H1-9代表第一个单词的第九字母A;依此类推。

成功案例

FIDES 广告

在 1862 年到 1866 年之间,伦敦报纸《泰晤士报》刊登了 23 条广告。每则广告都以单词FIDES开头,大多数广告至少部分加密过。^(11)以下是几个例子:

1862-10-31

FIDES(思考)。——不是神话,而是一个邻近的城市,我将被扣留一段时间。我将在星期一待几个小时,并且必须在 2 点到 3 点之间有机会与你见面。也许我会在这段时间内收到你的消息。请寄到 P.O.。

1864-06-22

FIDES.–DOCUMENTS will AWAIT your ARRIVAL at No. 3\. on and after Tuesday next. Both of your letters to hand. (58.62) (171.53) (248.74) (152.79) (223.84) (25.21) (222.64) (132.74). James gone to Egypt instead.

1864-07-21

FIDES.–(218.57) (106.11) (8.93) (17.61) (223.64) (146.7) (244.53) (224.21) (20) (192.5) (160.19) (99.39) (No. 8) (251.70) (1) (223.64) (58.89) (151.79) (226.69) (8.93) (40.12) (149.9) (248.101) (167.12) (252.35) (12.31) (135.100) (149.9) (145.76) (225.53) (212.25) (20) (241.6) (222.22) (78.45) (12.31) (66.28) (252.33) (158.33) (6.65) (20) (2) (11.50) (142.37) (223.87) (12.31) (142.37) (105.33) (142.37) (157.20) (58.62) (133.89) (250.86).

我们的FIDES密码来源,当然是 2005 年由 Jean Palmer(Tony Gaffney 的笔名)所著的《The Agony Column Codes & Ciphers》一书,我们在之前的章节中多次引用过该书。^(12) Gaffney 自己解开了书中列出的绝大多数加密广告;然而,在 2005 年这本书出版时,他还未能解开FIDES密码。

几年后,Gaffney 再次尝试解密FIDES密码,这次他假设自己处理的是一本字典密码,在这种情况下,像146.7这样的表达代表第 146 页的第七个单词。通过频率分析和广告中明文部分提供的线索,Gaffney 能够做出一些猜测。然而,为了彻底解决这个谜题,他需要找到所使用的字典。经过多小时在英国图书馆的搜索,他翻阅了至少 48 本 19 世纪的英文词典。第 49 本证明是符合要求的:Johnson’s Pocket Dictionary of the English Language,出版于 1862 年。

从那里开始,密码的工作原理变得清晰了。每对数字的第一个数字实际上是页码加一。第二个数字是从页面底部开始的单词编号,从右栏开始,然后继续向下到左栏。此外,1代表I2代表YOU20代表逗号或句号。

日期为“1864-06-22”的广告解密为DARLING PRECIOUS WEARY OAF THOU BETTER THAN LIFE。这些词语中的一些可能只有相关人员才会明白!完整的解密内容可以在 Klaus 2014 年的博客文章中找到。^(13)

Nicholas Trist 的关键著作

在本章前面,我们提到美国外交官 Nicholas Trist 在他驻墨西哥期间使用了两本书密码与美国政府进行通信。^(14) 加密历史学家 Ralph E. Weber 在他 1979 年出版的《美国外交密码和暗号》一书中描述了这些密码,但他无法解密 Trist 的所有信息,因为他不知道 Trist 所使用的书籍。^(15) 他只知道 Trist 的两个密码都是基于同一本书。

几年后,当密码学家斯蒂芬·M·马特亚斯读到韦伯的书时,他决定尝试解决这个谜团。马特亚斯注意到特里斯在一封信中提到了他的关键书籍的一些事实,描述它是一本题为“致英国民族”的小册子。他还提到,它至少分为两个部分,是由一位被派往西班牙担任领事的华盛顿人写的。此外,韦伯发现这本书的文本以“外语学习…”开头。

为了确认特里斯的主要作品的作者,马特亚斯编制了一份所有从华盛顿派往西班牙或西班牙殖民地担任领事的人员名单。最终名单包括大约五十人,其中许多人令人惊讶地出版了书籍。经过一番调查,马特亚斯确定了一个名叫何塞·博拉斯的最有希望的候选人。博拉斯是巴塞罗那的美国领事,在 1827 年出版了一本名为《西班牙语的真实原理》的书。这本书符合描述,特别是因为涉及外语。

马特亚斯设法在芝加哥的纽伯瑞图书馆找到了这本书的一本副本,它确实包含了他寻找的致辞和开头词。经过一些工作,谜团解开了,尼古拉斯·特里斯的通信得以解密。详见本章开头的例子。

威廉·弗里德曼如何破解印度阴谋加密

第一次世界大战期间,印度的印度教团体开始反抗他们的英国殖民者,这些团体的某些成员从美国运送武器和后勤支持。美国当局将这些印度阴谋者视为违反武器法的罪犯,并计划对友好的英国进行革命。

1917 年,英国苏格兰场的一名代表将从印度阴谋者那里截获的一叠加密信件转发给威廉·弗里德曼。当时,弗里德曼的破译生涯刚刚开始。

代表除了这些信件外,还向弗里德曼提供了一份嫌疑人名单,他可以用作破译的线索。不幸的是,这些信件和嫌疑人的名字从未被公开。关于这个故事的唯一可用信息(据我们所知)来自弗里德曼自己的 1920 年报告和 1996 年戴维·卡恩书籍《密码破译者》的短文。这两者都没有提供关于加密消息内容的详细信息。

根据弗里德曼的报告,密文由一系列按三组数字分组的数字组成,如 7-11-38-5-63-9-15。经过初步研究,弗里德曼得出结论,他正在处理的是一本书的密码。每个数字组似乎指向一本书中的页面、行和字母位置。例如,7-11-3 表示第 7 页第 11 行中的第 3 个字母。

弗里德曼不知道阴谋者可能使用了哪本书。然而,他意识到他们没有正确应用加密方法,因为只有消息中较重要的部分被加密了。那些保留为明文的部分给了弗里德曼一些有用的线索,帮助他推测消息内容。密文也以单词间断的方式呈现,揭示了单词的长度,而发送者则反复选择相同的数字组合来代表某些字母,尽管如果选择不同的页面、行和位置来编码相同的字符会更安全。

阴谋者使用的另一种糟糕技术是连续的数字序列,如 7-11-37-11-47-11-57-11-6,这揭示了某个单词或单词的一部分同时出现在明文和书中。例如,阴谋者可能使用密钥书中的单词 APPLE 来加密明文单词 APPLE,这意味着密文中的数字会是连续的。此外,发送者通常喜欢选择某一行中某个字母的首次出现,因此频繁出现的字母通常会获得较低的数字,而稀有的字母则用较高的数字表示。

在经过大量研究后,弗里德曼终于在其中一条加密信息中找到了一个片段,看起来是某个嫌疑人的名字。我们并不知道这个名字是什么,但在事件的描述中,卡恩提供了另一个弗里德曼可能猜到的文本片段。请看以下两组加密词(每组在不同的行):

83-1-2 83-1-11 83-1-25 83-1-1 83-1-8 83-1-13 83-1-18 83-1-3 83-1-1 83-1-6[line break]83-1-3 83-1-6

如果我们根据字母出现的顺序为每个字母编号,那么这两组词的字母组成了 1234567849 89 的模式。注意,字符 489 被重复了;如果使用现代的密码分析工具,这个模式可以很快被破解。弗里德曼注意到序列中的第三个字符,在密文中表示为 83-1-25,它的编号比其他字符高,表明它可能是书中某一行的第 25 个字母。弗里德曼怀疑这是一个罕见的字母;否则,位置编号会更低。通过坚持不懈的努力、直觉和一点运气,他终于确定这个字母是 V,而这两组词是 REVOLUTION IN

弗里德曼后来写道:

从中,我们逐步重建了消息的明文,不仅是消息的明文,而且我们可以相当确定地说,某本未知书籍的某页、某行上出现了“德国”一词。在另一页和另一行上,则出现了“政府”,而在其他地方则是“宪法”等类似词汇。凭借这样的证据,我们推断出这本未知书籍的主题是政治经济学。

随着阴谋者的审判临近,司法部告诉弗里德曼,他们认为了解关键书籍的书名将有助于说服陪审团相信消息已经被正确解密。弗里德曼和他的团队联系了美国和英国的书商,询问是否有一本政治经济学的书,书中某些特定位置有特定的词汇。然而,当审判开始时,书籍仍未被确定。

弗里德曼准备在法庭上解释这个密码,而不引用所使用的书籍——然后,在芝加哥的一家酒店里,他正等待安排作证的时间时,偶然走过了芝加哥最大书店 McClurg's。翻阅政治经济学部分时,他发现自己手中拿着他一直在寻找的书:《德国与德国人》,作者 Price Collier(1913 年)。谜团终于在最后时刻解开。

当弗里德曼再次核对他的工作与书籍时,他发现自己 95%以上的结果是正确的。我们的资料没有提到弗里德曼的证词是如何被接受的,但我们知道,许多印度阴谋者被判有罪。这是弗里德曼职业生涯中的第一次重大破译成功,之后他还有许多类似的成就。

发送给罗伯特·E·李的字典密码消息

图 14-4 展示了一封 1862 年发送给美国内战将领罗伯特·E·李的加密便条。(19)(我们在北卡罗来纳大学教堂山分校路易斯·朗德·威尔逊特藏图书馆创建的《美国内战日记》网站上找到了这份文件,(20) 也在佐藤智清的 Cryptiana 网站上找到了这份文件。^(21))该消息的加密部分由若干单元组成,每个单元由一个数字、一个字母(LMR)和另一个数字构成。

图 14-4:这条发送给罗伯特·E·李的消息使用了字典密码加密。

以下是由密码爱好者 David Allen Wilson 和 Thomas Bosbach 提供的加密便条的文字记录:

2017 年 8 月 31 日

罗伯特·E·李将军 1862 年 4 月 8 日

这里有 45 个 R 1,对应 174 个 R 16 40 M 10\. 228 L 33\. 更多的是 108 L 13\. 250 R 18,其中 153 R 22 239 L 29\. 将会 157 R 17\. 政府能否为 176 M 23 250 R 18 提供 195 R 11 45 R 1? 我希望 174 R 16 40 M 10 能在明天 56 L 26 之前足够。

J.E. Johnston

这种模式最可能的解释是,这些密文段落使用了字典密码加密,每个单元的第一个数字代表页码,字母代表列(左、中或右),第二个数字代表行。该书可能是一本至少有 250 页,每页有三十三行的英文字典。

在一些单元的上方,已经有人写下了似乎是提议的明文表示。例如,45 R 1 被解密为 ARMS,而 228 L 33 显然代表 ROUTE。这些解密正确吗?如果正确,为什么作者只解密了部分单词?那个以 ROUTE MORE TO 开头的第二个句子是否有意义?而且,ARMS 这个词出现在一本 250 页的字典的第 45 页上是否合理?这本字典可能只有几页是以字母A开头的单词。可能这个密码涉及更多技巧,比如将数字加到页码上,但美国内战期间流行的加密系统通常并不复杂到这种程度。

克劳斯在 2017 年于他的Cipherbrain博客上发布这段加密信息时,并不知道这些问题的答案。几位读者开始寻找可以解释密文部分的字典。这项搜索被简化了,因为在 1860 年代出版的英文字典并不多,这些字典每页有三列,大约 250 页。最终,一位昵称为 Davidsch 的读者找到了它:1857 年版的诺亚·韦伯斯特,威廉·格林利夫·韦伯斯特字典。很快就清楚了,上述一些密文单元所标注的疑似明文表示是错误的。

使用字典后,博客读者托马斯·博斯巴赫很快提供了以下信息的解密(明文解密部分括在括号内):

这里有 45R1(汽车)用于 174R16(一个)40M10(旅)。228L33(六个)更多的到 108L13(跟随)。250R18(三个)他们,153R22(长)239L29(街道)将 157R17(行进)。政府不能为 176M23(其他)250R18(三个)购买 45R1(汽车)吗?我希望足够的 174R14(一个)40M10(旅)将 56L26(明天)到来。

挑战

丹·布朗的书籍密码挑战

在丹·布朗 2003 年畅销小说达·芬奇密码的封底右下角,可以看到一个深色印刷的圆形图案:

下面是转录内容:

20 11 11 68 • 1 10 11 61 15 • 5 8 73 11 •

每个数字都对应于小说中相应章节的第一个字母。(对于那些没有这本书的读者,我们提供了此信息 codebreaking-guide.com/challenges/。)当正确排列时,这些字母拼出了一个拉丁语句子,代表了美国的座右铭。

字典密码挑战

2018 年,克劳斯在他的博客上发布了一个字典编码挑战。^(22) 为了创建他的字典,他首先寻找了一份包含 10,000 个最流行的英语单词、缩略语和首字母缩写的文本文件,然后进行了几处修改(比如添加了“ZZTOP”等单词,删除了一些其他的单词等),以防止任何密码破译者猜出他使用的文件。接着,他将单词按字母顺序排列在电子表格中。最终的列表成为了他的密码本,每个单词都有一个位置编号。以下是该列表的开头和结尾:

0001: A

0002: AAA

0003: AAAA

0004: 亚琛

0005: AARON

0006: AATEAM

0007: AB

0008: 废弃

0009: ABC

0010: 阿伯丁

. . .

9992: 区域划分

9993: 动物园

9994: 放大

9995: 动物恋

9996: ZOPE

9997: ZSHOP

9998: ZSHOPS

9999: ZUT

10000: ZZTOP

该单词列表不仅包含完整的单词和缩写,还包括 26 个字母。这些字母被当作普通单词处理,例如,E排在DYNAMICSEACH之间。如果想加密的单词不在字典列表中,可以逐字母进行编码。使用这个密码本,克劳斯加密了大约 70 个单词的明文,得到了以下密文:

8456 0619 8928 6116 9216 5992 9061 1263 0001 5326 2272 2827 5884 1142 8993 4906 8322 6163 8928 6841 6694 3564 8928 7658 6323 8928 1142 0212 0016 6207 4906 8785 0001 5069 0371 9647 0307 8928 9652 0212 8192 4316 5602 9967 9804 7254 0001 5385 4424 8928 1449 6163 4714 8949 4692 0001 8515 2212 6205 8928 7278 8131 6163 4714 9967 9804 3458 0001 9861 1390 2012 0001 2546 8926 9804 4139 9967 9061 2365 8928 5992 5589

博客读者诺伯特·比尔曼当天就解开了这个谜题。你也能做到吗?

未解密的密码谜题

1873 年的两则加密报纸广告

1873 年,两则加密的报纸广告在伦敦的《每日电讯报》上刊登。(23), ^(24) 它们在此被重现。(请注意,TOUJOURS BLEU是法语,意为ALWAYS BLUE。)

1873-02-07

TOUJOURS BLEU.–7.64\. 13,141\. 24.24\. 18,299\. 1,317 8,481X–1,274\. 32,561 29,375 13,127 28,801\. 32,561\. 21,8 21,221X 28,59\. 39,629\. 28,59 39,629 29,544 25,138 29,219 7,64X–29,219 17,77 6,582 1,384 16,243 29,219 19,367 8,226 18,176 33,383X–36,547\. 8,39 2,379 2,4 27,609 32,561 9,324 21,367 9,629 28,59 12,361 32,104 6,381 1,268 38,498 25,411 32,561 2,140X–1,268 14,527 33,212 38,616 8,335X–2,495 3,379 20,320 32,561 29,422 1,257 24,24 24,485 40,618 1,268 40,338 15,198\. 21,367X–19,420 2,407X–25,618 11,390 40,629 32,252 27,538X–18,411 10,422 2,185X–27,254 2,221X–40,204 8,347 20,388 8,347 40,325 8,347 36,621 8,347 25,239 32,24 1,268 8,306 1,268 8,306 1,268 5,58 40,629 5,19 5,19 4,386X 22,451 29,329 22,451X–12,262X 15,50 10,66X 13,572 32,561 1,384 12,579 12,194 40,325X 8,347 7,518 12,629 29,219 26,106 1,624 21,556X 40,238 16,438 2,555X.

1873-02-27

ANTETYPE.–8.347, 20.388X 1.317, 12.269, 20.28, 10.622, 15.50, 2.495 8.481\. 32.561\. 8.501X 1.268, 32,252, 12.455, 1.317, 8.226, 6.630 9.266, 2.4, 7.73X 24.627, 32.561, 27.556, 31.302\. 28.185, 19.31X 25.264, 1.268, 32.252, 12.629, 29.219, 2.555X 21.367, 9.629, 12.361, 15.50, 25.138X 1.268, 13.572, 35.562, 2.555X 1.268, 8.306, 39.558, 11.606, 7.518X 40.204

两个广告主要由数字组组成,这些数字组通过句点或逗号分为两部分。句点/逗号前的数字小于句点/逗号后的数字,这种模式与书籍密码一致。像12.269这样的表达可能代表某本书第十二页的第 269 个字母。某些数字组末尾的X可能意味着,该组代表一个完整的单词,而不仅仅是一个字母。目前对于这两个密码的了解并不多。

第十五章:额外的加密方法

本书至今为止描述的技术包括许多加密算法,这些算法是在密码机和计算机发明之前使用的。如果你遇到的是 1900 年之前创建的密码文献,那么使用的加密方法很可能在本书中有所涉及。如果你处理的是加密信件、明信片或日记,无论它们写于何时,情况也是如此。许多二十世纪的加密文献也使用了本书中提到的某种加密系统,尤其是那些与军事或情报无关的文件。

然而,至今为止,我们尚未在本书中详细介绍许多加密方法。在接下来的章节中,我们将简要介绍其中的一些。^(1)

密码工具

如第二章所述,密码盘或滑动盘可以用来应用简单的替代密码或多表替代密码。在密码学的历史中,人们开发了许多种类的密码盘和滑动盘,以及其他许多工具。例如,有的密码盘有多个字母环,有密码圆筒,还有条形密码(见图 15-1),这些都只是其中的一些。尽管大多数这些工具实现的是替代密码,但所谓的斯凯塔尔(发音为“ski-ta-li”),即缠绕在棍子上的条形物,也可以用来实现一种简单的换位密码。^(2)

图 15-1:密码工具存在多种变体。密码盘(a)、密码圆筒(b)、条形密码(c)和斯凯塔尔(d)在历史上被广泛使用。

如果你在寻找与密码工具相关的有趣成功故事,我们推荐 Luis Alberto Benthin Sanguino 的 2014 年硕士论文《通过组合组合学和统计方法分析西班牙内战密码》。^(3) 如果你对密码工具挑战感兴趣,可以查看 MysteryTwister 上的 M-138 问题。^(4)

语音加密

电话在十九世纪末开始广泛使用,随后几十年后,语音无线电也进入了人们的生活。两种技术都可能被不请自来的第三方窃听。尤其是无线电通信面临较大威胁,因为监听者只需要一根天线和一台无线电设备就能窃听,这就是为什么语音加密——也称为“加密语音”(ciphony)——不可避免地成为了一个重要问题。尤其在军事领域,早期采用电话和语音无线电的军方,对安全、便捷的语音加密设备有着迫切需求。

语音加密需要与文本加密完全不同且远为复杂的技术。当工程师在 20 世纪初开始研究语音加密系统时,他们面临着许多严峻的挑战。那时,语音传输是模拟信号,即使到今天,安全地加密模拟信号仍然非常困难。因此,几乎所有第一代语音加密设备都使用了可以轻易破解的算法,这一点也不足为奇。

在第二次世界大战期间,战争中的主要国家都未能设计出既安全又能以合理价格建造的语音加密设备。战争中最著名的语音加密机是 SIGSALY,这是美国人制造的一种设备。它极为复杂,占据了整个房间。SIGSALY 使用一次性密钥方案对数字化语音数据进行加密,密钥存储在黑胶唱片上。SIGSALY 可能是第二次世界大战中唯一安全的语音加密手段。然而,这项技术非常昂贵,导致只有少数几台设备被制造出来。这些设备仅在最高级别的军事层面使用。^(5)

冷战初期,语音通信逐渐取代了摩尔斯电码无线电通信。同时,语音加密技术变得更加重要,并取得了显著进展。这些设备变得更小、更易操作且更便宜,而新的数字化方法结合新的密码算法提供了更高的安全性。在这一时期,数十种甚至数百种加密电话和无线电设备被开发出来,主要用于军事和外交用途。然而,关于这些冷战设备使用的加密方法知之甚少,因为大部分信息至今仍然属于机密。

随着计算机的出现,数字化语音可以作为二进制代码处理,这些二进制代码由一连串的零和一表示,并可以通过与加密文本和图像相同的算法进行加密。当数字手机在 1990 年代开始广泛使用时,许多手机已经配备了加密模块。如今,包括 GSM、UMTS 和 LTE 在内的所有移动电话标准都已包含加密功能——尽管默认情况下,只有手机与基站之间的无线连接是受保护的。

从一方到另一方的语音通信加密(称为端到端加密)仍然是军事和外交领域的专有技术。用于此目的的设备通常价格昂贵,并依赖于不公开的加密算法。在普通用户中,端到端语音加密仍然很少被使用,尽管一些支持加密通信的智能手机应用逐渐受到欢迎。

据我们所知,市场上并没有一本关于语音加密历史的全面书籍——尽管这样的作品可能会非常有趣。然而,有一本精彩的 2011 年出版的书籍《如何毁掉一个美丽的海滩》(作者:戴夫·汤普金斯),涵盖了语音数字化的历史。书中包含了许多关于语音加密的迷人信息,包括 SIGSALY。((6))此外,《如何毁掉一个美丽的海滩》还涉及了语音数字化器(通常称为声码器)在音乐和其他领域的应用。((7))

由于语音加密与本书重点介绍的文本加密方法完全不同,破解语音加密需要采用与我们已介绍的破译方法截然不同的技术。在语音加密的早期,密码分析主要是解码模拟信号,这通常并不难。随着冷战初期语音数字化的到来,破解者的任务变得越来越具有挑战性。如今,语音加密密码分析已经不再是一个独立的课题,因为用于此目的的算法与其他基于计算机的加密方法并没有太大区别。

密码通话

与其使用机器进行语音加密,不如由人类将信息翻译成鲜为人知的语言。这种方法被称为密码通话。大多数读者可能知道,美国在第二次世界大战中成功地应用了这种技术,使用的是纳瓦霍(迪内)密码话务员。(^(8))2002 年上映的好莱坞电影《风语者》,由尼古拉斯·凯奇主演,讲述的就是这一实践。

然而,纳瓦霍密码话务员并不是唯一使用这种技术的人,甚至也不是最早的。在第一次世界大战中,美国陆军就招募了切诺基、乔克托以及其他美洲原住民作为密码话务员,尽管那时语音无线电技术尚未普及。英国人也雇用了切诺基人,加拿大也使用了美洲原住民密码话务员。

这些努力的规模不断扩大。三十年后,在第二次世界大战期间,电话和语音无线电发挥了更重要的作用。密码通话在更大规模和更系统化的方式下得以应用。在多个项目中,美国军方从超过三十个美洲原住民部落招募了密码话务员。最著名的要数纳瓦霍人,他们在太平洋战区工作,并且有着复杂的密码,包含几百个术语。第二大团体是科曼奇族密码话务员,他们在欧洲参加了战斗。(^(9))

二战中代码讲解员的工作不仅仅是将信息翻译成他们的母语。他们还应用了一种基于自己语言的代码,通常包括拼写字母表,帮助代码讲解员传输无法翻译的姓名、地理名称和其他词汇。此外,还引入了军事术语的密码词,这些术语在代码讲解员的语言中没有对应的词汇。在许多情况下,TURTLE代表TANK(坦克),而鸟类名称则代表不同种类的飞机。在投入使用前,每个代码讲解员都会接受代码培训,并熟悉他们将使用的无线电技术。

二战中的美国“代码讲解员”非常成功。应用的语言代码没有已知被破解的情况,代码讲解本身也非常高效。通过代码讲解员加密、传输和解密语音信息,比通过加密的摩尔斯电码传送要快得多,且更不容易出错。

战后,代码讲解员逐渐被淘汰。由于语音信息记录的便利性以及语言学家分析口语语言的新方法的出现,代码讲解变得不再安全。此外,在冷战期间,新型高效的语音加密技术出现,它们更加安全且易于使用。

如今,专家们可能借助语言计算机程序破解几乎所有类型的代码。破解这种信息,当然需要与本书中描述的不同的方法。这更多是语言学的问题,而非密码学问题,解决方案的最佳策略在战时密码书中有所记载。目前,这些资料可以在网上找到。^(10)

速记(速记法)

在图 15-2 所示的明信片上,约 1910 年发送的消息使用了所谓的速记。^(11) 速记法是一种提高书写速度和简洁性的写作方法,通常让经过训练的人能够实时记录口语。有些人也使用速记进行低级加密(例如用于明信片)。

图 15-2:用皮特曼速记法写的明信片,提供者:Dale Speirs

速记的写作技巧被称为速记法——不要与隐写术混淆,隐写术将在后面的章节中解释。速记在录音和听写机发明之前被广泛使用。秘书、记者、警察以及许多人都接受过速记训练,并在他们的职业中使用这种技巧。

经过几个世纪,许多速记脚本应运而生。大多数速记系统是为某种特定语言设计(并因此优化)的,因此不同的速记系统在不同国家广泛使用。在英语国家,通常会遇到 Pitman 速记,它在英国最为流行,由艾萨克·皮特曼爵士于 1830 年代开发;或者 Gregg 速记,它在美国最为流行,由约翰·罗伯特·格雷格于 1880 年代开发。^(12) 许多其他速记系统则未能普及。

几乎所有对历史破译感兴趣的人都或多或少会遇到速记文本。计算机时代之前的专业密码破译者也必须处理这种速记,因为他们的客户通常无法区分速记与加密方法——或者根本不在乎。

即使不太了解速记学,通常也不难识别一段速记信息。大多数速记脚本看起来都很相似;以下摘自查尔斯·狄更斯的《圣诞颂歌》的一段文字,采用了 Gregg 速记系统(见图 15-3),是一个典型的例子。^(13)

图 15-3:查尔斯·狄更斯 1843 年版《圣诞颂歌》中的两页 Gregg 速记文本

几乎所有的速记脚本都是基于简单符号,尤其是简短的线条字符。之所以如此,是因为这些简单符号可以流畅地组合成单词和句子。如果遇到符号更复杂的脚本,它可能就不是速记。

一些字形代表字母,其他的则代表常见的字母组合、单词或短语。以下是一些 Gregg 速记中的常见单词:

一位经验丰富的使用者还可能将多个单词合并写出,而不是分开写。

本节开头展示的明信片采用了 Pitman 速记编码。消息内容如下:

I was very disappointed and

annoyed to find on my arrival at the

station at 5.5, that the train which I thought

always left at 5.15

had left very much earlier

解码一段速记信息通常不被视为密码破解行为。在大多数情况下,只需识别出使用的速记方法,并请懂得此速记的人解释符号的含义(或使用速记描述自己解码)。现在也有一些网页工具可以接受纯文本并将其转换为 Gregg 或 Pitman 速记。只有在极少数情况下,当处理一种特别陌生的速记时,才需要进行密码分析。在这种情况下,速记信息应被视为一个命名法(nomenclator),因为它可能同时包含字母的密码系统和代表整个单词的符号。

隐藏信息(隐写术)

十七世纪的绘画出现在图 15-4 中(由 Gerhard Strasser 提供给我们),展示了一棵苹果树。(14), (15), (16) 初看这幅画没有什么可疑之处。然而,通过使用我们添加到原图中的标记(位于图片底边),我们可以将这幅画分成十七列,每列包含一个苹果。最上方的苹果位于I列,第二个苹果位于N列,第三个苹果位于D列,依此类推。如果我们从上到下阅读整幅画,苹果们拼出了以下拉丁语句:INDE HIC LONGAT IBI SINT TEMPORA PROSPERA FIAT愿你在此长寿并生活幸福)。

这幅不起眼的画作中隐藏的信息是隐写术(steganography)的一例,隐写术是指在图片、文字和其他物体中隐藏信息的做法。它有时被称为密码学的“姐妹”。而密码学是伪装信息,隐写术则是隐匿其存在。这个术语源自希腊语词根steganos,意思是“覆盖”或“屋顶”,和graphein,意思是“写作”。

图 15-4:这幅图中的苹果编码了一条信息。

隐写术有着数千年的历史。例如,希腊历史学家希罗多德描述了将信息刺在奴隶头上的隐写术技巧。其他故事包括将信息写在木板上,然后覆盖上一层蜡,或者将信息隐藏在女性珠宝的图案中。还有许多其他隐写术的例子。以下列表列出了一小部分隐写术技巧。如果你想了解更多关于隐写术的内容并且能阅读德语,我们还推荐克劳斯于 2017 年出版的书籍《Versteckte Botschaften》。^(17)

  • 古希腊人知道今天所谓的同情墨水(sympathetic ink),这是一种无色液体,用来在纸上写下不可见的信息。如果纸张被加热(或以其他方式处理),写的内容便会显现出来。这项技巧已经被无数学生使用,他们通常通过在柠檬汁中写下秘密信息来藏匿消息,但其实还有数百种其他液体也可以作为同情墨水使用。例如,果汁、糖水、尿液和许多其他有机液体都非常适合,因为它们在加热时都会显现出来。更复杂的同情墨水需要用某些化学品处理才能显现。几个世纪以来,同情墨水一直是间谍与其案件主管沟通的最实用方式,在冷战期间,化学家们开发了极为难以被邮件审查员察觉的高科技同情墨水。如果你想了解更多关于同情墨水的内容,可以阅读 Kristie Macrakis 于 2014 年出版的书《Prisoners, Lovers, and Spies》。^(18)

  • 隐藏信息的方式有很多。例如,可以通过编写文本使得每行的首字母拼出一条信息(这种技术称为首字母隐写)。其他方法包括标记某些字母,或者以某种方式编写文本,比如每隔十个字母就拼出一条秘密信息。这些技术曾被囚犯、士兵和人质用来绕过审查。其他常见的技术包括使用模板从文本中选择特定字母或单词(即所谓的卡尔丹格里尔)。一个著名的例子是英国将军亨利·克林顿在 1777 年美国独立战争期间使用的“沙漏密码”(见图 15-5)。^(19)

图 15-5:1777 年,英国将军亨利·克林顿写了一封看似不起眼的信给他的上司威廉·豪。如果在文本上方放置一个沙漏形状的模板,就能看到真正的消息。

  • 20 世纪最著名的隐写术使用者之一是一位年轻的美国海军军官,他后来成为了总统:约翰·F·肯尼迪。^(20) 正如我们在第十二章中所讨论的那样,在肯尼迪和他的船员逃脱鱼雷艇PT-109号沉没后,^(21) 澳大利亚海岸守望员雷金纳德·埃文斯中尉派遣了五支索罗门群岛人队伍中的一支去寻找他们。在几天的搜寻后,其中一支队伍找到了肯尼迪和他的队员。由于救援者比乌库·加萨和厄罗尼·库马纳不会说英语,加萨用刀具在椰壳上刻下了一条信息,告诉肯尼迪把英文信息刻到椰子上。这样,他们可以将信息带在身上,而不会引起日本人的怀疑。信息内容是:NAURO ISL COMMANDER . . . NATIVE KNOWS POS’IT . . . HE CAN PILOT . . . 11 ALIVE NEED SMALL BOAT . . . KENNEDY。这个隐藏的信息最终传达给了埃文斯,他随后协调了一种方法,带领被困的人穿越日本防线,回到盟军基地。后来,约翰·F·肯尼迪将这个椰壳作为桌面压纸器放在椭圆形办公室中(见图 15-6)。

图 15-6:这块椰壳上的信息帮助约翰·F·肯尼迪在二战中获救。在他担任总统期间,他将其作为压纸器使用

  • 今天,隐写术可以通过计算机实现。有许多程序可以将信息隐藏在数字图像、视频和其他数据中。

  • 最后,这本书中也隐藏了一条隐写信息!如果你需要线索,可以从漫画开始仔细寻找。。。

寻找隐藏的隐写信息被称为隐写分析,这类似于密码分析(即破译密码),但在系统化操作上更为困难。就我们所知,关于隐写分析(与隐写术相对)的书籍或全面研究论文至今尚未出版。

成功故事:埃隆卡是如何在墓碑上发现隐藏信息的

位于华盛顿特区的阿灵顿国家公墓是美国最著名的公墓。这个国家圣地有超过 40 万个墓碑,其历史可追溯到 19 世纪。作为主要的军事公墓,它安葬了许多著名人物,其中包括著名的密码学家威廉·弗里德曼和伊丽莎白·弗里德曼。伊丽莎白·史密斯·弗里德曼(1892–1980),美国历史上伟大的密码分析师之一,曾为美国海军、海岸警卫队及许多相关机构工作。在 1920 年代禁酒时期,她在海岸警卫队工作时破解了许多走私酒的加密系统。^(22)

伊丽莎白的丈夫威廉(1891–1969),在他们在河岸实验室交往期间,伊丽莎白向他讲解了密码学的知识,他从最初的基因学家转型,成为美国历史上最著名的密码学家。在他长达数十年的美国陆军职业生涯中,他破解了成千上万的密码,领导了许多著名的破译团队,并撰写了几部开创性的密码学著作,甚至创造了“密码分析”和“巧合指数”这两个术语。

弗里德曼夫妇不仅在职业上对密码学感兴趣,他们还喜欢解谜和破解密码。因此,当他们的墓碑在阿灵顿国家公墓上时,隐藏了一个隐写信息(见图 15-7),这一点也不足为奇。墓碑是伊丽莎白在 1969 年丈夫去世后所委托制作的。直到 2017 年,埃隆卡(Elonka)发现这一信息的存在才为人所知。^(23)

2017 年,埃隆卡搬到华盛顿特区后,她的第一次区域探索之一就是参观阿灵顿国家公墓,去看弗里德曼夫妇的墓地,因为埃隆卡非常崇拜他们的工作。她完全预计会在他们的墓碑上发现某种隐藏的信息,但当她看到墓碑时,发现它看起来非常普通。尽管如此,她还是拍了很多照片,并在当天晚上在推特上发布了一条关于她参观的消息。

一位同事、记者杰森·法戈内(Jason Fagone)告诉她,他正在为一本关于伊丽莎白的新书进行研究。他转发了一些他拍摄的伊丽莎白墓碑草图的照片,这些照片是在弗吉尼亚州列克星敦的乔治·C·马歇尔图书馆和博物馆找到的。杰森在马歇尔档案馆花费了大量时间,研究他那本出色的伊丽莎白传记《打破密码的女人》,这本书将在当年晚些时候出版。^(24)

一张照片展示了埃丽莎白于 1969 年手写的便条,便条上画有她为威廉的墓碑设计的铭文草图。草图上包括了威廉的名字和生卒日期,空白处留给埃丽莎白的个人信息,以便她去世后补充。在墓碑底部,是一句话“KNOWLEDGE IS POWER”,这句话贯穿了威廉和埃丽莎白一生的主题。埃丽莎白于 1980 年去世时,她的个人生活细节也被加到了墓碑上。

在检查埃丽莎白的草图时,埃隆卡注意到了一种潜在的隐写信息,隐藏在字母使用略有不同字体的方式中。这个信息隐藏在“KNOWLEDGE IS POWER”的雕刻中,结果证明它使用了贝肯密码——这是一种弗里德曼夫妇熟知的密码系统。他们以前也使用过这种隐写技术。

贝肯密码是由哲学家弗朗西斯·培根在十七世纪初发明的,可以用于在任何文本或图片中隐藏信息(“任何事物都可以代表任何事物”)。^(25)为了将其应用于文本,我们需要两种不同的字体,A 和 B。在以下示例中,我们使用普通字母作为字体 A,粗体斜体字母作为字体 B。通过使用这两种风格,我们可以通过改变粗体斜体字母的位置来对字母表中的所有字母进行编码(培根使用了一个二十四字母的字母表),如在单词HOUSE中所示:

A: HOUSE B: HOUS``E C: HOU``S``E D: HOU``SE

E: HO``U``SE F: HO``U``S``E G: HO``US``E H: HO``USE

I: H``O``USE K: H``O``US``E L: H``O``U``S``E M: H``O``U``SE

N: H``OU``SE O: H``OU``S``E P: H``OUS``E Q: H``OUSE

R: H``OUSE S: H``OUS``E T: H``OU``S``E U: H``OU``SE

W: H``O``U``SE X: H``O``U``S``E Y: H``O``US``E Z: H``O``USE

使用这种系统,将单词WILLY隐藏在文本THIS IS AN ORDINARY SHORT TEXT中,将会呈现如下效果:

T``H``I``SI S``A``NOR D``I``N``A``R Y``S``H``O``R T``T``EX``T

或者,以保留自然单词边界的方式写成:

T``H``I``S IS A``N ORD``I``N``A``RY S``H``O``R``T T``EX``T

图 15-7:威廉和埃丽莎白·弗里德曼的墓碑上刻着一个隐藏的信息,出现在“KNOWLEDGE IS POWER”这句话中*。

贝肯密码是历史上已知的最早的二进制编码之一,比莫尔斯电码早 200 多年,比 ASCII 码早 300 多年。当埃隆卡仔细检查弗里德曼夫妇的墓碑时,她实际上在“KNOWLEDGE IS POWER”这句话中发现了一个贝肯密码的信息。构成这句话的一些字母带有衬线(字体 A),而有些则没有(字体 B)。这种差异在E字母上最为明显;注意,KNOWLEDGE中的EPOWER中的E略有不同。将带有衬线的字母与没有衬线的字母分开,并使用我们常规的普通字母和粗体斜体字母的系统进行转录,得到如下结果:

K``N``O``WLED``G``E I``S P``O``W``E``R

使用五个一组的贝肯密码,可以轻松破译:

K``N``O``WL ED``G``E``I SP``O``W``E R

这三个组编码了字母WFF。这些是威廉·弗雷德里克·弗里德曼的首字母。虽然消息简短,但这非常典型地代表了弗里德曼夫妇的风格。

成功故事:破译《Steganographia》

1500 年,德国修道院院长和人文主义者约翰内斯·特里特米乌斯(1462–1516)完成了他的九十多部作品中最为卓越的一部——三卷本《Steganographia》。前两卷描述了超过五十种我们怀疑永远不会成功的通信方法。这些方法要求发送者施放某种魔法咒语,使得一个鬼魂显现出来。然后,这个鬼魂通过其他若干个支持鬼魂的帮助传递信息。接收者需要施放另一种魔法咒语才能接收信息。对于这一过程的每一种变体,特里特米乌斯都提供了详细的参数列表,比如支持鬼魂的数量和名称。

Steganographia 一书迅速声名鹊起,因为很快人们就知道,书中描述的魔法通信技巧不过是骗局。其真正目的在于将信息编码在参数中:Trithemius 将信息伪装成魔法过程的描述,这是一种隐写术。实际上,Steganographia 这个书名也赋予了隐写术这个科学名称。数百年来,“隐写术”这个词与“密码学”同义使用,直到大卫·卡恩在 1967 年出版的《破译者》一书中普及了本章开头所给出的定义。^(26)

在这里,我们介绍一个Steganographia 的通信方法,参考了 Jürgen Hermes 在 2012 年博士论文中提供的描述。^(27) 该方法列出了以下支持“鬼魂”:

Maseriel. Bulan. Lamodyn. Charnoty. Carmephin. Iabrun. Care. Sathroyn. Asulroy. Beuesy. Cadumyn. Turiel. Busan. Seuear. Almos. Ly. Cadusel. Ernoty. Panier. Iethar. Care. Pheory. Bulan. Thorty. Paron. Vemo. Fabelrenthusy.

如果只读取每个单词的第二个字母(我们已加粗为便于辨认),则会得到以下的拉丁短语(请注意,我们区分了UV,以及IY,它们在历史上曾互换使用):

VACANTIBUS TRIBUS TRES VALENT ITA PER TOTUM

这句话翻译为AFTER THREE EMPTY ONES, THREE ARE VALID, THUS THROUGHOUT,它是解密《隐写术》同一章节中另一段文本的指令。根据这些指示,读取消息时需要跳过前三个词,取下三个词的首字母,再跳过接下来的三个,以此类推。我们得出了以下结果(有效的首字母已加粗以供澄清):

全能永恒的上帝bonorum remunerator æquissime,您愿意让您的儿子nostri generis esse 参与其中,以便redimeret,diabolica inuidia 我们最悲惨的:您通过sola benignitate redundans,接受了我们没有腐败的形式,来自flore virginalis uteri,天使sancto Gabriele insinuante,告诉你,圣母永远保持贞洁,immaculata clarior hominib。天使和灵魂更加卓越。Genuit regem omnipotentem,神和人,santissima et reuerendissima 圣母玛利亚,永远不知男人的伴侣,毫无痛苦地生育,sine tristitia vagientem 神和人一起迎接,semper ...

加粗的字母拼出以下德语消息:

BRÆNGER DIS BRIEFS GIBT SICH GROSER CONST US

这意味着:THE CARRIER OF THIS LETTER CONSIDERS HIMSELF VERY SKILLED。与《隐写术》中的所有消息一样,这条消息的内容并不如其隐写式的传递方式那么重要,Trithemius 通过实例来展示这一点。

尽管前两本《隐写术》的真实目的很快就为人们所知,但《第三本书》(或称第三本)的功能仍然是一个谜。从表面上看,它也描述了魔法通信的方法,但这些方法与前两本书中的方法看起来截然不同。在这里,传递信息时据称需要借助行星天使,所需的主要参数是三位数字,这些数字据说是用来计算行星及其主宰者的运动的。提供了这些数字的长列表(见图 15-8)。

几个世纪以来,备受尊敬的学者们尝试弄清楚《隐写术》的第三本书到底讲了什么。它是否也在编码信息,还是意味着代表真实的魔法?在 1990 年代,距离《隐写术》问世近 500 年之后,曾为 AT&T 工作的数学家吉姆·里德(Jim Reeds)仔细研究了第三本书。当他分析图 15-8 中展示的表格时,他注意到,在第一列中,列出的所有数字都在626650之间。第二列中的前十个数字(那些出现在该列唯一书面单词上方的数字)也是如此。这样就得出了以下一个包含626650之间的四十个数字的区块:

644, 650, 629, 650, 645, 635, 646, 636, 632, 646, 639 634, 641, 642, 649, 642, 648, 638, 634, 647, 632, 630, 642, 633, 648, 650, 655, 626, 650, 644, 638, 633, 635, 642, 632, 640, 637, 643, 638, 634

图 15-8:这些来自 1500 年作品Steganographia中的数字被认为是占星术参数。实际上,它们编码了一个信息。

这一块后面是一些大于650的数字。Reeds 怀疑这四十个数字代表一个加密的信息。频率分析表明,数字650不仅是最高的,也是出现最频繁的。这个数字是否代表了在拉丁语中频率最高的字母A?如果是这样,以下的替代规则可能是正确的:650 = A649 = B648 = C647 = D646 = E,等等。一项简短的测试表明,这种替代方案产生了拉丁语单词片段。经过一些实验,Reeds 得出了以下表格:

650 = A, 649 = B, 648 = C, 647 = D, 646 = E, 645 = F, 644 = G, 643 = H, 642 = I, 641 = L, 640 = M, 639 = N, 638 = O, 637 = P, 636 = Q, 635 = R, 634 = S, 633 = T, 632 = U, 631 = X, 630 = Y, 629 = Z, 628 = TZ, 627 = SCH, 626 = TH

这里使用的字母表缺少了J(在拉丁语中与I相同)、K(在拉丁语中很少使用)、V(在拉丁语中与U相同)和W(拉丁语中没有这个字母)。所有这些似乎都表明 Reeds 走在正确的轨道上,前述的四十个字母块解密结果如下:

GAZA FREQUENS LIBICOS DUXIT CARTHAGO TRIUMPHOS

这句拉丁语短语的意思是“迦太基经常从被打败的利比亚人那里获得丰富的战利品”,这最终揭示了Steganographia第三卷的真正含义——距离它创作已过 500 年。Reeds 用类似的方法轻松解密了剩下的六张表格。他制作的替代表格看起来与上面的非常相似,唯一的不同是三位数的数字上需要加或减去二十五、五十或七十五。换句话说:相关部分是除以二十五后的余数。以下是 Reeds 发现的明文:

GAZA FREQUENS LIBICOS DUXIT CARTHAGO TRIUMPHOS [重复四次]

LIBER GETRUWER HINTUMB DIE ZWELFE WART UNSER

HEIMLICHE EFUR DER PORTEN AMEN

NIT LAIS DUHER ZU MIR NOIT GCH ANDEL US ZUDAS ICH LDEN BRENGE AIL WEIS SOCH BEHALT

COMMEST NOCH HINTWAN IS DUET HABE EIN GROSEN RICHTEN MIT DIR DIR HAB MIT DIR UND SEHD DIS ALLES GEBEN ZUALS DUNUST UQREBI DIR SERE HAHW

BRENGER DIS BRIEFFS IST EIN BOSER SCHALG UND EIN DIEB HUET DICH FUR EME ER WIRT DICH AN

MISERERE MEI DEUS SECUNDU MAGNUM DONUM TUUM AMEN ATH

GAZA FREQUENS LIBICOS DUXIT CARTHAGO TRIUMPHOS WTZSCH

GAZA FREQUENS LIBICOS DU RTHAGO XIT CA TRIUMPHOS SCH

再次,这些信息的内容并不特别重要。特里特米乌斯可能选择了短语GAZA FREQUENS LIBICOS DUXIT CARTHAGO TRIUMPHOS,因为它仅用几个单词就涵盖了拉丁语的所有字母——这使得使用频率分析破解信息变得更加困难。这个句子可以看作是拉丁语版的“快速的棕色狐狸跳过懒狗”,通常用来测试字体、打印机和键盘。

BRENGER DIS BRIEFFS开头的信息是德语,意思是“这封信的携带者是一个坏的恶棍和小偷;小心,他会背叛你。” 以MISERERE MEI开头的文本来自《圣经》(诗篇 51)。

1998 年,吉姆·瑞兹(Jim Reeds)在科学期刊《Cryptologia》上发表了他的研究成果。^(28) 然而,在他撰写文章时,偶然发现了 1996 年发表在《Daphnis》文学期刊上的一篇惊人研究论文,作者是我们的同事,德国学者托马斯·埃尔斯特(Thomas Ernst)。^(29) 当瑞兹翻阅这本 200 页的书时,他几乎不敢相信自己的眼睛:显然,埃尔斯特在两年前也解决了《隐写术》第三卷的谜题!

这意味着,距离《隐写术》问世 500 年后,两位研究人员——一位数学家和一位德国学者——几乎在同一时间且独立地解开了第三卷的谜团。这听起来像丹·布朗的小说,但这是真的。

埃尔斯特利用与瑞兹(Reeds)几年后使用的相同初始表格,破解了特里特米乌斯(Trithemius)的隐写密码(见图 15-8)。该表格由希腊字母符号分隔,其中一些字母拼出了希腊字母,例如阿尔法(αλϕα)、贝塔(βητα)、伽马(γαμμα)和德尔塔(δελτα),以及数字。转录过程非常困难,可能存在一些小错误。埃尔斯特假设这些希腊符号是分隔符。以下是《隐写术》1608 年版的简化转录:

αλϕα
644 638 672 632 688 701 642 685
650 633 657 696 684 725 639 17
629 635 655 689 δελτα 719 633 693
650 642 667 684 719 713 643 696
645 632 658 691 725 708 692
635 640 673 692 704 710 657 690
646 637 675 699 725 717 665 691
636 643 660 692 720 707 674 692
632 638 651 698 710 715 21 698
646 634 675 688 721 712 672 693
639 βητα 669 684 711 718 667 696
634 669 663 697 707 713 671 δ
641 675 658 682 721 709 18 720
642 654 660 680 714 α 654 707
649 675 667 692 709 641 656 710
642 670 657 683 716 642 671 17
648 660 665 698 717 649 666 722
638 671 662 700 724 646 670 721
634 661 668 685 717 635 671 710
647 657 663 676 723 24 23 10
632 671 659 700 713 644 T 712
630 664 γαμμα 694 709 646 681 713
642 659 694 688 722 633 700 710
633 666 700 683 707 635 685 708
648 667 679 685 705 632 683 721
650 674 700 692 717 631 19 714
635 667 695 682 708 646 682 725
626 673 685 690 723 635 689 715
650 663 696 687 725 18 684 721
644 659 686 693 710 643 696 714

四个组分别以“alpha (α)”,“beta (β)”,“gamma (γ)”和“delta (δ)”为标题,每个组包含四十个数字,因此恩斯特假设这四列代表相同的文本。每个组的第一个数字与其他组的第一个数字之间相差恰好二十五(它们是644669694,和719)。每组的第二个、第三个、第四个和所有后续数字也有相同的差异。因为每个组中的每个数字都与其他组中的数字相差二十五,所以这四个组是相同的。

数字650,它在字母组的前四个字母中出现了两次,带来了突破。恩斯特猜测650代表拉丁字母表中的第一个或最后一个字母,并且特里特海米乌斯使用了这样的替换表:A = 650B = 651C = 652,等等,或者Z = 650Y = 651X = 652,等等。当他检查第一个假设时,没有得到有意义的结果,但第二个假设似乎有效。他解出的第一个词是GAZA,然后他迅速解出了其余文本。

找到解决方案后,恩斯特开始撰写关于他的解密的详细研究论文(用德语),计划在 1996 年发表。他的研究非常全面,最终引导他发现了另一个相关的未解密码:海德尔的密码。

1676 年,沃尔夫冈·恩斯特·海德尔也声称破解了特里特米乌斯的第三卷,但他只发布了自己解决方案的加密版本,使用了多字母密码。海德尔的密文在密码学圈内已为人所知,但接下来的三百年里,没有人能够破解它。因此,恩斯特再次创造了第一个纪录,成功破译了海德尔的密码,并证明特里特米乌斯的第三卷的解法早在十七世纪就已经找到了。汤姆关于自己解决方案的原始论文不断扩展,加入了有关海德尔密码的资料和更多的历史背景。最终,这篇论文的篇幅达到了 200 页,堪比一本书。三年后,汤姆的工作在《达夫尼斯》杂志上发表。

两年后,里兹在撰写自己的《密码学》文章时,偶然发现了汤姆的出版物。在里兹通知《密码学》编辑汤姆的工作后,他们要求恩斯特提供简化版的论文^(30)。因此,在 1998 年 10 月的《密码学》期刊中,发表了两篇关于破译《隐写学》第三卷的文章——由两位互不知情的作者撰写。

毫无疑问,《隐写学》第三卷的双重破译是密码破解历史上的一个亮点。要了解更多关于这个迷人故事的信息,请参阅 1998 年《纽约时报》文章《谜题解开,二次破解》(31)。二十年后,这个故事再次通过一些德语出版物引起公众关注,包括托马斯·恩斯特的家乡发表的几篇文章,其中包括尤尔根·赫尔梅斯的综合博客文章(32)和克劳斯所写的两篇论文(33),(34)。

成功案例:神秘陌生人信息

图 15-9 中的那些风格化生物图像,是魔术师大卫·布莱恩 2002 年书籍《神秘陌生人》中的许多此类插图之一。图像中隐藏着一条信息,当这些图像组合在一起时,指向了一个隐藏的 10 万美元宝藏的位置(该宝藏已被找到)。这些谜题由获奖游戏开发者克里夫·约翰逊创作。

图 15-9:2002 年书籍《神秘陌生人》中的一部分隐写谜题

这张图像是书中几张图像之一,它们解密后得出两句话。一句话通过计算每条蛇身上的鳞片数量来编码,另一句话则通过它们尾巴上的数字编码。密码的密钥是以一个 5×5 的查找表形式呈现的。尾巴或鳞片上的数字成对使用,表示查找表中某个字母的行和列。这个宝藏在 2004 年被找到,距离书籍出版已有十六个月。在 Cliff Johnson 的网站上,Jeff Briden 对这些谜题有详细的解释。^(35)

挑战:弗里德曼夫妇的另一个隐写信息

埃尔文·贝肯密码不仅出现在威廉·弗里德曼和伊丽莎白·弗里德曼的墓碑上,也出现在他们所写的一本书中。他们 1957 年的著作《莎士比亚密码的研究》评估了若干理论,这些理论声称弗朗西斯·贝肯(1561-1626)才是通常归于威廉·莎士比亚(1564-1616)的作品的真正作者,并且贝肯在这些作品中加入了隐藏的信息,以确认他的作者身份。^(36) 这个故事对弗里德曼夫妇有着个人的意义,因为正是通过这项研究,他们相遇了。在 20 世纪初,伊丽莎白(原姓史密斯)受 eccentric 百万富翁乔治·法比安的雇佣,寻找莎士比亚作品中的隐藏信息。在芝加哥附近的河岸实验室的法比安智库工作时,她遇到了实验室另一部分的年轻遗传学家威廉·弗里德曼。作为一名摄影师,他帮助她进行研究。她教他有关密码学的知识,他们相爱了,后来的事情就成了历史。在他们 1957 年的书中,弗里德曼夫妇花时间详细审视了莎士比亚与贝肯的争议,并明确证明了所有贝肯密码理论都是无稽之谈。

在他们典型的自嘲风格中,在关于为何莎士比亚作品中没有贝肯信息的书中,弗里德曼夫妇用贝肯密码隐藏了一个信息!在这本书的第 257 页,可以读到以下几行:

你能找到隐藏的信息吗?如果不清楚,可以访问我们的网站 codebreaking-guide.com/challenges/ 查看该图像的更大版本并获得提示。

密码机

加密在第一次世界大战中发挥了重要作用,尤其是在保护无线电消息方面。几乎所有使用的系统都是手动的,或基于简单工具,如密码盘和密码滑片。不幸的是,这些方法大多数很快就被敌方破解了。它们还存在另一个缺点,那就是使用起来非常复杂,特别是在战时条件下。必须在掩体中加密或解密文本的士兵,面临恶劣天气,周围是枪声和爆炸声,已经身心疲惫。不可避免地,许多错误发生。通常,接收者甚至无法解密一条加密的信息,因为加密过程中出现了错误。

基于这些经验,许多新的加密技术在第一次世界大战后的几年里得到了发展。因为显然手动加密不适合高安全性和高容量的无线电通信,更不用说在战时条件下了,于是设计了新的加密机器,旨在比手动密码更安全且更易于使用(参见图 15-10)。加密机的概念并不一定是新的,因为一些设计早已存在了几十年。然而,在第一次世界大战中的密码学失败后,压力大到足以最终将这些想法付诸实践。

图 15-10:机械和电子加密机的使用高峰期大约在 1920 到 1970 年之间。图片展示了西门子 & 哈尔斯克 T52 (a),Kryha 标准机 (b),KL-7 (c) 和哈吉林 C-35 (d)。有关这些机器和其他机器的更多信息,请访问cryptomuseum.com

最常见的加密设备是所谓的转子密码机。这种设备包括一个类似打字机的键盘、一个输出单元(一些设计使用一组灯,每盏灯表示字母表中的一个字母)、一个电流源和一组转子。图 15-11 中的示意图展示了一个简化的三转子设计,字母表包含六个字母。当然,真实的机器使用的是二十六个或更多字母的字母表。

为了加密一个字母,操作员按下一个键。这完成了一个电气连接,导致一个代表密文字母的灯亮起。在每输入一个字母后,最右侧的转子会转动一个单位。当该转子转动一圈后,下一个转子也会转动一个单位,等这个转子转动完后,最后一个转子也会转动一个单位,就像里程计一样。解密过程与这些机器的加密过程相似:它们需要切换到不同的模式,导致电流通过转子的方向相反。操作员通过按键输入密文字母,然后灯会显示明文字母。

图 15-11:转子加密机使用多个电线连接的转子。按下一个键(明文)完成电气连接,并使字母灯(密文)亮起。

最著名的转子机(也是最著名的加密机器)就是恩尼格玛(见图 15-12),它是在 1920 年代开发的。德国人在二战中使用了约 30,000 台恩尼格玛。

图 15-12:恩尼格玛是德国在二战中使用的最著名的加密机器。

在最常见的配置中,恩尼格玛有三个转子,一个插头板增加了额外的复杂性,还有一个额外的部分叫做反射器(见图 15-13)。从 1942 年起,德国潜艇使用了四转子版本的恩尼格玛,也带有反射器。集中营和警察也使用了恩尼格玛。

图 15-13:恩尼格玛是一台转子机器。与大多数此类设计不同,它包含了一个额外的部分,称为反射器。

反射器使得电流在转子中运行两次:第一次向前到反射器,然后再返回到转子。由于这种反射,加密和解密的过程完全相同;不需要解密模式。这使得恩尼格玛的操作更加简便,但也成为一个设计上的弱点,帮助盟军破解了恩尼格玛的加密系统。

早在 1930 年代,来自波兹南大学的三位年轻波兰数学家——马里安·雷耶夫斯基及其同事亨里克·齐加尔斯基和耶日·罗日茨基,就发现了恩尼格玛加密算法中的一些弱点,使得他们能够定期破解信息。

他们发明了一种设备,称为“bomba kryptologiczna”(密码学炸弹),这帮助他们的工作。根据他们在布莱切利公园的同事戈登·韦尔奇曼的说法,罗日茨基根据当时流行的一种冰淇淋为这台机器命名为“bomba”,他们在吃这种甜点时,雷耶夫斯基想出了这台机器的构思。(37), ^(38) 其他报告称,这个名字是自发选择的,或者可能是因为机器发出的声音。^(39)

在波兰被德国侵占后,雷耶夫斯基(Rejewski)和他的团队逃脱,并提供了他们的破译方法以及一份波兰版恩尼格码,以帮助盟军在伦敦郊外的布莱奇利公园工作。在那里,成千上万的工作人员在类似工厂的设施中破译恩尼格码信息。英国密码破译者,其中包括著名数学家艾伦·图灵(Alan Turing),开发了自己的机器以协助破译工作。该设计部分基于波兰密码分析师的工作,特别是他们对恩尼格码转子接线方式的推断,但其他方面则有很大不同。英国人将自己的机器称为 Bombe,英国制表机公司为战争努力制造了数百台 Bombe。

全球其他分析师也在攻击恩尼格码密码。英国密码破译者迪尔温·“迪利”·诺克斯在 1930 年代也破译了恩尼格码信息。此外,在英国的启发下,美国人开始了自己的恩尼格码破译工作,研发了一款改进版的 Bombe,专门针对德国潜艇使用的四转子版本恩尼格码。这一计划由约瑟夫·德什(Joseph Desch)在俄亥俄州代顿市领导。今天,约瑟夫的女儿德布(Desch)·安德森(Deb Anderson)是与代顿破译者相关的优秀资源。

无论上述情况如何,伊丽莎白·弗里德曼(Elizebeth Friedman)有自己的一套用铅笔和纸破译恩尼格码信息的方法,因为她在南美系统地攻击纳粹密码。

今天,在波兹南和布莱奇利公园都有博物馆以迷人的方式讲述一些恩尼格码密码分析的故事。此外,还有大量关于此主题的文献;我们特别推荐大卫·卡恩(David Kahn)的Seizing the Enigma(1991)^(40)和汤姆·佩雷拉(Tom Perera)与丹·佩雷拉(Dan Perera)的Inside Enigma(2019),它们可以在 EnigmaMuseum.com 网站上找到。^(41) 德莫特·图灵(Dermot Turing,艾伦·图灵的侄子)的Demystifying the Bombe(2014)可能对密码破译者有趣,因为它以易于理解的方式解释了 Bombe。^(42) 然后是电影《恩尼格码》(2001),凯特·温丝莱特主演;以及《模仿游戏》(2014),本尼迪克特·康伯巴奇主演。我们还推荐纪录片《代顿破译者》(2005)。

除了转子机器外,还有许多其他类型的电气或机械加密机器是在二战和冷战初期的“黄金时代”中发明的。例如,在二战期间,日本外交官使用了一种加密设备,美国的敌对方将其命名为 PURPLE。(43), (44) 该设备的完整日文名称是“97 式欧文打字机”(九七式欧文印字機,或 97-shiki ōbun injiki)。这个加密系统被美国陆军信号情报局的一个团队破译,团队由弗兰克·罗维特(Frank Rowlett)领导。他们通过寻找日本人频繁使用的有用短语来破解,比如“我荣幸地向阁下报告”,这些短语通常作为开头,提供了破译的线索。

有两个关于术语的小备注:

  • 关于 PURPLE 名称的来源存在争议。根据斯蒂芬·布迪安斯基在 2000 年出版的书籍《智慧的较量》中的说法,(45) 美国破译员为早期的两个日本海军加密系统命名为“Red”和“Blue”,因为它们的拷贝本封面是红色和蓝色的。他们还将其他日本加密系统命名为其他颜色,如 JADE 和 CORAL,尽管并不清楚这些名字是否也与容器的颜色有关。

  • 有两个完全不同的日本加密系统都被代号为“Red”。其中一个,前文提到的,是一个真正的代码,使用了密码本;另一个则是一个无关的加密系统,其消息是通过机器进行加密和解密的。为了区分这两者,密码本版本通常会正常拼写,如“Red”或“Red Book”,而所有的机器加密系统一般会全部大写,称为 RED、PURPLE 等。但更令人困惑的是,这些加密系统有时(错误地)被称为代码,比如“Purple Code”系统,实际上它是一个加密系统。此外,有时是代码系统,而非加密版本,才会被大写!关于代码与加密术语混淆的更多信息,请参见第七章。

另一种重要的二战时期德国加密机是洛伦茨 SZ40/42,也被英国人称为“Tunny”,意为“金枪鱼”。它于 1940 年推出,作为一种可以直接连接到大型电传打印机的加密附件,因此不像恩尼格玛那样便于携带。它仅在最高军事层级使用,比如希特勒与将军们的直接通信。洛伦茨机有十二个凹槽轮和超过五百个插销,它能对电传的输出文本进行加密,并对输入文本进行解密。

该设备可以通过五位孔纸带的巴多特码或手动输入接收数据。然后,它会迅速将明文翻译成加密版本的巴多特码,并通过无线电或电话线发送给接收方。在接收端,另一个内联的洛伦茨附件会解密消息,并将其发送到接收机的电传打字机,以便打印出明文消息。所有这些比恩尼格玛所需的逐字逐字的繁琐过程要快得多。^(46)

关于洛伦茨的任何提及在二战后几十年内都被保密。直到 1995 年,唐纳德·戴维斯在Cryptologia期刊上发表了一篇论文,相关信息才开始浮出水面。^(47) 继这一出版物之后,美国和英国政府逐渐开始解密与其相关的各种文件,持续了好几年。^(48) 现在,随着关于洛伦茨系统的更完整的资料浮出水面,我们知道它是布莱奇利公园破解的另一种加密方法——这次是 1942 年,由包括约翰·蒂尔特曼和威廉·T·“比尔”·塔特在内的团队完成的。这是一项令人印象深刻的成就,考虑到他们甚至从未见过这台机器。^(49) 另一支由托马斯·H·弗劳尔斯领导的五十人团队,设计了一种与博贝机不同的解密机器,协助解密塔尼消息的工作。它被称为科洛索斯,是一台巨大的、房间大小的设备,可以根据需要进行重新配置。伯明翰的一家邮政工厂被征用来制造所需的零件,随着战争的进行,先后建造了十台不同的科洛索斯。

在塔尼系统被破解后,从中获得的战略情报提供了大量信息,既关于德军的动向,也关于德国领导层对盟军计划的理解(或误解)。根据科洛索斯工程师托马斯·弗劳尔斯的说法,1944 年 6 月 5 日,一条解密信息被提供给美国将军德怀特·D·艾森豪威尔,显示出尽管德国人知道诺曼底有计划进行入侵,但他们并不认为这是真实的。他们认为,这只是为了引诱德军远离港口的佯攻。^(50) 因此,这条情报成为盟军决定在诺曼底登陆当天(6 月 6 日)发起全面“霸王行动”入侵法国的关键因素,从而改变了欧洲战场上战争的局势。^(51) 历史学家回顾这一时期时估计,来自布莱奇利的情报,包括塔尼的解密信息,使得欧洲战争的时间缩短了几个月。1954 年,艾森豪威尔将其描述为无价之宝,并表示它拯救了成千上万的英美士兵的生命。^(52)

虽然早期的密码机设计,包括德国的恩尼格玛和日本的 PURPLE,曾被破解,但更先进的密码机,尤其是冷战时期的那些密码机,至今仍被认为是安全的。随着 1970 年左右廉价电子产品和计算机的出现,电气和机械加密机器在接下来的几十年中逐渐被淘汰,尽管它们在一些欠发达国家仍然有所使用。^(53) 今天,尽管这项技术有着迷人的历史,但它在现代通信安全中已不再发挥作用。

利用现代手段(即计算机支持)破解老式加密机器的密码是一个活跃的研究领域。在第十六章中,我们将讨论如何通过爬山算法破解恩尼格玛。如果你想了解更多,可以阅读克雷格·鲍尔(Craig Bauer)2013 年出版的《秘密历史》一书(或 2021 年出版的第二版),该书详细介绍了密码机器的数学背景,并介绍了破解其加密的方法。^(54)

第十六章:使用山丘攀登法破解密码

本书中介绍的许多加密方法可以通过一种名为山丘攀登法的策略来破解。计算机科学家们开发了这种技术来解决某些类型的优化问题,其中大多数与密码学无关。例如,它非常适合用来寻找包括特定城市的最短路线或确定生产设施的最有效配置。该方法被命名为“山丘攀登”是因为它旨在迭代地改进给定配置,直到达到“山顶”,并且无法进一步改进,正如图 16-1 所示。

图 16-1:一个山丘攀登算法采取一个随机密钥,并检查使用该密钥获得的明文是否像真实语言。通过对密钥进行微小的调整,算法尝试改进结果,直到找不到更好的结果为止。最后的候选密钥通常就是正确的。

山丘攀登法特别适用于那些加密分析师无法检查所有潜在解决方案的问题。它要求问题是“平滑的”,这意味着输入的微小变化可能只会导致输出的微小变化。大多数用于破解经典密码的任务都符合这两个要求。对于这些解码方法,潜在的解决方案数量(即密钥数量)非常庞大。例如,使用二十六个字母创建一个简单的替代表有 403,291,461,126,605,635,584,000,000(大约 400 万亿亿,或 4 × 10²⁶)种方法——即使是最强大的计算机也无法检查每一个。此外,许多经典加密方法中的密钥的小变化只会导致密文的微小变化。例如,如果我们交换一个简单替代表中的两个密文符号,解密结果的变化仅仅是微小的。

山丘攀登法只有在作为计算机程序实现时才可行。破译者成功地使用这种方法破解了广泛的加密算法,包括像“恩尼格玛”使用的那种复杂的机器密码。今天,相当多的计算机程序(例如,CrypTool 2)支持用于破解密码的山丘攀登算法。然而,破解者仍然必须根据他们所攻击的系统来定制山丘攀登法。因此,提供了多种山丘攀登实现方式。

需要注意的是,虽然山丘攀登法是破解具有历史意义的密码的强大工具,但它完全不适合攻击现代加密算法,如 AES 或 DES。这是因为现代加密算法并不平滑,其密钥或明文的微小变化应该会导致密文发生重大变化。

使用山丘攀登法破解简单替代密码

在本节中,我们通过将爬山算法应用于一个简单的替换密文来解释这一技术。正如你将在本章后面看到的,我们可以将相同的技术应用于其他类型的密码。看看下面的这个密码挑战,它发布在萨宾·巴林-古尔德(Sabine Baring-Gould)1896 年出版的《古代奇趣》中:(1), ^(2)

让我们首先将这个密码谜题转换成更易于计算机程序处理的版本。我们将第一个出现的符号替换为A,第二个符号替换为B,第三个替换为C,依此类推,同时保持单词之间的间隔:

A BCDE CF GHI HAFE CJ KLDGH GKL CF GHI BMJH

第 1 步

我们首先创建一个随机替换表:

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文: SNOIJRGYZLMBPDQWUVHFCTAXEK

第 2 步

然后,我们使用替换表解密这个密码谜题,得到如下的明文候选文本:

S NOIJ OR GYZ YSRJ OL MBIGY GMB OR GYZ NPLY

第 3 步

现在,我们使用所谓的适应度函数来评估明文候选文本的正确性。使用适应度函数是爬山攻击中最复杂和关键的部分。有很多方法可以检查某段文本是否更接近真实语言(即它是否像真实语言)。在我们的例子中,我们采用了基于字母频率的简单方法。高级破译者会轻松找到更好的方法。

对于每个字母,我们确定它在明文候选文本中的频率,并将其与相同长度的平均英文文本中的频率距离进行比较。在我们的例子中,密文包含三十三个字符。基于英语语言中,字母 A 的频率为 8%,B 为 1%,C 为 3%,我们将这些字母在明文候选文本中的预期频率设定为三、零和一。其余字母的预期频率则以类似方式得出。

接下来,我们将明文候选文本中的字母频率与预期频率进行比较,并确定距离:

字母 明文候选文本中的频率 预期频率 距离
A 0 3 3
B 2 0 2
C 0 1 1
D 0 1 1
E 0 4 4
F 0 1 1
G 4 1 3
H 0 2 2
I 2 2 0
J 2 0 2
K 0 0 0
L 2 1 1
M 2 1 1
N 2 2 0
O 4 3 1
P 1 1 0
Q 0 0 0
R 3 2 1
S 2 2 0
T 0 3 3
U 0 1 1
V 0 0 0
W 0 1 1
X 0 0 0
Y 5 1 4
Z 2 0 2
总和: 34

距离的总和(这里是三十四)是适应度函数的结果。结果越小,拟合效果越好。

第 4 步

接下来,我们稍微随机化替换表。下面的第二行是旧的替换字母表,第三行是新的替换字母表:

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

旧密文: SNOIJRGYZLMBPDQWUVHFCTAXEK

新密文: SNOIJFGYZLMBPDQWUVHRCTAXEK

如您所见,我们只做了一个小的调整,交换了FR的位置。

第五步

在下一步中,我们使用新的替换字母表解密密文,并得到一个新的明文候选(旧的明文列出以供比较):

旧明文: S NOIJ OR GYZ YSRJ OL MBIGY GMB OR GYZ NPLY

新明文: S NOIJ OF GYZ YSFJ OL MBIGY GMB OF GYZ NPLY

第六步

再次,我们通过适应度函数对明文候选进行正确性评分:

字母 明文候选中的频率 预期频率 距离
A 0 3 3
B 2 0 2
C 0 1 1
D 0 1 1
E 0 4 4
F 3 1 2
G 4 1 3
H 0 2 2
I 2 2 0
J 2 0 2
K 0 0 0
L 2 1 1
M 2 1 1
N 2 2 0
O 4 3 1
P 1 1 0
Q 0 0 0
R 0 2 2
S 2 2 0
T 0 3 3
U 0 1 1
V 0 0 0
W 0 1 1
X 0 0 0
Y 5 1 4
Z 2 0 2
合计: 36

预期字母频率和实际字母频率之间的整体距离变大了,这意味着明文候选的正确性降低了。因此,我们返回到先前的替换字母表。如果有改进,我们会保留当前的替换表。

再次,我们稍微调整替换表。在这里,我们交换了TJ的位置:

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

旧密文: SNOIJRGYZLMBPDQWUVHFCTAXEK

新密文: SNOITRGYZLMBPDQWUVHFCJAXEK

第五步(再次)

我们使用更改后的替换表解密密文,并得到一个新的明文候选:

旧明文: S NOIJ OR GYZ YSRJ OL MBIGY GMB OR GYZ NPLY

新明文: S NOIT OR GYZ YSRT OL MBIGY GMB OR GYZ NPLY

第六步(再次)

然后,我们通过适应度函数对明文候选进行正确性评分:

字母 明文候选中的频率 预期频率 距离
A 0 3 3
B 2 0 2
C 0 1 1
D 0 1 1
E 0 4 4
F 0 1 1
G 4 1 3
H 0 2 2
I 2 2 0
J 0 0 0
K 0 0 0
L 2 1 1
M 2 1 1
N 2 2 0
O 4 3 1
P 1 1 0
Q 0 0 0
R 3 2 1
S 2 2 0
T 2 3 1
U 0 1 1
V 0 0 0
W 0 1 1
X 0 0 0
Y 5 1 4
Z 2 0 2
合计: 30

适应度函数的结果现在已经降低,这意味着明文候选看起来更像是英语文本。因此,我们保留这个表格。

我们多次重复前述过程。如果新的替换表导致适应度函数的结果更低,我们就保留它。否则,我们恢复之前的表格。我们一直这样做,直到适应度函数的结果在接下来的十步内不再改进。

通常,最后的明文候选是正确的。然而,这并不能保证,因为可能出现一个错误的明文候选比所有测试过的邻近候选获得更好的适应度函数结果,这时我们称之为局部最大值。在这种情况下,我们会重新启动算法,使用一个新随机生成的密钥。如果多次爬山算法尝试都未能产生有意义的明文,那么我们假设我们正在处理一个简单替换密码可能就是错误的。

在 Baring-Gould 密码的情况下,正确的明文是A BIRD IN THE HAND IS WORTH TWO IN THE BUSH。这是替换表:

明文: ABIRDNTHESWOU

密文: ABCDEFGHIJKLM

请注意,明文只包含十三个不同的字母。

模拟退火

为了避免陷入局部最大值,一些密码破译者使用一种叫做模拟退火的变种爬山算法。与常规的爬山算法不同,模拟退火算法不仅在适应度函数的结果改善时移动到新的密钥候选,还在某些情况下,当适应度函数结果下降时,也会移动到新的密钥候选。换句话说,从一个密钥候选到另一个密钥候选的路径也可能是下降的。然而,这些下降步骤是例外,确保了我们路径的整体方向是上升的,如图 16-2 所示。

是否采取下降步骤的决定取决于一个随机数和一些可配置的细节。我们可以在过程中基于一个控制参数——温度来改变下降步骤的概率。温度越高,下降步骤的可能性越大;温度越低,下降步骤的概率越小。

图 16-2:模拟退火是爬山算法的一个变种。后者只有在适应度函数结果增加时才会移动到新的密钥,而模拟退火则允许下降步骤。

因为模拟退火允许下降步骤,所以算法可以找到一条离开局部最大值的路径。然而,模拟退火通常比爬山算法更慢,因为下降步骤会导致算法花费更多时间。

模拟退火这个术语来源于冶金中的退火过程,退火是一种通过加热和控制冷却材料来增加其晶体尺寸并减少缺陷的方法。

成功案例:Bart Wenmeckers 解开 Baring-Gould 密码

虽然 CrypTool 2 支持爬山算法,但一些经验丰富的破译者自己编写了爬山代码,这让他们能够轻松调整适应度函数和其他参数。本节考虑了我们的一位同事、新西兰密码学专家 Bart Wenmeckers 编写的程序的输出。^(3)

Bart 的程序使用了比上述更复杂的适应度函数。每当明文候选更接近真实语言时,它会给出更高的评分。这与上述方法相反。每当替换表比前一个版本更好的时候,程序会打印出两行。以下是一个示例:

AYISLNTHEPFRBDJXMWCQOKZGVU,313

一个手中的鸟比丛林中的两只鸟更值钱

这个输出表示当前的替换表如下 . . .

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文: AYISLNTHEPFRBDJXMWCQOKZGVU

. . . 并且适应度函数的结果是 313。输出的第二行是明文候选(见下文)。当 Bart 使用 Sabine Baring-Gould 的书中的密码进行程序测试时,他得到了以下顺序结果:

AYISLNTHEMBUQDVWCGPJZRXKOF,323

一个手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEMBOUFQWKXCZGPVLYJ,327

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEMOBUFQWKXCZGPVLYJ,331

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEMOPUFQWKXCZGBVLYJ,333

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEGOPZFQWUXVJMBCLYK,334

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEGOFZPQWUXVJMBCLYK,343

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHEMOFZPQWUXVJGBCLYK,347

手中的鸟在丛林中的两只鸟更值钱

ARISDNTHEMOFCYBKWXZJVLUGQP,348

手中的鸟比丛林中的两只鸟更值钱

ARISDNTHELOFZUJMBXCKGVQPYW,349

手中的鸟比丛林中的两只鸟更值钱

ARILDNTHESOFJMXVUWGQCPBKZY,354

一只手中的鸟比丛林中的两只鸟更值钱

ARILDNTHESOFVUKMXGPYZJWCBQ,355

一只手中的鸟比丛林中的两只鸟更值钱

AMILDNTHESOFVUJQXGPYZKWCBR,357

手中的鸟比丛林中的两只鸟更值钱

AMIRDNTHESCOYUBQVXLPWZGJFK,358

A MIRD IN THE HAND IS CORTH TCO IN THE MUSH

ABIRDNTHESWOYUMXVQCZJLKGPF,365

一只手中的鸟比丛林中的两只鸟更值钱

ABIRDNTHESPOGUJMQXZYKCWLFV,366

一只手中的鸟比丛林中的两只鸟更值钱

如所见,Bart 的程序找到了正确的解决方案,评分为 365,但它并没有就此停止。它把一只手中的鸟比丛林中的两只鸟更值钱评为一个更好的解决方案,得到了 366 分。像这样的事情是有可能发生的。当然,一个观察电脑工作的人的话,很可能比电脑更早地猜到正确的解答,就像他们玩幸运之轮一样。

成功案例:佛罗里达谋杀案的密码

一些密码和密码谜题与可怕的犯罪案件相关。2004 年,11 岁的卡莉·布鲁西亚在佛罗里达州萨拉索塔的一家洗车店被绑架,随后被杀害。根据监控视频,警方认定汽车修理工约瑟夫·P·史密斯为凶手。2005 年,在监狱等待审判期间,他试图向他的哥哥发送一条加密信息(图 16-3)。

美国联邦调查局(FBI)的密码分析与勒索记录组(CRRU)很快破解了这条密码,但没有公开任何细节。^(4) 2014 年,当克劳斯在一份 2005 年的 FBI 报告中读到这个故事时,^(5) 他在自己的博客上发布了这条加密信息,随后,德国加密专家、CrypTool 2 开发者尼尔斯·科帕尔通过爬山算法迅速破解了它。^(6)

图 16-3:卡莉·布鲁西亚的凶手试图从监狱向他的哥哥发送这条加密信息。

起初,尼尔斯创建了以下的转录:

+5 5 +1 5 %3 +2 -4 x4 -1 +1 %2 %4 x4 %2 +3 -5

%5 %2 -3 -5 -4 +3 -5 +1 %5 -1 +2 %2 %3 +1 1

x5 +3 +1 +2 -5 %4 -4 x4 5 x5 -5 +2 -1 3 +1 +2

-5 +3 -5 %3 3 x5 +1 1 -4 x5 -2 -5 %3 +1 -4 -5 %4

-1 +3 -4 %2 x4 -5 +5 x5 -5 %3 +1 x4 %2 -1 5 x5 +1

%2 +1 %5 -5 x2 %2 +1 %2 +1 x4 -5 3 %2 -5 +2 %2 4

-4 -1 +3 x5 %5 -5 +2 5 x5 %3 +3 5 x5 1 x5 +1 -5 x3 -1

-3 %2 1 -1 -4 x4 x5 x3 +1 -1 %3 +1 +2 +3 -5 +1 +2 +5 x3 5 -4

+1 x4 -5 +3 -5 %5 %5 %2 -4 +3 5 x5 %5 x4 %2 +1 x4 -5

3 +2 -5 %3 +1 x5 x2 -3 -4 x4 -1 x1 -3 -1 +5 x1 -3 -1 -2 -5

%3 +1 x1 x5 %3 x5 1 -1 +2 x5 +1 1 -3 x2 5 %1 x4 x2

%3 +1 x3 x5 +2 -4 -1 %3 x2 %3 +2 x2 3 %2

尼尔斯进行了字母频率、同余指数和其他测试的统计分析。他意识到这条密码看起来像是一个简单的替代密码,但他所有破解的尝试都失败了。于是,他做了一些有根据的猜测,比如检查这段文字是否可能是反向书写的。

当他在 CrypTool 2 中应用简单替代爬山算法处理这个反向书写的密码时,他立即成功,得到了以下令人毛骨悚然的明文(其中包含一些拼写错误):

I WLSH L HAD SOMTHLN JULCY TO SAY OH OK THE BACKPACK AND CLOTHES WENT IN FOUR DIFFERENT DUMPSTERS THAT MONDAY I CAME TO YOUR HOUSE FOR ADVISE I WENT IT I LEFT IT OUT IN THE OPEN I DRAGED THE BODY TO WHERE ST WAS FOUND DESTROY THIS AFTER DECIFERING IT AND SHUT UP

这导致了以下的替代表:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-1 -2 -3 -4 -5 %5 %4 %3 %2 %1 x1 x2 x3 x4 x5 +5 +4 +3 +2 +1 5 4 3 2 1

字母QXZ在明文中没有出现。虽然QX的密文对应字符可以很容易猜到(例如,Q位于+5 和+3 之间),但是Z的字符仍然未知。

在法庭上,一名 CRRU 专家展示了相同的结果。结合其他证据,这导致史密斯被判处死刑。

使用模拟退火法解密同音密码

在解密同音密码时,爬山法和模拟退火是显而易见的方法。毕竟,密码替换表中的一个小变化只会导致密文中的小变化。而且,由于同音密码有远比我们可以逐一穷举检查的潜在密钥要多,因此爬山法和模拟退火比暴力破解提供了更高效的方法。由于我们所知道的大多数实现都使用模拟退火来完成这一任务,因此我们将在接下来的内容中仅关注模拟退火法。

使用模拟退火解密同音密码是一个相对较新的研究领域,到目前为止,关于这一主题的论文并不多。2019 年由 Nils Kopal 撰写的文章经常被引用,提供了该主题的介绍。^(7) 然而,世界各地的研究人员正在研究这一领域,并可能在未来几年发布他们的同音-模拟退火项目的研究成果。

我们找到的最佳同音模拟退火软件 AZDecrypt 是由比利时密码破译专家 Jarl Van Eycke 编写的(他在 2023 年发布了 1.21 版本)。AZDecrypt 具有令人印象深刻的配置选项,并实现了强大的适应度函数。该软件可以免费从www.zodiackillerciphers.com下载。

成功案例:Dhavare、Low 和 Stamp 的黄道杀手解密

我们所知道的关于对同音密码进行爬山攻击的少数几篇研究论文之一是《高效的同音替换密码分析》,该论文由 Amrapali Dhavare、Richard M. Low 和 Mark Stamp 于 2013 年发表。^(8) 作者描述了一种方法,其中包括两个爬山步骤:第一步,称为外部爬山,确定每个明文字母映射到的同音字的数量;第二步,称为内部爬山,重建替换表。

Dhavare、Low 和 Stamp 最初将他们的方法应用于 Z408,这是黄道杀手写的第一封信(见第六章)。Z408 在 1969 年就已被解密,研究人员希望看看他们的算法是否能够重现这一解密成功。事实上,它确实能够,而且相当容易(见图 16-4)。

接下来,作者们将他们的技术应用于一个同音密码挑战,名为黄道密码,该挑战发布在加密谜题平台 MysteryTwister 上^9。这个挑战模仿了 Z340,这是黄道杀手的第二个信息,与 Z408 不同,它尚未被破解。再次,爬山程序没有任何困难就破解了这个密码。

图 16-4:Dhavare、Low 和 Stamp 的爬山程序轻松破解了(已解决的)第一个黄道杀手信息。

最后,Dhavare、Low 和 Stamp 使用他们的方法攻击了 Z340 本身,这个密码是世界上最著名的未解之谜之一。不幸的是,这次他们没有成功。他们努力的细节可以在他们的文章中看到。至于在 2020 年成功破解 Z340 的解密三人组,见第六章。

使用爬山法破解维吉尼尔密码

正如第八章所指出的,破解维吉尼尔密码的方法有很多种:有些方法需要计算机,而有些可以手动完成。计算机破解维吉尼尔密码的方法之一是爬山法。然而,爬山攻击维吉尼尔密码似乎比攻击其他密码算法的受欢迎程度要低,可能是因为有更高效的替代方法。我们并不知道有哪篇研究论文全面涵盖了维吉尼尔密码的爬山法,但至少已有一些实现存在,其中包括在 CrypTool 2 中。

爬山软件可以在爬山过程中发现关键词的长度,或者以其他方式确定信息。大多数工具采用后者的方法。程序要么在开始爬山过程之前,使用弗里德曼方法猜测关键词的长度,要么对每个关键词长度(比如三到二十五之间的长度)进行单独的爬山攻击。

这些实现可以使用与简单替换密码相同的适应度函数。

成功案例:吉姆·吉洛格利对 IRA 维吉尼尔密码的破解

2001 年,历史学家汤姆·马洪在都柏林的一处档案馆发现了约 300 份包含加密信息的文件。这些文件来自激进分子莫斯·图梅(1897–1978)的遗产,他曾是爱尔兰共和军(IRA)1926 年至 1936 年的领导人。马洪发现的大多数加密文本是爱尔兰共和军总部与英国群岛或美国的 IRA 激进分子之间交换的电报。总体来说,这些文献包含约 1,300 个独立的密码文。

由于马洪缺乏解密这些信息的专业知识,他向美国密码学协会请求支持。我们的同事、ACA 成员吉姆·吉洛格利对此产生了兴趣,并与马洪开始了富有成效的合作。接下来的几个月,吉姆成功解密了托梅留下的大部分密码,揭示了 1920 年代爱尔兰共和军(IRA)的工作和结构。2008 年,吉姆与马洪将他们的成果出版成书,名为《解码 IRA》Decoding the IRA。这本书是一本有趣的爱尔兰历史读物,其中吉姆解释他的解密过程的第一章,对任何对破译密码感兴趣的人来说都是一个极具吸引力的资源。

事实证明,大多数 IRA 的密文是使用基于列的换位密码加密的,这将在本章的下一节中介绍。较小的一部分则是包含许多“&”字符的小段密文,这些字符嵌入在明文句子中。以下消息(日期为 1923 年 5 月 4 日)就是一个典型的例子:

这是前两句话的转录:

你是否已经获得了 X&OYC&UIJO&MN?你是否查找过我跟你提到过的那个人 FX&WA HKGKH/。

字母频率和其他一些统计数据表明,作者很可能使用了维吉纳密码。吉姆希望作者在这些密文中使用了相同的密钥,他选择了每个密文的前六个字母。由于他不知道如何处理“&”,所以他忽略了所有包含这个符号的六字母区块。剩下了以下二十二个区块:

SDRDPX VVQDTY WXGKTX SJMCEK LPMOCG MVLLWK HMNMLJ VDBDFX UMDMWO GGCOCS MMNEYJ KHAKCQ LPQXLI HMHQLT IJMPWG DDMCEX HVQDSU OISOCX DXNXEO IJLWPS IJNBOO OIREAK

吉姆将这一系列区块输入到他自己设计的爬山程序中,起始时使用了六个字符的关键词长度。尽管这二十二个区块来自不同的密文,但适应度函数所反映的特征仍然有效。事实上,爬山程序很快就找到了一个六个字母的候选关键词,并立刻得到了有希望的结果:

MISTER PARTIS QCHAIR MONSTE FUNERA FAMBLE BROCAD PICTUR ORECLI ALDERM GROUND EMBARK FURNAC BRIGAN CONFLA XINSTR BARTHO INTERR XCONTI COMMEM COORDI INSUPE

由于每个六字母区块都代表了一个可能的英文字母序列,吉姆知道他走在了正确的轨道上。

攀登者已输入了关键词GVZKLG。吉姆利用它解密了所有的维吉纳密文,并发现“&”符号作为字母Z的替代,这也是为什么密文中没有出现Z的原因。上述消息解密后的明文如下(ZXZ XCAMPBELLZ中用作填充):

你是否已经获得了《KEOGH 报告》?你是否查找过我跟你提到过的那个人 ZCAMPBELLX。

为什么 IRA 使用了关键字 GVZKLG?经过一些实验,Jim 发现这是通过简单的替代密码加密的单词 TEAPOT,基于以下替代表:

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文: ZYXWVUTSRQPONMLKJIHGFEDCBA

如你所见,替代法使用了一个易于记忆的倒序字母表。

使用爬山算法破解列置换密码

我们可以使用爬山算法来破解完整和不完整的列置换密码,这些内容在第九章和第十章中有介绍。然而,用来破解简单替代密码的适应度函数在这里不适用。一般来说,我们不能用任何基于字母频率的适应度函数来破解置换密码,因为置换字母并不会改变它们的频率。

相反,我们可以依赖字母组合的频率来评估明文候选的正确性。在这个过程中,我们已经遇到过从字母对(双字母组)到八字母组(八字母组)等各种不同的字母组合。

接下来,我们需要一种方法来稍微改变置换密码的密钥。如果我们处理的是十列的列置换密码,我们可以这样写密钥:

8,4,5,2,9,7,1,10,3,6.

为了对密钥进行小幅调整,我们可以在这个序列中交换两个随机选择的数字。例如,8,4,5,2,9,7,1,10,3,6 可能会变成 8,4,1,2,9,7,5,10,3,6

请注意,用于加密列置换密文的关键字在此过程中并不起作用。即使关键字是随机字符串,比如 VKWJIDPQFH,爬山算法依然有效,并能在不重建原始关键字的情况下恢复明文。实际上,确定关键字通常是不可能的,因为可能有多个等效的关键字。

破解不完整的列置换密码,当然,比破解完整的密码更复杂。不过,我们可以把这个过程看作是解决完整列置换密码的一个特例。因为计算机通常使用爬山程序来完成这一任务,复杂度通常不是问题,但任务可能需要更长时间。

如果我们不知道关键字的长度(就像实际情况中通常那样),我们有两种可能的方法。首先,我们可以将关键字长度作为密钥的一部分,并在爬山迭代中稍作调整;然而,这会增加程序的复杂性。通常更好的方法是对不同的关键字长度进行多次爬山攻击。如果我们假设关键字的长度在五到二十个字母之间,那么我们需要进行十六次尝试——对于今天的计算机来说,这并不算问题。

软件 CrypTool 2 包含一个强大的置换爬山算法。CrypTool 项目的负责人 Bernhard Esslinger 已经演示过,即使在 PC 上运行,这个爬山算法也能轻松在两分钟内破解 第十章 中引入的一些 IRA 置换密码。

成功案例:吉姆·吉洛格利破解 IRA 换位密码的故事

让我们回到 2008 年吉姆·吉洛格利和汤姆·马洪合著的书籍《解码 IRA》中的内容。以下这段 IRA 密码是马洪这位历史学家最初在 2005 年发送给美国密码协会的六个信息之一,之后它被分享到该协会的邮件列表,并由吉姆解密:

AEOOA IIIEO AEAEW LFRRD ELBAP RAEEA EIIIE AAAHO IFMFN COUMA

FSOSG NEGHS YPITT WUSYA ORDOO ERHNQ EEEVR TTRDI SOSDR ISIEE ISUTI

ERRAS TTKAH LFSUG RDLKP UEYDM ERNEO RULDC ERWTE ICNIA T

这个密码由 151 个字母组成。在分析密文时,吉姆发现E是出现频率最高的字母,出现了二十三次,其次是ARI。字母QBV则非常罕见。这些频率与英语语言相符,尽管元音的比例(47%)似乎略高(通常是 40%)。吉姆假设自己正在处理一个换位密码。由于 151 是一个质数,它不可能是完全的列换位密码,但不完全的换位密码似乎是可能的。

在他四十年的破译生涯中,吉姆为个人使用编写了大量的密码分析软件。除此之外,他还是最早使用爬山算法进行密码分析的人之一。为了解开这个特定的加密信息,他使用了专门为破解不完全列换位密码定制的爬山算法程序,假设行长度在八到十五之间,并为每个长度启动了不同的运行。当他尝试了长度为十二时,他得到了以下明文候选:

THEAADDARESSTOWHECIEHYOUWILLOESENDSTUFFFOR . . .

这个字符串,你可以看出,包含了许多有意义的词。甚至可以从中读出一个有意义的句子(THE ADDRESS TO WHICH YOU WILL SEND STUFF . . .)。然而,许多字母似乎是不必要的。

吉姆大约重新启动了他的爬山算法程序一百次,每次都使用不同的初始关键词候选,但始终没有得到更好的结果。他的软件已确定关键词是FDBJALHCGKEI—这肯定不是 IRA 最初使用的那个,但等效的。为了进一步分析,他查看了程序生成的换位表:

FDBJALHCGKEI

------------

THEAADDARESS

TOWHECIEHYOU

WILLOESENDST

UFFFOROAQMGI

SMRSAWSEEENE

YFRUITDIERER

ANDGIERIENGR

OCERIIFIVEHA

ROLDECSEROSS

DUBLONIATRYT

OMAKAIEATUET

OAPPEAEARLLK

EFRHATI

吉姆立即意识到为什么他的程序会产生奇怪的结果。加密者在表格中插入了两列(第五列和第八列)无意义的元音。此外,他的爬山算法程序还交换了LH列。以下是正确的表格(去掉了多余的元音):

FDBJAHLCGKEI

------------

THEA DD RESS

TOWH IC HYOU

WILL SE NDST

UFFF OR QMGI

SMRS SW EENE

YFRU DT ERER

ANDG RE ENGR

OCER FI VEHA

ROLD SC ROSS

DUBL IN TRYT

OMAK EI TUET

OAPP EA RLLK

EFRH IT

正确的明文如下:

THE ADDRESS TO WHICH YOU WILL SEND STUFF FOR QMG IS MRS SWEENEY FRUDTERER AND GREENGROCER FIVE HAROLD’S CROSS DUBLIN TRY TO MAKE IT UP TO APPEAR LIKE FRUIT.

伊拉使用的实际密钥至今未被确定。

成功案例:Richard Bean 解开了最后一个未解的 IRA 密码

正如上一节所述,Jim Gillogly 解开了伊拉(IRA)激进分子 Moss Twomey 留下的数百个换位密码,但有一个他始终无法破解:

GTHOO RCSNM EOTDE TAEDI NRAHE EBFNS INSGD AILLA YTTSE AOITDE

在 Twomey 的文件中,每条加密信息都有一个头部,指示其长度。在这个案例中,字母数量被指定为五十二个,尽管密文只包含五十一个字符。显然,出了问题;也许这就是 Jim 没能成功破解该信息的原因。

2018 年,我们的同事 Richard Bean,一位来自澳大利亚布里斯班的数学家,专注于组合学和统计学,在阅读 Jim Gillogly 和 Tom Mahon 的书后对这个密码产生了兴趣。^(11) 他尝试通过爬山算法来破解这个密码,检查不同的密钥长度并迭代改进适应度函数。借鉴 George Lasry 的博士论文^(12),他意识到六字频率将对区分有意义的文本和胡言乱语特别有帮助。他还注意到,密钥长度为十一时,爬山算法得分最好。当他在密文的各个部分添加字母时,通过在两个 E(第 25 和第 26 个字母)之间插入一个字符,他获得了最有意义的结果。

Richard 还观察到,在一些得分最高的密文候选中,出现了字符串 LIGNIT。由于伊拉在 1920 年代使用过胶炸丨药(gelignite,爆炸物),这一发现提供了潜在的线索。当 Richard 强行将字符串 GELIGNIT 插入到爬山算法的输出中时,许多其他有意义的单词变得清晰可见,例如 THEYRAIDANDOBTAINED。额外的字母最终出现在字符串 SCOT*AND 中,因此他可以轻松地将其识别为 L。最后,Richard 检测到以下明文:

REGELIGNITSCOTLANDSTAESTHEYRAIDEANDOBTAINEDOMEOFTHLS

以下是更易读的消息形式:RE GELIGNIT[E] SCOTLAND STA[T]ES THEY RAIDE[D] AND OBTAINED [S]OME OF THLS

请注意,明文中有四个字母(ETDS)丢失,最后一个单词中存在拼写错误。加上丢失的密文字母L,这些错误使得破译消息变得极其困难。经过更多分析,理查德发现,如果假设一个包含十二个字母的关键字和一个包含字母ETDS(四个丢失的明文字母)的额外列,他可以得到更好的结果。由于这个额外列的原始位置未知,确定使用的关键字非常困难。正如我们将展示的那样,BCAFIEHGKDLJ可以工作,尽管这显然不是爱尔兰共和军使用的关键字。

基于这些信息,我们可以重建消息加密的过程。我们从明文开始,包括字母ETDSL(这些字母在稍后的时间点丢失),并保持最后一个单词中的拼写错误:

RE GELIGNITE SCOTLAND STATES THEY RAIDED AND OBTAINED SOME OF THLS

接下来,我们在关键字下方写下这段文本。(注意,字母ETDS 出现在倒数第二列。)

BCAFIEHGKDLJ

------------

REGELIGNITES

COTLANDSTATE

STHEYRAIDEDA

NDOBTAINEDSO

MEOFTHLS

现在,我们交换列的顺序,使得关键字字母按字母顺序排列:

ABCDEFGHIJKL

------------

GRETIENGLSIE

TCOANLSDAETT

HSTEREIAYADD

ONDDABNITOES

OME HFSLT

按列读出文本,我们得到:

GTHOO RCSNM EOTDE TAEDI NRAHE LEBFN SINSG DAILL AYTTS EAOIT DEETDS

这条消息由五十六个字母组成。不知为何,最后五个字符后来丢失了(即结尾的ETDSLEBEN中的L):

GTHOO RCSNM EOTDE TAEDI NRAHE LEBFN SINSG DAILL AYTTS EAOIT DEETDS

2019 年 8 月,理查德·比恩将他找到的这个解决方案告知了克劳斯和吉姆。吉姆能够验证这一结果,确认它是正确的。在最初成功的十多年后,托梅的最后一条信息终于被破译了。

成功故事:乔治·拉斯里的双列换位密码挑战解答

1999 年,德国密码学权威机构Zentralstelle für das ChiffrierwesenZfCh,即中央密码事务局)前主席奥托·莱贝里奇在德国科学期刊Spektrum der Wissenschaft上发表了一篇文章。^(13) 在这篇文章中,莱贝里奇讨论了双列换位法(见第十章),这是东德特工在冷战期间使用的密码方法。

双列换位法是已知的最好的手动密码之一。莱贝里奇和他的团队在破解这种方法方面做了大量工作,1974 年,他们的一个成果导致了一个重要间谍的揭露:西德总理威利·布兰特的私人秘书,古恩特·吉约姆。吉约姆曾向东德提供情报。他被逮捕、审判并判刑入狱,但在 1981 年作为交换犯人的一部分被释放。

在 1999 年发表的文章中,莱伯里奇鼓励研究人员进一步研究双列换位加密法,因为该技术具有历史价值。他还建议使用这种密码创建一个挑战性密码文。他对这个挑战的建议包括以下几点:

  • 两个关键字的长度应该是二十到二十五个字符。

  • 两个关键字的长度应该没有除 1 以外的公约数。

  • 密文的长度不应为任何一个关键字长度的倍数。

  • 密文应该大约有五百个字符(大致为两个关键字长度的乘积)。

莱伯里奇从未自己发布过这种挑战,因此克劳斯决定这样做,因为他一直对挑战读者感兴趣。他选择了拉斐尔·萨巴蒂尼(Rafael Sabatini)1910 年小说《Mistress Wilding》中的几个段落,并使用由二十到二十五个字母组成的两个英语短语作为关键字对其进行了加密。^(14) 明文的长度为 599。克劳斯在 2007 年通过一篇在线文章发布了这个挑战密码文本:^(15)

VESINTNVONMWSFEWNOEALWRNRNCFITEEICRHCODEE

AHEACAEOHMYTONTDFIFMDANGTDRVAONRRTORMTDHE

OUALTHNFHHWHLESLIIAOETOUTOSCDNRITYEELSOAN

GPVSHLRMUGTNUITASETNENASNNANRTTRHGUODAAAR

AOEGHEESAODWIDEHUNNTFMUSISCDLEDTRNARTMOOI

REEYEIMINFELORWETDANEUTHEEEENENTHEOOEAUEA

EAHUHICNCGDTUROUTNAEYLOEINRDHEENMEIAHREED

OLNNIRARPNVEAHEOAATGEFITWMYSOTHTHAANIUPTA

DLRSRSDNOTGEOSRLAAAURPEETARMFEHIREAQEEOIL

SEHERAHAOTNTRDEDRSDOOEGAEFPUOBENADRNLEIAF

RHSASHSNAMRLTUNNTPHIOERNESRHAMHIGTAETOHSE

NGFTRUANIPARTAORSIHOOAEUTRMERETIDALSDIRUA

IEFHRHADRESEDNDOIONITDRSTIEIRHARARRSETOIH

OKETHRSRUAODTSCTTAFSTHCAHTSYAOLONDNDWORIW

HLENTHHMHTLCVROSTXVDRESDR

无论是克劳斯还是莱伯里奇都没想到这个密码文能被破解;然而,六年后,即 2013 年,克劳斯收到了当时尚未出名的以色列人乔治·拉斯里(George Lasry)发来的邮件,他声称自己已成功破解了这个双列换位加密挑战。他的解法被证明是正确的:

THEGIRLHADARRIVEDATLUPTONHOUSEAHALFHOURAH

EADOFMISSWESTMACOTTANDUPONHERARRIVALSHEHA

DEXPRESSEDSURPRISEEITHERFEIGNEDORREALATFI

NDINGRUTHSTILLABSENTDETECTINGTHEALARMTHAT

DIANAWASCAREFULTOTHROWINTOHERVOICEANDMANN

ERHERMOTHERQUESTIONEDHERANDELICITEDTHESTO

RYOFHERFAINTNESSANDOFRUTHSHAVINGRIDDENONA

LONETOMRWILDINGSSOOUTRAGEDWASLADYHORTONTH

ATFORONCEINAWAYTHISWOMANUSUALLYSOMEEKANDE

ASELOVINGWASROUSEDTOANENERGYANDANGERWITHH

ERDAUGHTERANDHERNIECETHATTHREATENEDTOREMO

VEDIANAATONCEFROMTHEPERNICIOUSATMOSPHEREO

FLUPTONHOUSEANDCARRYHERHOMETOTAUNTONRUTHF

OUNDHERSTILLATHERREMONSTRANCESARRIVEDINDE

EDINTIMEFORHERSHAREOFTHEM

有趣的是,George 找到了解决这个挑战的两种不同方法。在第一种方法中,他通过字典攻击,计算机程序猜出了两个关键词:PREPONDERANCEOFEVIDENCETOSTAYYOUFROMELECTION。他的第二种方法是基于爬山算法。后来,Jim 提出了第三种方法:使用计算机程序,他检查了所有可以在线访问的十九世纪文本,并找出了 Klaus 选择的那一篇。

对这项巧妙的密码分析技术感兴趣的读者,建议阅读 George 于 2014 年在Cryptologia期刊上发表的文章(与 Arno Wacker 和 Nils Kopal 合著)。^(16) 如果你对这种类型的更困难密码感兴趣,可以查看第十章“挑战”部分中的“重载双列换位挑战”。

使用爬山算法解密旋转格栅密码

爬山算法已被证明是破解旋转格栅密码的非常有效方法。正如我们所展示的,我们可以使用这种技术解开甚至更大的旋转格栅,包含 20 × 20 个方格或更多。这是因为我们可以轻松构建一个大小为 2n × 2n的旋转格栅,使用一个n × n矩阵,如第十一章所描述的那样。举个例子,下面的图示显示了如何将一个 3 × 3 矩阵变成一个 6 × 6 的格栅:

在计算机程序中,3 × 3 矩阵中的数字序列(2,4,1,1,4,3,3,2,2)可以表示格栅,它作为此加密方法的密钥。接下来,我们需要一种方法来稍微改变格栅。我们可以通过增加 2 到表示格栅的某个数字来实现这一点,例如下面的例子。如果结果大于 4,我们就减去 4:

旧密钥: 2,4,1,1,4,3,3,2,2

新密钥: 2,4,3,1,4,3,3,2,2

对于旋转格栅爬山算法,我们还需要修改我们用来评估明文候选正确性的适应度函数。我们不能基于字母的频率,因为这种加密方法不会改变明文中字母的频率。(没有任何换位密码会这样做。)相反,我们可以创建一个基于双字母、三字母组合或其他n字母组合的适应度函数。

计算机程序 JCrypTool 提供了一个基于爬山算法的旋转格栅解密器。

成功案例:Bart Wenmeckers 解决旋转格栅密码的方案

在第十一章中,我们提到意大利密码历史专家 Paolo Bonavoglia 最近在他著名的祖父 Luigi Sacco(1883–1970)的一本笔记本中发现了一个旋转格栅密码。^(17) 在自己解开这个密码后,Paolo 还将其作为挑战发布在“Cryptograms & Classical Ciphers”Facebook 小组中。我们的同事 Bart Wenmeckers,小组的主持人,接受了这个挑战。^(18)

像许多破解经典密码的专家一样,Bart 经常使用爬山算法,采用他自己编写的修改版程序。该程序返回以一行表示的 grille,其中字母 C 代表一个孔,D 代表没有孔。它还返回其适应度函数的结果(越高越好)以及每次结果增加时生成的明文候选。以下是 Bart 对 Sacco 旋转 grille 密码攻击日志的最后一部分:

DDCCCDCDDDDDDDDCDDCDDDDDDCDDDDDDDDDCDDCCCCDDDDDDD, 323

NOSPDSEHERSEEUCHNGENDWITRSTWRKECYHEIESULLIUNTEXE

DDCCCDCDDDDDDDDCDDCDDDDDDCDDDDDDDDDCCDCCDCDDDDDDD, 329

NOSPDSEHWEREESUCHNGENDITRTWURKECYHEIESLLIUNTEXSE

DDCCCDCDDDDDDDDDDDCDDDDDDCDDDDDDDCDCCDCCDCDDDDDDD, 334

NOSPSECHWEREESCHNGENDXITRTWURDKEYHEIESULLIUNTESE

DDCCCDDDDDDDDDDDDDCDDDDDDCDDDDDDDCDCCDCCDCCDDDDDD, 344

NOSSECHWEREYEESCHNGENDXIPRTWURDKEHEISULLIUNTESET

CDCCCDDDDDDDDDDDDDCDDDDDDCDDDDDDDCDCCDCCDCDDDDDDD, 362

ENOSSECHWEREEPSCHNGENDXIRTWURDKEHEITSULLIUNTESYE

CDCCCDDDDDDDDDDDDCCDDDDDDDDDDDDDDCDCCDCCDCDDDDDDD, 385

ENOSISCHWEREEPSCHENGNDXIRTWURDEEHEITSULLUNKTESYE

DDCCCDDDDDDDDDDDDCCDDDDDDDDDDDDDDCDCCDCCDCDDDDDDC, 402

NOSISCHWERETESCHENGNDXYIERTWURDEEHEISPULLUNKTESE

DDCCDDDDDDDDDDCDCCDDDDDDDDDDDDDDDCDCCDCCDCDDDDDDC, 410

NOLLICHWERETESSSCHENGXYIERTWURDENDEISPUUNKTEESHE

DDDDDCDDDCCDCCDCDDDDDDDDDDDDDDDCCDCDDDDDDDDDDCCDC, 416

STWURDENDEITUUNKTEESEYHEENOLLICHWERIESPRSSCHENGX

CDDDDCDDDCCDCCDCDDDDDDDDDDDDDDDCCDCDDDDDDDDDDCCDD, 424

ESTWURDENDEIPUUNKTEESEHENOLLICHWERITESRSSCHENGXY

CDDDDCDDDCCDCCDCDDDDDDDDDDDDDDDCCDDDDDDDDDDDCCCDD, 425

ESTWURDENHEIPULUNKTEESEENOSLICHWERITERSSCHENGDXY

CDDDDCDDDCCDCCDCDDDDDDDDDDDDDDCCDDDDDDDDDDDDCCCDD, 428

ESTWURDEEHEIPULLUNKTESEENOSISCHWERITERSCHENGNDXY

CDDDDCDDDDCDCCDCDDDDDDDDDDDDDDDCCDCDDDDCDDDDDCCDD, 442

ESWURDENDREIPUNKTEGESEHENOTLLICHWEITESRSSUCHENXY

如果你懂德语(原文的语言),你会马上看到单词出现。以下是明文(原文中有错误):ES WURDEN DREI PUNKTE GESEHEN OTLLICH WEITESRSSUCHEN XY

它的翻译是:THREE POINTS HAVE BEEN SEEN. KEEP ON SEARCHING IN THE EAST XY. 最后消息中的 XY 几乎肯定是填充符,目的是确保明文恰好有四十八个字母。

成功案例:Armin Krauss 解开旋转 grille 挑战的方案

20 × 20 的旋转 grille 密码可以用爬山算法破解吗?由于 Klaus 从未在文献中找到这个问题的答案,他决定为他的博客读者创造一个挑战,测试这个想法。他选取了一段由 400 个字母组成的英文文本,用 20 × 20 旋转 grille 进行了加密,并在 2017 年将密文发布到他的博客上:^(19)

ENPAIGEZLANEDMTHSENF

EIORDEMATANNATMOOFSL

AEPLMHOIERITOECDMVNE

OXNPBROEDOIETRANEEIU

XPNPONRNTAREOMMYDWIT

IANHTNEIOODNSOUOTETD

MOOVEARPHRIOLAEGNALN

INATTFINOREATDNGWDDA

UHSIEURININGTTEDASTN

ATGHPEESAOMEISEADRMM

YANTSOEJOESYTERTHACH

BNINCALURDCHLEALLHLA

OIFWESTEHENGREERRTHE

SAAMSIBEIOVNSAINARLI

DTESGIIETTUCNARILYLO

ESENRUUISINEADSRANLA

COUWNEAUETCPOHRNSDTW

BYEOFNINGHERHIVNTOTE

MNTBERAEHEUNSPNSUTIX

NPOITYPFIKSAVULEATRA

在 Klaus 发布文章三天后,我们的同事 Armin Krauss 发布了解决方案:^(20)

有人类登月探险计划的起源可以追溯到艾森豪威尔时代,在一系列文章中,Wernher von Braun 推广了月球探险的想法。载人登月面临许多技术挑战,除了导航和重量管理,气象再入大气层而不发生过热是一个主要障碍。在苏联发射了“斯普特尼克”卫星之后,Von Braun 提出了一个计划,建议美国军方在 1965 年之前在月球上建立一个军事前哨站。

Armin 使用了他自己设计的爬山法和模拟退火程序来破解这个密码。他使用的适应度函数基于三字母频率。此外,Armin 使用了一个由 1 到 4 之间的数字组成的序列来表示格子,如本节的介绍中所述。在每一轮中,他随机更改一个数字。

由于原始密文包含错误,Armin 必须进行一些额外的手动破译。在他通过 Google 了解到 Klaus 的明文来自维基百科的一篇文章后,他尽管遇到错误,还是成功解决了这个挑战。

使用爬山法解决一般双字母替换问题

爬山法是解决一般双字母替换的完美方法。这种技术类似于破译简单替换密码;我们甚至可以使用一个类似的适应度函数,基于字母或n字母组合的频率,来检查明文候选是否像真实语言。然而,我们需要一个更大的替换表(如果是 26 个字母的字母表,则需要 676 列)和一个更大的密文。

成功故事:一些双字母挑战

由于研究人员在一般双字母替换领域的研究较少,Klaus 决定挑战他的博客读者,通过双字母密码进行解密。这导致了一系列显著的破译记录:

  • 2017 年 2 月,Klaus 在他的博客上发布了两个双字母挑战:“Bigram 5000”和“Bigram 2500”。^(21) Bigram双字母组合 的另一个词,而 2,500 和 5,000 是挑战密文中包含的字母数量。在三天内,德国破译者 Norbert Biermann 在 Armin Krauß 的支持下,使用 Norbert 自己设计的爬山法程序找出了这两个明文。

  • 两年后,即 2019 年 7 月,Klaus 创建了一个全新的、甚至更短的挑战。这次,密文仅包含 1,346 个字母:“Bigram 1346”。^(22) 四周后,Biermann 再次成功破解此挑战,创下了新纪录。^(23)

  • 几个月后,即 2019 年 10 月,Klaus 再次向读者发起挑战,提出了一个更短的同类密文,包含恰好 1,000 个字母。^(24) 再次,这个密文被迅速破解,创下了另一个记录。这次,解决方案来自两位博客读者:比利时的 Jarl Van Eycke 和瑞士的 Louie Helm,他们共同合作解决了这个挑战。^(25) 他们使用一个高度复杂的爬山程序解开了挑战,该程序包括一个基于八元组频率的适应度函数。鉴于一个 26 字母的字母表可以生成大约 2000 亿个八字母块,破译者需要大量的文本来生成有用的参考统计数据。他们使用了约两太字节的英语文本,这些文本来自他们创建的一个数据库,该数据库包含了数百万本书籍、维基百科中的所有内容、从 Usenet 帖子中提取的 70 亿个单词等。

  • 两个月后,即 2019 年 12 月,Klaus 发布了一个更短的挑战,只包含 750 个字母:“Bigram 750”。^(26) 再次,Van Eycke 和 Helm 在两天内解决了它。^(27)

  • 在 Van Eycke 和 Helm 成功之后,Klaus 于 2020 年 3 月发布了“Bigram 600”挑战(见第十二章)。

截至目前,“Bigram 750”密文仍然是已解密的最短通用二元组密文。

使用爬山算法解密 Playfair 密码

爬山算法已被证明在破解 Playfair 密文方面非常高效。它比我们在第十二章中介绍的手动破译技术要好得多。它也优于字典攻击,因为它不需要破译者从一个可猜测的关键字推导出 Playfair 矩阵。

为了在 Playfair 矩阵中引入一个小变化,我们所需要做的就是交换两个字母的位置。定义适应度函数也很简单,因为我们可以依赖字母频率来判断一个明文候选是否像真实语言。使用其他 n-元组(从二元组到八元组)的频率甚至可以更有助于推断最终的明文。

一台计算机能多快处理这个任务?CrypTool 2 软件具有一个强大的 Playfair 爬山算法,名为 Playfair Analyzer,它包括一个基于六元组频率的适应度函数。CrypTool 项目的负责人 Esslinger 向我们展示了该组件如何在 Dorothy L. Sayers 1932 年的小说《Have His Carcase》中的 Playfair 密码中表现。在第十二章中,我们专门用好几页描述了在没有计算机支持的情况下,这个密文是多么难以破解。图 16-5 展示了 Playfair Analyzer 是如何工作的。

图 16-5:CrypTool 2 软件在 PC 上运行,在一分钟内破解了 Dorothy L. Sayers 小说《Have His Carcase》中的 Playfair 密文。

当用户将密文复制到左侧窗口并启动爬山算法后,软件会在中间窗口显示每一步的爬升过程。CrypTool 2 大约需要一分钟时间生成密码的密钥和明文。即使是经验丰富的密码破译者,没有计算机支持也需要几个小时才能完成这项任务。

软件在右下窗口显示了以下正确的 Playfair 矩阵,并使用了关键词MONARCHY

MONAR|CHYBD|EFGIK|LPQST|UVWXZ

你可以在右上窗口中看到明文,或者在第十二章中查看。

成功案例:丹·吉拉尔破解切尔滕纳姆字母石

2005 年,英国艺术家戈登·杨(Gordon Young)在英国切尔滕纳姆创作了聆听之石(Listening Stones)(参见第四章)。这十英尺高的石雕中有两块,分别叫做数字石(Number Stone)和字母石(Letter Stone),上面刻有加密铭文。以下是雕塑家提供的字母石上的信息:

EC KH LO PT OA DL LU AB KW LO YS NA EC BF MZ FA LC NQ XR UT DK

SQ KH EC ZK NL CK SQ CB SA SA QU LF MZ IV FA LC OA VB OK CK AV

DY SY LO WL KL NI BH BX LO MY VA EK AP LB CW PY OA OK MO AV BL

VM PK LC UP BY KQ MK BN AN BF GA YM LO AK NI BP PI HT TI NT CV

EC FI LW CQ GL TI KL NI BH RP GZ SU LQ AS YT GA VB FW NM XC UP

EB NA WL ID PM ZK LM WL RO VI AO LC IC VI KQ FW OA PA XC UP EQ

SO PM QU MB PU CL VA KI OM NE LM BF UP IG BC FR LO CV KI OM VT

BF YF IP EQ CQ SX NK MZ CQ YS GZ BF UI XD SQ QK AG KL SQ YF PM

RF TV KE CW LW ME VA KN UP FA UI FI KM NQ XR AV TR LO CV EL NL

LQ FY UP PN NK IG NO BN EC NP BF GA NE HM IV FY DQ LM YF DQ AM

BP NI KF LU BN RY UK NA KI OM WF SO OK KQ OA BL KL QA BL VK CK

HL MP TO AG QT PI HL TI NT CV EC IA SL LM YF RL HT IP PS CW CW

图 16-6 展示了这座雕塑。当克劳斯在 2015 年了解到这个密码时,它仍然没有解开。根据雕塑家的说法,石上的双字母组是用 Playfair 密码加密的。然而,他并不记得加密的详细信息,更不用说密钥了。

图 16-6:字母石,这座雕塑位于切尔滕纳姆的 GCHQ 总部旁,刻有 Playfair 加密铭文、箭头和每个圆圈内的字母对。

克劳斯在 2015 年 9 月在他的博客上发布了关于这个密码的文章。^(28) 几小时后,博客读者丹·吉拉尔(Dan Girard)发布了解答,他用自己的爬山程序破解了它。结果显示,关键词是LECKHAMPTON。以下是明文的开头:

LECKHAMPTON CHIMNEY HAS FALLEN DOWN

THE BIRDS OF CRICKLEY HAVE CRIED IT IT IS KNOWN IN THE TOWN

THE CLIFXFS HAVE CHANGED WHAT WILL COME NEXT XTO THAT LINE

WATCHER OF WEST ENGLAND NOW THAT LANDMARK OAS FALXLEN . . .

魔鬼烟囱(Devil’s Chimney)是位于切尔滕纳姆附近莱克汉普顿山(Leckhampton Hill)的一个岩石形成物。

成功案例:Playfair 世界纪录

在第十二章中,我们提到过 1936 年,美国密码分析师阿尔夫·蒙赫基于关键字破解了一个三十字母的 Playfair 密码。^(29) 2018 年,克劳斯想知道如果 Playfair 密码不基于关键字,也就是说字典攻击无法奏效,那么密码破解者能解出多短的 Playfair 密码。因此,他在自己的博客上发布了一系列越来越难的 Playfair 挑战,并提供了读者提供的相应解法。大部分破解工作依赖于爬山算法和模拟退火。

就我们所知,这些挑战过程中产生的密码分析结果代表了此类实验的最佳结果。这意味着它们创下了世界纪录,最后一个纪录至今仍然有效。我们和挑战解题者在《Cryptologia》杂志上发布了这篇题为《我们如何打破 Playfair 密码文本并创下新世界纪录》的文章。^(30) 接下来,我们将呈现这篇文章的摘要。

2018 年 4 月,克劳斯在他的博客上发布了一个不基于关键字的五十字母 Playfair 消息:^(31)

MQ VS KP EV IS BA WK TP KP PN AU NU NE GL UZ TY UZ LY GC TZ KN KU ST AG CT NQ

这个挑战很快就不再是谜题;我们的同事乔治·拉斯里当天就用自己设计的模拟退火程序解决了它。他的适应度函数使用了六边形图的统计数据。以下是明文:

在巴黎时,我接到命令向福斯特将军报告 X

2018 年 12 月,克劳斯设计了另一个挑战,基于一个只有四十个字母的明文:^(32)

OF FC ER VU MW MO OM RU FI WC MA OG FV ZY FX YB HG UX ZV EH

这一次,德国密码破解者尼尔斯·科帕尔,CrypTool 2 的开发者,在同一天就发布了解法。他应用了乔治编写的相同模拟退火算法,包括基于六字组合的适应度函数。软件给出了以下解法:^(33)

明天下午四点二十在市场广场见

接下来,在 2019 年 4 月,克劳斯发布了一个三十二字母的 Playfair 密码,基于一个三十字母的明文:^(34)

SX CR ED BQ UG VZ RS MN DS IK RK WR SG NS NX VM

这个挑战比之前的更为困难,因为那一天、那一周,甚至那一个月都没有找到解法。然而,五个月后,在 2019 年 9 月,来自瑞典的马格努斯·埃哈尔用模拟退火破解了信息,并再次创下新纪录。他的适应度函数使用了五个字母组(五字组合)的频率。明文内容如下,并且包括了两个X作为填充字符:^(35)

星期天乘坐最后一班 X 号火车前往约克

2019 年 9 月,克劳斯设计了一个新的 Playfair 挑战——这次有二十八个字母:^(36)

ZX LS EW HC HU CE LQ OE PN YR IW YC VQ LS

再次,Magnus Ekhall 提出了解决方案。然而,这个过程清楚地表明,一个二十八个字母的 Playfair 消息要比一个三十二个字母的更难破解。使用模拟退火算法,Magnus 的程序生成了 100,000 个解候选。然后,Magnus 写了一个额外的程序来确定正确的候选解,这里复现了该解:^(37)

待在原地,直到星期四

继续进行实验,Klaus 在 2019 年 11 月发布了一个二十六字母的挑战:^(38)

DB AQ IH KN RW VB KW NA DQ WR AM OQ IY

四周后,这个解决方案被一位之前在破译社区中未知的人发布了:来自拉脱维亚里加的 Konstantin Hamidullin。以下是明文:^(39)

等待进一步指示

令人惊讶的是,Konstantin(他后来成为了我们的同事)并没有使用爬山算法或模拟退火算法,而是使用了他自己独特的方法,通过对明文的首个词语进行字典攻击。这种攻击需要一个列表或字典,其中包含常见的英语句子开头的词组。例如,ONCEUPONATIMETHEQUESTIONWEWILLDISCUSSTODAY可能出现在这样的列表中。

由于 Konstantin 找不到现有的适合他需求的词典,他决定创建一个。为此,他转向了 Project Gutenberg,一个收录了成千上万本公共领域书籍的数字图书馆。他编写了一个程序,扫描了大约 3000 本英语书籍,并生成了一个包含所有句子开头最常出现的词组的列表。

Konstantin 的破译软件然后利用这个列表中更频繁的词条作为明文开头的"字典",接着检查是否存在一个 Playfair 矩阵,能够从这个字典推导出相应的密文。在很多情况下,并非如此:例如,词组THISIS不能编码为DBAQIH,因为IS的重复会导致密文中的重复,而在这里并未出现。如果对于某个字典,存在一个 Playfair 矩阵,软件则会通过另一个可能的词语扩展该词组—例如,ONCEUPONATIME可能会变成ONCEUPONATIMETHERE—并再次进行测试。

突破出现在 Konstantin 的程序成功识别出词组WAITFOR并成功将其扩展为WAITFORFURTHER时。当它将INSTRUCTIONS作为第四个词加进去并得到正结果时,解决方案终于找到了。

最后,Klaus 发布了一个二十四个字母的挑战,你可以在第十二章找到。截止目前,由 Konstantin 解开的二十六个字母的 Playfair 密码是迄今为止解密过的最短密文。如果你想挑战这个纪录,可以试试二十四个字母的密文。要查看这个挑战是否仍然有效,可以访问codebreaking-guide.com/errata/

使用爬山算法解密机器密码

爬山算法不仅适用于大多数替代法和换位法,还适用于加密机器时代(大约 1920 年至 1970 年)更为复杂的密码(该内容在第十五章中讨论)。最重要的是,爬山算法在破解恩尼格玛消息方面表现极为成功。

成功案例:破解原始恩尼格玛消息

确切的数量尚不清楚,但专家估计,在第二次世界大战期间,德国人共传输了约一百万条恩尼格玛消息。^(40) 出于安全原因,无线电操作员通常会在解密后销毁任何密文记录,这也是为什么大多数原始恩尼格玛消息今天已丢失的原因。幸运的是,仍然有一些例外,成千上万的战时恩尼格玛消息被保存在档案馆、博物馆或私人收藏中。当然,研究人员未来可能会发现更多这类消息。

在过去的二十年里,几位恩尼格玛爱好者尝试破解原始的恩尼格玛密文,并取得了相当大的成功。我们了解以下几个项目:

  • M4 项目:这是德国小提琴家 Stefan Krah 发起的一个项目,旨在破解三条二战时期的原始德国海军消息,这些消息使用四转子恩尼格玛 M4 加密。^(41) 目标是通过分布式计算找到解决方案。成千上万的人下载了 Krah 为此编写的软件并提供 CPU 资源。M4 项目在 2006 年成功破解了其中两条消息。第三条消息则在七年后,即 2013 年解开。

  • 破解德国国防军密码:这是一个持续进行的项目,由 Geoff Sullivan 和 Frode Weierud 于 2002 年启动。^(42) Olaf Ostwald 后来加入了这一努力。三人共同破解了数百个原始的恩尼格玛密文,包括来自弗洛森堡集中营和德国俄罗斯战役(巴巴罗萨行动)的无线电消息。

  • 破解德国海军密码:这是另一个持续进行的项目,旨在破解原始恩尼格玛消息。由德国教师 Michael Hörenberg 于 2012 年发起。^(43) 截至目前,他和他的密码分析伙伴 Dan Girard 已经成功解密了超过六十个恩尼格玛密文。

参与这些项目的人们已经开发出了基于计算机的更强大的恩尼格玛破解技术,这些技术远远超过了英国在二战期间布莱切利公园使用的方法。许多技术都是基于爬山算法的。已知存在的大多数原始恩尼格玛信息都已经被破解。唯一的例外通常是非常短的消息或可能包含错误的密文。

第十七章:接下来呢?

恭喜!如果你已经阅读到这本书的这一部分,并理解我们解释的主要概念,那么你已经学到了很多关于破译密码的内容。你已经在成为一名技术娴熟的密码分析师的道路上走了很远。然而,你还可以学到更多知识,并且还有许多等待解决的密码挑战。在接下来的章节中,我们将告诉你如何从这里继续你的密码破译之旅。

更多未解密的密码

在本书的前十六章中,我们介绍了数十个未解密的密码,如文音手稿(第五章)和比尔密码(第六章)。这里还有更多。与我们迄今为止介绍过的不同,这些密码不能明显地归入某种密码类型。毕竟,由于它们未解密,我们甚至不知道它们是如何制作的!

第四部 Kryptos 信息(K4)

1990 年创作于弗吉尼亚州兰利中央情报局总部内的雕塑Kryptos,带有一个分为四部分的加密铭文(详见附录 A)。虽然前三部分早已解决,第四部分(也称为 K4)仍然是一个谜:

OBKR

UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO

TWTQSJQSSEKZZWATJKLUDIAWINFBNYP

VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR

与此同时,Kryptos的创作者吉姆·桑伯恩多年来提供了与 K4 明文相关的四个不同线索。前三个被刊登在纽约时报上,第四个则是在本书首次出版前不久通过邮件由雕塑家提供的:

  1. 2010 年:K4 的第 64 到 69 位置是BERLIN。^(1)

  2. 2014 年:在 K4 明文中,单词CLOCK跟在BERLIN之后。^(2)

  3. 2020 年 1 月:单词NORTHEAST出现在第 26 到 34 位置。^(3)

  4. 2020 年 8 月:另一个单词EAST出现在第 22 位置。

下图显示了 K4 及其四个提示。请注意,明文从特定位置开始,并不一定意味着与密文之间有一一对应的映射。据我们所知,可能还涉及一些置换。

OBKR

UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO

EASTNORTHEAST

TWTQSJQSSEKZZWATJKLUDIAWINFBNYP

BER

VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR

LINCLOCK

即使有了这四个线索,截至目前为止,没有人能够破译 K4。

鲁宾密码

1953 年 1 月 20 日,十八岁的学生保罗·鲁宾的尸体在费城国际机场附近的一个沟渠里被发现。经调查,确定他的死因是氰化物中毒。目前尚不清楚鲁宾是自杀还是被谋杀,但作为一名化学学生,他显然有机会接触到致死的毒药。当他的尸体被发现时,鲁宾的腹部绑着一个小盒子,里面装有一条加密信息(见图 17-1)。

图 17-1:化学学生保罗·鲁宾在费城被发现死亡时,随身携带着这张纸条。

这个加密信息至今未解开,案件也没有结论。关于鲁宾案件的最佳资料来源是克雷格·鲍尔的书《未解之谜!》^(4)

里基·麦考密克的加密纸条

1999 年 6 月 30 日,警方在密苏里州圣路易斯附近的一个玉米地里发现了一具尸体。经过调查,警方确认他是谋杀受害者,并将其身份确定为 41 岁的里基·麦考密克。在他的一只口袋里,调查人员发现了两张含有加密信息的纸条。^(5) FBI 动用了其破译部门 CRRU 来解密,但没有任何专家能够破解这些加密信息,这一点很不寻常,因为 CRRU 声称其破译成功率很高。美国密码学协会的成员也未能破译成功。

2011 年 3 月 30 日,FBI 采取了非常措施,将麦考密克的两条加密信息发布在www.fbi.gov网站的首页,寻求公众帮助解开这些加密信息,或识别任何其他相似的加密文本。加密信息见图 17-2。

图 17-2:谋杀受害者里基·麦考密克留下了两张加密纸条,至今未解开。

麦考密克的加密信息引起了极大兴趣,但至今仍未解开。

二战期间的信鸽信息

1982 年,一名居住在英国萨里的人在清理烟囱时发现了一只鸽子的遗骸。^(6) 这只鸟竟然是二战期间使用的信鸽之一,甚至仍然带着一条加密信息(见图 17-3)。

图 17-3:这条信息通过一只信鸽在二战期间传送。在其公布之后,许多人尝试破译,但均未成功。

以下是文字记录:

AOAKN HVPKD FNFJW YIDDC

RQXSR DJHFP GOVFN MIAPX

PABUZ WYYNP CMPNW HJRZH

NLXKG MEMKK ONOIB AKEEQ

UAOTA RBQRH DJOFM TPZEH

LKXGH RGGHT JRZCQ FNKTQ

KLDTS GQIRW AOAKN 27 1525/6.

对这只鸽子的旅程知之甚少。二战期间使用信鸽非常普遍,英国皇家空军训练了大约 25 万只信鸽。通常,他们将鸽子用降落伞投放到纳粹占领的欧洲,由特工接收后交给英国军方传递消息。

我们所知的是,这只携带信息的鸽子戴着一只环,标明它是在 1940 年被标记的。这条信息是由两只不同的鸽子携带的,每只鸽子都带有国家赛鸽联盟(NURP)的环:^(7)

NURP 40 TW 194 “40”表示这只鸽子是在 1940 年被标记的。“TW 194”可能意味着它是特威克纳姆的鸽子#194。

NURP 37 DK 76 这表明这只鸽子是在 1937 年被标记的,它的家可能在多金(Dorking)。

这条信息由“W·斯托特中士”签名,可能指的是威廉·斯托特中士,27 岁,曾在侦察任务中跳伞进入诺曼底。这份电报可能是 1944 年 6 月 6 日 D 日(诺曼底登陆)期间传送的无数消息之一。表单上写明其目的地是 X02,这是皇家空军轰炸机指挥部(位于海威科姆)的代号。

对于英国人在特定时间加密载体鸽通信时使用的密码,知之甚少。因此,很难确定这条消息使用了哪种加密方式。许多密码破译者曾尝试解密它,但都没有成功。有些人认为所使用的加密方式是一次性密钥(见第八章),这意味着除非找到密钥,否则这条消息永远无法解开。

被加密的 NKRYPT 柱子

NKRYPT是一个艺术装置,由八根钢柱组成,位于澳大利亚堪培拉的奎斯塔孔科学技术中心外(见图 17-4)。此装置安装于 2013 年,由科学教育家和奎斯塔孔科学与学习主任斯图尔特·科尔哈根(Stuart Kohlhagen)设计。

每根NKRYPT柱子都覆盖着两个激光切割的密文,由字母、数字和符号组成。在每根柱子的底部,有一串数字以圆形模式排列,有人认为这可能代表 DNA 序列。这些密码都是离散的,但相互关联,解开其中一个可能会为解开其他密码提供线索。^(8) 艺术作品周围还有其他挑战,柱子的定位和高度也有其含义。

图 17-4:NKRYPT是一个位于澳大利亚堪培拉的艺术装置。它展示了一系列加密信息,其中许多仍未被解密。

根据 Kohlhagen 的说法,大约有六十个谜题与NKRYPT相关。其中一些谜题是隐藏的,或者只有在解决其他谜题后才会显现,呈现出元谜题的风格。这些密码并不是基于现代加密系统,如 AES 或 RSA。至少对于那些已被解开的谜题,其难度差异很大。

有两个粉丝网站致力于这座雕塑:由位于墨尔本的计算机科学家 Glenn McIntosh 创作的NKRYPT雕塑^(9) 和 Greg Lloyd 创作的 DKRYPT^(10)。由于这些支柱没有官方名称,我们使用 Glenn 的标签 A 到 H。图 17-5 展示了由 Stuart Kohlhagen 提供的艺术作品蓝图。两者中的序列相同,但方向相反。

在十六个明显的NKRYPT密码图案中,九个已经由 Glenn McIntosh、Bob Dovenberg 和其他人解开。这些密文大多数由二十六个字符组成的行组成。它们使用了简单的二进制代码、凯撒密码、猪 pen 密码系统、转子密码和蛇形密码加密。在许多情况下,Kohlhagen 还通过不规则的路径转置(或者至少是目前看不出具有可定义规则的路径模式)进行了解密。例如,在支柱 A 上,路径如下所示:

图 17-5:这张由 Kohlhagen 绘制的蓝图展示了八个NKRYPT支柱上的密码图案。

明文从左上角开始,3527421491373 . . . 这个数字序列表示堪培拉周围地点的纬度和经度坐标,格式如下:S 35.2742, E 149.1373;然后是 S 35.2984, E 149.1312;依此类推。其他支柱上的转置路径看起来类似,但并不完全相同。Kohlhagen 告诉我们,当所有八个支柱的路径完成时,它们将组成雕塑的元谜题的一部分。

作为第一个未解开的NKRYPT密文示例,我们将查看支柱 G 上的上方消息(见图 17-6)。它由带有一个角度的圆形图案(称为squircle的符号)组成,形成了前面提到的二十六列模式。像所有NKRYPT的挑战一样,它没有官方名称,因此我们暂时称之为矩形密码图案。

图 17-6:矩形和 PVL 密码图案仍未解开。

在这组矩形密码图案中,使用的字母表只有四个符号,McIntosh 将其转录为0123。以下是他对消息的转录:

01110011011101021231331012

02030013322303333000200032

21221133103032320102000132

23123002121223001301131123

10103100010101201201221103

30212131033000203011112330

30101111212032132012210133

13303323023120222333322012

00000101022001203231310031

30110333202120112302112123

该 Squircle 密码由 260 个字符组成,但符号种类或双字母组合太少,无法编码二十六个字母。因此,我们猜测 Kohlhagen 使用了四字母组合(即四个字符一组)。一个四字母组合,范围从 0000 到 3333,可以表示 256 个可能的数字。这是编码 ASCII 字符(包括大小写字母、数字、标点符号等)的理想数量。柱上的密文由 65 个四字母组合组成,这意味着(如果我们的猜测正确)它可能会解码出 65 个 ASCII 字符的明文。

Kohlhagen 还向我们指出,Squircle 密码所使用的密码系统包括类似于其他挑战中所用的路径置换。因为所有已知的路径都是基于单字符的网格,无论加密系统使用双字母组合还是四字母组合,可能需要在执行置换后才会形成四字母组合。当然,反过来也可能是对的!

另一段未解的NKRYPT密文出现在 H 柱上。每一行包含二十六个字符,总共有十行,并且字母PVL的字体较大。这个密文被称为 PVL 密码。以下是 McIntosh 在他的网站上提供的转录内容:

OXPUWAOEKZVCRLUYFMLXTPNATW

VGZTCGVGDAAXFDKOCRFRUOKAPW

LCMPTFPBTYXRSZKKQUBJAMHYUL

MZVSXXZHDLYHOKWWEJUXLXKRZU

PPESLBOEKOGRTAYDFOHRHVMPBN

DTEZBTYDXNMPXHVNKCIYEMJFVE

MNKDIQBOSUFFFWBVDNKHRTLIMZ

WRRQUFNNBGKUWNQCHDEFSTZZRQ

UIUDPTKGATPSJIFXXGGSNTWJLA

BRYVUCSBNPYAVSTTONZFWIUUNW

Kohlhagen 告诉我们,PVL 密码形成了一个最终的代码,意味着只有在知道其他一些谜题的解法之后,才能解决这个密码。

就加密雕塑而言,NKRYPT在加密社区中的关注度远低于著名的Kryptos。如果你想尝试破译一个未解的密文,破解其中一个未解的NKRYPT密文可能是一个更容易的目标!

还有更多未解的密码

还有许多其他未解密的密码谜题你可能想要探索。例如,Rayburn 密码(11)、纳粹间谍密码(12)、2010 年电影公平游戏中的信息^(13)、Cylob 密码^(14)、D’Agapeyeff 密码^(15)、mLH 密码(16)、费曼密码(17)以及 Rilke 密码^(18)都值得研究。还有Rohonc Codex,我们仍然将其列为未解密。Gábor Tokai 和 Levente Zoltán Király 在 2018 年提出了一个有趣的解法,但截至目前,这一解法已被其他密码学家提出挑战(19)(20)、^(21)。

如果你想了解更多关于未解密密码的世界,可以查看 Elonka 的“著名未解密代码和密码列表”^(22)或 Klaus 的“前 50 大未解密密码”列表^(23),这两个列表都可以在线查阅。你也可以查看 Craig Bauer 的 2017 年书籍Unsolved!,他在书中也提出了自己关于如何破解这些密码的理论^(24)。或者,如果你能阅读德语,可以尝试 Klaus 的 2012 年书籍Nicht zu knacken(无法破解)^(25)。另一本关于多个未解密密码的书是 Richard Belfield 的Can You Crack the Enigma Code?^(26)。

据我们所知,最全面的(大多数未解密的)历史密文收藏可在由乌普萨拉大学运营的 DECODE 数据库中找到(de-crypt.org/decrypt-web/RecordsList)。截至 2023 年,该大学的列表包含超过 4,000 条记录。

关于未解密消息的类似信息可以在由斯洛伐克密码学专家 Eugen Antal 运营的“历史密码门户”上的密码库中找到(cryptograms.hcportal.eu)。

另一个网站是 The Cipher Foundation,这是由英国密码学谜题专家和《沃伊尼奇手稿》研究者 Nick Pelling 发起的项目(cipherfoundation.org),该网站提供关于约三十个极具趣味的未解密密码的详细信息。

破解工具

在第一章中,我们介绍了破解工具 CrypTool 2 (cryptool.org)、dCode (dcode.fr/en)和 Cipher Tools (rumkin.com/tools/cipher/)。我们在之前的章节中使用了这些工具来进行频率分析、字母模式搜索和爬山算法。接下来,我们列出了更多提供有用破解功能的软件程序和基于网络的工具(所有工具均免费):

寻找更多工具?在 Dave Oranchak 的 Zodiac Killer Ciphers 维基网站上列出了许多优秀的工具,例如 Jarl Van Eycke 的 AZDecrypt (zodiackillerciphers.com/wiki/index.php?title=Software_Tools)。

其他关于密码破解的书籍

在我们的书中,我们努力介绍了使用手动和计算机方法破解经典密码的最重要技术。我们相信我们的书具有独特性,它针对实践中最常见的经典密码,并介绍了许多已解和未解的密码。我们不知道有另一本书具有类似的范围,当然,市场上还有许多其他优秀的破解密码书籍。

以下这些工具是在数十年前编写的,因此与计算机无关:

  • Helen Fouché Gaines,Cryptanalysis(1939 年):这本书是经典之作,可能是有史以来最成功的密码破解书籍。虽然现在已经过时,因为它是在计算机时代之前编写的,但对于任何对破解技术感兴趣的人来说,仍然充满了宝贵的信息。

  • 安德烈·兰吉,《密码学》(1922):这是一本很好的书,以通俗易懂的方式解释了当时的密码和破译方法。

  • 威廉·弗里德曼,《军事密码分析,第一卷至第四卷》(约 1938):弗里德曼广泛使用的著作提供了超过一千页的科学方法来进行密码破译。弗里德曼被认为是历史上最著名的密码学家,也是“密码分析”和“巧合指数”这两个术语的创造者。

  • 安德烈亚斯·菲格尔,《解码系统》(1927):这本书由第一次世界大战时期的奥地利密码破译者用德语写成,虽然这本书已经过时,但与其姊妹书 《加密系统》(1926)一起,它依然是计算机时代之前最好的、最全面的密码破译书籍之一,仅次于盖恩斯的 《密码分析》

  • 美国陆军部,《基础密码分析》(1990):这本关于破译简单替代密码、polyalphabetic 密码和换位法的手册可以在互联网上免费获取。^(27)

  • 所罗门·库尔巴克,《密码分析中的统计方法》(1976):本书专注于使用统计方法进行密码破译,如频率分析和巧合指数。

  • 帕克·希特,《军事密码解码手册》(1916):这本简明的密码破译书由陆军服务学校出版社出版,涵盖了简单替代、 polyalphabetic 密码、换位法和普雷菲尔密码。

  • 亚伯拉罕·辛科夫,《初级密码分析》(1966):这本密码破译书采用数学方法。

  • 威廉·弗里德曼与伊丽莎白·弗里德曼,《莎士比亚密码解读》(1957):这对著名的密码破译夫妇以轻松幽默的风格回顾他们的根基,彻底揭穿了莎士比亚作品中存在隐藏信息的说法。

  • 德莫特·图灵,《博姆贝机:击败恩尼格玛的机器》(2021):本书详细描述了二战期间英国用来破译恩尼格玛信息的机器。

包含计算机技术来解决历史密码的密码破译书籍并不常见:

  • 罗伯特·雷纳德,《秘密密码破译者:密码分析手册》(1996):这本九十页的书提供了密码分析的基础介绍,并提到了当时的一些计算机程序,尽管其中很少有仍然相关的程序。

  • 乔治·拉斯里,“使用搜索元启发式算法进行经典密码破译的方法论”(2018):这是乔治·拉斯里关于使用爬山法和其他方法破译手动和机器密码的博士论文。^(28)

  • 阿尔·斯威加特,《用 Python 破解密码》(2018):本书介绍了许多用于实现和破译手动密码的算法,同时也涉及了现代密码学。^(29)

此外,还有许多书籍涉及现代计算机加密算法,如 DES、AES、RSA 和 Diffie-Hellman,但专注于这些方法的密码分析的书籍则较少。马克·斯坦普和理查德·M·洛所著的《应用密码分析:破解现实世界中的密码》(2007 年)和安托万·朱所著的《算法密码分析》(2009 年)是任何有意从事现代系统密码分析的人不错的选择。

这里还有一些涉及密码破解的书籍,但并不专注于这一主题:

  • 大卫·卡恩,《密码破解者》,第二版(1996 年):这本书首次出版于 1967 年,是关于密码历史的经典之作。正如书名所示,它更侧重于那些作为密码破解者(和密码创造者)的人,而非密码破解本身。尽管如此,它仍然是每个对密码分析和过去 4000 年加密方法感兴趣的人必读的书籍。

  • 伯恩哈德·埃斯林格和 CrypTool 团队,《使用 CrypTool 和 SageMath 学习和体验密码学》(2018 年):这本免费的书籍包含了关于经典加密系统以及如何使用免费软件破解它们的有趣信息。

  • 克雷格·鲍尔,《密码学的秘密历史》,第二版(2021 年):这本非常有趣的书籍将密码学的历史与历史加密算法的数学描述相结合。它是任何希望理解经典密码数学的人的好书。

  • 克雷格·鲍尔,《未解之谜》(2017 年):这本经过深入研究的书籍讲述了著名的未解密码谜题;它包含了大量关于破解这些有趣的密码谜团的潜在方法的信息。

  • 西蒙·辛格,《密码书》(1999 年):这是一本关于加密历史的畅销书,书中解释了一些密码破解技术。

  • 西蒙·辛格,《破解密码书》(2002 年):基于《密码书》,这本书为入门级读者提供了密码破解的介绍,主要面向儿童。一些版本以《青少年密码书》为标题。

  • 弗里德里希·鲍尔,《解密的秘密》(2006 年):这本经典之作首次出版于 1997 年,描述了历史和现代的加密算法以及密码分析。

  • 丹尼斯·萨瑟兰和马克·科尔特科-里维拉,《破解密码与密码谜题》(2011 年):尽管书名承诺了很多,但这本书中只有大约 10%的内容是真正关于密码破解的,但它依然值得一读,因为它包含了大量的谜题供解答。

  • A.J.·雅各布斯,《谜题者》(2022 年):另一本畅销书,由多次 TED 演讲者雅各布斯撰写,提供了他娱乐性的视角。他与专家(包括我们!)取得了联系,参加了谜题大会,甚至收到了 CIA 的邀请,参观了他们的加密雕塑Kryptos

  • Liza Mundy, 《密码女孩:美国二战女性破译员的未曾讲述的故事》(2017 年):这是一本引人入胜的著作,讲述了成千上万帮助战争努力的年轻女性,她们将自己的破译冒险故事带入了坟墓。我们很高兴终于看到她们的故事得到了应有的讲述。

  • Benedek Láng, 《真实生活中的密码学:早期现代匈牙利的密码与秘密》(2018 年):这本书同时以匈牙利语和英语出版,英文版可以免费下载。它涵盖了中世纪欧洲多种类型的密码,使用了多种语言。^(30)

  • John F. Dooley, 《密码学与密码分析史:密码、暗号与它们的算法》(2018 年):这是一本关于密码学历史的教科书,涵盖了从古希腊和早期阿拉伯文献到现代计算机密码学的一些内容。虽然它没有专注于计算机,但它包含了比其他同类书籍更多的现代加密信息。

  • Herbert O. Yardley, 《美国黑色密室》(1931 年):这是一本关于密码学最著名的书籍之一,出版时颇具争议,因为它描述了一个美国政府密码学组织的内部运作。批评者认为,它可能在二战期间给予了日本某些优势。主要内容讲述了破译故事,尽管没有太多关注密码分析,但其中有一些关于频率分析和破译德国置换密码的有用信息。

  • Tom Mahon 和 James J. Gillogly, 《解码爱尔兰共和军》(2008 年):这是一本关于 1920 年代爱尔兰历史的有趣读物,当时爱尔兰共和军,一个准军事组织,正在争取脱离英国统治的独立,并在通信中使用密码。在第一章中,Gillogly 解释了他的解码方法。

最后,尽管她的贡献早该得到关注,但我们很高兴看到密码破译员埃丽兹伯丝·弗里德曼(1892–1980)终于得到了应有的重视。在过去几年里,关于她的纪录片和多本书籍(面向成人和儿童)已相继发布。我们特别推荐以下书籍:

  • Jason Fagone, 《破译密码的女人》(2017 年):这是一本经过充分研究并且非常易读的传记/冒险故事,讲述了埃丽兹伯丝·弗里德曼的生平。

  • G. Stuart Smith, 《代码中的一生》(2017 年):这本关于埃丽兹伯丝·弗里德曼的传记是由她的曾外甥所写。

  • Amy Butler Greenfield, 《所有间谍都害怕的女人:埃丽兹伯丝·史密斯·弗里德曼及她隐秘的生活》(2021 年):这本书面向 8 年级及以上学生,是 Kirkus 年度最佳书籍之一,也是一本非常易读的传记。

  • Laurie Wallmark(作者)和 Brooke Smart(插画师),《密码破译者,间谍猎人:埃丽兹伯丝·弗里德曼如何改变了两次世界大战的进程》(2021 年):这是一本为年轻读者准备的关于埃丽兹伯丝·弗里德曼的插图书。

如果你想了解更多关于手工和机器加密的书籍,可以查看 cryptobooks.org。这个网站由密码破译专家托比亚斯·施罗德尔和尼尔斯·科帕尔运营,描述了过去 600 年间的 500 多本相关书籍。

关于密码破译的网站

以下是一些提供更多密码破译信息的网站:

  • Klaus 的 Cipherbrain 博客 (scienceblogs.de/klausis-krypto-kolumne/):Klaus 的博客成立于 2013 年,最初为德语版本,2017 年扩展为英文翻译。该网站包含了超过一千篇关于密码破译和历史加密的报告,还有一个非常活跃的读者社区,大家热衷于参与每一篇新博客文章的讨论。

  • Elonka 的网站 (elonka.com):这个网站包含了包括埃隆卡(Elonka)列出的著名未解密码和加密的内容。她的网站还被认为是有关 CIA 加密雕塑Kryptos的金标准,也包括其他著名解密密码的信息,如弗里德曼墓碑、斯密西密码和Cyrillic Projector。此外,还包括一篇教程,讲述埃隆卡如何在 1999 年解决了一个黑客挑战(PhreakNIC v3.0 密码),这也是她密码破译生涯的起点。

  • Cipher Mysteries (ciphermysteries.com):Nick Pelling,一位总部位于伦敦的密码破译专家、多产的作家和研究员,运营着这个详尽的网站,包含了关于沃伊尼奇手稿和其他加密谜题的信息。他的博客有成百上千篇文章,涉及从最新的沃伊尼奇手稿解答到对萨默顿男士和共济会密码研究的分析。

  • MysteryTwister (mysterytwister.org):这个网站由一群德国密码爱好者运营,其中一些人也参与了 CrypTool 工具的开发,网站上有来自世界各地提交的超过 300 个密码谜题挑战。

  • CrypTool Portal (cryptool.org):这个网站不仅提供 CrypTool 软件的下载,还包含了大量关于密码学和密码破译的有趣信息。此外,还有一个相关的 YouTube 频道,“CRYPTOOL 2: Cryptography for Everybody”,由 CrypTool 开发者尼尔斯·科帕尔运营。

  • Cryptiana (cryptiana.web.fc2.com/code/crypto.htm):来自日本东京的田中聪志(Satoshi Tomokiyo)运营这个关于历史加密技术、古老密码和解密方法的精彩网站。

  • 密码历史 (cipherhistory.com):这个关于古老密码学的综合网站由密码机收藏家拉尔夫·辛普森运营。

  • 美国密码文献协会 (cryptogram.org): 成立于 1930 年的美国密码文献协会致力于推广密码破解的兴趣和艺术。其网站提供了大量有趣的信息。该协会每年举办一次大会,并发布双月通讯,内容包括各种密码文献、破解比赛以及破解积分系统。

  • Kryptos 讨论组 (kryptos.groups.io): 由 Elonka 和已故的 Gary Warzin 在 Yahoo! Groups 上创建,后来迁移到groups.io,该讨论板由 Elonka、Chris Hanson 和 Larry McElhiney 共同管理。

  • DECODE (de-crypt.org/decrypt-web/RecordsList): 这个关于历史密码的网站由瑞典乌普萨拉大学的科学家运营,包含了大量未解密的密码文献数据库。

  • 历史密码门户 (hcportal.eu): 这个关于历史密码的网站由斯洛伐克的 Eugen Antal 运营,提供了未解密的密码文献数据库。

  • Cryptograms & Classical Ciphers(Facebook 群组):该群组由新西兰的破译专家 Bart Wenmeckers 主持。

  • Christos 的军事与情报角落 (chris-intel-corner.blogspot.com): 由希腊密码历史与情报专家 Christos Triantafyllopoulos 运营,博客内容涉及历史密码学以及军事和情报话题。

  • Dave Oranchak 的页面 (www.zodiackillerciphers.com): 该页面由弗吉尼亚州的 Dave Oranchak 运营,他是三人团队中的一员,曾破解了 Z340 密码。页面主要涉及黄道带杀手及其密码文献。

  • 密码博物馆 (cryptomuseum.com): 这个全面的密码机器与加密设备网站由荷兰专家 Paul Reuvers 和 Marc Simons 运营。

  • Schneier on Security (schneier.com): Bruce Schneier 运营着关于现代加密系统的金标准博客,并发布每月通讯《Crypto-Gram》。他偶尔还会涉及经典密码的相关信息。

  • 全国谜题联盟 (puzzlers.org): 成立于 1883 年,是世界上最古老的谜题组织。密码文献是其众多主题之一。

  • La Crittografia da Atbash a RSA (www.crittologia.eu/): 该意大利网站由破译专家 Paolo Bonavoglia 运营。

  • Benedek Láng 的网页《Rejtjelek, kódok, titkosírások》 (kripto.blog.hu): 如果你恰好会讲匈牙利语或能使用 Google 翻译(或使用德文网站 DeepL),这个网站(标题意为“密码、加密和密码学”)提供了许多关于破译密码的有趣信息。

  • Kryptografie (kryptografie.de/): 这是 Oliver Kuhlemann 创建的多语言网站,提供了许多关于加密学和破译密码的有趣信息。网站上的加密学发展时间线做得尤其出色。

  • Katkryptolog (katkryptolog.blogspot.com): 由 Hans Jahr 撰写,这本有趣的加密历史与破译密码博客采用斯洛伐克语和英语混合写作。

期刊与通讯

有两本主要的印刷出版物涵盖了破译密码和相关问题:

  • Cryptologia:成立于 1977 年,这本双月刊学术期刊主要关注加密历史,包含了许多关于密码分析的显著研究论文,涵盖历史和现代密码分析以及各种密码谜题的破译。

  • The Cryptogram:这本双月刊由美国加密协会于 1932 年创办。每一期由志愿者制作,包含数十个加密谜题,其中绝大多数是由美国加密协会的成员为自己的比赛创作的。该刊物还偶尔报道一些历史上的加密谜题。

活动

如果你想结识其他对破译密码感兴趣的人,聆听有关复古加密系统的有趣演讲,自己做个讲座,或者甚至亲自见到本书的作者,你可以尝试参加以下活动:

  • 加密学历史研讨会 (cryptologicfoundation.org): 由美国国家安全局主办的这个每两年举办一次的活动是关于历史加密与破译密码的最重要国际会议。它通常在马里兰州的米德堡(NSA 总部所在地)附近举行,距离华盛顿特区不远。

  • ACA 大会 (cryptogram.org): 美国加密协会每年举办一次大会,地点不固定。

  • HistoCrypt (histocrypt.org): 这个关于密码学历史的欧洲年度会议每年在不同的地点举行。

  • Kryptos 会议 (groups.io/g/kryptos): 这个每两年举办一次的活动汇聚了许多对Kryptos雕塑及其加密铭文感兴趣的人(见附录 A)。由 Elonka 通过Kryptos讨论组组织,活动通常在华盛顿特区附近的加密学历史研讨会后那个星期六举行。

  • 国际密码学历史会议(www.cryptologichistory.org):该会议于 2004 年以“Crypto Collectors”名义创办,是一个讨论密码学历史的电子邮件论坛。大约每月举行两次关于各种密码学主题的在线演讲。

有时涉及密码破解主题的其他活动(你可能会在这些活动中遇到本书的作者)包括 44CON(伦敦)、Awesome Con 或 ShmooCon(华盛顿特区)、DEF CON(拉斯维加斯)、HOPE(纽约)、Dragon Con(亚特兰大)、PhreakNIC(纳什维尔)、HAM Radio(德国弗里德里希港)以及 Worldcon(在不同地点举办)。

第十八章:A

Kryptos

Kryptos是位于弗吉尼亚州兰利的中情局总部的一座雕塑^1。它由当地艺术家吉姆·桑博恩(Jim Sanborn)于 1990 年创作。Kryptos上刻有加密铭文,这成为了过去四十年里最著名的加密谜题(见图 A-1)。

图 A-1:Kryptos,一座位于弗吉尼亚州兰利中情局总部的雕塑,刻有四部分的加密铭文。第四部分仍未解开。

除了Kryptos,桑博恩还在中情局大楼内放置了其他艺术作品,比如一些带有摩尔斯电码字母的铜板^2。这些信息及其解码版本可以在图 A-2 中看到。以下是它们的文字记录:

eeVIRTUALLYe

eeeeeeINVISIBLE

DIGETALeee

INTERPRETATI

eeSHADOWee

FORCESeeeee

LUCIDeee

MEMORYe

TISYOUR

POSITION

SOS

RQ

我们不确定这些词语片段的意思,尽管桑博恩(Sanborn)曾表示它们与密文的第二部分有关。注意到INTERPRETATI后面有一个额外的破折号,这可能意味着最后一个字母是U,即INTERPRETATU,或者更可能的是,这个破折号是字母O的第一个字符,意味着整个词应该是INTERPRETATION。同样,T IS YOUR POSITION原本可能是WHAT IS YOUR POSITION。桑博恩曾说他在纸张上写有较长的消息,然后要么在消息中途剪断了纸张,要么允许消息在石板之间继续。

图 A-2:桑博恩在新总部大楼的另一侧放置的几块铜板上刻有摩尔斯电码信息。它们的解码版本可以在此看到。

Kryptos的铭文被分为四个部分。两部分(从正面看雕塑时是左侧的部分,如图 A-1 所示)展示了维吉尼亚加密表格。另两块板子刻有实际的密文,其中包含至少四个不同加密方式的消息,目前在加密学界被称为 K1、K2、K3 和 K4。在接下来的复现中,我们提供了完整的密文,并标明了每个部分的起始位置。(原文中没有这样的标记。)

(K1)EMUFPHZLRFAXYUSDJKZLDKRNSHGNFIVJ

YQTQUXQBQVYUVLLTREVJYQTMKYRDMFD

(K2)VFPJUDEEHZWETZYVGWHKKQETGFQJNCE

GGWHKK?DQMCPFQZDQMMIAGPFXHQRLG

TIMVMZJANQLVKQEDAGDVFRPJUNGEUNA

QZGZLECGYUXUEENJTBJLBQCRTBJDFHRR

YIZETKZEMVDUFKSJHKFWHKUWQLSZFTI

HHDDDUVH?DWKBFUFPWNTDFIYCUQZERE

EVLDKFEZMOQQJLTTUGSYQPFEUNLAVIDX

FLGGTEZ?FKZBSFDQVGOGIPUFXHHDRKF

FHQNTGPUAECNUVPDJMQCLQUMUNEDFQ

ELZZVRRGKFFVOEEXBDMVPNFQXEZLGRE

DNQFMPNZGLFLPMRJQYALMGNUVPDXVKP

DQUMEBEDMHDAFMJGZNUPLGEWJLLAETG

(K3)ENDYAHROHNLSRHEOCPTEOIBIDYSHNAIA

CHTNREYULDSLLSLLNOHSNOSMRWXMNE

TPRNGATIHNRARPESLNNELEBLPIIACAE

WMTWNDITEENRAHCTENEUDRETNHAEOE

TFOLSEDTIWENHAEIOYTEYQHEENCTAYCR

EIFTBRSPAMHHEWENATAMATEGYEERLB

TEEFOASFIOTUETUAEOTOARMAEERTNRTI

BSEDDNIAAHTTMSTEWPIEROAGRIEWFEB

AECTDDHILCEIHSITEGOEAOSDDRYDLORIT

RKLMLEHAGTDHARDPNEOHMGFMFEUHE

ECDMRIPFEIMEHNLSSTTRTVDOHW?(K4)OBKR

UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO

TWTQSJQSSEKZZWATJKLUDIAWINFBNYP

VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR

所有四个Kryptos密文部分在本书中都有详细介绍:K1 和 K2 在第八章,K3 在第十章,K4 在第十七章。K1、K2 和 K3 已经被解开,但 K4 仍然是一个谜。Kryptos 密文的第 1–3 部分是由三位不同的个人或小组独立解开的。这里,我们记录了它们是如何被解开的。

在雕塑在弗吉尼亚州兰利的 CIA 总部揭幕后不久,一支由 12 名 NSA 员工组成的团队被邀请“越过河流”到 CIA,检查Kryptos及其相关部分。然后,在 1992 年中期,NSA 局长威廉·“比尔”·O·斯图德曼将成为 CIA 副局长后,他向自己的 NSA 继任者麦克·麦康奈尔发出了挑战:“你们这些高手怎么还没解开Kryptos?”

麦康奈尔联系了哈里·胡佛,Z 组织的首任负责人,Z 是一个由密码分析师组成的新组织。胡佛指派肯·米勒担任该项目的负责人。米勒组建了一个由三位“手动密码”专家组成的团队:埃德·哈农,胡佛团队的成员;丹尼·麦克丹尼尔斯,米勒团队的成员;以及兰斯·埃斯特斯,一位来自该机构其他部门的资深密码分析师。哈农取得了首次突破,解开了 K2。埃斯特斯解开了 K1,而麦克丹尼尔斯解开了 K3。在 1992 年底团队放弃了 K4 之后,胡佛表示他们不应该公布结果,直到 K4 被解开。但是,到了 1993 年 6 月,由于这种结果看起来不太可能,胡佛指示米勒写一份备忘录,米勒将其发送给了麦康奈尔,然后又转交给了 CIA 的斯图德曼。所有这些都没有公开宣布。

1998 年,CIA 员工大卫·斯坦因也得出了这三个解决方案。这一消息在 CIA 内部传播,并在媒体上做了简短而模糊的提及,但没有什么实质性的公开揭露。^(3)

1999 年,著名的破译专家、美国密码协会会员吉姆·吉洛戈也解开了这三个密码。由于 NSA 和 CIA 都保持了他们的破译成功的机密,Kryptos的加密仍被认为未解开,直到吉洛戈宣布他取得的成就。因此,他被国际间誉为第一个破解前三部分的人。

在 Gillogly 宣布之后不久,CIA 和 NSA 都透露他们早在之前就已解开了这三部分内容,尽管 NSA 像往常一样对谁做的以及何时做的保持谨慎。2004 年,Elonka 获取了 Stein 的 CIA 报告图像,并在她的网站上发布了这些图像。^(4) 2010 年,她向 NSA 提交了信息自由法案请求,要求查看他们的文件。在多次跟进后,这一请求终于在 2013 年获得批准,NSA 发布了文件,显示他们的团队早在 1992 年就已成功解开前三部分内容。随后,CIA 发布了 Stein 论文的编辑版。^(5) 编辑版和未编辑版都可以在 Elonka 的网站上查看:elonka.com/kryptos

所有三位破译者,以及世界各地成千上万的人,都试图破译第四部分Kryptos,但都未成功。

K1

K1 是使用维吉尼尔密码的变体加密的,关键词为KRYPTOSPALIMPSESTPalimpsest是一种手稿页,文本已被刮除或清洗,以便可以重新用于其他文本,从而使得部分旧的内容能透过新的文本看到。

这是 Sanborn 使用的维吉尼尔表;请注意顶部一行的关键词KRYPTOS和第一列的PALIMPSEST

KRYPTOSABCDEFGHIJLMNQUVWXZ

--------------------------

PTOSABCDEFGHIJLMNQUVWXZKRY

ABCDEFGHIJLMNQUVWXZKRYPTOS

LMNQUVWXZKRYPTOSABCDEFGHIJ

IJLMNQUVWXZKRYPTOSABCDEFGH

MNQUVWXZKRYPTOSABCDEFGHIJL

PTOSABCDEFGHIJLMNQUVWXZKRY

SABCDEFGHIJLMNQUVWXZKRYPTO

EFGHIJLMNQUVWXZKRYPTOSABCD

SABCDEFGHIJLMNQUVWXZKRYPTO

TOSABCDEFGHIJLMNQUVWXZKRYP

K1 的明文如下。你可以看到它包含了一个拼写错误:

在微妙的阴影与光线缺失之间,隐藏着*IQLUSION*的细微差别

当被问及该明文的含义时,Sanborn 回答说这是他自己写的一句话,采用了“精心挑选的措辞”。

想了解更多关于 K1 的信息,请查看第八章。

图 A-3:雕塑家 Jim Sanborn 的原始笔记,展示了 K2 明文如何使用关键词ABSCISSA加密。*。

K2

K2 的加密方式与 K1 相同,不过更改了其中一个关键词。这次使用了KRYPTOSABSCISSA(见图 A-3)。Abscissa是图表中一个点的x坐标。我们可以使用以下的维吉尼尔表解密 K2(也见图 A-3):

KRYPTOSABCDEFGHIJLMNQUVWXZ

--------------------------

ABCDEFGHIJLMNQUVWXZKRYPTOS

BCDEFGHIJLMNQUVWXZKRYPTOSA

SABCDEFGHIJLMNQUVWXZKRYPTO

CDEFGHIJLMNQUVWXZKRYPTOSAB

IJLMNQUVWXZKRYPTOSABCDEFGH

SABCDEFGHIJLMNQUVWXZKRYPTO

SABCDEFGHIJLMNQUVWXZKRYPTO

ABCDEFGHIJLMNQUVWXZKRYPTOS

这是相应的明文,其中包含另一个拼写错误,UNDERGRUUND

它完全不可见,这怎么可能?他们使用了地球的磁场,信息被收集并通过地下传输到一个未知的位置。兰利知道这件事吗?他们应该知道,它就埋在那里某个地方。谁知道确切位置?只有 WW,这就是他最后的消息:北纬三十八度五十七分六点五秒,西经七十七度八分四十四秒,按行排列。

消息中的纬度和经度坐标(N38° 57' 6.5" W77° 8' 44")指向一个大约 150 英尺(45 米)远的地方,位于Kryptos本身的东南方向,尽管那里似乎没有任何特别之处;它是靠近机构食堂的一个铺设并绿化的区域。这一位置可能与 Sanborn 的其他部分(摩尔斯电码部分)有某种联系,这些部分位于总部大楼的另一侧。Sanborn 表示,当他安装Kryptos时,他特意核对了附近美国地质调查局的标记上的纬度和经度,以确保他的坐标准确。

2006 年,在公开的解密方案发布几年后,Sanborn 表示,解密者错误地解读了 K2 的最后三个词,ID BY ROWS(6), ^(7) 结果发现密文的最后一行缺少了一个字母S。Sanborn 原本打算让它以X LAYER TWO结束。解密者没有注意到这个错误,因为巧合的是,表达式ID BY ROWS似乎是有意义的。所以,实际的明文是以下内容:

它完全不可见,这怎么可能?他们使用了地球的磁场,信息被收集并通过地下传输到一个未知的位置。兰利知道这件事吗?他们应该知道,它就埋在那里某个地方。谁知道确切位置?只有 WW,这就是他最后的消息:北纬三十八度五十七分六点五秒,西经七十七度八分四十四秒,X LAYER TWO

关于 K2 的更多信息,请查看第八章。

K3

K3 使用换位密码进行加密,可以通过多种方式解密。Elonka 提出的一种方法要求将密文按每行四十八个字母的方式排列,最后一个问号除外。解密从第四行最后一个位置的S开始:^(8)

ENDYAHROHNLSRHEOCPTEOIBIDYSHNAIACHTNREYULDSLLSLL

NOHSNOSMRWXMNETPRNGATIHNRARPESLNNELEBLPIIACAEWMT

WNDITEENRAHCTENEUDRETNHAEOETFOLSEDTIWENHAEIOYTEY

QHEENCTAYCREIFTBRSPAMHHEWENATAMATEGYEERLBTEEFOA``S

FIOTUETUAEOTOARMAEERTNRTIBSEDDNIAAHTTMSTEWPIEROA

GRIEWFEBAECTDDHILCEIHSITEGOEAOSDDRYDLORITRKLMLEH

AGTDHARDPNEOHMGFMFEUHEECDMRIPFEIMEHNLSSTTRTVDOHW

从这里开始,明文可以通过一个简单的规则来读取:从当前位置开始,向下走四行,如果需要超出最后一行,则继续到第一行并向左走一个位置。这个规则为我们提供了 L 作为第二个字母:

ENDYAHROHNLSRHEOCPTEOIBIDYSHNAIACHTNREYULDSLLS``L``L

NOHSNOSMRWXMNETPRNGATIHNRARPESLNNELEBLPIIACAEWMT

WNDITEENRAHCTENEUDRETNHAEOETFOLSEDTIWENHAEIOYTEY

QHEENCTAYCREIFTBRSPAMHHEWENATAMATEGYEERLBTEEFOA``S

FIOTUETUAEOTOARMAEERTNRTIBSEDDNIAAHTTMSTEWPIEROA

GRIEWFEBAECTDDHILCEIHSITEGOEAOSDDRYDLORITRKLMLEH

AGTDHARDPNEOHMGFMFEUHEECDMRIPFEIMEHNLSSTTRTVDOHW

接下来,O 是第三个字母:

ENDYAHROHNLSRHEOCPTEOIBIDYSHNAIACHTNREYULDSLLS``L``L

NOHSNOSMRWXMNETPRNGATIHNRARPESLNNELEBLPIIACAEWMT

WNDITEENRAHCTENEUDRETNHAEOETFOLSEDTIWENHAEIOYTEY

QHEENCTAYCREIFTBRSPAMHHEWENATAMATEGYEERLBTEEFOA``S

FIOTUETUAEOTOARMAEERTNRTIBSEDDNIAAHTTMSTEWPIER``O``A

GRIEWFEBAECTDDHILCEIHSITEGOEAOSDDRYDLORITRKLMLEH

AGTDHARDPNEOHMGFMFEUHEECDMRIPFEIMEHNLSSTTRTVDOHW

继续使用此方法,并在适当的时候添加空格,以下明文出现:

SLOWLY DESPARATLY SLOWLY THE REMAINS OF PASSAGE DEBRIS THAT ENCUMBERED THE LOWER PART OF THE DOORWAY WAS REMOVED WITH TREMBLING HANDS I MADE A TINY BREACH IN THE UPPER LEFTHAND CORNER AND THEN WIDENING THE HOLE A LITTLE I INSERTED THE CANDLE AND PEERED IN THE HOT AIR ESCAPING FROM THE CHAMBER CAUSED THE FLAME TO FLICKER BUT PRESENTLY DETAILS OF THE ROOM WITHIN EMERGED FROM THE MIST X CAN YOU SEE ANYTHING Q

我们也可以使用由密码学爱好者费尔迪南多·斯特赫尔(Ferdinando Stehle)确定的以下数学公式来推导这个消息,其中 x 代表密文的位置,y 代表在转置中明文的位置:^(9)

y = (192x + 191) mod 337

这段文本是来自考古学家霍华德·卡特(Howard Carter)的日记的改写摘录,他于 1922 年 11 月 26 日发现了法老图坦卡蒙(“图王”)的墓。他对“你能看到什么?”这个问题的回答是:“是的,奇妙的东西!”

关于 K3 还有一个有趣的事情是,密文的第一行中的字母 DYAHR 对齐不准确,正如这里所看到的:

我们不知道这意味着什么,但艺术家表示这与前三个部分有关。有关 K3 的更多信息,请查阅第十章。

请注意,K3 和 K4 之间出现了一个问号(?)。一段时间以来,破译者不确定是否应将其解释为 K3 的最后一部分或 K4 的开头,但桑博恩(Sanborn)表示它不是 K4 的一部分,K4 应该只有 97 个字符长。

关于 Kryptos 雕塑,还有三点需要注意:

  • Vigenère 表格中多了一个L。这个字符出现在其中一块板的最上面一行。巧合的是(或者也许不是),这正是另一块板上“失对齐”的DYAHR字母出现的那一行(我们将字母YAR放大,以表示它们是抬起的)。这一行本该以J结尾,而不是L。当有人问起此事时,Sanborn 说他加上这个字母只是为了保持平衡,这可能是真的,也可能不是真的,当然,任何事情都有可能发生!一些研究人员指出,额外的L可能是为了引导观众的视线集中在这一行,作为一种微妙的提示。不过,考虑到 Sanborn 的风格,很难判断这是否是故意为之。

  • 表格中多了一个ABCD。通常,Vigenère 表格使用一个包含二十六个字母的字母表,但在Kryptos的情况下,Sanborn 提供了额外的字母,总共有三十个。为什么?像往常一样,他没有给出明确的答案。也许只是为了保持平衡,或者是为了将 K3 与其他两块板上的密文对齐。或者,也许另有其他原因?

  • 顶部的参考字母表是简单的(未加密的)AZ。然而,为了执行 Vigenère 加密,Sanborn 不会使用简单的参考字母表,而是使用了一个带密钥的字母表。所以,这里是反过来的。这一点特别有趣,当我们将他的 Vigenère 加密与西里尔投影仪上的加密进行比较时。那里,参考字母表是简单的,但在雕塑上,提供的参考字母表是加密的,所以那里也是反的!换句话说:雕刻在西里尔投影仪上的系统就是Kryptos上使用的系统,而雕刻在Kryptos上的系统就是西里尔投影仪上使用的系统。这可能是一个错误,也可能是故意让事情变得更复杂。正如 Sanborn 所说:“这有可能,任何事都有可能!”

K4

K4 的九十七个字符仍然是一个谜:

OBKR

UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO

TWTQSJQSSEKZZWATJKLUDIAWINFBNYP

VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR

在 2010 年到 2020 年间,Kryptos 创造者 Jim Sanborn 提供了四个与 K4 相关的线索(参见第十七章)。

截至本文写作时,这个已持续三十年的谜题依然未解。K4 已成为世界上最著名的未解密码之一,经常与比尔密码、维尼奇手稿和黄道杀手信息一起被提及。一个由 Elonka 共同创办并领导的Kryptos爱好者全球社区,主要致力于寻找 K4 的解答。Elonka 的Kryptos网站已成为所有关于 K4、雕塑以及其他三个密文的最重要来源。^(10)

第十九章:B

有用的语言统计

字母频率

其他语言的字母频率可以在维基百科文章《字母频率》中找到。^(1) 按照频率排序的最常见字母可以通过以下无意义词语记忆:

  1. 英语: ETAOIN SHRDLU

  2. 西班牙语: EAOSR NIDLT

  3. 法语: ESAIT NRUOL

  4. 德语: ENISR ATDHU

  5. 意大利语: EAION LRTSC

最常见的双字母组合

英语 西班牙语 法语 德语 意大利语
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 然后
17
18
19
20
21
22
23
24
25

最常见的重复字母

英语 西班牙语 法语 德语 意大利语
1
2
3
4
5
6
7
8
9
10 第二

最常见的三字母组合

英语 西班牙语 法语 德语 意大利语
1
2
3
4
5
6
7
8
9
10

最常见的单词

英语 西班牙语 法语 德语 意大利语
1
2
3
4
5
6
7
8
9
10 I del les es per

文本中的平均单词长度

  1. 芬兰语:7.6 个字母

  2. 俄语:6.6 个字母

  3. 意大利语:6.5 个字母

  4. 英语:6.2 个字母

  5. 德语:6.0 个字母

  6. 瑞典语:6.0 个字母

  7. 法语:6.0 个字母

  8. 西班牙语:5.8 个字母

重合指数

重合指数 (IC**) 是一种统计技术,可用于提取文本信息或比较两个文本。在频率分析之后,重合指数是破译者的第二重要统计工具。

不幸的是,文献中可以找到几种相关但不同的重合指数定义。因此,在不同来源中阅读时,人们很容易感到困惑。在本书中,我们将重合指数定义为从特定文本中随机选择的两个字母相同的概率。(我们不涉及两个字母来自不同文本的情况。)

作为例子,我们来看一下(相当短的)文本 AAB。从中有三种方式可以抽取两个字母:AAABAB。由于只有第一个组合包含两个相同的字母,因此重合指数是 1/3,即 0.333,或 33.3%。

如果我们现在看一下文本 AABC,我们会得到六组可能的两个随机字母组合:AAABACABACBC。其中只有一个组合包含两个相同的字母,因此 AABC 的重合指数是 1/6,即 0.166,或 16.6%。

正如容易看出,当每个字母被另一个字母替换时,比如应用简单替换密码时,重合指数并不会改变。AABCXXYZ的重合指数是相同的。此外,当字母的顺序发生变化时,重合指数保持不变,这通常发生在有人对其应用了换位密码:AABCABCA的重合指数是相同的。因此,无论是简单替换密码还是换位密码加密的信息,重合指数始终保持不变。

由二十六个字母构成的足够长的完全随机文本的重合指数通常接近 1/26,即 3.8%。用任何自然语言书写的文本(大小写不敏感,不计空格、数字或标点符号)通常有一个介于 5% 到 9% 之间的重合指数。这个指标的一个优点是,每种语言都有其特有的重合指数。这意味着即使在应用了简单替换密码或换位密码后,破译者仍可以通过重合指数来检测文本的语言。

以下列表列出了最常见语言的重合指数:

  1. 捷克语:5.1%

  2. 俄语:5.3%

  3. 波兰语:6.1%

  4. 英语:6.7%

  5. 丹麦语:6.7%

  6. 瑞典语:6.8%

  7. 法语:6.9%

  8. 芬兰语:7.0%

  9. 土耳其语:7.0%

  10. 西班牙语:7.2%

  11. 德语:7.3%

  12. 意大利语:7.4%

  13. 葡萄牙语:8.2%

在没有计算机的情况下计算重合指数是相当繁琐的。可以在 dCode 网站上找到一个重合指数计算器:dcode.fr/index-coincidence

除了用于确定文本的语言,信息密度(IC)在破译密码方面还有其他应用。关于这一点,我们推荐威廉·弗里德曼于 1922 年出版的书籍《信息密度及其在密码学中的应用》。^(2)

最后,针对我们最为细致的读者,这里有一个例子,可用于测试杜宁-施梅技术:oottn vnhoc sgrah eertn aaoeo einms rpwtr nwnte tahot pihde aegis pctln edaip eoile snghr dhlwe guaep er。(提示:从第十一章开始。)

第二十章:C

术语表

缩写密码

一种方法,将文本中的每个单词替换为它的首字母或其他缩写形式。

美国密码学协会(ACA)

一个非营利组织,致力于推广解密的爱好和艺术。ACA 每两个月发布一次名为 《密码报》 的新闻简报。

贵族

一种简单的替换密码,其中保留了单词的分隔和标点符号。

ASCII 码

美国信息交换标准代码的缩写。ASCII 是一种标准化的方式,用二进制数字表示字母、数字和标点符号,这些二进制数字是计算机能够理解的零和一。例如,小写字母 a 的编码为 01100001,大写字母 A 的编码为 01000001。我们也可以将这些值以十六进制(基数 16)表示,以便更容易阅读,a 为 61,A 为 41。尽管 ASCII 被称为代码,但它其实并不是加密;它只是一个值的表格,类似于摩尔斯电码。

包杜代码

另一种“值表”系统,主要用于电传打字机/电传打印机,使用五个比特来表示每个字符。使用这种编码,操作员可以在纸带上打孔以表示每个字母,并迅速将纸带卷送入任何电传打字机,电传打字机随后将包杜代码转换为人类可读的消息。

凯撒密码

一种在罗马时代创建的密码法,它通过一个固定的字符数(最初是三个)将字母表中的每个字母移动。例如:ADBECFDG …… 一些示例密文:Pxvlfdo jurxs idprxv iru Olhjh dqg Olhi

密码

一种作用于字母或字母组的加密方法。一个构建良好的密码系统可以加密任何类型的明文,因为它作用于单个字母。作为对比,参见 密码。

密文

加密结果。

明文

一种未加密的文本,特别是指在其他加密文本中可能显示出来的未加密部分。另见 明文。

密码

一种作用于单词或短语的加密方法。代码通常涉及包含预定义单词或单词组的密码本来进行加密。代码不能轻易用于加密任何随机消息。参见 密码。

解密

另一个指代密码分析的词。请注意,解密 一词指的是破解各种加密方式,包括密码和代码。

代码组

在代码中表示一个单词的数字、字母组或符号。在命名法中,代码组还可以表示一个数字、字母或其他字符。

列转置

一种列转置密码,通常要求将明文写成等长的行,并将列进行打乱。然后按列读取密文。通常,使用一个关键词来执行列转置。关于完整列转置和不完全列转置的区别,请参见第九章和第十章。

提词

代码破解者已知或怀疑在明文中出现的单词或短语。在破解密码谜题时,通常知道或猜测出出现在明文中的单词会很有帮助。

密码分析

一般而言,指在不知道密钥的情况下解密密文的技艺。也称为破解(或尝试破解)密码谜题。需要注意的是,一些密码分析师也可能会审查加密系统或分析信息,以确定使用的系统,而无需尝试恢复原始信息。

密码谜题

代码破解者正在尝试破解的加密信息(即密文)。

密码学

加密信息的科学。源自希腊语 kryptosgraphein,意思是“隐藏的文字”。

密码学

密码学和密码分析的整体研究。

CrypTool

一个开源项目,开发了一套免费的软件程序,实施了超过 400 种加密和破解方法。这些程序包括 CrypTool 1、CrypTool 2、JCrypTool(基于 Java 的工具)和 CrypTool-Online。在本书中的破解任务中,我们主要使用了 CrypTool 2。

DCT

参见 双列转置密码。

解密

破解密码,意味着对其进行成功的密码分析。解密可能针对确定密钥,而不是确定明文。

解密

密文的预期接收者执行的过程。解密需要了解使用的加密方法和(通常)密钥。解密应与破译或破解(也称为解决或密码分析)加密信息区分开来,后者意味着密钥和/或加密方法未知。

双字母组

一组由两个字母组成的组合(例如,SJIABDGG)。也称为双字母组或双字母符。

双字母组替换

一种替换密码,替换字母对(双字母组)。Playfair 密码是迄今为止最流行的此类方法。

双列转置密码(DCT)

一种加密方法,由两次连续的列转置组成。被认为是最好的手动密码之一。

Dunin-Schmeh 替换法

一种替换密码,通常用于加密和隐藏密码书中的元谜题。提供类似于双 ROT-13 和 Duran-Fairport 密码的安全性。通常使用 Sheahan 1802 密钥。例如:Ptmqt jetoq cforq wlqcl updkr tfbcq ylktt fbcqa loqyq ltfbc qaloq yqwlb jqmiu pqwlx

恩尼格玛

一种德国加密机,大小类似打字机,曾在第二次世界大战中使用。波兰、法国和英国的密码分析师以及其他情报人员合作破解其密码系统。

异或(XOR)操作

一种二进制算术运算,其中一组 1 和 0 与另一组相加。结果或和被认为是 0,如果两个值相同;如果它们不同,则为 1。例如,如果 1111 与 0000 进行异或运算,结果为 1111。如果 1111 与 0010 进行异或运算,结果为 1101。如果 1010 与 1110 进行异或运算,结果为 0100。在密码学中,单词中的字母有时会被转换为 ASCII 并与预定密钥的 1 和 0 进行异或。结果的二进制流随后被传输给接收者,接收者再将其异或回原始明文。如果二进制密钥是随机的,我们称之为费尔南密码或一次性密码本的特殊情况。

自由石匠密码

豹文密码。

频率分析

确定信息中字母频率的行为。对密码破译者来说是一个重要工具。

七字图

一组七个字母。

六字图

一组六个字母。

同音字

代表同一明文字母的多个密文字母或字符。 同音密码。

同音密码

一种包括同音字的密码。使用同音替换的人在编码某个字母时可以选择几个替代选项。

相合指数(IC)

从文本中随机选择的两个字母相同的概率。对密码破译者来说是一个重要的分析工具。

密钥

一些只有发送者和接收者应知道的秘密信息。在实践中,大多数加密方法都有密钥,尽管在某些情况下,了解方法本身即为密钥。预定接收者应能轻松解密信息,只要他们知道密钥,而第三方在没有密钥的情况下不应能够破译密文。(注:一些简单系统,如贵族密码,可能导致无需恢复完整密钥即可提取明文。)

关键字

许多密钥的表示方法(例如,BIRDHOUSE),比起数字(例如,844708615)或大型表格,更容易记住。

手工密码

一种可以通过纸和笔或简单的密码工具应用的加密方法,而不需要复杂的密码机或计算机的帮助。

摩尔斯电码

一种由点和划或短脉冲与长脉冲组成的系统,用于通过电报或无线电传递信息。虽然它被称为编码,但它不是加密系统,而是一种通信方法。(摩尔斯电码表见附录 D。)

命名符

一种结合简单替换或同音密码与编码的加密方法。命名符提供一个或多个数字、字母组或符号,代表字母表中的每个字母和常见单词。这种系统有时也称为命名法。

空值

在密文中包含的无意义符号,用于混淆破译者。它是许多替换密码、编码和命名法的重要组成部分。

八字图

一组八个字母。

一次性密码本

一种替代密码,它将一个随机序列(密钥)添加到明文中。如果使用得当,也就是密钥不可猜测且只使用一次,那么一次性密码本是不可破解的。然而,使用一次性密码本需要大量的密钥材料,这使得它在许多应用中不实际。

圣公会

一种简单的替代密码,其中删除了单词分隔和标点符号。

五字母组

五字母组。英语中最常见的五字母组合是OFTHE

豕字密码

一种简单的替代密码,用符号替换字母,符号取自类似井字游戏的网格。也被称为共济会密码,因为它在 18 世纪在共济会中非常流行。它有许多变体。以下是一个例子:

明文

需要加密的信息。不同于明文,明文是指在其他加密信息中未加密的部分文本。

普雷费尔密码

一种替代加密方法,用其他双字母组合替代双字母组合。基于一个方形表和一些简单的替代规则。

多字母表密码

基于多个替代表的替代密码。每个表的应用遵循某种规则(例如,第一个表可能加密第一个字母,第二个表可能加密第二个字母,依此类推)。可以通过简单的方法构造一个表,例如使用凯撒密码对每个字母表进行位移。

ROT-13

一种凯撒密码,它将每个字母替换为与之相隔十三个位置的字母,使用二十六字母的字母表。ROT-13 的优点是每个字母如果加密两次,会恢复到原来的形式。

速记

一种提高写作速度和简洁性的书写方法。有时也用于(低级别)加密。

简单替代

一种基于固定的、一对一替代表的加密方法。凯撒密码就是一种简单的替代密码,虽然密码字母表也可以是键控的或随机的。

隐写术

隐藏信息的科学。常见的隐写方法包括反应性墨水、标记字母、用单词首字母拼写信息,以及将信息隐藏在其他文件的比特和字节中的各种数字系统。加密使信息变得不可读,而隐写术则隐藏其存在。不要与速记术混淆。

隐写术

速记的另一种说法。

替代密码

一种通过替换字母或字母组进行加密的方法,不同于置换密码,后者是通过打乱信息来加密的。

超级加密

对已经加密的信息执行的加密。超级加密通常用于增强代码的安全性。这些方法有时非常简单;例如,添加当前的日期可以使每个字母发生相应的位移。详见第七章的 JN-25。

四字母组

由四个字母组成的组,也称为四元组或四字组合。英语中最常见的四字组合是TION

置换密码

一种加密方法,通过改变消息中字母的顺序。它有许多变种,其中最流行的是旋转格密码和列置换密码。

三字母组合

由三个字母组成的组,也称为三元组。英语中最常见的三字母组合是THE

旋转格密码

一种加密工具,由一个带有各种孔洞的方形模板组成。加密时,通过将模板旋转九十度四次,在每个方向的孔洞中写入字母。

维吉尼亚密码

一种多字母替换系统,曾被认为是“无法破译的密码”(chiffre indéchiffrable)。今天,凭借现代破译技术,它通常能被迅速解开。

第二十一章:D

摩尔斯电码

图 D-1:1900 年至今使用的国际摩尔斯电码表

图 D-2:1850 年代到 1950 年代使用的美式摩尔斯电码表

第二十二章:E

图表来源

前言,未标注标题

  1. 作者们的照片,埃隆卡·杜宁和克劳斯·施梅,站在弗吉尼亚州贝德福德 Beale’s Beer 餐厅的墙面壁画前,www.bealesbeer.com

第一章,标注标题

  1. 1-1. 卡斯滕·汉斯基提供的加密明信片

第一章,未标注标题

  1. 报纸剪报

  2. 图表由作者创建

  3. CrypTool 2 截图,由作者创建

  4. Codex 编纂:伦敦威尔科姆图书馆

  5. 来自 Charnwood Genealogy 网站的加密明信片,www.charnwood-genealogy.com

  6. 托比亚斯·施罗德尔提供的加密明信片

  7. 曼彻斯特密码摘录,Cryptolog 109(1987)

  8. 保罗·博纳沃利亚提供的旋转栅格密码

  9. 《书面助记法:通过道德哲学、科学和宗教中的丰富例子来说明》中的一页

  10. 伦敦共济会图书馆和博物馆中的共济会助记书。由克劳斯·施梅拍摄。

  11. 由雷金纳德·埃文斯提供的 Playfair 密码,感谢国家密码学博物馆

第二章,未标注标题

  1. 2-1. 卡斯滕·汉斯基提供的电报

  2. 2-2. 合成图:2013 年休伯特·贝尔贝里奇拍摄的磁盘照片(公共领域)。克劳斯·施梅拍摄的幻灯片照片

  3. 2-3. 图表由作者创建

  4. 2-4. 由加里·克里万斯提供的消息

  5. 2-5. 《密码学》中的摘录,赫伯特·雅德利著

第二章,未标注标题

  1. 图表由作者创建

  2. 图表由作者创建

  3. 《泰晤士报》剪报,伦敦,1853 年 2 月 2 日

  4. 《泰晤士报》剪报,伦敦,1853 年 2 月 11 日

  5. 图表由作者创建

  6. 《标准报》剪报,伦敦,1888 年 5 月 26 日

  7. 尤迪吉特·巴塔查尔吉的无法拼写的间谍中的消息

  8. 2006 年电影致命魔术中的场景。图片来源:© Touchstone Films / Courtesy Everett Collection / Mary Evans

第三章,标注标题

  1. 3-1. 由克劳斯·施梅拍摄的照片

  2. 3-2. 克劳斯制作的加密标题页复印件,旁边是克劳斯制作的破译结果

  3. 3-3. 1909 年明信片

  4. 3-4. 图表由作者创建

  5. 3-5. 来自计算机游戏使命召唤:黑色行动 III(2015)的密码

  6. 3-6. 由加里·克里万斯提供的信件

  7. 3-7. 比阿特丽克斯·波特的日记页面

  8. 3-8. 由加里·克里万斯提供的信件

  9. 3-9. 雷蒙德·博尔赫斯提供的明信片

  10. 3-10. 比尔·布里尔和朱-李·兰-布里尔提供的镍币

  11. 3-11. 《每日纪事报》剪报复印件,伦敦,1888 年 2 月 13 日

  12. 3-12. 来自 mk-zodiac.com 的明信片图片

  13. 3-13. 安德鲁·福隆提供的明信片

第三章,未标注标题

  1. 图表由作者创建

  2. 由克劳斯·施梅拍摄的照片

  3. 图表由作者创建

  4. 《Woo 书》网络漫画中的密码,作者:奥利弗·诺尔策

  5. 埃德加·爱伦·坡的挑战密码

  6. 由 Reddit 用户 RetroSA 提供的图片

  7. 图表由作者创建,基于 NickSB2013 创建的表格

  8. 图表由作者创建

  9. CrypTool 2 截图

  10. 图表由作者创建

  11. CrypTool 2 截图

  12. 来自 dcode.fr 的截图

  13. 图表由作者创建

  14. CrypTool 2 截图

  15. 图表由作者创建

  16. CrypTool 2 截图

  17. Gary Klivans 提供的信件摘录

  18. Gary Klivans 提供的信件摘录

  19. Gary Klivans 提供的信件摘录

  20. 作者创建的替代表

  21. 来自 Malbone 日记的摘录,由 Kent D. Boklan 提供,经纽约州军事博物馆许可

  22. 来自 Malbone 日记的摘录,由 Kent D. Boklan 提供,经纽约州军事博物馆许可

  23. 图表由作者创建

第四章,有标题

  1. 4-1. 黄道模仿者密码

  2. 4-2. NSA 的 Twitter 信息

  3. 4-3. 来自英国曼彻斯特 HM 监狱的囚犯信息

  4. 4-4. Klaus Schmeh 的照片

  5. 4-5. 来自 Just So Stories(《如此故事》)的插图,Rudyard Kipling 著

  6. 4-6. Edward Elgar 的 Dorabella 密码

  7. 4-7. Klaus Schmeh 的照片

第四章,无标题

  1. CrypTool 2 截图

  2. 图表由作者创建

  3. CrypTool 2 截图

  4. CrypTool 2 截图

第五章,有标题

  1. 5-1. Richard SantaColoma 提供的加密明信片

  2. 5-2. Tobias Schrödel 提供的加密明信片

  3. 5-3. CrypTool 2 截图

  4. 5-4. Cryptography(密码学)一书中的密码,André Langie 著,第 78 页

  5. 5-5. 海盗 Olivier Levasseur 的密码

  6. 5-6. Tobias Schrödel 提供的加密明信片

  7. 5-7. 意大利黑手党的信息

  8. 5-8. Karsten Hansky 提供的加密明信片

  9. 5-9. Natürliche Magie(自然魔法)一书中的密码,Christlieb Funk 著,第 254 页

  10. 5-10. Voynich 手稿中的图像,Beinecke Rare Book Library 提供

  11. 5-11. 匿名博客读者提供的德国香烟盒

  12. 5-12. Klaus Schmeh 的照片

第五章,无标题

  1. 作者与 Thomas Bosbach 创建的图表

  2. CrypTool 2 截图

  3. Tobias Schrödel 提供的加密明信片摘录

  4. Tobias Schrödel 提供的加密明信片摘录

  5. 图表由作者创建

第六章,有标题

  1. 6-1. 发送给 Benjamin Franklin 的信息,Papers of the Continental Congress(《大陆会议文献》),卷 121,第 20 页

  2. 6-2. 1969 年加利福尼亚警方针对黄道杀手发布的报纸广告

  3. 6-3. 图表由作者创建

  4. 6-4. 图表由作者创建

  5. 6-5. Z408 黄道杀手信息

  6. 6-6. Z340 黄道杀手信息

  7. 6-7. Dave Oranchak、Jarl van Eycke 和 Sam Blake 的照片。摄影:Chris Kwaramba、Juni Van Eycke 和 Sam Blake

  8. 6-8. 图表由作者创建

  9. 6-9. 根据 Z340 黄道杀手信息,由作者创建的图表

  10. 6-10. Holy Roman Emperor Ferdinand III 的信件,由 Leopold Auer 提供

  11. 6-11. 美国马里兰州 Fort Meade 的国家密码学博物馆提供的加密明信片

  12. 6-12. Edgar Allan Poe 发表的挑战密码

  13. 6-13. 黄道杀手模仿者信息

  14. 6-14. Henry Debosnys 的密码

第六章,无标题

  1. 来自 crypto-world.info 的同音替代表,Pavel Vondruška

  2. 来自 crypto-world.info 的同音替代表,Pavel Vondruška

  3. 图表由作者创建

  4. CrypTool 2 截图

  5. Z13 黄道杀手信息

  6. Z32 黄道杀手信息

第七章,有标题

  1. 7-1. Zimmermann 电报,美国国家档案和记录管理局

  2. 7-2. John McVey 提供的 1911 年密码本页面

  3. 7-3. 来自 1892 年《谢恩电报密码表》的页面,archive.org/details/ciphercodeofwor00shea/page/60/mode/2up

  4. 7-4. John Perwich 信件,英国国家档案馆

  5. 7-5. 来自 Gerhard Birkner 在 2015 年 Geheime Post 会议上发表的论文中的命名法

  6. 7-6. 1782 年,James Madison 致 Edmund Randolph 的信,国会图书馆

  7. 7-7. 1648 年 8 月,查理一世的信件,Harley MS 6988,f.208r,获英国图书馆许可

  8. 7-8. 来自 1897 年《教皇秘密文献》的页面

  9. 7-9. 来自crypto-world.info的十八世纪命名法,Pavel Vondruška 提供

  10. 7-10. 作者制作的拼贴画

    1. “曼彻斯特密码”,Cryptolog 109 (1987)

    2. 来自 Nicolas de Catinat 的信件,1702 年,瑞士阿尔高州立图书馆,scienceblogs.de/klausis-krypto-kolumne/2016/05/01/wer-knackt-diesen-verschluesselten-brief-von-nicolas-de-catinat

    3. 国家密码学博物馆,Kahn 收藏,1898 年,scienceblogs.de/klausis-krypto-kolumne/2017/10/22/an-unsolved-ciphertext-from-1898-who-can-break-it

    4. 1911 年电报,由 Frank Gnegel 提供,来自位于德国法兰克福的通信博物馆,scienceblogs.de/klausis-krypto-kolumne/2018/12/26/revisited-an-encrypted-telegram-from-german-south-west-africa

  11. 7-11. Karsten Hansky 提供的电报

  12. 7-12. 《科学观察者密码》中的页面

  13. 7-13. 来自 Albert Leighton 的十六世纪命名法信息,摘自《教皇密码》

  14. 7-14. Karsten Hansky 提供的电报

  15. 7-15. 玛丽女王的命名法;由作者创建的替换表

  16. 7-16. 摄影师致谢:Klaus Schmeh;Norbert Biermann;Hiroko Tomokiyo

  17. 7-17. 法国国家图书馆,gallica.bnf.fr,BnF fr. 2988 f.38

  18. 7-18. 图表由 Lasry、Biermann 和 Tomokiyo 制作

  19. 7-19. 图表由作者制作

  20. 7-20. 来自www.pinterest.co.uk/steelgoldfish/mount-everest/website的电报

  21. 7-21. 图片由 Sara Rivers-Cofield 提供

  22. 7-22. 由 Nicole Glücklich 复刻

  23. 7-23. “曼彻斯特密码”,Cryptolog 109 (1987)

第八章,已标注标题

  1. 8-1. 摄影:Klaus Schmeh。元谜授权:qyaohlzlrzw

  2. 8-2. 图表由作者制作

  3. 8-3. CrypTool 2 截图

  4. 8-4. 书籍封面由企鹅兰登书屋提供

  5. 8-5. 来自dcode.fr的截图

  6. 8-6. 作者拍摄的照片

第八章,未标注标题

  1. 《搭车指南》挑战复刻,由 Klaus 创建

  2. 复刻摘录,由 Klaus 创建

  3. 复刻摘录,由 Klaus 创建

  4. CrypTool 2 截图

  5. CrypTool 2 截图

  6. 来自纪录片《谁得到了戴安娜·多尔斯的百万财富?》(Who Got Diana Dors’ Millions?)中的猪笼文字消息复本

  7. 作者创建的图表

第九章,有标题

  1. 9-1. 来自《The Friedman Legacy》一书中的图像

  2. 9-2. 来自www.postcardese.com/的明信片,感谢 Guy Atkins 提供

  3. 9-3. Klaus Schmeh 拍摄的照片

  4. 9-4. Klaus 在 GCHQ 网站上创建的密码图复本

  5. 9-5. 克里斯托弗·希尔(Christopher Hill)慷慨提供的日记页面

  6. 9-6. 由 Jason Fagone 提供的 Friedman 笔记,来自乔治·C·马歇尔基金会(George C. Marshall Foundation),列克星敦弗吉尼亚的马歇尔图书馆扫描

  7. 9-7. 爱德加·爱伦·坡(Edgar Allan Poe)发布的挑战密码;图表由作者根据www.eapoe.org/works/essays/gm41sw03.htm上的资料创建

第九章,无标题

  1. 作者创建的图表

  2. CrypTool 2 截图

  3. 来自 William Friedman 的《Military Cryptanalysis IV》中的图像

第十章,有标题

  1. 10-1. 由 Filippo Sinagra 拍摄的 Antonio Marzi 日记照片,cryptosite@yahoo.it

  2. 10-2. 图像由 Jim Gillogly 提供

第十章,无标题

  1. 图像由 Tom Mahon 和 Jim Gillogly 提供

  2. 图像由 Tom Mahon 和 Jim Gillogly 提供

  3. 图像由 Tom Mahon 和 Jim Gillogly 提供

  4. 图像由 Tom Mahon 和 Jim Gillogly 提供

  5. 作者创建的图表

第十一章,有标题

  1. 11-1. 三张图像的拼贴:(a)Klaus Schmeh 拍摄的照片;(b)英国国家档案馆,KV-2-62;(c)Klaus Schmeh 在 Günter Hütter 收藏中的照片

  2. 11-2. 作者创建的节日卡片

  3. 11-3. 作者创建的图表

  4. 11-4. 来自 Auguste Kerckhoffs 的《Cryptographie Militaire》一书中的密文

  5. 11-5. 作者创建的生日卡片

  6. 11-6. 作者创建的图表

  7. 11-7. 作者创建的生日卡片

  8. 11-8. Paolo Bonavoglia 提供的旋转栅格密码图

  9. 11-9. 来自 André Langie 的《Cryptography》一书中的图像

  10. 11-10. 图像由荷兰皇家收藏提供

  11. 11-11. 作者创建的旋转栅格复本

  12. 11-12. 朱尔·凡尔纳(Jules Verne)所著小说《Mathias Sandorf》的封面

  13. 11-13. 作者创建的图表

  14. 11-14. 节日卡片,感谢乔治·C·马歇尔基金会(George C. Marshall Foundation),来自弗吉尼亚州列克星敦

  15. 11-15. Jew-Lee Lann-Briere 和 Bill Briere 创建的挑战密码

  16. 11-16. 来自 MysteryTwister 的密码

第十一章,无标题

  1. 作者创建的图表

  2. 作者创建的图表

  3. 作者创建的图表

  4. 作者创建的图表

  5. 作者创建的图表

  6. 作者创建的图表

  7. 作者创建的图表

  8. 作者创建的图表

  9. 来自 André Langie 的《Cryptography》一书中的图像

  10. 来自 André Langie 的《Cryptography》一书中的图像

  11. 来自 André Langie 的《Cryptography》一书中的图像

  12. 图像由荷兰皇家收藏提供,作者注释

  13. 图像由荷兰皇家收藏提供,作者注释

第十二章,有标题

  1. 12-1. 来自 Giambattista della Porta 的《De furtivis literarum notis》中的表格

  2. 12-2. 作者创建的图表

  3. 12-3. CrypTool 2 截图

  4. 12-4. 作者创建的图表

  5. 12-5. 由雷金纳德·埃文斯制作的 Playfair 信息,由国家密码学博物馆提供

  6. 12-6. CrypTool 2 截图

  7. 12-7. Have His Carcase封面,作者多萝西·L·塞耶斯

  8. 12-8. 上部分:CrypTool 2 截图;下部分:图表由作者制作

  9. 12-9. 照片摘自罗伯特·陶尔斯的实验心灵研究。文本摘录自生存测试,《心灵研究学会会刊》

第十二章,无标题

  1. 密文由作者根据 Porta 符号创建

第十三章,有标题

  1. 13-1. 来自 Ray V. Denslow 的共济会保护者中的密文

  2. 13-2. 所有照片均由克劳斯·施梅赫在伦敦的自由石匠博物馆、纽约的罗伯特·R·利文斯顿图书馆及博物馆拍摄;以及他个人收藏中拍摄的

  3. 13-3. 照片由克劳斯·施梅赫在伦敦的自由石匠博物馆拍摄

  4. 13-4. 扫描由沃尔特·C·纽曼提供

  5. 13-5. 图表由作者制作

  6. 13-6. 来自Ecce Orienti!的页面

  7. 13-7. 页面由 JannaK 在 MetaFilter 提供

  8. 13-8. 来自 Oddfellows 缩写密码手册的页面

  9. 13-9. 图表由作者制作,基于 Oddfellows 书籍Esoteric及相关缩写密码手册中的页面

  10. 13-10. 由克劳斯制作的生日卡,基于来自 Pixabay 的公共领域图片

  11. 13-11. 萨默顿男士信息

  12. 13-12. 加密明信片由匿名捐赠者提供

第十四章,有标题

  1. 14-1. 摘自 José Borras 的西班牙语真实原则

  2. 14-2. 来自英国国家档案馆的电报,KV 2/2424

  3. 14-3. 密码图由作者制作

  4. 14-4. 信息由路易斯·朗德·威尔逊特别收藏图书馆,北卡罗来纳大学教堂山分馆提供

第十四章,无标题

  1. 图片由丹·布朗提供

第十五章,有标题

  1. 15-1. 所有照片均由克劳斯·施梅赫拍摄:(a)来自奥地利的吉恩特·赫特尔收藏;(b)在德国帕德博恩的海因茨·尼克斯多夫博物馆论坛;(c)在美国马里兰州米德堡的国家密码学博物馆;(d)在德国卡尔斯鲁厄的 Kryptologikum

  2. 15-2. 加密明信片由戴尔·斯皮尔斯提供

  3. 15-3. 速记板由温尼弗雷德·肯纳制作

  4. 15-4. 原始图片由下萨克森州档案馆沃尔芬比特尔部门提供,2 Alt (2837)。注释由作者添加

  5. 15-5. 图片由纽约州档案馆提供

  6. 15-6. 照片由约翰·F·肯尼迪总统图书馆和博物馆提供

  7. 15-7. 照片由克劳斯·施梅赫拍摄,并附注释

  8. 15-8. 来自Steganographia第三卷 1608 年版的页面,第 166-167 页

  9. 15-9. 图片由克利夫·约翰逊为大卫·布莱恩的书神秘陌生人设计

  10. 15-10. 所有照片均由克劳斯·施梅赫拍摄:(a)帝国战争博物馆(伦敦);(b)科学博物馆(伦敦);(c)联邦国防军的通讯与信息技术(德国费尔达芬);(d)贝克打字机博物馆(瑞士法弗克)

  11. 15-11. 图表由作者制作

  12. 15-12. 图片由美国政府提供

  13. 15-13. 图表由作者制作

第十五章,无标题

  1. 图表由作者制作

  2. 摘自 William 和 Elizebeth Friedman 的《莎士比亚密码解密》,第 257 页

第十六章,标题说明

  1. 16-1. 作者创建的图表

  2. 16-2. 作者创建的图表,模拟退火

  3. 16-3. 图片来自www.fbi.gov

  4. 16-4. 由旧金山警察局绘制的黄道杀手素描(左);黄道信件 Z408(右)

  5. 16-5. CrypTool 2 屏幕截图

  6. 16-6. Klaus Schmeh 拍摄的照片

第十六章,无标题说明

  1. Klaus Schmeh 复制的《古代时代的奇趣》中的插图

  2. IRA 密码图案由 Jim Gillogly 提供

  3. 作者创建的图表(矩阵变为 6 × 6 格状)

第十七章,标题说明

  1. 17-1. Craig Bauer 提供的备注

  2. 17-2. 图片来自www.fbi.gov

  3. 17-3. 图片来自 GCHQ

  4. 17-4. Glenn McIntosh 拍摄的照片

  5. 17-5. Stuart Kohlhagen 设计的NKRYPT雕塑蓝图

  6. 17-6. Gregory Lloyd 拍摄的NKRYPT雕塑特写照片

第十七章,无标题说明

  1. 由 Glenn McIntosh 在www.meme.net.au/nkrypt/创建的图表

附录 A,标题说明

  1. A-1. Elonka Dunin 拍摄的照片

  2. A-2. 作者创建的图表

  3. A-3. Jim Sanborn 提供的图表

附录 A,无标题说明

  1. 作者创建的图表

附录 B,无标题说明

  1. 作者创建的图表

附录 C,无标题说明

  1. 作者创建的图表

附录 D,标题说明

  1. D-1. 作者创建的图表

  2. D-2. 作者创建的图表

所有漫画由 Klaus Schmeh 创作。幽默由两位作者提供。请自行承担风险欣赏。

第二十三章:F

参考文献

第一章

第二章

第三章

第四章

第五章

第六章

第七章

第八章

第九章

第十章

第十一章

第十二章

第十三章

第十四章

第十五章

第十六章

第十七章

附录 A

附录 B

posted @ 2025-11-30 19:37  绝不原创的飞龙  阅读(0)  评论(0)    收藏  举报