码书:编码与解码的战争(BBC系列专题《保密的科学》底本披露3000年密码战争极简史,将人类科技文明推向不可思议的极限。)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-04 18:35:17

点击下载

作者:西蒙·辛格

出版社:江西人民出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

码书:编码与解码的战争(BBC系列专题《保密的科学》底本披露3000年密码战争极简史,将人类科技文明推向不可思议的极限。)

码书:编码与解码的战争(BBC系列专题《保密的科学》底本披露3000年密码战争极简史,将人类科技文明推向不可思议的极限。)试读:

作者序

数千年来,不管是君王或将军,都需要一套很有效率的通讯模式来治理国家、指挥军队。他们当然也深知万一信息落入不当人士手里,让敌国窥知机密,或让反对势力获取关键信息时,所会产生的严重后果。密码术——一种伪装信息,唯有指定的收信人才能读出原意的技术——就是应对敌人拦截机密的威胁而发展出来的。

为了保密,每个国家都设立了密码部门,发明及使用最好的密码来确保通讯安全。相对地,敌方的解码专家则努力破解密码以偷取机密。这些译码专家可说是语言学的炼金术士;就像炼金术士想将石头炼成黄金,他们则尝试从无意义的符号堆里揣度出合理的文字。密码术的历史其实就是几世纪以来编码者与译码者之间的战争史,他们的战争是一场影响历史走向甚巨的知识武器竞赛。《码书》这本书有两个主旨。首先,我想汇整出密码的演化史。演化?是的,我认为这个词语非常妥切,因为密码的发展过程犹如物种演化的生存竞争。每种密码都会持续遭受译码者的攻击。他们一旦研发出可以突破其要害的新武器;这类密码就再也派不上用途。它要不是就此绝种,要不就是演化成更强的新密码。同样地,这种新密码会继续繁衍,直到解码者也辨识出它的弱点,如此不断循环下去。这和对付传染病细菌的情况很相似。这些细菌生长、繁衍、存活,直到医生找出能够针对它们的弱点进而予以歼灭的抗生素。细菌被迫演化,必须胜过抗生素。成功的话,就可再度繁衍,重新建立生存据点,如果停止演化,就难以逃脱更新型抗生素的赶尽杀绝。

编码者与译码者的持久战事激发了一连串与时俱进的科学突破。编码者不断努力建造更强的密码系统来防卫通讯,译码者则不断发明更有威力的方法来破解密码。在这场攻防拉锯战中,双方都广泛援引了各学科的知识与技术——从数学到语言学,从信息理论到量子论,无一不被征召投入战场。相对地,编码者与译码者也丰富了这些学科的内容,他们的工作加速了科技的发展,尤其是现代计算机的研发。

历史的标点符号是密码打上去的。它们决定了战争胜败,也结束了一些国君的性命。这事实让我得以引述几则政治阴谋以及攸关生死的故事来说明密码演化过程的几个关键性转折点。密码的历史数据异常丰富,我不得不舍弃很多引人入胜的故事。这也意味着我的阐述并非定论。若想更进一步了解你最感兴趣的故事或最喜欢的密码专家,不妨参考书末所附的相关书目,它们必定会颇有帮助。

讨论过密码的演化以及对历史的影响后,本书的第二主旨是以实例说明这个主题如何在今日变得比以往更有切身关系。在信息成为价值日增的必需品、通讯革命改变社会的此时,将信息编成密码的程序,亦即所谓的“加密”(encryption),在日常生活中也会扮演更重要的角色。今日,我们的电话交谈往返于卫星之间,我们的电子邮件得通过多台计算机或者服务器;这两种通讯形式都很容易被拦截,我们的隐私因而也更容易受到侵犯。同样地,愈来愈多的商业交易是通过互联网进行,设立一些安全措施来保护公司与客户是有必要的。加密是保护我们的隐私与确保电子商务能够顺利成长的唯一方法。秘密通讯的技术,亦即密码术(cryptography),可以提供我们防卫信息时代的锁钥。

然而,社会大众日益踊跃使用密码技术的趋势,却跟犯罪防治与国家安全的需求相冲突。数十年来,警察与情报机关常进行窃听以收集恐怖分子与犯罪集团的不法证据。近来超强密码的发展,却可能使窃听技术失效。在迈入21世纪之际,民权运动者要求允许广泛使用密码技术,以保护个人隐私。企业人士也跟他们站在同一阵线,因为他们需要强大的加密技术来确保电子商务的交易安全。而同时,执法单位则游说政府限制加密技术的使用。问题在于,我们将何者看得更重要?我们的隐私,抑或强而有力的治安单位?这其中是否另有折中办法?

加密技术不仅对民间活动有很大的影响,在军事方面也一直是非常重要的课题。有人说,首度使用芥子气与氯气的第一次世界大战,可称之为化学家的战争,以原子弹结束的第二次世界大战,可称为物理学家的战争。依此类推,有人相信第三次世界大战将是数学家的战争,因为数学家将掌控下一场大战的重要武器——信息。数学家早已投入研发密码系统保护军方信息的工作。而在密码战中负责破解这些密码的,当然也是数学家。

在叙述密码的演化以及它们对历史的影响时,我有一段稍微偏离了主题。我在第5章讲述一些古文字的解译过程,包括线形文字B以及古埃及象形文字。严格说来,密码学的用途在于刻意设计来欺瞒敌人耳目的通讯内容,而这些古文字并没有这种用意,不过是我们已失去了解读它们的能力罢了。然而,了解古文字意义所需要的技巧跟破解密码的技术非常相似。我读到约翰·查德威克(John Chadwick)在《线形文字B的破译》(The Deciperment of Linear B)中详述线形文字B这种古地中海文字的破译过程时,我对那些学者惊人的成就赞叹不已:他们伟大的破译能力让我们得以阅读祖先的文字,了解他们的文明、信仰与日常生活。

关于本书书名,我得向纯正主义者说声抱歉。《码书》(The Code Book)当然不单讨论代码(code)。代码这个字本来是指秘密通讯的方法之一;这种方法已经越来越少人用了。所谓代码,就是用一个字,或数字、符号,来取代某个字或词组。例如,情报人员都有个代号(codename),也就是用来代替真实姓名以隐藏身份的名称。又例如,要传达“拂晓攻击”这个命令给战场指挥官时,可以用“朱庇特”(Jupiter)这个代码(codeword)来代替。总部和指挥官事先商议好代码,所以真正的收讯人很清楚“朱庇特”的意义,而拦截到这个信息的敌人则一头雾水。相对于代码,还有一种作用面较基层的方法名为密码(cipher)——更替一个个字母,而不是一次整个词。例如,某个词组的所有字母——以它在字母集里的邻居代替,亦即B代替A,C代替B,以此类推。如此,“拂晓攻击”的英文Attack at dawn就变成Buubdl bu ebxo 了。密码是加密技术不可或缺的一分子,所以本书实应命名为《代码与密码》(The Code and Cipher Book)。但为求简洁,我舍弃了较准确的名称。行文时若有必要,我会解释一些密码学术语的定义。在本书,我通常遵循正确的定义来使用术语,有时候为了让一般读者易于了解,我会在叙述时牺牲一点正确性,采用日常通行的词汇。例如,讲到破解密码(cipher)的人时,我常称之为“代码破解者”(codebreaker)而不是较准确的“密码破解者”(cipherbreaker)。然而只有这个词在前后文的意思非常明显时,我才会这么做①。书末附有词汇解释供读者参考。话说回来,大部分的密码术语都相当明了易懂。例如,“明文”(plaintext)就是加密前的信息,而“密码文”(ciphertext)即是加密后的信息。

结束这篇序文之前,我必须提一下每位讨论密码技术的作者都会碰到的问题:大体而言,这门研究保密的科学本身就是被保密的科学。本书介绍了一些在密码学界有卓越贡献的人士,其中有很多在有生之年一直默默无闻,因为他们的发明在当时仍具外交或军事价值,因此无法公开赞扬他们的贡献。在为本书作研究时,英国政府通讯总部(Government Communications Headquarters,简称GCHQ)的专家在访问过程中,透露了20世纪70年代所做的一些非凡研究的细节。这些研究是因最近刚刚解密,才得见天日。也正因为它们不再是机密,三位世界级的密码专家才得以享受他们应得的名誉。这件事提醒了我们,还有更多这类任何科学作家都不知晓的研究正在默默进行中。英国政府通讯总部和美国国家安全局(National Security Agency;简称NSA)等机构,仍在持续进行机密的密码技术研究。他们有何突破?机密。成就应归功于谁?无名氏。

尽管受限于政府的保密措施以及相关研究的机密性,我仍尝试于本书最后一章推测密码技术的未来。这一章企图分析密码学的发展途径,看看我们能不能预测编码者和译码者之间这场演化竞争的最终赢家是谁。究竟是编码者设计出一套真正破不了的密码,实现绝对保密的梦想?还是译码者造出一台可以破解任何讯息的机器?别忘了,有一些最伟大的头脑正在秘密实验室里工作,而且享有巨额的研究基金。因此,我在最后一章所作的陈述,可能不尽正确。例如,我说量子计算机——有望破解时下所有密码的机器——尚在起步阶段,可是,也许有人已经造出一台了。只是唯一能够指出我错误的人,正是那些不能揭露这些秘密的人。

①关于code和cipher这两个字的翻译,由于中英文在语言上的差异,无法照英文完全转译。本书依原作者西蒙·辛格的定义,将code译为“代码”,cipher译为“密码”。另一方面,中文的使用习惯是以“密码”来泛指秘密书写,与英文使用code(代码)恰巧相反,所以原作者的顾虑在中文里并不存在。  第1章 苏格兰玛丽女王的密码

1586年10月15日星期三早上,玛丽女王(Mary Stuart)走进佛斯林费堡(Fotheringhay Castle)挤满人群的法庭。多年囚禁与风湿症的折磨,使她憔悴不已,但她依旧高贵冷静地展现不容置疑的帝王风范,在医生的协助下,从法官、官员、观众面前缓缓走近位于这狭长的审判室中间的御座。玛丽以为这御座显示她赢取了应得的敬意。她错了。这御座代表缺席的伊丽莎白女王(Elisabeth I.)——玛丽的仇敌与起诉人。玛丽被和缓地带离御座,走到审判室的另一边。被告席上,那张腥红色丝绒椅才是她的座位。

苏格兰的玛丽女王在此接受叛逆罪的审判。她被控密谋行刺伊丽莎白女王以夺取英格兰王位。伊丽莎白的国务大臣弗朗西斯·沃尔辛厄姆爵士(Sir Francis Walsingham)已逮到其他共犯,取得供词,并将他们处决了。现在,他要证明玛丽是这宗阴谋的核心人物,一样有罪、一样该当处死。

沃尔辛厄姆知道,要处死玛丽,得先让伊丽莎白女王相信她真的有罪。伊丽莎白虽蔑视玛丽,却因为诸多原因,迟迟不敢将她送上刑台。头一个顾虑是:玛丽是苏格兰女王。有不少人质疑,英格兰法庭是否有权处决外国君主。再者,处决玛丽恐会创立一项令人不安的先例——政府都可杀掉一国之君了,叛徒更不会顾忌再杀另一个,也就是伊丽莎白自己。此外,伊丽莎白和玛丽是表姊妹,这层血缘关系更让伊丽莎白怯于判决她死刑。总而言之,除非沃尔辛厄姆能彻底证明玛丽参与了这宗行剌密谋,否则伊丽莎白是不会批准处决玛丽的。

这宗叛逆阴谋是一群年轻的英格兰天主教贵族所策划的。他们意图除掉伊丽莎白这个新教徒,让同为天主教徒的玛丽取而代之。法庭认为,玛丽显然是这群叛徒的名义领袖,但不确定她是否首肯这项阴谋。事实上,玛丽的确授意了此项行动。沃尔辛厄姆所面临的挑战是:他必须证实玛丽和这群党羽之间确有共犯关系。图1:苏格兰的玛丽女王

审判日当天早晨,玛丽穿着色泽惨然的黑绒衣,独坐在被告席上。被控叛逆罪的嫌犯不得请辩护律师,也不准召唤证人。他们甚至不准她的臣子帮忙准备诉讼事宜。不过,玛丽还未身陷绝境;当初她可是很谨慎地一律使用密码与叛徒通讯的。她用密码系统把信息转换成一串无意义的符号。玛丽相信,就算沃尔辛厄姆搜出这些信件,他也读不出什么名堂来。这些信件的内容既然无解,也就不能成为呈堂证据。不过,这一线生机全维系在:她的密码未被破解。

不幸的是,沃尔辛厄姆不只是国务大臣,还是英格兰的间谍首脑。他不但拦截到玛丽送给那些叛徒的信件,还知道谁能破解这些密码。托马斯·菲利普(Thomas Phelippes)是英格兰破解密码的第一高手。多年来,他一再破解那些密谋对付伊丽莎白女王的信息,沃尔辛厄姆才得以将叛徒定罪。他若能破解玛丽授意那些叛徒罪证确凿的信息,她就难逃一死了。相反的,如果玛丽的密码强到足以隐瞒其中的秘密,她就有机会活命。一条命就这样取决于密码的力量,而这并不是第一次。秘密书信的演进

秘密书信的历史非常悠远。被罗马哲学家及政治家西塞罗(Cicero,公元前106年-公元前43年 )誉为“史学之父”的希罗多德(Herodotus,公元前484年?-公元前425年? )即讲过一些最早的秘密书信故事。希罗多德在《历史》(The Historys)—书中记载了希腊与波斯于公元前5世纪时的冲突。他把这些冲突视为自由对抗奴役、独立的希腊城邦对抗暴虐的波斯人的争战。根据他的记述,就是秘密书信的技术拯救了希腊,使他们幸免于被号称万王之王的波斯暴君薛西斯(Xerxes,公元前519年?-公元前465年)征服的厄运。

希腊与波斯之间的宿怨在薛西斯于波斯波利斯①(Persepolis)建造城市,作为傲世帝国的新首都后达到临界点。所有帝国境内的王国,乃至邻近城邦,都纷纷献上贡品与珍礼,唯独雅典与斯巴达明目张胆地置身其外。为报复这份无礼的羞辱,薛西斯开始整饬武力,宣称要“扩张波斯帝国的领土,使帝国国界齐同上帝的疆域,阳光所到之处无一不在吾人国境之内”。接下来的五年,他秘密集结了有史以来最强大的武力;公元前480年,他已就绪,准备发动一场突袭了。

偏偏这些波斯军队的集结行动竟被一位名叫狄马拉图斯②(De-maratus)的希腊人给瞧见了。狄马拉图斯被祖国驱逐而住在一个叫苏萨(Susa)的波斯城市里。虽然遭受流放,他对希腊仍存忠诚之心,因此决定送封信警告斯巴达人薛西斯的侵袭计划。问题是,这封信要怎么送才不会被波斯守卫拦截下来呢?希罗多德记述道:被发现的风险很高,而只有一个办法能顺利送出这封信:将一副可对折的木制写字板上的蜡刮下来,把薛西斯的企图写在木头上,再用一层蜡把这则信息盖住。这样一来,这些木板看似一片空白,沿路卫兵也就不会找它们麻烦。这则信息抵达目的地时,没有人猜得到其中的奥秘。据我了解,是克利欧明斯(Cleomenes)的女儿,亦即李奥尼狄斯(Leonides)的妻子戈尔戈(Gorgo)瞧出端倪,告诉旁人:把蜡刮掉,就会发现木头上有字。他们照做之后发现了信息,接着便转告其他希腊人。

这道警告让原本毫无防备的希腊人开始进行武装准备。城邦所拥有的银矿收益原本由城民均分,现在则改交给海军支用,建造了两百艘战舰。

至此,薛西斯已丧失奇袭先机。公元前480年9月23日,波斯舰队抵达雅典附近的萨拉米斯湾(Bay of Salamis)时,希腊人已做好应战准备。他们把波斯舰队诱进海湾时,薛西斯还以为希腊海军已是囊中之物。希腊人自知他们舰队的船身小、数量少,留在外海会全军覆没,回到海湾内则有机会以智取胜。风向一改,波斯人就被一股脑儿吹进海湾里,窘迫地迎战希腊人。波斯公主雅特弥夏(Artemisia)三面受围,尝试退回外海,却撞到自己的随行船只,引起一阵恐慌,导致更多波斯船只互撞。希腊人趁势发动猛烈的攻击,短短一天之内,波斯的庞大武力随即宣告屈服。

狄马拉图斯的秘密通讯法只是单纯地把信息藏起来。希罗多德所记述的另一个事件,也是用隐藏法就足以保障信息的传输安全。希斯泰尤斯(Histaiaues)鼓动米里图斯③(Miletus)的亚里斯达哥拉斯(Aristagoras)反叛波斯国王。希斯泰尤斯把信差的头发剃光,将信息写在他的头皮上,等他头发又长出来了,才让他去传送秘令,那个时代对行事速度的要求显然宽松些。表面上,这位信差未带任何不妥物品,因此旅程中未受任何干扰。抵达目的地后,再度把发丝剃除,把头伸给指定的收讯人瞧瞧,他的任务就完成了。

这种掩饰信息存在性的保密通讯法称为隐匿法(steganography),源自希腊文steganos和graphein两个单词,前者意为“掩蔽的”,后者则是“书写”。自希罗多德时代起,两千年来隐匿法的应用以千奇百怪的形式遍及世界各地。例如,古代的中国人把信息写在柔细的丝布上,揉成一个小球,覆上蜡,再让信差吞进这粒蜡球。16世纪的意大利科学家乔凡尼·波塔(Giovanni Porta)解说了在煮熟的蛋里藏匿信息的方法:用一盎司明矾和一品脱醋所混成的液体当作墨水写在蛋壳上。这种溶剂会穿透富含气孔的蛋壳,而在硬化的蛋白表层上留下信息——你得剥掉蛋壳才看得到。使用隐形墨水写信也是隐匿法的一种。早在公元1世纪,老普林尼④(Pliny the Elder)就解释道:thithymallus植物的汁液可以用作隐形墨水。它的汁液干掉后会变透明,但稍微加热就会焦掉而变成棕色。很多有机液体也有类似特性,因为它们富含碳质而很容易焦黑。事实上,就连现代间谍,当配发的隐形墨水用光时,也会想到用自己的尿液来应急。

隐匿法的寿命这么长,表示它显然是相当的安全。不过它有一个根本弱点。万一敌人搜查信差身体,发现信息,秘密通讯的内容马上就曝光了。一旦信息被拦截到,所有安全措施皆前功尽弃。一板一眼的卫兵可能依例搜查每位过境的旅人、刮一刮任何蜡板、烤一烤空白纸张、剥剥熟蛋的壳、剃剃人们的头等,多多少少总有些信息会败露的。

因此,就在隐匿法发展的同时,也衍生出了“密码法”(cryptography)。密码法这个词源自希腊文kryptos,“隐藏”的意思。密码法的目标不是将信息本身隐藏起来,而是隐藏信息的意义;它的程序称为“加密”(encryption)——把信息转译成无法理解的文字或符号,也就是依据发信人与收信人预先协议好的规则来改写信息。收信人依照改写规则转换信息,就能还原信息的意义了。而不清楚改写规则的敌人,即使办得到,也得大费周章,才能把加密文字转换回原始信息。

密码法和隐匿法虽然没什么关联,却可合并使用,以强化安全性。例如,属于隐匿法的微缩小点(microdot)在第二次世界大战期间相当普及。在南美洲的德国情报人员把一页文字摄影、缩小成直径不到1厘米的小点,然后藏置在一封看似无关紧要的信函里,伪装成句点。1941年,FBI接获密报,首度找到微缩小点。这份情报告知美国人注意寻找信纸表面上微微发亮的小点,这些小点即是胶卷。这些被拦截下来的微缩小点,大多可以直接读取内容,有时德国情报员会预作防范,先将信息加密再摄影,如此一来,美国人就没辙了。所以,美国人虽拦截、阻绝了一些通讯,但遇到密码法与隐匿法并用的情况,就无法获知德国间谍活动的新消息。由此可见,密码法是秘密通讯两门技术中较强的一个,因为它有防止信息落入敌手的能力。

事实上,密码法本身又可分成两类:移位法(transposition)与替代法(substitution)。移位法是将信息里的字母调动顺序。这个方法不适用于非常简短的信息,像是只有一个单词的,因为少数几个字母的重组方式实在有限。举例来说,三个字母就只有六种排列方式,例如COW、CWO、OCW、OWC、WCO、WOC。不过,字母数目一增加,排列方式的数目就会急速升高,除非确知改写步骤,否则不可能拼回原始信息。“For example, consider this short sentence.”这句话只有35个字母,却有超过50,000,000,000,000,000,000,000,000,000,000种的排列方式。假使每人每秒检查一种排列方式,全世界的人都日以继夜做这项检查工作,也需要宇宙寿命1,000倍的时间才能检查完所有组合。

加密信息时,若将字母随意搬家,它的安全度一定非常高,因为即使是短短的句子,拦截到它的敌人也没办法解译出来。只是,这有个缺点。移位法等于是在制造回文谜,困难度可以非常惊人的回文谜⑤;如果字母的重组毫无章法,那么,不仅是敌人,就连原收信人也没办法解读。所以,字母的重组必须遵循发信人与收信人预先约定好的规则,这样的移位法才有实际效用。例如,有些学童会使用“篱笆式”(rail fence)的移位法来传递消息,也就是把信息内容的奇数位字母写成一排、偶数位字母写在另一排,再把偶数位字母接到奇数位字母后面。例如:THY SECRET IS THY PRISONER;IF THOU LET IT GO, THOU ART A PRISONER TO IT↓TYERTSHPIOEITOLTTOHURARSNROTHSCEITYRSNRFHUEIGTOATPIOETI↓TYERTSHPIOEITOLTTOHURARSNROTHSCEITYRSNRFHUEIGTOATPIOETI

收信人只要逆向执行这个程序,就能复原信息。规则性移位法的形式很多,包括三排篱笆法,亦即先把信息改写成三排字母,而不是两排。还有一种方法是:将字母两两对调顺序,亦即第一个字母和第二个字母互调,第三个字母和第四个字母互调,以此类推。图2:从发信人的密码棒解下来时,这皮带上的字母犹如随意胡写的,S、T、S、F……唯有把这皮带缠绕在一根直径正确的密码棒上,信息才会重现。

历史上第一件军用密码装置——公元前5世纪的斯巴达密码棒(scytale),则采用了另一种形式的移位法。密码棒是一根木棒(如图2),缠绕上一条皮革或羊皮纸,发信人在密码棒上横向写下信息,再解下这条皮带。展开来看,皮带上的长串字母没有任何意义,借此方法即可搅乱信息的内容。有时候,信差会把它当作腰带,有字母的那一面当然向内藏,系在腰上——也算是隐匿法的一种。收信人把这条皮带缠绕在直径相同的密码棒上,就可以还原信息了。公元前404年,一位遍体鳞伤的信差来到斯巴达将领利桑德(Lysander)面前,在这趟自波斯出发的艰困旅程中,只有他和四位同伴幸存。利桑德接过这位信差的腰带,缠绕到他的密码棒上,得知波斯的发纳巴祖斯(Phamabazus)准备侵袭他。多亏了密码棒,利桑德得以预先防范,从而击退了敌军。

除了移位法外,另一种方法是替代法。早在公元4世纪,婆罗门学者跋舍耶那(Vatsyayana)所写的《爱欲经》(kāma-sūtra)即曾提到用替代法加密信息,而它的方法还是得自于公元前四世纪的古文稿。《爱欲经》鼓励妇女学习64种技艺,如烹饪、服饰、按摩、制作香水等。此外还有一些有点儿出人意料的技艺,像是魔术、下棋、书籍装帧与木工。第45项则是秘密书信(mlecchita-vikalpa),理由是可帮助妇女隐瞒她们的暧昧关系。其中一项建议方法是:先将字母随意配对,再用配对字母取代信息里的原始字母。如果将这方法套用到罗马字母,我们可以为字母进行如下的配对:ADHIKMORSUWYZ↕↕↕↕↕↕↕↕↕↕↕↕↕VXBGJCQLNEFPT

这么一来,发信人可以把meet at midnight (子夜见面)改写成CUUZ VZ CGXSGIBZ。这种秘密书写即称为替代式密码法(substitution cipher),因为原始信息的每个字母都用另一个字母取代,可说是跟移位式密码法(transposition cipher)互补的一种方法。移位法是字母的内涵不变,位置变;替代法则是字母的内涵变了,位置不变。

替代式密码法在军事上的应用首度记载于恺撒大帝(Julius Caesar) 的《高卢战纪》(Gallic Wars)。恺撒提到他如何送信给被围困许久而正考虑投降的西塞罗。他采用的替代法是用希腊字母取代罗马字母,把信息转译成敌人看不懂的符号。恺撒记述了这则讯息的戏剧性传递过程:信差受到指示,如果无法送达,就把信绑在皮带上,随矛掷进防御阵地里去。这位高卢人怕危险不敢靠近,便依指示把矛丢掷过去。这支矛恰巧卡在楼塔上,卡了两天,都未被我军发现。直到第三天,才被一位士兵看到,拿下来交给西塞罗。他读毕之后,召集全军公开宣达,众人听罢顿时欢欣鼓舞⑥。

恺撒使用秘密书信的次数非常频繁,瓦莱里·普洛布斯(Valerius Probus)写了一篇论文专门讨论他的密码法,可惜此书已失传。幸好,苏东尼乌斯(Suetonius)写于公元2世纪的《十二帝王传》(Lives of the Caesars)详细记载了恺撒常用的一种替代式密码法⑦。这位罗马皇帝把信息内容的字母——改成比它后三位的字母,例如将A写成D,将B写成E。在此顺便介绍一下密码学家常用的术语:原始信息所用的字母集称为明文字母(plain alphabet),替代字母所组成的字母集则称为密码字母(cipher alphabet)。如图3,把明文字母列在密码字母上面,就可以清楚看出密码字母挪移了三位。因此,这类替代法通常被称为恺撒挪移式密码法(Caesar shift cipher)或简称恺撒密码法(Caesar cipher)。所有原始讯息字母一一由另一个字母或符号取代的替代法,都属于密码法(cipher)。

虽然苏东尼乌斯只提到一种挪移了三位的恺撒密码法,这类密码法的挪移数当然并不限于一种,如果使用26个英文字母,它的挪移位数可以是1到25,而得出25种互异的密码法。此外,我们也不一定要挪移固定位数,大可随意指定明文字母与密码字母间的对应关系,如此可产生数量非常庞大的密码法。这样的对应方式超过400,000,000,000,000,000,000,000,000种,我们也就可以有相同数目的密码法。gypqacejmnorsuvwxz明文字母集bdfhiklt密码字母集DEFGHIJKLMNOPQRSTUVWXYZABCveni,vI,vc明文idiiL,L,密码文YHQYLGYLFL

图3:应用于简短信息的恺撒密码法。恺撒密码法的定义是:密码字母集相对于明文字母集挪移了一定数目的位置(在此例是挪移了三位)。密码学的惯例是:明文字母集用小写,密码字母集用大写。同样地,原始信息,亦即明文,也是用小写;加密过的信息,亦即密码文,则用大写。

每种密码法都可视为某种一般加密法——称为算法(algorithm)——再加上一把钥匙(key)的组合结果。钥匙是用来指定特定加密程序的演算细节。在上述例子,算法是指以密码字母集里的字母——取代明文字母集里的字母,而且密码字母集可以是明文字母集的任何一种重组结果。钥匙则定义加密过程中所用的密码字母集。我以图4说明算法和钥匙的关系。

敌人研究拦截下来的加密信息时,也许可以八九不离十地猜对它的算法,却很难推测出它的钥匙。例如,他们或能猜测到,明文的所有字母都根据一套特定的密码字母集——被调换了,但他们却不太可能知道对方用了哪一套密码字母集。只要发信人和收信人谨慎保密好这套密码字母集,亦即钥匙,敌人就解译不出他们拦截到的信息。钥匙的重要性远高于算法,这是密码学上颠扑不破的真理。荷兰语言学家纽文霍夫的奥古斯特·科克荷夫斯(Auguste Kerckhoffs von Nieuwenhof)1883年在《军事密码术》(La Cryptographie militaire)—书所述的“科克荷夫斯原则”明确道出钥匙的重要性:密码系统的安全性不在于防止敌人洞悉密码算法,钥匙的保密才是决定密码安全性的唯一关键。图4:发信人透过一道加密算法来加密明文信息。算法只是加密通则,还必须选配一把钥匙,才能定义出一套特定的加密系统。把钥匙与算法一起运用到明文信息上,就会产生加密过的信息,亦即密码文。敌人或能在信息传送过程拦截下密码文,但应该无法解译出信息。相对地,知道发信人所用钥匙与算法内容的收信人就能把密码文转换回明文信息。

除了严守钥匙不得泄露外,安全的密码系统还必须有数量庞大的可用钥匙。像恺撒挪移式密码系统的加密强度就相当弱,因为这类系统只有25把钥匙,敌人若拦截到信息,并怀疑它用的演算法是恺撒挪移法时,只需检查25种可能性就能找出答案。可是,发信人若使用一般的替代式算法,亦即他的密码字母集可以是明文字母集的任何一种重组结果,他就有400,000,000,000,000,000,000,000,000把钥匙可以选用。图5所示即为其中一种。就算敌人拦截到这则信息,也知道他用的算法是什么,恐怕还是没有勇气执行检查所有可用钥匙的恐怖工作。即使敌方每秒可检查一种钥匙,也得花上宇宙寿命10亿倍的时间才能检查完这400,000,000,000,000,000,000,000,000种可能性,来破解这则信息。

这类密码的妙处就是:执行容易,安全性却很高。对发信人而言,指定钥匙,亦即定出26个字母在密码字母集里的顺序,是件轻松简单的工作。对敌人而言,用所谓的暴力解法⑧来检查所有可能性,是根本不可行的。使用此法时,钥匙的定义应该要简易,因为发信人和收信人两方都必须清楚知晓钥匙为何;钥匙愈简单,发生误会的机会就愈少。

图5: —般替代式算法的例子——根据钥匙,一一替换明文的字母。钥匙的内容就是这套可以是明文字母集的任一重组结果的密码字母集。

事实上,只要收信人愿意将可用钥匙的数目略减,钥匙的定义可以更加简单。制定密码字母集时,发信人可以选用一个钥匙词(keyword)或钥匙词组(keyphrase),而不必将全部的字母随机重排。例如,选用JULIUS CAESAR当钥匙词组,然后把空格及重复的字母都去掉(变成JULISCAER),再以这些字母当密码字母集的起始字母。接着,把字母集的其他字母,依照原有顺序,接到钥匙词组字母的后面,就能造出如下的密码字母集:

用这种方式制定出来的密码字母集的好处是,只要记住钥匙词或钥匙词组,就等于记下整套密码字母集了。这一点很重要。如果发信人必须把密码字母集记在一张纸上,敌人就有可能截获这张纸,得到钥匙,而得以阅读所有以这把钥匙加密的通讯内容。若是把钥匙默记在脑袋里,敌人得到它的机会就会小很多。用钥匙词组所能造出来的密码字母集虽然比随机产生的来得少,但数量仍旧很庞大。对敌人而言,检查所有可用钥匙词组以破解信息,仍是一件毫不可行的任务。

简易与牢固的特性,让替代式密码法在秘密通讯界风光了公元1至10世纪之间的一千年。就像生物演化一样,编码者已逐步建立起一套能确保通讯安全的系统,没有必要再继续研发了。既然没有需求,何必要进一步发明呢?重担落到尝试破解替代式密码法的解码者身上。敌方可不可能解得开加密的信息?许多古代学者相信,由于可用钥匙的数目太过庞大,替代式密码法是无法破解的。数个世纪以来,这种看法似乎始终成立。然而,解码者终究会找到一条搜寻钥匙的捷径。破解密码,不再需要数十亿年的时间,抄捷径的话,只要几分钟就可揭开信息内容了。这项突破发生于东方,而且是语言学、统计学与宗教热诚的辉煌结晶。阿拉伯的密码分析家

穆罕默德40岁左右开始定期前往麦加城外的希拉山(Mount Hira)上一座偏僻的洞窟。他在这里祷告、沉思、冥想。公元610年左右,他正在深思之间,天使长加伯列(archangel Gabriel)来到他面前,宣称穆罕默德是上帝的使者。之后,又继续出现一连串的天启,直到二十来年后穆罕默德过世为止。先知穆罕默德在世时,有几位书记记录下这些天启,但都只是片段。直到第一任伊斯兰教领袖阿布巴克(Abū Bakr),才开始将这些片段记录集结在一起。第二任领袖乌玛(Umar)和他的女儿哈芙撒(Hafsa)接续了这份工作,最后到第三任领袖奥斯曼(Uthman)的手上才完成这项工作。每个启示一章,结集成总共114章的《古兰经》。

领袖的责任是接续先知穆罕默德的工作,宣弘他的教义,传播他的信息。从阿布巴克成为教主到661年第四任领袖阿里(Alī)崩殂这段时间,伊斯兰教迅速传播,当时已知的世界,半数被纳入伊斯兰教教徒的手中。到了750年,经过一世纪的生养,阿巴斯(Abbasid)王朝开启了伊斯兰文明的黄金时期。艺术与科学同步蓬勃发展。伊斯兰工匠遗留给我们璀璨的图画、华丽的雕刻以及历史上最精巧的纺织品。而散布在现代科学辞典里的阿拉伯词汇,如代数(algebra)、碱(alkaline)、天顶(zenith),则见证了伊斯兰科学家的辉煌成就。

伊斯兰文化之所以这么多彩多姿,归功于安和、富裕的社会。阿巴斯王朝的国王不像前几任君主那么好征战,转而致力于建立一个有组织的繁荣社会。低税赋使得交易频繁,并促进商业与工业的大幅增长;严厉的法令则能抑制贪污、保护百姓。这一切全凭借效率良好的行政系统,而行政官员则是仰赖以加密法完成的安全通讯系统。根据记载,除了机密的国政事务之外,税务数据也予以加密保护,足证密码技术的使用非常广泛与频繁。许多行政手册提供了进一步的实证,例如成书于10世纪的《事务官手册》(Adab al-Kuttab)就有好几篇章节专门讨论密码法。

这些行政官员所使用的密码字母通常是如前一节所述,将明文字母重组而得。不过他们也在密码字母中掺杂了一些别的符号,例如明文字母的a可能会以#来替代,b则用+等。这类用符号或字母、或两者混用,以一个密码字母代替一个明文字母的方法,通称为单套字母替代式密码法(monoalphabetic substitution cipher)。我们到目前为止所介绍的替代式密码法都属于这一类。

倘若这些阿拉伯人只是习于使用单套字母替代式密码法,他们就不会在密码学史上占有一席之地。然而除了使用密码外,这些阿拉伯学者还会破解密码。事实上,他们发明了密码分析学(cryptanalysis)——在无从得知钥匙的情况下解译信息的科学。编码专家在研发秘密书写的新方法时,密码分析家则在苦思这些方法的弱点,以破解信息的秘密。单套字母替代式密码法在维持了数世纪无法破解之后,终于被阿拉伯的密码分析家找到破解的方法。

密码分析学的催生需要一个高度文明——举凡数学、统计学和语言学等学科,都必须具备高度水平。伊斯兰教文明提供了一个孕育密码分析学的理想摇篮,因为伊斯兰教要求所有人类活动都以公正为旨,而这需要知识(称为ilm)的协助才能达成。每位伊斯兰教教徒都应该追求各种形式的知识,阿巴斯王朝丰硕的经济成果即给予学者足够的时间、金钱与材料来履行他们的任务。他们搜集埃及文、巴比伦文、印度文、中文、法希文⑨、叙利亚文、亚美尼亚文、希伯来文以及罗马文经典并翻译成阿拉伯文,以吸收旧有文明的知识。公元815年,曼姆国王(Caliph al-Ma‘mun)在巴格达建立了“智慧殿堂”(Bait al-Hikmah)—— 一座图书馆及翻译中心。

在学习知识的同时,伊斯兰文明也具备传播这些知识的能力,因为他们从中国学到了造纸术。造纸术衍生出一门新行业——warraqīn,意为“处理纸张的人”,其实就是专门抄写文稿的人力复印机;他们是新兴出版业的基石。在全盛时期,每年的出版量达数万本,光是一个巴格达郊区就有百余家书店。除了《一千零一夜》这类古典文学之外,这些书店也贩卖各种想象得到的领域的教科书,满足这个当时全世界识字率最高、最好学的社会需求。

除了深广的世俗知识外,宗教学的发展也促进了密码分析学的发明。巴士拉(Basra)、库法(Kufa)和巴格达等城都建立了重要的神学学校,这里的神学家仔细审究《古兰经》所载穆罕默德的天启,想为这些天启编定年代顺序。他们所采用的方法是:计算各个单词在每一篇启示的出现频率。这个方法的理论是:有些单词是稍晚才出现的,如果某篇启示有很多这类的新单词,这篇启示的年代就应该较晚。这些神学家也研究《纪事》(Hadith),此书记载了先知穆罕默德的日常谈话。他们尝试证明每一句话都真的出自穆罕默德之口。因此,他们研究书中单词的语源以及句型结构,以检测某些段落文字是否跟穆罕默德的语言习惯一致。

对日后造成深远影响的是,这些宗教学者的审究并未停留在单词的阶段,他们还分析个别的字母,因而发现有些字母的出现次数比其他字母频繁。字母a和1在阿拉伯文的出现频率最高,一部分是因为定冠词al-(相当于英文的the)的缘故。相对地,j的出现频率则只有它们的1/10。这项看似无关紧要的观察结果,日后却造成了密码分析学的第一次大突破。

我们无法确知是谁先意识到字母出现频率的差异可以用来破解密码,就目前所知,这项技术的说明最早见于公元9世纪的科学家肯迪(al-Kindi,全名Abu Yusuf Ya‘qub ibn Is-haq ibn as-Sabbah ibn ‘omran ibn Ismail al-Kindi)的著作。被称为“阿拉伯哲人”的肯迪有290部著作,题材广及医学、天文学、数学、语言学与音乐。他最伟大的作品是《解译加密信息手稿》(A Manuscript on Deciphering Cryptographic Messages),收藏在伊斯坦布尔的苏来玛尼亚鄂图曼档案库(Sulaimaniyyah Ottoman Archive),直到1987年才被再度发现(第一页参见图6)。这部作品对统计学、阿拉伯语音学以及阿拉伯文句法构造的讨论非常详细。不过,肯迪革命性的密码分析系统则被浓缩在下列两段短文:图6:肯迪《解译加密信息手稿》的首页。这篇文稿包含目前所知最早的密码分析学频率分析法的说明。倘若我们知道加密信息所使用的语言,有一种破解它的方法是:找出一篇至少一页长的相同语言的明文文章,数算每个字母的出现次数。把最常出现的字母称为“一号”,次常出现的字母称为“二号”,再次常出现的则称为“三号”,以此类推,直到这篇明文样本的所有字母都如此整理完毕。接下来,就轮到我们要解译的密码文了,我们也将它的符号如此分类。找到最常出现的符号后,将它替换成明文样本的“一号”字母,次常出现的符号换成“二号”字母,再次常出现的符号依例换成“三号”字母,以此类推,直到密码文的所有符号都替换完毕为止。

肯迪的说明,以英文字母为例比较容易解释。首先,为了确立每个英文字母的出现频率,我们必须分析一长篇或甚至数篇普通的英文文章。英文字母出现频率最高的是e,接下来是t,然后是a……如表1所示。再来,检视我们要处理的密码文,也把每个字母的出现频率整理出来。假设密码文内出现频率最高的字母是j,那么它很可能就是e的替身;如果密码文内出现频率次高的字母是P,那它可能就是t的替身了,以此类推。肯迪的方法显示:只要分析一下密码文的符号出现频率,根本不需要逐一检查数十亿把钥匙,就有可能揭开加密信息的内容了。这个方法称为频率分析法(frequency analysis)。

不过,肯迪的秘方并不能无条件地应用于任何状况,因为如表1所示的频率标准表是平均值,不会跟所有文件的字母频率完全符合。譬如,像这样一则讨论大气对非洲四肢斑纹动物的影响的简短信息:“From Zanzibar to Zambia and Zaire, ozone zones make zebras run zany zigzags.”(臭氧层使得自桑给巴尔到赞比亚及扎伊尔的斑马都像傻瓜似的蛇行跑动),直接套用频率分析法可就无效了。一般而言,短文的分析结果很可能跟标准频率相去甚远,如果信息长度少于100个字母时,就会很难解译。相反地,较长的文句就较可能符合标准频率,尽管有时仍有例外。1969年,法国作家乔治·佩雷克(Georges Perec)写了一本200页的小说《消失》(La Disparition),竟没用到任何含字母e的词汇。更令人拍案叫绝的是,英国小说家及评论家吉尔伯特·亚戴尔(Gilbert Adair)成功地依循佩雷克避用字母e的原则把《消失》译成英文。而且这本名为《虚空》(A Void)的英译本,还是出人意料地通顺易读(请参阅附录A)。倘若这整本书以单套字母替代式密码法加密,解译者如果没料到全书根本不使用英文中出现频率最高的字母,而仍单纯地采用频率分析法,结果恐怕是徒劳无功。字母百分比字母百分比an8.26.7ob1.57.5c2.8P1.9qd4.30.1er12.76.0sf2.26.3g2.0t9.1uh6.12.8vi7.01.0jw0.22.4xk0.80.2yl4.02.0mz2.40.1

表1:这个相对频率表的统计依据是取自报纸和小说的章节,共计100,362个字母;由贝克(H.Beker)和派柏(F. Piper)编纂,最早见于《密码系统:保护通讯》(Cipher Systems: The Protection Of Communication) 。

介绍过密码分析的第一件工具后,接着举例说明如何使用频率分析法来解译密码文。我无意让整本书遍布密码分析的范例,可是对频率分析法我想破例。一方面是因为频率分析法并没有想象中那么难,另一方面它也是密码分析的首要工具。而且以下的例子可以让读者一窥密码分析家的工作方法。你会发现除了逻辑思考外,频率分析法也需要一些策略、直觉、弹性与猜测。分析密码文PCQ VMJYPD LBYK LYSO KBXBJXWXV BXV ZCJPO EYPD KBXBJYUXJ LBJOO KCPK. CP LBO LBCMKXPV XPV IYJKL PYDBL, QBOP KBO BXV OPVOV LBO LXRO Cl SX’XJMI, KBO JCKO XPV EYKKOV LBO DJCMPV ZOICJO BYS, KXUYPD: 'DJOXL EYPD, ICJ X LBCMKXPV XPV CPO PYDBLK Y BXNO ZOOP JOACMPLYPD LC UCM LBO IXZROK Cl FXKL XDOK XPV LBO RODOPVK Cl XPAYOPL EYPDK. SXU Y SXEO KC ZCRV XK LC AJXNO X IXNCMJ Cl UCMJ SXGOKLU? 'OFYRCDMO, LXROK IJCS LBO LBCMKXPV XPV CPO PYDBLK

假设我们拦截到这则加密信息,必须解译其内容。我们知道原始语言是英文,也知道它是用单套字母替代式密码法加密的,可是不知道钥匙为何。搜查所有可用钥匙是不可行的,因此必须应用频率分析法。以下是分析这段密码文的逐步说明。你有把握的话,也可略过这几段,尝试自己独立破解这段文字。

任何密码分析家看到这类密码文的头一个反应都是分析所有字母的出现频率,由此得出如表2的结果。正如我们所预期的,每个字母的出现频率各不相同。问题是,我们可以根据它们的频率来判别它们的真实身份吗?这段密码文相当短,我们不能将频率分析法拿来直接照套。倘若相信密码文里出现最多次的O即是最常用的英文字母e的替身,或是出现次数排第八的Y即是第八常用的英文字母h,那就未免太天真了。倘若不加思索地直接套用频率分析法,我们只会译出一堆叽哩咕噜的词,像第一个词PCQ就会被解译成aov。频率频率字母字母出现次数百分比出现次数百分比A30.9N30.9B257.4O3811.2C278.0P319.2D144.1Q20.6E51.5R61.8F20.6S72.1G10.3T00.0H00.0U61.8I113.3V185.3J185.3W10.3K267.7X3410.1L257.4Y195.6M113.3Z51.5

表2:加密信息的频率分析

我们先来分析那3个出现超过30次的字母,亦即O、X和P。我们大可假设这3个在此篇密码文最常用到的字母,可能就代表英文最常用的3个字母,只是顺序还有待商榷。换句话说,我们不能一口咬定O=e,X=t,P=a,但可做如下的假设:O=e,t或a、X=e,t或a、P=e,t或a。

我们需要一种更精细的频率分析法,才能有把握地继续下去,判别出这3个最常用的字母O、X、P的真实身份。我们可以把观察焦点转向它们跟其他字母相邻的频率。例如,字母O是否出现在许多字母之前或之后?还是它只出现在某些特定的字母旁边?这些问题的答案可以进一步告诉我们O所替代的字母是元音还是辅音。如果O所替代的字母是元音,跟它相邻(在它前面或后面)的字母应该会很多;如果它所替代的是辅音,有很多字母可能没有机会跟它相邻。例如,字母e几乎可以出现在任何其他字母的前面或后面,但字母t就不太可能出现在b、d、g、j、k、m、q或v的前面或后面。

下表列出这三个密码文里最常用到的字母,与每个字母相邻出现的频率。例如,O在A前面出现过一次,但从未在A后面出现,就在第一格记上1。O几乎是大多数字母的邻居,只有七个字母从未出现在它前后,所以在O这一排有七个O。字母X也一样爱交朋友,它也跟大多数的字母为邻,只有八个没见过面。字母P就比较孤僻,它只和少数几个字母打交道,另外十五个则完全不搭理。这些证据暗示O和X所替代的是元音字母,而P所替代的则是辅音字母。

接下来的问题是:O和X所替代的是哪些元音?应该是e和a这两个英语最常用的元音。但是,是O=e、X=a抑或O=a、X=e?这密码文有一个特征很有意思,那就是OO这个组合出现过两次,XX却从没出现过。在正常英文里,ee出现的频率远超过aa,所以,答案很可能是O=e、X=a。

至此,我们很有把握地判读出密码文里的两个字母了。X=a的结论还有一项佐证:在密码文里,X有单独出现的纪录,而英文只有两个单词是只有一个字母的,a即是其一。另一个在密码文里单独出现过的字母是Y,所以它非常可能就是另一个只有一个字母的单词:i。留意那些只有一个字母的单词,是标准的密码分析诀窍。附录B还列有其他密码分析诀窍。幸好这篇密码文还保留单词之间的空格,这个诀窍才派得上用场。在真实案例中,编码者通常会去掉所有空格,以增添敌人破解信息的困难度。

不论密码文是否被接成一长串不含空格的文字,接下来的这个诀窍仍可以派上用场。一旦判读出字母e,我们很容易可以找出字母h。英文的h常出现在e前面(像the、then、they等),跟在e后面的情形却很罕见。下表列出密码文里的O (我们相信它的真实身份是e)出现在其他字母前面或后面的频率。这个表格暗示B即是h的替身,因为它出现在O之前9次,却不曾出现在O之后。表格里的其他字母跟O的关系都没有这么不对称。

英文的每个字母都有自己的独特个性,包括它的出现频率以及它跟其他字母的关系。透过这些独特个性,即使它们已经过单套字母替代法的伪装,我们仍得以判读出字母的真实身份。

我们已经很有把握地确立四个字母的身份:O=e,X=a,Y=i,B=h,可以开始把密码文里的一些密码字母更换成正确的明文字母了。我将依照惯例,以大写表示密码字母,以小写表示明文字母。这可以帮助我们区别哪些字母还有待判读,哪些字母则是已经确定的。PCQ VMJiPD LhiK LiSe KhahJaWaV haV ZCJPe EiPD KhahJiUaJ LhJee KCPK. CP Lhe LhCMKaPV aPV liJKL PiDhL, QheP Khe haV ePVeV Lhe LaRe Cl Sa,aJMI, Khe JCKe aPV EiKKev Lhe DJCMPV ZelCJe hiS, KaUiPD: 'DJeaL EiPD, ICJ a LhCMKaPV aPV CPe PiDhLK i haNe ZeeP JeACMPLiPD LC UCM Lhe laZReK Cl FaKL aDeK aPV Lhe ReDePVK Cl aPAiePL EiPDK. SaU i SaEe KC ZCRV aK LC AJaNe a laNCMJ Cl UCMJ SaGeKLU? 'eFiRCDMe, LaReK IJCS Lhe LhCMKaPV aPV CPe PiDhLK

经过这个步骤,我们又可以辨认出几个字母,因为有一些密码文的单词可以轻易猜出。例如,三个字母组成的英文单词中,最常用的是the和and;这两个字在这里很容易认出来——Lhe出现六次,而aPV出现五次。所以,L大概就是t,P大概是n,而V则是d。现在,我们可以去把密码文上的这几个字母也替换回来:nCQ dMJinD thiK tiSe KhahJaWad had ZCJne EinD KhahJiUaJ thJee KCnK. Cn the thCMKand and liJKt niDht, Qhen Khe had ended the taRe Cl Sa’aJMI, Khe JCKe and EiKKed the DJCMnd ZelCJe hiS, KaUinD: 'DJeat EinD, ICJ a thCMKand and Cne niDhtK i haNe Zeen JeACMntinD tC UCM the laZReK Cl FaKt aDeK and the ReDendK Cl anAient EinDK. SaU i SaEe KC ZCRd aK tC AJaNe a laNCMJ Cl UCMJ SaGeKtU? 'eFiRCDMe, taReK IJCS the thCMKand and Cne niDhtK

一旦确立几个字母后,密码分析的工作就可以非常快速地进展下去了。例如,第二个句子的头一个词是Cn。每个词都有至少一个元音,所以C一定是元音字母。我们只剩两个元音还不知道:u和o。把u套上去,不合;所以C一定是o了。还有,Khe这个字暗示K可能是t或s。可是我们已经知道L=t,所以答案显然是K=s。我们且再把这几个字母套进密码文里去。瞧,文中出现一个词组thoMsand and one niDhts。根据常理推测,它应是thousand and one nights (—千零一夜),而且最后一行好像是要告诉我们这段文字是取材自Tales from the Thousand and One Nights。这表示:M=u,I=f,J=r,D=g,R=l,S=m。

我们可以继续推测文中的字句来辨识出其他字母,不过我们且停下来看看到目前为止所确立的明文字母和密码字母的关系。这两套字母集的关联性即是编码者运用替代法加密信息时所用的钥匙。当我们逐一辨认出密码字母的真实身份时,同时也正逐渐揭开这套密码字母集的全貌。我们到目前为止的成绩,可以列成如下的明文和密码字母对照表。

继续检视密码字母集的已知内容,就可以完成我们的密码分析工作了。在密码字母集里,VOIDBY这一排字母暗示,制作这则信息的编码者选了一个钥匙词组当作这只钥匙的基础。再稍加揣想,我们可以推论这个钥匙词组应该是“A VOID BY GEORGES PEREC”,去掉空格和重复的字母后就成了“AVOIDBYGERSPC”。剩下的字母依顺序,跳过已在钥匙词组里出现过的字母,排接上去,这套密码字母集就完成了。在这个例子中,这位编码者做了一个不太寻常的动作:钥匙词组不是从密码字母集的起点开始,而是从第三个字母开始。这很可能是因为钥匙词组是以A开头,而编码者又不想把a改写为A。现在,这套密码字母集建立好了,我们可以把密码文字完整地还原出来,这份密码分析的任务也就大功告成了。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载