Mac
這個散列函式幾乎是異或通用的嗎?
考慮這個雜湊函式:
鑰匙 $ K $ 是 $ 2^n $ 位。訊息 $ M $ 分為 $ 2^n $ 位塊。算術是模執行的 $ 2^{n+1} $ . 雜湊定義為:
- $ H_0 = 1 $ .
- $ H_{i+1} = (2M_i + H_i)\times (2K + 1) $ 其中 K 是(秘密)散列密鑰。
- 輸出 $ H’ = \frac{H_{|M|/2^n}}2 $
這個雜湊(迭代的)幾乎是異或通用的嗎?
這個散列幾乎是異或通用的嗎?
不。
考慮兩個 1 塊消息 $ M = {0} $ 和 $ M’ = {2^{n-1}} $ .
我們有:
$$ H(M) = ((2\cdot 0 + 1)(2K+1) \bmod 2^{n+1}) /2 = K $$ 和
$$ H(M’) = ((2\cdot 2^{n-1} + 1)(2K+1) \bmod 2^{n+1})/ 2 = K + 2^{n-1} \bmod 2^n $$ 作為 $ H(M) \oplus H(M’) = 2^{n-1} $ 具有非平凡的真實機率, $ H $ 不是幾乎異或通用的。
類似的邏輯(使用兩條消息 $ {0, 2^{n-1}} $ 和 $ {2^{n-1}, 0} $ ) 將表明 $ H $ 甚至不是幾乎普遍的。