我生成了一个随机的位序列(121000位),我用NIST测试分析了序列,但是我无法理解结果:在几种情况下我有一个很好的比例,但是P值= 0.000000,就像Rank一样测试比例为54/55,而P值= 0.000000。对于所有NonOverlappingTemplate和LinearComplexity测试也是如此。
你有什么建议吗? 感谢
答案 0 :(得分:0)
对于未来的读者:
documentation第4.2.2节中描述了它。比例54/55意味着55个序列中的54个具有预期区间的p值,因此所有54个单独通过。但是得到的P值是p值的p值"如果它为零,那么在评估它们时,这些p值有些奇怪。也许所有这些都在预期的时间间隔内,但它们都在顶端点附近。或者中间没有。或者更微妙的东西,但从统计的角度来看仍然是可疑的。
我的建议:1)尝试使用更多序列。对于有意义的结果,55个序列被声明为 minimum ,因此即使使用良好的生成器偶然的不良结果的概率可能仍然是不可忽略的。另外注意不要无意中为发生器提供重复序列。
2)使用更长的序列。虽然121000足以进行Rank测试,但推荐使用LinearComplexity测试至少10 ^ 6。这意味着(除了其他事情)代码可能没有针对这么短的序列进行测试,并且可能会给出数字上微妙的偏斜结果 - 然后在计算最终p值时检测到。
或者发电机坏了。但仅仅通过一个简单的单独测试就可以使启示成为可能,这些测试可以指出简单明显的原因(如果你的计划是要修复它,那就是坏消息)。
答案 1 :(得分:0)
添加到@JJZ的答案中:
阅读documentation的第2节,尤其是每个测试的“输入大小建议”。您会看到,大多数时候,您需要长度至少为100万比特的序列。 另外,请确保在运行某些测试之前调整一些参数(运行NIST的程序包时可以执行此操作)。