Что вы говорите, это то, что теоретически можно кормить энтропию в /dev/random
, но вам нужно будет контролировать множество источников «шума» ядра, чтобы они были значительными. Вы можете посмотреть источник для random.c, чтобы увидеть, где /dev/random
снимает шум с. В принципе, если вы контролируете значительное количество источников шума, вы можете догадаться, что другие вносят вклад в энтропийный пул.
С /dev/urandom
является Hash chain, высеянном из /dev/random
, тогда вы могли бы предсказать следующие цифры, если бы знали семена. Если у вас достаточно контроля над энтропийным пулом, то из результата /dev/urandom
вы можете угадать это семя, которое позволит вам предсказать все следующие номера от /dev/urandom
, но только если вы уберете /dev/random
, в противном случае /dev/urandom
будет пересев.
Это, как говорится, я не видел, чтобы кто-то на самом деле делал это, даже не в контролируемой среде. Конечно, это не гарантия, но я бы не стал беспокоиться.
Поэтому я предпочел бы использовать /dev/urandom
и гарантировать, что моя программа не блокируется в ожидании энтропии, вместо использования /dev/random
и просит пользователя делать глупые вещи, например, перемещая мышь или удар по клавиатуре.
Думаю, вы должны прочитать On entropy and randomness от LWN, надеюсь, это успокоит ваши заботы :-).
Если вы все еще беспокоитесь, тогда получите себе HRNG.
Редактировать Вот небольшая заметка по энтропии:
Я думаю, что понятие энтропии, как правило, трудно понять. Существует статья с дополнительной информацией о Wikipedia. Но в принципе, в этом случае вы можете считать энтропию случайностью.
Итак, как я вижу это, у вас есть большой мешок с цветными шарами, чем выше энтропия в этой сумке, тем труднее предсказать следующий цвет, нарисованный из мешка.
В этом контексте ваш пул энтропий - это всего лишь куча случайных байтов, в которых невозможно извлечь из предыдущего или любого другого. Это означает, что у вас высокая энтропия.
Imho вы должны заменить один из тегов, чтобы упомянуть, что этот вопрос специфичен для Linux; во всяком случае, о второй части - нет, только root может это сделать, обычные пользователи могут смешивать только новые данные, что безвредно. – loreb