如果經典密碼與壓縮明文一起使用,它會使頻率分析攻擊更難多少?
經典密碼,例如 Vigenère 密碼,很弱,不再使用。它們可以通過使用頻率分析來破解,這是眾所周知的事實。
然而,頻率分析通常取決於擷取的密文的數量和/或它們的重複。如果密文被霍夫曼編碼等算法壓縮
zlib
,或者lzma
在加密明文之前呢?為了更好的安全性,假設明文中沒有常量頭、幻數或任何標識符。壓縮通過頻率分析使攻擊變得更加困難?
壓縮通過逼近一個最優程式碼來工作——如果給定消息的機率是 $ p $ ,其編碼長度為 $ -log(p) $ . 這意味著壓縮消息的加密長度可能會洩漏有關明文的資訊。
此外,像霍夫曼編碼這樣的方案的工作方式是為更頻繁的源符號輸出更短的程式碼字,而不是為不太頻繁的源符號輸出更短的程式碼字。這意味著霍夫曼碼字的相對頻率將與源符號的頻率相同。它無法掩飾這些頻率。
需要考慮的一個很好的現實範例是破壞某些使用可變比特率編碼(這是一種壓縮形式)的加密 IP 語音編解碼器的機密性的攻擊:
儘管 IP 語音 (VoIP) 得到了迅速採用,但其安全隱患仍未完全了解。由於 VoIP 呼叫可能會穿越不受信任的網路,因此應加密數據包以確保機密性。但是,我們表明,當使用可變比特率編解碼器對音頻進行編碼時,加密的 VoIP 數據包的長度可用於辨識通話中所說的片語。我們的結果表明,被動觀察者可以在加密呼叫中辨識標準語音語料庫中的片語,平均準確率為 50%,某些片語的準確率大於 90%。
頻率分析需要對明文數據的熵有先驗知識。對於像英語這樣的語言,攻擊者很容易知道英語的熵。
但是,壓縮會改變明文數據的熵。這意味著壓縮後的數據比原始數據具有更高的熵(壓縮後的數據更隨機)。這就是壓縮的工作原理——它通過增加數據的熵來實現更簡潔的數據表示。
使用壓縮時熵的這種變化使攻擊者無法進行頻率分析,因為他們不知道使用了什麼壓縮,或者在對壓縮數據進行頻率分析時不知道使用什麼熵進行估計。
請注意,不應信任密碼-它們可能仍然容易受到其他攻擊,例如差分密碼分析等。此答案僅與頻率分析有關。