最快的加密安全随机数生成器

时间:2011-11-04 20:50:07

标签: c++ c performance random cryptography

我正在寻找C / C ++中的加密安全随机数生成器。速度非常重要,因为这将用于在我们的应用程序中生成数TB的随机性。我尝试了libgcrypt中的那个,但速度非常慢。任何建议都会非常有用。

3 个答案:

答案 0 :(得分:1)

尝试ANSI X9.17标准(金融机构密钥管理(批发))。

此页面描述了该技术: http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator

您应该能够采用任何分组密码实现,例如AES,并使用这种技术轻松将其包装到相当快速,合理安全的随机数生成器中,只需几行。

答案 1 :(得分:1)

您还可以尝试NIST的出版物SP800-90中描述的随机生成器(另请参阅revised draft)。

然而,该出版物中的DUAL_EC_DRBG最近一直存在争议;可以使用其他三个发电机中的一个。

答案 2 :(得分:-1)

你真的需要加密安全,还是只需要长周期的非常好的随机数?

使用SIMD的Mersenne Twister - SFMT - 快速且良好。

BSD上的

/ dev / random通常是Yarrow,它是加密安全的。

Fortuna是Yarrow的后续行动。

如果你想要CSPRNG肯定胜过速度?