Открыть сервис

Генератор истинных случайных чисел

Генератор истинных случайных чисел (аппаратный генератор случайных чисел, True Random Number Generator, TRNG) — это устройство или программно-аппаратный комплекс, который вырабатывает последовательность чисел, основанную на физически непредсказуемых, недетерминированных процессах. В отличие от генераторов псевдослучайных чисел (PRNG), использующих детерминированные алгоритмы, TRNG получает энтропию из случайных физических явлений, таких как тепловой шум, дробовой шум, радиоактивный распад, атмосферные шумы или квантовые флуктуации. Основное свойство истинного генератора — принципиальная непредсказуемость его выходных данных, что делает его незаменимым в криптографии, азартных играх, научных симуляциях и системах безопасности.

Принцип работы

Работа TRNG основана на преобразовании аналогового случайного сигнала в цифровую последовательность битов. Процесс включает три основных этапа:

  1. Извлечение энтропии — регистрация физического шума с помощью датчика (например, резистора, диода, фотоприёмника или счётчика Гейгера).
  2. Усиление и оцифровкапреобразование слабого аналогового сигнала в цифровые значения с помощью аналого-цифрового преобразователя (АЦП) или компаратора.
  3. Постобработкаудаление возможных смещений и корреляций с помощью криптографических хеш-функций или алгоритмов дескремблирования (например, алгоритм фон Неймана или хеширование через SHA-256).

Физические источники энтропии

Наиболее распространённые источники случайности:

  • Тепловой шум (шум Джонсона — Найквиста) — хаотическое движение электронов в резисторе. Используется в большинстве коммерческих TRNG, например, в чипах Intel (через встроенный генератор RDRAND).
  • Дробовой шум — флуктуации тока в полупроводниковых переходах (диодах, транзисторах), вызванные дискретностью носителей заряда.
  • Радиоактивный распад — регистрация моментов распада нестабильных ядер (например, изотопа ⁶⁰Co) с помощью счётчика Гейгера. Даёт наиболее фундаментально случайный процесс, но требует источников радиации и мер безопасности.
  • Атмосферные шумы — регистрация радиошумов от молний или космического излучения (например, сервис random.org использует радиоприёмник, настроенный на пустую частоту).
  • Квантовые флуктуации — измерение состояния фотонов (например, поляризации или времени прибытия) в квантово-оптических системах. Считаются наиболее надёжными, так как квантовая механика гарантирует фундаментальную непредсказуемость.

Отличие от псевдослучайных генераторов

Псевдослучайные генераторы (PRNG) строятся на детерминированных алгоритмах (например, Mersenne Twister, алгоритм Блюма — Блюма — Шуба). Они требуют начального значения (seed) и, зная его, можно полностью восстановить последовательность. TRNG же не имеет seed и не поддаётся предсказанию даже при полном знании алгоритма и устройства, если источник энтропии не скомпрометирован.

Основные различия:

ХарактеристикаTRNGPRNG
ИсточникФизический шумАлгоритм + seed
ПредсказуемостьПринципиально непредсказуемПредсказуем при известном seed
ПериодБесконечный (неповторяющийся)Конечный (повторяется через период)
СкоростьОбычно низкая (до нескольких Мбит/с)Высокая (до Гбит/с)
ВоспроизводимостьНевозможнаВозможна при одинаковом seed

История

Первые упоминания о необходимости случайных чисел в науке относятся к началу XX века. В 1927 году английский статистик Леонард Типпет опубликовал таблицу из 41 600 случайных цифр, полученных из демографических данных. Однако первые аппаратные генераторы появились в 1940-х годах:

  • 1947 год — американский математик Джон фон Нейман разработал алгоритм «среднего квадрата», который, хотя и был псевдослучайным, заложил основы теории генерации.
  • 1950-е годы — в Великобритании для вычислительной машины Ferranti Mark I использовался генератор на основе шума диода.
  • 1960-е — компания RAND Corporation выпустила книгу «A Million Random Digits with 100,000 Normal Deviates», где цифры были получены с помощью электронного рулеточного устройства на основе шума.
  • 1990-е — с развитием криптографии началось массовое внедрение TRNG в микропроцессоры (например, в чипы Intel 82802 в 1999 году).
  • 2010-е — появление квантовых TRNG, использующих фотонные эффекты (например, устройства компании ID Quantique).

Применение

Криптография

TRNG является критическим компонентом систем шифрования. Он используется для генерации:

  • Ключей шифрования (AES, RSA, ECC).
  • Инициализирующих векторов (IV) для блочных шифров.
  • Нонсов (одноразовых чисел) в протоколах TLS/SSL.
  • Случайных значений для цифровых подписей (например, в схеме DSA).

Без истинного источника случайности криптосистема становится уязвимой: например, в 2012 году было обнаружено, что в некоторых реализациях RSA на Android использовался слабый PRNG, что позволило взломать тысячи ключей.

Азартные игры и лотереи

В онлайн-казино и лотереях TRNG обеспечивает честность и непредсказуемость результатов. Регуляторы (например, Комиссия по азартным играм Великобритании) требуют сертификации генераторов на соответствие стандартам случайности. В России деятельность организаторов азартных игр регулируется Федеральным законом № 244-ФЗ, и использование TRNG является обязательным для лицензированных операторов.

Научные симуляции

В методе Монте-Карло и других стохастических моделях (физика, финансы, биология) требуется высокая энтропия. TRNG применяется в симуляциях ядерных реакторов, моделировании климата и анализе финансовых рисков.

Безопасность

TRNG используется в системах аутентификации (генерация одноразовых паролей), в защищённых элементах (SIM-карты, банковские чипы) и в протоколах блокчейна (например, для генерации приватных ключей в криптовалютах).

Стандарты и тестирование

Качество TRNG оценивается по статистическим тестам, разработанным Национальным институтом стандартов и технологий США (NIST SP 800-22) и Федеральным агентством по безопасности информационных технологий Германии (BSI AIS-31). Тесты проверяют:

  • Равномерность распределения битов.
  • Отсутствие корреляций между соседними значениями.
  • Длину серий (run test).
  • Энтропию по Шеннону.

В России требования к генераторам случайных чисел регулируются ГОСТ Р 34.10-2012 (для криптографических приложений) и методическими документами ФСБ России.

Примеры коммерческих TRNG

  • Intel RDRAND — встроенный в процессоры Intel (начиная с Ivy Bridge, 2012 год) генератор на основе теплового шума. Скорость до 3 Гбит/с.
  • OneRNG — открытое устройство на основе шума диода, подключаемое через USB.
  • Quantis (ID Quantique) — квантовый TRNG, использующий фотонные флуктуации. Скорость до 4 Мбит/с.
  • random.org — онлайн-сервис, генерирующий случайные числа на основе атмосферного шума (радиоприёмник).

Критика и ограничения

  • Скорость — физические процессы часто медленнее алгоритмов PRNG, что ограничивает применение в высоконагруженных системах.
  • Стоимость — качественные TRNG дороже программных решений.
  • Уязвимость к внешним воздействиям — температура, электромагнитные поля и радиация могут искажать источник энтропии.
  • Сложность верификации — невозможно доказать, что последовательность действительно случайна, можно лишь показать, что она не противоречит статистическим тестам.

Интересные факты

  • В 2018 году исследователи из Университета Мельбурна создали TRNG на основе хаотического движения капель воды в масле.
  • Некоторые операционные системы (Linux, Windows) используют TRNG для инициализации пула энтропии, который затем питает PRNG (например, /dev/random в Linux).
  • В 2020 году компания IBM представила квантовый TRNG на 53-кубитном процессоре, способный генерировать 1,5 млн случайных бит в секунду.

Источники

  • NIST Special Publication 800-22: A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications.
  • ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации.
  • M. Stipčević, «True Random Number Generators», 2012, arXiv:1204.2267.
  • Документация Intel: «Intel Digital Random Number Generator (DRNG)».
  • ID Quantique: «Quantis Random Number Generator».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →