100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > NIST随机数检测软件使用

NIST随机数检测软件使用

时间:2024-01-15 05:20:07

相关推荐

NIST随机数检测软件使用

NIST是评判伪随机序列随机性的一种方法,包含16个测试,测试内容看这篇

/lafu5137/article/details/79593845

因为NIST需要在Linux环境下运行,所以我们需要下载Cygwin去模拟LInux环境,下载教程看这几篇

NIST下载教程(比较新)

Cygwin安装教程(比较全)

NIST下载、安装及使用(比较全)

标注一个自己下载过程中出现的错误:在下载完Cygwin和NIST后,在Cygwin终端运行NIST,一定要输入正确的地址,我当时直接cd+win中make.file的路径直接复制然后回车,会提示:No such file or directory的错误,然后百度无果,认为是安装两软件出现问题,然后查询相关解决办法,又认为自己是没有安装make文件并且又去官网下载最新的文件,发现问题还是没有解决,又认为是Cygwin需要编译环境,又去安装gcc编译环境,问题依然没有解决,最后突然发现我们这块要输入不是cd D:\cygwin64\sts-2.1.2\sts-2.1.2,而是cd D:/cygwin64/sts-2.1.2/sts-2.1.2,看到差异了吗 \和/,前者是windows中直接复制的,后者是需要我们全部替换的可以在linux中识别的路径

在以上输入正确路径后,我们再输入make命令,NIST软件就会安装,这时候在相同路径下会产生一个asses.exe可执行文件,这意味着NIST安装成功。

然后进入NIST的使用

1.输入

./assess.exe

2.输入

./assess.exe 1000000

表示将数据段的长度设置为1000000(bits)=1M(bits)。

注意,NIST检验是按数据段来检验的,无论你原始的数据文件多大,都是分成小段,这里一段是一百万个比特位也就是1M。比如128M的数据就分成128段,30M的数据就分成30段。这里每段多长是可变的,但是数据段的长度应该至少大于1M(bits),因为有些检验要求输入的数据流至少要大于等于1M,不然后面运行会出警告。

3.输入0,再输入待测试文件所在的路径(这里是绝对路径,也就是直接到达目标位置)

0

4.选择要测试的项目,输入1,回车,表示16个NIST测试都要进行

5.

接下来,程序询问我们是否选择默认的参数设置,这里无所谓,如果你的数据足够大的话,[1]对应的那个128可以变大些,直接输1然后回车就可以更改,博主改成了20000,当然不改也可以。

非常重要的是这里有个 How many bitstreams这个问题,这里一定要与之前的数据段长度对应,之前数据段是1M,那128M的数据就就是128个比特流,30M的数据就是30个流。

128M的数据就就是128个比特流,这里就可以选一个比128小的数,比如100,代表只检验前100M数据的随机性。

6.接下来,程序询问我们待测数据的存放各式。由于我的数据文件格式是二进制,数据文件里只有0和1,所以输入0

7.具在屏幕上输出一行英文提示:统计测试进行中…。

接下来,耐心等待即可,运算时间与数据量有关。

8.当数据测试完成后,会在测试包所在目录的experiments->AlgorithmTesting目录下生成两个测试报告文件,他们分别是finalAnalysisReport.txt和freq.txt。

9.查看finalAnalysisReport.txt和freq.txt首先前面16个文件夹分别对应16个检验,每个文件夹里都有各自的检验结果

结果如下,有两个文件

stats.txt文件里会给出每个数据段通过此检验的情况,success或者failure

finalAnalysisReport.txt文件是总的检验结果

打开之后,如下所示

PROPORTION是所有数据段中通过检验的比例。右边那个是检验的名称,其中Non开头那个比较特殊,它虽然是一个检验,但会出现多个P-value值。当然也是大于0.01认为随机。

所有P-value都大于等于0.01即可认为通过了NIST检验。

10.NIST软件使用过程中可能的出错

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。