硝烟中的艺术品——恩尼格码

在计算机系列文章第一期的时候为大家大概介绍了现代计算机的分支及发展(详见《从开始到现在:一起走进计算机文化》)。这一期我们从计算机的前身讲起,开始我们的计算机的探索之旅。

故事要回到二十世纪初。

当时就已经有一些国家开始将一种“转子加密机”(如图1所示)用于商业及政府之间的信息加密及传输。这种加密机后来被统称为恩尼格玛机

△ 图1:恩尼格玛机。(图片来源:Crypto Meseum)

恩尼格玛机由三部分组成,从下往上分别是键盘(下方按键),显示板(中间字母显示,通过字母下方的灯泡亮起来显示字母)以及转子(机器上方像齿轮的四个转子)。

若是加密方使用,键盘则输入明码字母,显示板显示的是加密后的字母,而上面的转子则负责经过一系列的机械及电路设计对输入字母进行加密。若是解密方使用,键盘则输入加密后的字母,显示板显示解密后的字母,而转子则负责通过一系列的机械机电路对输入字谜进行解密。也就是说,如果两个加密机的设置相同,加密前后的字母是可以互相转换的。即如果在键盘上输入 A 得到的加密是 F 的话,那么“在同一设置下”,键盘上输入 F 即可得到加密前的 A。

那么怎样才是机器的同一设置呢?我们首先得先了解一下转子的结构。

△ 图2:转子。(图片来源:Wikipedia)

转子是恩尼格码机的核心部分。最开始的恩尼格玛机只有三个转子。后来为了增加破译的难度,在1938年之后恩尼格玛机开始使用五个转子,直至最后增加到八个。这些转子使用罗马数字 I 到 VIII 来识别。如图2所示,一个转子分为两半,转子右侧均匀排布着26个金属管脚,以代表26个英文字母(空格和特殊符号用字母组合表示)。转子的左侧同样等距排布着26个金属触点,也代表着26个英文字母。

△ 图3:转子。(图片来源:Wikipedia)

当两部分合在一起并在键盘上输入一个字母的时候,转子右侧的其中一个管脚就会通电并接触左侧转子的一个触点形成通路。若此时代表 A 的管脚连在了代表 M 的触点,此时的字母 A 就被加密成了字母 M。同一输入字母会经过 3 到 8 个转子的不同加密来增加破译难度。而连接触点和管脚的金属线在每个转子内的排列方式也不尽相同。操作人员可手动拧动转子进行设置。每次输入之后,放在最右边的转子便会转动一格从而改变加密方式。每当靠右的转子转动一周之后,其相邻的左边那个转子便会转动一格。和钟表秒针分针和时针的感觉很像。由于这样的设置,同一个字母输入便会得到不同的加密输出。同样,同一个加密后的字母也可能被解码成不同的字母。这一特性改变了当时同一输入得到同一输出的加密方式,大大的增加了破译的难度。

那么回到开始的话题,什么叫做同一设置呢?那就是在加密和解码之前将加密方和解码方的恩尼格玛机转子位置、转子内部字母排列顺序及接线板的连线(见后文)设置在同一起始位置上。而这些起始位置需要被记录在密码本中并定期更新。

△ 图4:接线板位于恩尼格玛密码机前部键盘的下方。(图片来源:Wikipedia)

后来第二次世界大战爆发,恩尼格玛机被德国改进后用在了对军事信息的加密。其改进除了增加转子个数之外,还在机器的正前方添加了一个接线板,如图4所示。

接线板允许操作人员通过连接两个字母来设置更多不同的线路。接线板上每条线都会连接一对字母,使电流在进入转子之前改变方向。比如图中连接的 A 和 J 点,当操作人员连接这两点并按下 A 键时,电流就会先到达 J 插口(相当于按下J 键)再流经转子。接线板上有 26 个字母,所以最多可以同时接 13 条线。(而在实际使用中,有些恩尼格玛机只用 10 条连接线)细心的读者可能会注意到为何每个字母都会有两个插孔。那是因为上插孔连接键盘,下插孔连接转子。当插头插入时,该按键(A)和转子将会断开。并通过插头的另一端与J按键连接后接入转子。总的来说其运行原理可由图5表示。

△ 恩尼格玛密码机的原理图。(图片来源:Wikipedia)

图中 1 为供电系统,在 2 处按下 A 键后电流流过 3 通过 4 , 5(转子)进入 6(反射器)。反射器将电流导回转子并流向 7(S键)。此时S键因接线板插头的插入两级被断开。电流因此流向接线板插头的另一端(D 键)。此时 D 键的两级同样因插头而断开,所以电流流向显示器 字母 D 下面的灯泡。整个系统在转子和接线板的共同合作下将字母 A 加密成为字母 D。当然,如上文所描述的,按下按键的同时转子位置发生改变,所以再次按下 A 键的时候将会的到不同的结果。

读者可能会怀疑一个插线板能有多大的功效居然使得平时作为商用的恩尼格玛机被军方使用?其实这个小小的接线板可以说是破译恩尼格码密码最无解的难题之一。原因很简单,因为解码时破译方需要有同样的连接板设置。如果只是三个齿轮运行,其密码最多可以有 26 x 26 x 26 = 17576 种可能。(抛开有些恩尼格玛机中第二个和第三个转子会共同转动的情况。)每增加一个转子也只会增加 26 倍的密码可能性。然而一个小小的接线板,在用十条线做连接的机器中便将会增加

倍!

在这个基础上再加上转子起始位置及线路连接设置的定期更新,恩尼格码被当时德国称之为不可破之加密,德国军方对其有着非常高的自信。原因很简单,因为敌人不可能用穷举法来破译密码。

但众所周知,恩尼格码还是被破解了。看似如此周密的加密系统存在着哪些缺陷呢?科学家们是如何利用这些缺陷的?他们在破解恩尼格码的时候有经历了哪些心路历程呢?且看下回分解。

(0)

相关推荐

  • 本周科学界最酷的照片(12.7~12.13)

    一座巨大的冰山正在向南大西洋的一个野生动物保护区冲去 2017年7月,一座面积约为4个深圳大小的巨大冰山在南极洲海岸断裂,并开始向北漂移.尽管从那时起,冰山的边缘已经明显破碎,但被命名为A-68a的冰 ...

  • 3个转子,1个键盘,26个字母,恩尼格玛密码机为什么那么难破译

    在现代生活中,密码早已成为许多人日常使用的东西.我们的微信有密码,银行卡有密码,甚至手机屏幕解锁也有密码.而在军事领域,密码更成为不可或缺的东西.就拿二战来说,德军的恩尼格玛密码机,就成为决定二战战局 ...

  • 《密码法》颁布一周年,对于「密码」你了解多少?

    Matrix 首页推荐 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考.我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点. 文章代表 ...

  • 艺术品的解析:恩尼格码的破解

    题记:破解恩尼格码,先从给图灵提供肩膀的巨人-马里安.雷杰夫斯基讲起. 上一期我们介绍了恩尼格码机的原理及其在商业及军事方面的运用(阅读:<硝烟中的艺术品--恩尼格码>).那么如此周密的加 ...

  • 代号无畏、中情局始祖,破译“恩尼格码”,他才是007真正原型

    自从"007"系列小说火了之后,关于詹姆士·邦德真实原型的猜想就没有断过.坊间各种版本层出不穷,但唯一被原作者伊恩·弗莱明盖章的只有威廉·史蒂芬森(William Stephens ...

  • 烧脑,一种不能被破译的二战德国密码机:恩尼格码密码机

    今天和大家讲讲:恩 尼格码密码机.恩尼格玛密码机是德国人在第二次世界大战时使用的密码机: 恩尼格玛密码机有多牛?密码机内有三至四个机械转子,用于改变加密文字的电路信号.一共能产生多少种可能呢? 10, ...

  • “陆战之王”从硝烟中走来

    --人民解放军装甲兵发展历程回眸(一) 陈 辉 编者按:坦克被世界军队公认为现代战争的"陆战之王",装甲兵是以坦克为主体,以装甲车.步战车.自行火炮为基本装备,具有较强的机动力.突 ...

  • 英雄刘亮华:将神魂迷失在老山的硝烟中……

    36年前,全军闻名的"硬骨头六连"战斗在守卫祖国南疆的老山战场.在持续半年的卫边战斗中,夺敌2个高地,未丢一寸阵地,歼敌352名,俘敌1名,全连有十名战友牺牲在战场(详情参见< ...

  • 【原创】18岁芳华 从硝烟中走过来的战斗班

    从来都不能忘记,永远都需要想起--题记 (一) 夜深了,我在这座城的一角依然不停的敲打着健盘,在记忆深处搜寻着一些人生零碎的记忆. 这张照拍摄于18岁,最近,朋友圈刮起了晒18岁照的风,我想我也许是跟 ...

  • 《八子》在战火中成长的满崽,在硝烟中历练的刘端端

    在刚刚播竣的电视剧<我们都要好好的>里面,由刘端端饰演的小胡总和他的酒吧,俨然是众时尚美眉的聚会之所,而这个知性又儒雅.幽默又热心的小老板,不仅在开篇就帮助艾丽莎整蛊未婚夫,而且在后来,还 ...

  • 《八子》:在硝烟中追寻光明,在牺牲中守望未来

    历史上有关大宋朝的杨家将,或许大家都耳熟能详,故事中杨家七郎八虎保宋营,可歌可泣又悲壮至极.而在近代的战场上,也有杨门的八子,在中华民族身处内忧外患的生死关头挺身而出,上演了一幕幕可歌可泣的壮烈故事. ...

  • 《战火中的芭蕾》硝烟中的绝恋

    反映中俄两国共同抗击日本法西斯题材的历史战争影片<战火中的芭蕾>,由中俄两国组成的国际班底创作而成,影片监制是被誉为俄罗斯的"斯皮尔伯格"的著名导演.电影家协会主席尼基 ...