【計算機博物志】戰(zhàn)爭密碼(中集)蝴蝶的翅膀

波蘭人嘗試用上級提到的語言學(xué)密碼破解方案,搞不定了(由于不是暴力替換
)
整/數(shù)學(xué)家!破譯!

多標替換消除統(tǒng)計學(xué)特征
恩格馬做到了一字一換表,所以很難整
一天一換秘鑰,有風(fēng)險
這時候秘鑰容易透露到別的國家

使用隨機秘鑰,然后先用統(tǒng)一秘鑰加密隨機秘鑰,把隨機秘鑰再使用。
也就是
如果en函數(shù)是恩格馬函數(shù)的話
en2(pwd, text) = en(unique_pwd, pwd) + en(unique_pwd, pwd) + 注意這里和en(unique_pwd, pwd) * 2的區(qū)別en(pwd, text)
但是因為前六個字母有了重復(fù)
這個妙了:把一個恩格馬機分成6個轉(zhuǎn)子不動的恩格馬機
后用xyz表示這三個

我們有了一個函數(shù)(就是en函數(shù)?。?/p>
標注為abcdef(我會標注為a1,a2,a3,a4,a5,a6)

恩格馬機有一個問題(看過我上期筆記的童鞋都知道)
對于所有的n,滿足對于所有的x,滿足an(an(x)) = x
所以F = a1(X)則 a1(F) = X,所以G = a4(a1(F))
L = a5(a2(J)) V = a6(a3(B)),這里就是真妙
然后我們知道了
a41、a52、a63函數(shù)的(從N份密文得出)的對應(yīng)關(guān)系
有了一個對應(yīng)表:
like this:

現(xiàn)代數(shù)學(xué)的開端——群論!
簡單介紹一下:
一個群(group)是指一些操作的集合(要求這些操作可以疊加)
比如整數(shù)加法群
操作有(前面省略把一個數(shù))
……減3(-3),減2(-2),減1(-1),什么也不干(0),加1(+1),加2(+2),加3(+3)……
這個操作疊加起來就是加法,而0被稱為identity(對于任意的x,x 操作 identity = x)其中操作滿足交換律、結(jié)合律、……
算了扯得有點遠了qaq
這里可以把a41、a52、a63試做一個圖論的圖:
這樣就有了up豬所說的循環(huán)圈(圖論中叫做環(huán))
這就變成了一個圖like this:

(真的很肝!)
把一個循環(huán)的字母放進一個括號:
(VYLP) (FGDW) (ARSETZJHX)(OCNMKUIBQ)
a52和a63關(guān)系也能整出循環(huán)圈(肝不動了eve)
然后把每個循環(huán)圈的長度的數(shù)列 稱為 特征集合(指紋) of ZBY

AAA、AAB、……、ZZZ分別有不同的指紋

使用80+份的密文得到特征集合,對應(yīng)出秘鑰

但是有接線板啊
這里發(fā)現(xiàn)字母交換不會改變特征集合
(接線板在做單表替換,所以只要破解不帶接線板的就可以破解帶接線板的)
但是特征集合的逆推過程需要26^3種,如果沒有一個快速求的公式,就很難搞了
還記得a(1-6)嗎?
我們

雷耶夫斯基定理:對于一個恩格嗎回路a,特征集合中必然存在一個|a|/2的數(shù)(|a|是a的長度)
a1(A) = N
a4(N) = J
a1(J) = G
a4(G) = Q
a1(Q) = S
a4(S) = E
a1(E) = H
a4(H) = A
你想想,AD組合是不是 A->G->S->H->A?因為a1(a4(x))是這樣跳過兩步嘛
于是還有了N->G->S->H->N
為什么?因為跳過了兩步,偶數(shù)位置上就空出來了,而且易得
對于所有的a1-a4(和a14不一樣)循環(huán)圈中的成員,由它開始一定做a14運算迭代幾次后回到該成員。
這里不就說 A->G->S->H->A和N->G->S->H->N都是回路了嗎?這樣定理得證。
很快得到特征集合
“循環(huán)測定儀”

兩套恩格嗎機轉(zhuǎn)子(稱為m和n)

AAA的位置:把初始位置調(diào)到AAA-1+1(這里定義字符串加法:就是A+1=B,B+1=C,……,Z+1=進位)
把第二個轉(zhuǎn)子調(diào)到AAA-1+4

就像如此

這些被電路穿過的燈泡被點亮,就完成了一個回路
有了兩個8/2=4的循環(huán)圈然后把沒亮的字符開關(guān)撥上去,這次18/2了
然后左2(AAA-1+2)右5(AAA-1+5)
測定出a52循環(huán)圈數(shù)據(jù)
還有a63的
然后測量下一個秘鑰
這樣得到恩格嗎特征集合表
整了5個轉(zhuǎn)輪
研究bomba機器
失敗了:不再輸入兩次

于是這里我不談歷史,友情圖靈出現(xiàn)