玛丽女王的密码

发布日期:2017-04-25来源:中国密码学会
【字体: 打印

1586年8月15日,星期六的早晨,玛丽女王被带到福斯灵海城堡的法庭上,那里已坐满了人。虽然几年的监狱生活加上风湿病的困扰已使她身心憔悴,但她仍保持着一份威严和镇定,显出不容置疑的皇家风范。在随身医师的陪同下,她沿着又长又窄的议室,经过法官、官员和观众席,来到正中的王位前。玛丽试图把王位想象成以一种尊敬的姿态对着她,但她却错了。这个空着的王位就象征着她的敌人而且是检举人——伊丽莎白女王。玛丽轻轻地走过王位,走向屋子的另一边——被告席:一个深红色的绒毛椅子。

苏格兰玛丽女王正因叛国罪被接受审判。她被指控密谋刺杀伊丽莎白女王并取而代之成为英国新女王。伊丽莎白的首席大臣弗朗西丝•沃尔辛厄姆已经逮捕了其他同谋者,逼供并处决了他们。现在,他正设法证明玛丽是这次计划的核心人物,因而同样有罪,同样该受死刑。

沃尔辛厄姆知道在他能够处决玛丽之前,他必需使伊丽莎白女王信服玛丽确实有罪。虽然伊丽莎白鄙视玛丽,但她也有众多原因不愿看到玛丽被处以极刑。首先,玛丽是苏格兰的女王,许多人怀疑英国法庭是否有权处决一个国外政权的首领?其次,处决了玛丽或许就形成一个使其不安的先例。如果本国政权有权杀死一个女王,那么叛军就会没有什么保留地杀死另一个女王,这可能就是伊丽莎白。再说,伊丽莎白和玛丽本是表亲,她们的血缘关系更加使得伊丽莎白难以定她死罪。一句话,只有沃尔辛厄姆能够彻底地证明玛丽曾是刺杀计划中的一份子,伊丽莎白才能认同玛丽的死刑。

同谋者是一群年轻的贵族天主教徒,他们志在废黜新教徒伊丽莎白,而让同样是天主教徒的玛丽取代她。其实在法庭上已很明显地表露出玛丽是这些同谋者的幕后主使人,但玛丽是否真正批准过这个谋划却无从得知。事实上,玛丽确实签署过这个计划。摆在沃尔辛厄姆面前的一个挑战就是证明玛丽和其策划者之间这种触手可及的联系。在她被审判的这天早上,玛丽身穿色调悲哀的黑色丝绒衣,独自一人坐在被告席上。对于叛国罪,被告人不允许有辩护律师,也不允许传唤证人。而对玛丽,甚至不允许其部下帮助她一同准备该案件。然而她的处境也不是毫无希望,因为她曾经也留有一手,就是确保每次和同谋者之间的通信都是用密码写成。密码把她的话变成似乎没有意义的一系列符号。玛丽相信即使沃尔辛厄姆拿到这些信,他也只能对信中字母的意思感到毫无头绪。如果信中的内容成一个谜,那么这些信就不能作为对其不利的证据。然而,所有这些都建立在一个假设之上,就是这些密码不能被破解。

不幸的是,沃尔辛厄姆不仅仅是位首席大臣,他还是英国的间谍首脑。他已经截获了玛丽给策划者写的信。他也非常清楚谁能够解开这些密码。汤姆斯•菲利普斯是该国一流的密码破译专家。几年来,他一直在破解那些密谋推翻伊丽莎白女王的贵族之间传递的信息,从而为指控他们提供所需的证据。如果他能解开玛丽和共谋者之间的信,那么她的死刑将是不可避免的。而另一方面,如果玛丽的密码足够安全而掩盖了她的秘密,那么她或许还有一线生机。一条密码即决定着生死存亡,这在历史上已不是第一次。

最早对密文做出一些说明的人可追溯到希罗多德,罗马著名的政治家和哲学家西塞罗称他为“历史之父”,希罗多德以编年史的形式记载了公元前五世纪希腊和波斯之间的冲突,并认为这些冲突是自由和奴役之间的对抗,是保卫独立的希腊国和压迫统治他们的波斯人之间的对抗。根据希罗多德的记载,正是由一种叫密文的技术才使希腊免遭被波斯暴君也是王中之王薛西斯一世征服的厄运。

薛西斯开始选择在波斯波利斯上建一座城堡作为其王国的新首都,不久以后,希腊和波斯之间长期的矛盾达到了顶点。当时,波斯帝国上下及其众多邻国都送来了贡品和礼物,但雅典和斯巴达却不去进贡。于是薛西斯决定要报复希腊对他的傲慢,开始调动了一支军队,声称“我们要把波斯的领土扩大到天界,那么在我们自己的领土上空就永远会悬挂着太阳”。他花了五年的时间秘密组成了一支有史以来最强大的军队,到了公元前480年,他已经做好了准备,发动一场出其不意的进攻。

然而,波斯的军备建设都被一个名叫德马拉图斯的希腊人看在眼里。这位希腊人曾经被他的祖国驱逐出境,现在住在波斯的苏萨。但尽管已被流放,他仍然对希腊保持着一份忠诚,因此他决定给斯巴达带去消息以告诫他们薛西斯的侵犯企图。可问题是怎样才能够送出信息而不被波斯士兵截住?希罗多德写道:因为被发现后危险会很大,因而只有一种方法他能尝试送出这条信息:就是利用已上蜡的一副可折叠的刻写板,先将蜡刮去,再将薛西斯的阴谋刻写在木板的背面,然后再涂上蜡盖住消息。这样刻写板看上去没写任何字,一路上就不会被士兵怀疑。当这条信息到达目的地后,没有人能够猜出其中的秘密,就我所知,是克莱奥梅尼的女儿戈尔戈,也就是齐奥达斯的妻子,占卦并告诉其他人如果他们把蜡刮去,他们就会发现在木板的背面写有东西。有人这么做了,于是这条信息被揭开,而后传到其他希腊人手中。

由于得到了警告,一直没有防备的希腊人开始武装自己。以前国家银矿的收入通常被民众分享了,现在转给了海军用来建造了二百艘战船。

薛西斯已经失去了战争的一个关键因素――趁人不备。公元前480年9月23日,当波斯舰队向雅典附近的萨拉米斯海湾开进时,希腊人已经恭候多时了。虽然薛西斯相信他已经包围了希腊海军,但是希腊人正是有意地诱使波斯船队进人海湾。希腊人知道他们的舰船又小又少,在开放海域很易被摧毁。但在海湾领域内,他们却可以运用策略打败波斯。随着风向的改变,波斯人发现他们正被风吹进海湾,钻进了希腊人的陷阱。领军出战的波斯公主三面被围,意图退回到海域。却仅有她自己冲了出来。接着,波斯军大乱,更多的船只撞在一起,希腊人发起了全面猛攻。仅一天,强大的波斯军队被挫败了。

德马拉图斯的这种秘密通讯的策略就在于简单地将信息隐藏起来。希罗多德也讲了另一个例子,在这个例子里信息的隐藏程度足以保证其安全传送。他以年事记的形式讲述了希斯塔亚乌斯的故事:希斯塔亚乌斯想鼓励米勒图斯的阿里斯塔哥拉斯反叛波斯国王,为了秘密地传达他的指示,希斯塔亚乌斯剃光了他的一个信使的头发,将信息写在其头皮上,再等信使的头发重新长起来,很明显这段历史时期发生的还不是什么紧急事件。这个信使显然不用携带任何异物,能够自由穿行,不会有麻烦。一旦到达目的地,他就剃光头发,指给联络人看。

通过把信息隐藏起来的这种秘密通信称为Staganography(隐文术),由希腊词Steganos(意为“覆盖”)和Graphein(意为“写”)派生而来。从希罗多德以后2000多年,各种形式的隐文术被使用。例如,中国古代将信息写在小块丝绸上,塞进一个小球里,再用蜡给封上,然后让信使吞下这个蜡球。16世纪,意大利科学家乔瓦尼•波塔描述了如何将信息埋藏在一个煮熟的鸡蛋里:他把少许明矾和一点醋混在一起制成一种墨水,再用这种墨水将信息写在鸡蛋壳表面。墨水溶液就会经蛋壳上的微孔渗透进去,在已凝固的鸡蛋白表面留下印迹,这样只能剥去蛋壳后才能读取。隐文术也包括用隐形墨水来写信息,早在公元一世纪普林尼就解释了体液如何用作隐形墨水。用这种液体写的字干后即变得透明,但轻轻地加热就能把液体烤焦,从而字迹就以棕色显现出来。许多有机流体都有这样的性质,因为它们富含碳因而很易被烤焦。事实上,即使是现代间谍也很少知道在标准配备的隐形墨水用完之后还可以用自己的尿来临时代替。

隐文术的长久使用表明它确实起到了一定保密作用,但它也有一个根本的弱点。如果信使被搜查,信息被发现,那么秘密通信的内容也立即暴露无遗。一旦信息被截获,所有的安全性也就随之荡然无存。一个严格的士兵会例行地搜查每一个过境人,包括刮一刮所有上蜡的刻写板,给所有空白纸张加加热,剥开煮熟的鸡蛋,剃光人们的头等等。难免会有发现隐藏信息的时刻。

因此,在隐文术发展的同时,还有另一种方法也在演化,那就是Cryprography(密码术),从希腊词Kryptos(意为隐藏)派生而来。密码术的目的不是隐藏信息本身,而是要隐藏它的意思,也就是一种加密的过程。为了使信息无法被外人理解,将信息按照事先在发送者和接收者之间规定好的某种特别规则打乱。那么接收者可以将打乱的信息恢复原样,信息就可以被理解。密码术的优势在于即使敌人截住了一条加密的信息,也无法读懂它。不知道扰乱的规则,敌方将很难(也并非不可能)重现密文的原始含义。

虽然隐文术和密码术是各自独立的,但完全可以将一条信息既混乱又隐藏以取得一个最安全的效果。例如,二战期间流行的微粒照片是一种隐文术。德军在拉丁美洲的间谍将一页文件缩小在直径不到1毫米的微型照片上,看上去就是一个点,再将这个点状照片贴在看似无关紧要的一封信中的某个句号上面。这种微型照片在1941年第一次被美国联邦调查局发现,紧接着美军就有所警觉,查看信中有无微弱的光点,它可能就是光滑的胶片反射出来的光。从那以后,美军能读懂大多数被截住的微型照片的内容,除非德军间谍有所防范,在缩小之前,将照片中的信息混乱。这样,密码术融进了隐文术中,美军即使有时截获住了通信,但却无法获得关于德间谍活动的任何新的信息。在秘密通讯的上述两种分支中,密码术是更加有效的,因为它能防止确切的信息落到敌军手中。

同样,密码术也被分为两种,即易位和替换。在易位中,组成信息的字母被简单地重排,形成互相颠倒的一组字母序列(我们暂称之为易位句)。对于特别短的信息,例如一个单词,这种方法相对不可靠,因为只有有限的几种方法来重组这几个字母。以三个字母COW为例,仅有六种结果:COW,OCW,CWO,OWC,WCO,WOC。然而,随着字母逐渐增多,重组的可能结果也急剧膨胀,从而不可能再复原到原来的信息,除非知道具体混乱的规则。例如有下面一条信息:Forexample,considerthisshortsentence(例如考虑这个短句子)。其中只含有35个字母,然而却有5x1031种不同的排列组合结果。如果一人每秒能检查一条,世界上所有的人日夜工作的话,那么宇宙泯灭轮回1000次,才能查完所有这些结果。

即使是很短的信息,敌方拦截要复原出其原意也是不切实际的,因而,字母的随机排列似乎提供了一种很高的安全性。但也有个缺点。易位虽然有效地形成一个极其难的易位句,但是,如果字母既不是按照某种韵律也不是按照其他什么逻辑而是随机地被混乱,那么复原一个易位句对于一个联络好的接收人或对于一个敌方拦截员一样是不可能的。为了使易位行之有效,字母的排列需要遵循一种直接的规律,当然这种规律事先只有发送信息的人和接收人共同知道,并对敌方是保密的。例如,在学校里,学生有时用一种叫“栅栏”的易位方法来传递信息,信息中的字母被交替地写成上下两行,再将下面一行文字附加在上面一行的后面,从而形成一段加密后的信息。

图 2

例如:图2:当把皮带从发送人的密码器(木棍)上解下来后,皮带上只显现一些无规则的混乱字母:S、T、S、F……只有当它被绕在另一根直径和发送者所使用木棍一般大的木棍上时,信息才能复原。

接收者只需简单地将上述过程反过来即得到信息。已有许多程序化的易位方法,包括三线栅栏密码,它是先将信息写成三行字母而不是两行,也可以选择再交换每一对字母,使第一和第二字母交换位置,第三和第四交换位置,依次类推。

另一种易位形式第一次被做成了军用密码装置,那是斯巴达的一种装置,早在公元前五世纪就出现了。这种外观是一根棱形木棍,外面缠绕着一条皮革或羊皮纸(图2)。发送人先沿着木棍纵向在条带上写上信息,然后再解开条带,那么从皮带上就看到一些无意义的字母,信息已被混乱了,信使就可以带着这条皮带,如果再来点隐文术的手段,他可以将其伪装成腰带系在身上,而信息却写在反面。复原信息时,接收者只需简单地把条皮带绕在一根木棍上,其直径应和发送者使用的一般大。公元前404年,斯巴达的莱桑德接见了一位满身血污、憔悴不堪的信使,他从波斯来,本来是五个人,现在只有他在艰难的旅途中存活下来。这位信使把他的皮带递给莱桑德,莱桑德将皮带绕在密码装置上,得知波斯法拿巴兹正计划进攻斯巴达。正是因为这个密码装置,莱桑德才有所准备,并进行了有力还击。

与易位并列的密码术是替换。关于替换加密的最早描述出现在《爱经》中,这是由婆罗门学者写于公元四世纪的一篇文章,但根据手迹来看,可追溯到公元前四世纪。《爱经》建议女人应学会64种技术,如做饭、穿衣、按摩和制备香水,还包括一些如咒术、象棋、装订和木工之类的不太常见的技术。第45种是密文术。其中介绍的一种方法就是先随机地将字母两两配对,然后将原始信息中的每一个字母用它的配对者来代替。以罗马字母为例,我们可以进行如下配对:

那么,对于句子:meetatmidnight(晚上见),发送者将写成:CUUZVZGGXSGIBZ。这种形式的密文叫做替换密码,因为原文中的每一个字母都被换成一个不同字母,所以可以作为易位的一种辅助方法。在易位中字母不变,位置改变;替换中字母改变,位置不变。

将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢记》。恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。关于这次奇妙的传送,恺撒是这样写的:

恺撒频繁地使用密文,对此瓦莱利厄斯•普罗布斯做过详细地描述,但不幸失传了。然而有幸的是苏托尼厄斯在公元二世纪写下《恺撒传》,书中对恺撒用过的其中一种替换密码作了详细的描写。恺撒只是简单地将信息中的每一个字母用字母表中的该字母后第三个字母代替。密码学家通常将用来书写原始信息的有关字母称为明码字母表,这里简称明码表;而把用来替换明码字母的有关字母称为密码字母表,这里简称密码表。当把明码表放在密码表的上面时(图3),很明显密码字母表和明码字母表相比后移了3个位置。因而这种形式的替换通常叫做恺撒移位密码,或简单说,恺撒密码。这里我们可以给密码下一个定义:一个密码是指任何形式的一种隐秘的替換,其中每个字母都被另一个字母或符号代替。

尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从1到25个位置的移位我们都可以使用,从而对每个字母我们都能构建25种不同的密码字母来代替它。实际上,如果我们对移位不加限制,即允许密码字母表是明码字母表的任一种重排,那么我们能得到更大数目的密码字母表。有超过4x1027种这样的重组,因而存在有同样数目的密码字母表。

每个不同的密码都代表着一种加密方法,包括算法和密钥两元素,这两个元素描述了每种加密的精确细节。在上述例子中,将信息中每个明码字母用密码字母来代替就代表一种算法,而密码字母表可以是明码字母表的任一种重排。密钥则明确了某特定加密过程中所用的密码字母表。关于算法与密钥的关系见图4。

一个敌人在研究一段被截获的信息时,或许能猜到其所用的算法,却无法得知其所用的特定密钥。例如,他们可能深深地怀疑原始文件中的每一个字母都根据某种密码表被另一个不同的字母代替,但他们不可能知道哪个密码表被使用了。假如密码表,即密钥,只是发送者和接收者之间严守的一个秘密,那么敌人就不能对截住的信息进行解密。和算法相对立,密钥的重要性是密码术中永久的一项原则。对此,1883年,荷兰语言学家奥古斯特在其所著《密码学》一书中作了权威性的陈述:一个密码系统的安全性不在于对加密算法的保密,而在于对密钥的保密。

除了对密钥保密外,一个安全的密码系统也必需有一个大范围的可供选择的密钥。例如,如果发送者用恺撒转移密码来加密一段信息,那么这种加密相对就较弱,因为只有25种可能的密钥。从敌人来说,如果他们截住了这些信息并怀疑其使用的是恺撒移位算法,那么他们只需简单地检查这25种可能性即可破解。然而,如果发送者使用更为综合的替换算法,也就是允许密码表是明码表的任一种随意排列,那么就有4x1027种可能的密钥供选择。图5是其中可能的一种。对于敌人,如果信息被截获了,算法也知道了,那么检查所有可能的密钥将是一件可怕的任务。如果有一个敌方间谍每秒能检验这4x1027种可能密钥中的一条,检查完所有这些密钥并破解了信息将花费宇宙轮回10亿次所经历的时间。

这种密码很实用,因为它在很容易实施的同时提供了很高的安全性。发送者很容易定义一个密钥,只需说明一下重排后得到的密码表中二十六个字母的顺序,就有效地防止敌人通过所谓蛮力筛选的方法检验所有可能的密钥,密钥的简单性是重要的,因为密钥是发送者和接收者所共知的,密钥越简单,误解的机会就越小。

事实上,如果发送者可以接受密钥数目稍微减少,密钥甚至可以更简单。发送者可以不通过随机地重排明码字母表来得到密码表,而是选择一个关键词或关键词组。例如,用JULIUSCAESAR作为一个关键词组,先将其中的空格和重复字母去掉(JULISCAER),然后将其作为密码表的前部分密码字母,至于后部分,先将明码字母表中在关键词组中出现过的字母去掉,再按顺序接在其后。因而,所得密码表就是:

用这种方法建立一个密码表的优点在于关键词或关键词组容易被记住,因而密码表也一样。这一点很重要,因为如果发送者将密码表写在一张纸上,敌人可能会截获这张纸,从而发现密钥并能读取用该密钥加密的通信。但是,如果密钥仅存留在记忆中,就不太可能落入敌方手中。显然用关键词组产生的密码表数目比那种明码表随机排列产生的数目少得多,但也很大,对敌人也是不可能通过测试所有可能关键词来复原截获的信息。

替换密码的简单有效使其在公元前一千年里在密文技术领域占尽了优势。密码编码者已经建成了一个系统能够保证安全的通讯,因此如果没有必要,就不必进一步发展,也就无需更深入研究。因而任务就落在了密码破解者的身上,他们要不断地尝试破解替换密码。究竟有没有方法能使敌方拦截者复原一段被加密的信息呢?许多古代学者认为替换密码是无法破解的,庞大数目的可能密钥的存在,使得几个世纪来都被认为是可靠的。但是,密码破解者最终发现了一种捷径来穷搜所有可能的密钥。不用花费数亿年的时间来破解一个密码,通过捷径复原一条信息也就是几分钟的事情。这项突破首先发生在东方,是一次语言学、统计学和宗教信仰之间的卓越的联合。(摘编自《密码故事-人类智力的另类较量》[西蒙.辛格著])

责任编辑:
相关稿件