破解替換密碼


題目

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的糾錯功能斷詞為如下,是較為滿意的答案:

完成的過程中除了一開始說的錯誤,還嘗試了以頻率為主要依據解密,也非常不理想,所幸最后利用語法猜測出了結果,這樣看來,早期的解密也實在是一項需要運氣的工作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM