Hash
未加密散列函式摘要的加密容易被偽造?
我有一個問題。假設我們有一個抗碰撞的無鍵散列函式 $ H(·) $ 它輸出 128 位摘要和語義安全對稱加密 $ E(·,·) $ 下面的方式,我們可以這樣設計一個消息認證碼(MAC),所以給定一個消息 $ m $ 和密鑰 $ k $ , mac 是加密的摘要, $ t=E(k, H(m)) $ .
如果加密是CBC模式或CTR模式,是否容易被偽造?我的直覺告訴我這是可能的,但我不知道為他們構造偽造品。歡迎任何建議,謝謝!
在CBC模式或CTR模式下,給定已知消息的一個有效 MAC,攻擊者可以輕鬆偽造任何消息的 MAC 。
讓我們假設攻擊者知道一條消息 $ m $ 及其MAC $ E(k, H(m)) = IV, E(k, IV, H(m)) $ ; 他有消息 $ m’ $ 他要形成消息。他計算 $ \delta = H(m) \oplus H(m’) $ , 然後:
- 對於CTR模式,他計算 $ IV, E(k, IV, H(m)) \oplus \delta $ ,當它被解密時,這會導致 $ H(m) \oplus \delta = H(m’) $
- 對於CBC模式,我們計算 $ IV \oplus \delta, E(k, IV, H(m)) $ ; 由於 CBC 模式的工作原理,第一個塊(AES 為 128 位)是 $ H(m) \oplus \delta = H(m’) $ ; 因為 $ H $ 僅生成 128 位,這就是整個消息(nit:取決於填充的 CBC 模式,這也可能是一個問題;我假設沒有填充)。
此外,沒有“具有 128 位輸出的防衝突雜湊函式”之類的東西;假設散列函式採用任意位串,我們可以在 $ O(2^{64}) $ 時間,這通常被認為是可行的。