Hash

反復重新散列摘要以延長摘要長度是否安全?

  • November 2, 2020

通過閱讀Rainbow的原始碼,一種後量子簽名算法,我發現了一個使用 SHA-512 生成可變長度摘要的散列函式。

這是通過首先對消息進行雜湊處理以獲得 64 字節摘要,然後對該摘要進行雜湊處理,然後再次對N - 1摘要進行雜湊處理來實現的。它本質上被用作確定性 CSPRNG。

這安全嗎?SHA-512 的摘要可以這樣無限延長嗎?為什麼 Rainbow 不簡單地使用像 ChaCha20 這樣經過充分研究的 CSPRNG?

他們送出的第 2.6 節談到了這一點。他們在那裡聲明,在大多數情況下,他們只使用 SHA-256、-384 或 -512。在(不常見?)需要具有更大輸出的雜湊函式的情況下,他們使用類似 OFB 的1構造。基本原理是 OFB 構造上的衝突將立即意味著底層雜湊函式的衝突——因為直接輸出是擴展輸出的一部分。這也解釋了為什麼他們不想涉及另一個(更有效的)功能:為了減少安全保證,並且更喜歡簡單而不是優化很少需要的場景。


1:OFB-Mode是一種從固定長度的 PRF 中建構 PRG 和 CPA 安全加密方案的方法。它的工作原理基本上是 $ K_i=F_k(K_{i-1}) $ 輸出 $ K_1|K_2|\ldots|K_\ell $ 對於 PRF $ F $ 和一個秘密隨機密鑰 $ k $ .

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