Intereting Posts
Возьмите входные данные из файла и сохраните их в переменной исполняемый файл в $ PATH, все еще не распознанный С pam_script, как мне передать PAM_AUTHTOK и PAM_USER во всех случаях? Debian не работает. Как запустить приложение с эмулятором терминалов по умолчанию на Ubuntu? Изменить фон терминала из сценария bash в платформе, независимо от среды рабочего стола? Цветовая схема Vim не применяется Как перемонтироваться в режиме чтения-записи определенного монтирования устройства? Oneliner для определения переменных верблюда Я случайно выполнил rm -rf / * (не как root). Что я могу исправить? Фильтрация / выбор папок с помощью подстановочных знаков Как искать в определенных файлах, соответствующих шаблону Двухсловный аргумент в сценарии оболочки Почему wget пропускает файлы при попытке зеркального отображения сайта Мета-ключи для Linux, работающие на Macbook

Является ли / dev / random data псевдо-случайным AES cypher, и откуда берется энтропия?

Мое нынешнее понимание энтропийного пула заключается в том, что он собирает по-настоящему случайные бит данных с низкой скоростью. Я хотел бы знать, как Unix & Linux собирает энтропию и как эта энтропия используется / dev / random.

Я слышал (в общем) методы энтропийного сбора, такие как статус процессора видеокарты, когда приходит «случайный» выбранный сетевой пакет, сопоставляется с его шипением в цифроаналоговом преобразователе и другими более тупыми методами.

Я считаю, что энтропийный «пул» задействован по мере необходимости и используется для высева псевдо-случайного генератора ….

Я не после подробного ответа, но мне интересно узнать, является ли это общим подходом, используемым Unix / Linux? .. и, возможно, некоторые намеки на то, что происходит на энтропийном сборе угля. .. а затем, что энтропия подается в .. Это шифр AES Rijndael?

Фоновая информация для моих comemnts выше, появилась из безопасности Стива Гибсона сейчас! podcast: Episode # 301 Going Random, Part 2 of 2 … Он говорил только в общем (но, как и его стиль, с достаточной детализацией и ясностью, чтобы даже я мог понять его. Слушая предыдущие 300 эпизодов, помогает :), … и я хотел бы знать, как это делает Unix / Linux …

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

/dev/random – источник «истинной» случайности, т. е. он не генерируется генератором псевдослучайных чисел. Энтропия в add_input_randomness add_interrupt_randomness драйвером ввода и обработчиком прерываний через функции add_input_randomness и add_interrupt_randomness . Процессы, считывающие это устройство, будут блокироваться, если закончится энтропия.

/dev/urandom – генератор псевдослучайных чисел. Он питается одним и тем же энтропийным пулом как /dev/random , но когда это заканчивается, он переключается на криптографически сильный генератор.

Приложения для пространства имен могут загружаться в пул энтропии, записывая в /dev/{,u}random .

Прочитайте случайную (4) страницу руководства и drivers/char/random.c файлов drivers/char/random.c в исходном дереве ядра. Это хорошо прокомментировано, и многое из того, что вы просите, объясняется там.


FreeBSD /dev/random по умолчанию представляет собой генератор псевдослучайных чисел, использующий алгоритм Yarrow (но может указывать на аппаратный RNG, если он подключен). Генератор программного обеспечения принимает энтропию от Ethernet и последовательных соединений и аппаратных прерываний ( sysctl kern.random через sysctl kern.random ). Алгоритм Yarrow считается безопасным, пока внутреннее состояние неизвестно, поэтому /dev/random всегда должны выводить высококачественные данные без блокировки. См. Случайное (4) .

На NetBSD /dev/random предоставляет случайные данные, основанные только на собранной энтропии (с дисков, сетей, устройств ввода и / или ленточных накопителей, настраиваемых с использованием rndctl ), в то время как /dev/urandom возвращается к PRNG, когда пул энтропии пустым, похожим на Linux. См. Случайные (4) , rndctl (8) , rnd (9) .

OpenBSD имеет четыре генератора: /dev/random – это аппаратный генератор, /dev/srandom – это генератор случайных данных (с использованием MD5 в пуле энтропии: «прерывания диска и сетевого устройства и т. Д.»), /dev/urandom аналогичен, возвращается в PRNG, когда пул энтропии пуст. Четвертый, /dev/arandom , также является PRNG, но использует RC4 . См. Случайный (4) , arc4random (3) .

Mac OS X также использует алгоритм Yarrow для /dev/random , но имеет идентичную рабочую /dev/urandom для совместимости. «Дополнительная энтропия регулярно подается генератору с помощью демона SecurityServer из случайных измерений дрожания ядра». См. Случайное (4) .