題目
EMGLOSUDCGDNCUSWYSFHNSFCYKDPUMLWGYICOXYSIPJCKQPKUGKMGOLICGINCGACKSNISACYKZSCKXECJCKSHYSXCGOIDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUSIGLEDSPWZUGFZCCNDGYYSFUSZCNXEOJNCGYEWEUPXEZGACGNFGLKNSACIGOIYCKXCJUCIUZCFZCCNDGYYSFEUEKUZCSOCFZCCNC
提示:F解密為w
一開始以為是簡單的替換,嘗試逐個實驗確定參數,做到自閉,最后還是靠統計+語法分析的方式做了出來。
首先,統計出現的字符及其數量,
'''
count={}
for i in range(len(cipher)):
count[cipher[i]] = 0
for i in range(len(cipher)):
count[cipher[i]] += 1
print(count)
{'E': 12, 'M': 5, 'G': 24, 'L': 7, 'O': 10, 'S': 20, 'U': 14, 'D': 8, 'C': 37, 'N': 13, 'W': 5, 'Y': 15, 'F': 9, 'H': 5, 'K': 18, 'P': 6, 'I': 15, 'X': 7, 'J': 7, 'Q': 1, 'A': 5, 'Z': 13}
'''
C的出現頻率遠高於其他字符,我們先假設C的明文為e,再依據題意替換F為w,可以得到:
由於wZee聯想到wheel,所以,猜測Z代表h,N代表l,嘗試得到:
再通過leU、Uhe等聯想到U可能代表t,即:
出現過兩次DGYYSw,暫時可以認為其為一個單獨的單詞。
這時候注意到EtEK,應該為一個或兩個單詞,前面部分還有一個Et,結合后面的句子成分讓我想到了it is the…,也就是說E代表i,K代表s:
做到這兒,感覺S的問題又冒了出來,試過age后被否了,再回過頭去看發現有3處tS,除去已經確定的剩下的比較常見的有to,th,但hOe顯然構不成單詞,還有幾處Sr,又增加了S為o的可能,嘗試S替代o:
這樣的話O就只能代表n構成one:
YYow結尾的單詞通常為llow,但感覺湊不成句子,觀察一下Y,結尾處的Y讓我一下想到了ster結尾,試一哈:
借助於強大的搜索引擎和歐路詞典,我得到了獨輪手推車這個短語:wheel barrow,也就是說D代表b,G代表a,有:
到這里發現rsb構不成單詞開頭,觀察了一會兒,好像可以改成lowers,根據語感猜測MaL為may,也就是M代表m,L代表y,這樣最后的master也合乎邏輯:
猜測P為u,也就是bPt為but:
重新整理了下結構如上,推測Hlowers代表flowers,也就能相應的猜測出Wrow代表grow,WarIen代表garden,即W代表g,H代表f,I代表d:
到這里可以觀察到如果X代表p,J代表C就可以得到produces和perfect兩個符合句子意思的詞:
上文中ehicle聯想到vehicle剛好同主題相關,也就是說A大概率對應v,剛好,v還未使用過,最后Q代表j似乎比較恰當:
又排除了幾處粗心留下的錯誤后,借助word的糾錯功能斷詞為如下,是較為滿意的答案:
完成的過程中除了一開始說的錯誤,還嘗試了以頻率為主要依據解密,也非常不理想,所幸最后利用語法猜測出了結果,這樣看來,早期的解密也實在是一項需要運氣的工作。