WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Файл UNIX-устройства /dev/random.
Тип: символьное (c)
ОС major minor
Solaris 149 0
Linux 1 8
Файл UNIX-устройства /dev/urandom.
Тип: символьное (c)
ОС major minor
Solaris 149 1
Linux 1 9

/dev/random и /dev/urandom — специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шум из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайную либо псевдослучайную последовательность чисел.

Начиная с версии ядра Linux 4.8, генератор urandom был переведен на использование потокового шифра ChaCha20 вместо SP800-90A DRBG[1][2][3]

Различие между /dev/random и /dev/urandom

Разницу между ними можно описать так:

  • /dev/random — генератор случайных чисел;
  • /dev/urandom — генератор псевдослучайных чисел.

При чтении данных из устройства /dev/random выводятся только случайные байты, полностью состоящие из битов шума «хаотичного» пула ОС. Если «хаотичный» пул опустел, /dev/random ничего не выдаст, пока необходимое количество битов в пуле не будет создано, читающая /dev/random программа будет ждать появления очередного случайного байта.

В ядре Linux «хаотичный» пул получает энтропию из нескольких источников, в том числе из аппаратного генератора случайных чисел современных процессоров Intel[4].

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

Чтение данных устройства /dev/urandom возвратит столько байтов, сколько было запрошено. В результате, если в пуле было недостаточно битов, теоретически возможно найти уязвимость алгоритма, использующего это устройство (на настоящее время нет опубликованных работ о такой атаке). Если это важно, следует использовать /dev/random.

Пример типичного использования /dev/urandom — заполнение массива «шумом»[5]:

Заполняем раздел случайными данными для удаления остаточной информации:
  dd if=/dev/urandom of=/dev/sdb3


Примечания

  1. Jonathan Corbet. Replacing /dev/urandom (англ.), LWN (May 4, 2016). Проверено 3 октября 2016.
  2. Michael Larabel, /dev/random Seeing Improvements For Linux 4.8 / Phoronix, 25 July 2016
  3. Merge tag 'random_for_linus' of git.kernel.org/pub/scm/linux/kernel/git/tytso/random. Linux kernel source tree. — «random: replace non-blocking pool with a Chacha20-based CRNG». Проверено 20 сентября 2016.
  4. Торвальдс защищает сомнительный ГСЧ в Linux — Хакер, 12 сентября 2013 г.
  5. Создание шифрованного раздела в Linux — The Opennet Project

Ссылки

  • random(4)  страница справки man для разработчика Linux — специальные файлы  (англ.)

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии