WindowsC/C++加密解密实战
上QQ阅读APP看书,第一时间看更新

1.1 玛丽女王的密码

密码学是一门神秘而古老的学科,古今中外,刀光剑影,经常能看到密码学的影子。1586年10月15日上午,玛丽女王走进佛斯林费堡挤满人的法庭。由于多年囚禁与风湿病的折磨,她憔悴不堪,但她依旧高贵冷静地展现着帝王风范,在医生的协助下,缓缓走近位于这狭长审判室中间的御座。玛丽以为这御座表示她赢得了应有的敬意。她错了。这御座代表缺席的伊丽莎白女王—玛丽的仇敌与起诉人。玛丽被和缓地带离御座,走到审判室另一边的被告席上,那把猩红色丝绒椅才是她的座位。

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

如图1-1所示,上方人物是伊丽莎白一世,下方头像是玛丽女王。

图1-1

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

审判日当天,玛丽独坐在被告席上。被控叛逆罪的嫌犯不得请辩护律师,也不准传唤证人。不过,玛丽还未身陷绝境—当初她很谨慎地用密码与叛匪通信,她用密码系统把信息转换成一串无意义的符号。玛丽相信,就算沃尔辛厄姆搜出这些信件,也读不出什么名堂来。这些信件的内容既然无解,也就不能成为呈堂证据。

不幸的是,沃尔辛厄姆不仅拦截到玛丽送给叛匪的信件,还知道谁能破解这些密码。托马斯·菲利普是英格兰破解密码的第一高手。他若能破解玛丽授意叛匪谋逆的信息,她就难逃一死了。

1542年11月24日,亨利八世于索维莫斯一役击溃苏格兰大军。亨利八世征服苏格兰、夺取詹姆斯五世王位的野心,眼看就要实现了。经过这场战役,深受打击的苏格兰国王身心完全崩溃,退居在福克兰的宫殿里。就连两周之后,女儿玛丽的诞生,也无法使这位病怏怏的国王振作起来。他似乎就等着继承人诞生,确定责任已了,即可平静地离开人世。玛丽诞生一个星期后,年仅30岁的詹姆斯五世随即驾崩。1543年9月9日,9个月大的玛丽在斯特灵城堡的礼拜堂接受加冕。正因玛丽女王太过年幼,英格兰反而暂缓侵犯苏格兰。亨利八世顾虑,若于此刻出兵进犯一个新王只是女婴的国家,会被讥为没有骑士风度。因此,英格兰国王改用怀柔政策,想安排玛丽与他的儿子爱德华成亲,借此将苏格兰纳入都铎王室的统治之下。

可是,苏格兰拒绝了亨利八世的提议。他们宁愿让玛丽和法国皇太子弗朗西斯缔结婚约。1548年8月7日,6岁的玛丽前往法国。16岁时,玛丽与弗朗西斯完婚,并在1559年成为法国王后。至此事事顺遂,玛丽似乎可以意气风发地返回苏格兰了。没想到,一向孱弱的弗朗西斯病倒了。他在儿时感染的耳疾忽然恶化,发炎的部位扩散到脑部,引发脓疮。1560年,登基未满一年的弗朗西斯撒手人寰,玛丽成为寡妇。

从此,玛丽陷入一场又一场的悲剧。1561年,她回到苏格兰。在接下来的两场失败婚姻中,玛丽女王被卷进衰败的旋涡。1567年,苏格兰的新教贵族对他们的天主教女王不再抱任何希望,于是囚禁玛丽,强迫她让位给14个月大的儿子詹姆斯六世。1568年,玛丽逃出囚房,向南朝英格兰走去,寄望于她的表姑伊丽莎白一世能提供庇护。

玛丽做了一个可怕的错误判断。伊丽莎白提供给她的不过是另一座监牢。玛丽遭受囚禁的原因是她对伊丽莎白构成了威胁。玛丽的祖母玛格丽特·都铎是亨利八世的姐姐,所以她有权继承英格兰王位,只不过亨利八世仅存的子嗣伊丽莎白的顺位排在她之前。但是英格兰的天主教徒认为,英格兰的国君应该是信奉天主教的玛丽。

1586年1月6日,被囚禁了18年的玛丽惊愕地收到一批信。

这些信来自玛丽的支持者,是吉尔伯特·基弗偷运进来的。基弗是天主教徒,1577年离开英格兰,在罗马接受神学教育。他于1585年回到英格兰,急于为玛丽效劳。他来到位于伦敦的法国大使馆,那里积放了一大批寄给玛丽的书信。基弗宣称他有办法把这些信件偷运进囚禁玛丽的查特里宅邸,而他也真的办到了。这只是一个开始。基弗开始担任秘密信差,送信给玛丽,并带出她的回信。他用皮革把信裹起来,再把包裹藏在封塞啤酒桶的空心木塞里。酿酒商把酒送进查特里宅邸,玛丽的仆人打开木塞,取出藏在里面的信交给玛丽。将信息带出查特里宅邸也是用同样的方法。

此时,一项营救玛丽女王的计划正在伦敦的一个酒馆里酝酿着。该计划的中心人物是天主教贵族青年安东尼·贝平顿。这些谋逆分子一致认为,这项后来被称为“贝平顿阴谋”的计划需要玛丽的首肯才能进行下去。问题是,他们找不到与她通信的途径。1586年7月6日,基弗来到贝平顿的门前。他送来一封玛丽的信,说她在巴黎的支持者提到贝平顿,她很期待贝平顿的来信。贝平顿随即写了一封长信,描述计划的轮廓。

一如既往,基弗把这封信放进啤酒桶的木塞里,蒙混过看守玛丽的人。贝平顿还采取了额外的措施,把信转换成密码—万一密函被玛丽的看守人拦截,他也无法解读内容。他所用的密码如图1-2所示。他用了23个符号来代替英文字母(不包括j、v、w),另有36个符号来代替单词或词组。此外,还有4个虚元(不代表任何字母,像空格一样不具备任何意义的符号),以及一个重复符号,这个重复符号表示下一个符号代表两个相同的字母。

图1-2

虽然基弗是一个小伙子,比贝平顿还年轻,这件传递信息的差事却做得从容自在、游刃有余。可是,每趟来回查特里宅邸的途中,他都会多拐一个弯。表面上他是玛丽的特务,事实上他是双面间谍。且回到1585年,基弗在回到英格兰之前,写了一封信给沃尔辛厄姆爵士,向他毛遂自荐。基弗意识到,他的天主教背景是打进反伊丽莎白女王密谋核心的最佳面具。

得到贝平顿与玛丽的往来密函后,沃尔辛厄姆的第一目标就是解译它们的内容。全然了解密码学价值的他,曾在伦敦设立了一所密码学校,并聘任托马斯·菲利普当他的密码秘书。菲利普是语言学家,通晓法语、意大利语、西班牙语、德语,更重要的是,他是欧洲优秀的密码分析家之一。寄给或出自玛丽之手的信函,都被菲利普一一掌握。他是频率分析法大师,破解密码是迟早的事。

所谓频率分析法,以英文为例,首先,我们必须分析一长篇甚至数篇普通的英文文章,以确立每个英文字母的出现频率。据统计,英文字母中出现频率最高的是e,接下来是t,然后是a……然后,检视我们要处理的密码文,并把每个字母的出现频率整理出来。假设密码文内出现频率最高的字母是O,那么它很可能就是e的替身;如果密码文内出现频率次高的字母是X,那它可能就是t的替身;如果密码文内出现频率第三高的字母是P,那它可能就是a的替身。

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

一旦破译出几个字母后,密码分析的工作就可以快速地开展下去了。

玛丽在7月17日函复贝平顿时,实质上等于签下了自己的死刑判决书。她于信中提到这个“计划”,尤其希望他们在刺杀伊丽莎白时,能先派人救出她。这封信在交给贝平顿之前,依例拐了个弯,来到菲利普手上。他很快就破译出这封信的内容。读毕,菲利普在信上标了一个绞刑架的符号。

8月11日,玛丽女王和她的侍从被特许在查特里宅邸的属地骑马。当玛丽来到一片荒野上时,瞥见一群人骑着马过来。她的第一个念头是,必定是贝平顿的人来救她了。但她很快就明白,这些人是来带她去接受审判的。玛丽女王如图1-3所示。

图1-3

审判在10月15日开庭,现场有两位首席法官、4位陪审人员、法务大臣、财政大臣以及沃尔辛厄姆爵士等。菲利普坐在旁听席,静静看着他们呈示他从加密信函中掘出的证据。

审判延续到次日。审判结束时,玛丽把命运交给法官。10天后,星室法庭在威斯敏斯特聚会,认定玛丽“图谋、设想各种能致使英格兰女王死亡、毁灭的事件”,因此判决有罪。他们建议处以死刑。伊丽莎白一世签署了死刑判决书。

从这个历史真事可以看出,密码学非常重要,关乎生死。至于在战争年代,密码学就更加重要了。情报永远要在密码的保护下发送出去。