我在网上搜索了很长一段时间,却找不到确切的答案。我想知道由英特尔的rdrand指令产生的随机数的质量。例如,它与IDQ's卡相比如何?真的是随机的还是伪随机的?
谢谢
发布于 2014-12-28 08:12:17
请阅读John的文章和代码示例https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide第2.2节涵盖伪和2.3涵盖真
发布于 2015-08-12 22:22:01
RdRand来自一个RNG,它由一个输入的熵源和AES-CBC熵提取器组成,后者是一个AES-CTR的种子。DRBG以每秒大约100万次的速度被重新植入(慢芯片上的DRBG比较慢,在更快的芯片上更快)。因此,DRBG的输出是一个随机种子PRNG。如果你读得慢(少于100万次/秒),你可以预期每次DRBG都会被重新加载,所以渐近线是一个完整的熵RNG。如果读取速度超过CPU所允许的速度,则DRNG硬件将达到每个种子511 DRBG 128位输出的最高值。密码预测电阻为O(2^128)。
RdSeed提供了一个NIST 800-90C异或结构变体,其中每个值都包含一个新种子。TRNG这个术语还没有很好的定义,但是RdSeed很可能接近于人们所认为的TRNG的意思。它的性能低于RdRand,因为它的速度是熵抽取器输出速率的函数,而不是DRBG的输出速率。
因此,在问“质量是什么”时,您需要指定最小熵或计算界。两者在统计上都与均匀没有区别,但RdRand还保证O(2^128)密码预测电阻(您需要做多少工作才能可靠地预测下一个状态),它只适用于重成功之间(因此在大约1u的周期内),当先前的状态被新的熵数据覆盖时。RdSeed提供了更强的最小熵保证输出接近均匀。实际效果是,您可以安全地连接RdSeed值以生成更大的密钥和IVs。例如,提供O(2^ 512 )安全性的512位键。RdRand足以满足O(2^128)安全的所有需要。如果您想从RdRand提供大于O(2^128)安全性的密码系统,请阅读英特尔的SDG,这说明了如何使用适当的密码算法安全地实现这一点。
发布于 2017-11-13 22:13:58
英特尔的RdRand是一个高质量的,密码安全的,数字发生器.这里详细描述了它是什么,如何使用它,如何使用它,以及在这里给出的论文(http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120)或非付费壁版本(https://arxiv.org/abs/1707.02212)中给出的使用速度。
我认为第2.2.1和第5节有你要找的东西。
https://stackoverflow.com/questions/27653736
复制相似问题