西西河

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

共:💬14 🌺39
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 【原创】密码传奇(三):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 帖 引用 (帖内工具实现)
    • 家园 再问,老兄不要烦阿

      是不是所有的报文都用莫尔斯码发出?就是不管是明文A还是密文A,只要是A,都是·—?

      德国有没有把这个电码重新设计并且本身也被加密过一次。如果真的这么玩一下,那盟军可有的头疼。

      有没有可能,在一篇密文里,不同的字母被加密成同一个字母。比如A--I,P--I

      至少我记得德文里面有U(上面还带两点),Enigma上面可没看到咧?再就是,数字还有标点也没有咧?

      中文可是笔划,中文一般怎么加密?

      至于举例问题,实在帮不上。因为到现在也只能在理论上理解双重步进,实践中是怎么实现的,还是想不出来。

      棘轮问题么,就不用讲啦。我原先以为是靠轮子本身的结构达成的。

      • 家园 你的第一个问题

        莫尔斯最早是在电报中用的,有过很多变种。早在19世纪中欧洲就统一了电报码,叫国际莫尔斯码。那时美国还在用美国莫尔斯码。后来无线电通讯从一开始就采用了国际莫尔斯码。二战的时候短距通讯有调幅甚至调频等语音通讯,但长距一般还是用基于点划的码。另外国际通讯统一用莫尔斯码,所以训练无线电人员莫尔斯码是一定要训练的。

        但不是所有国家内部都用莫尔斯电码。莫尔斯电码是基于拉丁文的电码,对不少国家不适用。比如日本就有自己的基于片假名的电码系统,即对每个片假名字母编码。中国的电码系统也不是莫尔斯码。

        用哪种码对解密码没有区别,截收到的反正都是点和划。你用片假名发,我用英文字母抄,反正都只是个符号。其中对应关系对破密码的人来说根本不是问题。


        本帖一共被 1 帖 引用 (帖内工具实现)
      • 家园 没烦没烦,就是进来一看,头有点大。。

        居然有五个问题……咱也不是专家,随便探讨探讨,等待更高的高手来指教吧:)

        1、是不是所有报文都用摩尔斯电码?

        我自己倾向于认为,是这样的。

        从道理上讲,在传输密电的时候,电码只是起到了载体的作用。因此,电码是不用保密的——我不怕你把AGFGX全部抄下来,因为抄下来你还是不知道我在说什么。

        不过,既然摩尔斯电码被称为国际通用电码,那么似乎应该也有不通用的电码。至于各国在密码通信的实践中,有没有使用非通用的电码的例子,我就不清楚了,也一并候教方家吧:)

        关于德国是否把电码再次加密的问题,截至目前我查到的资料,没有发现这个现象。

        对电码本身加密,我个人判断,这应该是个得不偿失的工作。首先,如果只是简单地互换掉“电码-字母”的对应关系,那么根据频率分析便可以直接把它们还原,这一步非常简单,这样的密几乎等于没加——而如果采用复杂加密,阅读密电就势必要经过脱密电码-脱密密文两步。

        且不论对电码本身的加密会不会比对明文的加密更牢固,两步加密必将使通信双方付出更大的密码通信成本——人力、物力、时间等等——这样做,在实际应用中究竟合算不合算?很值得怀疑。

        如果觉得只对明文加密不保险,才考虑连电码也要加密的话,更可行的办法似乎是索性换一种更强悍的明文加密机制。不知老兄是不是这么看?

        2、不同字母加密成相同密文字母的情况,是不是会发生?

        肯定会发生,这是转轮密码机的多表替代的原理所决定的。

        多表多表,就是说描述字母替代规律的换字表不是一张而是多张。因此,这一次A对应I,下次完全可能是P对应I。

        顺便说一句,ENIGMA不能把字母加密成它本身,但在别的密码机,连这一点也能做到——也就是说,在其它的密码机上,A-I,P-I;A-A,P-P;A-U,P-M等这几种情况,都是可以发生的。

        3、ENIGMA上的字母咋跟德文字母略有不同咧?

        【波兰篇-丘吉尔托起的灿烂星座】中,曾经介绍过ENIGMA的升级之路。在最初的ENIGMA-A上,不仅有U上俩点,A上俩点和O上俩点都是有的;在这三个变异元音之外,还有25个字母——去掉了一个不常用的Y。这样,ENIGMA-A就有28个键位。

        在这个时候,ENIGMA就已经没有标点符号了。

        而后的ENIGMA-B上,三个变异元音全被取消,Y也被恢复了;由此,ENIGMA呈现出标准的键盘位置,并一直流传——除了又恢复了部分符号的军事情报署型ENIGMA(Abwehr ENIGMA)外。

        4、为什么ENIGMA的键盘上没有标点符号?

        实话说,密电是不需要标点符号的。老兄一定拍过电报吧;呵呵,不用标点一样可以说清楚嘛。

        至于数字,却是另一个问题了;对它的加密,按说是个小问题吧?却也曾经成为ENIGMA的一个漏洞。这个以后还要提到,现在就先不说了:)

        5、中文如何加密?

        一般通行的办法是先把中文编码为字母和/或数字,再对这些字母和/或数字进行加密。

        这样一来,中文的加密,就跟英文法文德文。。。等拼音文字的加密没什么区别了,呵呵。

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

        最后,看来石英钟这个例子,还得勉强维持下去了,呵呵

    • 家园 基本上是越来越看不懂了。。。。

      这就是文科生的脆弱。。

      得,还是花之走人了事。。。

    • 家园 为什么不能这么解密

      不要反射板,就算一个字母被加密成本身也不怕。你举的例子也说明了,A顶多只有一次可能被加密成本身。再来个A就成别的啦。

      在轮型确定的情况下,把内部联线,凹口点,3和1的位置等等,相应调整一下,不行?

      • 家园 A不能被加密为本身,即便一次也不会

        正因为在反射板而言,进入点和流出点是两个点,所以才不可能出现A被加密为A——具体情况,请老兄再仔细看文中的流程示意图;老兄所说,

        你举的例子也说明了,A顶多只有一次可能被加密成本身。再来个A就成别的啦。

        可是有点冤枉我了。。呵呵,不是只有一次可能,而是一次可能也没有……

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

        又看了一遍老兄的问题。如果老兄是说,“取消反射板,就不可以这么解密吗”的话,那么,答案只能是否定的。

        请老兄仔细想一想:

        正因为ENIGMA加密字母时,字母信号经过了反射板的“对称”,才导致进入字母和输出字母是“互逆”的;

        所以,无论是从输入端或输出端进入,这个互逆的关系并不会变;

        而操作员解密电文时做的事情,就是把输出端流出的字母(也就是密文)从输入端再打回去而已,因此,自然可以解密。

        某些其它密码机没有这个反射板,我们举例来说,比如A会被加密成U。那么,即便把收报的密码机的所有设置调的跟发报的密码机完全一样,又如何去解密?

        再说清楚一点就是:

        普通密码机上,输入A,最终U灯会亮;那么当你输入U以后,亮起来肯定未必是A——A和U在这里并不是互逆的折返关系啊——既然不是,如何解密?解出来的,不是乱码又是什么呢?

        作为一个例证,普通的密码机上,往往都有一个专门的解密模块,附加在密码机上,用以对密文进行解密。而ENIGMA上就没有这个专门模块,究其原因,正是反射板的功劳。

        • 家园 其实有个简单的办法应该能绕过这个“不能加密成本身”

          加密两次 -- “ABCD”第一次加密变成“GDKN”,操作员换两个轮,把“GDKN”再加密一次,可能就是“AKEG” -- A仍然有可能是A,谁都不敢打保票了吧...

          解密时操作员需要对其进行两次解密,还得预先知道几个轮的依次顺序,稍微麻烦一点...

    • 家园 机械美学,这个词用得真好

      能想出这个词,就知道一千零一夜老兄是个搞科研的好材料。

    • 家园 除了花, 还是花!
    • 家园 对你的敬仰如滔滔江水。。。

      花你。

    • 家园 献花,听讲,写得好极了
    • 家园 那个动画做得很好

      把这个反射板功能讲解得很清楚...

      不过,这个“任何字母都不会被ENIGMA加密为它本身”的特性,似乎并不应归咎于反射板本身构造设计 -- 而是因为机电产品的特性:电流从一端输入,必然不可能从同一端输出... 很好奇想看一看是否有别的设计能够绕过这个坎儿...

    • 家园 看得头昏,扔捆花走人吧

      1001夜老兄怎么这么聪明...佩服

分页树展主题 · 全看首页 上页
/ 1
下页 末页


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

Copyright © cchere 西西河