雜湊族範例
我正在閱讀我的講座,我發現了這個定義:
讓 $ F $ 是一個雜湊函式族,即參數化集合
$$ F={g_k:{0,1}^{*}\rightarrow{0,1}^{n}|k\in K}, $$ 在哪裡 $ n\in \mathbb{N} $ 和 $ K $ 是一個有限集。
這可能是一個例子 $ F $ ?
一個實際的例子 $ n=128 $ 和 $ K={0,1}^{32} $ 將是集合 $ F $ 的 $ 2^{32} $ 函式,其中之一是MD5,通過將常數替換為
0x67452301
二進製表示的整數,從 MD5 的定義中獲得 $ k\in K $ . 這個家族的每個成員(這個集合的每個元素)都是一個函式,它接受任意長度的位串,並產生一個 128 位的位串。注意:目前還不能立即看出這組確實有 $ 2^{32} $ 元素:我們可以想像兩種不同的 $ k $ 導致相同的功能。用實驗證明這一點很容易,但如果我們擴展,那就是另一杯茶了 $ K $ 到 $ {0,1}^{128} $ 通過考慮 MD5 中的四個初始化常量。通常會完全迴避這一點,並在沒有證據的情況下考慮 $ F $ 和 $ K $ 具有相同的基數,這允許同化 $ F $ , 和元素 $ F $ 對應於隨機元素 $ K $ .
注意:對於使用Merkle-Damgård 構造獲得的任何雜湊族,長度擴展屬性可以很容易地從隨機預言中辨識此類雜湊。該屬性允許計算 $ g_k(M||X) $ 在不知情的情況下 $ k $ , 從知識 $ g_k(M) $ 和(僅僅是長度) $ M $ , 對於一些 $ X $ 在了解(長度)的情況下選擇 $ M $ .
注意:此外,事實證明MD5 在計算上不是抗碰撞的,並且擴展到該家族的任何成員 $ F $ .