Encryption

使用單獨的密碼加密的消息和一個時間填充是否可以比任一密碼中的強者弱?

  • May 9, 2022

假設你有:

  • 一個真正隨機的一次性墊, $ P $
  • 一條純文字消息, $ M $
  • 兩個對稱密碼, $ C_S $ 和 $ C_W $ , 在哪裡 $ C_S $ 總是比 $ C_W $

假設密鑰已經被安全交換,並且攻擊者攔截了 Alice 傳輸的所有內容。

理論上可以 $ C_S(P \space \oplus \space M) $ 和 $ C_W(P) $ 合起來不太安全 $ C_S(M) $ ?

也是 $ C_S(P \space \oplus \space M) $ 和 $ C_W(P) $ 總是比 $ C_S(M) $ .

在較長的形式中,如果我使用一次性密碼對消息進行異或,並使用一種密碼對其進行加密,然後使用不同的密碼對一次性密碼進行加密,那麼這是否比僅使用兩種密碼中更強的密碼更不安全?是不是總是會更強大?

我只會解決第一個問題:

理論上可以 $ C_S(P\oplus M) $ 和 $ C_W(P) $ 合起來不太安全 $ C_S(M) $ ?

的,它可能不太安全。

論點:我將做一個明確的例子,假設 $ M $ , $ P $ , 密文和密鑰均為 16 字節, $ M $ 是UTF-8文本右填充零,在攻擊模型下,攻擊者獲得單個密文。

定義一個容易計算的條件 $ f(X) $ 在哪裡 $ X $ 是一個 16 字節的塊,並且 $ f(X) $ 無論是真還是假,這樣

  • $ f(M) $ 永遠是真的
  • $ f(X) $ 為真,機率約為 $ 1/2 $ 對於隨機 $ X $

一個合適的 $ f $ 是:每個字節 $ X $ 小於 $ \text{0xF5}=245 $ . 那是因為字節 $ \text{0xF5}\ldots\text{0xFF} $ 在 UTF-8 中保留,並且 $ (245/256)^{16}\approx1/2 $ .

筆記 $ E_K(X) $ AES-128 加密 $ X $ 在鍵下 $ K $ .

構造 $ C_S $ 對於 16 字節密鑰 $ K $ 並阻止 $ X $ 如下:

  • 放 $ K’ $ 根據的低位到全0x00或全0xFF 16字節塊 $ K $

  • 如果 $ f(X) $ 持有,

    • 然後設置 $ X\gets E_K(X) $ 反复直到 $ f(X) $ 持有
    • 否則設置 $ X\gets E_{K’}(X) $ 反复直到 $ f(X) $ 不持有
  • 輸出 $ X $

無論是已知 $ K $ 是, $ C_S $ 是任何 16 字節塊的易於計算且可逆的雙射,使得 $ f(E_K(X))=f(X) $ 對於所有塊 $ X $ . 那是使用標準的自行車步行技術。當它加密消息時 $ M $ , 分組密碼 $ C_S $ 強。但是當它加密一個隨機 $ X $ , 機率約為 $ 1/2 $ 它用 $ K’ $ 它只能取兩個值,因此很弱。

製作 $ C_W $ 身份不分 $ K $ ,它確保“ $ C_S $ 總是比 $ C_W $ “: 分組密碼 $ C_S $ 不好,但總比沒有好。


當一個不知道密鑰的對手得到 $ C_S(M) $ , 條件 $ f(C_S(M)) $ 成立,幾乎沒有學到任何東西 $ M $ (除了確認 $ f(M) $ 持有)。

當對手得到 $ C_S(P\oplus M) $ 和 $ C_W(P) $ , 後面的產量 $ P $ , 和

  • 如果 $ f(C_S(P\oplus M) $ 成立,其機率約為 $ 1/2 $ ,據了解 $ f(P\oplus M) $ 持有
  • 否則,解密 $ C_S(P\oplus M) $ 可以嘗試使用全 0x00 或全 0xFF 鍵,產生候選 $ X_0 $ 和 $ X_1 $ 兩者都有 $ f(X_0) $ 和 $ f(X_1) $ 錯誤的。 $ M $ 必須是其中之一 $ M_i=X_i\oplus P $ . 此外,如果 $ f(M_i) $ 是假的,那麼我們可以裁定 $ i $ 出去,並確定另一個是 $ M $ .

最終對手學會了 $ M $ 機率約為 $ 1/4 $ , 的兩個可能值之一 $ M $ 機率約為 $ 1/4 $ , 以及關於一點點的資訊 $ M $ 否則。

我們得出結論 $ C_S(P\oplus M) $ 和 $ C_W(P) $ 加在一起的安全性低於 $ C_S(M) $ .


這可以擴展到使用 IV 處理可變長度消息的成熟密碼。這個想法將繼續存在 $ C_S $ 加密明文時安全 $ M $ 具有一定的特性,但在加密隨機明文時不安全(例如洩漏它的密鑰)。即使我們添加加密永遠不會增加大小(超出 IV)的約束,這也是可能的。

不,它不能不那麼安全。證明很簡單:如果 $ P $ 一旦被發現,那麼強密碼的安全性仍然可以保護 $ P \oplus M $ 因此 $ M $ .

但是,如果一次性墊 $ P $ 一旦洩漏,那麼它可以用來破解弱密碼,在這種情況下,結果與強密碼一樣安全。依靠數據永遠保密通常不是一個好主意。此外,依賴可能存在或不存在的安全性當然不是一個好主意。

除了理論上的安全性之外,弱密碼還可能存在問題,例如,填充預言機攻擊可能會洩漏 $ P $ ,在這種情況下,只會留下強密碼。

總而言之,如果沒有額外的細節,我會認為它與強密碼一樣安全,所以一次性填充似乎沒有太多好處(當然與經常使用新密鑰相比)。

引用自:https://crypto.stackexchange.com/questions/77666