求解二战 恩尼格玛机工作的 基本数学原理 如何加密 如何解密 它的系统是怎样的 讲的通俗一点

鹤隐山林 3个月前 已收到1个回答 举报

时尚的男人 4星

共回答了496个问题采纳率:92.1% 评论

恩尼格玛密码机(德语:Enigma,又译哑谜机,或谜)是一种用于加密与解密文件的密码机。确切地说,恩尼格玛是对二战时期纳粹德国使用的一系列相似的转子机械加解密机器的统称,它包括了许多不同的型号。

恩尼格玛密码机在1920年代早期开始被用于商业,一些国家的军队与政府也曾使用过它,其中的主要使用者是第二次世界大战时的纳粹德国。

在恩尼格玛密码机的所有版本中,最著名的是德国使用的军用版本。尽管此机器的安全性较高,但盟军的密码学家们还是成功地破译了大量由这种机器加密的信息。1932年,波兰密码学家马里安·雷耶夫斯基、杰尔兹·罗佐基和亨里克·佐加尔斯基根据恩尼格玛机的原理破译了它。1939年中期,波兰政府将此破译方法告知了英国和法国,但要等到1941年英国海军捕获德国U-110潜艇才得到密码机和密码本并加以破解成功,使纳粹海军对英美商船补给船的大量攻击失效。盟军的情报部门将破译出来的密码称为ULTRA,这极大地帮助了西欧的盟军部队。ULTRA到底有多大贡献还在争论中,但是人们都普遍认为盟军在西欧的胜利能够提前两年,完全是因为恩尼格玛密码机被成功破译。尽管恩尼格玛密码机在加密方面具有不足之处,但是经它加密的文件还是很难破解,盟军能够破译它的密码完全是因为德国还犯了其它一些大错误(如加密员的失误、使用步骤错误、机器或密码本被缴获等等

与其它转子机械相同的是,恩尼格玛密码机也结合了机械系统与电子系统。机械系统包括了一个包含了字母与数字的键盘,相邻地排列在一个轴上的一系列名为“转子”的旋转圆盘,还有一个在每次按键后就使一个或几个转子旋转的装置。各种恩尼格玛密码机上的机械系统都各为不同,但是它们之间最大的共同点就是在每次按键后最右边的转子都会旋转,并且有些时候与它相邻的一些转子也会旋转。转子持续的旋转会造成每次按键后得到的加密字母都会不一样。

机械系统这样运行的原因是要产生不同的电流通路,字母的加密由机器自动完成。当一个键被按下后,电流就会流过各种线路,最终点亮其中一个灯,这个灯显示的就是加密后的字母。举例来说,如果想要发送一条以ANX开头的信息,操作员会先按下A键,这时灯Z就可能变亮,Z就是加密后的信息的第一个字母。操作员之后会按同样的步骤继续输入信息。转子的转动造成的电流路径的持续变化使恩尼格玛密码机(在当时)具有了高度的保密性。

恩尼格玛密码机的转子组成了恩尼格玛密码机的核心部分。每个转子的直径大约为10厘米,形状为圆盘形,由硬质橡胶或电木制成,一系列由弹簧承载的黄铜管脚呈环形排列于其中一面,而另一面相对应的则是圆形的金属触点。管脚与触点代表的是字母表上的全部字母,典型的排列就是A-Z(以下的介绍全部假设转子为这种排列方式)。当两个转子的位置相邻时,其中一个的管脚就会接触另外一个的金属触点,这就形成了一个通路。在转子内部,有26条金属线将一面的管脚与另一面的触点连接起来,这些金属线的排列方式在每个转子内都有所不同。单一的一个转子的加密方式是很简单的,它只使用了一种初级的替换式密码。比如说,E键对应的管脚可能会连到同一个转子另一面的T触点。使恩尼格玛密码机的加密变得复杂的是多个转子的同时使用,一般在一台恩尼格玛密码机内有3个或4个转子,在输入信息的同时转子还会转动,这就产生了一种安全得多的加密方式。

当被放进恩尼格玛密码机后,一个转子可以有26种排列方法。它可以通过操作员来转动,如图2所示。为了使操作员知道转子的转动情况,每个转子在转盘外部都有一个刻着字母或数字的环;其中一个字母可以通过一个小窗看见,同时将转子的转动情况显示给操作员。在早期的型号中,这个字母环是固定于转子上的,但在后来的型号当中,操作员可以通过调整字母环的位置而调整转子内的线路。每个转子上都有一个V形刻痕(有时有多个),这些刻痕是用来控制转子的转动的。在军用恩尼格玛密码机中,这些刻痕位于字母环上。陆军和空军的恩尼格玛密码机在一开始只拥有3个转子,1938年12月15日开始使用5个转子。这些转子使用罗马数字来辨识:I、II、III、IV、V,每个转子都有一个V形刻痕,这些刻痕在每个转子上的字母环中的位置都有所不同。这本来是作为一种安全措施的,但是它最终成为了波兰时钟解码法和英国Banburismus解码法的突破口。

德国海军使用的恩尼格玛密码机比其它军种的拥有更多转子 (调节器):一开始为6个,后来变成7个,最终增加到8个。这三个新加的转子被命名为VI、VII和VIII,内部线路互不相同,并且具有两个V形刻痕,它们分别位于N触点与A触点,这使转子的转动更为频繁。

四个转子的海军版恩尼格玛密码机为转子预留的空间与三个转子版的一样。为了放入第4个转子,原来三个转子版的反射器需要被换成一个较薄的反射器,并且第4个转子也是一个特殊的转子。这第4个转子有两种型号,即Beta型和Gamma型。这个转子是不会旋转的,但是它可以被手动调到26个位置中的任意一个。

为了避免产生简单(并且容易破译)的加密信息,有一些转子在操作员连续按下同一个键时也会转动。这就保证了每次按键得到的结果都不一样,也就会产生很难破译的复式密码。

为了达到这个效果,最常见的布局就是使用一个防倒转齿和防倒转爪系统。每个转子都有26个防倒转齿,一组防倒转爪与这些齿相接。这些爪在每次按键后都会向前推,如果防倒转爪与防倒转齿相接的话,转子就会旋转一点。

在德国防卫军的恩尼格玛密码机中,每个转子都有一个可调节的带缺口的外环。5个最基本的转子(I-V)各有一个缺口,而附加的转子VI、VII和VIII各有两个缺口。在转子转动到某一点时,第二个转子的防倒转爪正好位于它的缺口之内,这就使第二个转子在下一次按键后也会转动。当防倒转爪位于缺口之外时,它就只会沿着另一个转子外环的光滑边缘滑动。在所有转子都只有一个缺口的系统中,第一个转子每转26次就会使第二个转子转动一次,同样的,第二个转子每转动26次就会使第三个转子转动一次。第三个转子转动的同时第二个转子也会转动。[6]

这种两个转子同时转动的现象使它与计程器区别开来。这个现象出现于下述情况:第一个转子转动完之后带动了第二个转子转动一点,如果这时第三个转子的防倒转爪正好落入第二个转子外环的缺口内,那么在下一次按键时,第三个转子就会转动一点,同时它的防倒转爪也会推动第二个转子的外环,这样就使第二个转子连续两次转动。

当拥有三个转子,并且第一和第二个转子的外环各有一个缺口时,一台恩尼格玛密码机就会拥有26 × 25 × 26 = 16,900个组合(不是26 X 26 X 26,因为第二个转子会与第三个转子一起转动,参看参考资料中的一个PDF文件,它解释了这个现象)。在历史上,每条信息的长度都被限制在几百个字母以内,所以在同一条信息中输入同样的字母产生同样的密码的机率是很小的。

固定接口,又称作定子,是将插销或键盘与显示灯连接起来的装置。尽管固定接口中的线路分布对于密码的安全性影响很小,但是这还是阻碍了波兰密码学家马里安·雷耶夫斯基对恩尼格玛密码机密码的破译过程。商业恩尼格玛密码机的键盘上,Q键代表A,W键代表B,E键代表C,依此类推,而军用恩尼格玛密码机的键对应的就是键上的字母。

反射器除了早期的A型和B型之外,恩尼格玛密码机的最后一个转子之后都有一个反射器,反射器是恩尼格玛密码机与当时其它转子机械之间最显著的区别。它将最后一个转子的其中两个触点连接起来,并将电流沿一个不同的路线导回。这就使加密过程与解密过程变得一致。但是,反射器也使恩尼格玛密码机具有了如下性质:加密后得到的字母与输入的字母永远不会相同。这在概念上和密码学上都是一个严重的错误,这个错误最终被盟军解码人员利用。

在商业用恩尼格玛密码机(C型)中,反射器可以有两种不同的安装方式。在D型中它可以有26种方式。而在军用恩尼格玛密码机中,反射器可以像转子一样转动。

在德国陆军和空军版恩尼格玛密码机中,反射器是固定的,并且不会旋转;他们用的恩尼格玛密码机一共有4个版本。最初的版本被标记为A型,1937年11月1日它被B型取代。第三种型号,C型,在1940年被短暂地使用过,它最终被木屋6号破解。D型拥有一个可以重新接线的反射器,首次测试于1944年1月2日,这个版本允许操作员来调整接线方式。接线板允许操作员设置各种不同的线路。它首先在1930年被用于德国陆军,很快地,德国海军也开始使用它。接线板极大地增强了恩尼格玛密码机的保密性,它的使用相当于多了不止一个转子。没有接线板的恩尼格玛密码机可以被很容易地用人工方法破解,但是加上接线板后,盟军的密码专家就需要使用特殊的机器了。

接线板上的每条线都会连接一对字母。这些线的作用就是在电流进入转子前改变它的方向。为了解释它的原理,我们把E插口和Q插口连接起来。当操作员按下E键时,电流就会先流到Q插口(相当于按下Q键)再流经转子。接线板上最多可以同时接13条线。

电流会从键盘流经接线板,之后进入转子。接线板上的每个插口内都有两个插孔,当将插头插入时,上插孔(连到键盘)与下插孔(连到转子)之间的连接就会被断开。另外一个插口内的上插孔会与此插口内的下插孔连接起来,而下插孔会与此插口内的上插孔连接起来,这样就完成了两个插口之间的连接。

恩尼格玛对每个字母的加密过程可以以数学的角度看作为一个组合过程。假设我们有一台德国陆军/空军版3转子恩尼格玛密码机,让P表示接线板的连线,U表示反射器,L、M、R表示左、中、右转子。那么加密后的信息 E 就可以表示成

E = PRMLUL − 1M − 1R − 1P − 1E0

军的各支部队使用一些不同的通讯线路,每条线路中的恩尼格玛密码机都有不同的设置。为了使一条信息能够正确地被加密及解密,发送信息与接收信息的恩尼格玛密码机的设置必须相同;转子必须一模一样,而且它们的排列顺序,起始位置和接线板的连线也必须相同。所有这些设置都需要在使用之前确定下来,并且会被记录在密码本中。

恩尼格玛密码机的设置包含了以下几个方面:

转子:转子的结构及顺序。

起始位置:由操作员决定,发送每条消息时都不一样。

字母环:字母环与转子线路的相对位置。

接线板:接线板的连线。

在末期版本中还包括了反射器的线路。

恩尼格玛密码机被设计成即使在转子的线路设置被敌人知道时仍然会很安全,尽管在实际使用中德军尽了全力来防止线路设置被泄露出去。如果线路设置为未知,那么最多需要尝试10114种情况才可能推算出恩尼格玛密码机的密码;当线路和其它一些设置已知时,也最多需要尝试1023次。[恩尼格玛密码机的使用者对它的保密性很有信心,因为敌人不可能使用穷举法来找出密码。

恩尼格玛密码机的大部分设置都会在一段时间(一般为一天)以后被更换。但是,转子的起始位置却是每发送一条信息就要更换的,因为如果一定数量的文件都按照相同的加密设置来加密的话,密码学家就会从中得到一些信息,并且有可能利用频率分析来破解这个密码。为了防止这种事情发生,转子的起始位置在每次发送信息之前都会被改变。这个方法被称作“指示器步骤”。

早期的指示器步骤成为了波兰密码学家破译恩尼格玛密码机密码的突破口。在这个步骤中,操作员会先按照密码本中的记录来设置机器,我们假设这时的转子位置为AOH,之后他会随意打三个字母,假设为EIN,接着为了保险起见,他会将这三个字母重新打一遍。这六个字母会被转换成其它六个字母,这里假设为XHTLOA。最后,操作员会将转子重新设置为EIN,即他一开始打的三个字母,之后输入密电原文。

在接收方将信息解密时,他会使用相反的步骤。首先,他也会将转子按照密码本中的记录设置好,然后他就会打入密文中的头六个字母,即XHTLOA,如果发送方操作正确的话,显示板上就会显示EINEIN。这时接收方就会将转子设置为EIN,之后他就可将密电打入而得到原文了。

这个步骤的保密性差主要有两个原因。首先,操作员将转子的设置打到了密电中,这就使第三方能够得知转子设置。第二,这个步骤中出现了重复输入,而这是一个严重的错误。这个弱点使波兰密码局早在1932年就破解了二战之前的德军恩尼格玛系统。但是从1940年开始,德国改变了这个步骤,它的安全性也就提高了。

这个步骤只被用于德国陆军和空军。德国海军发送信息的步骤要复杂的多。在被恩尼格玛密码机发送之前,信息会先被Kurzsignalheft密码本进行加密。这个密码本将一个句子替换为了四个字母。它转化的句子包括了补给、位置、港湾名称、国家、武器、天气、敌人位置、日期和时间等内容。

德国陆军的恩尼格玛密码机的键盘上只有26个字母,标点符号由字母组合来代替,X相当于空格。在各军种的恩尼格玛密码机中,X都相当于句号。有一些标点符号在不同军种的密码系统中被不同的字母组合代替。陆军的系统使用ZZ来表示逗号,FRAGE或FRAQ则表示问号。但是德国海军用来表示逗号及问号的则分别为Y和UD。Acht(意为“八”)和Richtung(意为“方向”)中的字母组合CH则由Q来代替。CENTA、MILLE和MYRIA分别表示两个、三个和四个零。

德国陆军和空军将每条信息都翻译成5个字母的代码。使用四转子恩尼格玛密码机的德国海军则将信息翻译成4字母代码。经常用到的词语代码与原词语的差别越大越好。Minensuchboot(意为“扫雷艇”)这样的词语可以被表示为MINENSUCHBOOT、MINBOOT、MMMBOOT 或MMM354。比较长的信息会被分成几个部分来发送

16小时前

21
可能相似的问题

猜你喜欢的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 959505@qq.com