Hash

MAC結構的攻擊H(m∥k)H(米‖ķ)mathcal{H}(mmathbin|k)對於常見的雜湊HHmathcal{H}?

  • January 12, 2021

考慮一個常見的實際抗碰撞雜湊函式 $ \mathcal{H} $ (例如SHA-1SHA-256SHA-512RIPEMD-160),可能基於Merkle-Damgård 結構,前三個也是。我們定義一個消息驗證碼 $ \mathcal{C} $

$$ (k,m) \mapsto \mathcal{C}(k,m)=\mathcal{H}(m\mathbin|k) $$ 在哪裡 $ \mathbin| $ 表示串聯, $ k $ 是一個密鑰(常數,或至少是固定大小),並且 $ m $ 是一條消息(可能是可變長度的)。假設對手可以(迭代地)送出查詢 $ m_j $ 並獲得 $ C(k,m_j) $ ,並且想要獲得 $ k $ 或以其他方式計算 $ C(k,m) $ 對於一些 $ m\ne m_j $ . 那個MAC $ \mathcal{C} $ 不是很糟糕。特別是,如果 $ \mathcal{H} $ 與隨機 Oracle 模型中的隨機函式無法區分, $ \mathcal{C} $ 會很安全。而且即使 $ \mathcal{H} $ 可能具有長度擴展屬性,它不會變成毀滅性的攻擊 $ \mathcal{C} $ .

我看到的不那麼不切實際的通用攻擊是,如果碰撞已知 $ \mathcal{H} $ 對於中等長度的碰撞消息,可以推斷出無數次碰撞 $ \mathcal{C} $ . 因此,安全性顯然不比防撞性好 $ \mathcal{H} $ (對於相同長度的消息)。我們可以假設 $ k $ 是結果的一半 $ \mathcal{H} $ , 並希望安全性約為2 69或者是 2 57甚至2 52、 2 80、 2 128、 2 256輪的 SHA-1、RIPEMD-160、SHA-256、SHA-512。

已知的攻擊有哪些 $ \mathcal{C} $ (比上述更好),以及它們的成本,對於這些常見的雜湊中的每一個?

是否有希望進行攻擊的論點 $ \mathcal{C} $ 會變成類似成本的攻擊 $ \mathcal{H} $ ,或相反的暗示?

更新:這個類似問題的答案很有趣,但我沒有發現它真的回答了目前的問題。

更新 2:我知道所考慮的結構比HMAC弱,尤其容易受到碰撞 $ \mathcal H $ ; 我說過,因此讓密鑰更廣泛毫無希望地針對某些攻擊的安全性優於散列大小的一半是沒有意義的。我確切地問什麼密碼分析攻擊比發現碰撞更好 $ \mathcal H $ 有。只有利用混凝土結構或/和圓形功能的弱點才能進行此類攻擊 $ \mathcal H $ .

Bellare、Canetti 和 Krawczyk 的原始HMAC論文“用於消息身份驗證的密鑰雜湊函式”的第 6 節描述了這種構造的一個問題,他們注意到在 $ \mathcal H $ ,即兩個輸入 $ x \ne x’ $ 這樣 $ \mathcal H(x) = \mathcal H(x’) $ , 直接產生碰撞 $ \mathcal C $ 這樣 $ \mathcal C(k,x) = \mathcal C(k,x’) $ 不管 $ k $ . (從技術上講,這僅在碰撞是內部的情況下才有效,從某種意義上說 $ \mathcal H(x | s) = \mathcal H(x’ | s) $ 對於任何後綴 $ s $ ,但是對於幾乎所有已知的 MD 雜湊衝突攻擊都是如此。)

當然,這個問題基本上是無關緊要的,如果 $ \mathcal H $ 假設是抗碰撞的。(雖然應該注意的是,即使是完美的 $ n $ -bit hash,生日攻擊只能找到約 $ 2^{n/2} $ 評估,然後可以使用這種碰撞來破壞 $ \mathcal C $ 對於任何 $ k $ .) 然而,考慮到實現完全的抗碰撞性似乎很難與大多數其他要求雜湊函式的安全屬性相比,對碰撞攻擊的免疫力(HMAC 結構提供的,只要它所依賴的其他安全屬性不受影響) 沒什麼好嘲笑的。

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