Random-Number-Generator

NIST 測試套件某些結果的解釋

  • July 12, 2019

我在 PRNG 上使用 NIST 測試套件,並且對某些特定結果感到困惑。以下是部分結果:

RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES

 C1  C2  C3  C4  C5  C6  C7  C8  C9 C10  P-VALUE  PROPORTION  STATISTICAL TEST
  0   0   0   0   1   2   3   3  15  76  0.000000 *  100/100     BlockFrequency

我的問題是,當塊頻率測試的 p 值為 0.0 但比例顯示 100/100 測試序列通過了測試時,上述結果的意義是什麼,我應該認為這個測試是通過還是失敗?我檢查了有關 NIST 測試套件的其他問題,但他們沒有回答這個特定的查詢。

隨機性是令人討厭的,並且可以在樣本之間起起伏伏。這就是為什麼沒有一種特定的分類測試可以驗證 IID 序列的原因。您需要在統計上將幾個(可能是相互矛盾的)組合在一起以獲得更廣闊的視野。C1 至 C10 列中的 P 值分佈為:-

分配

每列是一個寬度為 0.1 的 P 值。所以似乎發生的事情是你所有的個人 P 值都下降了 0.4 < P < 0.99,這是 NIST 0.01 的顯著性水平。所以他們單獨通過,因此是 100/100。

但是當你繪製這個 P 值的分佈時,它看起來不太可能。測試套件的設計使得所有 P 分數在 is-random 零假設下以 0 - 1 均勻分佈。當您計算這些分數隨機發生的機率時(通過 Chi 測試),您的 P = 0.000000(加上星號!)。所以你沒有通過測試。糟糕:-(

特別出版物 800-22文件的第 5 節中有更多解釋性內容。關於您的 PRNG,我不會再多說,因為這個問題的資訊有限。

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