Hash
了解 HAIFA(雜湊迭代框架)結構
不幸的是,這個結構甚至沒有完整的維基百科。我很難理解它。上面沒有 Youtube 影片、講座或任何教育影片。我想了解結構是如何工作的,我不關心雜湊迭代框架背後的數學。我還想知道是否有人可以為我提供結構大綱或任何有用的連結以更好地理解它。
Biham 和 Dunkelman 在 2005-2007 年提出的雜湊迭代框架 (HAIFA) 。這項工作的主要思想是修復 Merkle 和 Damgård (MD) 結構的缺陷。有趣的是,MD 是由 Ralph Merkle 和 Ivan Damgård 獨立發明的,並在同一個主要的密碼學會議上發表。
- R.默克爾。經過認證的數字簽名,CRYPTO ‘89。
- I. Damgård。雜湊函式的設計原則,CRYPTO ‘89。
即使底層的壓縮功能是安全的,也發現了 MD 結構中的缺陷。在 MD 中,迭代保持了 Merkle 和 Damgård 證明的壓縮函式的抗碰撞性。隨著時間的推移,它表明它還不夠;
MD結構問題
- 壓縮函式的定點可用於Dean的第二前圖像攻擊。
- Kelsey 和 Schneier 與上述相同,固定點假設在Second Preimages 中被移除 $ n $ 遠小於的位雜湊函式 $ 2^n $ 工作
- Kelsey 選擇的目標原像攻擊,或稱為 Herding 攻擊的Herding Hash Functions 和 Nostradamus 攻擊
- 眾所周知的長度擴展攻擊。
- 迭代雜湊函式中的多重衝突。Joux對級聯結構的應用。Joux 表明,查找具有相同雜湊值的多條消息與在迭代雜湊函式上查找單個衝突幾乎相同。
海法的設計就是為了這些目標
- 簡單性:這很重要,因為簡單的設計更好地理解分析。
- 保持按壓功能的抗碰撞性
- 提高迭代雜湊函式對(第二次)原像攻擊的安全性,以及
- 防止易於使用的固定點的壓縮功能。HAIFA 還支持可變雜湊大小。
以前的 MD 修改
HAIFA之前有MD的更新檔,其實HAFAI都可以用。
- 隨機散列方案:它們降低了壓縮函式的抗碰撞要求。他們隨機化了壓縮函式的輸入,以便可以屏蔽壓縮函式的衝突。
- 包絡 MD 構造:該方法保留了壓縮函式的抗碰撞性、偽隨機性和偽隨機族屬性。這種結構非常有用,就像為 MAC 設計的散列函式的情況一樣,因為壓縮函式的偽隨機屬性被保留了。
- 寬管道:此方法使用比輸出大小更大的內部狀態。這種構造導致找到內部衝突與找到散列函式本身的原像一樣困難。
海發設計
HAIFA 的壓縮函式設計為
$$ C:{0,1}^{m_c} \times {0,1}^n \times {0,1}^b \times {0,1}^s \to {0,1}^{m_c} $$或者
$$ h_i = C(h_{i-1}, M_i, #bits, salt) $$ $ #bits $ 是散列的位數, $ h_0 = IV $ , 和 $ salt $ 是通常的鹽值。
填充方案
它是位填充,
1
然後加上0
編碼的長度 $ t $ 位,然後是編碼的摘要大小 $ r $ 位。因此添加0
的是 $ \equiv n - (t+r-1) \mod n $安全
- 抗碰撞性:與 MD 類似,已經證明,如果潛在的壓縮功能是抗碰撞性,那麼 HAIFA 結構也是如此。
- 定點對策:包含到目前為止散列的位數可以防止定點攻擊。
- 隨機散列是通過鹽實現的。
- 多重碰撞攻擊:攻擊仍然有效,但是,包含鹽會阻止預計算
- 聽力攻擊:如果鹽未知,則預計算是不可行的。
基於HAIFA的雜湊算法
前三名是NIST SHA-3 競賽的第二輪。