Random-Number-Generator

(NIST) 非重疊模板匹配測試解讀

  • November 4, 2020

關於非重疊模板測試,這個測試通常會給我們一堆 p 值(148 個值)。我想問一下,我們如何將這些值解釋為單個 p 值,以便在學術報告中呈現。我已經看到許多論文僅以單個 p 值進行說明。例如, Cao et.al, Phys.Rev X,6 2016

Cao et.al, Phys.Rev X 6, 2016

在這項工作中,非重疊模板測試的 p 值顯示為單個值。我曾嘗試使用 Fisher 方法來組合所有 p 值,但根據它的特點,組合後的 p 值呈指數下降。有什麼簡單的解釋方法嗎?

先感謝您。

首先,Fisher 方法是一種將多個在原假設下具有已知分佈的獨立統計檢驗組合成在原假設下具有已知分佈的單個統計檢驗的方法。 如果您會對具有已知誤報率的單個統計測試的某些結果發出警報,那麼您可以使用相同的標準為具有已知誤報率的複合測試發出警報。

  • 另一種看待這個問題的方法是:Fisher 的方法是將幾個獨立的 d20 卷組合成一個 d20 卷的方法,因此如果給你一個列印 d20 結果的黑盒子,你無法判斷裡面是否有一個小精靈做幾個統計測試並將Fisher方法應用於它們並對結果進行四捨五入,或者只是滾動d20。

如果您會在其中一項統計 d20 測試針對 0.05 的標準誤報率擲出 1 時發出警報,那麼您可以在 Fisher 複合統計 d20 對 0.05 的標準誤報率擲出 1 時發出警報。

  • 另一種看待這個的方法是:

    1. 通過一項統計測試,您可以列出可能的測試結果( $ p $ -values) 均勻地在一條線段上 $ [0,1] $ 並對任何給出的數據發出警報 $ p $ -價值在 $ [0, 0.05] $ .
    2. 通過兩個統計測試,您在單位正方形上有一個結果網格 $ [0,1] \times [0,1] $ . 你在單位正方形的哪個*子空間發出警報?*Fisher 方法是對單位平方的哪個子空間發出警報的特定選擇。有一些很好的說明——以及與另一種組合方法的比較 $ p $ -values——在 stats.se 上關於 Fisher 方法的問題的答案中。

還有其他方法可以組合一個集合 $ n $ 價值觀 $ {p_i}_{i=1}^n $ 到具有已知分佈的單個測試統計量中:

  1. 算術平均值 $ \sum_i p_i/n $ ,如 stats.se 答案中所述,稱為 Edgington 方法。
  2. 均方根, $ \sqrt{\sum_i p_i^2/n} $ .
  3. 幾何平均數 $ \prod_i {p_i}^{1/n} $ ,這與費舍爾的方法無異——只需取對數即可。
  4. Pearson 的互補幾何平均數, $ 1 - \prod_i (1 - p_i)^{1/n} $ .
  5. 最低 $ \min_i p_i $ .
  6. $ p_1 $ , 忽略 $ p_2, p_3, \dots, p_n $ 共。

為什麼你應該更喜歡其中之一而不是其他?它們都會產生具有您想要的任何規定的誤報率的統計測試,所以它們都必須是好的,對吧?嗯,房間裡有一頭大象。

為什麼當你在 d20 上擲出 1 而不是 7 時發出警報——也就是說,我們為什麼關心 $ p < 0.05 $ ? 真正有趣的是替代假設 零假設是設備按預期正常工作(也許正常工作意味著完美的均勻分佈)。但該檢驗是有價值的,因為它以顯著更高的速度對與原假設的合理偏差發出警報——例如,1 位的數量明顯高於 0 位,這可能發生在原假設下的樣本中,但只有低可能性。可能存在哪些合理偏差?

研究系統的物理或工程——不要將它們作為導致您獲得良好 NIST 測試結果的過程的廢物副產品丟棄。

  • 你對物理學有什麼了解,可以讓你比擲硬幣更好地預測結果?
  • 工程系統有哪些製造缺陷和故障模式可能會改變分佈?

這些偏差或故障模式中的許多將不會被通用統計測試檢測到。作為一個極端情況,如果您的設備選擇 $ k $ 隨機均勻地產生 $ \operatorname{AES}_k(0) \mathbin| \operatorname{AES}_k(1) \mathbin| \operatorname{AES}_k(2) \mathbin| \cdots $ , 除非它壞了並且總是選擇 $ k = 0 $ ,通用統計測試將永遠不會檢測到該損壞的情況。

對安全而言,重要的是表明世界上最聰明、資金最充裕的物理學家在預測結果方面只能取得一定的優勢,並且如果設備以某種方式發生故障,那麼您將檢測到故障並停止依靠它。

這 $ p $ -您在開發過程中採集的樣本的 NIST 統計測試值?這些更像是導致您獲得良好硬體 RNG 的過程的浪費副產品。

當您處理隨機性時,測試結果也具有隨機性。因此,組合測試必須基於統計。在常見的隨機性測試中,我從未見過 Fisher 用於此目的。根據定義, $ p $ 對於零假設,均勻分佈在 0 到 1 之間,即。數據是適當隨機的。一種常見的技術是針對預期的均勻分佈進行Kolmogorov-Smirnov (KS) 檢驗。然後測試輸出一個 $ p $ 均勻性的價值,因此數據隨機性。希望 $ p > 0.01 $ .

我只為 Diehard 測試生成了足夠的數據,但您會看到其中使用了這種方法。例如,3D Spheres 測試將 20 $ p $ 值合二為一:-

::              THE 3DSPHERES TEST                               ::
:: Choose  4000 random points in a cube of edge 1000.  At each   ::
:: point, center a sphere large enough to reach the next closest ::
:: point. Then the volume of the smallest such sphere is (very   ::
:: close to) exponentially distributed with mean 120pi/3.  Thus  ::
:: the radius cubed is exponential with mean 30. (The mean is    ::
:: obtained by extensive simulation).  The 3DSPHERES test gener- ::
:: ates 4000 such spheres 20 times.  Each min radius cubed leads ::
:: to a uniform variable by means of 1-exp(-r^3/30.), then a     ::
::  KSTEST is done on the 20 p-values.                           ::
    ^^^^^^

您還可以看到它在以下 NIST 結果片段中使用,該片段取自NIST 隨機偏移結果問答,其中討論了它們的解釋:-

 9   3   6   5  10   8   7   7   8   8  0.808725     70/71      RandomExcursionsVariant
 6   5   5   8  10   8   7   9   5   8  0.901761     69/71      RandomExcursionsVariant
 3   9   5  12   6   6   6  10   8   6  0.437274     71/71      RandomExcursionsVariant
 3   6   7   2  10  11   6  10   7   9  0.238562     71/71      RandomExcursionsVariant
 4  10   6  12   3  13   4   4   5  10  0.033552     71/71      RandomExcursionsVariant

十進制數字(例如)是對個人分數0.808725執行的 KS 測試,其中一個失敗9 3 6 5 10 8 7 7 8 $ p $ < 0.01。NIST SP 800-22 軟體會自動進行這種 合併。

如果程序尚未生成 NIST 模板測試的 148 個值,您應該能夠將此技術調整為它們。電子表格和標準程式庫可以提供幫助。

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