Encryption
雜湊碰撞機率
請幫忙!如何計算碰撞機率?我需要一個數學方程來學習。
假設,我使用 SHA256 來散列 100 位。因此:
SHA256 {100} = 256 位(雜湊值)我想知道碰撞的機率。
本網站: https ://preshing.com/20110504/hash-collision-probabilities/
給出一個方程: $ K^2 / 2N $
但我不知道是什麼 $ K $ 和 $ N $ ? Is K 是(256 位)的輸出,並且 $ N $ 是輸入(100 位)
請提前幫助和感謝…
$ n $ 是給定雜湊函式的輸出大小。要找到碰撞,您嘗試隨機生成 $ k $ 不同的輸入。當我們說輸出大小是 $ n $ , 表示輸出空間有 $ 2^n $ 元素。
您在該網站上看到的是碰撞機率的一般情況。我們通常將雜湊衝突的 50% 機率(生日攻擊)稱為
$$ k = \sqrt{2^n} $$ 您還可以看到生日悖論的一般結果。
要進行 50% 百分比的生日攻擊,您需要 $ k = 2^{128} \approx 4.0 × 10^{38} $ 為具有輸出大小的散列函式隨機生成不同的輸入 $ n= 256 $