Использование случайного шума
Лучшим способом получить большое количество случайных битов является извлечение их из естественной случайности реального мира. Часто такой метод требует специальной аппаратуры, но этот трюк можно применить и в компьютерах.
Найдите событие, которое случается регулярно, но случайно: атмосферный шум, преодолевающий какой-то порог, ребенок, падающий, учась ходить. Измерьте интервал между одним подобным событием и событием, следующим за ним. Запишите. Измерьте временной интервал между вторым и третьим событиями. Снова запишите. Если первый временной интервал больше второго, выходным битом будет 1. Если второй интервал больше первого, то выходом события будет 0. Сделайте это снова для следующего события.
Бросьте стрелу дартс в перечень котировок Нью-Йоркской фондовой бирже в местной газете. Сравните котировку акции, в которую вы попали, с котировкой акции прямо над ней. Если больше та, в которую вы попали, выход равен 0, а если меньше - 1.
Подключите к компьютеру счетчик Гейгера, подсчитайте количество импульсов за фиксированный интервал времени и возьмите младший бит. Или измерьте время между последовательными тиками ticks. (Так как радиоактивный источник распадается, среднее время между последовательными тиками непрерывно увеличивается. Чтобы этого избежать, надо выбирать источник с достаточно длинным периодом полураспада - такой как плутоний. Если вы беспокоитесь о своем здоровье, можете внести соответствующие статистические поправки.)
Дж. Б. Эгнью (G. B. Agnew) предложил генератор реально случайных битов, который можно интегрировать в СБИС [21]. Это конденсатор металл-изолятор-полупроводник (metal insulator semiconduction capacitor, MISC). Два таких конденсатора помещаются рядом друг с другом, а случайный бит является функцией разности зарядов этих конденсаторов. Другой генератор случайных чисел генерирует поток случайных битов, используя нестабильность частоты свободно колеблющегося осциллятора [535]. Коммерческая микросхема от AT&T генерирует случайные числа, опираясь именно на это явление [67]. М. Гьюд (M. Gude) построил генератор случайных чисел, собирающий случайные биты из физических явлений, например, радиоактивного распада [668, 669]. Манфилд Рихтер (Manfield Richter) разработал генератор случайных чисел на базе температурного шума полупроводникового диода [1309].
Предположительно случайны временные интервалы между последовательными 2e4 излучениями света распадающегося атома ртути. Используйте. А лучше найдите полупроводниковую фирму, которая изготавливает микросхемы генераторов случайных чисел, их достаточно много.
Существует также генератор случайных чисел, использующий диск компьютера [439]. Он измеряет время, нужное для чтения блока диска, и использует изменения этого времени в качестве источника случайных чисел. Данные фильтруются, чтобы удалить структуру, вызванную квантованием, затем к векторам чисел применяется быстрое преобразование Фурье. Это устраняет смещение и корреляцию. Наконец, в качестве случайных битов используются спектральные углы для частот в диапазоне (0, p), нормализованные на единичный интервал. Большая часть изменений скорости вращения диска вызвана турбулентностью воздуха, которая и является источником случайности в системе. Хотя надо учесть следующее. Если вы выдаете на выход слишком много битов, то вы используете в качестве генератора случайных чисел быстрое преобразование Фурье и рискуете получить определенную предсказуемость. И лучше снова и снова читать один и тот же дисковый блок, чтобы вам не пришлось фильтровать структуру, источником которой является планировщик диска. Реализация такой системы позволяла получать около 100 битов в минуту [439].
Дата добавления: 2021-01-26; просмотров: 349;