Is intel's RdRand TRNG or PRNG?

3
我在网络上搜索了一段时间,但无法找到明确的答案。我想知道由英特尔的rdrand指令生成的随机数的质量如何?与IDQ的卡相比如何?它是真正的随机还是伪随机?谢谢。

换句话说,美国国家安全局是不是篡改了它?无论答案如何,你更安全地不信任美国加密。 - Jasen
@DavidJohnston 设计了RdRand内部,如果有人想知道他回答中的信息来源。所以,是的,除非NSA破解了它,否则预期的设计是通过PRNG真正随机的。 - Peter Cordes
3个回答

6

RdRand是由熵源组成的RNG供给的,该熵源馈入一个AES-CBC-MAC熵提取器,该提取器生成了一个AES-CTR-DRBG种子。 DRBG每秒重新生成种子约1百万次(速度会因芯片速度不同而有所变化)。因此,DRBG的输出是随机种子PRNG。如果您读得比较慢(每秒少于1百万次),则可以期望DRBG每次都是新鲜的种子,因此渐近线是完全熵RNG。如果您读得比CPU允许的要快,则DRNG硬件在每个种子上的128位输出中最高只能达到511个DRBG。密码学预测抵抗力为O(2 ^ 128)。

RdSeed提供了NIST SP800-90C XOR构造变体,其中每个值都包含新的种子。TRNG术语没有明确定义,但RdSeed可能接近人们认为TRNG的意思。它的性能比RdRand低,因为速度是熵提取器的输出速率的函数,而不是DRBG的输出速率。

因此,在询问“质量”时,您需要指定最小熵或计算限制。两者在统计上无法与均匀分布区分开来,但RdRand还保证了O(2 ^ 128)的密码学预测抵抗力(您需要做多少工作才能可靠地预测下一个状态),仅适用于重新种植之间(因此在约1us的时间段内),当先前的状态被新的熵数据覆盖时。 RdSeed提供了更强的最小熵保证,即输出与均匀分布的epsilon相似。实际效果是您可以安全地连接RdSeed值以生成更大的键和IV。例如,512位密钥提供O(2 ^ 512)的安全性。 RdRand对于所有需要高达O(2 ^ 128)的安全性都足够。如果您想从RdRand提供大于O(2 ^ 128)的安全性的加密系统,请阅读英特尔的SDG,其中说明如何使用适当的密码算法安全地执行此操作。


0

0

我在三个问题中看到了这个答案的版本,但链接很差。更好的链接是:Intel® DRNGIntel® DRNG 软件实现指南 和维基百科RdRand - zaph
提示,使用链接按钮(从左数第三个)以获得更好的链接。 - zaph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接