random, urandom - устройство ядра для создания случайных чисел
НАЗВАНИЕrandom, urandom - устройство ядра для создания случайных
чисел
ОПИСАНИЕ
Специальные посимвольные файлы /dev/random и /dev/urandom
(появились в Linux версии 1.3.30) предоставляют интерфейс
генератору случайных чисел в ядре. Файл /dev/random
обозначает единицей главное число устройства и цифрой 8
второстепенное. Файл /dev/urandom обозначает единицей
главное число устройства и цифрой 9 второстепенное.
Генератор случайных чисел выводит шумы из драйверов
устройств и других источников в "хаотичный" пул (entropy
pool). Генератор также сохраняет необходимое количество
битов шума в этом пуле и формирует из него случайные
числа.
При чтении данных в устройстве /dev/random создаются
только случайные байты, состоящие из битов шума
"хаотичного" пула. Устройство /dev/random может быть
необходимо пользователям, которые требуют очень высокого
коэффициента случайности, например, при создании ключа
доступа и т.п. Если "хаотичный" пул опустел, чтение
/dev/random блокируется, пока необходимое количество битов
в пуле не будет создано.
Чтение данных устройства /dev/urandom возвратит столько
байтов, сколько было запрошено. В результате, если в пуле
было недостаточно битов, теоретически возможно будет найти
уязвимость алгоритма, использующего это устройство. Если
это важно, используйте /dev/random .
НАСТРОЙКА
Если в Вашей системе нет файлов /dev/random и /dev/uran-
dom, они могут быть созданы заданием команд:
mknod -m 644 /dev/random c 1 8
mknod -m 644 /dev/urandom c 1 9
chown root:root /dev/random /dev/urandom
При запуске системы входной "хаотичный" пул может быть
слишком мал для нормальной работы. Это уменьшает
коэффициент случайности. Чтобы избежать этого эффекта,
включите следующие строки в загрузочный скрипт:
echo "Initializing kernel random number generator..."
if [ -f /var/random-seed ]; then
cat /var/random-seed >/dev/urandom
fi
dd if=/dev/urandom of=/var/random-seed count=1
Также добавьте следующие строки в скрипт, запускающийся
при завершении работ:
echo "Saving random seed..."
dd if=/dev/urandom of=/var/random-seed count=1
ФАЙЛЫ
/dev/random ,
/dev/urandom
АВТОР
Генератор случайных чисел ядра написан
Theodore Ts'o (tytso@athena.mit.edu).