Найти в Дзене
Егор Курьянович

Как получают случайные числа?

Вчера стоял в очереди в рублёвском (за своим любимым творожком, конечно) и две продавщицы обсуждали, как в каком-то инстаграм-конкурсе использовали случайные числа для выбора победителя. Их очень волновал вопрос о том, насколько они на самом деле случайные. А ведь правда, насколько? Вот как бы вы выбрали что-нибудь наугад? По-настоящему наугад! Бросили монетку или кубик? А представьте что вам, как компьютеру, нужно принимать случайные решения часто и быстро. В информатике есть два с половиной подхода к созданию случайных чисел. Во-первых, физический. Нет, внутри компьютера нет монеточки (если вы конечно не заходите на Яндекс.Музыку), там используются специальные датчики для получения данных из окружающей среды: радиоактивный распад, радио и тепловые шумы. Или, например, данные от движения мышкой, что часто любят делать разработчики всяких банковских программ. Единственный минус — это небольшая скорость генерации таких данных. Во-вторых, вычислительный. Есть огромное число вариантов пол

Вчера стоял в очереди в рублёвском (за своим любимым творожком, конечно) и две продавщицы обсуждали, как в каком-то инстаграм-конкурсе использовали случайные числа для выбора победителя. Их очень волновал вопрос о том, насколько они на самом деле случайные. А ведь правда, насколько?

Вот как бы вы выбрали что-нибудь наугад? По-настоящему наугад! Бросили монетку или кубик? А представьте что вам, как компьютеру, нужно принимать случайные решения часто и быстро. В информатике есть два с половиной подхода к созданию случайных чисел.

Во-первых, физический. Нет, внутри компьютера нет монеточки (если вы конечно не заходите на Яндекс.Музыку), там используются специальные датчики для получения данных из окружающей среды: радиоактивный распад, радио и тепловые шумы. Или, например, данные от движения мышкой, что часто любят делать разработчики всяких банковских программ. Единственный минус — это небольшая скорость генерации таких данных.

Во-вторых, вычислительный. Есть огромное число вариантов получения из одного числа последовательности псевдослучайных чисел. Из-за того, что алгоритмы могут иметь ограничения, теоретически, такие случайные числа можно предсказать. На этом часто строятся всевозможные способы взлома, ну и название псевдослучайные говорит само за себя.

Ну и третий, гибридный вариант, когда основа для вычислений берется из физических данных. Это позволяет даже вычислительным способом создавать намного более случайные числа. Причем бывают очень интересные реализации этого метода. Например, компания Cloudflare, которая отвечает за безопасность почти 10% интернета, использует отдельную стену с лавовыми лампами, фотографируя которую они получают уникальные данные, которые потом используют для шифрования. Да-да, именно эта стена на фотографии к этому посту.

Так, и что там с этими вашими инстаграм-розыгрышами. Самый популярный сайт random.org использует три радиостанции в Копенгагене, Дублине и Болсбридже, которые получают данные из атмосферных шумов и создают по 3000 по-настоящему случайных чисел и, между прочим, зарабатывает на продаже больших объемов этих чисел.