AES-128 作為 Merkle-Damgard 構造中的壓縮函式
使用壓縮功能 $ f : A × A → A $ . 由以下人員提供的基本版本:
$ W_0 = IV $
$ W_1 = f(W_0, m_1) $
$ W_2 = f(W_1, m_2) $
…
$ W_n = f(W_{n-1}, m_n) $
$ W_n $ 是雜湊函式的輸出, $ m_1,m_2 . . . m_n $ 是消息和 $ IV $ 是一個常數。
將 AES-128 實現為壓縮功能的最簡單方法是什麼?這會是一種方式嗎?
原諒我的無知,我對這個話題很陌生。我在黑暗中非常瘋狂的刺傷是,可以使用 AES-128 將自己生成的密文塊作為密鑰回饋回自身。
這篇簡短的論文描述了一些使用基於分組密碼的 Merkle-Damgård 構造的基本方法。MD5 和相關構造中常用的構造實際上是 Davies-Meyer 構造的一個實例。這可以直接應用於您的構造(當然,您必須添加長度填充和長度欄位才能獲得安全的雜湊函式),如下所示: $ E_k(m) $ 是帶有密鑰的分組密碼(如 AES) $ k $ 和消息塊 $ m $ ,那麼我們取 $ f(W_i) = E_{m_i}(W_{i-1}) \oplus W_{i-1} $ 為了 $ i=1,\ldots n $ . 這樣我們就得到了一個安全的散列函式,前提是 $ E $ 是適當意義上的安全分組密碼(本質上與隨機排列沒有區別)。
從分組密碼構造壓縮函式是一個經過充分研究的問題。有一些經典的方法可以做到這一點,包括 Davies-Meyer、Miyaguchi-Preneel、Matyas-Meyer-Oseas 等等。
Preneel、Govaerts 和 Vandewalle(基於分組密碼的雜湊函式:一種合成方法)是第一個系統地研究使用分組密碼作為壓縮函式的所有方法的人。他們發現了 12 種安全的方法。
後來,Black、Rogaway 和 Shrimpton(來自 PGV 的基於塊密碼的散列函式構造的黑盒分析)擴展了分析以包括具有定量界限的安全證明。
所有這些結構都依賴於將分組密碼視為理想密碼(如分組密碼的隨機預言模型)。據我所知,僅使用標準模型安全性無法輕鬆地從分組密碼中獲取雜湊函式。