Encryption

修改 Enigma 機器以允許不變的字母

  • July 21, 2021

Enigma 最大的缺陷之一是一個字母不能代表它自己,因為通過機器的路徑是單向的。我在想一個快速的解決辦法是引入一個使信號偏轉的轉子位置,這樣什麼都不會亮起——沒有響應表明你剛剛按下的字母沒有改變。解密時,轉子位置也應該沒有響應,因此您知道消息中的字母沒有改變。

修復真的會那麼簡單還是我錯過了什麼?

至少有一個晚期的 Enigma 衍生產品,俄羅斯M-125 Fialka,它確實修改了反射器以允許一封信加密給自己。

奇怪的是,Fialka 的設計者並沒有簡單地將密碼字母的大小設為奇數(這對俄語來說已經足夠自然了,因為它有33 個西里爾字母),而是使用了一個相當複雜的(而且,在當時,高級)“魔術電路”,用單個“明文啟用”信號(導致明文輸入輸出不變)和一組三根線替換兩根線對,該三根線連接到晶體管化的“二進制旋轉器”,將輸入信號映射到三根導線中的任何一根連接到三根導線中的下一根導線上的輸出信號,如 (1 → 2, 2 → 3, 3 → 1)。

當然,魔法迴路也意味著 Fialka 缺乏 Enigma 的自互性特性:加密和解密不是(完全)相同的操作。因此,Fialka 還需要一個“加密”/“解密”模式開關,只需將進入魔術電路的三根電線中的兩根交換即可。

就我所知,Fialka 的這個功能為什麼會以這種特定的方式實現是未知的*。*有人可能會懷疑,最初基於 Enigma 的 Fialka 設計,帶有偶數個字母和一個 Enigma 式反射器,可能在有人意識到 Enigma 從未加密給自己的字母的密碼分析意義之前就已經完成了,並且該缺陷已以最小化對設計其餘部分的更改的方式進行修復。或者一些俄羅斯密碼機設計師可能只是渴望使用新奇的晶體管技術。

回答你原來的問題?有點。您可以將您的鍵盤映射到 27 位置輪上的 26 個輸入,並將您的燈板映射到相同的 26,這樣就可以了。剛剛編碼“A”的人知道他需要傳輸“A”。

但實際上,您不想要與故障無法區分的有意義的輸出。“沒有任何東西亮起”也是燈泡燒壞的結果。所以你必須將第 27 個輸出連接到某個東西。至少有幾台機器有“重複輸入”燈。

但是,剛剛編碼“A”並知道他需要傳輸“A”的人並不總是進行傳輸的人。讀取密碼輸出並進行傳輸的人需要實際看到“A”亮起。然後你就有了他們在 Fialka 中內置的精密電路。

引用自:https://crypto.stackexchange.com/questions/55247