Вопрос: Простой аппаратный RNG


Я сделал компромиссный комментарий к этот  вопрос о создании аппаратного RNG.

Кто-нибудь знает о каких-либо простых планах или может ли кто-нибудь описать простой аппаратный RNG и программное обеспечение для его вождения?

Пойдите в Radio Shack. Покупайте диод, резистор NTR, конденсатор и последовательный кабель. Отрежьте конец последовательного кабеля, который не подходит вашему компьютеру. Припаивайте диод и резистор последовательно между контактами DTR и DSR кабеля. Припаивайте конденсатор между контактами DSR и TXD. Напишите небольшую программу на C, чтобы сделать следующее: Установите DTR на 1. Запустите таймер. Контролируйте DSR до тех пор, пока он не перейдет к 1. Stop Timer. Вычислить сопротивление по истекшему времени. Извлеките несколько бит из этого значения, чтобы использовать их как часть случайного числа. Повторяйте до тех пор, пока не будет накоплено достаточное количество бит.


3


источник


Ответы:


Если у вас есть ящик Linux, у вас уже есть /dev/random,


2



Диодный выстрел-шум довольно хорош. Amplify, A / D конвертировать и образец.


2



На некоторых серверных материнских платах уже есть аппаратные генераторы случайных чисел (Intel делает некоторые). Это не шутка.


1



Действительно, не шутка:

(из Википедии)

«Микросхема микропроцессора Intel 80802 включала аппаратный RNG с использованием двух свободно работающих генераторов, один быстрый и один медленный. Источник теплового шума (шум без синфазного шума от двух диодов) используется для модуляции частоты медленного генератора, который затем запускает измерение быстродействующего осциллятора.Этот вывод затем откладывается с использованием этапа декорреляции типа фон Неймана (см. ниже). Скорость вывода этого устройства несколько меньше 100 000 бит / с. Этот чип был необязательным компонентом семейства чипсетов 840 который поддерживал более раннюю шину Intel. Он не входит в состав современных ПК.

Все микропроцессоры VIA C3 включали аппаратный RNG на процессорном чипе с 2003 года. Вместо использования теплового шума необработанные биты генерируются с использованием четырех генераторов freerunning, которые предназначены для работы с разной скоростью. Выходной сигнал двух из них XORed для управления смещением на третьем генераторе, выход которого синхронизирует выход четвертого осциллятора с получением исходного бита. Небольшие изменения температуры, характеристик кремния и местных электрических условий вызывают постоянные колебания скорости генератора и, таким образом, создают энтропию сырых бит. Чтобы дополнительно обеспечить случайность, на каждом чипе есть два таких RNG, каждый из которых расположен в разных средах и повернут на кремнии. Конечный результат - это смесь этих двух генераторов. Скорость подачи сырья составляет от десятков до сотен мегабит в секунду, а отбеленная скорость составляет несколько мегабит в секунду. Пользовательское программное обеспечение может получить доступ к генерируемому случайному битовому потоку с использованием новых инструкций, не имеющих привилегий машинного языка ».


1



Независимо от вашего внешнего источника, вам нужно очень внимательно следить за тем, чтобы отключить выход генератора и выполнять непрерывные проверки, чтобы ваш генератор не начал колебаться периодически по ряду причин. FIPS 140  содержит некоторые рекомендации.

Вот пример проекта  используя обратные смещенные транзисторы. Я рекомендую использовать 2n4124 части, которые могут быть задействованы примерно на 9,6 В (+ 5 В USB, удваивается, диод Шоттки) для достижения оптимальных результатов.


0