https://csrc.nist.gov/projects/random-bit-generation/documentation-and-software
https://wenku.baidu.com/view/dc0ada02eff9aef8941e0644.html
https://blog.csdn.net/zkkzpp258/article/details/82685404
https://blog.csdn.net/zhaomengszu/article/details/79384050
https://blog.csdn.net/lafu5137/article/details/79593845 隨機數測試的參數范圍
另外 官方有使用文檔
igamc:UNDERFLOW的原因:
1. size* bitstrems > sizeof(file) 例如: 就是./assess 10000, 然后bitstreams 100 100*10000 > 你的文件大小 (bytes)(采用ascii 的0,1串,那單位就是byte)
2. 數據過於 不隨機 。一開始用一個seed,利用7位LFSR,生成127個0,1,然后換另一個seed,就一直 underflow。然后換成一個seed生成10個數,就可以成功測試。(雖然結果還是錯的)
Linux安裝
下載,解壓
在ubuntu安裝
復制到home
make
得assess文件
測試文件拷貝
測試
(我的randsme.txt含10000000個ascii 0,1)
這里 ./assess 1000000 。1000000*10=10000000
然后 0,選擇輸入文件方式
輸入1,做是上面的全部測試
這里how many bitstreams和文件大小和一開始輸入的 ./assess XXX有關
XXX * bitstreams num = 文件大小。因為我的測試文件是10000000個0,1 =1000000 * 10,所以輸入10
然后因為是ascii形式的0,1(用 ofstream,寫入了string "0" "1"),所以選擇ascii。
分析完成。
測試結果 在
結果分析:
Freq.txt文件記錄着0和1出現的頻數。
有十組,就是我們上面輸入的10組bitstream
先看測試種類。一共15種。
對應分析結果有15個文件夾
以其中Appro ..為例
打開有兩個文件 result和stats。
分析stats
上面表明了測試種類為APPROXIMATE
然后分成了10組(對應上面的十組bitstream)
每組 一個p-VALUE.pvalue一般是>0.01 (1%)就是通過 (前面的sussess) (一般是這樣,見下面的分析)
匯總到 finalanalysisreport
1.C1,C2...
這里,因為pvalue的范圍是0-1,將0-1分為10個區間,每個區間0.1,C1,C2...就是統計落到各自區間的pvalue的數量。(比如我這里是10個bitstream,那么他們各自,對應一個測試,有一個Pvalue,所以每個測試的C1,C2+..C10 加起來應該等於10)。
[0.0-0.1 ) 左閉右開,應該是
[0.1,0.2)
...
最終的PVALUE 由卡方分布統計(在別人的blog上看到的,沒有驗證)
2.文檔下方有解釋
這里就是說對於這些統計性的測試 8/10組,4/5組就算通過。
比如下面這樣意思應該就是5組中通過了5組或4組,10組中通過了10組。
3.失敗的形式
對於某個測試失敗后在這個txt內會有 '*' 號標識
比如這是我之前做的另外一個測試,可見有一個錯誤
100組中只有94組通過,沒有達到96組
注意文檔里數據對應的是下方的文字
然后這個universal的錯誤表面上看是100/100,100組全部合格,其實打開對應文件夾下面的stats發現全是error。那么應該這100組都是默認的0.5.都在C6下面
所以表面上100/100通過了,其實沒通過,故后面有 '*' 號