1. 二战密码机问题
恩尼格码机
1918年,德国发明家亚瑟·谢尔比乌斯Arthur Scherbius)和他的朋友理乍得·里特(Richard Ritter)创办了谢尔比乌斯和里特公司。这是一家专营把新技术转化为应用方面的企业,很象现在的高新技术公司,利润不小,可是风险也很大。谢尔比乌斯负责研究和开发方面,紧追当时的新潮流。他曾在汉诺威和慕尼黑研究过电气应用,他的一个想法就是要用二十世纪的电气技术来取代那种过时的铅笔加纸的加密方法。
谢尔比乌斯发明的加密电子机械名叫ENIGMA,在以后的年代里,它将被证明是有史以来最为可靠的加密系统之一,而对这种可靠性的盲目乐观,又使它的使用者遭到了灭顶之灾。这是后话,暂且不提。
ENIGMA看起来是一个装满了复杂而精致的元件的盒子。不过要是我们把它打开来,就可以看到它可以被分解成相当简单的几部分。
下面的图是它的最基本部分的示意图,我们可以看见它的三个部分:键盘、转子和显示器。在上面ENIGMA的照片上,我们看见水平面板的下面部分就是键盘,一共有26个键,键盘排列接近我们现在使用的计算机键盘。为了使消息尽量地短和更难以破译,空格和标点符号都被省略。在示意图中我们只画了六个键。实物照片中,键盘上方就是显示器,它由标示了同样字母的26个小灯组成,当键盘上的某个键被按下时,和此字母被加密后的密文相对应的小灯就在显示器上亮起来。同样地,在示意图上我们只画了六个小灯。在显示器的上方是三个转子,它们的主要部分隐藏在面板之下,在示意图中我们暂时只画了一个转子。
键盘、转子和显示器由电线相连,转子本身也集成了6条线路(在实物中是26条),把键盘的信号对应到显示器不同的小灯上去。在示意图中我们可以看到,如果按下a键,那么灯B就会亮,这意味着a被加密成了B。同样地我们看到,b被加密成了A,c被加密成了D,d被加密成了F,e被加密成了E,f被加密成了C。于是如果我们在键盘上依次键入cafe(咖啡),显示器上就会依次显示DBCE。这是最简单的加密方法之一,把每一个字母都按一一对应的方法替换为另一个字母,这样的加密方式叫做“简单替换密码”。
一名业余爱好者借助互联网的力量最终破解了自二战以来一直遗留至今的恩尼格码密文。
虽然德国武装力量和外交部的无线电通讯自1941年起就被盟军逐渐掌握,但到1942年德国突然更换了新式恩尼格码密码机,这给盟军造成了很大困扰,使得盟军的反潜力量无法追踪到德军潜艇,被击沉的货船总吨位一度超过造船总吨位虽然驻在布莱奇利庄园的盟国密码专家后来成功破译了新式恩尼格码密码,但有若干密文始终未获破解。现在,一名德国业余爱好者用上千台个人计算机通过互联网组成了网格计算集群,解决了其中一条。 Stefan Krah是一名德国出生的小提琴手,他的业余爱好是钻研密码和开源软件。1995年的《密码月刊》杂志曾公开发表了三条密文,这激起他莫大的兴趣,但他深知自己并非专业人员,孤军奋战显然是不现实的,于是就编写了一个破解程序,把它发到新闻组的帖子里,看看是否能吸引志同道合之士来助他一臂之力。
很快,他的周围就聚集了45名有相同兴趣的业余爱好者,他们愿意把自己的计算机贡献出来作破解之用,Krah利用这些个人计算机的计算能力组成了一个以互联网为依托的网格计算集群,用它来破解已尘封半世纪之久的密文,Krah把这个项目命名为“M4”,那正是加密这些电文的恩尼格码密码机型号。
很快,按Krah自己的话来说就是:“参与M4项目的计算机台数呈指数性增长”,共有约2500台计算机参与了这个项目,而他所要做的就是在新闻组和邮件列表里振臂高呼一声。
终于,在过了一个月零几天之后,其中一条密文被破译了。未破解前的密文如下:
“NCZW VUSX PNYM INHZ XMQX SFWX WLKJ AHSH NMCO CCAK UQPM KCSM HKSE INJU SBLK IOSX CKUB HMLL XCSJ USRR DVKO HULX WCCB GVLI YXEO AHXR HKKF VDRE WEZL XOBA FGYU JQUK GRTV UKAM EURB VEKS UHHV OYHA BCJW MAKL FKLM YFVN RIZR VVRT KOFD ANJM OLBG FFLE OPRG TFLV RHOW OPBE KVWM UQFM PWPA RMFH AGKX IIBG”
破解后的明文如下:
“遭深水炸弹攻击后紧急下潜,与敌接触的最后方位为:0830h AJ 9863;(方向)220度,(速度)8节;(我)正在尾随(敌人);(压力读数)14兆巴;(风向)北-北-偏东;(兵力)4;能见度10”
与战时记录相比对可知这是由德国海军U264艇的Hartwig Looks上尉(总击沉吨位14000吨)在1942年11月25日发来的电文。
Stefan Krah表示自己的破解程序结合了暴力破解和逻辑演算两种途径,能更好地模拟恩尼格码密码机转子和接线板的排列组合。
布莱奇利庄园早已完成它的历史使命,那些未破解的密文最后留给了像Stefan Krah这样的业余爱好者,当年在《密码月刊》上发表这些密文的Ralph Erskine在得知这个消息后说:“做到了当年布莱奇利庄园一直无法做到的事,我想他们应该为此感到特别骄傲。”
2. 二战期间,德国研制的enigma机的工作原理是什么
恩尼格玛密码机(德语:Enigma,又译哑谜机、或谜)在密码学史中是一种用于加密与解密文件的密码机。确切地说,恩尼格玛是一系列相似的转子机械的统称,它包括了一系列不同的型号。恩尼格玛在1920年代早期开始被用于商业,也被一些国家的军队与政府采用过,在这些国家中,最着名的是第二次世界大战时的纳粹德国。恩尼格玛密码机的大部分设置都会在一段时间(一般为一天)以后被更换。
保密原理:
键盘一共有26个键,键盘排列和广为使用的计算机键盘基本一样,只不过为了使通讯尽量地短和难以破译,空格、数字和标点符号都被取消,而只有字母键。键盘上方就是显示器,这可不是意义上的屏幕显示器,只不过是标示了同样字母的26个小灯泡,当键盘上的某个键被按下时,和这个字母被加密后的密文字母所对应的小灯泡就亮了起来,就是这样一种近乎原始的“显示”。在显示器的上方是三个直径6厘米的转子,它们的主要部分隐藏在面板下,转子才是“恩尼格玛”密码机最核心关键的部分。如果转子的作用仅仅是把一个字母换成另一个字母,那就是密码学中所说的“简单替换密码”,而在公元九世纪,阿拉伯的密码破译专家就已经能够娴熟地运用统计字母出现频率的方法来破译简单替换密码,
柯南·道尔在他着名的福尔摩斯探案《跳舞的小人》里就非常详细地叙述了福尔摩斯使用频率统计法破译跳舞人形密码(也就是简单替换密码)的过程。——之所以叫“转子”,因为它会转!这就是关键!当按下键盘上的一个字母键,相应加密后的字母在显示器上通过灯泡闪亮来显示,而转子就自动地转动一个字母的位置。举例来说,当第一次键入A,灯泡B亮,转子转动一格,各字母所对应的密码就改变了。第二次再键入A时,它所对应的字母就可能变成了C;同样地,第三次键入A时,又可能是灯泡D亮了。——这就是“恩尼格玛”难以被破译的关键所在,这不是一种简单替换密码。同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,又可以代表明文中的不同字母,字母频率分析法在这里丝毫无用武之地了。这种加密方式在密码学上被称为“复式替换密码”。
但是如果连续键入26个字母,转子就会整整转一圈,回到原始的方向上,这时编码就和最初重复了。而在加密过程中,重复的现象就很是最大的破绽,因为这可以使破译密码的人从中发现规律。于是“恩尼格玛”又增加了一个转子,当第一个转子转动整整一圈以后,它上面有一个齿轮拨动第二个转子,使得它的方向转动一个字母的位置。假设第一个转子已经整整转了一圈,按A键时显示器上D灯泡亮;当放开A键时第一个转子上的齿轮也带动第二个转子同时转动一格,于是第二次键入A时,加密的字母可能为E;再次放开键A时,就只有第一个转子转动了,于是第三次键入A时,与之相对应的就是字母就可能是F了。
因此只有在26x26=676个字母后才会重复原来的编码。而事实上“恩尼格玛”有三个转子(二战后期德国海军使用的“恩尼格玛”甚至有四个转子!),那么重复的概率就达到26x26x26=17576个字母之后。在此基础上谢尔比乌斯十分巧妙地在三个转子的一端加上了一个反射器,把键盘和显示器中的相同字母用电线连在一起。反射器和转子一样,把某一个字母连在另一个字母上,但是它并不转动。乍一看这么一个固定的反射器好像没什么用处,它并不增加可以使用的编码数目,但是把它和解码联系起来就会看出这种设计的别具匠心了。当一个键被按下时,信号不是直接从键盘传到显示器,而是首先通过三个转子连成的一条线路,然后经过反射器再回到三个转子,通过另一条线路再到达显示器上,比如说上图中A键被按下时,亮的是D灯泡。如果这时按的不是A键而是D键,那么信号恰好按照上面A键被按下时的相反方向通行,最后到达A灯泡。换句话说,在这种设计下,反射器虽然没有象转子那样增加不重复的方向,但是它可以使解码过程完全重现编码过程。
使用“恩尼格玛”通讯时,发信人首先要调节三个转子的方向(而这个转子的初始方向就是密匙,是收发双方必须预先约定好的),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去。收信方收到电文后,只要也使用一台“恩尼格玛”,按照原来的约定,把转子的方向调整到和发信方相同的初始方向上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。加密和解密的过程完全一样,这就是反射器的作用,同时反射器的一个副作用就是一个字母永远也不会被加密成它自己,因为反射器中一个字母总是被连接到另一个不同的字母。
“恩尼格玛”加密的关键就在于转子的初始方向。当然如果敌人收到了完整的密文,还是可以通过不断试验转动转子方向来找到这个密匙,特别是如果破译者同时使用许多台机器同时进行这项工作,那么所需要的时间就会大大缩短。对付这样“暴力破译法”(即一个一个尝试所有可能性的方法),可以通过增加转子的数量来对付,因为只要每增加一个转子,就能使试验的数量乘上26倍!不过由于增加转子就会增加机器的体积和成本,而密码机又是需要能够便于携带的,而不是一个带有几十个甚至上百个转子的庞然大物。那么方法也很简单,“恩尼格玛”密码机的三个转子是可以拆卸下来并互相交换位置,这样一来初始方向的可能性一下就增加了六倍。假设三个转子的编号为1、2、3,那么它们可以被放成123-132-213-231-312-321这六种不同位置,当然收发密文的双方除了要约定转子自身的初始方向,还要约好这六种排列中的一种。
而除了转子方向和排列位置,“恩尼格玛”还有一道保障安全的关卡,在键盘和第一个转子之间有块连接板。通过这块连接板可以用一根连线把某个字母和另一个字母连接起来,这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。这种连线最多可以有六根(后期的“恩尼格玛”甚至达到十根连线),这样就可以使6对字母的信号两两互换,其他没有插上连线的字母则保持不变。——当然连接板上的连线状况也是收发双方预先约定好的。
就这样转子的初始方向、转子之间的相互位置以及连接板的连线状况就组成了“恩尼格玛”三道牢不可破的保密防线,其中连接板是一个简单替换密码系统,而不停转动的转子,虽然数量不多,但却是点睛之笔,使整个系统变成了复式替换系统。连接板虽然只是简单替换却能使可能性数目大大增加,在转子的复式作用下进一步加强了保密性。让我们来算一算经过这样处理,要想通过“暴力破解法”还原明文,需要试验多少种可能性:
三个转子不同的方向组成了26x26x26=17576种可能性;
三个转子间不同的相对位置为6种可能性;
连接板上两两交换6对字母的可能性则是异常庞大,有100,391,791,500种;
于是一共有17576x6x100,391,791,500,其结果大约为10,000,000,000,000,000!即一亿亿种可能性!这样庞大的可能性,换言之,即便能动员大量的人力物力,要想靠“暴力破解法”来逐一试验可能性,那几乎是不可能的。而收发双方,则只要按照约定的转子方向、位置和连接板连线状况,就可以非常轻松简单地进行通讯了。这就是“恩尼格玛”密码机的保密原理
3. 二战期间德国密码机领先全球,为什么仍然被破译
因为英国人制造出来了代号为炸弹的机器。
在布雷奇利庄园(Brechley Manor),除了世界着名的解密者诺克斯(Knox)外,还有一个数学向导图灵(Turing)。战后,他从剑桥大学毕业,依靠加密机器的研究成果,他成为电子计算机时代的先驱之一。首先,他们从开发可以模仿或解释德国国防军的每一种愚蠢方式的机器开始,以便他们可以介绍德国主要总部的所有编码程序,这些程序在白天和晚上发出命令时经常更改。经过艰苦的研究,英国人最终制造了一种具有上述功能的机器,并将其命名为炸弹。1939年底,炸弹破译了德国法规,而英国则欣喜若狂。从那时起,德国的秘密计划和行动计划就一直从布雷奇利庄园(Brechley Manor)一直传递到MI6的孟齐斯上校,然后直接交付给丘吉尔的办公桌。
4. 恩尼格玛密码机的弱点
在一次大战其间,英国的情报机关非常严密地监控了德国方面的通讯,丘吉尔的书和英国海军部的报告中透露的消息只不过是一鳞半爪。事实上,将美国引入一次大战的齐末曼(Arthur Zimmermann,1916年起任德国外交部长)电报就是由着名的英国40局破译的。在此电报中德国密谋墨西哥对美国发动攻击,这使得美国最终决定对德宣战。但是英国人的障眼法用得如此之好,使得德国人一直以为是墨西哥方面泄漏了秘密。
战后英国仍旧保持着对德国通讯的监听,并保持着很高的破译率。但是从1926年开始,他们开始收到一些不知所云的信息——ENIGMA开始投入使用。德国方面使用的ENIGMA越多,40局破解不了的电文就越多。美国人和法国人碰到的情况也一样,他们对ENIGMA一筹莫展。德国从此拥有了世界上最为可靠的通讯保密系统。
一次大战的战胜国很快就放弃了破译这种新型密码的努力。也许是出于自信,在他们看来,在凡尔赛条约约束下的德国已经造成不了什么危害。由于看不到破译德国密码的必要性,盟国的密码分析专家懒散下来,干这一行的头脑似乎也变得越来越平庸。在科学的其他领域,我们说失败乃成功之母;而在密码分析领域,我们则应该说恐惧乃成功之母。普法战争造就了法国一代优秀的密码分析专家,而一次大战中英国能够破译德国的通讯密码,对失败的极大恐惧产生的动力无疑起了巨大的作用。
历史又一次重演。因为在欧洲有一个国家对德国抱有这种极大的恐惧——这就是在一战灰烬中浴火重生的新独立的波兰。在她的西面,是对失去旧日领土耿耿于怀的德国,而在东面,则是要输出革命的苏维埃联盟。对于波兰来说,关于这两个强邻的情报是有关生死存亡的大事,波兰的密码分析专家不可能象他们的英美法同事那样爱干不干——他们必须知道这两个大国都在想什么。在此情况下波兰设立了自己的破译机构,波军总参二局密码处(Biuro Szyfrow)。密码处的高效率在1919-1920年波苏战争中明显地体现出来,军事上屡尝败绩的波兰在密码分析方面却一枝独秀。在苏军兵临华沙城下的情况下,1920年一年他们破译了大约400条苏军信息。在对西面德国的通讯的监控方面,波兰人也保持了同样的高效率——直到1926年ENIGMA登场。
波兰人想方设法搞到了一台商用的ENIGMA机器,大致弄清楚了它的工作原理。但是军用型的转子内部布线和商用型的完全不同,没有这个情报,想要破译德军的电报可谓难如登天。波兰人使出了浑身的解数,甚至病急乱投医,请了个据说有天眼通功能的“大师”来遥感德国人机器里转子的线路图——当然和所有的“大师”一样,一遇上这种硬碰硬的事情,神乎其神的天眼通也不灵了。
这时事情有了转机。
汉斯-提罗·施密特(Hans-Thilo Schimdt)于1888年出生在柏林的一个中产阶级家庭里,一次大战时当过兵打过仗。根据凡尔赛条约,战败后的德国进行了裁军,施密特就在被裁之列。退了伍后他开了个小肥皂厂,心想下海从商赚点钱。结果战后的经济萧条和通货膨胀让他破了产。此时他不名一文,却还有一个家要养。
和他潦倒的处境相反,他的大哥鲁道夫(Rudolph)在战后春风得意。和汉斯-提罗一样都是一次大战的老兵,可鲁道夫没有被裁减,相反却一路高升。到了二十年代,他当上了德国通讯部门的头头,就是他正式命令在军队中使用ENIGMA。和大哥的成功比起来,汉斯-提罗自然觉得脸上无光。
可是破产后汉斯-提罗不得不放下自尊心来去见大哥,求他在政府部门替自己谋个职位。鲁道夫给他的二弟在密码处(Chiffrierstelle)找了个位置。这是专门负责德国密码通讯的机构——ENIGMA的指挥中心,拥有大量绝密情报。汉斯-提罗把一家留在巴伐利亚,因为在那里生活费用相对较低,勉强可以度日。就这样他一个人孤零零地搬到了柏林,拿着可怜的薪水,对大哥又羡又妒,对抛弃他的社会深恶痛绝。
接下来的事情可想而知。如果把自己可以轻松搞到的绝密情报出卖给外国情报机构,一方面可以赚取不少自己紧缺的钱,一方面可以以此报复这个抛弃了他的国家。1931年11月8日,施密特化名为艾斯克(Asche)和法国情报人员在比利时接头,在旅馆里他向法国情报人员提供了两份珍贵的有关ENIGMA操作和转子内部线路的资料,得到一万马克。靠这两份资料,盟国就完全可以复制出一台军用的ENIGMA机。
不过事情并不象想象的那么简单。要破译ENIGMA密码,靠这些情报还远远不够。德军的一份对ENIGMA的评估写道:“即使敌人获取了一台同样的机器,它仍旧能够保证其加密系统的保密性。”就算有了一台ENIGMA,如果不知道密钥(就是转子自身的初始方向,转子之间的相互位置,以及连接板连线的状况)的话,想破译电文,就要尝试数以亿亿计的组合,这是不现实的。
“加密系统的保密性只应建立在对密钥的保密上,不应该取决于加密算法的保密。”这是密码学中的金科玉律。加密算法可以直接是某个抽象的数学算法,比如通用的DEA和RSA算法,也可以是实现某个算法的象ENIGMA这样的加密机械或专门用于加密的电子芯片等加密器件,还可以是经过编译的在计算机上可执行的加密程序,比如在互联网通信中被广泛使用的PGP(Pretty Good Privacy)。因为对加密算法的保密是困难的。对手可以用窃取、购买的方法来取得算法、加密器件或者程序。如果得到的是加密器件或者程序,可以对它们进行反向工程而最终获得加密算法。如果只是密钥失密,那么失密的只是和此密钥有关的情报,日后通讯的保密性可以通过更换密钥来补救;但如果是加密算法失密,而整个系统的保密性又建立在算法的秘密性上,那么所有由此算法加密的信息就会全部暴露。更糟糕是,为了使以后的通讯保持秘密,必须完全更换加密算法,这意味着更新加密器械或更换程序。比起简单地更换密钥,这要耗费大量财富和管理资源(大规模更换加密器械和程序会使对手更有机会乘虚而入!)。
正如前面所言,ENIGMA的设计使得搞到了它的秘密的法国人也一筹莫展。法国密码分析人员断定这种密码是不可破译的。他们甚至根本就懒得根据搞到的情报去复制一台ENIGMA。
在法国和波兰签订过一个军事合作协议。波兰方面一直坚持要取得所有关于ENIGMA的情报。既然看来自己拿着也没什么用,法国人就把从施密特那里买来的情报交给了波兰人。和法国人不同,破译ENIGMA对波兰来说至关重要,就算死马也要当作活马医。现在他们总算能迈出最初的一步了。
在施密特提供的关于ENIGMA的情报中,不仅有关于ENIGMA构造和转子内部连线的描述,还有德国人使用ENIGMA进行编码的具体规定。每个月每台ENIGMA机的操作员都会收到一本当月的新密钥,上面有此月每天使用的密钥。比如说,第一天的密钥可以是这个样子:1.连接板的连接:A/L-P/R-T/D-B/W-K/F-O/Y。2.转子的顺序:2,3,1;转子的初始方向:Q-C-W。
当操作员要发送某条消息时,他首先从密钥本中查到以上信息。然后按照上面的规定,首先用连线把连接板上的A字母和L字母,P字母和R字母……连接起来;然后把2号转子放在ENIGMA的第一个转子位置上,把3号转子放在第二个位置上,把1号转子放在第三个位置上;最后,他调整转子的方向(从照片上可以看到每个转子的边上都刻着一圈字母用来显示转子所处的方向),使得三个转子上的字母Q、C和W分别朝上。在接收信息的另一方,操作员也进行同样的准备(他也有一本同样的密钥本),就可以进行收信解码的工作了。
调整好ENIGMA,操作员可以开始对明文加密了。但是我们看到每天只有一个密钥,如果这一天的几百封电报都以这个密钥加密发送的话,暗中截听信号的敌方就会取得大量的以同一密钥加密的信息,这对保密工作来说不是个好兆头。我们记得在简单替换密码的情况下,如果密码分析专家能得到大量的密文,就可以使用统计方法将其破解。
尽管不知道对ENIGMA是否可以采用类似的统计方法,德国人还是留了个心眼。他们决定在按当日密钥调整好ENIGMA机后并不直接加密要发送的明文。相反地,首先发送的是一个新的密钥。连接板的连线顺序和转子的顺序并不改变,和当日通用的密钥相同;想反地,转子的初始方向将被改变。操作员首先按照上面所说的方法按当日密钥调整好ENIGMA,然后随机地选择三个字母,比如说PGH。他把PGH在键盘上连打两遍,加密为比如说KIVBJE(注意到两次PGH被加密为不同的形式,第一次KIV,第二次BJE,这正是ENIGMA的特点,它是一种复式替换密码)。然后他把KIVBJE记在电文的最前面。接着他重新调整三个转子的初始方向到PGH,然后才正式对明文加密。
用这种方法每一条电文都有属于自己的三个表示转子初始方向的密钥。把密钥输入两遍是为了防止偶然的发报或者接收错误,起着纠错的作用。收报一方在按当日密钥调整好ENIGMA机后,先输入密文的头六个字母KIVBJE,解密得到PGHPGH,于是确认没有错误。然后把三个转子的初始方向调整到PGH,接着就可以正式解密其余的密文了。
如果不使用对每条电文都不同的密钥,那么每天很可能总共会有几千条电文也就是几百万个字母的消息以同一个密钥加密。而采用每条电文都有自己的密钥这个方法后,当日密钥所加密的就是很少的几万个字母,而且这些字母都是随机选取,和有意义的电文性质不同,不可能用统计方法破译。
乍一看来这种方法无懈可击。可是波兰人铁了心,必须在这厚厚的护甲上撕出一个口子来。
在此以前,密码分析人员通常是语言天才,精通对语言方面特征的分析。但是既然ENIGMA是一种机械加密装置,波兰总参二局密码处就考虑到,是否一个具有科学头脑的人更适合于它的破译工作呢?
1929年1月,波兹南大学数学系主任兹德齐斯罗·克里格罗夫斯基(Zdzislaw Krygowski)教授开列了一张系里最优秀的数学家的名单,在这张名单上,有以后被称为密码研究“波兰三杰”的马里安·雷杰夫斯基(Marian Rejewski),杰尔兹·罗佐基(Jerzy Rozycki)和亨里克·佐加尔斯基(Henryk Zygalski)。波兹南大学并非当时波兰最有名的大学,但是它地处波兰南部,那里直到1918年还是德国领土,所以所有这些数学家都能讲流利的德语。
在三位被密码局招聘的数学家中,雷杰夫斯基的表现最为出色。当年他是个架着一副近视眼镜,脸上略带羞色的二十三岁小伙子。他的在大学里学的专业是统计学,打算以后去干保险业行当,也许在此之前他从未想到会在密码分析方面大展身手。在经过短期的密码分析训练后,他把所有的精力都投入到破解ENIGMA的工作中去。
雷杰夫斯基深知“重复乃密码大敌”。在ENIGMA密码中,最明显的重复莫过于每条电文最开始的那六个字母——它由三个字母的密钥重复两次加密而成。德国人没有想到这里会是看似固若金汤的ENIGMA防线的弱点。
德方每封密文最开始的六个字母,是此信密钥的三个字母重复两遍,由当日密钥加密而成。比如说这封信的密钥是ULJ(这是开始加密明文时由操作员临时随机选取的),那么操作员首先用当日通用的密钥加密ULJULJ,得到六个字母的加密后序列,比如说PEFNWZ,然后再用ULJ来作为密钥加密正文,最后把PEFNWZ放在加密后的正文前,一起用电报发给收信方。
雷杰夫斯基每天都会收到一大堆截获的德国电报,所以一天中可以得到许多这样的六个字母串,它们都由同一个当日密钥加密而成。比如说他收到四个电报,其中每封电报的开头的六个字母为:第一封电报:L O K R G M;第二封电报:M V T X Z E;第三封电报:J K T M P E;第四封电报:D V Y P Z X。对于每封电报来说,它的第一个字母和第四个字母都是由同一个字母加密而来,同样地第二和第五个字母以及第三和第六个字母也是分别由同一个字母加密而来。比如说在第一封电报中,字母L和R是由同一字母加密而来。这个字母之所以先被加密成L,然后又被加密成了R,是因为在此期间转子向前转动了三个字母的位置。
从L和R是由同一个字母加密而来这点,雷杰夫斯基就有了判断转子的初始位置的一条线索。当转子处于这个初始位置时,字母L和R在某种意义下具有紧密的联系。每天截获的大量电文能够给出许多这样的紧密联系,从而使雷杰夫斯基最终能够判断出转子的初始位置。在上面的第二、三、四封电报中,我们看见M和X,J和M,D和P都有这种联系:
第四个字母:___P_____M_RX_____________
如果雷杰夫斯基每天可以得到充分多的电报,他就可以把上面这个关系表补充完整:
第四个字母:FQHPLWOGBMVRXUYCZITNJEASDK
光凭这个对应表格,雷杰夫斯基还是没办法知道当天的通用密钥。可是他知道,这个表格是由当天的通用密钥决定的,而且只由它决定。如果密钥不同,那么这个表格也应该不同——那么,有没有一种办法可以从这个对应表来推断出当日的通用密钥呢?雷杰夫斯基对这样的表格进行了仔细观察。从字母A开始看,它被对应成F;而F在此表中又被对应成W,接下去它被对应成A,我们又回到了最先开始的字母,于是就有了一个循环的字母圈A→F→W→A。如果考虑所有的字母,雷杰夫斯基就能写出关于此对应表的所有的循环圈:A→F→W→A。
3个字母的循环圈B→Q→Z→K→V→E→L→R→I→B;9个字母的循环圈C→H→G→O→Y→D→P→C;7个字母的循环圈J→M→X→S→T→N→U→J。
7个字母的循环圈这里我们只是考虑了第一和第四个字母形成的对应表。同样地对第二和第五、第三和第六个字母形成的对应表,我们也可以写出类似的字母循环圈。由于每天的密钥都不同,雷杰夫斯基得到的循环圈也各不相同。
雷杰夫斯基观察到,这些循环圈长短不一。这使他有了一个重要的灵感:虽然这些循环圈是由当日密钥,也就是转子的位置,它们的初始方向以及连接板上字母置换造成的,但是每组循环圈的个数和每个循环圈的长度,却仅仅是由转子的位置和它们的初始方向决定的,和连接板上字母交换的情况无关!
假定在上面这个例子中,原来在接线板上字母S和G由一根连线相连。转子的位置和它们的初始方向保持不变,去掉这根连线而将字母T和K连在一起,那么第一和第四个字母的对应表就会变成:
第一个字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ,第四个字母:FQHPLWKSBMNRXUYCZIOVJEAGDT(原来的G对应O,S对应T,去掉G和S的连线后,G就对应T,但是T被新的连线接到了K,所以G最终对应着K。其他受影响的字母还有H、K、S、T、X、Z)。而循环圈表就变成了:A→F→W→A。
3个字母的循环圈B→Q→Z→T→V→E→L→R→I→B;9个字母的循环圈C→H→S→O→Y→D→P→C;7个字母的循环圈J→M→X→G→K→N→U→J。
7个字母的循环圈某些循环圈中的字母变了,但是循环圈的数目仍旧是四个,每个循环圈的长度也没有改变。应用置换变换的理论,雷杰夫斯基可以从数学上严格证明这一点对于任何的连线变化都是成立的。
这是一个非常重大的进展。我们知道,如果要强行试遍所有的密钥来破解密文,那得要试一亿亿个密钥之多;但是ENIGMA的数量巨大的密钥主要是由连接板来提供的,如果只考虑转子的位置和它们的初始方向,只有105456种可能性。虽然这还是一个很大的数字,但是把所有的可能性都试验一遍,已经是一件可以做到的事情了。
波兰人按照汉斯-提罗·施密特提供的情报复制出了ENIGMA样机。到了1934年,他们有了十几台波兰造ENIGMA。雷杰夫斯基和他的同事们每天都在ENIGMA前工作,一个接一个地试验转子的不同位置和初始方向,然后产生相应的字母对应表并构造相应的字母循环圈,并把它们记录下来。比如说其中的一个记录可以是这样的:第一和第四字母对应表中有4个循环圈,长度分别为3,9,7,7;
第二和第五字母对应表中有4个循环圈,长度分别为2,3,9,12;
第三和第六字母对应表中有5个循环圈,长度分别为5,5,5,3,8;
当对所有105456种转子位置和初始方向都编好记录以后,破译ENIGMA生成的密文就比较容易了。首先要取得足够的当日电文来构造字母对应表并且写出字母循环圈;然后根据循环圈的数目和它们的长度从记录表中检索出相对应的转子位置和初始方向:这就是当日的密钥(连接板的情况还未知)。循环圈的个数和长度可以看作是这个密钥的“指纹”——通过建立密钥“指纹”档案,雷杰夫斯基就能及时地把当天的密钥找出来。通过分离转子的状态和连接板的状态,雷杰夫斯基大大简化了破译ENIGMA的工作。建立这样一个档案花了整整一年时间,工作相当艰苦,有时工作人员的手指都被磨出血来。
必须指出的是,上面对雷杰夫斯基的工作的介绍是极其简单化的,只以举例的形式介绍了其中最重要的思路。雷杰夫斯基对于ENIGMA的分析是在密码分析史上最重要的成就之一,整个工作都是严格地数学化了的(求解关于置换矩阵的方程),决非上面所举例子可以包含。比如说,找到当日密钥中转子状态后,还需要找到连接板状态,才能真正译出密文。另外,ENIGMA中转子中的线路并非总是固定不变,雷杰夫斯基的理论允许从密文和密钥倒推出转子内部的连线状态。即便是施密特提供的情报也未明确指出转子内部的连线状态,雷杰夫斯基一项重要工作就是成功地判断出军用型ENIGMA的转子上字母以字母表顺序排列,而不是如商用型那样,字母以键盘上的顺序排列。另外还要指出的是,雷杰夫斯基的同事,尤其是另两位数学家罗佐基和佐加尔斯基在破译工作中也作出了很重要的贡献。佐加尔斯基还设计了用在纸上钻孔的方法来迅速查询对应于某类字母循环圈的转子状态的方法。
在雷杰夫斯基和他的同事的努力下,波兰情报部门在后来的几年里成功地掌握了大量德国方面的情报。据估计,在1933年1月到1939年9月这六年多的时间里,波兰方面一共破译了近十万条德方的消息,其中最重要的有德国在包括苏台德地区兵力重新部署的情报,这对波兰的安全是极大的威胁。对ENIGMA的破解即便在总参二局领导层内部也属最高机密,军官们会收到标有“维奇尔”(Wicher,破译ENIGMA行动的代号)的情报,他们被告知这些情报绝对可靠,但来源绝密。1934年,纳粹德国元帅赫尔曼·戈林访问华沙,他怎么也没有怀疑波兰人已经掌握了他的机密。当他和德国高级官员向位处波兰密码处附近的无名战士墓献花圈时,雷杰夫斯基正透过办公室的窗子望着他们,心中为自己能知道他们最机密的通讯而狂喜不已。
当德国人对ENIGMA转子连线作出一点改动以后,花了一年功夫建立起来的密钥“指纹”档案就变得毫无用处了。但是雷杰夫斯基和罗佐基有了一个更好的主意。他们在ENIGMA的基础上设计了一台能自动验证所有26*26*26=17576个转子方向的机器,为了同时试验三个转子的所有可能位置的排列,就需要6台同样的机器(这样就可以试遍所有的17576*6=105456种转子位置和初始方向)。所有这6台ENIGMA和为使它们协作的其他器材组成了一整个大约一米高的机器,能在两小时内找出当日密钥。罗佐基把它取名为“炸弹”(La Bomba),可能是因为它运转起来震耳欲聋的声响;不过也有人传说,制造这样一台机器的主意是雷杰夫斯基一次在饭店里吃叫做“炸弹”的冰淇淋时想到的。无论如何,“炸弹”实现了密码分析机械化,它是对ENIGMA机械加密的一种很自然的回应手段。
30年代的大部分日子里,雷杰夫斯基和他的同事们不断地从事着寻找密钥的工作,时不时地还要修复出了故障的“炸弹”。他们不知道的是,在密码处处长格维多·兰杰(Gwido Langer)少校的抽屉里,已经有了他们正在绞尽脑汁试图寻找的东西。
事实上,在提供了两份极其重要的关于ENIGMA的情报后,汉斯-提罗·施密特还在继续向法国情报机关提供关于德国通讯的情报。在1931年后的七年中,他和法国情报人员接头二十次,每次都提供若干德国通讯用密码本,上面记载着一个月中每天使用的当日密钥。汉斯-提罗·施密特总共提供了三十八个月的密码。兰杰少校通过法国密码处(“第二处”)负责人居斯塔夫·贝特朗(Guistav Bertrand)上尉得到了这些密码本。如果雷杰夫斯基能够预先知道这些密码,无疑可以节省大量的时间,从而进行其他的同样十分重要的破译工作。
但是兰杰少校觉得雷杰夫斯基的小组应该习惯于单独工作,以便在将来得不到密码本的时候,也能同样破译ENIGMA。我们的确不知道,如果自1931年来没有这样的压力,雷杰夫斯基是否能够有上面所述的重要工作。
波兰密码局的破译能力在1938年的十二月达到了极限,德国人加强了ENIGMA的加密能力。每台ENIGMA机增加了两个可供选择的转子。原来三个转子不同的排列方式有6种,从五个转子中选取三个装入机器中的方式达到了5*4*3=60种。这就意味着要达到原来的效率,“炸弹”中必须有60台机器同时运转,而不是原来的6台。建造这样一台“炸弹”的价格是密码处总预算的十五倍!在1939年一月,连接板上的连线又由六根增加到十根,这样就只剩6个字母不会被交换。密钥的总数达到了一万五千九百亿亿个,是原来的一万五千九百倍。
虽然波兰数学家们成功地推断出了第四和第五个转子中的连线状态,雷杰夫斯基也证明了ENIGMA并非象德国人或盟国密码分析专家想象的那样坚不可破,但是他的方法终于也不适用了。这时兰杰少校应该从他的抽屉里拿出施密特提供的密码本来——但是正是德国人增加转子个数的时候,施密特停止了和法国情报部门的接头。七年中施密特不断地提供给波兰人能靠自己的力量破译的密钥,波兰人急需这些密钥,他们却再也搞不到了。
这对波兰是一个致命的打击。因为ENIGMA不仅仅是德国秘密通讯的手段,更是希特勒“闪电战”(blitzkrieg)的关键。所谓的“闪电战”是一种大规模快速协同作战,各装甲部队之间,它们和步兵、炮兵之间必须能够快速而保密地进行联系。不仅如此,地面部队的进攻还必须由斯图卡轰炸机群掩护支援,它们之间也必须有可靠的联络手段。闪电战的力量在于:在快速的通讯保证下的快速进攻。
如果波兰不能知道德军的通讯,那么想要抵挡德国的入侵是毫无希望的,现在看来这在几个月里就会发生。1939年4月27日德国撕毁同波兰签订的互不侵犯条约,侵占了苏台德地区;在德国国内,反波兰的声浪不断高涨。在此情况下,兰杰少校决定把直到现在还对盟国保密的关于ENIGMA的破译方法告诉盟国同行,以便在波兰遭到入侵后,拥有更大人力物力财力的盟国还可以继续对雷杰夫斯基的方法进行研究。
兰杰少校致电他的英国和法国同行,邀请他们来华沙紧急讨论有关ENIGMA的事项。英法密码分析专家到达波兰密码处总部,全然不知波兰人葫芦里卖的什么药。具有讽刺意味的是,这次会面中用来交流使用的语言是……德语——这是唯一的在场三方所有人都懂的语言。兰杰少校将他们领到一间房间,在那里有一个被黑布蒙住的东西,当黑布被揭开时,英法的密码分析专家目瞪口呆。出现在他们眼前的是一台雷杰夫斯基的“炸弹”。当听到雷杰夫斯基破译ENIGMA的方法时,他们意识到波兰在密码分析方面比世界上任何国家先进至少十年。法国人尤其吃惊,他们以为他们得到的情报用处不大,所以很慷慨地把它们转给了波兰人,他们却让波兰人一直瞒着。英法密码分析专家对波兰同行的感激是无以言表的,直到那时,他们在破译德国密码的方面毫无进展。
兰杰少校给英法密码分析专家的最后惊喜是宣布赠送给他们两台ENIGMA的复制品,以及“炸弹”的图纸,它们由法国密码处的贝特朗(他是个少校了)通过外交邮包寄往巴黎。在横渡英吉利海峡的渡船上有两位看似平常的旅客:英国作家沙夏·居特里(Sacha Guitry)和他的太太女演员依弗娜·普林坦普斯(Yvonne Printemps)。但是在他们的旅行箱里却藏着当时英国最高的机密:一台波兰制造的ENIGMA。为了避开无所不在的德国间谍的耳目,ENIGMA就这样来到了英国,在那里等待它的将是它的彻底灭亡。
两星期后的1939年9月1日,希特勒发动“闪电战”入侵波兰。9月17日,苏联入侵波兰。9月28日,德军占领华沙,波兰不复存在。
5. 纳粹德国二战经典密码机
不是二战期间,而是早在二战前很早就研制成功的ENIGMA编码机,原作者是为了各个公司保守商业机密开发的,结果得到军方的关注,战争的爆发才造就了ENIGMA的大量应用,也正是因为德国人对于ENIGMA的极度自信才导致了英国人后期的密码轻松破译。ENIGMA单词原意是“谜”的意思
6. 三国合力破译,二战时期德国使用的埃尼格玛密码机有多厉害
埃尼格玛密码机是一种用于加密与解密文件的密码机,更加确切的说,埃尼格玛是对二战时期德国使用的一系列相似的转子机械加解密机器的统称,它包括了许多不同的型号。 主要是德国科学家们针对当时一再失密的情况,费尽心机发明的密码再加密机,是当时最复杂的保密机器。直到1939年9月,在破译精英们不懈努力和波、法突破德国陆军埃尼格玛密钥的帮助下,英国密码专家们才破译了德国空军的“红色”密钥。但是,埃尼格玛的“黄色”密钥,仍无法掌握密码规律当时,这个密钥还不是被破译出来的,而是在一次战斗中,英国海军在挪威海岸的一架德机的残骸中,找到了一本密码本表,这才揭开了埃尼格玛的神秘面纱。
7. 恩尼格玛密码机的名称简介
德国使用的军用版德国防卫军恩尼格玛机是最常被人们提到的版本。由于盟军的密码学家能够破译大量由这种机器加密的信息,恩尼格玛机的名声也就变得不怎么好了。1932年,波兰密码学家马里安·雷耶夫斯基,杰尔兹·罗佐基和亨里克·佐加尔斯基破译了这种机器的密码。1939年中期,英国和法国得到了破译此密码的方法。盟军的情报部门将破译出来的密码称为ULTRA,这极大地帮助了盟军。ULTRA到底有多大贡献,还在争论中,但是对它的一个典型评价就是盟军对德胜利,只因为盟军破译了德国的密码而提前了两年。
尽管恩尼格玛机在加密方面具有不足之处,但是实际上,盟军能够破译它的密码,完全是因为德国犯了一些大错误(如加密员的失误,使用步骤错误、机器或密码本被缴获等等)。
8. Enigma 英格玛密码机是谁最先破译的
德国密码中心的一个工作人员:施米特把密码机的工作说明文件以相当于今天的3万美元的价格卖给了法国的情报人员,可是法国人读不懂这个说明就转给了波兰情报局,富有戏剧性的是当时波兰情报机关刚刚从德国使馆的外交邮件中截获了一个英格码机并悄悄的复制了一台,波兰情报机关的天才数学家:雷耶夫斯基:利用这台复制的英格码机和法国提供的说明文件成功的破译了这种密码.
但实际上破解英格码不是那么简单的,破译英格码是一项非常单调的以个事情,这首先要归功于波兰,为什么波兰人会花那么大的功夫去破解这个密码呢?有很多因素,但最重要的因素因为当时的波兰太弱了,在整个的30年代它一直面临着德人咄咄逼人的威胁,那种迫在眉睫的危机感迫使它这一个穷国,一个弱国投入相当的资源去破解这种密码(这里要说明的一点,30年代所有密码大家都认为是文字游戏,加密解密和破解工作全部是语言学家在研究,可是从波兰人那开始他们已经认识到未来的这个密码的世界是数学的世界)波兰人迫切的想知道自己的敌人在想什么,要干什么。可在战争中的胜负首要因素永远是军事打击力量的强弱,破译英格码虽然是波兰了解德国的侵略意图,但是由于军事力量的悬殊最终还是不能避免自己的国土遭到德国铁蹄的践踏,1939年9月底就在波兰首都华沙陷落的前夕,波兰天才数学家;雷耶夫斯基:带着秘密逃到了法国,可是不久法国也沦陷了:雷耶夫斯基:被德国抓获,在审问中:雷耶夫斯基:编了一个假话”说自己没能破解英格码。自负的德国人相信了,因为他们坚信英格码是不会被破译的,因此:雷耶夫斯基 没有被处决。
现在只有英国情报机关掌握英格码的秘密了,然而尽管他们有关于英格码的所有知识,可还是不能破译,因为德国人总是在每个月在8个控制轮里挑出3个装在机器上,而且装哪3个,按照什么顺序装完全没有规律,如果没有这些信息破译就无从说起,就在英国的情报当局一筹莫展百般无奈的时候运气从天而降。1940年2月11日英国皇家海军的扫雷舰格莱那号击中了一搜德国潜艇并且迫使它浮出水面,德国潜艇上都装有英格码机以便接收指挥命令,由于他们需要在海上长时间执行任务所以总是带着几个月的使用密码指令,在慌乱中负责销毁英格码控制轮的一名艇员,忘记把带在身上的控制轮丢进海里,这样控制轮就被英国人弄到手了,在加上原来缴获的,他们终于凑成了一整套,和当前几个月的转轮设置指令终于能够破译英格码了(在整个战争期间英国海军共捕获U33 U110 U505 U570D等6艘德国潜艇从而断断续续的得到英格码转轮的设置指令,为了能定期得到设置指令,英国海军有意的袭击德国海军的气象船,因为这些气象船平均要在海上呆上8周他们必须携带2个月以上的密码指令,当这些气象船受到袭击的时候负责英格码的人员只来的即销毁本月的指令,却来不及打开保险柜毁掉下个月的指令,每次这样的袭击总会给英格的英格码专家提供1—2个月的信息)对英格码的破译使得英国海军能了解德国潜艇的位置并引导本国的商船队躲避攻击,同时引导本国的海上力量攻击敌人的海上船只,其结果之一就是从意大利出发给隆美尔非洲军团提供补给的船只仅有6分之一到达目的地其余全部被击沉,补给跟不上这直接导致了德国非洲军团覆灭。在解读德国总部给隆美尔的通讯过程中,英国知道了德国已经破译了美国陆军的通讯密码,而美军正在用这个密码每天向华盛顿报告英军的作战计划,正好说明隆美尔料敌入神屡战屡胜的原因,经过英国的提醒美国才赶紧更换密码。这就是:英格码:在战争中起的重要性!
9. 德国的伊尼格玛。
英国的【超级机密】说到【超级机密】首先要从德国的“艾尼格马密码机”说起。”艾尼格马密码机“是波兰人发明的,由于在商业上运气不佳,后来被德国改装成军用新型密码机-“迷”。该机器结构结实、机器性复杂便于携带,尽管在战场被敌方俘获也无关紧要,以为只要调节一下机器上的转子瞬间就会产生无数不同的密码,除非了解程序否则毫无用处。德国统帅部的陆、海、空军以及党卫军和其他国家机构的通信都要用艾尼格马密码机进行加密。因此,艾尼格马密码机也就成了德军“闪电战术”的通讯装置-“迷”。
但二战前夕事情发生变化,1939年,波兰情况部门向英国提供他们多年研制发明的一部“博姆”解码机。60部博姆解码机同时工作10小时就能将德军最新型的艾尼格马秘密机进行解密。英国人对机器进行改装后,把它安放在布莱奇蕾庄园内。正式命名为【超级机密】。
希特勒也经常用艾尼格马密码机同远在北非的隆美尔进行联络。英军住北非部队司令蒙哥马利能够和隆美尔同时看到希特勒的电文。
【超级机密】无疑是摧毁轴心国以及地中海补给线起到了起足轻重的作用。【超级机密】也成了整个第二次世界大战盟军及丘吉尔手中的一张王牌。情报是战争的血液,对“元首”来说毫无价值。德国的失败也就在意料之中!
【超级机密】大本营-布莱奇蕾庄园