Hash
SHA-1 在特定場景下仍然實際上是安全的嗎?
從“研究”的角度推測SHA-1已經被破解,但在現實世界中並沒有;也就是說,存在一種探索其代數構造弱點的代數攻擊。MD5 也是如此,但 MD5 實際上已被現實世界中的碰撞所破壞。我們仍然可以將 HMAC 與 SHA-1 一起使用並確保免受原像、第二原像和衝突的影響嗎?
我建議在任何需要雜湊抗碰撞的情況下逐步淘汰 SHA-1 ,因為人們普遍認為攻擊 $ 2^{69} $ 複雜性會起作用,資源豐富的實體已經可行,而且攻擊只會變得更好。
我仍然相信 SHA-1在可預見的將來,在使用其全部輸出時,對於所有實際用途來說都是抗原像和第二原像的。儘管如此,當它們是可能的選項時,我更喜歡 SHA-256 或 RIPEMD-160。
我仍然相信帶有 SHA-1 的HMAC在 HMAC 的密鑰被假定為秘密的任何情況下都是安全的,在可預見的將來,出於所有實際目的;這是因為HMAC 的改進的安全參數仍然有效,但對底層(的輪函式)散列的假設很弱。我可以在 MAC 應用程序中推薦它,在該應用程序中使用有污點的名稱不是問題,而且速度很重要。
更新:SHA-1 的衝突於2017 年 2 月發布(在此答案編寫 4 年後)。付出了相當的努力 $ 2^{63} $ 雜湊(小於 $ 2^{69} $ 到 2013 年達成共識,但超過 $ 2^{61} $ 聲稱最好的理論方法,結果證明有一些粗糙的邊緣)。逐步淘汰第一段已成為必須。答案的第二段和第三段仍然有效。