电影《模仿游戏》剧照
直到第一次世界大战结束为止,所有密码都是使用手工来编码的——说得更通俗一点,就是铅笔加纸的方式。在我国,直到20世纪80年代初,邮电局电报编码和译码工作中还在使用这种手工方法。
手工编码的方式给使用密码的一方带来很多不便。首先,这使得发送信息的效率极其低下。对于民用电报编码来说,因为无须考虑保密问题,可以使用固定的编码方式,即是摩尔电码,因此编码和解码的速度只取决于发报员的熟练程度;但如果使用密码通讯的话,那么明文(就是没有经过加密的原始文本)就必须由加密员人工一个一个字母地转换为密文,然后才能进行发送。同一种明文到密文的转换方式如果使用次数太多的话,很容易被敌人通过字母频率分析法破解,因此一套成熟的密码往往拥有很多套密码转换方式。
恩尼格码机(恩尼格玛密码机是谁发明的)
转换通常是采用查表的方法,所查表又每日甚至每次都不相同,这也就意味着加密人员并不能像民间发报员那样把转换方式牢记于心,所以解码速度极慢。而接收密码一方又要用同样的方式将密文转为明文,进一步降低了信息传递的效率。其次,这种手工操作的效率十分低下,也使得许多复杂的、保密性能更好的加密方法不能被实际应用,而简单的加密方法根本不能抵挡现代数学理论支持下解密学的威力。
解密一方当时正值春风得意之时,几百年来被认为坚不可破的维吉耐尔密码的变种(Vigenere)也被破解,一时间所有的密码似乎都在解密学面前失去了作用;而无线电报的发明,又使得截获密文易如反掌。于是,对新式加密方法的要求突然变得迫切起来,因为无论是军事方面还是民用商业方面,都需要一种可靠而又有效的方法来保证通讯的安全。
1918年,德国发明家亚瑟·谢尔比乌斯和他的朋友理查德·里特创办了谢尔比乌斯和里特公司。这是一家专营把新技术转化为应用方面的企业。谢尔比乌斯负责公司产品的研究和开发,他曾在汉诺威和慕尼黑研究过电气应用。他的一个想法就是要用20世纪的电气技术来取代那种过时的铅笔加纸的加密方法,而他所开设的这家公司所推出的第一件产品,就是被称为ENIGMA的电子加密机械,也即后来大名鼎鼎的恩尼格玛密码机。
二战中使用的恩尼格码密码机
整个恩尼格玛密码机看起来就是个放满了复杂而精致的元件的盒子,可以将其简单分为三个部分:键盘、转子和显示器。键盘一共有26个键,键盘排列和现在广为使用的计算机键盘基本一样,但为了使通讯尽量地短和难以破译,空格、数字和标点符号都被取消,只有字母键。键盘上方就是“显示器”,实际上是标示了同样字母的26个小灯泡,当键盘上的某个键被按下时,和这个字母被加密后的密文字母所对应的小灯泡就被点亮,算是一种近乎原始的“显示”方法。在显示器的上方是三个直径6厘米的转子,它们的主要部分隐藏在面板下,是“恩尼格玛”密码机最核心关键的部分。当按下键盘上的一个字母键,相应加密后的字母在显示器上通过灯泡闪亮来显示,而转子就自动地转动一个字母的位置。举例来说,当第一次键入A,灯泡B亮,转子转动一格,各字母所对应的密码就改变了。第二次再键入A时,它所对应的字母就可能变成了C;同样地,第三次键入A时,又可能是灯泡D亮了。同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,又可以代表明文中的不同字母,这不是简单的字母替换,因此字母频率分析法在此毫无用武之地。这种加密方式在密码学上被称为“复式替换密码”。
但是如果连续键入26个字母,转子就会整整转一圈,回到原始的方向上,这时编码就和最初重复了。而在加密过程中,重复是最大的破绽,因为这可以使破译密码的人从中发现规律。于是谢尔比乌斯又增加了一个转子,当第一个转子转动整整一圈以后,它上面有一个齿轮拨动第二个转子,使得它的方向转动一个字母的位置。假设第一个转子已经整整转了一圈,按A键时显示器上D灯泡亮;当放开A键时第一个转子上的齿轮也带动第二个转子同时转动一格,于是第二次键入A时,加密的字母可能为E;再次放开键A时,就只有第一个转子转动了,于是第三次键入A时,与之相对应的就是字母就可能是F了。因此只有在26×26(即676)个字母后才会重复原来的编码。
1943年使用中的恩尼格码机
而事实上“恩尼格玛”有三个转子(二战后期德国海军使用的“恩尼格玛”有四个转子),那么重复的概率就达到26×26×26(即17576)个字母之后。转子的初始方向决定了整个密文的加密方式。如果通讯当中有敌人监听,他会收到完整的密文,但是由于不知道三个转子的初始方向,他就不得不一个个方向地试验来找到这个密匙。问题在于17576这个数目并不是太大。如果试图破译密文的人把转子调整到某一方向,然后键入密文开始的一段,看看输出是否像是有意义的信息。如果不像,那就再试转子的下一个初始方向……假设试一个方向大约要一分钟,而他二十四小时日夜工作,那么在大约两星期里就可以找遍转子所有可能的初始方向。如果对手用许多台机器同时破译,那么所需要的时间就会大大缩短。这种保密程度显然是不太足够的。
为此,谢尔比乌斯给密码机增加了一道保障安全的关卡,在键盘和第一个转子之间设置了一块连接板。通过这块连接板,可以用一根连线把某个字母和另一个字母连接起来,这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。这种连线最多可以有六根(后期的“恩尼格玛”甚至达到十根连线),这样就可以使6对字母的信号两两互换,其他没有插上连线的字母则保持不变。当然连接板上的连线状况也是收发双方预先约定好的。除此之外,“恩尼格玛”密码机的三个转子也可以拆卸下来并互相交换位置,这样一来初始方向的可能性一下就增加了六倍。假设三个转子的编号为“1”“2”“3”,那么它们可以被放成“123”“132”“213”“231”“312”“321”这六种不同位置,收发密文的双方除了要约定转子自身的初始方向,还要约定这六种排列中的一种。转子的初始方向、转子之间的相互位置以及连接板的连线状况就组成了“恩尼格玛”密码机的三种自动加密方式,经过这样处理,要想通过“暴力破译法”还原明文,需要试验的数量高达一亿亿次,即便能动员大量的人力物力,要想靠“暴力破译法”来逐一试验可能性,也几乎是不可能的。而收发双方,则只要按照约定的转子方向、位置和连接板连线状况,就可以非常轻松简单地进行通讯了。这就是“恩尼格玛”密码机的保密原理。
这是恩尼格玛密码机转子组。三个转子位于右边的固定接口和左边(标着B)的反射器两个装置之间。
1918年谢尔比乌斯申请了“恩尼格玛”密码机的专利。在他看来,既然自己的发明能够提供优秀的加密手段,又能拥有极高的加密解密效率,一定能很快就畅销起来——然而过高的售价却使得买家们望而却步。但就在这时,一个意外拯救了他的发明:英国政府发表了两份关于一次大战的文件。其中一份是1923年出版的温斯顿·丘吉尔的著作《世界危机》,其中有一段提到了英国和俄国在军事方面的合作,指出俄国人曾经成功地破译了某些德军密码,而使用这些成果,英国的海军情报处40室能够系统性地取得德军的加密情报。德国方面几乎是在十年之后才知道这一真相。第二份文件同样是在1923年由皇家海军发表的关于第一次世界大战的官方报告,其中讲述了在战时盟军方面截获(并且破译)德军通讯所带来的决定性的优势。这些文件构成了对德国情报部门的隐性指控,他们最终承认“由于无线电通讯被英方截获和破译,德国海军指挥部门就好像是把自己的牌明摊在桌子上和英国海军较量。”
为了避免再一次陷入这样的处境,德军对谢尔比乌斯的发明进行了可行性研究,最终得出结论:必须装备这种加密机器。从1925年开始,谢尔比乌斯的工厂开始系列化生产“恩尼格玛”密码机,次年德军开始将这些密码机投入使用。接着政府机关,比如说国营企业、铁路部门等也开始使用“恩尼格玛”密码机,在接下来的十年中,德国军队大约装备了三万台“恩尼格玛”密码机。谢尔比乌斯的发明使德国具有了最可靠的加密系统,在第二次世界大战开始时,德军通讯的保密性在当时世界上无与伦比。
本文摘自《秘密战3000年》
发表评论