Algorithm-Design
應用於 Enigma 時的密鑰與算法
我剛剛在閱讀為什麼我應該公開我的密碼?這個網站上的問題和答案。
我了解 Kerckhoffs 的原理,但我不確定這究竟如何適用於 Enigma - 即算法和密鑰之間的劃分。
(我覺得我應該知道,但我還沒有完全做到。)以下是我認為我知道的:
- 轉子和插板的接線 = 算法的一部分
- 轉子的起始位置 = 鍵的一部分
假設#2 是正確的,你將如何定義轉子的設置順序,或者選擇哪些轉子——這僅僅是改變算法嗎?
你的假設是部分正確的。轉子的接線在技術上是算法的一部分,但由於 Enigma 發明的時代,轉子是保密的,因此發現轉子接線成為機器密碼分析的第一步。然而,操作員每天都會更換外掛板/滑板,其設置絕對是關鍵的一部分。
Enigma 消息的完整密鑰由操作員為加密和解密消息所需設置的所有內容組成。鑰匙有四個部分。
- 轉子順序。每個轉子上都刻有一個羅馬數字來辨識它,操作員必須將它們安裝在指定的位置。這是每天設置的。
- 環位置。每個轉子都有一個字母環,可以圍繞轉子旋轉,並且在將轉子安裝到機器之前必須正確定位。這是每天設置的。
- 字母起始位置。每個轉子都必須旋轉以顯示正確的起始字母。這是在每條消息的開頭設置的。
- 插板接線。這是每天設置的。
設置每天都在更改。操作員根據列印在一張紙上的日期查找設置,並為當天設置機器,確定密鑰。必須在發送或接收每條消息之前設置輪子的起始位置。如果在消息過程中出現問題或錯字,操作員必須重新開始,重新設置輪子並重新輸入整個消息。
我相信設置表每月分發一次,而海軍版本則印在水溶性紙上,以便在即將被擷取或沉沒時將其銷毀;但我沒有參考。
機器的操作說明可以在這裡查看: http ://www.ellsbury.com/enigma3.htm
可以在此處找到機器手冊的英文翻譯: http ://www.ilord.com/enigma-manual1937-english.html