0

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

哪个是最合适的算法?我应该为此考虑 NIST 文档吗?

4

2 回答 2

0

由于我们是一个编程站点,因此我会认真研究在您的特定运行时环境中可供您使用的安全随机数生成器。通常,您将不得不依赖系统资源来生成随机数,至少要为伪随机数生成器播种。唯一可能的例外是 CPU 特定的随机指令,例如最新的 Intel CPU 上使用的指令(希望经过充分测试的安全 RNG 将成为 CPU 的主要功能)。

/dev/random在许多编程环境中,除了使用 OpenSSL 或用于播种之外,别无选择。一般来说,很难找到有关随机数生成器的有用信息。有时 RNG 根本不适合(例如原生 PHP 版本)。

如果可能,请尝试找到符合 NIST 要求的内容。

于 2012-12-04T19:51:20.653 回答
0

任何产生高斯分布并具有宽输出(例如至少 32 位)的伪随机数生成器都应该足以创建密钥。由您决定您的需求,然后找到匹配的 RNG。

有关详细信息,请参阅http://www.random.org/randomness

根据您选择实现此功能的语言,我相信您可以在 Web 上找到伪 RNG 的源代码,如果您系统中内置的源代码不够好的话。

于 2012-12-04T12:45:55.650 回答