“这正是破解eniga密码机的关键之处!”宋鸿飞道,说着他一边在黑板上写下了两行字:
第一个字母(明文):abcde fghij klno pqrst uvw
第四个字母(密文):fqhpl wogb vrxuy czitn jeasdk
“把一天中截获的大量密电前6个密文的一组配对组合写成这样一张对应表,直到26个字母都齐全,(f1)(f4)代表的就是这样的字母替换关系。”
“嗯,为了方便演示,这里我就用几个字母举例好了,假设有这样的一个完整的替换密码表。”宋鸿飞又写下:
明文:abcdefgh
密文:chefabdg
“我们发现a(f1)(f4)=c,c(f1)(f4)=e,e(f1)(f4)=a,记作a->c->e->a ,这样可得一条首尾闭合的字母环,同样还可得另一条b ->h ->g -> d -> f ->b。直到把这份密码表的所有其他未列入环中的字母都能列入一个字母环。”
“写成另一种更直观的形式:(a,c,e)、 (b,h,g,d,f),可很直观地表示这个密码表的一个内在的特征值,即表示这个密码表的字母环的个数和长度的特征值,它是由这样两条长度分别为3和5的字母环组成,替换关系是a替换成c,c替换成e,e替换成a,以此类推。”
“上面列举的第一个和第四个字母的组合,其完整26个字母的对应关系表可写成:(a,f,w),(b,q,z,k,v,e,l,r,i),(c,h,g,o,y,d,p),(j,,x,s,t,n,u)。
同样的,第二和第五、第三和第六的字母组合所形成的链条环对应表都可以写成这样的形式。可以验证,不同的每日密钥所得到的链条环的环数和长度这个‘特征值’也各不相同!”
“之所以出现这些字母环,是因为三个扰码转子周期性循环转动导致。”宋鸿飞接着道,“这些环的个数、长度、字母次序是由‘当日密钥’,即三个转子的顺序、初始位置和插线板的设置决定的。”
“eniga机的结构设计,键入的信号路径是插线板 ->转子 ->插线板,可见插线板的替换设置影响进入转子和变化完成后转子输出的信号,并不影响转子的周期性变化。因此,就体现在字母环的一部分字母会因插线板两两替换而改变,但无论怎么替换环的长度和环的个数都不变,环的特征值能得到最大程度的保留!”
宋鸿飞掷地有声:“也就是说每组对应表的环数和长度,仅仅是由转子的顺序和初始位置决定的,和插线板上字母替换的设置无关!”
宋鸿飞又道:“我建立了几个矩阵置换的数学模型,可以从数学上证明这一点对于任何的替换变化都是成立的,并且已经编制程序在弹道所的计算机上验证。”
宋鸿飞思索了一下,又道:“从中我隐隐觉得,甚至还可以从密文和密钥倒推出转子内部的电路连接状态,因为它们本质上也是替换而已。但是过于匆忙,总感觉理论证明不够充分严密,俞长官是数理逻辑的专家,还请给我审查下。”
俞大维心神激荡,内心的震撼早已是无以复加,整个人都怔住了,张大了嘴巴愣愣地望着黑板上的推演过程。
他沉思了半晌,仿佛才回过神来,惊呼道:“我的天啊!我真想不出你是怎么能想出这么绝妙的方法的!”
“这样一来,插线板的一千亿个密钥就不起作用了!”俞大维聚精会神,思维在飞速运转着,“只需要一个接一个地试验转子的不同顺序和设置,然后就可产生相应的字母环,再和当日截获电文的6个密钥构成的对应表的字母环相对照,就可得出转子的顺序和初始设置!”
“这样就从一亿亿种变成只有十万种可能性了!不,根据字母环的个数和长度这些特征值比对,是一个比十万小得多的数量!把所有的可能性都试验一遍,就是一件可以做到的事情了!”
宋鸿飞道:“破译者可以事先将所有十万种转子的顺序和初始位置的组合所产生的子母环进行编类都记录下来,这样就形成一本特征值字典,然后从这个字典中检索,就可更快速得出转子的设置,这种方式在破解密码上称作‘字典攻击’。”
“得到转子的设置后,插线板先不接线,按这个设置将截获的密文输入,得到被打乱的明文——因为信息中6对字母被随机对换了。但仍然会得到很多可辨的词语,而这种字母对换只是一种非常简单的替换加密,很容易被破解,像‘herro’就可以合理推测它应该是‘hello’,这样就能得到插线板的设置。”
俞大维已是无比的叹服。
他看了看宋鸿飞,问道:“嗯,方才你说验证过?这些天你跑来弹道所,说是用计算机,但总感觉有些神神秘秘的,不单是在计算弹道力学,原来还用来干了这个?”
宋鸿飞嘿嘿微笑着道:“俞长官真是目光如炬。”
俞大维指了指黑板,道:“少来高帽!我实在没想到,你对密码学还有这么深的研究!你这些推演,着实让我费了太多脑细胞!”
他似乎又想起了什么似的,又问道:“德军的密码机绝对属于机密,我很好奇,它的内部构造和一些操作规则,这么机密的资料你是如何得知的?嗯,你不要多想了,此事太过重大,我必须向军委会汇报——对高层得有足够充分的说服力。”
宋鸿飞暗自心想,总归还是得有此一问!我当然不能说本人其实是来自70多年后,在未来的时候我曾经深入了解过二战的密码战,其中就包括波兰和英国破解德军eniga密码机的过程。。。
那样还得了?!搞不好俞大维当场就认为他是由于用脑过度而发疯了。
不过宋鸿飞这些天早就想好了说辞,他缓缓地道:“eniga密码机的发展从商用型到军用型,由来已久,型号也多,某些型号也应用到英、法、意、波、美、荷、瑞、西等国,也包括我们的敌人——东洋国。各国对类似这种转轮加密原理的密码机也早有自己的研究和应用。”
宋鸿飞又道:“然而,我国密码学发展落后、技术力量薄弱,对密码的编制、应用和破译还是在手工密码的阶段,对现代密码机的研究甚少。”
俞大维只好面带尴尬地笑笑。
他知道宋鸿飞说的是实情,当时的华夏国由于长期内乱、无暇外顾等原因,对现代密码技术研究不多。
宋鸿飞道:“之前,我确是研究过这种转轮加密原理的密码机,还使用计算机进行过模拟破解计算。”
他似乎微微思索了下,又缓缓地道:“美国对别国的情报刺探已久,早在一战之时,就成立了一个叫‘黑室’的机构,专门破译别国的密电。我在it读研的时候,‘黑室’和美军方对我的研究课题很感兴趣,我参与过他们运用计算机进行各项计算的研究项目。虽然他们也对我采取了保密措施,不过因缘际会下,我也能从中获悉一些密情。”
俞大维听得一怔,似乎又恍然大悟般点了点头。
俞大维暗暗吃惊,心想难怪宋鸿飞得知德军这么多密情,如果是美国的情报部门对德国出手,这确也不难办到。但是,他竟然能在合作中探查到美情报部门掌握的机密,嗯,这小子,很有一手!
然而,事情的真相大大出乎了俞大维的想象。
实际上,宋鸿飞的这番话取巧至极。他在麻省理工时,美国方面的确慕名上门和他合作研究,但是只是在武器身管力学、弹道学精确分析计算以及机电式计算机的研究方面,根本没有涉及到破译别国密码。
他所说的“用计算机进行模拟破解”,其实是他在后世的时候学《密码学》这门课程时,他的确编写程序破解过二战时期德军的eniga密码。
真真假假、虚虚实实,最是让人无法辨别。
宋鸿飞放心得很,国家机密这个东西,哪个国家都会把事关自己的情报捂得严严实实,根本不会跟你分享,更不会帮你甄别。就算是与人交易分享情报,合理与否,真假与否,请自己鉴别!至于情报来源?无可奉告!
宋鸿飞这个甩锅小能手,就这么悄悄地把锅甩给了美帝!
宋鸿飞接下来的话可谓又让俞大维大吃一惊:“美国对日本的密电破译也早已有之。据我得知的一些内情,日本从德、瑞等国引进了类似eniga这种转轮原理的密码机,并加以改造发展出了自己的密码机,已在其外交和海军部门应用,美国给日本这些密码系统起名为‘绿密’、‘红密’、‘紫密’等。”
俞大维心中大震。
36年3月华夏政府成立了一个专门机构——密电检译所,开展对现代密码技术的研究和对日本外交密码的破译工作。但由于长期技术落后,检译所步履维艰,只在一些中低级的外交密码和手工密码破译方面取得了一些成绩。
实际上,当时的华夏不要说以先进技术手段探查列强的情报,甚至可能都没有意识到日本密码机的存在。