?

皇帝會戰與德軍“五字真言”(一)

2018-01-03 10:02花卷
科學Fans 2017年11期
關鍵詞:真言波利烏斯

花卷

要說歷史上最精彩的密碼故事,那必須得看風起云涌的兩次世界大戰了。雖然對很多人來說那是人生中最痛苦的回憶,恨不得永遠不要回想起來。

為啥兩次世界大戰有那么多料可以挖呢?道理很簡單,什么時候最需要保密呢?那還用說,當然是打仗的時候啦。正所謂“知己知彼,百戰不殆”,一方面自己的事兒不想讓對方知道,另一方面又要千方百計地知道對方的事兒,這正是密碼發揮威力的絕佳舞臺。另一個重要原因是,兩次世界大戰的時候,也正是人類文明開始加速發展的時候。于是,密碼就更加有用武之地了。

為什么這么說呢?這是因為經過兩次工業革命的折騰,僅僅100年的時間,人類的科技就噌噌地突飛猛進,尤其是電報的發明,對信息傳遞的影響那絕對是劃時代的。有了電報和摩爾斯碼,滴滴滴幾下,就能把一條消息瞬間傳到幾千公里之外。既然這么方便,那必須得大力推廣呀。于是,兩次世界大戰期間,電報就成了傳遞軍事消息的最重要手段,也正是因為有了電報,軍事消息的數量才出現了爆發式增長,畢竟比以前人肉送信的效率高多了嘛。傳遞的消息多了,自然也就需要各種各樣的密碼,而另一方面,消息多了,留給破譯者的材料也就跟著多了。這一來一去,一攻一防之間,就上演了一段又一段的暗戰傳奇。

東線收官

說到第一次世界大戰,咱們“密碼風云”的開篇講的就是英國人如何通過破譯德國外長齊默爾曼的一封密電,成功地把一直坐山觀虎斗的美國拉下水幫自己跟德國人開打的故事。由于德國人大搞毫無節操的無限制潛艇戰,美國的船和乘客也因此遭了不少罪。更讓美國生氣的是,德國人居然給墨西哥發了封密電,也就是我們之前說的那個“齊默爾曼密電”,妄圖煽動墨西哥在美國后院放火。這件事兒實在太扎心了,忍無可忍吶,怪不得百年之后,特朗普想起來要修長城了。于是,1917年4月6日,時任美國總統威爾遜向德國宣戰,一票美國大兵開赴歐洲戰場,準備把德國佬打回老家。

德國那邊怎么樣呢?捅了那么大一個婁子,必須是嚇尿了。我們之前也提過,德國在歐洲大陸的位置比較居中,西邊有英法,東邊有沙俄,“一戰”對于德國來說是兩面開戰,但就算這樣還打得風生水起,那是真猛啊。不過,兩面開戰時間長了還是太傷元氣,尤其是后勤補給這一塊,這么拖下去可吃不消,到了1917年,德意志鋼鐵戰車也開始顯露疲態了。偏偏就在這個最焦灼的時候,美國還宣戰了!你說德國人能不嚇尿么?好在德國還有大名鼎鼎的鐵血宰相俾斯麥和魯登道夫將軍坐鎮,這才穩住了軍心。然而局面都這樣了,還有機會翻盤么?你別說,還真有,因為這時候發生了一系列值得讓德國人彈冠相慶的事兒,這就是被歷史老師翻來覆去講了好幾遍的俄國“二月革命”和“十月革命”。

按照我們歷史書上的講法,當時的俄國還是落后的農奴制,而其他歐洲列強早已實行先進的資本主義制度啦。經濟制度落后,一打仗當然吃不消,于是1917年3月,俄國爆發了“二月革命”,大伙把皇帝給推翻了。原本德國人覺得,你俄國都變天了,還打啥呢,講和算了,結果新成立的臨時政府不死心,還想要跟德國決一死戰。4月美國宣戰,但是美國畢竟離得遠,調兵過來也得折騰個一年半載的,于是德國決定趁這個機會先把俄國干掉算了,東邊的事情不解決,沒辦法專心對付美國啊。

說干就干,德國跟他的小伙伴奧匈帝國一路猛攻,把新成立的俄國草臺班子打得滿地找牙。這時候一個叫列寧的人看不下去了,在1917年11月領導了一場“十月革命”,接著就率領新成立的蘇俄退出了第一次世界大戰。德國人當然開心得不得了,畢竟這樣一來,就等于東線的戰事全都搞定啦,可以專心回來收拾西邊這個爛攤子啦。

孤注一擲

美國調兵過來需要花時間,德國自己從東線調兵回來也得花時間,就看誰快了。1918年開春,德國總算在西線碼夠了人,而這時候美國的兵力和物資只到了一部分,英法的兵力也實在不夠看,這么一比,德國人覺得還是可以干他一票。他們的如意算盤是這樣的,趁著美國人還沒擺開陣勢,先把索姆河沿線的英國人滅了,切斷英國從水路支援法國的通道,然后舉兵直逼巴黎,迫使法國求和,一旦法國沒了,英國也就蹦跶不了多久了。

這個計劃可以說是“孤注一擲”了,因為計劃一旦失敗,法國打不下來,等美國兵力和物資源源不斷地送過來,就該輪到德國吃不了兜著走了。因此,這場戰役對德國來說太重要了,以德國人的強迫癥傳統,必須得花大力氣在各個方面都做好萬全的準備,其中當然也包括密碼這一塊。

我們在《德國外長的一封密電》中提到過,德國海軍和外交部那時候主要用的還是字典式密碼,也就是一個像字典一樣的本子,里面把每個單詞都用數字編了個碼。說實在的,只要了解一點密碼學的發展歷史,就能看出這種東西其實是幾百年前的古董技術了,當時就連更先進的維熱納爾方表都已經被巴貝奇和卡西斯基破解了,你們卻還在用老套的字典密碼,這怎么行呢?更何況,我們還提到過,電報的普及讓密電越發越多,留給破譯者的線索也就越來越多,如果密碼方式本身也不靠譜,那不是雪上加霜嗎?

于是,德國人覺得,為了這么重要的一場戰役,必須得開發出一種最高端大氣上檔次的新密碼,而且這種密碼只能專門用于這場戰役。最終,德軍采用了由弗里茨·內貝爾(Fritz Nebel)上校開發的一種密碼,它的名字叫“ADFGX密碼”。因為這種密碼的密文只有ADFGX這5個字母,所以我給它起了個仙氣十足的外號叫“五字真言”,一聽就特別厲害有沒有?

波利比烏斯方格

那么這個“五字真言”到底是個什么鬼?其實,“五字真言”也是由一種非常古老的密碼發展而來的,并不是內貝爾上校重新發明了一個輪子。這種古老的密碼叫作“波利比烏斯方格”(Polybius checkerboard),相傳是由古希臘歷史學家波利比烏斯發明的,我們先來瞅瞅這是一種什么玩意兒。

波利比烏斯方格是一種5行×5列的方表,里面一共有25個格子,如果我們把拉丁字母填進去,就類似這個效果:

這里面有個小問題,拉丁字母一共有26個,有一個塞不進去,我們這里就把I和J塞到一個格子里吧。其實波利比烏斯也沒有規定它必須只有5行5列,你做幾行幾列都沒關系。好了,那么這個表怎么用呢?很簡單,要加密一個字母,只要用行號和列號替代它就可以了,比如說A就是11、D就是14、S就是43這樣。當然了,實際運用的時候,這張表里面的字母排列順序是可以任意打亂的,只要傳遞信息的雙方都持有相同的表就行了。

這種古老的密碼很厲害嗎?別過于迷信古人的智慧,其實這玩意兒一點都不厲害。為什么呢?因為它很明顯就相當于一種單表置換密碼,只不過是把一個字母置換成兩個數字而已,換湯不換藥。那么內貝爾上校難道就是用了這么個玩意兒來忽悠人嗎?當然不是,要不然不是成豬隊友了么?波利比烏斯方格本身只是一種非常弱的單表密碼,通過頻率分析大法就可以輕易破解,但它的價值在于,它的行數列數可以任意變化,也就是說置換表的大小是可擴展的,這個特性使得它可以被集成到其他密碼方式中當作前級編碼器來使用。

五字真言

上面這句沒看懂?沒事,一上來都能看懂,那多沒意思啊。下面我們就來具體研究一下這個“五字真言”到底是怎么玩的吧。

首先,“五字真言”需要做一張置換表,這張置換表跟波利比烏斯方格長得一模一樣,區別只有一個,那就是把數字1、2、3、4、5換成了字母A、D、F、G、X,也就是這樣:

為了看著方便,我們就不把里面的字母順序打亂了。接下來開始加密咯,假設我們要加密的明文是“Angriff bei Nacht”(德語:晚上發動攻擊)。第一步,按照波利比烏斯方格的方法,把每個明文字母置換成兩個密文字母:

這一步當然沒完,因為光是這一步的話,其實就是一個單純的波利比烏斯方格而已,我們之前說了,這種東西用頻率分析可以分分鐘搞定。那么接下來怎么搞呢?這一步有點復雜,大家看仔細了哦。首先,我們需要規定一個“口令”,比如“Frühling”(德語:春天)。接下來,我們把口令寫成一行,然后把密文依次寫在口令的下面并換行,也就是按照口令的長度把密文做了一個分組:

這是要干啥呢?別急,后面還有呢?,F在,我們要把口令里的字母按照字母表的順序重新排列,比如FRUHLING,按照字母表的順序重排之后就變成了FGHILNRU。注意,口令重排之后,每一個字母下面對應的那一列密文字母也要跟著重排,像這樣:

最后一步,我們按照從左到右的順序,逐列寫出所有的字母并拼在一起。注意,是“逐列”,不是“逐行”,比如在上面這個例子里,我們要先寫F列下面的ADAA,然后再寫G列下面的DDA,以此類推。最終密文就是這樣的啦:

唔,感覺已經完全看不出任何痕跡了呢,好厲害!至于解密的方法是怎樣的,留給大家自己琢磨一下吧,應該不難的哦。還剩一個小問題,這種密碼為什么要用ADFGX這五個字母呢?還記得我們講過電報的事么,當時的軍事消息大部分都是用電報傳送,因此這種密碼也專門為電報進行了特殊的設計。發送電報的時候要使用摩爾斯碼,摩爾斯碼基本上是用長碼(“嗒——”)和短碼(“滴”)的組合來代表不同的字母。ADFGX這幾個字母的摩爾斯碼的區別比較明顯,不太容易混淆,這樣就可以減少收發電報的過程中產生的誤碼了。另外,摩爾斯碼里面,每個數字都需要5個碼來表示,但每個字母只需要1~4個碼就夠了,而且摩爾斯碼的設計是越常用的字母碼長越短,比如E和T都只需要1個碼,因此,用字母發報就比用數字(比如傳統的數字密碼本)發報的效率高出一大截。

(那么,“五字真言”真的如德軍期望的那樣牢不可破嗎?協約國又將如何對付這種新的密碼呢?我們下期繼續講。)

猜你喜歡
真言波利烏斯
回首十年代表路:以心換心以情動情
寧圍:垃圾分類的“四字真言”
莫比烏斯攝影基地
中國國家圖書館藏西夏文《不空羂索神變真言經》考論
西夏文銅鏡的真言文法與四臂觀音像研究
你一定在別處
你一定在別處
米開朗基羅和教皇尤得烏斯二世(連載之二)
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合