Физический генератор случайных чисел

QRBG121

Грешно было бы не упомянуть в этой теме генератор случайных чисел QRBG121, который по неизвестной причине однажды стал маскотом одной из имиджборд рунета. QRBG121 (Quantum Random Bit Generator), возможно, действительно, у кого-то вызывает умиление, но самое интересное скрывается внутри коробочки.

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

HotBits

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

После того, как случайные числа предоставляются клиенту, они немедленно удаляются из системы — одни и те же данные никогда не будут отправлены разным пользователям (если, конечно, вы доверяете HotBits).

Для получения еще большей надежности данных существует ресурс EntropyPool, который собирает и «миксует» случайные биты из разных источников, включая HotBits и random.org (этот ресурс, в свою очередь, «добывает» энтропию атмосферного радиошума). Люди, которые переживают за квантовую безопасность в максимальной степени, к вышеназванным ресурсам могут добавить онлайн-сервис Quantum Random Bit Generator.

«Истинные» против псевдослучайных чисел

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

Скорость, с которой может быть получена энтропия из естественных источников, зависит от измеряемых физических явлений. Таким образом, источники естественной «истинной» энтропии называются блокирующими  — они ограничены по скорости до тех пор, пока не будет собрано достаточно энтропии для удовлетворения спроса. В некоторых Unix-подобных системах, включая большинство дистрибутивов Linux , файл псевдоустройства / dev / random будет блокироваться до тех пор, пока из среды не будет собрана достаточная энтропия. Из-за такого поведения блокировки большие объемные операции чтения из / dev / random , такие как заполнение жесткого диска случайными битами, часто могут быть медленными в системах, использующих этот тип источника энтропии.

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

Некоторые системы используют гибридный подход, предоставляя случайность, полученную из естественных источников, когда она доступна, и возвращаясь к периодически обновляющимся программным криптографически безопасным генераторам псевдослучайных чисел (CSPRNG). Откат происходит, когда желаемая частота случайности чтения превышает способность естественного подхода к сбору данных, чтобы не отставать от спроса. Этот подход позволяет избежать ограниченного по скорости блокирования генераторов случайных чисел на основе более медленных и чисто экологических методов.

Хотя генератор псевдослучайных чисел, основанный исключительно на детерминированной логике, никогда не может рассматриваться как «истинный» источник случайных чисел в самом чистом смысле этого слова, на практике их обычно достаточно даже для требовательных приложений, критичных к безопасности. Действительно, тщательно разработанные и реализованные генераторы псевдослучайных чисел могут быть сертифицированы для критических с точки зрения безопасности криптографических целей, как в случае с алгоритмом тысячелистника и fortuna . Первый является основой / dev / random источника энтропии во FreeBSD , AIX , OS X , NetBSD и других. OpenBSD использует алгоритм псевдослучайных чисел, известный как .

В октябре 2019 года было отмечено, что внедрение генераторов квантовых случайных чисел (QRNG) в модели машинного обучения, включая нейронные сети и сверточные нейронные сети для случайного начального распределения веса и случайные леса для процессов разделения, оказало глубокое влияние на их возможности по сравнению с классический метод генераторов псевдослучайных чисел (ГПСЧ).

Прочие соображения

Случайные числа, равномерно распределенные между 0 и 1, можно использовать для генерации случайных чисел любого желаемого распределения, пропуская их через функцию обратного кумулятивного распределения (CDF) желаемого распределения (см. Выборка с обратным преобразованием ). Обратные функции CDF также называются квантильными функциями . Чтобы сгенерировать пару статистически независимых стандартных нормально распределенных случайных чисел ( x , y ), можно сначала сгенерировать полярные координаты ( r , θ ), где r 2 ~ χ 2 2 и θ ~ UNIFORM (0,2π) (см. Вставку –Преобразование Мюллера ).

Некоторые ГСЧ от 0 до 1 включают 0, но исключают 1, в то время как другие включают или исключают оба.

Выходные данные нескольких независимых RNG могут быть объединены (например, с помощью операции побитового XOR ), чтобы обеспечить объединенный RNG, по крайней мере, такой же хороший, как и лучший используемый RNG. Это называется .

Вычислительные и аппаратные генераторы случайных чисел иногда объединяют, чтобы отразить преимущества обоих типов. Вычислительные генераторы случайных чисел обычно могут генерировать псевдослучайные числа намного быстрее, чем физические генераторы, в то время как физические генераторы могут генерировать «истинную случайность».

Истинная случайность

Имея так много источников данных, логично задаться вопросом: а как в действительности проверить случайность бит?

Национальный институт стандартов и технологий США предложил «Пакет статистических тестов для случайных и псевдослучайных генераторов чисел для криптографических приложений». В его состав входят 15 статистических тестов, целью которых является определение меры случайности бит, порожденных либо аппаратными, либо программными генераторами.

Одни из самых строгих статистических тестов предложил профессор Джордж Марсалья из Университета штата Флорида. «Тесты diehard» включают 17 различных проверок, некоторые из них требуют очень длинных последовательностей: минимум 268 мегабайт.

Случайность можно проверить с помощью библиотеки TestU01, представленной Пьером Л`Экуйе и Ричардом Симардом из Монреальского университета, включающей классические тесты и некоторые оригинальные, а также посредством общедоступной библиотеки SPRNG.

Еще один полезный сервис для количественного измерения случайности — http://www.fourmilab.ch/random.

И не будем забывать про самый главный критерий — каждый следующий бит в последовательности случайных данных должен быть предсказан с вероятностью, не превышающей вероятность встретить динозавра на улице 😉

Бэкдоры

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

Сообщается, что АНБ вставило бэкдор в сертифицированный NIST криптографически безопасный генератор псевдослучайных чисел Dual EC DRBG . Если, например, с помощью этого генератора случайных чисел создается SSL-соединение, то, по словам Мэтью Грина, это позволит NSA определять состояние генератора случайных чисел и, таким образом, в конечном итоге иметь возможность читать все данные, отправленные через SSL-соединение. Несмотря на то, что было очевидно, что Dual_EC_DRBG был очень плохим генератором псевдослучайных чисел, возможно, задолго до того, как бэкдор АНБ был подтвержден в 2013 году, он активно использовался на практике до 2013 года, например, известной компанией по безопасности RSA Security . Впоследствии были обвинения в том, что RSA Security сознательно вставила бэкдор АНБ в свои продукты, возможно, как часть программы Bullrun . RSA отрицает намеренное использование бэкдора в своих продуктах.

Также было высказано предположение, что аппаратные ГСЧ могут быть тайно модифицированы, чтобы иметь меньшую энтропию, чем заявлено, что сделает шифрование с использованием аппаратного ГСЧ уязвимым для атак. Один такой метод, который был опубликован, работает путем изменения легирующей маски микросхемы, которую невозможно обнаружить с помощью оптического обратного проектирования. Например, для генерации случайных чисел в Linux считается неприемлемым использование аппаратного ГСЧ Intel RDRAND без смешивания вывода RDRAND с другими источниками энтропии, чтобы противодействовать любым бэкдорам в аппаратном ГСЧ, особенно после раскрытия программы NSA Bullrun. .

В 2010 году розыгрыш лотереи в США был сфальсифицирован директором по информационной безопасности Межгосударственной лотерейной ассоциации (MUSL), который тайно установил вредоносную программу- бэкдор на защищенный ГСЧ-компьютер MUSL во время планового обслуживания. Во время взломов человек выиграл общую сумму в 16 500 000 долларов, правильно угадав числа несколько раз в год.

Рандомизация адресного пространства (ASLR), защита от rowhammer и связанных атак на физическое оборудование микросхем памяти была признана VUSec неадекватной в начале 2017 года. Алгоритм случайных чисел, если он основан на регистре сдвига, реализованном на оборудовании, предсказуем при достаточно больших значениях p и может быть реконструирован с достаточной вычислительной мощностью ( взлом грубой силы ). Это также косвенно означает, что вредоносные программы, использующие этот метод, могут работать как на графических процессорах, так и на процессорах, если они закодированы для этого, даже с использованием графического процессора для нарушения ASLR на самом процессоре.

Придумываем свой алгоритм ГПСЧ

Мы можем взять последовательность каких-то чисел и брать от них модуль числа. Самый простой пример, который приходит в голову. Нам нужно подумать, какую последовательность взять и модуль от чего. Если просто в лоб от 0 до N и модуль 2, то получится генератор 1 и 0:

Эта функция генерит нам последовательность 01010101010101… и назвать ее даже псевдослучайной никак нельзя. Чтобы генератор был случайным, он должен проходить тест на следующий бит. Но у нас не стоит такой задачи. Тем не менее даже без всяких тестов мы можем предсказать следующую последовательность, значит такой алгоритм в лоб не подходит, но мы в нужном направлении.

А что если взять какую-то известную, но нелинейную последовательность, например число PI. А в качестве значения для модуля будем брать не 2, а что-то другое. Можно даже подумать на тему меняющегося значения модуля. Последовательность цифр в числе Pi считается случайной. Генератор может работать, используя числа Пи, начиная с какой-то неизвестной точки. Пример такого алгоритма, с последовательностью на базе PI и с изменяемым модулем:

Но в JS число PI можно вывести только до 48 знака и не более. Поэтому предсказать такую последовательность все так же легко и каждый запуск такого генератора будет выдавать всегда одни и те же числа. Но наш генератор уже стал показывать числа от 0 до 9.

Мы получили генератор чисел от 0 до 9, но распределение очень неравномерное и каждый раз он будет генерировать одну и ту же последовательность.

Мы можем взять не число Pi, а время в числовом представлении и это число рассматривать как последовательность цифр, причем для того, чтобы каждый раз последовательность не повторялась, мы будем считывать ее с конца. Итого наш алгоритм нашего ГПСЧ будет выглядеть так:

Вот это уже похоже на генератор псевдослучайных чисел. И тот же Math.random() — это ГПСЧ, про него мы поговорим чуть позже. При этом у нас каждый раз первое число получается разным.

Собственно на этих простых примерах можно понять как работают более сложные генераторы случайных числе. И есть даже готовые алгоритмы. Для примера разберем один из них — это Линейный конгруэнтный ГПСЧ(LCPRNG).

Квантовые флуктуации вакуума

Схематическое представление пространственно-временных отклонений от уровня невозмущенных вакуумных флуктуаций электрического поляИсточник

Вакуум, вопреки названию («vacuus» — пустой), истинно пустым считать нельзя, поскольку в нем в силу принципа неопределенности Гейзенберга беспрестанно рождаются и умирают виртуальные частицы — происходят так называемые квантовые флуктуации, колебания уровня энергии в единице объема пространства-времени.

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

Физики говорят, что не существует даже концепции того, как теоретически можно было бы разработать устройство для предсказаний колебаний энергии появления и аннигиляции виртуальных частиц — это одно из самых случайных событий, которое мы наблюдаем во Вселенной.

Осталось сделать этот генератор достаточно компактным и дешевым, чтобы начать его массовое использование.

Лучшие сервисы определения победителей в конкурсах в Инстаграм

Чаще всего для определения победителей конкурса в Инстаграм используют сервисы-генераторы случайных чисел. Вот самые популярные из них.

Youtogift

Это бесплатный онлайн-сервис для определения победителей в конкурсах комментариев и гивах. Позволяет проверить выполнены ли условия конкурса: лайк, подписка, комментарий. При розыгрыше можно указать учитывать все комментарии или только один. Для проведения розыгрыша перейдите на страницу: https://youtogift.com/createoneclick/standard. Нужно будет выбрать тип конкурса и вставить ссылку на конкурсный пост.

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

В завершении, сервис сгенирирует уникальную страницу, где будут показаны результаты конкурса и победитель. Это позволит сделать весь процесс проведения розыгрыша более прозрачным.

Giveaways.ru

Giveaways.ru — это один из самых популярных и удобных сервисов для определения победителей в Инстаграм. С ним можно проводить конкурсы репостов и фото, комментариев и «круговые» конкурсы.

* Круговой конкурс — это розыгрыш, организованный владельцами нескольких Инстаграм-аккаунтов. Они размещают на своих страницах одинаковое фото, под которым детально описывают условия участия и дают ссылки на других соорганизаторов. Участникам такого конкурса нужно лишь подписаться на каждого соорганизатора и дождаться подведения итогов.

Сервис платный — за проведение одного конкурса придётся заплатить 599 рублей. Если вы боитесь, что не сможете организовать розыгрыш своими силами, воспользуйтесь услугами администрации сервиса. За определённую сумму — от 4 000 до 15 000 рублей — они помогут вам разработать идею и условия конкурса, создать картинку и текст поста, прорекламировать контент в Инстаграм. В сумму входит техподдержка во время проведения розыгрыша и определение победителей.

Чтобы провести конкурс в Giveaways.ru, авторизуйтесь в сервисе с помощью аккаунта, в котором планируете проводить розыгрыш. После этого пополните баланс личного кабинета, выберите тип конкурса, пропишите условия и опубликуйте его. К дате завершения конкурса сервис автоматически определит победителей.

Рандомус2

Рандомус — это простой бесплатный сервис для генерации случайных чисел. Его можно использовать для определения победителей конкурсов в Инстаграмм, ВКонтакте и других соцсетях. Подходит для розыгрыша призов за лайки, репосты и комментарии.

Итоги в сервисе Рандомус2 подводятся один раз, изменить результаты после этого не получится.

Это интересно: Игры для подписчиков в Инстаграм

Генератор из углеродных нанотрубок

Существующие решения аппаратных и программных генераторов не особенно подходят для носимых устройств. В Northwestern предложили другой подход, сочетающий компактность с генерируемым тепловым шумом.

Исследователи построили генератор случайных чисел из статической ячейки памяти с произвольным доступом (SRAM), напечатанной специальными чернилами, содержащими полупроводниковые углеродные нанотрубки. Ячейка памяти использует флуктуации теплового шума для генерации случайных бит.

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

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

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

Бесплатные генераторы случайных чисел онлайн:

  1. Random.org – лучший способ выбрать победителя, если у вас есть доступ к нумерованному списку (например, электронная таблица с адресами электронной почты). На веб-сайте введите максимальное число (если у вас 125 участников, то 125) и нажмите, чтобы сгенерировать случайное число между 1 и 125. Затем вернитесь в свой список/электронную таблицу – полученный номер записи является вашим победителем. Также можно воспользоваться списком Randomizer, вставив в свой список. Если используется эта функция, перечень (имя/адрес электронной почты/запись в качестве победителя) будет отображаться в случайном порядке.
  2. Рандомус – быстрый и простой метод определения победителя в раздачах на всех площадках. Авторизация в сервисе производится с помощью электронной почты. После этого нужно загрузить данные конкурса и дождаться окончания срока его проведения. В день Х просто указываете количество рандомных чисел и задаете диапазон. Это можно сделать в специальной вкладке «Подведение итогов». Сайт быстро подсчитает количество лайков, репостов или комментариев и выдаст случайные числа, по которым и определяется победитель.
  3. Random Name Picker – удобный сервис для подведения итогов конкурса в Инстаграм в прямом эфире.  Просто нажмите на стрелку, вставьте список имен и нажмите, чтобы выбрать один наугад.
  4. GetComBot – простой рандомайзер для конкурса Инстаграм по комментариям. Просто введите свой адрес электронной почты и ссылку на пост Instagram – откроется новое окно браузера, и через некоторое время вы увидите список всех комментариев. Нажмите вкладку «Параметры», чтобы указать, должен ли победитель отмечать 0, 1, 2 или 3 друзей. Каждый комментарий будет отдельной записью в розыгрыше – если это только один комментарий, разрешенный для каждого участника, выберите кнопку «Уникальный по пользователю» вверху. Когда все будет готовы, нажмите кнопку «Выбрать победителя!».

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

Для начала присвойте каждой из действительных записей порядковый номер. Один из способов сделать это справедливо – назначить номер на основе порядка, в котором поступили операции. Как правило, этот момент обговаривается организатором вначале раздачи: просто попросите участников проставить свои номера по мере наполнения комментариев или лайков.

Затем перейдите в раздел Google.com и поиск «Генератор случайных чисел». Система выведет окно, которое попросит вас ввести минимальное и максимальное число для использования. Минимум должен быть первым номером, который вы назначили (вероятно, «1»), а максимум – это количество полученных записей. После того, как вы ввели эти номера, нажмите синюю кнопку «Generate».

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

Подведение итогов конкурса в Инстаграм: как объявить победителя?

Самым безопасным вариантом объявления победителя можно назвать – прямой эфир. Как уже было сказано, открытость – залог хорошей репутации и доверия аудитории к бренду. Чем прозрачней и помпезней будет обставлен финиш конкурса, тем меньше останется каверзных вопросов со стороны конкурентов и хейтеров.

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

Вот перечень популярных платных ресурсов для выдачи случайных чисел:

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

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

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

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

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

ChaosKey

Кейт Паккард, активный разработчик Debian, лидер проекта X.Org, создатель XRender, XComposite и XRandR, совместно с известным сторонником открытых данных, главой направления Linux-проектов Hewlett-Packard Бдейлом Гарби разработали недорогой, но надежный генератор случайных чисел ChaosKey.

Устройство с открытым исходным кодом ChaosKey 1.0 было представлено на конференции DeConf16 Debian. Цель разработки — добавить реальную энтропию генератору случайных чисел, обеспечить высокий уровень безопасности и снизить цену до минимума.

К ChaosKey невозможно получить удаленный доступ и нельзя перезаписать прошивку, даже когда устройство подключено по USB к компьютеру. Для этого вам необходимо получить физический доступ, вскрыть гаджет и соединить два контакта внутри.

Сам полнофункциональный RNG похож на маленькую флешку и занимает один USB-разъем. Конструкция платы минималистична — на ней фактически имеется только процессор и транзисторы для генерации шума. Скорость передачи случайных значений — около мегабайта в секунду.

И по поводу цены. Устройство можно заказать, но все схемы и прошивка выложены в открытый доступ — разработчики сами рекомендуют каждому создавать и совершенствовать ChaosKey.

Генератор квантовых случайных чисел из смартфона

В 2014 году Женевский университет отметился устройством QRNG, которое использует восьмимегапиксельную камеру смартфона Nokia N9.

Камера смартфона подсчитывает количество фотонов, попадающих на каждый отдельный пиксель. Источником света выступает обычный светодиод. Работа камеры и светодиода регулируется так, чтобы каждый пиксель в 8 МП камере обнаруживал около 400 фотонов за короткое время. Число фотонов на всех пикселях преобразуется в последовательность случайных чисел со скоростью 1,25 Гбит/сек.

Такая скорость — не рекорд. Еще в 2011 году Intel показал, что их процессорный генератор создает поток случайных чисел со скоростью около 3 Гбит/сек. Однако все компоненты QRNG могут быть интегрированы на чипе стоимостью в несколько долларов и легко добавлены в любые портативные электронные устройства, включая смартфоны.

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

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

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

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

Z1FFER

Еще один недорогой генератор случайных чисел с открытым исходным кодом, который придется по душе всем любителям DIY. Каждый может собрать и разобрать устройство, а также удостовериться, что в нем нет встроенных бэкдоров.

Z1FFER не является законченным продуктом и не поставляется с каким-либо ПО (авторы делятся лишь несколькими сценариями и инструкцией для начала работы). Он предназначен для работы на платформе arduino, однако не имеет подтвержденной надежности от взлома извне. Устройство в первую очередь для тех, кто хочет лично «пощупать» технологию генерации чисел с помощью железа.

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

Практическое применение и использование

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

Генераторы случайных чисел очень полезны при разработке моделирования методом Монте-Карло , поскольку отладке способствует возможность снова запустить ту же последовательность случайных чисел, начиная с того же случайного начального числа . Они также используются в криптографии — пока семя является секретным. Отправитель и получатель могут автоматически сгенерировать один и тот же набор чисел для использования в качестве ключей.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector