【问题标题】:Fastest cryptographically secure random number generator [closed]最快的密码安全随机数生成器[关闭]
【发布时间】:2011-12-22 08:49:24
【问题描述】:

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

【问题讨论】:

  • 听起来你需要更多的处理能力。
  • 也许是一个更好的熵来源……你可能想研究一张 RNG 卡。你真的需要 TB 级的强加密随机位吗? PRNG 能解决大部分问题吗?
  • prng 没问题.. 但它必须加密安全..

标签: c++ c performance random cryptography


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      使用 SIMD - SFMT - 的 Mersenne Twister 既快又好。

      /dev/random 在 BSD 上通常是 Yarrow,它在密码学上是安全的。

      Fortuna 是 Yarrow 的后续产品。

      如果您希望 CSPRNG 肯定胜过速度?

      【讨论】:

      • 这是一个加密协议..所以它必须是 CSPRNG.. 只是在寻找最快的 csprng,即那里最快的 csprings..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 2021-06-18
      • 2017-02-27
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多