Collision-Resistance
以下哪個雜湊函式是抗衝突的?
讓 $ H: M \to T\ $ 是一個抗衝突的雜湊函式。以下哪項是抗碰撞的: $ 1.H’(m) = H(m \big| m) $
$ 2.H’(m) = H(m) \big| H(0) $
$ 3.H’(m) = H(m) \oplus H(m) $
$ 4.H’(m) = H(H(m)) $
$ 5.H’(m) = H(0) $
$ 6.H’(m) = H(|m|) $
$ 7.H’(m) = H(m)[0,\ldots,31] $ (即輸出散列的前 32 位)
答案函式是 1、(2) 和 4 嗎?
- 看起來它是抗碰撞的,因為散列消息“兩次”
- 是抗碰撞的,因為摘要的一部分是抗碰撞的。
- 總是 $ 0 $ , 所以不耐碰撞
- 防碰撞,因為它對消息進行兩次散列並輸出有效消息的有效散列(消息的散列)
- 總是一樣。不耐碰撞
- 對於相同長度的消息總是相同的。不耐碰撞。
- 取決於您對防撞的定義。它本身是抗衝突雜湊函式的子集,如果子集足夠大,它就是抗衝突的。因此,從理論的角度來看,沒有比暴力破解更快的攻擊來找到衝突,使其成為抗衝突的 32 位雜湊函式。從實際的角度來看,或者如果您認為它是一個 n 位雜湊函式,其中 n 的摘要大小為 $ H $ 它不是抗碰撞的,因為人們可以找到一個 $ 2^{16} $ 雜湊函式呼叫。
所以答案是 1、2、4,也許是 7。