2014-12-26 36 views
2

我在網上搜索了很長一段時間,找不到明確的答案。我想知道由intel的指令產生的隨機數字的質量。例如,它與IDQ's卡相比如何?它是真正的隨機還是僞隨機?是Intel的RdRand TRNG還是PRNG?

感謝

+0

換句話說,NSA秒殺了嗎?無論你的答案是否更安全,都不信任美國密碼。 – Jasen

+0

@DavidJohnston [設計RdRand內部](https://stackoverflow.com/questions/17616960/true-random-numbers-with-c11-and-rdrand/18004959#18004959),萬一有人想知道信息在哪裏他的答案來自於。所以是的,除非國家安全局破壞它,否則預期的設計是通過PRNG真正的隨機饋送的。 –

回答

5

RdRand選自該飼料和AES-CBC-熵源的RNG喂MAC熵提取器,種子AES-CTR-DRBG。 DRBG每秒鐘重播約100萬次(其變化速度較慢,較慢的芯片速度較慢,芯片速度較快)。所以DRBG的輸出是一個隨機播種的PRNG。如果您讀取速度較慢(少於100萬次/秒),則可以預期DRBG每次都會重新接種,因此漸近線是一個完整的熵RNG。如果讀取速度超過CPU允許的範圍,則DRNG硬件將以每顆種子511 DRBG 128位輸出爲最高。密碼預測電阻是O(2^128)。

RdSeed提供了NIST SP800-90C XOR構建變體,其中每個值都包含一個新鮮的種子。 TRNG術語沒有明確定義,但是RdSeed可能接近人們認爲它們由TRNG所指的意義。它的性能低於RdRand,因爲速度是熵提取器輸出速率的函數,而不是DRBG的輸出速率。

因此,在詢問「什麼是質量」時,您需要指定最小熵或計算範圍。兩者在統計上無法區分,但RdRand還保證O(2^128)加密預測阻力(您需要做多少工作才能可靠地預測下一個狀態),它只適用於種子之間(因此需要約1us的時間)當先前的狀態被新的熵數據覆蓋時。 RdSeed提供了一個更強的最小熵保證,即輸出接近均勻。實際效果是,您可以安全地連接RdSeed值以製作更大的鍵和IV。例如。提供O(2^512)安全性的512位密鑰。 RdRand足以滿足O(2^128)安全性的所有需求。如果您想爲RdRand提供安全性高於O(2^128)的加密系統,請閱讀英特爾的SDG,其中解釋瞭如何使用適當的加密算法安全地執行此操作。

0

英特爾的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節有你在找什麼。

+0

我在三個問題中看到此答案的版本,但鏈接很差。更好的鏈接:[英特爾®DRNG](https://software.intel.com/sites/default/files/m/d/4/1/d/8/441_Intel_R__DRNG_Software_Implementation_Guide_final_Aug7.pdf),[英特爾®DRNG軟件實施指南] (https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide)和Wikipedia [RdRand](https://en.wikipedia.org /維基/ RdRand)。 – zaph

+0

提示,使用鏈接按鈕(左起第三位)獲得更好的鏈接。 – zaph