随机数生成/哪种算法?

时间:2012-12-04 12:32:44

标签: algorithm encryption cryptography

我们需要迁移到更好的RNG或RBG以进行一些关键值生成,这将进一步用于加密数据。

哪种算法最合适?我应该考虑NIST这个吗?

2 个答案:

答案 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要求的内容。