NIST测试结果分析

最近学习需要做了一些关于NIST的工作,便于学习交流,将一些对结果分析的过程做一些总结。

我用的NIST版本(点击打开链接

前序的如何仿真的过程就不讲了,很多博客又提到,而且NIST的 user guider (点击打开链接)讲得很清楚(下图就是文档里的例子)。


以上只是仿真的过程,接下来进入正题。

一.结果文件都在哪。

二.怎么样才有正确的结果。

三.这些数据之间是什么关系。


一.结果文件在什么地方

仿真结束后会在experiment这个文件夹里面有关于每一项测试的一个单独的文件夹和finalanalysisreport这个文件(后者是讲所有的数据报告整合在一起的一个相对简介的报告文件)



二.怎么样才有正确的结果

    当然很有可能你打开finalanalysisreport.txt这个文件的时候是这样的。


根据我的经验,这是两个原因导致的。1.没有足够多的数据量。2.在运行NIST的时候的how many streanms后面的提示输入的数据不应该是1,感觉数据量足够多的话,保证这个数大于10比较靠谱。

如果你的数据量实在不够,就只能修改一些参数了!比如我就是这样,

我只有10000个数据,这样我虽然可以在finalanalysisreport.txt里面得到具体的p-value值,但是我全测所有测试项时,在这个文件里面并没有serial和approxiamteEntropy的数据,这我就纳闷了!最后在experiment这个文件夹里找到serial和approxiamteEntropy的单独的数据报告文件,看了里面的state这个文件,才知道,也是数据量不够的问题,当然只是针对当前的仿真参数而言的(我用的默认的仿真参数)。

于是我就修改了仿真参数。很幸运,得到了数据结果(下图以approxiamteEntropy的修改为例)。



三.finalanalysisreport.txt这个文件里面的数据都是什么关系。


以上图为例进行说明。

这里的数据组为10(也就是how many streams后我输入的是10),这样由于P-value的取值区间是0-1的,于是将这个区间等分成10个区间,在仿真的时候会得到10个P-value值,所以C1-C10的数值就是这10个P-value落在相应区间的数量(可以在每一个测试对应的文件夹里面找到这些P-value值进行验证)。

那finalanalysisreport.txt的P-value和各测试项报告文件里的10个p-value有什么关系了!

其实finalanalysisreport.txt的P-value只是衡量这10个p-value分布均匀性的一种指标而已,是利用卡方分布进行统计的!


当然,我虽然知道了这些,但是我数据量不够,在finalanalysisreport.txt里面还是没有serial和approximateEntropy的结果,于是我就只能自己手算了。

找到serial和approximateEntropy在experimens文件夹里的报告文件,里面的result的数据就是我需要的数据(当然你得先保证这些数据是有效的,看state里面是否通过测试,通过了说明数据有效),接下来就是根据上图的公式进行手算了!

算出X^2这个值不难,根据数据将分布表写出来,直接就可以计算了!问题是igamc这个函数,就没有办法了!于是我利用了matlab计算,matlab里面的这个函数是gammainc(x,a),也就是不完全gamma函数。虽然可以得到结果,但是我利用测得的frequence的P-value(finalanalysisreport.txt里的值)利用这个公式在matlab里进行验证,结果并不是完全相同。

于是我只能利用最后一招了!

得出serial和approximateEntropy的P-value值分布后,直接在finalanalysisreport.txt里面找和这两个有相同分布的数据项,这样两者的P-valueT肯定是相同的。从X^2的计算来看,这种分布相同只要具有相同的比重量就可以,没有必要C1-C10的分布比重完全一样。看倒数第二图里面的blockfrequence和第一个cumulativesums,他们的P-valueT是相同,但是再看他们的分布,只是都是三个2,四个1,和三个0,而已。

终于写完了!希望对各位有所帮助,其实如果你的数据量够多,有几十万个那么,其实就简单了很多,省去了很多没有必要的麻烦,我刚刚开始就是很纳闷为什么会得不到所有的数据项的结果报告,都是数据量的问题!还有就是user guider真的很有必要好好看一下!

评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值