Hash

SHA-1 鍵控散列函式

  • November 13, 2013

我知道在實踐中使用 SHA-1 是一個未加密的加密雜湊函式。但是,理論上,所有的散列函式都是用鍵定義的。我的問題是:

  • 我將如何使用鍵來形式化 SHA-1 雜湊函式?
  • 在安全證明中,可以使用哪種方法——理論上的還是實際的?

我們正在談論雜湊函式係列 $ {h_k}_{k\in K} $ 這裡。參數 $ k $ 用於排除簡單的碰撞搜尋算法,該算法簡單地列印給定的碰撞 $ h $ (這樣的算法存在,但很難找到)。對於大 $ K $ 這樣的算法太大了。參數 $ k $ 被稱為密鑰,但實際上並不是秘密。

問題是具體的散列函式是未加密的。這在實踐中不是問題,因為從來沒有發現過這樣的“列印”算法。然而,為了證明使用這種散列函式的協議的安全性,需要證明一個適當的簡化:只要散列函式是無衝突的,該協議就是安全的。後者很容易為鍵控散列函式制定,但對於單個散列函式,它最近才正式化。這回答了你的第二個問題。

對於第一個問題,沒有從 SHA-1 生成鍵控散列函式的標準方法,因為在實踐中不需要這樣做。人們可能會想到HMAC-SHA-1,但我懷疑它在密鑰已知時的抗碰撞性(它可能被簡化為選擇前綴攻擊)。

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