我在网上搜索了一段时间,却找不到明确的答案。我想知道intel的rdrand指令生成的随机数的质量。例如,它与IDQ's卡相比如何?它真的是随机的还是伪随机的?
由于
答案 0 :(得分:6)
RdSeed提供NIST SP800-90C XOR构造变体,其中每个值都包含新鲜种子。 TRNG术语定义不明确,但RdSeed可能接近人们认为TRNG的含义。它的性能低于RdRand,因为速度是熵提取器输出速率的函数,而不是DRBG的输出速率。
因此,在询问“质量是什么”时,您需要指定最小熵或计算界限。两者在统计上与统一无法区分,但RdRand也保证了O(2 ^ 128)加密预测抗性(您需要做多少工作才能可靠地预测下一个状态),这仅适用于种子间(因此在约1us的时间段内)当先前的状态被新的熵数据覆盖时。 RdSeed提供更强的最小熵保证,输出ε接近均匀。实际效果是您可以安全地连接RdSeed值以生成更大的键和IV。例如。 512位密钥提供O(2 ^ 512)安全性。 RdRand足以满足O(2 ^ 128)安全性的所有需求。如果您想从RdRand提供大于O(2 ^ 128)安全性的密码系统,请阅读英特尔的SDG,其中介绍了如何使用适当的加密算法安全地执行此操作。
答案 1 :(得分:0)
请阅读John M的文章和代码示例 https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide 第2.2节涵盖伪,2.3涵盖真实
答案 2 :(得分:0)
英特尔的RdRand是一种高质量,加密安全的伪随机数发生器。详细描述了它是什么,如何使用它,如何使用它,以及在这里使用文章(http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120)或非支付版本({{3 }})。
我认为2.2.1和5节有你想要的东西。