Когда я должен использовать AutoSeededRandomPool (а не NonblockingRng)? - PullRequest
1 голос
/ 28 апреля 2019

Я обнаружил, что Crypto ++ предоставляет несколько случайных генераторов: AutoSeededRandomPool, AutoSeededX917RNG и так далее.Я знаю некоторые детали об этих генераторах и их использовании, мне просто интересно, когда они мне понадобятся?

AutoSeededRandomPool и AutoSeededX917RNG по умолчанию на NonblockingRng и NonblockingRng на /dev/urandom/dev/urandom основывается на /dev/random и ChaCha.

Я гуглил и обнаружил, что во многих статьях говорится, что /dev/urandom достаточно безопасен и подходит для всех (почти?) Сценариев, так зачем использовать DES/AES для шифрования данных, считываемых с /dev/urandom, и гораздо медленнее, чем использовать'/ dev / urandom' напрямую?

Когда мне следует использовать AutoSeededRandomPool или AutoSeededX917RNG?

1 Ответ

0 голосов
/ 28 апреля 2019

Когда мне следует использовать AutoSeededRandomPool или AutoSeededX917RNG?

Вы должны использовать AutoSeededRandomPool. Он использует генератор в стиле PGP на основе AES для извлечения энтропии из пула ОС. Он также смешивает время с начальным числом, чтобы помочь защитить от откатов виртуальных машин.

Вы также должны создать один AutoSeededRandomPool для каждого потока. Если вы используете один генератор для всех потоков, то вам необходимо предоставить блокировки.

AutoSeededX917RNG от того времени, когда NIST одобрил генератор ANSI X9.31 на основе AES для использования в проверенной криптографии FIPS 140. Генераторы X9.17 и X9.31 также используются в некоторых других стандартах, таких как автомобильный и финансовый.

NIST не одобрил генератор AutoSeededX917RNG в 2014 году или около того в пользу детерминированных генераторов битов, указанных в SP800-90 .

Вы можете использовать AutoSeededX917RNG, если хотите. Но если у вас нет требований для этого, вы должны просто использовать AutoSeededRandomPool.

...