.\" Copyright (c) 1997 John S. Kallal (kallal@voicenet.com) .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" Some changes by tytso and aeb. .\" .\" Перевод на русский язык: Антон Лыков (last@last.ulsu.ru) 20010119 .\" Вычитано и скорректировано by для проекта .\" http://alexm.here.ru/manpages-ru/ .TH RANDOM 4 "1 августа 1997" "Linux" "Руководство программиста Linux" .SH ИМЯ random, urandom \- устройства генераторов случайных чисел, встроенных в ядро .SH ОПИСАНИЕ Специальные символьные файлы \fB/dev/random\fP и \fB/dev/urandom\fP (имеются начиная с Linux 1.3.30) предоставляют интерфейс к генератору случайных чисел, встроенному в ядро. Файла \fB/dev/random\fP имеет старший номер устройства\~1, и младший номер устройства\~8. Файл \fB/dev/urandom\fP имеет старший номер устройства\~1 и младший номер устройства\~9. .LP Генератор случайных чисел собирает окружающий шум с драйверов устройств и из других источников в пул энтропии. Генератор также постоянно оценивает количество бит шума в пуле энтропии. Именно с помощью этого пула создаются случайные числа. .LP При чтении устройство \fB/dev/random\fP возвращает единичные случайные байты, количество битов шума в которых равно количеству бит шума в пуле энтропии. \fB/dev/random\fP следует использовать, если требуется высокий коэффициент случайности, например, при использовании одноразовой шифровки (one-time pad) или при генерации ключа. Если пул энтропии пуст, попытка чтения \fB/dev/random\fP приведёт к задержке, пока не будет собран дополнительный окружающий шум. .LP При чтении устройство \fB/dev/urandom\fP возвратит столько байтов, сколько было запрошено. Как результат, если в пуле недостаточная энтропия, то возвращённые значения теоретически нестойки к криптографической атаке на алгоритмы, используемые драйвером. О том, как это сделать, не сказано в современной несекретной литературе, но теоретически возможно, что такая атака может существовать. Если это важно для вашего приложения, используйте лучше \fB/dev/random\fP. .SH КОНФИГУРИРОВАНИЕ Если в вашей системе ещё не созданы \fB/dev/random\fP и \fB/dev/urandom\fP, то их можно создать следующими командами: .nf mknod -m 644 /dev/random c 1 8 mknod -m 644 /dev/urandom c 1 9 chown root:root /dev/random /dev/urandom .fi Когда Linux-система запускается без участия человека, пул энтропии может оказаться в довольно предсказуемом состоянии. Это снижает значимый объем шума в пуле энтропии ниже оцениваемого. Для преодоления этого эффекта информация в пуле энтропии сохраняется во время выключения и восстанавливается во время запуска системы. Для этого добавьте следующие строки в скрипт, который выполняется при запуске Linux системы: .nf echo "Initializing kernel random number generator..." # Инициализировать генератор случайных чисел ядра значениями # последнего выключения (или запуска системы). Загрузить и # затем сохранить 512 байт, которые составляют пул энтропии. if [ -f /var/random-seed ]; then cat /var/random-seed >/dev/urandom fi dd if=/dev/urandom of=/var/random-seed count=1 .fi Также добавьте следующие строки в скрипт, который выполняется при завершении работы Linux системы: .nf # Сохранить источник случайности для генератора случайных чисел # при завершении работы. Сохранить 512 байт, которые составляют # пул энтропии для генератора случайных чисел. echo "Saving random seed..." dd if=/dev/urandom of=/var/random-seed count=1 .fi .SH ФАЙЛЫ /dev/random .br /dev/urandom .SH АВТОР Генератор случайных чисел для ядра написал Theodore Ts'o (tytso@athena.mit.edu). .SH "СМОТРИ ТАКЖЕ" mknod (1) .br RFC 1750, "Randomness Recommendations for Security"