[Перевод] Собираем квантовый генератор случайных чисел
Цель этого проекта — создать настоящий квантовый генератор случайных чисел, то есть устройство, производящее на основе квантовых эффектов случайные числа. За реализацию случайности в нем будет отвечать ионизационная камера из пожарного извещателя.
Введение
Квантовая механика — это удивительная наука, выделяющаяся тем, что вносит поистине случайные процессы. К сравнению, в классической механике все перемещения определяются строго. Поэтому, хоть мы и не можем на практике предсказать итог броска монеты или игровых кубиков, теоретически можно в точности вычислить этот итог, если знать все задействованные в процессе силы. С другой стороны, результат единичных измерений в квантовой механике (насколько нам известно) наперед знать невозможно. В этом случае нам доступно лишь прогнозирование вероятности.
Задача проекта состоит в использовании этого свойства для создания настоящего квантового генератора случайных чисел. В качестве источника квантовой случайности я выбрал радиоактивный распад америция-241. Этот элемент используется в виде источника ионизации, а ионизационных камерах пожарных извещателей. По факту ионизационные камеры можно использовать непосредственно.
Принцип действия
Идея проста:
- Подать на ионизационную камеру напряжение и усилить ток.
- Измерить колебания тока, вызванные случайными флуктуациями радиоактивного распада.
- Преобразовать колебания тока в поток битов.
Дьявол же, как обычно, кроется в деталях. Мне потребовалось провести немало экспериментов, чтобы эта схема заработала.
Ионизационная камера
Такую камеру с Am-241 оказалось несложно достать на eBay всего за несколько долларов. Она состоит из металлического корпуса (1), центрального электрода (2) и электрода с америцием (3):
Америций-241 является источником альфа-излучения. Альфа-частицы (показаны зеленым) ионизируют воздух в камере и делают его слабопроводящим. При подаче напряжения между электродами и/или корпусом начинает протекать слабый ток. Его сила зависит от количества ионов в воздухе, которое, в свою очередь, зависит от количества распадов Am-241 в секунду. Радиоактивный распад — это lдействительно случайный процесс, в связи с чем ток должен иметь соответствующие колебания.
Предусилитель
Ток, протекающий через ионизационную камеру, очень мал. Чтобы повысить его до уровня, позволяющего выполнить измерение, я собрал предусилитель на биполярных транзисторах:
Для получения высокого тока транзисторы Q1 и Q2 сконфигурированы как пара Дарлингтона. Q3 привносит дополнительный этап усиления и вместе с R4 преобразует сигнал тока в напряжение относительно земли. R2 ограничивает максимум протекающего через Q1, Q2 и Q3 тока, поскольку даже небольшое его количество может привести к тому, что пара Дарлингтона станет полностью проводящей.
Эта схема очень чувствительна. Без экранирования она улавливает от всех окружающих устройств шум в 50 Гц:
А с должным экранированием производит сигнал со средним значением около 1.5В и колебанием порядка 100 мВ:
Фильтр низких частот
Чтобы избавиться от шумов, проходящих экранирование, и преобразовать выход преда с высоким сопротивлением в сигнал с низким сопротивлением, следующим этапом на пути сигнала будет активный фильтр низких частот. Для его проектирования я использовал очень удобный онлайн-калькулятор, а в качестве частоты среза установил 33Гц.
Компаратор
Если мы хотим использовать аналоговый выход фильтра в качестве случайного потока битов, то нам нужно преобразовать его в цифровой сигнал. Для этого в качестве компаратора я использую OpAmp.
Выход повышается, если входной сигнал (приходящий слева) оказывается выше опорного напряжения (поступающего снизу слева) и понижается, если ниже. Переключатель SW1 служит для запуска генерации опорного напряжения при запитывании цепи. Перемычка JP2 также, как R10, R11 и R12 используется для тонкой настройки генератора опорного напряжения. Все это я объясню подробнее чуть позже.
Журнал проекта
Собранный на макетной плате комплект работает. Светодиоды произвольно мигают, и у меня есть цифровой выход случайных бит с открытым стоком. Измерения тока очень чувствительны, поэтому экранирование ионизационной камеры и предусилителя очень важно. Без него на выходе получаем только шум в 50Гц.
Канал 2 показывает выходной сигнал измеренного тока за вычетом смещения постоянного тока. Поскольку сигнал достаточно медленный, мне пришлось использовать осциллограф в режиме постоянного тока и добавить собственный RC фильтр верхних частот для повышения надежности измерений.
Канал 1 показывает цифровой выход схемы. Он генерируется путем сравнения аналогового выхода с опорным напряжением при помощи триггера Шмидта.
Теперь мне нужно задокументировать эту рабочую схему и перенести ее уже на более постоянную макетную плату.
Корпус
Параллельно с проверкой работоспособности схемы и устранением последних багов я также работаю над корпусом для устройства. Он немного тесноват, но все необходимое вполне в нем умещается.
Примечание: используемый автором датчик дыма является общедоступным и вполне может быть куплен на eBay, AliExpress и некоторых отечественных ресурсах. При этом нужно учитывать, что степень активности используемого в нем америция составляет 0.9 МКи. Законом же максимально допустимое значение активности америция-241 для источников, не требующих лицензирования, установлено в пределах 0.29 МКи. Таким образом, заказ и применение подобных датчиков могут быть сочтены незаконными.