Randomness

雜湊輸出包含隨機二進制數的證據是什麼

  • June 30, 2019

我聽過很多人說 SHA-512 雜湊輸出是隨機的。

有誰知道是用什麼方法得出這個結論的?如果它不是隨機的,那怎麼能顯示出來呢?

雖然隨機預言模型 (1) 是應該產生隨機“外觀”雜湊輸出的理論構造,但科學原理還要求我們測試假設以進行證明。

因此,讓我們假設該函式有一組簡單的輸入。如果零假設是輸出將出現隨機(2),則輸出將具有某些可測試的屬性:-

  • 對於一個簡單的計數器輸入,我們期望任何輸出位都將均勻分佈 $ P(X = 0, X = 1) = \frac{1}{2} $ ,並且對於多個條件位, $ P(X | Y) = \frac{1}{2} $ . 這些公式擴展為 $ P(\dots)= \frac{1}{2^n} $ 和 $ P(\dots|\dots)= \frac{1}{2^n} $ 為了 $ n $ 位元組。
  • 對於隨機輸入的位,我們可以計算設置的輸入和輸出位的數量,並確定是否發生雪崩效應。我們預計每次隨機輸入都會有 50% 的位發生變化。變化的實際機率質量函式預計為二項式,隨著塊寬度趨於正態機率分佈 $ (n) $ 增加。我們期望 $ \mu = 0.5n, \sigma = 0.5 \sqrt{n} $ .
  • 也可以使用標準化隨機性測試(Diehard、NIST 等),我們希望 SHA-512 在散列簡單輸入的同時通過所有這些測試。也沒有專門的區分器,可以將散列輸出與偽隨機序列 (3) 分開。

迄今為止,這種“隨機”假設在實驗室中一直存在。所以用你的話說,輸出是隨機的,沒有人證明不是這樣。根據偏差的程度,其中一些實驗可能會以其他方式顯示出來。


筆記。

(1) 一個非常不完美的模型,如此所述。

(2)隨機輸出,我認為你的意思是獨立且同分佈的位,不容易與輸入或彼此相關。

(3) 請注意,這些實驗室測試無法確定任何形式的安全措施。

SHA-512 的輸出既不是隨機的也不是偽隨機的。一個合理的假設是可以定義一個函式 $ F_k(x) $ 基於 SHA512 這將是一個偽隨機函式。但是,這僅適用於隨機(秘密)密鑰 $ k $ 用來。綜上所述,隨機預言模型是一種啟發式算法,可以在使用 SHA512 時應用。我建議查找隨機預言模型以了解人們的意思。

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