二战期间德国研制的英格玛机的工作原理是什么?

英格玛看起来就像一个装满复杂精致组件的盒子。但是如果我们打开它,我们可以看到它可以被分解成非常简单的部分。下图是其最基本部分的示意图。我们可以看到它的三个部分:键盘、转子和显示屏。

在上面的ENIGMA的照片中,我们可以看到水平面板的下方是键盘,有26个键,键盘排列接近我们现在使用的电脑键盘。为了使消息尽可能短,更难破译,省略了空格和标点符号。我们在原理图中只画了六个键。在实物照片中,显示屏在键盘上方,由26个字母相同的小灯组成。当按下键盘上的一个键时,显示屏上会亮起与这封信的加密密文相对应的小灯。同样,我们只在原理图上画了六个小灯。显示器上方是三个转子,其主要部件隐藏在面板下方。在原理图中,我们暂时只画一个转子。

键盘、转子和显示器通过导线连接,转子本身集成了6条线(实物中26条),将键盘的信号对应到显示器不同的小灯上。在示意图中,我们可以看到,如果按下A键,灯B会亮,这意味着A被加密成B..同样,我们可以看到B被加密成A,C被加密成D,D被加密成F,E被加密成E,F被加密成C,所以如果我们在键盘上依次输入coffee,DBCE就会依次显示在显示屏上。这是一种最简单的加密方法,以一一对应的方式将每个字母替换为另一个字母。这种加密方法被称为“简单密码替换”。

简单的替换密码在历史上很早就出现了。著名的“凯撒法”是一种简单的替换法,将每个字母对应到字母表最后几个位置的那个字母。例如,如果我们取最后三个位置,那么字母的一一对应关系如下表所示:

清晰字母表:abcdefghijklmnopqrstuvwxyz

密码字母:DEFGHIJKLMNOPQRSTUVWXYZABC

所以我们可以从明文中得到密文:(veni,vidi,vici“我来了,我来了,我来了,我来了”是儒勒·凯撒在征服了本都国王法尼斯后对罗马元老院宣布的一句名言)

明文:veni,vidi,vici

密文:YHAL,YLGL,YLFL

显然,这种简单的方法只有26种可能性,不足以实际应用。一般来说,规定了相对随机的一一对应关系,如

清晰字母表:abcdefghijklmnopqrstuvwxyz

密码字母表:JQKLZNDOWECPAHRBSMYITUGVXF

您甚至可以定义一个密码字母图形,而不是拉丁字母。但是,这种方法得到的密文相当容易被破解。最迟在公元9世纪,阿拉伯密码学家已经掌握了统计字母出现频率的方法来破解简单的替换密码。破解的原理很简单:在每一种语音语言中,每个字母出现的频率是不一样的。比如,在英语中,e的出现频率远远高于其他字母。所以如果获得足够多的密文,通过统计每个字母出现的频率,就可以猜测出密码中的哪个字母对应明码(当然是通过揣摩上下文等基本的密码解码手段)。柯南·道尔在他著名的《舞蹈家夏洛克·福尔摩斯历险记》中详细描述了夏洛克·福尔摩斯使用频率统计破译跳舞的人形密码的过程。

所以如果转子的作用只是把一个字母变成另一个字母,那就没有太大意义了。但是你可能已经猜到了,所谓的“转子”会旋转!这是ENIGMA最重要的设计——当键盘上的一个键被按下时,相应的密文显示在显示屏上,然后转子的方向自动旋转一个字母的位置(在示意图中是1/6转,实际上是1/26转)。下图显示了连续键入三个b的情况:

第一次敲B的时候,信号通过转子里的连接线,灯A就亮了。松开钥匙后,转子旋转一格,每个字母对应的密码就变了。第二次输入b,它对应的字母就变成了c;同样,当你第三次键入b时,灯E闪烁。

照片左边是完整的旋翼,右边是旋翼的分解图。我们可以看到安装在转子上的电线。

这里我们看到了ENIGMA加密的关键:这不是一个简单的替换密码。同一个字母B在明文中可以用不同位置的不同字母代替,在密文中不同位置的同一个字母在明文中可以代表不同的字母,所以频率分析在这里没有用。这种加密方法被称为“双重替换密码”。

但是我们可以看到,如果你连续打6个字母(实物26个字母),转子会转一整圈,回到原来的方向,然后重复编码。在加密的过程中,重复是非常危险的,会让试图破译密码的人看到有规律的东西。所以我们可以添加另一个转子。当第一个转子旋转一整圈时,其上的一个齿移动第二个转子,使其方向旋转一个字母。看下面的示意图(为简单起见,我们现在将其表示为一个平面):

这里(图中的a)我们假设第一个旋翼(左边的那个)转了一整圈,按下B键显示器上的D灯亮了;当释放B键时,第一个转子上的齿同时也带动第二个转子旋转一格,所以(B)当你在图中第二次键入B时,加密的字母是F;当您再次释放键B时,只有第一个转子旋转,因此当您在图(c)中第三次键入B时,字母B对应于B..

我们看到,这样,在原码重复之前,需要6*6=36个字母(实物中为26*26=676)。其实英格玛有三个旋翼(二战后期德国海军使用的英格玛甚至有四个旋翼),不重复方向数达到26*26*26 =17576。

不仅如此,在三个转子的一端还巧妙地添加了一个反射器,键盘和显示器中相同的字母通过导线连接。反射器就像转子一样,将一个字母连接到另一个字母上,但它并不旋转。乍一看,这样的固定反射器似乎没什么用。它并没有增加可以使用的码数,但是如果你把它和解码联系起来,你就会看到这个设计的别出心裁。见下图:

我们看到键盘和显示器中相同的字母在这里是用导线连接的。其实这是一个巧妙的切换,只是我们不需要知道它的细节。我们只需要知道,当按下一个键时,信号不是直接从键盘传到显示器(如果没有加密的话),而是先通过三个转子连接的一条线,再通过一个反射器回到三个转子,再通过另一条线到达显示器。比如上图中按下B键,D灯亮。我们来看一下,如果此时按的是D键而不是B键,那么上面按B键时信号正好反方向通过,最后到达B灯。换句话说,在这种设计下,反射器虽然没有像转子一样增加可能的不重复方向,但却可以让解码过程和编码过程完全一样。

想象一下用ENIGMA发送一条消息。发送方必须先调整三个转子的方向,使其处于17576的其中一个方向(其实转子的初始方向是关键,必须事先得到发送方和接收方的同意),然后依次输入明文,依次写下闪亮的字母,再以电报等方式发送加密信息。接收方接收到消息后,使用相同的密码机,按照原约定将转子的方向调整到与发送方相同的初始方向,然后依次打出接收到的密文,依次写下闪亮的字母,得到明文。所以加密和解密的过程是完全一样的——这就是反射器的作用。转念一想,很容易理解,反射体的一个副作用是,一个字母永远不会被加密到自身中,因为反射体中的一个字母总是连接到一个不同的字母。

英格玛中安装的反射器和三个转子

所以转子的初始方向决定了整个密文的加密方式。如果通信中有敌人监听,他会收到完整的密文,但是因为不知道三个旋翼的初始方向,所以要一个一个实验才能找到密钥。问题是17576初始方向的数量不算多。如果试图破译密文的人将转子调整到某个方向,然后键入密文的第一段,看输出看起来是否像有意义的信息。如果看起来不像,试试转子的下一个初始方向...如果尝试一个方向需要一分钟左右,他24小时工作,那么两周左右就可以搜索到转子所有可能的初始方向。如果对手同时使用多台机器解码,所需时间会大大缩短。这种程度的保密是不够的。

当然可以增加更多的旋翼,但是我们看到每个旋翼初始方向的可能性只有26的倍数。特别是增加转子会增加ENIGMA的体积和成本。但是这个加密机必须是便携的(实际上它的最终尺寸是34cm*28cm*15cm),而不是一个十几个旋翼的庞然大物。在英格玛的设计中,机器的三个转子可以拆卸,互相交换,这样初始方向的可能性就变成了六次。假设三个转子的编号分别为1,2,3,可以放在六个不同的位置:123-132-213-231-312-321。当然,现在他们正在发送和接收信息。

其次,在键盘和第一转子之间设计一个连接板。这个连接板允许用户用连接线将一个字母与另一个字母连接起来,这样这个字母的信号在进入转子之前就会被转换成另一个字母的信号。最多可以有六个这样的连接(后面的英格玛还有更多连接),这样就可以交换六对字母的信号,其他没有连接的字母保持不变。在上面ENIGMA的实物图中,我们可以看到连接板在键盘下面。当然,连接板上的连接状态也是收发信息双方事先约定好的。

在上图中,当按下B键时,灯C亮。

所以转子本身的初始方向,转子之间的相互位置,连接板的连接构成了所有可能的关键。我们来算算有多少种。

三个旋翼的不同方向,组成了26*26*26=17576种不同的可能性;

三个转子之间不同的相对位置有六种可能性;

连接板上交换6对字母的可能性数量非常巨大,有100391791500;

所以一个* * *有17576 * 6 * 100391791500,大概就是10000000000000,也就是一亿种可能。

只要上面提到的密钥得到同意,发送方和接收方就可以使用ENIGMA非常容易地对其进行加密和解密。但如果你不知道钥匙,面对这种巨大的可能性,试图一个一个找出来是完全不可能的。我们看到连接板对可能性的增加贡献最大,为什么还要费心去设计旋翼之类的东西呢?原因是连接板本身其实就是一个简单的替代密码系统。在整个加密过程中,连接是固定的,所以单靠频率分析是非常容易破译的。虽然转子系统提供的可能性很少,但它们在加密过程中不断旋转,使得整个系统成为一个复合替换系统,频率分析法已经无能为力。同时,连接板大大增加了可能性的数量,使得暴力解码法(即逐一尝试所有可能性的方法)望而却步。