五千年(敝帚自珍)

主题:【原创】密码传奇(三):13、纯技术篇之活拆了ENIGMA(4) -- 1001n

共:💬14 🌺39
全看分页树展 · 主题
家园 【原创】密码传奇(三):13、纯技术篇之活拆了ENIGMA(4)

【附加模块】

操作员输入的字母信息,辛辛苦苦穿过了层层转轮,到现在总算是出来了。不过,出来了也白搭,因为它们还得回去——因为,横在这些电信号前面的,赫然竟是面镜子!

这面“镜子”,就是我们要说的反射板[德]Umkehrwalze,[英]Reflector)。说是“板”,其实怎么看也不象块“板”;说起来,这明显是从英语里翻译过来的,也有人翻译做“反射子”——只是,walze在德语里有“轮子、辊子”的意思;看来,翻译成“反射轮”更加合适一些吧。

不过,为了和后文还要提到的反射轮相区别,这里,还是继续沿用反射板这个称呼好了。

说它是“镜子”,其实只是个形象的比方而已。镜子这东西,反射的是光线;而反射板这面“镜子”,反射的却是电信号——而“反射”两个字,倒还真是挺贴切的,呵呵。

前面,我们比较详细地研究了转轮组的特性。回想一下不难发现,正是由于转轮内部的连线,和转轮彼此之间的“触针 - 触点”式连接,整个转轮组才构成了通路。作个流程图,大概就是这样的:

进转轮组

│ ┌────────右轮────────┐

↓ ↓ ↓

字母信号 → 输入轮 → 右轮触针 → 右轮内触针到触点的连线 → 右轮触点 →

┌────────中轮────────┐

↓ ↓

→ 中轮触针 → 中轮内触针到触点的连线 → 中轮触点 →

出转轮组

┌────────左轮────────┐ │

↓ ↓ ↓

→ 左轮触针 → 左轮内触针到触点的连线 → 左轮触点 → 反射板 → ……

真是要命,为了说明反射板,还得介绍一下新出现的组件——输入轮[德]Eintrittwalze;[英]Entry Wheel,entry stator)。好在这个轮子不是什么关键设备,简单提一下也就可以了。

这输入轮有点“神似”转轮,但是跟转轮又完全不同;打比方说,它有点象个挤压成型的机器,专门负责把原料挤压成一定形状,供后续工序使用。

比如,当原料——字母信号进来的时候,它们跟转轮组的触点、触针们是没法一个个匹配的;而经过输入轮的“加工梳理”,这些字母信号就会沿着输入轮左面的触点们流入转轮组。

因此,外观上,输入轮的左面也有转轮般的触点;跟转轮完全不同的是,输入轮肯定是不能转的——否则它巧笑倩兮地轻轻一转,那些负责向输入轮传递字母信号的集束线缆,还不全得拧麻花了啊。。。

在这里也强调一下:输入轮所接收的,其实还不是操作员直接在键盘上打出来的字母信号,而是被后文要介绍的连接板交换过一次后的字母信号。这个倒不影响理解,因为传进输入轮的字母信号无论是什么,后续的步骤都是一样的——不都是字母信号么?通吃通吃,呵呵。。。

为了便于理解后文,我们不妨再打个比方:输入轮象一座桥,让它接收的字母信息可以顺利地抵达彼岸——转轮组,并被加密。

既然是桥,允许去彼岸,那么从彼岸折返回来自然也是可以的——信号经过反射板,折返回转轮组,还会再回到输入轮。这样,能够被转轮组识别的“触点 - 触针”式字母信号,又在这里被转换成线缆信号,从而可以送入后续的连接板。

关于输入轮还有个小八卦。在商用型的ENIGMA上,操作员输入的字母是按键盘顺序被映射的,举例来说,他通过键盘输入Q、W、E、R、T……,将被输入轮分别映射为A、B、C、D、E……,并传入后面的转轮组进行进一步加密。这个QWER,正是所谓的键盘顺序映射,如下:

输入字母 Q W E R T Z U I O A S D F G H J K P Y X C V B N M L

| | | | | | | | | | | | | | | | | | | | | | | | | |

映射结果 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

顺便说一句,这映射就是指进入输入轮的字母,和流出输入轮的字母的对应关系。看了上面这张映射表,不难发现:ENIGMA的键盘顺序,和我们今天用的键盘有点不一样;各位也不用辛苦去一个个按表对比了,这里直接附上图吧:

点看全图
外链图片需谨慎,可能会被源头改

这是ENIGMA的键盘

不妨低头看看,是不是跟自己的键盘顺序不太一样?

前文提过,波兰人不是买过商用型的ENIGMA么?按说,费点儿劲拆了这个输入轮,波兰人就能看到输入轮里面的连线情况,也就知道了它的映射规律是键盘顺序映射;可邪了门儿的是,拿这个顺序来破解德军电文,却总是不对。

天才,总是在最需要的时刻才闪出智慧的火花啊——我们的雷杰文斯基同志算啊算的,算着算着,眼前突然就一亮——闹了半天,这个输入轮和军用型号的输入轮,里面的构造是不一样的;或者说,它们的映射规律是不同的。

原来,德军的ENIGMA输入轮的映射关系是这样的:操作员输入A、B、C、D、E……,经过输入轮,出来的信号还是A、B、C、D、E……,这就是所谓的字母表顺序映射

说了半天,不就是“M对M,N对N;一百年,不许变”么?还搞东搞西的——可说是这么说,当你完全不知道军用型的输入轮会偷偷地改变的时候,面对怎么也对不上的计算结果,恐怕首先先怀疑的,该是自己的计算方式吧?何况,转轮组、反射板、连接板都是可以变化的——在此前提下,还能想到问题可能会出在这个最不起眼的输入轮上——雷杰文斯基之厉害,也就可以想见了。。。

不过,恰恰是因为军用型ENIGMA的输入轮的映射规律比较简单,看上去实在是再正常不过,很多文献资料在介绍ENIGMA构造的时候,干脆就把它给忽略了。好,关于输入轮就八卦到这里;现在,让我们接着来看本节的重点,ENIGMA的标志性装置——那极有个性的反射板吧。

点看全图
外链图片需谨慎,可能会被源头改

惭愧,这张截取的不是很清楚,但主体是反射板,嘿嘿

右侧的,则是以前介绍过的字母轮箍——只不过,轮箍上的是数字而已

和输入轮一样,反射板也是和转轮组直接连接的,所以,它的模样多少跟转轮有点儿象——在ENIGMA机里,反射板位于转轮组的左边;或者说,反射板的右面,和转轮组左轮的左面相连。

上文说过,转轮的左面有触点,右面有触针。那么,为了和转轮相连接,反射板应该是右面有触针的;实际情况,当然也正是这样——严格地符合逻辑推理结果,呵呵。

这些触针说明了一个问题:所谓的“反射”,其实不过是通联电路的折返而已——而要说明白这个机理,实在比较麻烦,我们还是看图吧。

顺便说一句,图中所示均为简化情况,别真去找26个触点哟——就为这点玩意儿,真是活活画了一个下午加一个晚上。。。

点看全图
外链图片需谨慎,可能会被源头改

这是单个转轮的抽象图,只画了4个触点和触针,意思意思而已,呵呵

现在我们上转轮组了:

点看全图
外链图片需谨慎,可能会被源头改

同样的办法,把反射板、输入轮也抽象化:

点看全图
外链图片需谨慎,可能会被源头改

在机器内,它们的相互关系就是这样的,只差紧密扣在一起了

点看全图
外链图片需谨慎,可能会被源头改

好啦,现在它们亲密无间了

这下,我们就可以开始研究ENIGMA的加密过程了。首先,我们输入一个字母R,也即

点看全图
外链图片需谨慎,可能会被源头改

挺清楚的,就不解释了

点看全图
外链图片需谨慎,可能会被源头改

进入转轮组的中轮了。

注意,R在右轮内之所以掉头折下,是因为右轮触针-触点之间的连线就是这么连接的

点看全图
外链图片需谨慎,可能会被源头改

R这回杀到连接板了

点看全图
外链图片需谨慎,可能会被源头改

得,在连接板里来了个大窝脖儿

点看全图
外链图片需谨慎,可能会被源头改

被遣送回来了。为了和进入的路径区别,这里改用红线标注折返路径

点看全图
外链图片需谨慎,可能会被源头改

辛辛苦苦,总算是从转轮组里出来了

点看全图
外链图片需谨慎,可能会被源头改

不用说,出来的肯定跟进去的不一样了

画这些图真是麻烦死了……不过,为了更形象地表现这个过程,1001n又画蛇添足地把它们做成了动画,希望各位看起来能对这个流程更清楚一些:

点看全图
外链图片需谨慎,可能会被源头改

是循环的,看不清楚不妨多看几遍,咱心里也更满足一些啊,呵呵

得,喘口气,冒根烟儿……

一个1001n自认为比较清晰的流程就是这样的,反映了加密单个字母的情况。下面的,则是连续加密两个字母的情形了:

点看全图
外链图片需谨慎,可能会被源头改

注意,本图忽略了输入轮

有必要介绍一句的是,这张图没有版权,原作者也不详。唉,不能不承认,人家画的是真好啊,又简练又说明问题;而1001n,也只是把它翻译了一下而已。

不过,没有前面的烂图铺垫,这张图也许还不太容易一下看懂——而能一下看懂的兄弟,就别说什么了;呵呵,咱总得给自己的拙劣画工找个台阶下吧。。

到了这个时候,什么转轮的构造啊,转轮组的构造啊,输入轮的构造啊,反射板的构造啊……等等之前我们介绍了半天的东西,才终于组合出了强大的威力;正是这些组件的精诚合作,一个个字母才会被变得连它们的亲人都认不出来了……

——密码机啊密码机,认真琢磨起来,其实也不算太难,是不是?嘿嘿。。。

现在,再来八卦一下这个反射板吧;顺便说一句,1001n的这类“八卦”,和坊间真正的“八卦”,那水准实在差的太远了……

反射板这东西,和转轮组的左轮是相连接的;而左轮,是可以转动的。这也就是说,左轮和反射板其实是处于一个相对旋转的状态的;既然是相对旋转,有左轮旋转就够了,反射板完全可以固定不动,一样可以达到不断改变连通电路的要求。

于是,在ENIGMA的大部分型号中,反射板都是这么固定着的。这也确实有一定道理:毕竟,在图纸上让它转一下容易,可要在机械结构上实现,肯定要增加工序和改动相关零件;而这么做,似乎又想不出什么必要,那还是别多此一举了吧。

不过,人们对于安全强度的认识,是会随着时间流逝而进步的;观察反射板的发展历程,我们就可以很清楚地看到这一点。

1926年,德国海军率先采购了ENIGMA Funkschlussel - C [ENIGMA 无线电(收发报机)密码 - C型],而它的原型,就是商用型的ENIGMA - C。在这个商用的C型上,虽然反射板在机器出厂的时候就被固定了,但是,可以有一到两种安装位置的选择。于是,出厂的C型机,其实就有了两种稍有区别的亚型。

这实际就意味着人们已经认识到:对密码机来说,一静不如一动;也因此,“反射板可以不转”并非最好的主意。既然如此,针对反射板的改革很快接踵而至了。

随后,C型的ENIGMA发展为枝繁叶茂、多子多福的D型ENIGMA,而这个反射板,也跟着升级了——它可以调节到26个位置中的任意一个。这样一来,变化的总体可能自然又是原来的26倍了——只不过,在对电文加密的时候得事先确定一个位置,中途是不能改的。不管怎么说,这会儿的反射板,已经隐约有了反射轮的意思了。

再往后,反射板开始沿着两个不同的方向进化着:一是陆军和空军使用的国防军型ENIGMA的方向,二是海军型ENIGMA的方向。

这先说这国防军型的吧。这个系列的反射板都是固定的,也不能转,但是由于内部连线关系不同,先后发展出4个型号。最开始的,是A型反射板(Umkehrwalze A);1937年11月1日,升级为B型(这里说的A、B、C、D型都是反射板的型号,不是ENIGMA的型号)。

点看全图
外链图片需谨慎,可能会被源头改

这张图上,左上角的就是反射板;上面的B字,清楚地标明了它是B型反射板

从1937年直到开战后的一段时间,反射板都没有什么新的改变。直到1941年,它才又升级为C型;而D型,具体装备时间不详,被盟军发现的时间,则迟至1944年1月2日,具体情况不详。1001n估计,大概也是盟军缴获后才发现:呀嗬,这地方有点儿不一样了啊。。

最后发展出的这种D型反射板有个很特别的设置,就是允许操作员部分地改变反射板的内部连线关系。也就是说,本来在出厂时就已经固定了的内部连线,现在可以由操作员手工调整了——显然,从安全角度看,这比以前的反射板要好得多;只是,这个D型出现的实在是太晚了,等到它诞生的时候,二战已经打得差不多了。

无独有偶,类似这种“最后的才是最好的”的现象,也发生在海军型的反射板上。

海军型ENIGMA,从技术的角度讲,应该说是ENIGMA系列的精品。1941-1942年间,正是大西洋海战打的如火如荼的时候,海军M系列ENIGMA中的的M4型,也终于应运而生了。比起三年前的M2型和两年前的M3型,M4型最大的变化就在这个反射板上。

变在哪里呢?

两点:一、变薄了;二、能转了。

在这里也插一句:海军型的ENIGMA,从来都跟别的系统使用的型号不太一样。比如,在ENIGMA刚被装备不久的1930年,海军型ENIGMA还没有连接板,后来听取了陆军的意见,才有了这个装置。

不过自此以后,海军型ENIGMA就开始大踏步地领先其它型号的ENIGMA:1934年8月,在别的型号还是以三个转轮选3个的方式安装的时候,海军型ENIGMA已经改成五个转轮选3个了。

点看全图
外链图片需谨慎,可能会被源头改

这就是当年的海军五轮型ENIGMA的五个转轮,随机器专门有装它们的盒子

至于空出来的地方,1001n目前还没考证出该装什么,呵呵

五年以后,当陆军空军也终于升级为五选3的时候,一直在顺利破译ENIGMA的波兰人当场就没咒儿念了——可见,海军型的技术有多么领先;毕竟,那是整整五年的时间啊。这还没完,海军型ENIGMA很快又变成了七选3,八选3;最后发展到M4型时,连反射板也可以转了!

这个M4,在ENIGMA的成员众多的家族当中,大概该算是非常出名的一个了,以至于它都有个响亮的绰号——海神Triton,可别翻译成和尚大吹的那个法螺哟);而在盟军,还专门给它起了代号,是更加凶猛的鲨鱼Shark)。

同一个家族的产物,为什么会出现这样的差别呢?说到底,还就是因为“客户才是上帝”。经过残酷的战争检验,虽然德国人相当信赖ENIGMA,但是从谨慎和多疑的天性出发,海军还是对ENIGMA的安全强度提出了更高的要求。

而到这时候,ENIGMA已经是个非常成熟的密码机了;要想再增加它的安全度,只有两条路:要么推倒重来,要么进行局部改良。推倒重来的话,时间肯定是不允许的;唯一的办法只有对ENIGMA进行局部改良。

而对于密码机来讲,它的安全强度是制造完毕的时候就已经确定下来的;因此,想要加强安全强度,德国工程师们别无它途,只能一个个重新审视ENIGMA的内部结构模块,并且寄希望于能够以最小的设计改动代价,来实现这个目的。

他们看来看去,最后还是看中了转轮组这个绝妙的装置的潜力,并决定为转轮组再增加一个转轮——很显然,生产这个第四转轮时,和生产其它转轮的工序大致相同,是个最经济最简单的解决方案。

而增加第四转轮,不仅经济上合算,而且也基本不需要额外培训——因为在使用时,它实在是跟前三个转轮的操作没什么区别;即便在安装时,也只要把它和反射板扣在一起,然后装在转轮组的旁边就成了——至于这第四转轮内部结构的变动,本身不能步进,等等这些机理上的细微区别,根本不需要操作员去具体理解和掌握,照样可以很好地完成任务。

这个第四转轮也有两种型号,即Beta型Gamma型。下面这个,就是Beta型第四转轮和反射板、转轮组的全家福:

点看全图
外链图片需谨慎,可能会被源头改

最左面的是反射板,然后是Beta型第四转轮,再右边是三个转轮

点看全图
外链图片需谨慎,可能会被源头改

放大看看,中间这个就是Beta型第四转轮

注意,它的右面有触针,但是跟右面的转轮一比就知道,它没有棘轮

这里也顺便说一句:这个第四转轮不能步进的原因,只是因为它本身是没有棘轮的;而没有棘轮,并不是因为工程师们的设计疏忽,而是故意把它省略掉了。

为什么好好的棘轮要被省略掉呢?

原来,在ENIGMA机槽内,能够推动转轮步进的掣爪(Pawl)只有三个。这三个掣爪是具有某种机械联动关系的,每个掣爪对应一个转轮,它的作用则是两个:既可以推动转轮上的棘轮,从而使转轮进行步进;也可以因为随着步进落入凹口圈的凹口,从而导致之后的转轮进位。

换言之,转轮组的步进、进位和双重步进,都是由于这三个联动的掣爪的存在,才能在机械上予以实现。前文为了清晰起见,没有提到这个小装置;而现在就要说一句了:第四转轮不能跟随转轮组步进的最根本原因,正是因为德国人从来就没有在机槽内设计出第四个掣爪来推动它!

点看全图
外链图片需谨慎,可能会被源头改

M4的机槽。注意图中四个褐红色的小滚轮下方,只对应了三个掣爪

掣爪,就是那三根细扁的金属短杆

实在说,要为第四转轮增添一个联动的掣爪,必然要对ENIGMA的内部机械结构做出相当大的调整才成;这样的大手术,必然需要时间。而在军情急如飞火的1942年,海军哪里还有那么多时间等工程师慢慢改良ENIGMA——时不他待,这个掣爪没被做出来,进而第四转轮也不能随转轮组旋转,也就是个可以理解的现象了。

这也是第四转轮被1001n排除在转轮组结构外的最重要的原因。既然不能按转轮组的规律运转,那么,无论它长得多象转轮组内的转轮,也得被单独拿出来分析。不过,第四转轮尽管不能随转轮组步进,只能靠手工调节,却也绝不是可有可无的一个创意。

稍微思考一下就会明白,增加这个转轮以后,ENIGMA的密钥周期长度(注)又将跃升为以前的26倍——这个数字无疑也是诱人的,一如我们前面计算的那样:

三个转轮的变化 * 第四轮的变化 = 16900 * 26 = 439400

[注]密钥周期长度,在此指转轮组与第四转轮在工作时,遍历所有可能状态的总数量。比如

第四转轮 - 左轮 - 中轮 - 右轮

T F Y B

这样的组合算一种可能状态;而第四转轮与转轮组所有可能状态的总量,就是所谓密钥周期的长度,它反映的是经过多少次加密以后,这些转轮的总体行为将出现循环。具体到上面那个例子,密钥周期长度就是截至再次出现 T - F - Y - B 这种组合时,转轮们逐字加密过的总次数——解说的不太好,希望baumchen老兄能够将就看明白,呵呵。

于是,这个第四转轮,就被作为M4型ENIGMA的标准件被采用了。但是在ENIGMA机器中,供安装输入轮、转轮组和反射板的空间,一直都是比较局促的;这几位就座以后,机槽里可真是再装不下什么新东西了。现在,凭空多出一个转轮,那反射板往哪搁?

不过,这种“螺蛳壳里做道场”的小问题,又怎么可能难得住德国的工程师们——把反射板削薄点儿,再把它跟第四转轮搞一块儿,总共只占原来反射板的空间大小不就完了嘛——于是在M4上,这个变薄了的反射板与第四转轮合在一起,也跟着能转了!

点看全图
外链图片需谨慎,可能会被源头改

还是刚才那张图,ENIGMA的机槽只有这么大

点看全图
外链图片需谨慎,可能会被源头改

这是把削薄的反射板和第四转轮,一起装入机槽后的样子

下面还等什么?当然是把转轮组也给装配好,其实就是用那根杆把三个转轮串起来:

点看全图
外链图片需谨慎,可能会被源头改

点看全图
外链图片需谨慎,可能会被源头改

再把转轮组装入,齐活儿啦

说来说去,M4就是在转轮组外,又附加了一个不能步进、只能手动的转轮而已。从这个角度讲,M4样子唬人,与其它型号的ENIGMA却也没有本质区别;相比其它国家的后起之秀,即便是M4,也只能望其项背了。

不过,关于其它型号密码机的话题,这里就暂不涉及了,也不敢说什么时候才会涉及——写起来才知道,这任何一个专题简直都是写不完的,这一台小小的ENIGMA,就……

唉。。

【反射板的作用分析】

可以看出,反射板的作用就是把经过转轮组加密的字母,再次送回转轮组加密,只不过经历的转轮顺序由从右往左,“反射”成了从左往右的而已。那么,这个反射板的作用显然就是把本来经过三个转轮的路径,给延长了一倍,变成了经历六个转轮——虽然,经历的后三个转轮其实和前面的三个转轮是一样的。

看起来,是不是还真有点“镜子”的意思?

而第三只眼兄关于“经过反射,是不是就变成六表加密”的问题,这里也提一下吧。

严格地说,每个转轮都有着二十六张换字表,因此,三个转轮构成的转轮组,实际上是不能称为“三”表加密的。前文在这里出现了纰漏,也向大伙致歉;原文已经修正,感谢第三只眼兄提出的问题:)

准确说,每个转轮都是二十六表加密;具体到特定的一个输入字母,每进入一个转轮时,都将被该转轮二十六张换字表中的某一张加密。而转轮组是由三个转轮构成的,因此转轮组总的换字表数量,应该是二十六张的立方。当然,这是没考虑双重步进机制时的理论计算值。

为什么说是二十六表加密?此外,三次加密,与经历折返的六次加密,到底有没有安全强度的增加?分析这个问题稍有些复杂,1001n准备在后文中提到。这里,还是先拉回到反射板上吧。

由于这个镜子般的特性,反射板还带来了一个有趣的结果——让我们做个智力体操吧……

设想转轮组中的某个转轮。现在,它左边的触点相当于字母A',右边的触针相当于字母A——注意,A和A'是两个完全不同的字母。我们把它记为下面这个样子:

A' ---|--- A

要注意的是:实际转轮中,只有触针到触点的连线关系,并没有A和A'这么两个明确的字母;这里把它暂时具体化,也只是为了便于描述而已。

那么,它就意味着输入的字母A,经过这个转轮以后就被唯一地加密成了A'。这并不难理解,因为该转轮的触点和触针之间,是用导线一对一连接的;换言之,能连接到触针A的触点,只有A'。

因此,一个字母如果从左边的触点流入,并且从右面的触针输出了A的话,它就只能是A'。

ENIGMA这东西,属于流式密码机The Stream Cipher Machine),也就是说:针对每个明文字母,ENIGMA都会一个个地连续进行加密。

同时,ENIGMA每次加密时都是机械部分率先动作,而在运动当中,ENIGMA内部的电路是不通的;只有当机械运动到位后,电路才被连通——这就意味着:在连续输入两个字母之间的这段时间内,整个ENIGMA的机械运动部件,必在某个瞬间全部处于“静止”状态。

正是靠着所有机械部件这一瞬间的静止,ENIGMA的电路才会导通,字母信号才会迅速地在迷宫般的机械部件中迂回折返,变成被加密的字母信号。

好在电流的速度比机械响应那是快多了,因此,即便操作员打字再快,也不会出现电信号跟不上的情况——倒是机械运动很可能还没到位,呵呵。这也是为什么电影里出现使用ENIGMA的场景时,操作员总是打的很慢,除了对照明/密文外,大概就是因为机械方面的原因吧——这是1001n自己瞎猜的,呵呵。

继续上面的分析。按上面的规则,我们再进一步设定这个转轮为右轮,它的状态为

A' ---|--- A

右 轮

随后,我们可以继续追加中轮和左轮,最后构造出完整的转轮组的情况:

C' ---|--- C ┆B' ---|--- B ┆A' ---|--- A

左 轮 ┆ 中 轮 ┆ 右 轮

←── 输 入 信 号 传 输 方 向 ←──

结合上面的设定,这个表达应该不难理解,这里就不再具体解释了。

在实际情况中,我们还要考虑上反射板。这个反射板,当然是在转轮组的左边;同时,它把信号折返回去,也就是

反射板 ┆ C' ---|--- C ┆B' ---|--- B ┆A' ---|--- A

┆ 左 轮 ┆ 中 轮 ┆ 右 轮

┌←────── 输 入 信 号 传 输 方 向 ←──

┕──────→ 折 返 信 号 传 输 方 向 ──→

这下就很清楚了:如果还想得出个A的最终折返结果,那么在反射板这边,传入的信号就必须是C'

而反射板的结构决定了:每一个进入点只连接另一个特定的输出点;宏观地看,就是从左轮传入的某个字母信号,将被反射回左轮的另一个位置,从而变成一个迥然不同的“新”字母。这就意味着:C'进入反射板后,必然是以非C'的字母输出

既然C'不能被反射成C',那么后面的电路,也就是 C'/C → B'/B → A'/A 就成了无源之水,结果自然也就不会一步步演变成A了;换言之,输入转轮组的A,经过反射板这么一折返,流出转轮组的时候肯定就不再会是A了。

这就意味着:由于有反射板的存在,每个输入的字母,都不可能被加密为它本身

换言之,当你看到一份诸如

AGTLG QWLGM QWEOG ……

这样的密电的时候,虽然你根本不知道明文是个啥,但是你依然可以非常有把握地说,“我起码知道,明文的第一个字母肯定不是A,第二个字母肯定不是G,第三个字母肯定不是T……”

——咱不懂ENIGMA的密文,也不会破译它;但是,咱知道怎么让MM崇拜咱,是不?呵呵。。。

任何字母都不会被ENIGMA加密为它本身”——虽然很有意思,但从密码安全的角度看,这绝对不是什么好消息。最最起码,当敌人破译出明文以后,拿这份明文和密文一对照,就知道自己的破译有没有原则性错误:两份文本对齐,上下对照着一看,如果同样位置有同样的字母,那肯定就是自己搞错了。。

能够简单验证破译出的明文是否错的离谱”,这也得算ENIGMA的一大特点了……

当然,也有可能译文全错,但是又没有出现上述这类错误的情况;于是,这个办法并不能成为通用的校验译文正确与否的标准。但是,作为一个最简单的验证措施,它的确还是相当有用的:英国人日后在破译ENIGMA的时候,这个特点可是大大帮助了他们的猜测性明文攻击(猜测性明文攻击为已知明文攻击的变种)——这是后话,现在就不多提了。

总的来说,反射板这个部件,为ENIGMA带来了相当大的危害。从这个意义上讲,反射板是ENIGMA上的一大败笔;也正因如此,其它国家的密码机,借鉴ENIGMA之处甚多,唯独这个反射板,却往往是避之不及。说来说去,天才也会犯错误——ENIGMA的发明人、德国的舍比尔乌斯同志,终于也在这里栽了个小跟头。

不过,正因为有了反射板这个独特装置,ENIGMA才有了极具特色的加密-解密同相的特征。这一点前文已经多次说过,这里就简单提一下吧——在接到密电以后,操作员只要调整好设置,再把收到的密电,逐个字母地打一遍,就能从显示板上依次观察并记录到正确的明文。

道理也很简单:既然明文P和密文C之间有折返对应关系,P会被折返成C;那么同样地,把C“按”回去,自然还会从P“冒”出来——于是,不需要额外的解密设备,只靠ENIGMA自身,就可以顺利完成解密。解密的过程如此方便,可就是反射板的功劳了;客观地说,这个特性在实用场合,特别是在烽火连天的战场上,又的确是个很不错的优点。

——败也萧何,成也萧何;这反射板,又该怎么评价它呢?

或许,应该从不同角度来评判吧——从密码机安全强度的角度来看,反射板是个错误;但是从机械美学(有这词么?咱光知道有个暴力美学)的角度看,这反射板却又让人玩味不已。

既然我们不是破译ENIGMA的盟军密码分析家,那么,也不妨泛泛体会一下反射板带来的密码美感吧,呵呵。。。

--------------------------------------------------------------------------------------

到现在,一个字母历经输入轮、转轮组、反射板、转轮组、输入轮,已经被加密成了一个完全不同的字母;多表替代的威力,到现在,也已经发挥的淋漓尽致。

不过,经过如此这般多表替代反复加密的ENIGMA,安全性已经非常好了,但是还没好到理想的程度——事实上,如果有数学高高高手对ENIGMA进行仔细分析的话,他完全可以通过计算来彻底破解ENIGMA,而工具也不要特殊的,纸和笔就够了——这一点,已经被数学证明了。

这就是纯粹的多表替代所带来的问题;对于密码机而言,这样的结果当然很不美妙——而这一点,很快就引起了德国人的警惕。为了解决这个问题,他们又给ENIGMA装上最后一道锁。

由此,我们对ENIGMA的剖析,也该进入了最后一个模块了。

---------------------------------

写完这篇下来,又一直改到现在,真是元气大伤,呵呵,休息几天再继续吧。。

关键词(Tags): #密码#破译#二战#ENIGMA#布莱奇利元宝推荐:ArKrXe, 通宝推:黄序,

本帖一共被 3 帖 引用 (帖内工具实现)
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河