《模仿游戏》中的密码魅影

文/剑白

本文原发布于《科学大众》杂志,具体是哪一期,我也记不太清了,权贴上来。

导言:

也许大家在国产电视剧《暗算》里,曾经见识过密码学的魅力。电文自电报机的哒哒声中出来,是有如天书般难懂的神秘文字,而谍报人员用一本薄薄的对照册将其解码,几分钟后,重要的情报便呈现在他们的眼前,根据这些情报,就能运筹帷幄,料敌机先。


《模仿游戏》中的密码魅影_第1张图片

实际上,密码学由来已久。远在古希腊时期,就有萌芽出现;近代以后,更是衍生出很多分支学科——它促进了计算机科学和网络安全方面的进步。这次我们谈到的《模仿游戏》的主人公,鼎鼎大名的艾伦·图灵,就是这行的佼佼者。影片中,描写了他领导小组破译了二战时期德军最复杂的密码机——恩尼格玛密码机——的过程,这一贡献令二战提前结束了2年。


《模仿游戏》中的密码魅影_第2张图片


为什么密码机能够起到这么重要的作用?这次破解对图灵有何启发?让我们来一同进入者神秘莫测的密码世界吧。

密码学渊源小考

人们为什么会想到要加密?被称为“数学密码学之父”的克劳德·香农在他的一篇论文中道出了两点宗旨:“秘密性”和“真实性”。这并不难理解,假设有A和B两个人,他们打算沟通,但又不想让第三个人知道,而信息在传递过程中又必须和第三个人接触,问题来了,要怎么做?这直到最基本的密码学原理产生之后,才得到解决。


《模仿游戏》中的密码魅影_第3张图片
就秘密性而言,也许会让人想起柯南里的某神秘组织?

在公元前600年左右就已经有人意识到这个问题,并且尝试解决。具体何人已经不可考,但我们可以设想,一个希伯来商人,从一个不识字的匠人那里获取了一份给陶器上釉的配方,经过测试发现,这种配方比市面上的更先进,成本更加低廉。他很想立刻开工,但他人在外地,如果简单的托人带回去,谁能保证不会泄露呢?

他左思右想,想到了第一个主意:写一首隐晦的诗歌,工艺的精髓就隐藏在其中,而且不是他最亲近的人根本没机会猜出来。无疑,这确实能保证这配方不被泄露,但问题也随之而来,陶器上釉工艺是个精细活儿,他能保证对方完整领会个中的意思吗?如果不能,就算安全的传回去了,又有什么意义呢?

苦恼中,他发现了一张羊皮纸。羊皮纸有何特殊呢?上面记载了某次执政官说的一段发言,正巧,他在家里也有一张羊皮纸,同样记载了这次他十分认同的发言。他有了一个主意,讲配方上用到的词同发言中用到的词一一对应,替换。然后托那个捎信的人一张上面写了杂乱无章的话的羊皮纸,顺便让他跟他的妻子说,“找出那张我日夜朗诵的羊皮纸,和这些胡言乱语对应,秘密就藏在那里面。”

这位希伯来商人利用的就是替换式密码,准确的说,是简易替换式密码。这种替换式密码的精神,一直到二战,还是最基本的加密方法,被广泛的英语于民间和军队。而现代密码学的发展则要仰赖在本小节之处提到的那个人,克劳德·香农,他就职于贝尔实验室期间发表了一篇名为“通讯学的数学理论”的成果论文,自此现代密码学的发展,方才打开。

艾伦·图灵与他的“上帝的羔羊

第二次世界大战前,德国的数学家们就一直处于欧洲的领先地位,他们发明了一种加密方式,让海军依靠收音机就能够接受指令。波兰的数学家们多年来一直在努力解码,截获这些信息并不难,难的是你该如何从数千条加密讯息中读出意思?

比如每天都有这样一条消息:

“六点天气播报,白天天气晴朗。晚上有降雨。希特勒万岁!“


《模仿游戏》中的密码魅影_第4张图片
德军:每天都要向伟大元首致敬!

没人会天真的相信这就是一天的天气预报。但是你拿它又有什么办法?上文说的那个希伯来商人的故事里,简易的替换式密码被数学家们早就发明了解决办法。他们发现,虽然拿不到对应密码本,但26个英文字母本身的出现是有频率的,通过统计每个字母左右两边出现的元音辅音字母的频率,可以推测还原出原本的语句。可德国人不同,他们利用一种叫做恩尼格玛密码机的机器加密。

按说这个模型并不新鲜,早就商用,市面上随处可见。不过德国人聪明就聪明在,战争中仅仅是多加了一个插线板,一下就增加了无数的可能性。口令被人轮班掌握,一日数易,几乎没有破解的可能。尤其令人沮丧的是,每当波兰人破解出上一次加密的规律,德国人早就动过插线板,换了一种加密规律。和德国人高频度更换口令的方式相比,波兰人永远也跑不赢时间。


《模仿游戏》中的密码魅影_第5张图片
德国人的密码机

图灵和许多数学家、语言学家被派往布莱切利庄园。在那里,不像电影中说的,他人缘不好,还被上级部门质疑成果。真实的图灵因为他的天才和平易近人颇受那些数学家的拥戴,而且得到了英国政府的大力支持。

最后图灵和他的同事们经过长久的努力,设计出一种破译机,昵称叫做“上帝的羔羊”。这种机器以波兰人的破译机为蓝本,进行了大幅度的改良,先排除若干自相矛盾的解读方式,余下的再穷举,一下就快了很多。不仅如此,几台机器相连,抵消了插线板所增加的可能性。渐渐的,就像影片中一样,他们足以在几分钟内就拼凑出一份信息,最终,让这场波及全世界的大战提前结束了。按照某些人的推断,这个数字是2年。

这中间还有个小插曲。因为检索全部的信息量太过巨大,就像影片中所描述的那样,他们需要找到一个能缩小范围的方法。结果是德军的公文形式给了他们灵感,他们的公文太过于正式,总有那么几个词会反复出现,比如“天气”和“希特勒万岁”。提取了这几个词,速度一下快了起来。

密码学前瞻——穷尽一生你也拿我没辙

密码编码学发展到现代以后,随着计算机的发展,不得不高速发展。图灵造的那个大家伙只能算是现代电子计算机的雏形,根据约翰·冯·诺依曼提出原理设计的第一台电子计算机埃尼阿克可以每秒进行5000次加法或400次乘法,而如今英特尔公司发布的民用级别处理芯片都能达到每秒495亿次运算,更不必说我们所熟知的天河二号,或是正在研发中的下一代计算机——量子计算机了。原有的加密方式在现代科技面前似乎不堪一击。

可是密码编码学也有它的新发展。对称加密算法的佼佼者AES算法是下一代的加密算法标准。按照这种算法,假设计算机每秒尝试255个密码的话,要尝试1490000亿年才能得出结论!也许你要问,现在计算机算的那么快,怎么可能每秒才尝试255次?那是因为破译AES并不是简简单单的尝试一个数字,而是解一系列的方程,而这要花费大量的计算资源。

现代算法可谓是充分贯穿了一个精神——只要我设计的足够复杂,不必真的让你解不开,只要拖住你足够多的时间就好了。毕竟任何信息都有时效性,过了时效就毫无价值。

纵观密码学的历史,由人工,到机器,再到如今运算速度越来越快的电子计算机。人们的需求同时推动了技术的进步,而技术又反哺人类以更新更强的力量。潜伏在曲折历史中的“魅影“绝不止密码学一家,有机会再与诸位分说。(完)

你可能感兴趣的:(《模仿游戏》中的密码魅影)