如何證明對稱加密方案提供了完美的保密性?
我在課堂上了解到,為了做到完美保密,明文的來源 $ \mathcal{P} $ 需要獨立於加密密鑰的來源 $ \mathcal{K} $ . 我們還了解到,獨立來源總是如此: $ H(\mathcal{P}) \le H(\mathcal{K}) $ ,但它不應該被用作詳盡的證明,因為在你有一個高熵密鑰但它設計糟糕的情況下(例如每個程式碼字有不同的長度),你仍然可以推導出很多來自嘗試解密的資訊。
我們看到了一個例子,有人使用硬幣確定由 16 位組成的隨機密鑰,以掩蓋由 4 位編碼為 4 位的明文(使用 xor 邏輯)。在這種情況下, $ H(\mathcal{P}) = 13.2877 $ (有 10000 種可能的數字組合),以及 $ H(\mathcal{K}) = 16 $ ,所以不等式成立。
現在假設密鑰的 8 位是隨機生成的,然後只複製剩餘的 8 位。密鑰源和明文源現在變得相互依賴,但前提是“黑客”知道密鑰被複製了兩次(因為這在技術上是可能的結果)。不等式也不再成立,因為 $ H(\mathcal{K}) = 8 $ . 我假設這個加密方案無法提供完美的保密性,但我仍然不相信,因為我之前關於這個“複製”密鑰的條件狀態的論點。在這種情況下,除了上面提到的兩種方法之外,還有更好的方法來提供證明嗎?
將加密消息的前半部分與後半部分進行異或運算與對原始消息的前半部分和後半部分進行異或運算的結果相同。(當密鑰重複時)。這與完全保密相矛盾,因為可以從密文中獲得一些資訊。
Jean-François Gagnon的回答很好,可以作為一個明顯的證據,證明這個方案不能提供完美的保密性。
現在您的思考過程中的錯誤實際上是攻擊者不知道密鑰被“複製”。這是一種簡單形式的密鑰調度,假設攻擊者知道它以及加密和解密常式(通常稱為 $ \operatorname{GenKey()} $ )。如果您假設密鑰計劃是密鑰的一部分,那麼任何密碼的密碼分析都會變得非常困難,實際上您可以證明多次填充(使用密鑰 $ 1 $ ) 完全安全,因為“攻擊者無法知道我們一直使用 $ 1 $ 作為關鍵位”。