NIST随机数测试软件下载,安装、和使用,分析方法最新版(19年4月)

您所在的位置:网站首页 腾讯在线人数统计软件下载安装 NIST随机数测试软件下载,安装、和使用,分析方法最新版(19年4月)

NIST随机数测试软件下载,安装、和使用,分析方法最新版(19年4月)

2024-07-12 08:52| 来源: 网络整理| 查看: 265

NIST随机数测试软件下载,安装、和使用方法 NIST简介NIST下载与安装NIST软件的使用NIST软件使用过程中可能的出错如何查看finalAnalysisReport.txt和freq.txt总结 毕设设计了一个伪随机数生成器,用到了NIST检验伪随机数的随机性,现在由于软件的更新等原因,以前前辈的博客里或多或少有些小问题,这里写个博客总结一下博主安装及使用过程中的经验。

NIST简介

NIST是美国国家标准与技术委员会发布的考评伪随机序列随机性的一种方法,一共有16个小测试,具体测试内容见这篇博客:

博客: link.

每个测试得到一个P-value值,大于这个值即认为随机,小于这个值认为随机性不够强。

NIST下载与安装

1,可以直接去NIST的官网下载软件安装包,链接如下,直接点击Download下载最新版。 安装包: link. 2,官网的软件包是Linux系统下开发的,如果你的电脑是Linux系统,安装非常简单,直接进入文件夹make就行,Windows系统麻烦一点,需要先下一个cygwin软件来辅助使用,下载链接如下,选择自己电脑对应的版本即可。 Cygwin: link. 在这里插入图片描述需要注意的是,NIST和Cygwin的下载都需要翻墙,不翻墙也可以,但速度极慢。

下载完成之后,先安装Cygwin,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示:

在这里插入图片描述 直接下一步 在这里插入图片描述 上图是选择安装目录,确定好目录之后,直接下一步。

在这里插入图片描述 上图是选择安装过程中从网上下载的Cygwin组件包的保存位置,这个无所谓,选择完以后,直接点击“下一步”。

在这里插入图片描述 这一步选择连接的方式,选择你的连接方式,选择直接连接这个选项就OK了,然后点击下一步,会出现选择下载站点的对话框,如下图所示。

在这里插入图片描述 这里可以直接使用第一个镜像链接,速度还可以,不是特别慢,选好后直接下一步即可。

安装过程中需要注意一些问题,之前有前辈的博客写过,链接如下。 博客: link. 但现在由于版本更新,很多界面都不一样了,现在最新的安装过程如下:

首先接着上图的下一步之后,会出现一个选择组件包的界面,这里需要点开Devel这个大包,要选择里面的小项。 在这里插入图片描述 里面有很多,我们必须的是 binutils gcc gcc-mingw gdb 其中gcc-mingw在新版的安装包里博主一直没找到,其余3个都能直接找到,没办法,博主就把gc开头的组件包全部下载了,如下图所示

在这里插入图片描述 在这里插入图片描述 这里只要双击Skip那个位置就会自动选择最新版,或者点击右边那个倒三角选择版本。

另外有一个非常重要的问题 前辈的博客里面,后面遇到了一个找不到make命令的错误,这个就是因为在选择组件包的时候没有选择make,虽然安装完之后也可以单独下载这个包,然后放在安装目录里,可以解决这个问题,但博主当时安装的时候,就算解压到安装目录里,之后用的时候也一直提示我找不到make命令,只能重新安装。

所以安装时就直接把make装上吧,它也在Devel这个大包里 在这里插入图片描述 都选择好之后,可以直接下一步,进入下载界面 在这里插入图片描述 在这里插入图片描述 耐心等吧,大概需要30分钟,博主前面选了很多的包,但最终安装大小也就900M左右,不是特别的大。

最后安装成功 在这里插入图片描述 接下来需要安装NIST sts-2.1.2这个软件包

运行Cygwin,通过命令行进入该软件包中sts-2.1.2中包含 Makefile文件的文件夹,输入make命令,该软件就会自动安装了。出现下图界面就说明你安装彻底成功了。博主当时安装的时候报了个错,说是定义了变量nu但之后并未使用。这个错误无所谓,亲测并不影响后面的使用。 在这里插入图片描述

NIST软件的使用

接下来就是NIST检验的应用,这里有很多前辈的博客写过,但很多比较零散,这里总结一下,以及写写博主当时遇到的问题。

数据格式 ,博主的是二进制格式,即一个TXT文件里面全是0或1,直接由MATLAB的mat文件生成的,没有逗号或者空格。当然是ASCII码也可以,NIST好像只支持这两种数据。数据量要够大 ,NIST有些检验要求输入的数据流至少要大于等于1000000个比特位,也就是1M的数据,建议数据量在30M左右,数据量太小对随机性的分析不利,当然再大也可以,博主是128M的二进制数据,只是运行速度比较慢,将近1小时。

1.输入./assess.exe,回车 在这里插入图片描述 2.输入./assess.exe 1000000,回车。表示将数据段的长度设置为1000000(bits)=1M(bits)。注意,NIST检验是按数据段来检验的,无论你原始的数据文件多大,都是分成小段,这里一段是一百万个比特位也就是1M。比如128M的数据就分成128段,30M的数据就分成30段。这里每段多长是可变的,但是数据段的长度应该至少大于1M(bits),因为有些检验要求输入的数据流至少要大于等于1M,不然后面运行会出警告。

在这里插入图片描述 3.接下来就是,输入0,输入待测试文件所在的路径,注意:这里的路径是绝对路径 在这里插入图片描述 4.然后选择要测试的项目,我们输入1 ,回车,表示对NIST的16个检测都进行测试。 在这里插入图片描述 5.接下来,程序询问我们是否选择默认的参数设置,这里无所谓,如果你的数据足够大的话,[1]对应的那个128可以变大些,直接输1然后回车就可以更改,博主改成了20000,当然不改也可以。

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

128M的数据就就是128个比特流,这里就可以选一个比128小的数,比如100,代表只检验前100M数据的随机性。 在这里插入图片描述 6.接下来,程序询问我们待测数据的存放各式。由于我的数据文件格式是二进制,数据文件里只有0和1,所以输入0

图片是截的别的博主的图,这里根据自己的数据选择即可 在这里插入图片描述7.之后,测试工具在屏幕上输出一行英文提示:统计测试进行中…。 接下来,耐心等待即可,运算时间与数据量有关。 在这里插入图片描述 当数据测试完成后,会在测试包所在目录的experiments->AlgorithmTesting目录下生成两个测试报告文件,他们分别是finalAnalysisReport.txt和freq.txt。 在这里插入图片描述

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

igamc: UNDERFLOW 这个实际上是报错,好像是数据下溢的意思,出现原因可能是上面的第6步里面0和1选错了,可以换一换试试。还有个原因就是数据量与数据段与数据流的关系不对,比如30M的数据,一个数据段1M,数据流那里如果大于30,就会出问题,一般是 数据量=数据段长度*数据流个数

P-value全是0 这个原因很多,首先导致igamc: UNDERFLOW的问题可能也会导致P-value全是0,还有就是数据量太少,比如1000000个比特位,如果数据连1M都达不到,可能也会出现这个问题。

如何查看finalAnalysisReport.txt和freq.txt

首先前面16个文件夹分别对应16个检验,每个文件夹里都有各自的检验结果。

在这里插入图片描述各自的检验结果如下,有两个文件。 在这里插入图片描述stats.txt文件里会给出每个数据段通过此检验的情况,success或者failure 在这里插入图片描述然后finalAnalysisReport.txt文件是总的检验结果 在这里插入图片描述打开之后,如下所示 在这里插入图片描述PROPORTION是所有数据段中通过检验的比例。右边那个是检验的名称,其中Non开头那个比较特殊,它虽然是一个检验,但会出现多个P-value值。当然也是大于0.01认为随机。

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

总结

NIST的检验和结果分析都已完成了,这篇博客参考的博客有: 博客: link. 希望这篇博客能给别人带来帮助。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3