恩尼格瑪密碼機檢視原始碼討論檢視歷史
在密碼學史中,恩尼格瑪密碼機(德語:Enigma,又譯啞謎機、奇迷機或「謎」式密碼機)是一種用於加密與解密文件的密碼機。確切地說,恩尼格瑪是對二戰時期納粹德國使用的一系列相似的Rotor machine|轉子機械加解密機器的統稱,它包括了許多不同的型號,為密碼學對稱加密算法的流加密。
20世紀20年代早期,恩尼格瑪密碼機開始應用於商業,一些國家的軍隊與政府也使用過該密碼機,密碼機的主要使用者包括第二次世界大戰時的納粹德國。
在恩尼格瑪密碼機的所有版本中,最著名的是德國使用的軍用版本。儘管此機器的安全性較高,但盟軍的密碼學家們還是成功地破譯了大量由這種機器加密的信息。1932年,波蘭密碼學家馬里安·雷耶夫斯基、傑爾茲·羅佐基和亨里克·佐加爾斯基根據恩尼格瑪機的原理破譯了它。1939年中期,波蘭政府將此破譯方法告知了英國和法國,但直到1941年英國海軍捕獲德國U-110潛艇,得到密碼機和密碼本後才成功破解。密碼的破解使得納粹海軍對英美商船補給船的大量攻擊失效。盟軍的情報部門將破譯出來的密碼稱為ULTRA,ULTRA極大地幫助了西歐的盟軍部隊。關於ULTRA到底對戰爭有多大貢獻尚存爭論,但普遍認為盟軍在西歐的勝利能夠提前兩年,完全是因為恩尼格瑪密碼機被成功破譯的緣故。
儘管恩尼格瑪密碼機在加密方面有不足之處,但是經它加密的文件還是很難破解,盟軍能夠破譯它的密碼是因為德國軍隊犯了其它一些大的錯誤(如加密員的失誤、使用步驟錯誤、機器或密碼本被繳獲等等)。
轉子
轉子組成了恩尼格瑪密碼機的核心部分。每個轉子的直徑大約為10厘米,形狀為圓盤形,由硬質橡膠或電木製成,一系列由彈簧承載的黃銅管腳呈環形排列於其中一面,而另一面相對應的則是圓形的金屬觸點。管腳與觸點代表的是字母表上的全部字母,典型的排列就是A-Z(以下的介紹全部假設轉子為這種排列方式)。當兩個轉子的位置相鄰時,其中一個的管腳就會接觸另外一個的金屬觸點,這就形成了一個通路。在轉子內部,有26條金屬線將一面的管腳與另一面的觸點連接起來,這些金屬線的排列方式在每個轉子內都有所不同。
單一的一個轉子的加密方式是很簡單的,它只使用了一種初級的替換式密碼[1] 。比如說,E鍵對應的管腳可能會連到同一個轉子另一面的T觸點。使恩尼格瑪密碼機的加密變得複雜的是多個轉子的同時使用,一般在一台恩尼格瑪密碼機內有3個或4個轉子,在輸入信息的同時轉子還會轉動,這就產生了一種安全得多的加密方式。
當被放進恩尼格瑪密碼機後,一個轉子可以有26種排列方法。它可以通過操作員來轉動,如顯示器所示。為了使操作員知道轉子的轉動情況,每個轉子在轉盤外部都有一個刻着字母或數字的環;其中一個字母可以通過一個小窗看見,這樣操作員可以看到轉子的轉動情況。在恩尼格瑪的早期型號中,該字母環固定於轉子上,但在後來的型號中,操作員可以通過調整字母環的位置而調整轉子內的線路。
每個轉子上都有一個V形刻痕(有時有多個),這些刻痕用來控制轉子的轉動。在軍用恩尼格瑪密碼機中,這些刻痕位於字母環上。
描述
這張恩尼格瑪密碼機的原理圖顯示了按下A鍵後機器是如何將它顯示成D鍵的(燈D發亮),而按下D鍵的同時燈A也會發亮,但是按下A鍵是永遠不會使燈A發亮的,這是因為恩尼格瑪密碼機安裝有反射器。 恩尼格瑪密碼機轉子的工作原理圖。連續按兩次A鍵時,電流流經所有轉子,通過反射器後分別流到G燈和C燈。 注意:轉子上的灰色線條代表了其它可能的線路,這些線條與轉子以硬件接連方式連接起來。 連續按兩次A鍵會得到不同的結果,第一次得到的是G,第二次是C。這是因為最右邊的轉子在第一次按下A鍵後會旋轉一點(形成了不同的通路),這樣再次按下A鍵後,電流會被送到一個完全不同的路線上。
與其它轉子機械相同的是,恩尼格瑪密碼機也結合了機械系統與電子系統。機械系統包括了一個包含字母與數字的鍵盤,依次排列在一個軸上的一系列名為「轉子」的旋轉圓盤,還有一個在每次按鍵後就使一個或幾個轉子旋轉的裝置。各種恩尼格瑪密碼機上的機械系統各不相同,它們之間最大的共同點是,每次按鍵後最右邊的轉子都會旋轉,並且有時候與它相鄰的轉子也會旋轉。轉子持續的旋轉會造成每次按鍵後得到的加密字母都不一樣。
機械系統這樣運行的原因,是要產生不同的電流通路,字母的加密由機器自動完成。當一個鍵被按下後,電流會流過通路,最終點亮其中一個燈,這個燈顯示的就是加密後的字母。舉例來說,如果想要發送一條以ANX開頭的信息,操作員會先按下A鍵,這時燈Z就可能變亮,Z就是加密後的信息的第一個字母。操作員之後會按同樣的步驟繼續輸入信息。
為了解釋恩尼格瑪密碼機的工作原理,我們用左側的圖表進行說明。為了使讀者更容易理解,在此只顯示4個鍵及燈和其它元件。實際上,恩尼格瑪密碼機擁有顯示燈、按鍵、插孔和線路各26個。電流首先從電池①流到雙向開關②,再流到接線板③。接線板的作用是將鍵盤②與固定接口④連接起來。接下來,電流會流到固定接口④,然後流經3個(德國防衛軍版)或4個(德國海軍M4版和德國國防軍情報局版)轉子⑤,之後進入反射器⑥。反射器將電流從另一條線路向反方向導出,電流會再一次通過轉子⑤和固定接口④,之後到達插孔S,又通過一條電線⑧流到插孔D,最後通過另一個雙向開關⑨去點亮顯示燈。
轉子的轉動造成的電流路徑的持續變化使恩尼格瑪密碼機(在當時)具有了高度的保密性。