破譯替換密碼的方法

Lois發表於2020-07-18

第一種攻擊:蠻力攻擊或窮盡鑰匙搜尋

蠻力攻擊的想法非常簡單:攻擊者 Oscar 透過通道獲得密文,並且他碰巧知道一小段明文,比如被加密的檔案的頭部。現在 Oscar 可以嘗試所有可能的金鑰解密該密文開頭的一小段內容。再次強調一下,這種加密方法的金鑰是一個替換表。如果解密後的明文和這段明文匹配的話,則說明他找到了正確金鑰。
請注意:理論上講,蠻力攻擊總是可以破解對稱密碼;而實際上這種方法是否可行則取決於金鑰空間的大小,即某個給定密碼存在的所有可能金鑰的數量。如果在多臺現代計算機上測試所有的金鑰需要花費大量時間,比如幾十年,則這個密碼可以稱為對蠻力攻擊是計算安全的。

第二種攻擊:字母頻率分析

從上面提到的蠻力攻擊可以發現,它將密碼看做一個黑盒,即我們不會分析密碼的內部結構。使用字母頻率可以輕鬆地破解替換密碼。
替換密碼最大的缺點在於:每個明文符號總是對映到相同的密文符號。這就意味著明文的統計特性在密文中得到了很好的保留。
在實際字母頻率分析攻擊中:我們可以利用以下幾種語言特性:

  1. 確定每個字母的頻率。
  2. 上面提到的方法可以推廣到檢視連續的兩個、三個或四個等密文字母。例如,英語(或其他歐洲語言)中的字母 U 幾乎總是緊跟在字母 Q 後面,這種現象可以用來檢測字母 Q 和 U 對應的替換字母。
  3. 假設我們發現了單詞分隔符(空格),就可以很輕鬆的找到高頻短單詞,比如 THE、AND 等;當然能發現單詞空格符的情況並不常見。一旦可以確定任何一個短單詞,我們立刻就能知道整個文字中這三個字母(或這 N 個字母,N 表示單詞長度)分別代表什麼。
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章