如何確定我擁有哪種類型的轉置密碼?
我有一些我使用頻率分析確定最有可能使用轉置密碼加密的密文,因為字母頻率類似於純英語文本。我相信下一步應該是確定它是哪種轉置密碼,但我不知道該怎麼做。
我是否正確地假設我所擁有的絕對是一個轉置密碼?如果是這樣,我如何確定它是哪個轉置密碼?
對於它的價值,這是我擁有的密文。但是(因為在這裡要求解密特定密文將是題外話)我對可以應用於任何密文的一般技術感興趣。
CTCRAL TYNIH ORFLN NLONH LTOWH SLINI IIEER NOENT AHRNE NWAAM CTEAK ERDHH DMIOD AEINA YTFEI IEINM FSTGI UOVED GLMEI YINEE EYNGS BSCRA TUVGU UEIEV OHIDA TISRO IEEEA TETMG RSFHD DHARA ICSEU EVHNS WIYII YIRND TFVCX GSMVL IUELH RETRG NNREC ONEYI OTLUN SBRSH AIIEE TTOOI ESCLS KWSLE ETGHN EOTNU STGIM EEACR TAEEN LAPEH RHNHE GWIEH EWRNN UETHT EPREN SDNFW YUFGI TUEAY ETLMR TBIPW UPANI OEFUS RSEAT NRTDP RENOA EETIL HNNAD HECWD TTILI UECDT DTLAM RQERS MVVTR HYTYO UFOAM ONCNS NFSST EEVHA YHERE OEONM RE- GAO HCVLO COIYT HSENZ FAHHL LYRII USBAS IEHEO IOSOT TILAI EOGOT ETEHL DEENP AEISP IDDMT RHNBI EEEMO NTIOE ISGZE SEAEE IDLNI TRTTD RIDUT PTNIY NIYNQ MMMIR BDAOI AYDOT DTELG HAIHO BDESA RSYLN HNWCN TRLRE NTAMN AESEI EHAEY NHGMO REFOT TFTUP AEREE HTONG OISHT TVEHO MSEFO OLINE TOLET SOATR AERTC TGEGT STTNA ONNTG OHAIA TYUOT IIARN TENCO TKGAU TSEHH EIBWO SDTUW INDTR UECHC RSEAT DEOEW ENWFA ELGKM
但是,我如何確定需要使用哪種轉置密碼?我是否可以假設這也絕對是一個換位密碼?
正如您發現的那樣,密文的頻率與英文字母的頻率相似。這可以帶來很多可能性
它可以是移位密碼,即凱撒密碼的推廣 $$ c = m + k \bmod 26. $$在凱撒密碼中, $ k=3 $ 是固定的。到目前為止,最多有 26 名候選人要測試。
它可以是一個置換密碼,即有一個置換 $ \pi $ 在排列字母的字母表上。1000 年的頻率攻擊就在這上面工作。您需要交換前三個字母並嘗試顯示其他字母。由於您有很長的消息,這應該工作得很好。實際上,替換密碼也是一種置換密碼。
它可以是任何轉置密碼,因為它們也保持字母頻率。
嘗試一些可能的導軌長度。這是一個非常弱的密碼。下面是軌道大小為 3 的 Rail Fence 直方圖。這與 Moby Dick 的頻率完全相同,因為字母沒有置換,只是位置發生了變化。這同樣適用於其他轉置密碼,因為它們只是轉置。
圓柱尺寸不能太長。嘗試一些可能的尺寸。 3. 路由密碼
需要行大小和讀取字母的路徑。不要期望道路太複雜。設置行大小並測試知名路由。螺旋向內向外,順時針/逆時針,從右上角/左上角,右下角/左下角等開始。 4. 柱狀換位
Guess the column size and look for digrams to determines the permutation on the columns.
這很難攻擊,它採用列轉置的結果並應用另一個轉置。儘管如此,我們仍然有電腦,並且一旦可以測試所有值到某個限制並檢查解密文本中的字元串。Linux 的
strings
命令有助於區分這些。 6. 米甚科夫斯基換位只是對 Columnar transposition 的修改,它處理鍵中字母的再次出現。稍微增加密鑰空間。 7. 被破壞的轉座 8. 格柵
這是本系列中最難的之一,因為攻擊者需要形成格柵。建議使用蓋恩斯書的章節。它有一些變體。
我們不期望組合,因為組合可以隱藏頻率。
- 維吉尼亞密碼
預計不會是 Vigenère 密碼,但是可以使用Kasiski 測試進行測試。
線上工具
我也做過;
淺灰色來自 Moby Dick 文本,中灰色是您的文本。在一個條形圖中,頂部的淺灰色表示 Moby dick 的頻率較高,頂部的中灰色表示您的文本頻率較高,範例 Python 程式碼,Moby Dick 在這裡。
從這裡我們可以簡單地說它不可能是Caesar或Shift Cipher,因為頻率非常接近真正的英語頻率!。