无形战场上的智慧较量——恩尼格玛密码
- 来源:知识就是力量 smarty:if $article.tag?>
- 关键字:恩尼格玛,密码 smarty:/if?>
- 发布时间:2018-10-17 14:31
在第二次世界大战中,密码学发生了一系列传奇式的故事,特别是围绕恩尼格玛密码设计和破译的战争,跌宕起伏,尽显人类智慧之美。德国人亚瑟·谢尔比乌斯发明了恩尼格玛,波兰人雷耶夫斯基初步破译了恩尼格玛,而英国人阿兰·图灵则终结了恩尼格玛。今天,我们就一起来了解下恩尼格玛的构造和原理。
认识恩尼格玛
恩尼格玛是世界上第一台电气机械装置的密码机,其形状如同一台打印机,它在20世纪30年代后期被用于第二次世界大战,现藏于意大利米兰国家科学技术博物馆。
恩尼格玛由键盘(Key-board)、灯盘(Lampboard)、转轮组(Rotors)、插线板(Plugboard)4个主要部分构成。键盘与普通打字机的键盘类似,但只有26个字母,没有标点符号;灯盘位于键盘之后,其上有26个字母,每个字母下面有一个小灯泡,用于显示加密或解密后的字母;转轮组位于灯盘后,在盖板之下,从外面只能看到3个转轮的部分齿状边缘和一个数字,其中齿状物用于手动转动轮子,而数字表示轮子的当前位置;插线板位于键盘下方,恩尼格玛的正面。
转轮组包括3个转轮和1个反射轮,它们都套在同一根轴上,反射轮在最左边。转轮是恩尼格玛的核心部件,转轮的圆周上刻有1到26的数字,转轮的正面有26个触点、背面有26个触针。一个轮子的触点可以和另一个轮子的触针套接在一起,形成转轮组。在转轮内部,触点和触针之间通过电线相互连接,从而形成了一种代换关系。转轮转动后,接线位置随之改变,代换关系也会跟着变化。每当键盘上键入一个字母,位于最右边的转轮就会转一格;右转轮每转完一圈26格,中间的转轮就会转一格;中间转轮每转完一圈26格,左边的转轮就转一格。反射轮则始终不动,它对加密强度没有影响,但是起到了可以使解密过程和加密过程完全一样的作用。
插线板上面有26个插口,代表26个字母。使用时可用一根电线把任意两个插口连接起来,比如说可以把A插口和J插口连接起来,这时就会把键盘上的A和J两个按键互换,即如果按A键就会得到J,按J就会得到A。
恩尼格玛加密、解密过程
当使用恩尼格玛进行加密时,其过程如下:
(1)设好3个转轮的初始值,并用6根电线连好插线板上的6对插口。
(2)在键盘上输入明文,每输入一个字母,该字母信号就会通过相应的电线传到插线板。
(3)在插线板上,如果该字母正好属于6对连接插口中的一对,就互换字母,否则就不互换。然后,该字母信号会传到右转轮上。
(4)右转轮通过内部电线的连接方式,对输入的字母作代换,然后传到中间转轮,同时转动一格。
(5)中间转轮再对字母作代换,然后传到左边转轮。这时如果右边转轮从26格转到1格,则转动一格,否则不转。
(6)左边的转轮再对字母作代换,然后传给反射轮。这时如果中间的转轮正好从26格转到1格,则其自己也转动一格,否则不转。
(7)反射轮通过反射电路将结果传给灯盘,灯盘上对应密文字母的小灯泡被点亮。
由于反射电路的巧妙设计,恩尼格玛的解密与加密是相同的。在设定好了与加密时一样的转轮初始值和插线板接线后,在键盘上打入密文,执行以上步骤后,在灯盘上就显示出了明文。
恩尼格玛加密的例子
一个插线板没有任何连线的恩尼格玛,是如何对明文消息“ABC”进行加密的呢?如图所示,当从键盘输入字母A时,通过右轮子,A被代换成了Y;再经过中轮子,Y被代换成了R;最后经过左轮子,R被代换成了E。也就是说,A经过三次代换后,最终被加密成了E。当A字母被加密后,右轮子会向上移动一格。当接下来再输入字母B时,B会被最终代换成T。同样,右轮子也会向上移动一格。当接下来再输入字母C时,C会被最终代换成G。这样,明文“ABC”就被加密成了密文“ETG”。
延伸阅读
恩尼格玛代换表
一台恩尼格玛可以有多少种代换表呢?3个转轮的排列位置可以是任意的,所以共有3!=2*3=6种排列方式;3个转轮的排列确定后,它们一共可以有 263=17576种转动位置;插线板上,从26个字母中选取6对互换字母的方式可以有 (1/6!)(26*25/2)( 24*23/2)…(16*15/2) = 100 391 791 500 种。所以,代换表的总数=6*17576*100 391 791 500 =1 058 691 676 442 000。
如此巨大的数字,任何统计方法对它都无能为力,而且还可以很容易地通过改变转轮内部的电线连接方式来产生新一批代换表。直到二战结束时,希特勒和他的高官们都坚信它是不可破译的。
(本段文字参考王善平和张奠宙所著图书《二战时期密码决战中的数学故事》)
撰文/马春光(哈尔滨工程大学)