HMAC-DRBG 還是 Hash-DRBG 更強?
在NIST SP 800-90A第 10.1 節中定義的兩個確定性隨機位生成器(即基於散列函式)中,哪一個在密碼學上更強?
- Hash-DRBG(第 10.1.1 節)
- HMAC-DRBG(第 10.1.2 節)
在這兩者之間還有其他選擇標準嗎?
簡短的回答:Hash-DRBG 更快。根據這些NIST 幻燈片中的第 42 頁,HMAC-DRBG更強 而不是更弱。但是更新¹:Doanne Woodage 和 Dan Shumow在Proceedings of Eurocrypt 2019中對 NIST SP 800-90A 的分析表明,HMAC-DRBG 的回溯阻力需要標準中描述為可選的“附加輸入”參數,當它描述回溯阻力為所有發電機的安全功能。
該警告不在NIST SP 800-90 中使用 HMAC 的 DRBG 的正面安全分析中,也不在2017 年的安全證明中(現在也不在下文中)。
$$ The rest of this posit is outdated and needs rework $$
如果散列函式,Hash-DRBG 似乎是安全的 $ H $ 它使用的與隨機函式沒有區別。這對於生成的第一個序列來說甚至是微不足道的,即 $ H(V), H(V+1), H(V+2), \dots $ 在哪裡 $ V $ 來源於種子材料。
但是,Hash-DRBG 公開了從秘密種子派生的幾個值 $ V $ 以一種已知的、簡單的、幾乎線性的方式,經過一層 $ H $ . 相比之下,HMAC-DRBG 的輸出是一個 HMAC 結果,它來自於秘密 $ K $ 經過兩層_ $ H $ . 這是相信 HMAC-DRBG 比 Hash-DRBG 更能抵御狀態恢復的理由 $ H $ .
同樣的構想,HMAC-DRBG 的安全性源自HMAC $ H $ ,以及即使在底層散列函式失敗時仍保持強大的歷史:HMAC-MD5 保持完整的 AFAIK,儘管可以實時獲得 MD5 衝突,並且存在理論上的原像攻擊;HMAC-MD4 已損壞,但聲稱的最佳攻擊仍然需要 2^77 雜湊。
¹ 對以前活躍且仍然受到高度讚賞的貢獻者表示敬意,他通過旁道引起了我的注意;不,不是那個。