二战那场旷世密码战争,比敦刻尔克大撤退还要精彩

来源: 千里 2020-03-13 13:45:29 [] [博客] [旧帖] [给我悄悄话] 本文已被阅读: 次 (24700 bytes)
二战那场旷世密码战争,比敦刻尔克大撤退还要精彩
 

  1940年5月25日,英法联军被德国机械化部队的钢铁洪流打得崩溃。

 

  40万大军被逼至法国北部狭小的敦刻尔克,一场史上最大规模的撤退行动即将上演。

 

  在正面战场,盟军被打得节节败退,可在战争的智力战场,盟军却取得了另一场大战的胜利。

 

 

 
 

敦刻尔克大撤退

 

  信息与情报从来都是战争中不可忽视的一环,让战争成为武力与智力的综合较量。

 

  而智力战场中最为耀眼的莫过于二战的那场旷世密码战。

 

  如今谈起密码,大多数会想到在各种网站和APP登录界面里必填的那串字符。

 

  但在大半个世纪前,密码几乎指的就是保证情报安全的加密手段,关乎战役的胜败。

 

  曾经德国人就沉醉于自己发明的一套牢不可破的加密方法,搞得对手们焦头烂额。

 

 

 
 

  这种加密方法被德国人称作“恩尼格玛”,意思为像谜一样。

 

  由于恩尼格玛的复杂,也由于德国人的过于自信,人类智力最残酷、最高级的较量才得以展开。

 

  波兰、法国、英国等国家的顶尖智慧群体,陆续被卷入了这场旷日持久的密码战。加密、破译,疯狂升级,天才、叛徒,粉墨登场,也包括那位最著名的天才图灵。

 

  然而,人们崇拜的图灵实际上只是这场密码战中贡献突出的一员罢了,真正的历史远比电影来得精彩。

 

 

 
 

  恩尼格玛最初由德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)于1918年发明。 *****

 

 

  按照他的设想,密码机主要出售给大型企业用于商业通讯,可不料市场反应非常冷淡。

 

  虽然在民用上没有市场,但恩尼格玛却引起了德国军方的兴趣。

 

 

 
 

恩尼格玛的设计手稿

 

  那时正值第一次世界大战后,英国政府公布了一战的官方报告。

 

  报告中谈到一战期间英国因破译了德军的无线电密码而取得了决定性的优势。

 

  这引起了德军的高度重视,他们随即对恩格玛进行了安全性和可靠性试验。

 

 

 
 

一战结束,德国接受停战协定

 

  恩尼格玛虽然看起来复杂,但其加密的原理本质上是一种替换加密(Substitution Cipher)。

 

  古时候,人们希望加密一段文字时,会将原文(即明文)字母按照某种配对关系替换成另一个字母。

 

 

 
 

  这种做法优点是非常方便,而且密码强度也很不错。

 

  理论上,如果破译者想用穷举法来进行暴力破解,那么他就要尝试26个字母一共4.03X10^26种可能的排列顺序。

 

  因此在很长一段时间内,这种简单的替换法也被认为是十分安全的。

 

 

 
 

  图/夏洛克·福尔摩斯中的跳舞小人密码就是一种替换加密

 

  然而,聪明的人们用语言学和统计学破解了这个难题。

 

  我们知道在使用字母文字的语言中,每个字母的使用概率是不一样的。

 

  例如一张英语报纸中“e”“t”的出现次数就要大于“j”“z”这些字母。

 

 

 
 

字母出现的概率

 

  即使通过替换,各字母在文章中出现的概率还是不变的。

 

  所以通过统计一段足够长的密文中各字母出现的概率,破译者就能猜出它们代表的真正字母了,这也是全文采用同一种替换加密方式的缺点。

 

 

 
 

  恩尼格玛之所以难以破译,是因为它基本实现了每替换加密一个字母,就更换一种加密方式。

 

  如此一来,每个字母的加密方式都不一样,在概率上就没有规律可循了。

 

  我们来看看恩尼格玛是怎么来实现这个过程的。

 

 

 
 

  一台恩尼格玛主要由转子、灯盘、键盘和插线板组成。

 

  键盘用来输入密码,对应的灯盘则会在输入后亮起,显示经过替换后的字母。

 

  而转子和插线板则是恩尼格玛提高加密性的关键部件。

 

 

 
 

  当我们在键盘输入字母S时,灯盘上会亮起加密后对应的字母。

 

  与此同时转子会向前转动1/26圈,机器的加密方式也因此改变。

 

  跟之前提到的字母一一对应的替换法不同,如果我们连续输入SSS的话,得出来的加密字母可能就会是YJG。

 

 

 
 

随键盘输入而转动的转子

 

  最巧妙的是,第一个转子转动一圈后会带动第二个转子转动一格。

 

  同理第二个转子转动到某个位置就会使第三个转子往前转动。

 

  而每次转子的转动,都会让恩尼格玛的加密方式产生变化,在26X26X26=17576个字母后才完成一次循环。

 

  因此恩尼格玛基本达到了每个字母都用上不同的加密方式的要求。

 

 

 
 

  严谨的德国人对加密效果还不满意,他们进一步将转子设计成可拆卸替换位置的形式。

 

  三个转子共有6种排列方式,此时加密方式已达到了10万种(17576X6=105456)可能性。

 

 

 
 

  而真正让破译工作变得让人望而生畏的是恩尼格玛的插线板设计。

 

  德国人为英格玛增加了额外的插线板,将英格玛的密码设置增加到159百亿亿种(实际上为158,962,555,217,826,360,000种)。

 

  若操作员用电线将插线板中的两个字母连接起来,这两个字母在加密时就会被互换。

 

  例如图中S和O被连在一起,那么操作员在键盘上输入S时,字母S就会被替换成O进入机器进行加密,然后得出加密结果。

 

 

 
 

  如此一来,即使机器落入敌军手中,只要不知道转子与插线板的具体排列,破译人员就要面对近乎无穷的可能性。

 

  在接下来的十年中,德国军队大约装备了三万台恩尼格玛,可见德国人对这台机器的信任。

 

 

 
 

德陆军名将古德里安在指挥车上,左下方为恩尼格玛

 

  自从1926年德军陆续开始装备恩尼格玛以来,周边各国对德情报的破译率就一直在下降。

 

  英国人和法国人对这种新出现的加密方式一筹莫展,但他们心里却不怎么着急。

 

  可能是出于自信,英法作为一战战胜国都认为德国不会形成很大的威胁,因此两国的密码学家也就懒惰了下来。

 

 

 
 

英国女兵在街头庆祝一战胜利

 

  与之对比,波兰的内心是惶恐不安的。

 

  在一战后波兰与德国就领土划分出现了不少矛盾,同时在波兰东边的苏联也是虎视眈眈。

 

  夹在两股力量中的波兰必须要掌握他们的情报,才能在潜在的威胁中占据主动。

 

 

 
 

  破译德军情报接连失败后,波兰人意识到单靠语言学家是无法成功的。

 

  于是他们在境内靠近德国的波兹南大学中招募了一批数学系学生,其中的马里安·雷耶夫斯基(Marian Rejewski)成为后来破译的关键人物。

 

 

 
 

著名的“波兰三杰”,左起为马里安·雷耶夫斯基、杰尔兹·罗佐基、亨里克·佐加尔斯基

 

  通过盟友法国的情报,马里安得知德国人在发报时,会先用当日的通用密码*将代表转子初始位置的三个字母连续加密两次作为电报开头。

 

  然后他们会将转子调整到对应的位置,并开始加密后续的正文。

 

  *注:德军每月都会向全军发放一个密码本,其中详细注明了每天密码机的参数设置情况。每个发报员可以在当日密码的基础上,按自己喜好设置密文的转子初始位置。

 

 

 
 

每月更换的密码本

 

  收报方获取电报后,同样使用当日的通用密码解密电报前六位字母。

 

  假如“BKFHIA”解密得到“ABCABC”,那么就可确认转子初始位置是“ABC”。

 

  于是操作员调整转子位置,然后继续解密后续的正文内容。

 

 

 
 

  但是这种格式有一个破绽,第一个字母与第四个字母虽然采用了不同的加密方式,但都对应了同一个明文字母。

 

  同理第二与第五、第三与第六个字母也是如此。

 

  马里安敏锐地抓住了这一点,并开展了研究。

 

  

 
 

  通过数学上的严谨推理,他找到了密文与通用密码的联系,且巧妙地消除了插线板对加密结果的影响,使加密方式降至10万种可能性。

 

  这意味着如果使用100台仿制的恩尼格玛进行暴力破解,每10秒钟完成一次检查的话,就能在三个小时内完成暴力破解。

 

  1938 年他们发明了“炸弹”机(bombes)完全破解了当时那个版本的英格玛。

 

  炸弹上面装有许多机电转鼓,转起来震耳欲聋,不断复制着英格玛可能的密码设置。

 

  马里安的研究使得波兰一度掌握了德国无线电通讯的绝大部分内容。

 

 

 
 

暴力破译密码的“炸弹”

 

  然而欧洲日益紧张的局势没有让波兰当局高兴太久。

 

  1939年3月,希特勒占领了波西米亚和摩拉维亚的余下地区,下一步入侵波兰的意图不言自明。

 

  情况危急之下,波兰人决定把有关恩尼格玛的研究成果转交给英法两国,并且成功说服了他们聘用数学家参与破译而非语言学家。

 

  不久后,希特勒对波兰宣战,第二次世界大战爆发。

 

 

 
 

德国采用闪击战,仅27天就占领波兰全境

 

  与此同时,德军又追加了很多措施来提高恩尼格玛的安全性。

 

  他们不仅更换了前六个字母的加密方式,还将转子数量增至5个。

 

  而新的插线板甚至支持交换10对字母,波兰人钻研出来的破译方法也因此失去了效果。

 

 

 
 

插线板上密密麻麻的电线

 

  马里安利用了德军加密操作上的漏洞来破译情报,因此一旦德国人改进操作,破译方法就会彻底失效。

 

  而获得了波兰研究成果的英国人则希望实现一种更加直接的暴力破解。

 

  他们在布莱切利园(Bletchley Park)中召集了一群数学家与密码学家,其中就包括了著名的艾伦·图灵*(Alan Mathison Turing)。

 

  *注:英国计算机科学家、数学家、密码学家,被视为计算机科学与人工智能之父。他同时也是一名男同性恋者,并因其性倾向遭到当时的英国政府迫害,职业生涯尽毁。

 

 

 
 

艾伦·图灵

 

  图灵与他的研究小组首先将目光投向了德国人每天早上发出的电报。

 

  原来德国人喜欢在早晨6点左右发送一条天气预报,因此早上6点钟截获的电报中肯定包含德语wetter(天气)这个词。

 

  另外循规蹈矩的德国人在电报中也喜欢用固定的词组,最常见的就如Heil Hitler(希特勒万岁)。

 

  因此破译人员每天可以方便地从电报密文中猜测出个别对应的明文词组。

 

 

 
 

  根据猜测出来的词组,图灵也摸索出了密码与转子的对应关系。

 

  这种方法同样避开了插线板的干扰,将转子可能的组合总数降到100万种。

 

  于是图灵着手改进了波兰人破解密码的机器,并且保留了它响亮的名号——Bombe(炸弹)。

 

 

 
 

Bombe内部结构

 

  Bombe包含许多三个一组的转盘,每一个转盘都相当于恩尼格玛中的一个转子。

 

  每组转盘就相当于一台恩尼格玛,它们被用来模拟加密的过程。

 

   *****

 

 

  操作员将之前猜测出来的词组作为线索输入Bombe后,机器就会自行进行暴力破解。

 

  当机器得到了可能的解后,它就会停下来给操作员记录结果,人们再根据结果筛选出符合德语拼写的唯一解。

 

 

 
 

机器上三个一组的转盘

 

  图灵为机器引进了大量的电子零件与更有效的算法,使Bombe的运转速度超出了当时人们的认识。

 

  为了进一步提高效率,图灵还利用统计原理,帮助机器移除了大量不必要的搜寻空间。

 

  一般情况下,Bombe可以在大约11分钟里找出正确的解。

 

  当这些机器全速运作时,布莱切利园中就会响起像很多织布机同时工作一样的声音。

 

 

 
 

布莱切利园内的工作情景

 

  在二战期间,共有约200台Bombe加入工作。

 

  这些机器每天能够破译3000多条德军密电,使英国军方能够提前知晓希特勒的行动计划。

 

  可以说Bombe对尽早结束战争起到了不可取代的作用。

 

 

 
 

  德国人设计制造的恩尼格玛,可称得上是当时世界最先进的通讯加密系统。

 

  基于对其安全性的信赖,上至德军统帅部,下至海陆空三军都将恩尼格玛作为密码机广泛使用。

 

  盲目的自信最终会招致惨痛的失败。

 

 

 
 

出于安全考虑战后大批Bombe被销毁,如今仅存仿制品

 

  在信息产业高度发达的今天,加密方式早已推陈出新变得更加牢不可破。

 

  可信息安全问题却仍层出不穷,并不是因为没有完美的密码,而是没有不犯错误的人。

 

  以恩尼格玛为代表的密码战也不过是战争的另一种形式,究其本质依旧是人与人的对弈。

 

  只是刨去了真实战场的血腥与残酷,密码战这场策略游戏被人为地蒙上了神秘感。

请您先登陆,再发跟帖!

发现Adblock插件

如要继续浏览
请支持本站 请务必在本站关闭Adblock

关闭Adblock后 请点击

请参考如何关闭Adblock

安装Adblock plus用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”