Hash
AES-CBC 雜湊函式抗碰撞性
我使用 AES-CBC 作為加密長度為 n 的塊的雜湊函式。塊,m = (m1, m2, …, mn)。IV 為一個塊長,加密密鑰長度為 128、192 或 256 位。
我會發生碰撞嗎?如果是這樣,我怎麼能找到例子?
我希望每 2^(n/2) 個雜湊找到一次沖突,但我不認為這會讓我在接下來的 10000000 年內找到任何匹配項。
我使用 AES-CBC 作為加密長度為 n 的塊的雜湊函式。塊,m = (m1, m2, …, mn)。IV 為一個塊長,加密密鑰長度為 128、192 或 256 位。
問題:
- 關鍵是什麼?是提前確定的,還是有什麼秘密?順便說一句:如果它是“秘密”,則您沒有標準的雜湊函式(整個解密都是公開的;您可能有一個 MAC,但見下文)。
- 什麼是雜湊輸出?它是整個加密消息,還是只是最後一個塊。
以下是可能性:
- 如果密鑰是預先固定的,並且雜湊是整個加密消息,那麼您當然永遠不會發生衝突(因為您可以解密並取回原始消息 - 如果發生衝突,您將無法這樣做) . 當然,與原始消息一樣長的散列並不是很有趣。
- 如果事先確定了密鑰,並且雜湊是最後一個塊,那麼很容易產生衝突(和原像)——攻擊者生成原像所需要做的就是製定消息(除了一個塊),插入已知的開始狀態(IV)和最終狀態(目標雜湊),並朝著中間工作 - 可以很容易地找到那個未指定塊的必要狀態。
- 如果密鑰未知並且雜湊是最後一個塊,這實際上是稱為 CBC-MAC 的構造。對於固定長度的消息,這是一個不錯的消息身份驗證程式碼 - 但是,如果攻擊者可以改變消息長度,他就可以提出偽造和衝突。