第56章 密碼機(上)
關燈
小
中
大
56.
片刻的安寧正因為它的短暫而顯得尤為可貴,事實上顧江真的只闔了一會兒眼就起來了,前線戰事無休無止,截獲的密報雪片般飛來。
顧聲拿著他的計算結果找路加,路加叼著面包片猛灌一口豆漿:“嗯!中國風味!”
“damn you!”顧聲脫口罵道,轉身回去。
“哎哎哎哎別生氣,別生氣,”路加連忙往回找補,放下豆漿面包片,從幾疊草稿紙下面翻出個筆記本跟過來,“我最近兩個月過得都什麽日子……被你逼得天天通宵,泡妞都沒這麽用功過。看看,昨天熬了一宿的結果,擦,興奮死我了,一口夜宵都沒吃,一直弄到早上七點……”
筆記本被打開,情報處統配的三百頁厚皮竟然寫得滿滿當當,顧聲翻了兩頁,擡頭看他:“這什麽,你自己設計的?”
那是一個造型奇怪的密碼機。
鍵盤一共有26個鍵,為了使通訊盡量地短和難以破譯,沒有設置空格、數字和標點符號鍵,而只有字母鍵。鍵盤上方是標示了同樣字母的26個小燈泡作為顯示器,當鍵盤上的某個鍵被按下時,和這個字母被加密後的密文字母所對應的小燈泡就亮了起來,這樣就是一種近乎原始的“顯示”。
在顯示器的上方是三個直徑6厘米的轉子,它們的主要部分隱藏在面板下,轉子才是“恩尼格瑪”密碼機最核心關鍵的部分。如果轉子的作用僅僅是把一個字母換成另一個字母,那就是密碼學中所說的“簡單替換密碼”,即顧聲曾經給葉豐年演示的那種,而在公元九世紀,阿拉伯的密碼破譯專家就已經能夠嫻熟地運用統計頻率的方法來破譯簡單替換密碼。
而這種密碼機的關鍵正在於它的“轉子”:當按下鍵盤上的一個字母鍵,相應加密後的字母在顯示器上通過燈泡閃亮來顯示,而轉子就自動地轉動一個字母的位置。
“舉例來說,當第一次鍵入A,燈泡B亮,轉子轉動一格,各字母所對應的密碼就改變了。第二次再鍵入A時,它所對應的字母就可能變成了C;同樣地,第三次鍵入A時,又可能是燈泡D亮了。——這就是它難以被破譯的關鍵。”路加點了點他在模型圖旁邊加的批註,解釋道,“那麽這就不是簡單替換密碼。因為同一個字母在明文的不同位置時,可以被不同的字母替換,而密文中不同位置的同一個字母,又可以代表明文中的不同字母,字母頻率分析法在這裏將絲毫無用武之地。
“所以,我把它稱作‘覆式替換密碼’。”
路加指了指他在旁邊寫的一串字符pound replacement cipher。
“……有點意思。”顧聲想了想,說,“不對,但是按照你剛才的思路,假設我連續鍵入26個字母,轉子就會整整轉一圈,這時回到原始的方向上,編碼就和開始重覆了。”
“對,我知道。”路加刷刷刷地把解釋制造原理的過程分析翻過去,給他看細節設計,“所以我又增加了一個轉子,當第一個轉子轉動整整一圈以後,它上面有一個齒輪撥動第二個轉子,使得它的方向轉動一個字母的位置。假設第一個轉子已經整整轉了一圈,按A鍵時顯示器上D燈泡亮;當放開A鍵時第一個轉子上的齒輪也帶動第二個轉子同時轉動一格,於是第二次鍵入A時,加密的字母可能為E;再次放開鍵A時,就只有第一個轉子轉動了,於是第三次鍵入A時,與之相對應的就是字母就可能是F了。”
“676種……676個字母之後重覆。”顧聲說,“技術允許的話,使用者可以繼續往上加轉子,比如你用了三個,那麽重覆的概率就達到26x26x26=17576。這已經無法想象了。”
“哈哈哈這就無法想象了?你太小看我了。”路加挽了兩把袖子,把他的筆記本倒回來,翻到設計原理圖,又轉身回他的書桌翻了兩本書出來,“我受這兩本專著作者的啟發——這書你看過沒?一戰的內部文獻,圖書館壓箱底的好東西,沒看過我借你。呃,好吧我不打岔,接著說。
“這裏,我在之前的基礎上,又在三個轉子的一端加上了一個反射器,把鍵盤和顯示器中的相同字母用電線連在一起。反射器和轉子一樣,把某一個字母連在另一個字母上,但是它並不轉動。你可能乍一看這麽一個固定的反射器好像沒什麽用處,畢竟它並不增加可以使用的編碼數目,但是如果你把它和我們的解碼過程聯系起來看……你有什麽想法?”
顧聲擡手示意他先別說話,對著那兩頁極為精簡的設置原理看了起來——路加那整一本筆記根本不具備可讀性,數量稀少的字跡潦草得一塌糊塗,只有設計圖異常詳盡。
路加去旁邊溜達了一圈,視察了一下今天的破譯工作,才拿著他的豆漿溜達回來,按著顧聲的肩問他:“怎麽樣了?”
“我是這樣假設的,有你所謂的‘反射器’存在時,當一個鍵被按下後,信號不是直接從鍵盤傳到顯示器,而是首先通過三個轉子連成的一條線路,然後經過反射器再回到三個轉子,通過另一條線路再到達顯示器上。”顧聲猶豫了一下,點了點他自己重畫的設計圖,“比如按我的理解,在這個圖裏,當A鍵被按下時,亮的是D燈泡。如果這時按的不是A鍵而是D鍵,那麽信號恰好按照上面A鍵被按下時的相反方向通行,最後到達A燈泡。換句話說,在這種設計下,反射器雖然沒有像轉子那樣增加不重覆的方向,但是它可以使解碼過程完全重現編碼過程。”
他沈默地思考了一會兒,才看了路加一眼,確定他沒有露出看白癡的眼神,才又說道:“當使用這臺密碼機通訊時,發信人首先調節三個轉子的方向,然後依次鍵入明文,並把顯示器上燈泡閃亮的字母依次記下來,最後把記錄下的閃亮字母按照順序用正常的電報方式發送出去。這是加密原理。”
“Bingo!”路加興奮地往他手邊的桌子上一坐,大言不慚道,“怎麽樣,是不是很精巧!有沒有被你哥豐富的想象力和設計水平所折服!”
“有的吧……雖然我應該比你大……”顧聲承認,失笑道,“餵別鬧啊,我還在想接收方式呢,按你的想法的話,那麽轉子的初始方向就是密匙,是收發雙方必須預先約定好的?”
“對,收信方也需使用一臺同樣的密碼機,”路加正色道,從桌上下來,“收到電文後,按照原來的約定,就是你說的‘密匙’,把轉子的方向調整到和發信方相同的初始方向上,然後依次鍵入收到的密文,顯示器上自動閃亮的字母就是明文了。加密和解密的過程完全一樣,這就是反射器的作用。不過反射器也有一個副作用……”
“一個字母永遠也不會被加密成它自己,我想到了。”顧聲接口道,“因為反射器中一個字母總是被連接到另一個不同的字母。”
“是的,但在它所能給出的龐大的可能性的前提下,這根本算不上什麽。”路加放下了杯子,“這裏還有一點是我沒有向你說明的,當然你可以自己看後面的原理分析。——除了轉子方向和排列位置,我還設置了一道保障安全的關卡。即在鍵盤和第一個轉子之間有塊連接板。
“通過這塊連接板可以用一根連線把某個字母和另一個字母連接起來,這樣這個字母的信號在進入轉子之前就會轉變為另一個字母的信號。這種連線最多可以有六根,這樣就可以使6對字母的信號兩兩互換,其他沒有插上連線的字母則保持不變。——當然連接板上的連線狀況也是收發雙方預先約定好的。
“三個轉子不同的方向組成了17576種可能性;連接板上兩兩交換6對字母的可能性則是異常龐大,有100,391,791,500種;於是一共有17576x100,391,791,500……你自己去算吧,我相信就算我們學院最變態的阿斯伯格綜合征患者都不想算出準確結果。”
“我剛才確實在想暴力破譯的方法……”顧聲猶豫了一下,說,“這個設計加密的關鍵在於轉子的初始方向。如果敵人收到了完整的密文,可以通過不斷試驗轉動轉子方向來找到這個密匙,特別是如果破譯者同時使用許多臺機器同時進行這項工作,那麽所需要的時間就會大大縮短。”
路加漫不經心道:“得了吧,怎麽可能?就算對方真下血本這麽幹,你也可以通過增加轉子的數量來對付,因為只要每增加一個轉子,就能使試驗的數量乘上26倍!”
“增加轉子等於增加機器的體積和成本,而密碼機又是需要能夠便於攜帶的……你要考慮實際。”顧聲打斷他,“你真沒想過這層?”
“我操……我想出這個原理命都去了半條,誰考慮成本啊,你給我十萬英鎊我現在就做給你看。”路加仰天長嘆,不勝唏噓,“難道我這麽好的創意就要夭折在經費手上了嗎……”
“很簡單,我們可以做成可拆卸的。”顧聲沈聲說道,手裏的筆一下一下地打在他的原始設計上,“我們假設,密碼機的三個轉子可以拆卸下來……並且互相交換位置。”
“這樣初始方向的可能性一下就增加了六倍,三個轉子間不同的相對位置為6種可能性,也就是說我剛才給的數據還可以再乘6!”路加一下跳了起來。
“對……”顧聲低聲喃喃,隨手寫了一下思路,“假設三個轉子的編號為1、2、3,那麽它們可以被放成123-132-213-231-312-321這六種不同位置,當然收發密文的雙方除了要約定轉子自身的初始方向,還要約好這六種排列中的一種。”
本站無廣告,永久域名(fanyan.cc)
片刻的安寧正因為它的短暫而顯得尤為可貴,事實上顧江真的只闔了一會兒眼就起來了,前線戰事無休無止,截獲的密報雪片般飛來。
顧聲拿著他的計算結果找路加,路加叼著面包片猛灌一口豆漿:“嗯!中國風味!”
“damn you!”顧聲脫口罵道,轉身回去。
“哎哎哎哎別生氣,別生氣,”路加連忙往回找補,放下豆漿面包片,從幾疊草稿紙下面翻出個筆記本跟過來,“我最近兩個月過得都什麽日子……被你逼得天天通宵,泡妞都沒這麽用功過。看看,昨天熬了一宿的結果,擦,興奮死我了,一口夜宵都沒吃,一直弄到早上七點……”
筆記本被打開,情報處統配的三百頁厚皮竟然寫得滿滿當當,顧聲翻了兩頁,擡頭看他:“這什麽,你自己設計的?”
那是一個造型奇怪的密碼機。
鍵盤一共有26個鍵,為了使通訊盡量地短和難以破譯,沒有設置空格、數字和標點符號鍵,而只有字母鍵。鍵盤上方是標示了同樣字母的26個小燈泡作為顯示器,當鍵盤上的某個鍵被按下時,和這個字母被加密後的密文字母所對應的小燈泡就亮了起來,這樣就是一種近乎原始的“顯示”。
在顯示器的上方是三個直徑6厘米的轉子,它們的主要部分隱藏在面板下,轉子才是“恩尼格瑪”密碼機最核心關鍵的部分。如果轉子的作用僅僅是把一個字母換成另一個字母,那就是密碼學中所說的“簡單替換密碼”,即顧聲曾經給葉豐年演示的那種,而在公元九世紀,阿拉伯的密碼破譯專家就已經能夠嫻熟地運用統計頻率的方法來破譯簡單替換密碼。
而這種密碼機的關鍵正在於它的“轉子”:當按下鍵盤上的一個字母鍵,相應加密後的字母在顯示器上通過燈泡閃亮來顯示,而轉子就自動地轉動一個字母的位置。
“舉例來說,當第一次鍵入A,燈泡B亮,轉子轉動一格,各字母所對應的密碼就改變了。第二次再鍵入A時,它所對應的字母就可能變成了C;同樣地,第三次鍵入A時,又可能是燈泡D亮了。——這就是它難以被破譯的關鍵。”路加點了點他在模型圖旁邊加的批註,解釋道,“那麽這就不是簡單替換密碼。因為同一個字母在明文的不同位置時,可以被不同的字母替換,而密文中不同位置的同一個字母,又可以代表明文中的不同字母,字母頻率分析法在這裏將絲毫無用武之地。
“所以,我把它稱作‘覆式替換密碼’。”
路加指了指他在旁邊寫的一串字符pound replacement cipher。
“……有點意思。”顧聲想了想,說,“不對,但是按照你剛才的思路,假設我連續鍵入26個字母,轉子就會整整轉一圈,這時回到原始的方向上,編碼就和開始重覆了。”
“對,我知道。”路加刷刷刷地把解釋制造原理的過程分析翻過去,給他看細節設計,“所以我又增加了一個轉子,當第一個轉子轉動整整一圈以後,它上面有一個齒輪撥動第二個轉子,使得它的方向轉動一個字母的位置。假設第一個轉子已經整整轉了一圈,按A鍵時顯示器上D燈泡亮;當放開A鍵時第一個轉子上的齒輪也帶動第二個轉子同時轉動一格,於是第二次鍵入A時,加密的字母可能為E;再次放開鍵A時,就只有第一個轉子轉動了,於是第三次鍵入A時,與之相對應的就是字母就可能是F了。”
“676種……676個字母之後重覆。”顧聲說,“技術允許的話,使用者可以繼續往上加轉子,比如你用了三個,那麽重覆的概率就達到26x26x26=17576。這已經無法想象了。”
“哈哈哈這就無法想象了?你太小看我了。”路加挽了兩把袖子,把他的筆記本倒回來,翻到設計原理圖,又轉身回他的書桌翻了兩本書出來,“我受這兩本專著作者的啟發——這書你看過沒?一戰的內部文獻,圖書館壓箱底的好東西,沒看過我借你。呃,好吧我不打岔,接著說。
“這裏,我在之前的基礎上,又在三個轉子的一端加上了一個反射器,把鍵盤和顯示器中的相同字母用電線連在一起。反射器和轉子一樣,把某一個字母連在另一個字母上,但是它並不轉動。你可能乍一看這麽一個固定的反射器好像沒什麽用處,畢竟它並不增加可以使用的編碼數目,但是如果你把它和我們的解碼過程聯系起來看……你有什麽想法?”
顧聲擡手示意他先別說話,對著那兩頁極為精簡的設置原理看了起來——路加那整一本筆記根本不具備可讀性,數量稀少的字跡潦草得一塌糊塗,只有設計圖異常詳盡。
路加去旁邊溜達了一圈,視察了一下今天的破譯工作,才拿著他的豆漿溜達回來,按著顧聲的肩問他:“怎麽樣了?”
“我是這樣假設的,有你所謂的‘反射器’存在時,當一個鍵被按下後,信號不是直接從鍵盤傳到顯示器,而是首先通過三個轉子連成的一條線路,然後經過反射器再回到三個轉子,通過另一條線路再到達顯示器上。”顧聲猶豫了一下,點了點他自己重畫的設計圖,“比如按我的理解,在這個圖裏,當A鍵被按下時,亮的是D燈泡。如果這時按的不是A鍵而是D鍵,那麽信號恰好按照上面A鍵被按下時的相反方向通行,最後到達A燈泡。換句話說,在這種設計下,反射器雖然沒有像轉子那樣增加不重覆的方向,但是它可以使解碼過程完全重現編碼過程。”
他沈默地思考了一會兒,才看了路加一眼,確定他沒有露出看白癡的眼神,才又說道:“當使用這臺密碼機通訊時,發信人首先調節三個轉子的方向,然後依次鍵入明文,並把顯示器上燈泡閃亮的字母依次記下來,最後把記錄下的閃亮字母按照順序用正常的電報方式發送出去。這是加密原理。”
“Bingo!”路加興奮地往他手邊的桌子上一坐,大言不慚道,“怎麽樣,是不是很精巧!有沒有被你哥豐富的想象力和設計水平所折服!”
“有的吧……雖然我應該比你大……”顧聲承認,失笑道,“餵別鬧啊,我還在想接收方式呢,按你的想法的話,那麽轉子的初始方向就是密匙,是收發雙方必須預先約定好的?”
“對,收信方也需使用一臺同樣的密碼機,”路加正色道,從桌上下來,“收到電文後,按照原來的約定,就是你說的‘密匙’,把轉子的方向調整到和發信方相同的初始方向上,然後依次鍵入收到的密文,顯示器上自動閃亮的字母就是明文了。加密和解密的過程完全一樣,這就是反射器的作用。不過反射器也有一個副作用……”
“一個字母永遠也不會被加密成它自己,我想到了。”顧聲接口道,“因為反射器中一個字母總是被連接到另一個不同的字母。”
“是的,但在它所能給出的龐大的可能性的前提下,這根本算不上什麽。”路加放下了杯子,“這裏還有一點是我沒有向你說明的,當然你可以自己看後面的原理分析。——除了轉子方向和排列位置,我還設置了一道保障安全的關卡。即在鍵盤和第一個轉子之間有塊連接板。
“通過這塊連接板可以用一根連線把某個字母和另一個字母連接起來,這樣這個字母的信號在進入轉子之前就會轉變為另一個字母的信號。這種連線最多可以有六根,這樣就可以使6對字母的信號兩兩互換,其他沒有插上連線的字母則保持不變。——當然連接板上的連線狀況也是收發雙方預先約定好的。
“三個轉子不同的方向組成了17576種可能性;連接板上兩兩交換6對字母的可能性則是異常龐大,有100,391,791,500種;於是一共有17576x100,391,791,500……你自己去算吧,我相信就算我們學院最變態的阿斯伯格綜合征患者都不想算出準確結果。”
“我剛才確實在想暴力破譯的方法……”顧聲猶豫了一下,說,“這個設計加密的關鍵在於轉子的初始方向。如果敵人收到了完整的密文,可以通過不斷試驗轉動轉子方向來找到這個密匙,特別是如果破譯者同時使用許多臺機器同時進行這項工作,那麽所需要的時間就會大大縮短。”
路加漫不經心道:“得了吧,怎麽可能?就算對方真下血本這麽幹,你也可以通過增加轉子的數量來對付,因為只要每增加一個轉子,就能使試驗的數量乘上26倍!”
“增加轉子等於增加機器的體積和成本,而密碼機又是需要能夠便於攜帶的……你要考慮實際。”顧聲打斷他,“你真沒想過這層?”
“我操……我想出這個原理命都去了半條,誰考慮成本啊,你給我十萬英鎊我現在就做給你看。”路加仰天長嘆,不勝唏噓,“難道我這麽好的創意就要夭折在經費手上了嗎……”
“很簡單,我們可以做成可拆卸的。”顧聲沈聲說道,手裏的筆一下一下地打在他的原始設計上,“我們假設,密碼機的三個轉子可以拆卸下來……並且互相交換位置。”
“這樣初始方向的可能性一下就增加了六倍,三個轉子間不同的相對位置為6種可能性,也就是說我剛才給的數據還可以再乘6!”路加一下跳了起來。
“對……”顧聲低聲喃喃,隨手寫了一下思路,“假設三個轉子的編號為1、2、3,那麽它們可以被放成123-132-213-231-312-321這六種不同位置,當然收發密文的雙方除了要約定轉子自身的初始方向,還要約好這六種排列中的一種。”
本站無廣告,永久域名(fanyan.cc)