皇帝会战与德军“五字真言”(四)
2018-06-20花卷
花卷
抽丝剥茧
上期我们具体介绍了庞旺取得的关键突破,他可以根据一天中截获的两封开头或结尾内容相同的电文,推算出换位口令的长度,并根据每一列的长短差异,推算出每一列在换位之前所在的大致位置。可是光知道这些还远远不够,因为真正的“五字真言”密码中所使用的换位口令一般至少有十幾个字母的长度,更重要的是,由于换位口令是每天都变化的,因此截获的电文如果无法当天破译,就相当于白忙活了。为了能够在有限的时间内破译出电文的内容,庞旺还必须找到其他的线索来缩小范围才行。
可是这些像天书一样的电文里,还有没有其他线索可挖呢?庞旺也不是白当破译大牛的,他还真的发现了另外一条线索。大家回忆一下“五字真言”密码的加密过程,在第一步方格置换中,我们把一个明文字母置换成了两个密文字母,这两个字母分别代表方格的行和列,比如:
字母A会被置换成AA,字母F会被置换成DA,为了方便搞脑子,我们把第一个字母叫作行标,把第二个字母叫作列标。置换好的密文会按照口令的长度转写成若干行,在这个过程中,由于一个原文字母会被置换成两个密文字母,于是行标和列标就会被拆分到两列中。转写的时候,列数就等于口令的长度,如果口令长度是个偶数,那么所有的行标就都会被分到奇数列(列1、3、5 ),而所有的列标就都会被分到偶数列(列2、4、6 )。
你大概要问了,知道这个又有什么用呢?答案还是在频率分析上。看上面那张表,比如同样是字母D,当它做行标时,它对应了F、G、H、I、J、K这些字母,而当它做列标时,对应的是B、G、M、R、W这些字母。对应的字母不同,频率分布也就不同,如果我们对每一列密文字母做个频率统计,应该能发现同一个字母有两种不同的分布模式,很显然,它们一个代表奇数列,另一个代表偶数列,这对于找出正确的换位顺序来说,又是一个非常重要的线索。
缩小范围之后,剩下的工作就是枯燥的尝试和统计了。在没有计算机的年代,这样的统计工作还是非常艰巨的,更重要的是,这种活儿实在是太枯燥了,所以说,像庞旺这种破译专家,不但脑子得聪明,还得有十万分的专注和耐心,不然绝对无法胜任这种工作。
从五到六
1918年4月,取得了上面这一大堆关键突破之后,庞旺终于成功地破译了第一封“五字真言”加密的电文,整个密码局都跟打了鸡血一样,心想德国佬的新玩意儿也不怎么牢靠嘛,你看还是被我们给破解了不是?
不过,也先别高兴太早。我们刚才也提到了,庞旺的这套方法,有一个很重要的条件,那就是必须得能够在同一天内找到两封开头一部分内容完全一样的电文,否则这套方法就无从下手了。虽然以德国人循规蹈矩的尿性来看,一些例行报告很有可能是以相同内容开头甚至结尾的,但由于“五字真言”的使用范围本来就小(仅限于军方高层),因此只有在通讯特别密集的那些日子里,才能满足这样的条件。
另外一个问题就是效率,换位口令是每天变化的,只有当天破译出换位口令,才能最快地对当天后续的电文做出响应。话说回来,密码系统是不变的,但人是可以长进的,正所谓熟能生巧嘛。一开始,庞旺的破译速度很慢,大概需要几天时间才能破译出电文和换位口令,后来这种事干得多了,自然就轻车熟路了。到了1918年5月,庞旺已经可以在半天之内完成破译了,这对于掌握德军的动向真是带来了相当大的帮助。
然而好景不长,1918年6月1日,新截获的电文被扔到了庞旺的桌子上,他拿起来一看,不是吧,原本明明只有ADFGX五个字母的电文,这会儿怎么多出来一个V?要知道,对于破译者来说,天不怕地不怕,就怕敌人改密码!我历尽千辛万苦好不容易才找到一个顺手的方法,你这一改就全白瞎了不是?
相同本质
就在战局进入关键阶段的这个节骨眼上,德军的密码忽然变了,庞旺简直快要被气哭了。不过转念一想,德军好好的为啥要改密码呢?一种可能性是德军发现原来的密码不安全了,于是换了一种新的;还有一种可能性是在原来的密码基础上做了一些调整,为了解决一些问题。这个新密码看起来跟原来的“五字真言”没有太大区别,只不过从5个字母改成了6个字母,庞旺乐观地估计第一种可能性不大,如果真的是换了一种新密码,不可能跟原来的这么相似,而如果是第二种可能性的话,那应该不难应付才对。
怎么才能验证庞旺的猜想对不对呢?很简单,如果德军只是把5个字母增加到6个,那只是改变了第一步的置换方格,而第二步行列换位的方式应该是不变的,也就是说,庞旺现在用的解法应该依然有效,只不过在做频率分析的时候,候选字母的数量增加了而已。事不宜迟,庞旺赶紧试了一遍,试过之后,他终于长长地舒了一口气,还好,德国人真的只是单纯地把5个字母变成了6个,其他的一点都没改,谢天谢地,他之前的努力总算是没白费。
那么德国人为啥要增加一个字母呢?再回头看一下开头的那张置换方格,如果只用5个字母的话,一共只能表示5×5=25个字母,而德语和英语一样有26个字母,有一个还塞不下,因此必然有两个字母得塞在一个格子里。更重要的是,数字没地方塞了啊,要发送数字,只能用单词一个一个拼出来,这就把电文搞得老长老长的,太麻烦了。如果增加一个字母,那我们就可以表示6×6=36个字母,去掉26个字母,还有10个位置正好留给0~9这10个数字,简直太完美了!所以,德军在“五字真言”上加一个V,只是单纯为了“扩容”而已,他们应该没发现法国人已经破译了他们的密码。
关键一战
由于英法军队的顽强抵抗,再加上源源不断赶来支援的美国大兵,德军的推进速度总算是放慢了下来,但形势依然是容不得半点大意。5月27日,德军发动了又一轮全面突袭,把联军打得节节败退。6月3日,德军的前锋距离巴黎只有短短50公里,这眼看着就要打到家门口了,一旦被德军抓住机会把巴黎老窝给端了,那法国就只能乖乖投降了。
但德国那边也并不是胜券在握,长年累月的战争就快要把德国给拖垮了,皇帝会战中德军虽然看起来占据了优势,但实际上伤亡也相当惨重,尤其是经验丰富的精锐部队基本上都给耗光了,就算从本土再抓一批壮丁过来补充,充其量也只是一帮“战五渣”而已,完全撑不了台面。因此,现在的德军已经是强弩之末,如果不能一鼓作气拿下巴黎,那后面也就蹦跶不了几天了。
联军这边也知道德军准备拼死一战了,以德军之前用密集火炮发射弹幕的套路,确实很难守得住啊,除非事先知道德军想打哪儿,提前做好准备。就在6月3日,法国密码局截获了一封电报,这封电报是德军指挥部发给驻扎在勒莫吉的第18军的,而且是用“五字真言”(确切地说,应该是升级版的“六字真言”,或者叫ADFGVX密码)密码进行加密。由于庞旺已经破解了当天的换位口令和置换方格,因此密码局的阿猫阿狗都可以轻松地解密当天的所有电文。这封电报说的啥呢?原来是命令18军加紧运送炮弹,除了夜里要运,白天想办法也要运。
德军失利
密码局赶紧把这封电报的内容报告给联军司令部,当时的联军最高将领费迪南福煦(Ferdinand Foch)一眼就看穿了德军的小算盘,为什么这个时候要加紧运炮弹呢?肯定是为德军惯用的弹幕战术做准备啊!这个18军所在的位置,就直指蒙迪迪耶一贡比涅一带的防线,看来德军是想从这个地方进行突破,而且既然已经开始运炮弹了,估计进攻也就是这几天的事儿。事不宜迟,福煦赶紧命令蒙迪迪耶一贡比涅一线的联军收缩防线,把最前线的地方先空出来,反正德国人是要先用炮轰的,我们先撤,让他们轰去吧。然后,把主力部队安排在前线后面几公里的地方纵深部署,等德国人轰完了开始渗透突击的时候,越往里走我们人越多,还怕挡不住你?
一切安排就绪,就等德军开炮了。6月6日、7日两天,一切像往常一样平静,但福煦相信德国人早晚会打过来的,因为除了密码局的情报之外,其他一些方面的情报也都或多或少地指向这一线索,应该是错不了。果不其然,6月8日,德军终于开始发射弹幕了,福煦心想呵呵小样我等你很久啦,这回可不会再着了你的道了!经过几天的激烈交战,有备而来的英法军队打了几场漂亮的反击战,成功阻止了德军的推进。眼看这一波奇袭没能奏效,而拉锯战对已经疲惫不堪的德国士兵来说简直是地狱般的折磨,德军最高指挥官鲁登道夫将军不得不宣布中止作战。
绝地反击
这次作战的失利彻底打乱了德军的节奏,当然,不服输的鲁登道夫还要做最后的抵抗。7月15日,德军再次以23个师的兵力发起总攻,第二次马恩河战役打响,然而此时随着美军的不断加入,联军的战斗力已经今非昔比,德军很快就打不动了,他们疲惫不堪,军心涣散。7月18日,福煦率领联军发动大反攻,法军24個师,美军8个师,再加上其他联军部队以及300多辆坦克,把德国人打得满地找牙。这场战役联军打得太漂亮了,福煦也因为这次胜利被授予了法国元帅的头衔。之后的三个月,联军发动了“百日攻势”,把德国人彻底打回了老家。1918年11月,德国宣布投降,第一次世界大战就这样画上了句号。
耗了好几年的战争终于结束啦,英法人民欢欣鼓舞,法国密码局当然也好好庆祝了一下,作为幕后功臣,庞旺也总算可以给自己放个假了。就“一战”这几年,庞旺可以说天天蹲在办公室里加班,据说瘦了30多斤,想想看,这么个拼命法,没猝死在密码局也真是命大啊,掉了30多斤肉而已,吃吃也就回来了。当然,庞旺休养了一段时间之后,也就不在密码局干了,万一哪天再打起来,估计就真的把命交出去了。离开密码局之后,庞旺转行下海经商,居然还真干出了一番事业,他当过法国化工巨头的老总,以及化工行业联合会的主席——不得不说,是天才不管干啥都能出成绩,庞旺可算是个真正的天才了吧。
(完)