Генератор случайных чисел для всех лотерей мира

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

Псевдослучайные числа

Псевдослучайные числа являются альтернативой «истинным» случайным числам. Компьютер может использовать начальное значение и алгоритм для генерации чисел, которые кажутся случайными, но на самом деле предсказуемы. Компьютер не собирает случайные данные из окружающей среды.

Это не обязательно плохо в любой ситуации. Например, если вы играете в видеоигру, на самом деле не имеет значения, вызваны ли события, которые происходят в этой игре, «истинными» случайными числами или псевдослучайными числами. С другой стороны, если вы используете шифрование, вы не хотите использовать псевдослучайные числа, которые может угадать злоумышленник.

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

Для чего используются случайные числа

Случайные числа использовались в течение многих тысяч лет. Будь то подбрасывание монеты или бросание игральных костей, цель состоит в том, чтобы конечный результат оставался случайным. Генераторы случайных чисел в компьютере похожи – они пытаются достичь непредсказуемого случайного результата.

Генераторы случайных чисел полезны для разных целей. Помимо очевидных приложений, таких как генерация случайных чисел для азартных игр или создание непредсказуемых результатов в компьютерной игре, случайность важна для криптографии.

Криптография требует чисел, которые злоумышленники не могут угадать. Мы не можем просто использовать одни и те же числа снова и снова. Мы хотим генерировать эти числа очень непредсказуемым образом, чтобы злоумышленники не могли их угадать. Эти случайные числа важны для безопасного шифрования, независимо от того, шифруете ли вы свои собственные файлы или просто используете веб-сайт HTTPS в Интернете.

Почему эти числа действительно случайные?

Все очень просто. Наш генератор производит пинг сайта Гугл и получает результат в виде – 0.015733957290649 сек. (10−15 с). Для генерации случайных чисел мы используем не все число а только часть. Которая начинается с 10−9  степени. Эти числа не могут быть предусмотрены. Они абсолютно случайны. На создание этих чисел влияет тысяча, если не миллион факторов. Вот некоторые из них:

  • Скорость передачи команды генерации числа с вашего компьютера на на скрипт что сработает на хостинге
  • Скорость канала связи между хостингом и сайтом Гугл
  • Загруженность каналов связи между вами и хостингом где физически находится сайт, и между хостингом и сайтом Гугл
  • Загруженность процессора который выполняет данный скрипт на хостинге

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

Истинные случайные числа

Вы можете быть удивлены, как компьютер может генерировать случайное число. Откуда эта «случайность»? Если это всего лишь кусок компьютерного кода, разве не возможно, что числа, которые генерирует компьютер, могут быть предсказуемыми?

Чтобы сгенерировать «истинное» случайное число, компьютер измеряет некоторый тип физического явления, которое происходит за пределами компьютера. Например, компьютер может измерять радиоактивный распад атома. Согласно квантовой теории, нет никакого способа точно знать, когда произойдет радиоактивный распад, так что это, по сути, «чистая случайность» Вселенной. Злоумышленник не сможет предсказать, когда произойдет радиоактивный распад, поэтому он не будет знать случайное значение.

Например, компьютер может полагаться на атмосферный шум или просто использовать точное время нажатия клавиш на клавиатуре в качестве источника непредсказуемых данных или энтропии. Например, ваш компьютер может заметить, что вы нажали клавишу ровно через 0,23423523 секунды после 14:00. Соберите достаточно данных, связанных с этими нажатиями клавиш, и вы получите источник энтропии, который вы можете использовать для генерации «истинного» случайного числа. Вы не предсказуемая машина, поэтому злоумышленник не может угадать точный момент, когда вы нажимаете эти клавиши.

Устройство / dev / random в Linux , которое генерирует случайные числа, «блокирует» и не возвращает результат, пока не соберет достаточно энтропии, чтобы вернуть действительно случайное число.

Оцените статью