本文原载于《兵器》杂志2005年02月刊。本次转载时经重新二次内容完善及编辑、补充部分插图和整理,以与同好共同分享。个人认为《兵器》杂志是一本专业、客观的军事杂志,推荐持续订阅,丰富本身的军事知识。转载其上的一些年代比较久远的文章次要是想让读者以另一种比较独特的视角审视已经的事物和观点。
第一次世界大战以后当很多军人还把目光倾注在军用飞机、坦克、潜艇、机枪、毒气等配备时,有些人却开始留意起了电波和以太中的胜败。从坦嫩贝格战役到西里西亚战役,从德国“齐默尔曼电报”导致美国参战到第二次马恩河战役,从日德兰海战到多格尔沙洲海战,密码的的保密与破译都起到了决定性的作用。在综观这些战役和事件后不难发现密码人工加密的缺点:密钥发放不易全面和及时,通信人员在加密时易出错误,密码加密与解密效率低下等。这些缺点不只使军事举动的无效性大受影响,而且大大添加了密码被敌方破译的危险性。而处理这些问题的方法就是密码编制机械化。于是,密码机诞生了。
杰斐逊的轮子
其实早在1793年美国人就发明了一种密码机,被人称为轮子密码机。而这个发明人正是《独立宣言》起草人之一、美国第3任总统托马斯·杰斐逊。实际上,这种密码机的名字即源于杰斐逊所命名的“轮子密码”(wheel cyqher)。有人又将它命名为杰斐逊密码机。
杰斐逊密码机是这样制造的:首先车削一个直径约2英寸、长6或8英寸(1英寸=25.4毫米)的郁金香木质圆柱体,两头钻通一孔,使其可安装一个直径0.20英寸或0.25英寸的铁轴;将圆柱体的侧面分成26等分然后用一个尖针通过各等分点,从圆柱体的一端到另一端划出平行线,并用墨水将这些平行线描出来;再把圆柱体沿纵轴切成36等份的圆片,这就是轮子,每个轮子厚1/6英寸,这时每个轮子的侧面就出现了26个格子在每个格子上刻上26个拉丁字母,且每个轮子所刻的字母顺序都不同,轮子上标明序号,以便区别;最初用一根铁轴将轮子串起,铁轴的一端有轴头,另一端有螺帽,对轮子加以固定。密码机即成。
加密时首先将螺帽拧松,使轮子可以任意转动。再将明文依次转动在轮子上。例如,将Stop attack(停止进攻)加密。首先自左侧起第一个轮子上找到字母S,再将第二个轮子上的T与第一个轮子上的S对齐,然后是第三个轮子上的O……以此类推,直到K。当明文字母排成一条直线时,将螺帽拧紧。这时任意其余25行字母之一即为密文。解密的一方在收到密文后依照密文转动本人的轮子密码机,然后观察其余25行字母,选出字句通畅有意义的一行字母即为明文。当然,前提是双方的密码机的轮子个数、轮子顺序、字母陈列顺序等完全相同。
如果需要传送的信息较长,可将信息分组,每36个字母为一组,依次加密,直至将信息加密完成。在一次加密时,轮子的陈列顺序是固定的。当然,下一次加密时,轮子的顺序就可以改变了。可以看出,这种密码机的轮子陈列顺序、轮子的个数以及每个轮子上的字母排列顺序都是密钥。这样即便有若干个轮子被敌方缴获,密码也不可能被敌方轻易破译,因为密钥的其他方面敌方是不晓得的。
密钥的轻易更换也添加了破译难度。如,轮子的陈列顺序一般可以单个乱序陈列,如:2、5、34、17、28……但在必要时也可以反复乱序陈列,如1、15、36、34.15.2、2……等。很多密码学家指出其密钥数目是36!≈372×10的九次方。其实,这一数字被夸大了。从第一个轮子开始加密起,其他轮子就要按照明文的字母顺序转动下去,因而就被固定了。因为每个轮子上有25个字母,所以这种密码机实际上是为使用者提供了25套多表代替密码。1891年法国的一位名叫艾蒂安·巴泽里埃斯陆军军官发明了一种与杰斐逊轮子密码机大体一样的密码机,但此时,他已落后杰斐逊近100年。
130年的轮回
由于轮子密码机的发明远远超过了杰斐逊时代的密码学水平,因而杰斐逊被后人誉为“美国编码学之父”,但杰斐逊似乎低估了本人发明的突破性价值,只是将它编档保存。1917年担任编制美国海军密码的海军密码通信科科长拉塞尔·威尔森上尉设计了一种采用与轮子密码机同样原理的密码机。这种密码机由金属框架和上面印有乱序字母的金属条组成。海军将其命名为"海军密码盒”(Navy CodeBox,简称NCB)。直观地说,NCB就是将轮子密码机的轮子“拉直”,变成金属条。
美国海军配备的CSP-488密码机使用的也是轮子密码原理
1914年美国陆军通信学校讲师帕克·希特上尉制成了另一种与之类似的密码机。希特密码机的条子是25根纸条,每根纸条上将一个乱序字母序列反复印刷两次,并将纸条编号,也就是密钥号;再在一个框架中按照设定的密钥数字顺序陈列;加密时,纵向拉动纸条,在一横行内拼出明文的前20个字母;然后任选其他一横行内的字母作为密文。由于使用时需要拉动纸条,所以这些纸条被称为拉尺。
美国海军配备的CSP-845B密码机使用的是拉尺密码原理
1917年,担任通信兵团研究与工程处的约瑟夫·莫博恩把这种器械定为圆柱型供陆军使用,并把字母顺序打乱得愈加彻底,从而使破译愈加困难。1922年美国陆军采纳并配备了他的发明,将这种密码机命名为M-94密码机;当时,M-94密码机也曾面临挑战,但时任美国通信兵团主任密码分析员的威廉·弗雷德里克·弗里德曼却慧眼识珠地力主使用M-94密码机。
弗里德曼是密码学史上一位划时代的传奇性人物,可以称得上是那个时代的“密码机终结者”——他破译过几乎每一种号称“不可破译”的密码机。早在第一次世界大战时,弗里德曼就在测试性破译中仅用3个小时就破译了英国新式的普莱茨密码机,使得这种密码机刚一问世就寿终正寝了。
美国密码学史上划时代的传奇性人物——弗里德曼
虽然M-94密码机是一项独立的发明,但其结构与杰斐逊的密码机大体相同。M-94将轮子由杰斐逊设想的木质轮子变成了银圆大小的铝质轮子;轮子的个数也比杰斐逊的密码机少一些,只要25个;添加了一根金属条固定在圆柱体两端,以标明明文和密文。美国陆军不断使用这种密码机到二战初期。二战之前,海岸警备队与联邦通信委员会无线电情报处也使用这种密码机。甚至在20世纪60年代,它还在美国海军中的某些部门服役。M-94密码机在它刚配备的时代是十分难破译的,由此可见杰斐逊发明的前瞻性。
M-94密码机(下)与轮子密码机(上)在外形上基本一致,美国密码机的研制在经过百余年的摸索后重回原点。
M-94密码机(下)与轮子密码机(上)在外形上基本一致,美国密码机的研制在经过百余年的摸索后重回原点。
风趣的是,在M-94密码机配备部队的同年(即1922年),人们在国会图书馆中杰斐逊的文献中发现了杰斐逊轮子密码机。阴错阳差竟使美国的密码学发展滞后了近130年!
长条密码机M-138
20世纪30年代美国在希特密码机和M-94的基础上,制成了一种新型的密码机,陆军将其命名为M-138密码机,海军命名为CSP642条型密码机。M-138密码机有100条拉尺,作为密钥。与希特密码机不同的是,它是横向拉动纸条,纵行字母作为明文与密文的发生行。为了使用方便,M-138也像M-94一样,加装一根金属条,以标明明文和密文。金属条与整个金属框架等长,两端被咬合在金属框架两端,可以横向移动。加密时一次用30根条子,密文不是从一个发生行读出,而是在每组15个字母的两个发生行中读出。美国海军对CSP642并不是特别放心,于是将它视为最低层密码,且在使用上玩了一个花招——每日少用0~5根条子。这样,第一天的密报可能只用25根条子,第二天用27根,第三天用30根等,依次类推。
美国陆军配备的M-138密码机
在这之前,美国国务院的密码可以用一塌糊涂来描述。军情8处(即MI-8,“美国黑屋”)领导人亚德利刻薄而精确地讥讽国务院使用的密码本是16世纪式的密码本。美国国务院也认识到了本身的弱点。1932年国务院曾想采用希特用了4年时间、花了10万美元(特别提示一句,那时的10万美元与现在的10万美元不是一个概念)而设计的一种印字电报密码机。这种密码机有10个密钥轮,总变化数为8.65×10的14次方。从理论上讲,这种机电式密码机比类似M-94与M-138的手动机械式密码机先进,但将它连同由它加密的10篇密文交给弗里德曼和他的助手进行测试性破译时,弗里德曼和他的助手分析了这种机器的内在弱点,并在3个小时内就将其破译。
美国国务院只好继续使用”16世纪式的密码本”。直到20世纪30年代末,国务院选中了M-138后情况才有了根本的改观。与美国海军相反,美国国务院对M-138密码机极为满意,用它来加密美国外交最机密的通信信息。大西洋会议后不久,罗斯福致丘吉尔的一份特急电报就是用M-138密码机加密的。现实证明,只需密钥条保密且经常更换,这种条型密码足可保证美国外交函电和海军通信的安全。
方法决定效果
然而M-94与M-138并不是完满无缺的。1936年2月26日日本发生了震惊世界的“二二六”兵变,这给了日本密码破译人员一个难得的好机会。美国驻日外交人员按照惯例向国内详细报告了事件的详细过程,但日本早已对美国使馆进行了无线电侦听,所以美国使馆发出的密文电报自然也被日本截获了。同时,日本比美国的使馆人员更了解事件的始末和细节,也就是说,美国使馆的密码电报的明文(至多是明文的大致内容),日本也是晓得的。将这两者进行比对分析后,日本破译出了大部分密码电报,包括海军武官的密码电报。
图示:美国《时代周刊》刊登的在日本二二六”兵变中殒命的首相犬养毅。日本通过分析此次事件中美国的密码通信技术,初次破译了M一138密码机。
美国采取弥补措施后,日本又使出了一招:1937年末,日本海军军官森川秀也带领一个开锁天才、一个照相师和几个特务潜入神户美国领事馆,打开了密码柜,把日本人从未见过的”褐色”密本和M-138密码机全部拍照偷走。太平洋和平迸发后,日军又在威克岛和基斯卡岛缴获了M-138的海军版——CSP642。
日本海军使用从东京第一人寿保险公司和明治人寿保险公司借来的两台IBM制表机用来破译CSP642。IBM制表机分别按30、29、28……为周期统计频率,比较统计结果,出现重码最多的周期就表示正确的加密长度。同时,许多由CSP642加密出的电文是由美国潜艇在日本近海拍发的。电文的内容往往是日本商船被击沉的位置及商船的情况以及该潜艇附近某些日本舰队的航向、航速、构成等。
根据这一线索,两位曾在大学专攻英文的海军大尉清水和小田假设截获密文电报的明文,再调整词句、字的位置、假设的经纬度,直至设出一份长度和密文相同而字母全部和密文不同的明文。因为在CSP642及与之类似的M一94与M-138密码体制中字母不能自代,就是说,一个字母不可能在经过加密后还是这个字母。1944年纳粹德国外交部的密码破译机构——人事预算处Z科利用统计学的方法,破译了美国国务院的M-138密码。
美国潜艇部队的密码通信也多次被日本人破译使美军意识到M-138的局限和短处,并积极开始研制下一代密码设备
客观地说,M-94、M-138及CSP642密码机的保密性还是相当令人满意的。这一方面是由于密码机本身的设计巧妙,另一方面也是由于日本人的无能。对于M-94、M-138及CSP642这样的密码机,早在日本人之前就有人破译了。前文中已经提到,法国陆军军官艾蒂安·巴泽里埃斯发明出了与杰斐逊轮子密码机大体一样的密码机,但法国军方没有采纳他的发明,缘由是另一位法国军官德维亚里仅用3篇密文就破译了这种密码。弗里德曼发展了德维亚里的破译方法,并将其写进了教材《几种机器密码及其破译方法》中。
然而日本人却对这些成果一无所知,竟然采用密码学中最为笨拙的穷尽法进行破译,导致日本海军的密码破译机构不断增大美国组中破译条型密码部门的规模。最初,该部门拥有40名军官、10名士兵、12名打字员、24个女辅助人员以及海军大学的山梨教授和数学家尾崎。虽然他们的努力不断持续到和平结束,但收效甚微。日本海军甚至认为条型密码是不可破译的,而实际上世界已经进入到电气化和机械化的时代,但他们用以破译密码的IBM制表机还是日本的保险公司从美国进口、再向保险公司征用的。
与此相比,德国的“恩尼格玛”密码机也带有字母不能自代的特点,但英国的密码破译人员从一开始就将利用这一特点放在辅助方法的位置上次要方法还是进行深入的理论研究,并特别研发了破译机器。至于德国破译了M-138密码,实际上并未对美国形成什么损害,因为1944年时,M-138密码已不再是美国最高的外交密码体制了。
虽然如此,美国仍清楚地认识到这几种密码机的危险性。美国陆军迫切需要一种小型的、足以供野战部队使用的、保密程度大大高于M-94密码机的新型密码机。这种密码机的研制任务由美国通信兵实验室担任。在耗费了漫长的时间和巨额的资金后美国通信兵实验室终于于1939年研制出了一种密码机——M-161密码机。陆军立即将样机加密的密文交由弗里德曼进行测试性破译。不料,弗里德曼竟然分别只用15分钟和3小时就破译出了两份密文。这一结果显然是让人无法接受的。如果不是万里之外的一个发明,美国陆军部长的脑袋恐怕要疼些日子了。这就是瑞典人哈格林研制的M209密码机——美国在二战中使用最广的密码机。(待续)
本文下半部分链接:穿越时空的秘密——二战中的美军密码机(下)
下一篇:返回列表