一次墊兩次計時
如果明文是完全隨機的,一次性墊在 2+ 深度上是否仍可破壞?
我假設這個想法是錯誤的,主要是因為它發生在我身上,但讓我引導你了解我的邏輯,以便你可以簡潔地糾正我:
在深度為 1 時一次性 pad 是牢不可破的,因為全面的暴力攻擊會產生大量合理的明文。
當深度為 2 或更多時(例如,與多個明文消息一起使用的同一鍵盤),它變得易碎:
- 暴力破解消息 $ A $ 可能導致(比如說)10 個明文
- 暴力破解消息 $ B_n $ 每個可能產生 10 個明文
- 通常產生有效明文的密鑰可能是使用的一次性密碼本。
如果明文是完全隨機的,那麼這種攻擊將不起作用,因為沒有辦法區分“明文輸出”和不正確的輸出。
我正在考慮在兩個系統之間傳遞加密密鑰和 IV 的方法——如果生成得當,它們應該是非常隨機的數據。讓我們假設他們有一個可以交換一次性密碼的可信通道,但希望使用一個不可信的通道來交換更多的數據。如果他們不得不就用於對稱加密的密鑰達成一致,他們可以使用對稱加密來保護不受信任的通道上的數據。如果一次性密碼可以用於在該不受信任的通道上安全地交換對稱密鑰,那麼對受信任通道的稀疏使用(交換一次性密碼)可以在不受信任的通道上實現加密。
這會不會是一個共享的秘密,而不是一次性的?密鑰派生函式?
一些*“請不要打敗我”的*警告:
- 是的,我意識到這聽起來像是在打破“永遠不要發明新的密碼系統”的規則,我意識到這條規則的重要性。相反,我將其用作gedankenexperiment以更好地理解加密,和/或作為辨識描述我所建議內容的現有模型的一種方式。
- 是的,我意識到 SSL 是我所建議的合適模型 - 證書交換和握手是“受信任的通道”,可以通過“不受信任的通道”對一般數據進行對稱加密。我有理由考慮更輕量級的解決方案。
我很感激你能給我的任何啟迪。
您描述的方案本身在某些(特別是)理論環境中可能是安全的。 但是,我不建議使用它,因為任何嘗試使用對等點之間傳遞的值都可能會破壞方案的安全性,例如不安全的 RNG。
我在下面表達了一些擔憂。
我有點擔心將方案稱為 OTP 任何東西,因為這不是 OTP。當這種做法安全時,丹尼爾的評論已經提到:
只要您在每次使用後都有 n 個方程的 n+1 個未知數,即預共享值加上每個鍵值,似乎很難打破(或不可能)。另一件事是是否出於其他原因建議使用這樣的協議。
這是在問題中:
我正在考慮在兩個系統之間傳遞加密密鑰和 IV 的方法——如果生成得當,它們應該是非常隨機的數據。
您如何處理這些密鑰和 IV?例如,考慮它們用於加密數據。還假設對手獲得了使用這些加密密鑰(對手未知)和 IV 處理的密文和(部分)明文:
- 分組密碼操作模式(通常)不保護 IV 不被洩露。這是因為 IV 在使用之前應該是攻擊者無法預測的值。但是,攻擊者可能會在事後確定使用的 IV;有時甚至很容易。
- 對手可以使用計算攻擊密鑰而不是資訊論攻擊(例如針對 OTP。這可能不是什麼大問題,因為許多算法密鑰很難破解)。
犯規的例子
我決定寫一個犯規的例子,基於我對所寫場景的理解。問題中沒有很清楚地說明交流值的可能用途是什麼,但這種解釋試圖利用我的觀點,即使用交換值很容易導致安全問題。原樣的範例可能不適用於此處。
假設使用多時間鍵保護的 Key+IV 進行 AES-CBC。還假設每個 Key+IV 都使用相同的焊盤“保護”。攻擊者可以更改發送的數據消息(稱為 $ M_i $ 以下)。
我們得到第一個鍵和 IV(假設這個方案使用“XOR”操作),A 是多次使用的填充:
- $ M_1 = A \oplus (Key_{1} || IV_{1}) $
- $ M_2 = A \oplus (Key_{2} || IV_{2}) $
攻擊者可能會影響 $ Key_{1} $ 和 $ Key_{2} $ . 例如,可以將密鑰和IV 設置為相同以用於兩種不同的用途。(通過更換 $ M_2 $ 和 $ M_1 $ .)
其他一些擔憂
讓我們假設他們有一個可以交換一次性密碼的可信通道,但希望使用一個不可信的通道來交換更多的數據。
您的不受信任通道比受信任通道快多少,即您打算重用“OTP”多少次?
您從哪裡獲得包含密碼和 IV 的“純文字流”?隨機數生成器通常不提供您描述的方案所要求的完全 iid。
如果你有一個保密的“OTP”並且你多次使用它來傳遞秘密,這實際上變成了某種秘密共享方案。您應該檢查它們以了解如何正確使用它們。
許多考慮之一是,如果攻擊者能夠以某種方式破解一個密鑰,他也可以破解所有其他密鑰。所有密鑰的強度與以這種方式交換的最弱密鑰的強度相同。
另請參閱 Wikipedia 的文章“弱鍵”。