3

Использует ли пул энтропии /dev /random то же самое для /dev /urandom?

я бы хотел

mknod /dev/random 1 9

чтобы заменить медленное случайное, я думаю, что текущая энтропия достаточно случайна, если urandom основан на той же энтропии, и все последующие случайные числа генерируются на основе этой энтропии, я не думаю, что будет какая-либо уязвимая.

3 ответа3

9

В конце концов, то, что дает вам urandom , вполне может зависеть от реализации, но на странице руководства сказано, что она будет использовать имеющуюся энтропию, если она там есть, и прибегнет к PRNG только тогда, когда у нее закончится энтропия. Так что, если у вас достаточно энтропии, вы должны получить такой же хороший результат, как если бы вы использовали random .

Но, и это большое, но: вы должны предположить, что вы получаете чисто псевдогенерируемое значение без какой-либо подлинной энтропии, потому что пул энтропии может быть пустым. Таким образом, вы должны относиться к urandom как к PRNG, даже если он может работать лучше, чем в любой конкретной ситуации. Независимо от того, является ли это, не является детерминированным (в пределах вашего кода), и вы должны ожидать, что наихудший случай будет применим. В конце концов, если бы вы были уверены, что в пуле достаточно энтропии, вы бы использовали random , верно? Таким образом, использование urandom означает, что вы в порядке с PRNG, а это означает потенциально теоретически взломанный результат.

1

Проблема здесь не в том, что /dev /urandom - это PRNG. Проблема в том, что /dev /urandom не будет блокироваться до тех пор, пока не будет собрано достаточно энтропии для ее заполнения.

Таким образом, вы не хотите использовать /dev /random или /dev /urandom в Linux. Вам нужно что-то, что обеспечивает их замену, будь то модуль ядра или демон.

Другой вариант - переключиться на FreeBSD, где и /dev /random, и /dev /urandom делают то, что вы хотите, т.е. они предоставляют криптографически сильные псевдослучайные числа и блокируют до тех пор, пока они не будут заполнены.

0

urandom использует тот же пул энтропии, что и random , и если в тот момент, когда вы вызываете его , в пуле достаточно энтропии , он возвращает те же результаты, что и random .

Тем не менее, вы можете быть удивлены тем, насколько велик, если это может быть, и это не то, что у вас есть прямой контроль. Большинство компьютеров не оснащены оборудованием, которое постоянно собирает какую-либо надежную энтропию, и сбор достаточного количества из непостоянных, но надежных источников может занять некоторое время. Когда этого недостаточно, urandom возвращается к PRNG со всеми проблемами (включая предсказуемость), которые сопровождают его.

Для многих приложений, например, для большинства игр, этого достаточно. Но есть важные приложения , где это не так , и я уверяю вас, ваша машина действительно использует эти приложения за кулисами , даже если вы сознательно не видеть / использовать их. По этой причине не стоит просто использовать urandom везде.

Из любопытства, что заставляет вас думать, что random так медленна? Где ваш компьютер заблокирован?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .