nist随机数测试算法使用记录

网上找到开源的的nist算法,make之后发现算法太专业,不知道怎么用,经过一段时间摸索,弄清楚的写下来。

源码目录:nist/sts-2.1.2/;  

编译make

我的随机数包rng2.dat是138M的二进制文件(只计算前128MB),执行所有运算大概耗时3个小时。

1.运行./assess  8388608(128M位长度1073741824bit分成128段,每段1MB=8388608bit)
2.0 导入文件
3.输入随机数文件名
4.输入1选择15项全部测试
5.输入0默认参数(这个参数可以调整,有时候需要扩大数据单元)
6.How many bitstreams? 输入流个数128;这个流个数和第一步中的文件位长度存在这样关系:

位长度*bitstreamsnum=文件总位长度。一般随机数文件在32M以内(2G内存支持),bitstreamsnum默认输入1,第一步输入文件总bit长度。如果文件超过32M那么计算过 程中内从不足,因此需要第一步输入文件总长度的1/8、1/16...,然后在此处输入8、16,等价于把源文件划分为等长的几条流,来做随机性检查。
7.输入1选择二进制文件
8.测试结果在:      /experiments/AlgorithmTesting/results.txt 每种算法目录下都有results.txt 文件中描述的是P-value值,在ALPHA = 0.0100条件下(默认值),貌似这个值大于0.01就表示差不多随机,越大越好。

备注:

我测试128M随机数包,数据量太大,因此分成128条流计算,得出结果15条算法中满足12条,剩余3条部分不满足,这3条基本上都是分段检测随机性的,主要有:

NonOverlappingTemplate、OverlappingTemplate、RandomExcursionsVariant.

时隔两年,重新测试一次(电脑配置i3) 8G内存+256G固态硬盘,测试数据138MB二进制随机数包,128个流,耗时3h。

 10  12  10  12  13  13  15  16  13  14  0.949602    126/128     LinearComplexity


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The minimum pass rate for each statistical test with the exception of the
random excursion (variant) test is approximately = 123 for a
sample size = 128 binary sequences.

The minimum pass rate for the random excursion (variant) test
is approximately = 107 for a sample size = 112 binary sequences.

For further guidelines construct a probability table using the MAPLE program
provided in the addendum section of the documentation.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

猜你喜欢

转载自blog.csdn.net/qishandaxue/article/details/51576447