Этот вопрос довольно старый.Но все еще актуально, поэтому я собираюсь дать свой ответ.Сегодня многие процессоры поставляются со встроенным аппаратным генератором случайных чисел (RNG).Кроме того, многие системы поставляются с модулем доверенной платформы (TPM), который также обеспечивает ГСЧ.Есть и другие опции, которые можно приобрести, но есть вероятность, что на вашем компьютере уже есть что-то.
Вы можете использовать rngd из пакета rng-utils на большинстве дистрибутивов Linux, чтобы получить больше случайных данных.Например, на fedora 18 все, что мне нужно было сделать, чтобы разрешить заполнение из TPM и RNG процессора (инструкция RDRAND), было:
# systemctl enable rngd
# systemctl start rngd
Вы можете сравнить скорость с и без rngd.Хорошая идея запустить rngd -v -f
из командной строки.Это покажет вам обнаруженные источники энтропии.Убедитесь, что все необходимые модули для поддержки ваших источников загружены.Чтобы использовать TPM, его нужно активировать через tpm-tools. обновление : вот хорошее руководство .
Кстати, я читал в Интернете некоторые опасения по поводу того, что TPM RNG часто ломается по-разному, но нене читайте ничего конкретного против RNG, найденных в чипах Intel, AMD и VIA.Использование более одного источника было бы лучше, если вы действительно заботитесь о качестве случайности.
urandom подходит для большинства случаев использования (за исключением случаев, когда во время ранней загрузки).В настоящее время большинство программ используют случайный, а не случайный.Даже openssl делает это .См. мифы о случайном и сравнении случайных интерфейсов .
В недавних Fedora и RHEL / CentOS rng-tools также поддерживают энтропия джиттера .Вы можете сделать это из-за отсутствия аппаратных опций или если вы просто доверяете этому больше, чем вашему аппаратному обеспечению.
ОБНОВЛЕНИЕ: другой вариант для большей энтропии - HAVEGED (сомнительное качество).На виртуальных машинах есть kvm / qemu VirtIORNG (рекомендуется).