Encryption

enigma 的戒指設置如何改變接線表?

  • June 15, 2019

編輯:我正在嘗試製作的模型是“Enigma 1”。我最初是從一本名為“Code Book”的書中了解到它的,然後從它的維基百科頁面上詳細查看了它。該網站不允許我也添加更多連結,但Google“謎轉子詳細資訊”並查看維基百科頁面

這裡有一個措辭相似的問題,但它沒有回答我的問題。

我正在嘗試製作一個謎模擬器。我已經完成了除了戒指設置之外的所有事情。它們如何影響換人?

例如,假設初始轉子設置為:

abcdefghijklmnopqrstuvwxyz
ekmflgdqvzntowyhxuspaibrcj

我認為通過應用 B 或 2 的環設置,設置應變為:

abcdefghijklmnopqrstuvwxyz
kmflgdqvzntowyhxuspaibrcje

我認為我應該做的就是將環位置添加到轉子位置。但情況似乎並非如此。我嘗試以這種方式從這裡解密第一條範例消息,但沒有成功。我什至試圖讓程序循環執行,直到它找到預期的答案,這樣我就可以推斷出環設置和轉子位置之間的關係,但它從未找到它。

但是在線上謎題模擬器上使用相同的設置是有效的。一切似乎都一樣,除了根據線上模擬器,b 或 2 環設置上的轉子接線應該是:

abcdefghijklmnopqrstuvwxyz
kflngmherwaoupxziyvtqbjcsd 

到底是怎麼變成這樣的?

少了兩塊。首先,環形設置改變了輸出字母,它不會旋轉整個退出模式。其次,轉子在字母加密之前先行。

如果您的轉子(Enigma I Rotor I)是這樣設置的,環位於 A。

abcdefghijklmnopqrstuvwxyz
ekmflgdqvzntowyhxuspaibrcj

然後,如果您將環推進到 B,所有輸出將在字母表上移動一個。 A將成為F而不是E. B將成為L而不是K. 等等。

abcdefghijklmnopqrstuvwxyz
flngmherwaoupxziyvtqbjcsdk

這幾乎與模擬器匹配,但為什麼模擬器的輸出偏移了一個?

abcdefghijklmnopqrstuvwxyz
kflngmherwaoupxziyvtqbjcsd

請記住,當按下一個鍵時,轉子會在電信號通過轉子之前前進。因此,要在 A 位置檢查通過最右側轉子的電流,必須在按下鍵之前將轉子設置在 Z 位置(如果其他轉子由於階躍,這也適用於其他轉子)。

資料來源:Enigma Machine 的技術細節

當您按下A轉子時,將前進到B根據 加密字母B。您的模擬器必須首先推進轉子然後加密字母

了解通過轉子的電流路徑的最簡單方法是為三個輪子組成六個表,三個向前和三個向後加上一個用於反射器的表。

該模擬器與轉子III, II, IB reflector. 當按下第一個鍵,即第一次進入時,模擬器使轉子前進。

為簡化起見,將環設置為1, 1, 2。然後,當您按下第一個鍵時,轉子將在鍵盤端子上的固定端子與轉子芯上的字母相匹配(其中包含轉子的固定接線)。路徑是轉子I-II-III, reflector, III, II, I。然後目前路徑是A-E,E-S,S-G反射器給出的路徑G-L,然後使用從輪子開始的反向表III,返迴路徑是L-F, F-W, W-N。輸入的結果A是字母N

對於下一個A輸入,轉子移動一個,以便轉子上的字母相對於鍵盤上的終端移動(這些是固定的)。來自鍵盤的字母A進入A終端,但現在進入B轉子上的字母。和以前一樣,使用表格,B轉到K轉子上的字母,但由於移位到J下一個轉子的終端(假設其他轉子沒有移位)。我們目前的路徑現在是J-B, B-D, Reflector D-H,帶有返迴路徑(使用從轉子開始的反向表IIIH-D, D-C。由於轉子的移動,端子與轉子鐵芯上C的字母相對。D``I

由於移位,轉子上的字母D連接到端子GG與端子相對。F因此,第二個A將作為F.

使用的轉子是(轉子上的前三個字母)

ROTOR.I.... A-E,B-K,C-M ,.... THE RETURN IS.. A-U,B-W,C-Y ....
ROTOR.II.... A-A,B-J,C-D,....    THE RETURN IS.. A-A,B-J,C-P .....
ROTOR.III.... A-B,B-D,C-F......    THE RETURN IS.. A-T,B-A,C-G....
REFLECTOR (B)... A-Y,B-R,C-U..  

轉子的左側有一個帶有 26 個字母或數字的環。這個環是彈簧載入的,可以向外拉,這樣它就可以相對於主體(核心)旋轉。

環下方是固定在主體上的一個點。這通常設置A在轉子上的位置。如果我們想將環設置更改為B 或位置 2,那麼我們可以通過拉出環並將核心保持在A位置(相對於固定鍵盤位置A),移動環使字母B(或2)在環與核心上的點相對。然後鬆開戒指,現在我們B在視窗中有字母而不是A。現在必須轉動轉子,A使環上的字母顯示在視窗中。從而反轉轉子BA法線方向,轉子的Z位置現在與固定A端子相反。

 .............D..C..B..A..Z..Y..X...........fixed terminals from keyboard .....
 .............D..C..B..A..Z..Y..X...........core of rotor.......................
 .............D..C..B..A..Z..Y..X.........MOVABLE RING.......................... 

現在更改為響鈴設置B(2):

 .............D..C..B..A..Z..Y..X  
 .............D..C..B..A..Z..Y..X  
 .............E..D..C..B..A..Z..Y  

現在旋轉,以便A顯示在轉子的視窗中。

由於環已接合,這會旋轉下方的兩排。

 .............D..C..B..A..Z..Y..X  
 .........D..C..B..A..Z..Y..X  
 .........E..D..C..B..A..Z..Y   
 ..........................^....  

中間行上的點A表示核心(所有接線所在的位置)現在位於B相對於鍵盤端子(頂行)的位置。請注意,核心現在位於頂行Z的終端旁邊。A

下排的視窗顯示為A。如果我們現在選擇鍵盤上的一個鍵,那麼這將旋轉轉子,以便B顯示在視窗中。中間行現在將在鍵盤的終端A旁邊。A

這就是為什麼您可以1, 1, 2在模擬器上設置鈴聲,以便我們從A聯繫人中獲得讀數。2設置等價於設置B

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