NIST随机数测试软件安装与使用 && igamc:UNDERFLOW

https://csrc.nist.gov/

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通过了,其实没通过,故后面有 '*' 号

 

原文地址:https://www.cnblogs.com/lqerio/p/11798459.html