Hash
將雜湊綁定到初始化向量中?
鑑於需要傳輸相對較短的消息(最多幾十個字節),初始化向量中的以下散列捆綁有多不安全?
- (A) = 64 位加密隨機數
- (B) = 與原始消息連接的 A 的加密雜湊
然後將 (A) 與 (B) 的 64 位連接起來,並將其用作 AES CTR 模式加密的 IV。
這削弱了 IV 隨機性以允許將散列捆綁在其中,並試圖隱藏 IV 中未加密的散列可能洩漏的資訊。
用於AES的密鑰每次都會改變,它是(秘密+消息計數器)的HMAC。
這是一個非常糟糕的主意:消息的大部分機密性 $ M $ 失去了,因為 $ A $ 和 64 位 $ B=H(A|M) $ 清晰可用。因此,如果 $ M $ 是可列舉的(密碼、姓名、社會安全號碼) $ 2^{48} $ ,它可以通過廉價的離線攻擊找到,誤報率很小( $ 2^{-16} $ ),完全與 AES 加密無關。