我生成了一个随机的比特序列(121000比特),并使用NIST测试对该序列进行了分析,但我无法理解结果:在某些情况下,我有一个很好的比例,但P值=0.000000,就像Rank测试一样,比例是54/55,而P值=0.000000。对于所有的NonOverlappingTemplate和LinearComplexity测试也是如此。
你有什么意见建议??谢谢
发布于 2016-07-19 18:37:57
对于未来的读者:
在documentation的4.2.2节中对其进行了描述。比例54/55意味着55个序列中有54个序列的p值在预期区间内,因此所有54个序列都单独通过。但最终得到的P值是“p值的p值”,如果它是零,那么当将它们放在一起评估时,这些p值就有些奇怪。也许它们都在预期的区间内,但它们都在顶部端点附近。或者中间一个都没有。或者一些更微妙的东西,但从统计学的角度来看仍然值得怀疑。
我的建议是: 1)尝试使用更多的序列。55个序列被声明为有意义的结果的最小值,所以即使有一个好的生成器,偶尔出现坏结果的概率也可能仍然是不可忽略的。还要注意不要无意中向生成器提供重复的序列。
2)使用更长的序列。虽然121000对于等级测试来说已经足够了,但是对于LinearComplexity测试,建议至少使用10^6。这意味着(除了其他事情外)代码可能不会针对如此短的序列进行测试,并且可能会给出数字上微妙的倾斜结果-然后在计算最终p值时检测到这些结果。
或者是发电机坏了。但还没有坏到仅仅通过一个简单的单独测试就可以揭示出来的程度,这些测试将指出简单、明显的原因(如果您的计划是修复它,这将是个坏消息)。
发布于 2019-11-28 20:02:26
补充@JJZ的答案:
阅读documentation的第2部分,特别是每个测试的“输入大小建议”。您将看到,在大多数情况下,您需要长度至少为100万位的序列。还要确保在运行某些测试之前调整了它们的参数(当您运行NIST的包时,您可以这样做)。
https://stackoverflow.com/questions/31451595
复制相似问题