悲情女王玛丽与古典置换密码(二)

2016-12-14 14:57花卷
科学Fans 2016年11期
关键词:尔德玛丽字母

花卷

前情提要

上期我们讲到,苏格兰玛丽女王自带霉运光环,在三次不幸的婚姻之后,她被废除了王位,流亡到英格兰投奔女王伊丽莎白一世,然而却因此被卷入了一场巨大的阴谋……

谍影重重

自从玛丽女王被软禁在英格兰之后,外面的天主教势力就没消停过,因为他们认为只有玛丽才配当正统的英格兰女王,而伊丽莎白的出生本身就是个错误。伊丽莎白察觉到这些风声之后,派了她的首席秘书兼特务头子弗朗西斯·沃辛汉爵士去好好盯着玛丽,千万别让她整出什么幺蛾子。尽管所谓的软禁还是好吃好喝的,生活也算悠闲自在,至少比监狱里的犯人好太多了,不过玛丽并没有人身自由,不能离开查特利城堡半步,更别说跟什么人见面了。你说玛丽就甘心这样被软禁一辈子吗?当然不会,而且她也知道天主教势力,特别是法国教会的人很愿意把她救出去,但是玛丽自己不表个态,这些人也没办法行动呀。那么现在问题来了,怎样才能跟这些人取得联系呢?

玛丽尝试给苏格兰写信,给法国写信,可是这些信就像石头扔进大海一样,寄出去就回不来了——恐怕玛丽自己也明白,伊丽莎白现在对她看得这么紧,怎么能让她的书信自由进出呢?就在玛丽觉得一筹莫展的时候,天上忽然掉了一块馅饼下来。1586年,有个叫吉尔伯特·吉福尔德(Gilbert Gifford)的人主动跟玛丽秘密接触,他自称是天主教徒,法国“海龟”,而且还是玛丽的“粉丝”,更重要的是,他说他有办法帮玛丽把信送出去,还能帮玛丽把外面的信带进来。

这个人什么来头,居然如此神通广大?难道玛丽倒霉了半辈子,如今终于遇到贵人,要转运啦?吉福尔德到底什么身份我们先卖个关子,反正他确实给玛丽想了个办法,打通了给查特利城堡送啤酒的商人的关系,把写给玛丽的信全都塞到啤酒桶里混进去,回收空桶的时候再顺便把玛丽写给外面的信送出来。吉福尔德先跑了趟法国驻英国大使馆,从里面把从法国寄给玛丽的信全拿出来了。为啥法国大使馆里面会有那么多信呢?因为大使馆觉得这些信即便送出去也会被伊丽莎白的人拦下来,铁定到不了玛丽手里啊,万一里面有啥不该看的呢?干脆先放在大使馆里保管着吧。吉福尔德拿到这些信之后,就用啤酒桶的这招把信送进去了,玛丽一看,哗,真不枉我在法国待了这么多年,还真的有人惦记着我,而且吉福尔德这个年轻人确实有两把刷子,有他帮忙,我何愁脱不了身呢?

从此,吉福尔德就成了玛丽的御用信使,帮助玛丽跟各方势力取得联络,大家听说现在有办法跟玛丽女王通信了,也都开始摩拳擦掌准备干一票大的。这里面就有那么一伙人,以安东尼·巴宾顿(Anthony Babington)为首,他们的脑洞尤其大,想出来了一个惊天大计划,当然,救玛丽出来也是其中一环。至于这个计划到底是什么内容,我们还是先卖个关子,总之,有了吉福尔德的帮助,玛丽跟这伙人顺利接上头了。不过,就算有啤酒桶传书的妙法,这毕竟跟古希腊蜡板什么的其实是一路货,都是把信息藏起来嘛,可是万一被发现了怎么办呢?时间过了1000多年,总得有点进步吧,实际上,玛丽和这伙人之间的书信,那可都是经过加密的。

并不神秘的古典密码

玛丽用的到底是怎样一种密码呢?她用的是一种比较典型的单表置换密码——等等,啥叫单表置换密码啊?为了搞清楚这个问题,我们还是先来恶补一下古典密码的进化史吧。

首先来思考一个问题:一段信息,怎样处理一下才能让外人看不懂,还得能让收件人看懂呢?我们的老祖宗思考这个问题很久啦,最直接的一种方法就是把信息中的每个字替换成另外的字,这个替换是有规律的,掌握这个规律的人就能够把信息还原出来,而不知道这个规律的人就还原不出来,这就是所谓的“置换密码”。

传说古罗马帝国的恺撒大帝就用过一种最原始的置换密码,这种密码是把每一个字母都按照字母表做相同的平移。举个“栗子”,如果平移3个字母,那么A就变成D,B就变成E,以此类推,到字母表尾部再转回来,X变成A,Y变成B,Z变成E。如果我有一段信息,就假设是I LOVE YOU吧,那么平移之后就变成了L ORYH BRX,怎么样,看不懂了吧?当然,如果我知道这个平移的秘密,只要反向平移3个字母,信息就可以还原啦。

不过,恺撒的这种密码有点太弱鸡了,你想想看,假设字母表有26个字母,那么平移字母表就只有26种移法(其中移0个字母相当于不变,不过我们暂且算作一种移法),如果我是敌人,我只要从头到尾试一遍,花不了几分钟就能全试过来了吧!这不是跟纸糊的一样嘛……

既然恺撒密码这么不靠谱,那么我们就改进一下吧。平移字母表的移法太有限了,那如果我把字母置换的顺序打乱呢?比如A→R,B→F,C→B……不过既然这种置换完全没规律,那么就必须得写一张完整的置换表,对照着这张表才能加密和解密信息,像这种根据“一张表”来进行“置换”的密码,就叫“单表置换密码”啦。

那么我们思考一下,单表置换密码有多少种换法呢?第一个字母A有26种换法(换成自己也算),第二个字母B要去掉A的换法(比如A换成R,那么B就不能换成R了),所以B有25种换法,以此类推,C有24种换法,D有23种……那么,26个字母的单表置换密码总共有26×25×24×……×1=26!(即26的阶乘)种。这个数字有多大呢?差不多是4后面26个零那么大,总之非常非常非常大就是了。这么多种换法,总归不可能一个一个试了吧?哼哼。

阿拉伯黑科技

既然单表置换这么厉害,是不是就没办法破译了呢?你太天真了。1987年,考古学家挖出了一本公元9世纪的阿拉伯手稿,翻开一看,哗,里面讲的全是破译密码的黑科技,原来单表置换密码什么的1000年前就能破译给你看啦。

那么阿拉伯人的黑科技到底是什么鬼呢?其实没什么高深的东西,无非是一种古老的魔法——统计学。我们假设原始的信息是用英语写的,如果我们对好多好多好多的英语文章进行一下统计,看看每个字母各自出现了多少次,我们就可以得到这么一张表(看下图)。

这张表我们粗略一看就能发现,E是出现频率最高的,而E、T、A、O、I则占据了Top 5。单表置换密码只是把每个字母找另外一个字母替代了一下,但它并没有改变字母的出现频率,比如说,假设E被置换成了P,那么所有的E现在都是P了,如果我把密文里的字母也都数一下,发现里面P是最多的,那我就有理由相信,P很可能就代表原来的E。

当然,信息的内容不同,某些字母出现的频率还是会有波动的,但频率最高的这几个字母基本上是雷打不动的吧。通过这个规律,破译者就能掌握一些线索,然后再通过类似填字游戏的方式顺藤摸瓜,把所有字母的置换方式都找出来,而且越到后面找起来越容易(因为剩下的可能性越少)。这种破译技术叫做“频率分析”,之前提到的那本阿拉伯手稿,里面写的黑科技其实就是这个啦。

频率分析也算是一套“专业技术”,就跟开锁技术一样,说白了,老鸟和菜鸟的差距是很大的。所以频率分析的出现,也意味着出现了很多从事“破译”工作的“专家”,密码学也从此变成了一门专业的学问。听起来是不是很酷?

单表密码的进化

加密和破译,这两股势力在人类历史上一直持续着明争暗斗。阿拉伯人早在9世纪就掌握了频率分析技术,这一技术不久就传到了欧洲,于是欧洲也出现了一批破译专家,这让普通的单表置换密码变得不堪一击,那么有没有办法对单表置换密码进行一些改进,让它变得更强,更难破译呢?

办法当然有,而且还不止一种。要破译单表密码,主要依赖的技术就是频率分析,而频率分析得以成立的前提是,单表密码在加密过程中没有改变字母的出现频率——有了,如果我在加密的过程中改变一下字母的频率,频率分析不就不管用了吗?

怎样才能改变字母的频率呢?我们可以用多个数字或符号(统称“编码”)来替代同一个字母。比如说,字母E的出现频率最高,那么我就规定3、5、7这三个编码都代表字母E,写信的人在加密过程中,当遇到字母E时轮换使用这三个不同的编码来替代。这样一来,原本一个字母的频率被平均拆成了三份,破译的人就不可能通过密文中频率最高的编码来锁定字母E了。此外,我们还可以根据已经统计出来的字母频率表,给高频字母分配较多的编码,给低频字母分配较少的编码(常见的做法是给元音字母分配三个编码,辅音字母分配两个编码)。这样一来,密文中所有编码的频率就会被“平均化”,就像平静的湖面一样波澜不惊,破译者要找出其中的规律可就难了。

还有一些办法能够改变字母的频率。英文单词中有很多双拼字母,也就是一个字母重复出现两次,比如tree、bottle这些。我们可以规定一个特殊的编码,比如99,这个编码意味着把前一个字母重复一遍,我们称为dowbleth。这样一来,所有的双拼字母就从原来的出现两次变成了只出现一次,从结果上看是把每个字母的频率“摘出来”一些挪到了99上面去,做频率分析的时候就会产生一定的偏差。

除了改变字母本身的频率之外,我们还可以为破译制造“噪音”。比如说,我们可以规定,15、25、35这三个编码不代表任何字母,这样的编码称为“空码”。写信的人在加密的时候可以随机往密文里插入这些空码,收信的人在解密时遇到空码直接跳过去就好了,没有任何影响,但破译者可不知道哪些是空码,做频率分析的时候只能把这些噪音一并算进去,真是宝宝心里苦啊。

有了上面这些还不算完,我们写信的时候有一些词是经常用到的,比如人名、国名、你我他她它、上下左右前后,还有像the、of、with之类的词,我们可以给这些常用词都搞个编码,比如55代表英国,66代表法国;也可以对单词中的一些常用字母组合单独编码,比如ea、tion这样的。这样一来除了可以缩短密文的长度之外,也可以给频率分析带来困难,因为同样的编码既可能代表一个字母,也可以代表一个单词,或者是某几个字母的组合。

像这种结合了字母编码和常用单词编码的“密码表”,在英语中叫做nomenclator。这个词好像没有什么合适的中文翻译,字典里给的翻译叫“词汇表”,总之在这里指的就是这种用来加密和解密的编码置换表啦,玛丽女王和巴宾顿通信所使用的也正是一种nomenclator。

(单表密码进化到如此复杂的程度,是不是就真的无懈可击了呢?玛丽女王用的密码到底长什么样?她和巴宾顿到底说了些什么?最后又会迎来怎样的结局呢?我们下期继续讲。)

猜你喜欢
尔德玛丽字母
缓存:从字母B到字母Z
COMPLEX INTERPOLATION OF NONCOMMUTATIVE HARDY SPACES ASSOCIATED WITH SEMIFINITE VON NEUMANN ALGEBRAS∗
和我一起玩
字母派对
罗尔德·达尔的《吹梦巨人》
玛丽的怪兽美容店
我绝对绝对不吃番茄
传递信任的钥匙
也用泥土造人的玛丽