Если я не совсем запутался, и это не делает этого.
Я хочу знать, получит ли / dev / urandom увеличенную энтропию, если я возьму аппаратный ГСЧ и включу его энтропию в / dev / random.
Итак, перефразируя, если бы я увеличил энтропию / dev / random на X бит / сек (то есть / dev / random после инъекции позволяет вам выбирать X бит / сек), увеличит ли это энтропийный переход к урандом?
Ответы:
Не совсем точно сказать, что
/dev/urandom
образцы из/dev/random
. Вместо этого два пула поддерживаются одним и тем же источником энтропии. Когда счетчик энтропии пулов достигает нуля, они повторно заполняются из общего входного пула. Так что, если вы определите энтропию ввода в ядре каким-либо образом, она может использовать ее для любого/dev/random
или/dev/urandom
, в зависимости от того, что читается.Тем не менее,
/dev/urandom
он также ограничен в том, как часто он может потребовать пересева. По умолчанию он может быть повторно заполнен только один раз каждые 60 секунд.На практике все это не имеет значения, поскольку до тех пор, пока пул первоначально заполнен энтропией не менее 128 бит, прогнозирование любого выхода потребует не только просмотра предыдущих выходов, но и нарушения используемых алгоритмов, включая, по крайней мере, сопротивление прообразу. SHA-1 ( который остается неразрушенным ).
источник
Это зависит от реализации. Но, как правило,
/dev/random
и/dev/urandom
вытащить энтропию из одного пула, так и будет.источник
В Linux любые данные, записанные в / dev / random или / dev / urandom, копируются в блокирующий пул (источник случайности для / dev / random) и неблокирующий пул (источник случайности для / dev / urandom).
Просто посмотрите на функцию random_write .
Но данные, записанные в / dev / random, не учитываются внутренним оценщиком энтропии (в конце концов, некоторые локальные злоумышленники могут попытаться просто перенаправить / dev / zero или какой-либо другой источник, не являющийся случайным, в / dev / random), так что если у вас есть проблемы с блокировкой / dev / random просто запись в / dev / random не помогает.
В Linux пишите в / dev / random (или / dev / urandom, без разницы), но всегда читайте из / dev / urandom (как только он будет заполнен - на самом деле лучший способ - использовать новый системный вызов getrandom ).
Я не знаю, как это работает в других Unices.
источник