Использование случайного шума

Лучшим способом получить большое количество случайных битов является извлечение их из естественной случайности реального мира. Часто такой метод требует специальной аппаратуры, но этот трюк можно прим е-нить и в компьютерах.

Найдите событие, которое случается регулярно, но случайно: атмосферный шум, преодолевающий какой-то порог, ребенок, падающий, учась ходить. Измерьте интервал между одним подобным событием и событием, следующим за ним. Запишите. Измерьте временной интервал между вторым и третьим событиями . Снова за­пишите. Если первый временной интервал больше второго, выходным битом будет 1 . Если второй интервал больше первого, то выходом события будет 0. Сделайте это снова для следующего события.

Бросьте стрелу дартс в перечень котировок Нью-Йоркской фондовой бирже в местной газете . Сравните ко­тировку акции, в которую вы попали, с котировкой акции прямо над ней . Если больше та, в которую вы попали, выход равен 0, а если меньше - 1.

Подключите к компьютеру счетчик Гейгера, подсчитайте количество импульсов за фиксированный интервал времени и возьмите младший бит. Или измерьте время между последовательными тиками ticks. (Так как радио­активный источник распадается, среднее время между последовательными тиками непрерывно увеличивается . Чтобы этого избежать, надо выбирать источник с достаточно длинным периодом полураспада - такой как пл у-тоний. Если вы беспокоитесь о своем здоровье, можете внести соответствующие статистические поправки.)

Дж. Б. Эгнью (G. В. Agnew) предложил генератор реально случайных битов, который можно интегрировать в СБИС [21]. Это конденсатор металл-изолятор-полупроводник (metal insulator semiconduction capacitor, MISC). Два таких конденсатора помещаются рядом друг с другом, а случайный бит является функцией разности зар я-дов этих конденсаторов. Другой генератор случайных чисел генерирует поток случайных битов, используя н е-стабильность частоты свободно колеблющегося осциллятора [535]. Коммерческая микросхема от AT&T генери­рует случайные числа, опираясь именно на это явление [67]. М. Гьюд (М. Gude) построил генератор случайных чисел, собирающий случайные биты из физических явлений, например, радиоактивного распада [668, 669]. Манфилд Рихтер (Manfield Richter) разработал генератор случайных чисел на базе температурного шума полу­проводникового диода [1309].

Предположительно случайны временные интервалы между последовательными 2е4 излучениями света рас­падающегося атома ртути. Используйте. А лучше найдите полупроводниковую фирму, которая изготавливает микросхемы генераторов случайных чисел, их достаточно много .

Существует также генератор случайных чисел, использующий диск компьютера [439]. Он измеряет время, нужное для чтения блока диска, и использует изменения этого времени в качестве источника случайных чисел . Данные фильтруются, чтобы удалить структуру, вызванную квантованием, затем к векторам чисел применяется быстрое преобразование Фурье. Это устраняет смещение и корреляцию. Наконец, в качестве случайных битов используются спектральные углы для частот в диапазоне (0, я), нормализованные на единичный интервал.


Большая часть изменений скорости вращения диска вызвана турбулентностью воздуха, которая и является и с-точником случайности в системе. Хотя надо учесть следующее. Если вы выдаете на выход слишком много б и-тов, то вы используете в качестве генератора случайных чисел быстрое преобразование Фурье и рискуете пол у-чить определенную предсказуемость. И лучше снова и снова читать один и тот же дисковый блок, чтобы вам не пришлось фильтровать структуру, источником которой является планировщик диска . Реализация такой системы позволяла получать около 100 битов в минуту [439].