我们需要迁移到更好的RNG或RBG以进行一些关键值生成,这将进一步用于加密数据。
哪种算法最合适?我应该考虑NIST这个吗?
答案 0 :(得分:0)
任何产生高斯分布且具有宽输出(比如至少32位)的伪随机数发生器应该足以创建密钥。由您决定您的需求,然后找到匹配的RNG。
有关详细信息,请参阅http://www.random.org/randomness。
根据您选择实现此语言的语言,我确信您可以在Web上找到伪RNG的源代码,如果系统内置的内容不够好。
答案 1 :(得分:0)
由于我们是一个编程站点,因此我会认真考虑您在特定运行时环境中使用的安全随机数生成器。通常,您将不得不依赖系统资源来生成randoms,至少为伪随机数生成器播种。唯一可能的例外是CPU特定的随机指令,例如在最新的Intel CPU上使用的指令(希望经过充分测试的安全RNG将成为CPU的主要功能)。
在许多编程环境中,除了使用OpenSSL或/dev/random
进行播种之外别无选择。通常,很难找到关于随机数发生器的有用信息。有时RNG根本不适合(例如本机PHP版本)。
如果可能,尝试找到符合NIST要求的内容。