1701018558
雷耶夫斯基于是建立了“隐谜”的置换群方程,并断定只要解出这些方程,就能够破解它的密码。但是在一般情况下置换群的结构很复杂,所以这些方程几乎无法解出。幸运的是,他发现了“隐谜”两个致命的弱点,使得局面完全改观。
1701018559
1701018560
其中一个弱点来自于密码机的结构。如上小节所述,密码机上有个反射轮,由于该轮的作用使得加密和解密的过程完全一样,即如果键入字母a得到x,则键入x就得到a。如此操作当然很方便,但对于密码的安全来说,这种方便是一场灾难。雷耶夫斯基发现,由于“隐谜”的这一功能,使得它的置换群结构变得简单:所有的置换都是字母的两两对换(transposition)。这就大大降低了求解置换群方程的难度。
1701018561
1701018562
“隐谜”的第二个弱点来自于它的操作规程。如前所述,每份“隐谜”电文的开头都有一组6字母的密钥字符串,它是通过把转轮初始位置的3字母密钥重复加密得到的。重复加密的目的是为了确保接收方能够获得解密电文所需的密钥,但它也提供了雷耶夫斯基求解置换群方程的钥匙:比如说,在某天“隐谜”的某一份密文中,其起首的密钥字符串为
1701018563
1701018564
dmpvbm,
1701018565
1701018566
则可以假设加密前相应的明文字母是xyzxyz,这xyz三个字母就是该电文的密钥,也就是加密电文时3个转轮的初始位置参数,它们对于破译者来说是未知的。用置换的语言来描述:如果假设密钥字符串上第1个位置上的置换为T1,第2个位置为T2,…,第6个位置为T6,则有
1701018567
1701018568
T1(x)=d,T2(y)=m,T3(z)=p,T4(x)=v,T5(y)=b,T6(z)=m.(1)
1701018569
1701018570
其中T1,…,T6当然是未知的。但是根据以上分析,知道T1,…,T6都是两两对换的置换。所以有T1(d)=x,T2(m)=y,T3(p)=z。于是从(1)式可以得到
1701018571
1701018572
T4(T1(d))=v,T5(T2(m))=b,T6(T3(p))=m.(2)
1701018573
1701018574
这样,如果令置换A为T1和T4的合成,B为T2和T5的合成,C为T3和T6的合成,则置换A,B,C是部分可知的。雷耶夫斯基观察到,只要一天能够截获80份“隐谜”密文,则26个字母都会在密钥字符串的1到6的每个位置上出现。这样就可以完全决定置换A,B,C!雷耶夫斯基把这三个置换称为这一天“隐谜”密码的“特征集”,因为它在一天里不变。
1701018575
1701018576
下一步是要通过特征集求出T1,…,T6。注意到T1,…,T6都是两两对换,所以特征集中的置换都是由两个两两对换合成的,雷耶夫斯基证明了这样一条关于两两对换合成的置换群定理。
1701018577
1701018578
定理 在由两个两两对换合成的置换中,所包含的长度相同并且不相交的圈的个数总是为偶数;反过来,如果一个置换中出现的长度相同并且不相交的圈的个数总是偶数,那么,它一定可以分解为两个两两对换的合成。(说明:如果在一个置换中,把两两不同的元素a1换成a2,a2换成a3,…,an换成a1,则称该置换包含一个长度为n的圈,记为(a1 a2…an)。例如,“两两对换”其实就是长度为2的圈。)
1701018579
1701018580
这条定理被人称为是“打赢第二次世界大战的数学定理”!它给出了求解T1,…,T6的方法:只要找出特征集置换的所有对换合成就可以了。
1701018581
1701018582
再下一步是要确定转轮上的接线方式。从理论上讲,只要通过比较多天的特征集并利用置换群方程(2),就能够做到这一点。当然,需要很复杂的计算。然而,雷耶夫斯基的面前突然出现了一条捷径。
1701018583
1701018584
1932年12月,法国密码局局长贝特朗(Gustave Bertrand)造访波兰密码局。他随身带来一包东西,里面是德军关于“隐谜”密码机的操作手册和1932年9月和10月的两个月里的每天“隐谜”的初始条件值,即转轮的排列与起始位置以及插口板上的接线方式!原来这些材料是德国密码局中负责掌管“隐谜”资料的军官施密特(Hans Thilo Schmidt)为了赚钱而出卖给法国人的。但是法国人拿到这些东西却不知道如何利用。因为法国和波兰有情报合作协议,所以就复制了一份送给波兰密码局。
1701018585
1701018586
雷耶夫斯基拿到了这些宝贵的材料后,立即利用其中详细的数据算出了每个转轮上的接线方式。至此,德军使用的“隐谜”密码机的结构已经完全清楚了。为了进一步破译的需要,波兰密码局立即仿制了数台“隐谜”机。这是在1932年年底。就在这个时候,雷耶夫斯基的两个同学,齐加尔斯基和鲁日茨基,也加入了破译“隐谜”的队伍。
1701018587
1701018588
这三位年轻的波兰数学家先后设计了回转机(Cyclometer)、穿孔纸和“炸弹”(Bomba)机等设备。其中回转机相当于把两台“隐谜”机对接,而“炸弹”机(据说这一名字是鲁日茨基借用当时的一种冰淇淋名而得来的)相当于把6台“隐谜”机连接在一起。有了这些设备,就能针对德军“隐谜”机不同的使用情况,获取其每天的初始设置参数。至此,“隐谜”遂告破解。以后几年,波兰密码局每天都可破译大量的德军电报。
1701018589
1701018590
如果说谢比乌斯发明的“隐谜”机标志着机器加密时代的开始,那么波兰年轻数学家设计的“炸弹”机等设备则宣告了机器破译的日子来临。
1701018591
1701018592
随着德国法西斯越来越咄咄逼人,战争已渐渐临近。德军对“隐谜”的改进越来越频繁。他们先后更换了反射轮,把插口板上的6对接线增加到10对,并且把3个固定的转轮增加到了5个,然后每天从中任选3个使用。
1701018593
1701018594
新的改进措施给波兰人的破译工作带来了一时难以克服的困难。而战争已经迫在眉睫。这时,波兰密码局审时度势,做出了一个重要的决定。
1701018595
1701018596
1939年7月24—26日,英国、法国和波兰的密码局官员们集中在波兰密码局开会。三位波兰年轻数学家出席了会议。会议期间,英法的代表们各自收到波兰同行们送的一份意外的礼物:复制的德国军用“隐谜”密码机、“炸弹”机、穿孔纸以及关于破解“隐谜”密码数学理论和技术方法的详细说明等。面对这份礼物,英国人和法国人都目瞪口呆:原来他们的波兰同行早已破译了“隐谜”!而他们自己长期以来一直想方设法破解它,却没有取得任何进展。
1701018597
1701018598
一个多月之后,1939年9月1日,德国大举入侵波兰,勇敢的波兰骑兵与德国坦克部队进行了一场力量悬殊的战斗。两个星期之后,苏联开始进攻波兰。数天之内,波兰就被两个大国解体瓜分。英法两国则向德国宣战。第二次世界大战爆发了。
1701018599
1701018600
4.英国的布雷契莱庄园
1701018601
1701018602
虽然波兰人天才地破译了早期的“隐谜”密码,但以他们的数学能力和国家实力尚不能或来不及应付德国人后来对“隐谜”的一系列改进措施,最终无法阻止亡国之灾。所幸的是,他们及时地把破译的关键技术和设备传交给了英法两国。然而,波兰沦陷后不到1年,法国人还来不及改进波兰人的成果,就被德国的闪电战一举击败,只得宣布投降。于是,继续破解“隐谜”以争取反德国法西斯战争胜利的重任,很自然地落到了英国人的肩上。
1701018603
1701018604
距英国首都伦敦西北约75千米,有一座20世纪60年代才设立的新兴城市,叫做米尔顿凯因斯(Milton Keynes)市。位于该市的西南部有一个小镇,叫做布雷契莱(Bletchley)镇,镇上有一个占地22公顷的庄园,叫做布雷契莱庄园(Bletchley Park,图9.3.5),该庄园是第二次世界大战中英国最神秘的地方。因为英国于1939年将其负责截听和破译国外无线通信的情报机构秘密地搬入此地。该机构的公开名称叫做“政府密码学校”(Government Code and Cipher School)。德国人做梦也没有想到,这个破旧的庄园中隐藏着英国人最致命的战争武器,其作用甚至超过一千架飞机、一万辆坦克和100万精锐部队。在整个第二次世界大战期间,缺乏防卫设施的布雷契莱庄园几乎没有遭受过敌机的轰炸。
1701018605
1701018606
布雷契莱庄园的“政府密码学校”在鼎盛时期拥有约9千名工作人员,其中有不少国际象棋冠军、纵横字谜高手和通晓多国语言的专家,这几类人一直是传统密码战场上的主力军。“学校”有时会采用一些别出心裁的方法来招募人才。如有一次,他们请《每日电讯报》(The Daily Telegraph)举办一场纵横字谜比赛,凡是在12分钟内完成字谜游戏的参赛选手都被询问“是否愿意从事一种能为战争做贡献的特殊工作”。
1701018607
[
上一页 ]
[ :1.701018558e+09 ]
[
下一页 ]