Компьютеры изо всех сил пытаются генерировать случайность, но новые методы могут в конечном итоге позволить нам генерировать действительно случайные числа.
Эти числа являются важной частью криптографических алгоритмов и научного моделирования, но компьютеры, предназначенные для выполнения задач с гарантированной воспроизводимостью, нелегко предсказуемы. Для некоторых приложений кажущейся случайности, которая может быть сгенерирована (называемой псевдослучайностью), достаточно, но в некоторых случаях описательный шаблон вывода может быть неадекватным.
Генераторы случайных чисел фактически генерируют числа путем выборки источников физической случайности, таких как радиоактивный распад и тепловой шум. Например, компания по интернет-безопасности Cloudflare использует сетку из 100 лавовых ламп, отслеживаемых компьютером с камерой, для генерации случайных чисел, поскольку воск в лампах продолжает менять форму неожиданными способами.
Аналогично, чип памяти DRAM, еще одна часть компонентов компьютера, может использоваться в качестве источника случайного шума. Этого можно достичь, намеренно запрашивая больше микросхем, чем было разработано производителем, и отслеживая процент произведенных дефектов. Однако использование DRAM таким образом для генерации случайных чисел замедляет работу остальной части компьютера.
Низа Бостанчи и ее коллеги из Университета экономики и технологии ТОББ в Анкаре, Турция, разработали способ преодоления этой проблемы. Они создали систему, которая уменьшает помехи между памятью, используемой для генерации случайных чисел, и памятью, используемой для запуска компьютера.
Разработанная система предсказывает, когда память будет освобождена, и тем временем генерирует большое количество случайных чисел. Если поставка пуста, ставятся в очередь новые запросы на случайное число с другими задачами программного обеспечения и назначаются приоритеты, чтобы избежать конфликтов.
В 186 тестовых сценариях система улучшила нормальную производительность компьютера на 17,9% и генерировала на 25,1% больше случайных чисел, чем предыдущая модель генерации случайных чисел DRAM.
“Мы все, большинство из нас, полагаемся на случайные числа, чтобы сохранить наши данные в Интернете в безопасности. Это важные части зашифрованных соединений, например онлайн-банкинг», — поясняет Джон Грэм-Камминг из Cloudflare. … но поскольку компьютеры совершенно предсказуемы и, следовательно, плохо генерируют случайные числа, причина случайности является … важной частью сохранения тайны онлайн-коммуникаций“.