Лучшие вопросы
Таймлайн
Чат
Перспективы
Источник энтропии
Из Википедии, свободной энциклопедии
Remove ads
Источники энтропии используются для накопления энтропии с последующим получением из неё начального значения (англ. initial value, seed, random seed), необходимого для работы генераторов истинно случайных чисел (ГСЧ).
Источники энтропии значительно различаются в зависимости от своей реализации, например, тепловой шум (или шум Джонсона), источник радиоактивного распада, Генератор гармонических колебаний. Также источниками могут служить:
- большинство видео- и аудиоустройств
- кольцевой генератор
- любая система с вращающимся диском
- высокоточные таймеры
- специализированные аппаратные генераторы чисел, встроенные в компьютер (например, Intel i82802 RNG, встроенный генератор микропроцессора VIA C3)
- температурный датчик.
Remove ads
Применение
Энтропия — это среднее количество информации, приходящееся на одно элементарное сообщение источника.[1] При накоплении достаточного количества энтропии, она может быть использована как начальное значение (seed) для создания необходимой величины криптографически стойкой хаотичности.
В отличие от генератора псевдослучайных чисел (ГПСЧ), который использует одно фиксированное начальное значение (seed), ГСЧ всегда формирует случайные числа, опираясь на случайную величину, предоставленную различными высококачественными источниками энтропии.
Накопленная энтропия служит основой для генераторов истинно случайных чисел, которые широко применяются в криптографии. Такие случайные числа необходимы для создания криптографических ключей, паролей и других элементов, обеспечивающих безопасность данных.
Remove ads
Необходимый объём энтропии
Это минимальное количество случайных данных (измеряемое в битах), требуемое для конкретной криптографической или технической задачи. Недостаток энтропии делает систему уязвимой.
Например, в AES (Advanced Encryption Standard) стандартная длина ключа составляет 128 бит, хотя поддерживаются варианты на 192 и 256 бит.[2] В высокозащищённых системах обычно используют ключи длиной 256 бит. При необходимости создания набора ключей применяют криптографически стойкие алгоритмы, требующие качественного случайного начального значения (seed). Нескольких сотен случайных бит, получаемых при однократном запуске компьютера, бывает достаточно для безопасной работы таких алгоритмов.
Remove ads
Аппаратные источники энтропии
Суммиров вкратце
Перспектива
"Аппаратные источники энтропии используют физические процессы, такие как тепловой шум, дробовой шум в полупроводниках, джиттер тактовых генераторов или радиоактивный распад, для генерации случайных чисел."
Такие источники генерируют случайные числа на основе непредсказуемых физических явлений. Они считаются более надежными, поскольку их выходные данные невозможно предсказать или воспроизвести программно, однако их скорость может быть недостаточной для высоконагруженных систем.
Видео- и аудиовходы
Многие компьютерные системы оснащены входами для оцифровки аналоговых сигналов, как звук из микрофона или видео с камеры. Качество энтропии, получаемой таким способом, существенно зависит от аппаратной реализации устройства. Например:
- При отсутствии звукового сигнала (микрофон в тихом помещении) или при закрытой крышке камеры входные данные представляют собой преимущественно тепловой шум электронных компонентов.
- Наличие усилителей, детекторов сигнала и качественного АЦП может повысить энтропию.
- В UNIX-подобных системах для сбора энтропии можно использовать устройство
/dev/audio
, считывая тепловой шум при отсутствии звукового сигнала или фоновый шум низкого уровня. Получаемые таким образом случайные данные требуют дополнительной проверки и обработки перед использованием в криптографических целях.
Дисковые накопители
Дисковые накопители (жёсткие диски) демонстрируют незначительные случайные колебания скорости вращения обусловленные турбулентностью воздушного потока внутри корпуса и механическими колебаниями компонентов. Измерение времени поиска данных (seek time) усиливает энтропийную составляющую. Данные, полученные таким образом, как правило, сильно взаимозависимы, поэтому необходима значительная обработка.
В 1990-х годах даже на медленных системах достигалась генерация примерно 100 бит/мин (после обработки).
В середине 2000-х годов на современном (на тот момент) оборудовании генерация составляла свыше 10 000 бит/с.
Метод применяется в системных RNG (например, в Linux через /dev/random
).
Кеширование не создаёт проблем, так как операции чтения выполняются за очень короткое время.
Специализированные аппаратные ГСЧ
Генераторы на стабилитронах (Zener diodes)
Стабилитроны, работающие в режиме пробоя, генерируют значительный шум за счет дробового эффекта и теплового шума. При подаче обратного напряжения, близкого к напряжению пробоя, возникает лавинный пробой, сопровождающийся существенными флуктуациями тока. Этот шум усиливается и оцифровывается для получения случайных битов. Такие генераторы относительно просты в реализации и обеспечивают высококачественную энтропию.[4]
Шумовые диоды
Специализированные шумовые диоды (такие как диоды с обратным смещением p-n перехода) генерируют белый шум с равномерным спектром. Они работают на принципах теплового шума и дробового эффекта, обеспечивая предсказуемый и стабильный источник энтропии. Часто используются в промышленных аппаратных ГСЧ благодаря своей надежности и воспроизводимым характеристикам.[5]
Специализированные микросхемы ГСЧ
Современные криптографические системы часто используют специализированные микросхемы, разработанные specifically для генерации случайных чисел:
Dedicated TRNG chips (True Random Number Generators) - полностью автономные решения с встроенными источниками энтропии и пост-обработкой
Cryptographic processors со встроенными ГСЧ (например, Trusted Platform Module - TPM)
Security chips в смартфонах и защищенных устройствах[6]
CPU-интегрированные ГСЧ - современные процессоры Intel и AMD включают инструкции RDRAND и RDSEED, использующие тепловой шум транзисторов
Квантовые генераторы случайных чисел
Используют фундаментальные квантовые процессы для обеспечения абсолютной случайности.[7]
Remove ads
Неаппаратные источники
Суммиров вкратце
Перспектива
"Программные источники энтропии полагаются на события, которые трудно предсказать, но не являются истинно случайными, такие как временные метки, ввод пользователя или системные прерывания."
(RFC 4086 "Randomness Requirements for Security")
Такие источники генерируют случайные данные на основе непредсказуемых, но нефизических событий, таких как время нажатия клавиш, движение мыши или сетевые пакеты. Они менее надежны, чем аппаратные.
Часы и серийные номера
Компьютерные часы и связанные с ними временные метки часто предоставляют меньше энтропии, чем предполагает их техническая спецификация.
Исследования[8] выявили следующие проблемы:
- Нестабильность разрешения:
- Одна версия ОС на определённом оборудовании может обеспечивать микросекундное разрешение (например,
QueryPerformanceCounter
в Windows), тогда как та же ОС в другой конфигурации возвращает идентичные младшие биты при последовательных запросах. - Пример: в Linux до ядра 4.18
gettimeofday()
на некоторых процессорах давал лишь миллисекундную точность, несмотря на заявленные микросекунды.[9]
- Одна версия ОС на определённом оборудовании может обеспечивать микросекундное разрешение (например,
- Артефакты генерации:
- При частых запросах некоторые реализации увеличивают значение часов вручную (например, инкрементируя на 1), если реальное время не изменилось. Это создаёт предсказуемые последовательности.
- Проблемы переносимости:
- Разработка кроссплатформенных приложений, использующих часы для генерации энтропии, крайне сложна из-за вариативности поведения (см. POSIX-стандарт для
clock_gettime()
).
- Разработка кроссплатформенных приложений, использующих часы для генерации энтропии, крайне сложна из-за вариативности поведения (см. POSIX-стандарт для
Использование идентификаторов (MAC-адреса, серийные номера SSD) также ограничено из-за структурированности данных: MAC-адреса содержат OUI-префикс производителя (3 байта), что снижает энтропию. Так, Dell использует несколько известных префиксов (включая 00:14:22
и 00:1C:23
)[10], позволяя предсказать часть адреса.
Эти ограничения делают часы и серийные номера ненадёжными источниками энтропии без дополнительной обработки.
Время и сетевой трафик
Системы могут собирать энтропию из:
- Временных характеристик:
- Нажатия клавиш (интервалы между нажатиями)
- Движения мыши (время и траектория)
- Сетевых событий:
- Время прибытия сетевого пакета
- Размер пакета
Проблемы:
- Буферизация ввода в некоторых ОС затрудняет доступ к точным временным меткам
- Отсутствие стандартизированного API для разных платформ
- Повторяемость пользовательских действий снижает энтропийную ценность
- Возможная предсказуемость трафика
Методы, использующие данные источники энтропии, эффективны против удаленных атак, но напрямую зависят от качества измерений случайных величин.
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads