В вычислительной технике аппаратный генератор случайных чисел ( HRNG ), генератор истинных случайных чисел ( TRNG ), недетерминированный генератор случайных битов ( NRBG ), [1] или физический генератор случайных чисел [2] [3] — это устройство, которое генерирует случайные числа. числа из физического процесса , способного производить энтропию (другими словами, устройство всегда имеет доступ к физическому источнику энтропии [1] ), в отличие от генератора псевдослучайных чисел (PRNG, он же «детерминированный генератор случайных битов», DRBG), который использует детерминированный алгоритм [2] и нефизические недетерминированные генераторы случайных битов , которые не включают в себя аппаратное обеспечение, предназначенное для генерации энтропии. [1]
Природа предоставляет множество явлений, которые генерируют низкоуровневые, статистически случайные « шумовые » сигналы, включая тепловой и дробовой шум, джиттер и метастабильность электронных схем, броуновское движение , атмосферный шум . [4] Исследователи также использовали фотоэлектрический эффект с участием светоделителя , другие квантовые явления, [5] [6] [7] и даже ядерный распад (по практическим соображениям последний, как и атмосферный шум, не является жизнеспособный). [4] Хотя «классические» (неквантовые) явления не являются по-настоящему случайными, непредсказуемая физическая система обычно приемлема в качестве источника случайности, поэтому определения «истинный» и «физический» используются как взаимозаменяемые. [8]
Ожидается, что аппаратный генератор случайных чисел будет выдавать почти идеальные случайные числа (« полная энтропия »). [1] Физический процесс обычно не обладает этим свойством, и практический TRNG обычно включает в себя несколько блоков: [9]
Аппаратные генераторы случайных чисел обычно производят только ограниченное количество случайных битов в секунду. Чтобы увеличить доступную скорость выходных данных, они часто используются для генерации « начального числа » для более быстрого ГПСЧ. DRBG также помогает с «анонимизацией» источника шума (обелением идентифицирующих характеристик источника шума) и извлечением энтропии . При правильном выборе алгоритма DRBG ( криптографически безопасный генератор псевдослучайных чисел , CSPRNG) такая комбинация может удовлетворить требования федеральных стандартов обработки информации и стандартов Common Criteria . [10]
Аппаратные генераторы случайных чисел можно использовать в любом приложении, требующем случайности. Однако во многих научных приложениях дополнительная стоимость и сложность TRNG (по сравнению с генераторами псевдослучайных чисел) не дают значимых преимуществ. TRNG имеют дополнительные недостатки для науки о данных и статистических приложений: невозможность повторного запуска серии чисел, если они не сохранены, зависимость от аналогового физического объекта может скрыть неисправность источника. Поэтому TRNG в основном используются в приложениях, где их непредсказуемость и невозможность повторного запуска последовательности чисел имеют решающее значение для успеха реализации: в криптографии и игровых автоматах. [11]
Аппаратные генераторы случайных чисел в основном используются в области шифрования данных , например, для создания случайных криптографических ключей и одноразовых номеров , необходимых для шифрования и подписи данных. Помимо случайности, криптографические приложения предъявляют как минимум два дополнительных требования: [12]
Типичный способ выполнения этих требований — использование TRNG для создания криптографически безопасного генератора псевдослучайных чисел . [13]
Физические устройства использовались для генерации случайных чисел на протяжении тысячелетий, в первую очередь для азартных игр . В частности, игральные кости известны уже более 5000 лет (находятся в местах современного Ирака и Ирана), а подбрасывание монеты (таким образом производя случайный бит) датируется, по крайней мере, временами Древнего Рима . [14]
Первое задокументированное использование физического генератора случайных чисел в научных целях было сделано Фрэнсисом Гальтоном (1890 г.). [15] Он разработал способ выборки распределения вероятностей , используя обычные игральные кости. Помимо верхней цифры, Гальтон также смотрел на ближайшую к нему грань игральной кости, создавая таким образом 6*4 = 24 исхода (около 4,6 бит случайности). [14]
Кендалл и Бэбингтон-Смит (1938) [16] использовали быстро вращающийся 10-секторный диск, освещаемый периодическими вспышками света. Отбор проб проводил человек, который написал номер под лучом света на блокноте. Устройство использовалось для создания таблицы случайных чисел из 100 000 цифр (в то время такие таблицы использовались для статистических экспериментов, таких как сегодня PRNG). [14]
29 апреля 1947 года корпорация RAND начала генерировать случайные цифры с помощью «электронного колеса рулетки», состоящего из источника импульсов случайной частоты с частотой около 100 000 импульсов в секунду, стробируемого один раз в секунду с импульсом постоянной частоты и подаваемого на пятибитный двоичный счетчик. . Компания Douglas Aircraft построила оборудование, реализовав предложение Сесила Гастингса (RAND P-113) [17] относительно источника шума (скорее всего, это хорошо известное поведение миниатюрной газовой тиратронной трубки 6D4 при помещении в магнитное поле [18] ). Двадцать из 32 возможных значений счетчика были сопоставлены с 10 десятичными цифрами, а остальные 12 значений счетчика были отброшены. [19] Результаты длительного прогона машины RAND, отфильтрованные и протестированные, были преобразованы в таблицу, которая первоначально существовала только как колода перфокарт , но была позже опубликована в 1955 году в виде книги, 50 строк по 50 цифр. на каждой странице [14] ( Миллион случайных цифр со 100 000 нормальных отклонений ). Таблица RAND стала значительным прорывом в предоставлении случайных чисел, поскольку такая большая и тщательно подготовленная таблица никогда раньше не была доступна. Это был полезный источник для моделирования, моделирования и получения произвольных констант в криптографических алгоритмах, чтобы продемонстрировать, что константы не были выбраны злонамеренно (« ничего в моем рукаве »). [20]
С начала 1950-х годов исследования TRNG были очень активными: к 2017 году были опубликованы тысячи исследовательских работ и выдано около 2000 патентов. [14]
Со временем было предложено множество различных конструкций TRNG с большим разнообразием источников шума и методов оцифровки («сбора данных»). Однако практические соображения (размер, мощность, стоимость, производительность, надежность) диктуют следующие желательные характеристики: [21]
Стипчевич и Коч в 2014 году классифицировали физические явления, используемые для реализации TRNG, на четыре группы: [3]
ГСЧ на основе шума обычно следуют одной и той же схеме: источник генератора шума подается в компаратор . Если напряжение выше порогового значения, на выходе компаратора будет 1, в противном случае — 0. Случайное значение бита фиксируется с помощью триггера. Источники шума различаются и включают в себя: [22]
Недостатками использования источников шума для конструкции ГСЧ являются: [23]
Идея шума, основанного на хаосе, заключается в использовании сложной системы, которую трудно охарактеризовать, и наблюдении ее поведения с течением времени. Например, лазеры можно перевести в режим (нежелательный в других приложениях) с хаотически изменяющейся мощностью, при этом мощность детектируется с помощью фотодиода и дискретизируется компаратором. Конструкция может быть довольно маленькой, поскольку все элементы фотоники могут быть интегрированы в кристалл. Стипчевич и Коч характеризуют этот метод как «наиболее нежелательный», в основном из-за того, что хаотическое поведение обычно контролируется дифференциальным уравнением и не привносится никакой новой случайности, таким образом, существует вероятность того, что TRNG на основе хаоса создаст ограниченное подмножество. возможных выходных строк. [25]
TRNG, основанные на свободном генераторе (FRO), обычно используют один или несколько кольцевых генераторов (RO), выходные сигналы которых дискретизируются с использованием еще одного генератора. Поскольку инверторы , образующие RO, можно рассматривать как усилители с очень большим коэффициентом усиления, выход FRO демонстрирует очень быстрые фазовые колебания в частотной области. TRNG на основе FRO очень популярны из-за использования стандартной цифровой логики, несмотря на проблемы с доказательствами случайности и изменчивостью от чипа к чипу. [25]
Технология квантовой генерации случайных чисел хорошо зарекомендовала себя: до 2017 года было предложено 8 коммерческих продуктов квантового генератора случайных чисел ( QRNG ) .
Эрреро-Коллантес и Гарсия-Эскартен называют следующие случайные процессы «квантовыми»:
Для снижения затрат и повышения надежности квантовых генераторов случайных чисел были реализованы [37] онлайн-сервисы. [26]
Отказ TRNG может быть весьма сложным и незаметным, требующим проверки не только результатов (выходного потока битов), но и непредсказуемости источника энтропии. [8] Аппаратные генераторы случайных чисел должны постоянно контролироваться на предмет правильной работы, чтобы защититься от деградации источника энтропии из-за естественных причин и преднамеренных атак. FIPS Pub 140-2 и Специальная публикация NIST 800-90B [38] определяют тесты, которые можно использовать для этого.
Минимальный набор тестов в реальном времени, требуемый органами по сертификации, невелик; например, NIST в SP 800-90B требует всего два непрерывных теста на здоровье : [39]
Очень легко неправильно сконструировать аппаратные или программные устройства, которые пытаются генерировать случайные числа. Кроме того, большинство из них «ломаются» молча, часто производя все более случайные числа по мере их ухудшения. Режимы отказа в таких устройствах многочисленны, они сложны, медленны и их трудно обнаружить. Методы, сочетающие несколько источников энтропии, более надежны.
Поскольку многие источники энтропии зачастую весьма хрупки и выходят из строя незаметно, статистические тесты их выходных данных должны проводиться постоянно. Многие, но не все, такие устройства включают такие тесты в программное обеспечение, считывающее данные с устройства.
Как и другие компоненты криптографической системы, криптографический генератор случайных чисел должен быть спроектирован так, чтобы противостоять определенным атакам . Защита от этих атак затруднена без аппаратного источника энтропии. [ нужна цитата ]
Физические процессы в HRNG открывают новые возможности для атак. Например, TRNG на основе автономного генератора можно атаковать с помощью частотной инъекции. [40]
Существуют математические методы оценки энтропии последовательности символов. Ни один из них не является настолько надежным, чтобы на его оценки можно было полностью положиться; всегда существуют предположения, которые бывает очень трудно подтвердить. Они полезны, например, для определения того, достаточно ли энтропии в исходном пуле, но, как правило, они не могут отличить настоящий случайный источник от генератора псевдослучайных чисел. Этой проблемы можно избежать за счет консервативного использования аппаратных источников энтропии.