电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

NIST随机数检测软件使用VIP免费

NIST随机数检测软件使用_第1页
1/18
NIST随机数检测软件使用_第2页
2/18
NIST随机数检测软件使用_第3页
3/18
目录一、NIST简介二、博主错误记录三、测试程序四、NIST的使用一、NIST简介NIST是评判伪随机序列随机性的一种方法,包含16个测试,测试内容看这篇https://blog.csdn.net/lafu5137/article/details/79593845因为NIST需要在Linux环境下运行,所以我们需要下载Cygwin去模拟LInux环境,下载教程看这几篇NIST下载教程(比较新)Cygwin安装教程(比较全)NIST下载、安装及使用(比较全)二、博主错误记录标注一个自己下载过程中出现的错误:在下载完Cygwin和NIST后,在Cygwin终端运行NIST,一定要输入正确的地址,我当时直接cd+win中make.file的路径直接复制然后回车,会提示:Nosuchfileordirectory的错误,然后百度无果,认为是安装两软件出现问题,然后查询相关解决办法,又认为自己是没有安装make文件并且又去官网下载最新的文件,发现问题还是没有解决,又认为是Cygwin需要编译环境,又去安装gcc编译环境,问题依然没有解决,最后突然发现我们这块要输入不是cdD:\cygwin64\sts-2.1.2\sts-2.1.2,而是cdD:/cygwin64/sts-2.1.2/sts-2.1.2,看到差异了吗\和/,前者是windows中直接复制的,后者是需要我们全部替换的可以在linux中识别的路径在以上输入正确路径后,我们再输入make命令,NIST软件就会安装,这时候在相同路径下会产生一个asses.exe可执行文件,这意味着NIST安装成功。三、测试程序1.为了测试该程序是否正常工作,需要生成一个测试序列,博主使用matlab随手生成了一个二进制伪随机序列tent_ode.m'''functionret=tent_ode(x,u,M)ret=zeros(M,1);ret(1)=x;fori=2:Mifret(i-1)<0.5ret(i)=2uret(i-1);endifret(i-1)>=0.5ret(i)=2u(1-ret(i-1));endend'''tent_out.m'''closeall;clear;M=102400;ret=tent_ode(0.1,0.99,M);rand_bin_stream=floor(mod(ret100,2));fid=fopen("rbs","w");tmp=0;fori=1:Mif(mod(i,8))tmp=tmp+rand_bin_stream(i)power(2,8-(mod(i,8)));elsetmp=tmp+rand_bin_stream(i);fwrite(fid,tmp);tmp=0;endendfclose(fid);'''2.博主使用的是帐篷映射来产生伪随机序列,为了尽可能的去除序列中的相关性,博主又截取了小数点后面若干位作为二进制伪随机序列,这里会生成一个102400长度的二进制伪随机序列。这段代码里面需要注意的是,伪随机序列是一个二进制比特流,这也是NIST唯一支持的格式。博主这里使用的是二进制方式保存二进制比特流,NIST也支持以ASCII方式保存的二进制比特流运行这段代码,打开输出的rbs文件3.如图,脚本生成了102400长度的伪随机二进制序列,且正确保存在了rbs中(注意,这个长度只能是32的整数倍,否则会出现一大堆igamc:underflow报错,有能力的可以看一下NIST原码,找一下原因)(此处存疑,应该是输入数据长度不够导致的)4.将rbs文件复制到linux下的当前目录中去(也可以是别的目录,NIST支持绝对路径),在终端中输入命令5.需要注意的是assess的参数,博主计划将该数据分为十组进行测试,102400/10=10240,因此assess的参数是10240,这个10240就是./assess<长度>的参数。6、EnterChoice:0输入0,该命令告诉app从文件中获取测试数据UserPrescribedInputFile:rbs输入rbs,告诉app测试数据在那个文件中7、EnterChoice:1选18、SelectTest(0tocontinue):0选09、Howmanybitstreams?10这里的参数就是你想让你的测试数据分成多少次参与测试,博主将数据分成10组,因此这个参数就是10.这里的输入数值与assess的输入参数相乘需要等于测试数据的总长度10、选择输入文件的格式,博主的测试数据是二进制保存的,因此选111、计算结果分析四、NIST的使用1.输入./assess.exe2.输入./assess.exe1000000表示将数据段的长度设置为1000000(bits)=1M(bits)。注意,NIST检验是按数据段来检验的,无论你原始的数据文件多大,都是分成小段,这里一段是一百万个比特位也就是1M。比如128M的数据就分成128段,30M的数据就分成30段。这里每段多长是可变的,但是数据段的长度应该至少大于1M(bits),因为有些检验要求输入的数据流至少要大于等于1M,不然后面运行会出警告。3.输入0,再输入待测试文件所在的路径(这里是绝对路径,也就是直接到达目标位置)0...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NIST随机数检测软件使用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部