Генерация истинно случайных чисел строится на сборе физической энтропии — теплового шума, атмосферных помех, квантового распада — и преобразовании этих хаотичных аналоговых сигналов в цифровые биты. В отличие от алгоритмических генераторов, аппаратные системы измеряют недетерминированные параметры окружающей среды и выдают последовательности, которые математически непредсказуемы и не содержат закономерностей.
Дальше — о том, как устроена эта технология, где она даёт сбой и как выбрать подход под вашу задачу.
Как работает TRNG: от физического хаоса к цифровым битам
Истинный генератор случайных чисел (TRNG) — его также называют аппаратным генератором случайных чисел (HRNG) — не подчиняется формуле. Он соединяет непредсказуемый физический мир и жёсткую логику цифровых систем, захватывая внешний источник энтропии и превращая его аналоговый сигнал в бинарный поток.
Ещё в 1951 году Джон фон Нейман предупреждал: «Всякий, кто задумывает получать случайные цифры арифметическими методами, разумеется, находится в состоянии греха».
Три распространённых источника энтропии
| Источник | Что измеряет | Пример устройства |
|---|---|---|
| Тепловой шум | Флуктуации напряжения от движения электронов в цепях | Secure Enclave в смартфонах (Apple A-серии, Google Tensor) |
| Атмосферный шум | Радиопомехи от природных явлений вроде молний | Выделенные RNG-серверы |
| Квантовые явления | Радиоактивный распад, флуктуации вакуума | ANU Quantum RNG, корпоративные серверы |

Конвейер прост: Физический источник → Датчик/Оцифровщик → Бинарный вывод. С одного конца входит «сырая» энтропия, с другого — чистые случайные биты.
TRNG против PRNG: детерминированный разрыв
Главное разделение в генерации случайных чисел проходит между физической энтропией и алгоритмической логикой.
| Свойство | TRNG (аппаратный) | PRNG (алгоритмический) | CSPRNG (гибрид) |
|---|---|---|---|
| Источник | Физическая энтропия | Математическая формула | Аппаратный сид + алгоритм |
| Предсказуем? | Нет | Да — если известен сид | Чрезвычайно сложно |
| Скорость | Ниже (блокирующий) | Очень высокая | Высокая |
| Воспроизводимость? | Нет | Да (один сид = тот же вывод) | Нет |
| Сценарий | Ключи шифрования, токены безопасности | Симуляции, игры | Продакшен-системы безопасности |
Когда PRNG подводят: мошенничество Hot Lotto
PRNG использует значение сида как стартовую точку для математической формулы. Вывод выглядит случайным, но полностью детерминирован. Если кто-то знает сид и формулу, он может предсказать каждое число.
Это не теория. В скандале с мошенничеством Hot Lotto инсайдер установил вредоносное ПО, которое заставляло PRNG использовать предсказуемый сид во время техобслуживания, — и подстроил джекпот в $16,5 млн.

Когда PRNG — правильный выбор
PRNG подходят для задач, где важны скорость и воспроизводимость. В симуляциях Монте-Карло учёным нужно прогонять одну и ту же последовательность многократно, чтобы сверять результаты. Поскольку можно переиспользовать один и тот же сид, симуляция остаётся согласованной — чего блокирующий TRNG дать не может.
Гибридное решение: CSPRNG
Большинство современных систем используют криптографически стойкий псевдослучайный генератор чисел (CSPRNG) — гибрид, который берёт немного истинной аппаратной энтропии для инициализации быстрого алгоритма. Так достигается непредсказуемость TRNG при скорости PRNG.
Отраслевой стандарт — NIST SP 800-90A, который определяет, как такие генераторы должны строиться для госсектора и промышленности.
Руководство разработчика: какую библиотеку выбрать
| Язык | Небезопасный (PRNG) | Защищённый (CSPRNG) |
|---|---|---|
| Python | random (Mersenne Twister) |
secrets (читает из /dev/urandom) |
| JavaScript | Math.random() |
crypto.getRandomValues() |
| Go | math/rand |
crypto/rand |
| Java | java.util.Random |
java.security.SecureRandom |
Правило: для всего, что связано с безопасностью, используйте secrets / crypto / SecureRandom. random / Math.random() — только для игр и симуляций.
TRNG в потребительском железе 2026 года
К 2026 году аппаратная энтропия перешла из корпоративных серверов в повседневные устройства. В чипы современных смартфонов встроены выделенные TRNG внутри Secure Enclave: они снимают тепловой шум прямо с процессора, чтобы генерировать ключи шифрования для FaceID, цифровых кошельков и защищённого обмена сообщениями.
Для корпоративной безопасности фронт — квантовая генерация случайных чисел. Такие системы, как у Австралийского национального университета, получают числа из квантовых флуктуаций вакуума — уровень случайности, который, вероятно, не смогут взломать даже будущие квантовые компьютеры.
Отбеливание: от «сырого» шума к чистым данным
«Сырая» энтропия редко равномерна. Тепловой датчик из-за температурного дрейфа может выдавать чуть больше единиц, чем нулей. Чтобы убрать смещение, данные проходят отбеливание (whitening) — обычно через XOR-операцию или криптографический хэш, — которое сглаживает закономерности и обеспечивает равномерное распределение.
Этот этап постобработки обязателен по NIST SP 800-90B для любого источника энтропии в сертифицированной системе.
Краткая история сбора хаоса
- 1927: Л. Г. К. Типпет опубликовал таблицу из 41 600 цифр, собранных вручную из переписных записей.
- 1955: RAND Corporation выпустила A Million Random Digits, используя машину с электронными импульсами.
- 2013: Скандал с Dual_EC_DRBG выявил, что АНБ встроило бэкдор в сертифицированный NIST генератор, что позволяло взламывать SSL-соединения. Этот инцидент подтолкнул отрасль к смешиванию энтропии из нескольких источников — никакого единого отказа.
Заключение
Истинно случайные числа — фундамент цифрового доверия. Для них нужно физическое «железо», которое связывает предсказуемый код и хаотичную реальность. Будь то тепловой шум в вашем телефоне или квантовые флуктуации в серверной, переход от псевдослучайности к аппаратно-подтверждённой энтропии критически важен для безопасности в 2026 году.
Разработчикам: используйте secrets (Python) или crypto.getRandomValues() (JavaScript), но никогда random или Math.random() для задач безопасности. Организациям: аппаратные TRNG больше не опциональны — это базовое требование для шифрования.
FAQ
Является ли внутренний таймер компьютера источником истинной случайности?
Нет. Таймер предсказуем и часто используется как сид PRNG именно потому, что меняется. Но если злоумышленник примерно знает, когда было сгенерировано число, он может сузить пространство вариантов. Истинная случайность требует измерения недетерминированных событий — интервалов между нажатиями клавиш, теплового шума — с последующим статистическим отбеливанием.
Может ли человек сгенерировать истинно случайную последовательность?
Люди плохо справляются со случайностью. Мы избегаем кластеров (вроде «1, 1, 1»), хотя они естественным образом встречаются в случайных наборах, и слишком часто переключаемся между вариантами. Статистические тесты легко выявляют такие закономерности, поэтому ввод человека допустим для инициализации, но недостаточен для критичных к безопасности задач.
Какие статистические тесты проверяют истинную случайность?
NIST Statistical Test Suite (STS) — золотой стандарт. Среди других фреймворков — тесты Dieharder и стандарт AIS 31. Эти тесты ищут повторяющиеся паттерны, длинные серии одинаковых битов и прочие аномалии, указывающие на смещение или предсказуемость.
Добавить комментарий