Как собирается энтропия для / dev / random в Precise

Со стандартной установкой Ubuntu 12.04, как собирается энтропия для /dev/random.

Является ли установка достаточно умной, чтобы настроить любое доступное поколение аппаратного обеспечения, будут ли по умолчанию использовать пользовательские источники, такие как клавиатурные прерывания?

Редактировать: Просто, чтобы было ясно, я смотрю для конкретной конфигурации, которая поставляется с установкой (или как ее найти), я не смотрю, как это может быть сделано в теории.

7
задан 13 May 2014 в 19:29

2 ответа

Это - сложный вопрос. Я отвечу путем заключения в кавычки из немногих источников.

От страница справочника

Linux символьные специальные файлы/dev/random и/dev/urandom (существующий начиная с Linux 1.3.30) предоставляют интерфейс генератору случайных чисел ядра. Файл/dev/random имеет основное устройство номер 1 и незначительный номер устройства 8. Файл/dev/urandom имеет основное устройство номер 1 и незначительный номер устройства 9.

, генератор случайных чисел собирает экологический шум из драйверов устройств и других источников в энтропийный пул. Генератор также сохраняет оценку числа битов шума в энтропийном пуле. От этого энтропийного пула создаются случайные числа.

В ядре значения по умолчанию Ubuntu 12.04 3.11 .

От wiki

ядро Linux генерирует энтропию от синхронизаций клавиатуры, движений мыши и синхронизаций IDE и делает случайные символьные доступные данные к другим процессам операционной системы через специальные файлы/dev/random и/dev/urandom. Эта возможность была представлена в версии 1.3.30.

Linux Из страницы справочника

Linux , Когда считано,/dev/random устройство только возвратит случайные байты в предполагаемом числе битов шума в энтропийном пуле./dev/random должен подойти для использования, для которого нужна очень высококачественная случайность, такая как шифр Вернама или генерация ключей. То, когда энтропийный пул пуст, читает из/dev/random, заблокируется, пока дополнительный экологический шум не собран.

Кавычка от random источники, от ядра 3.11.10.10

 * Theory of operation
 * ===================
 *
 * Computers are very predictable devices.  Hence it is extremely hard
 * to produce truly random numbers on a computer --- as opposed to
 * pseudo-random numbers, which can easily generated by using a
 * algorithm.  Unfortunately, it is very easy for attackers to guess
 * the sequence of pseudo-random number generators, and for some
 * applications this is not acceptable.  So instead, we must try to
 * gather "environmental noise" from the computer's environment, which
 * must be hard for outside attackers to observe, and use that to
 * generate random numbers.  In a Unix environment, this is best done
 * from inside the kernel.
 *
 * Sources of randomness from the environment include inter-keyboard
 * timings, inter-interrupt timings from some interrupts, and other
 * events which are both (a) non-deterministic and (b) hard for an
 * outside observer to measure.  Randomness from these sources are
 * added to an "entropy pool", which is mixed using a CRC-like function.
 * This is not cryptographically strong, but it is adequate assuming
 * the randomness is not chosen maliciously, and it is fast enough that
 * the overhead of doing it on every interrupt is very reasonable.
 * As random bytes are mixed into the entropy pool, the routines keep
 * an *estimate* of how many bits of randomness have been stored into
 * the random number generator's internal state.

Да достаточно умно использовать основанные на пользователе источники , но можно настроить больше, если Вы хотите.

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

, Но /dev/random должен быть достаточно для большинства задач по умолчанию.

Также читает этот вопрос на stackoverflow

0
ответ дан 13 May 2014 в 19:29

Истинная случайность прибывает из материального мира, не из детерминированных генераторов псевдослучайного числа. Ядро Linux собирает случайные синхронизации и добавляет информацию к ее энтропийному пулу. Я рекомендовал бы войти в источники ядра

, Входная энтропия относится к вызов функции: add_interrupt_randomness (irq) обработчики, зарегистрированный SA_SAMPLE_RANDOM, синхронизирующий между прерываниями, является источником шума, add_keyboard_randomness (scancode) и add_mouse_randomness (mouse_data) ===> все эти функции, называют add_timer_randomness ()

Выходная энтропия: пространство Ядра: [get_random_bytes (buf, число)] (Относятся к LXR => linux/drivers/char/random.c), Пространство пользователя:/dev/random/dev/urandom

Относится к LXR => linux/drivers/char/random.c

0
ответ дан 13 May 2014 в 19:29

Другие вопросы по тегам:

Похожие вопросы: