我們是否可以假設具有高抗碰撞性的雜湊函式也意味著高度均勻分佈?
我想使用雜湊函式從數字 0-n 生成隨機序列。所以我想找到一個好的函式,它產生看似隨機的值(不需要安全),但給出一個均勻分佈的序列。
我是否可以查看具有高抗碰撞特性的函式並期望它也具有高度均勻的分佈?
定義 $ H(x) = \operatorname{SHA-256}(x) \mathbin| 1 $ ; 也就是說,將單個 1 位附加到 SHA-256。你能找到下面的碰撞嗎 $ H $ ? 做 $ H $ 有什麼類似均勻分佈的嗎?
這個反例不僅是病態的,而且是病態的。像Rumba20和VSH這樣的設計提供了抗碰撞性,但既沒有抗原像性,也沒有均勻性。
也就是說,像 SHA-256、BLAKE2b 和 SHAKE128 這樣的典型“加密雜湊函式”是為抗碰撞和抗原像而設計的*,*更廣泛地用於隨機預言建模(禁止對 SHA-256 進行長度擴展攻擊),這意味著不同的輸入可以合理地建模為獨立均勻分佈。
在 90 年代初的黑暗時代,當美國仍然禁止將密碼學作為彈藥出口時,該禁令涵蓋了加密本身,例如 DES,但對身份驗證有明確的例外(22 CFR §121.1(XIII) (b)(1)(vi),因為已被撤銷),因此允許發布和導出散列函式 Snefru。
一位名叫 Dan 的研究生在 1992 年指出,您可以將 Snefru 作為子程序用於其他無需密碼學的程序中來加密消息。當他通知美國國務院他的非凡發現,並要求他們確認他的理解,即與豁免的 Snefru 一起發布他的無密碼程序不會違反出口管制時,他們並不好笑。
國務院的缺乏幽默導致了一場長達近十年的法庭之戰,伯恩斯坦訴美國,關於 22 CFR §§120–130 和 15 CFR §§730–744 中禁止出口加密軟體的規定是否構成先驗違反美國憲法第一修正案的限制。最終,美國聯邦政府在一個惱人的研究生的逼迫下放寬了規定,案件被駁回。
今天,同樣的想法的一個更新的化身——使用雜湊函式,ChaCha,以及一種受一次性便箋簿先進技術(在某些圈子中也稱為“xor”)啟發的方法來加密消息——保護以 TLS 中的 ChaCha/Poly1305 密碼套件的形式,每天在 Internet 上可能存在數 PB 數據的機密性。
但是抗碰撞性既不是必需的——事實上,眾所周知,ChaCha不是抗碰撞的——也不是足夠的——正如 Rumba20 和 VSH 所顯示的那樣——與均勻隨機無法區分,這是人們所需要的,例如一次性墊以獲得任何安全性。
PS如果你使用雜湊函式,例如生成位序列 $ H(k \mathbin| 0) $ , $ H(k \mathbin| 1) $ 等,並希望使用該位序列來選擇一個整數 $ x $ 和 $ 0 \leq x < n $ 均勻隨機,確保進行拒絕採樣以避免模偏差,如果 $ n $ 不是二的冪:如果 $ H $ 返回一個字元串 $ t $ 位解釋為 $ t $ -位整數,和 $ H(k \mathbin| i) $ 在下面 $ 2^t \bmod n $ , 拒絕它並嘗試 $ i + 1 $ ; 否則返回 $ H(k \mathbin| i) \bmod n $