我什么时候应该使用AutoSeededRandomPool(而不是NonblockingRng)?

问题描述 投票:1回答:1

我发现Crypto ++提供了几个随机生成器:AutoSeededRandomPoolAutoSeededX917RNG等。我知道有关这些发生器及其使用的一些细节,我只是想知道什么时候需要它们?

AutoSeededRandomPoolAutoSeededX917RNG默认基于NonblockingRng,而NonblockingRng基于/dev/urandom/dev/urandom基于/dev/randomChaCha

我用Google搜索并发现许多文章说/dev/urandom足够安全并且适合所有(几乎?)场景,那么为什么使用DES/AES来加密从/dev/urandom读取的数据并且比直接使用'/ dev / urandom'慢得多?

我什么时候应该使用AutoSeededRandomPoolAutoSeededX917RNG

cryptography crypto++
1个回答
0
投票

我什么时候应该使用AutoSeededRandomPool或AutoSeededX917RNG?

你应该使用AutoSeededRandomPool。它使用基于AES的PGP样式生成器从OS池中提取熵。它还将时间与种子混合在一起,以帮助加强VM回滚攻击。

你还应该为每个线程创建一个AutoSeededRandomPool。如果对所有线程使用单个生成器,则需要提供锁。

AutoSeededX917RNG是在NIST批准基于AES的ANSI X9.31生成器用于FIPS 140验证加密的时候。 X9.17和X9.31发电机也用于其他一些标准,如汽车和金融。

NIST在2014年左右弃用了AutoSeededX917RNG发电机,转而使用SP800-90中指定的确定性位发生器。

如果你愿意,你可以使用AutoSeededX917RNG。但除非你有要求,否则你应该使用AutoSeededRandomPool

© www.soinside.com 2019 - 2024. All rights reserved.