Подайте немного энтропии
Jan. 30th, 2007 05:40 pmЗанялся тут изучением работы системного ДСЧ на разных POSIX-системах.
Результаты интересные.
1. Во FreeBSD 5.x и выше, системного ДСЧ можно сказать просто нет. Вместо него псевдослучайный ДСЧ с алгоритмом yarrow. Мегабайт данных с /dev/random на ничем особенно не загруженной виртуальной машине в vmware снимается за 20 секунд в FreeBSD 5.x, и за 2 секунды - в 6.x. Прямо по Ричарду Баху "Ничто не случайно".
2. Во FreeBSD 4.x используется более-менее честный ДСЧ со сбором энтропии с указанных администратором прерываний. Собирает мегабайт
энтропи за 7 минут с небольшим.
3. В Solaris 10 мегабайт собирается за 4 минуты. Видимо, то же самое - всё таки это была честная физическая машина, а не виртуальная в vmware, у неё было где взять физические процессы, дающие действительно непредсказуемую случайность. Для сравнения - примерно то же самое время требуется для выдачи мегабайта устройству «Вьюга»
3. В Linux чем дальше, тем медленнее собирается энтропия. В 2.4 рабочая стация набирает мегабайт за 4 с хвоcтиком часа. В 2.6 для этого требуется несколько суток (ни одна из машин где я собиралку с /dev/random запустил вчера в начале рабочего дня, мегабайта ещё не набрала - ни рабочая станция, ни достаточно нагруженный сервер/рутер). Upd 71 час на сервере. На рабочей станции 36 часов (собиралка работала только во время пользовательской сессии). Видимо юзер - действительно хороший источник энтропии.
Отсюда мораль - линуксовый ДСЧ относится к случайным событиям с сильно большим подозрением, чем солярисный или старый FreeBSD-шный.
Результаты интересные.
1. Во FreeBSD 5.x и выше, системного ДСЧ можно сказать просто нет. Вместо него псевдослучайный ДСЧ с алгоритмом yarrow. Мегабайт данных с /dev/random на ничем особенно не загруженной виртуальной машине в vmware снимается за 20 секунд в FreeBSD 5.x, и за 2 секунды - в 6.x. Прямо по Ричарду Баху "Ничто не случайно".
2. Во FreeBSD 4.x используется более-менее честный ДСЧ со сбором энтропии с указанных администратором прерываний. Собирает мегабайт
энтропи за 7 минут с небольшим.
3. В Solaris 10 мегабайт собирается за 4 минуты. Видимо, то же самое - всё таки это была честная физическая машина, а не виртуальная в vmware, у неё было где взять физические процессы, дающие действительно непредсказуемую случайность. Для сравнения - примерно то же самое время требуется для выдачи мегабайта устройству «Вьюга»
3. В Linux чем дальше, тем медленнее собирается энтропия. В 2.4 рабочая стация набирает мегабайт за 4 с хвоcтиком часа. В 2.6 для этого требуется несколько суток (ни одна из машин где я собиралку с /dev/random запустил вчера в начале рабочего дня, мегабайта ещё не набрала - ни рабочая станция, ни достаточно нагруженный сервер/рутер). Upd 71 час на сервере. На рабочей станции 36 часов (собиралка работала только во время пользовательской сессии). Видимо юзер - действительно хороший источник энтропии.
Отсюда мораль - линуксовый ДСЧ относится к случайным событиям с сильно большим подозрением, чем солярисный или старый FreeBSD-шный.