Encryption

雜湊碰撞機率

  • December 8, 2018

請幫忙!如何計算碰撞機率?我需要一個數學方程來學習。

假設,我使用 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 $

引用自:https://crypto.stackexchange.com/questions/64674