Jump to content

Генерация случайных чисел

(Перенаправлено из генераторов случайных чисел )

Игральные кости являются примером механического аппаратного генератора случайных чисел. При броске кубика выпадает случайное число от 1 до 6.

Генерация случайных чисел — это процесс, с помощью которого, часто с помощью генератора случайных чисел ( ГСЧ последовательность чисел или символов , которую невозможно предсказать лучше, чем случайным ), генерируется образом. Это означает, что конкретная последовательность результатов будет содержать некоторые закономерности, которые можно обнаружить задним числом, но невозможно предвидеть. Настоящие генераторы случайных чисел могут представлять собой аппаратные генераторы случайных чисел (HRNG), в которых каждое поколение является функцией текущего значения атрибута физической среды, которое постоянно меняется таким образом, что практически невозможно смоделировать. Это будет контрастировать с так называемой «генерацией случайных чисел», выполняемой генераторами псевдослучайных чисел (ГПСЧ), которые генерируют числа, которые только выглядят случайными, но на самом деле являются предопределенными - эти генерации можно воспроизвести, просто зная состояние ГПСЧ. [1]

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

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

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

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

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

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

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

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

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

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

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

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

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

Методы генерации [ править ]

Физические методы [ править ]

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

Физический генератор случайных чисел может быть основан на случайном атомном или субатомном физическом явлении, непредсказуемость которого можно объяснить законами квантовой механики . [4] [5] Источники энтропии включают радиоактивный распад , тепловой шум , дробовой шум , лавинный шум в стабилитронах , дрейф тактового сигнала , синхронизацию реальных движений головки чтения-записи жесткого диска и радиошум . Однако физические явления и инструменты, используемые для их измерения, обычно характеризуются асимметрией и систематическими отклонениями , из-за которых их результаты не являются абсолютно случайными. Экстрактор случайности , такой как криптографическая хэш-функция , может использоваться для достижения равномерного распределения битов из неравномерно случайного источника, хотя и с более низкой скоростью передачи данных.

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

Были разработаны различные творческие способы сбора этой энтропийной информации. Один из методов — запустить хеш-функцию для кадра видеопотока из непредсказуемого источника. Лаваранд использовал эту технику с изображениями ряда лавовых ламп . HotBits измерил радиоактивный распад с помощью трубок Гейгера-Мюллера . [9] в то время как Random.org использует вариации амплитуды атмосферного шума, записанные с помощью обычного радио.

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

Еще одним распространенным источником энтропии является поведение пользователей системы. Хотя люди по запросу не считаются хорошими генераторами случайности, они довольно хорошо генерируют случайное поведение в контексте игр со смешанной стратегией . [10] Некоторое компьютерное программное обеспечение, связанное с безопасностью, требует от пользователя выполнения длительной серии движений мыши или ввода с клавиатуры для создания достаточной энтропии, необходимой для генерации случайных ключей или инициализации генераторов псевдослучайных чисел. [11]

Вычислительные методы [ править ]

В большинстве случайных чисел, генерируемых компьютером, используются ГПСЧ — алгоритмы, которые могут автоматически создавать длинные серии чисел с хорошими случайными свойствами, но в конечном итоге последовательность повторяется (или использование памяти неограниченно увеличивается). Эти случайные числа хороши во многих ситуациях, но они не так случайны, как числа, генерируемые из электромагнитного атмосферного шума, используемого в качестве источника энтропии. [12] Серия значений, генерируемых такими алгоритмами, обычно определяется фиксированным числом, называемым начальным числом . Одним из наиболее распространенных ГПСЧ является линейный конгруэнтный генератор , который использует рекуррентный алгоритм.

для генерации чисел, где a , b и m — большие целые числа, и является следующим в X как серия псевдослучайных чисел. Максимальное количество чисел, которые может выдать формула, — модуль это m . Рекуррентное соотношение можно распространить на матрицы, чтобы они имели гораздо более длинные периоды и лучшие статистические свойства.. [13] Чтобы избежать определенных неслучайных свойств одного линейного конгруэнтного генератора, можно использовать несколько таких генераторов случайных чисел со слегка разными значениями коэффициента множителя a , с «главным» генератором случайных чисел, который выбирает из нескольких разные генераторы.

Простой метод генерации случайных чисел с помощью ручки и бумаги — это так называемый метод среднего квадрата, предложенный Джоном фон Нейманом . Несмотря на простоту реализации, его результаты имеют низкое качество. Он имеет очень короткий период и серьезные недостатки, такие как выходная последовательность, почти всегда сходящаяся к нулю. Недавнее нововведение — объединение среднего квадрата с последовательностью Вейля . Этот метод обеспечивает высококачественную продукцию в течение длительного периода. [14]

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

Качество, то есть случайность таких библиотечных функций, широко варьируется от полностью предсказуемого вывода до криптографически безопасного. Генератор случайных чисел по умолчанию во многих языках, включая Python, Ruby, R, IDL и PHP, основан на алгоритме Mersenne Twister и недостаточен для целей криптографии, как явно указано в документации языка. Такие библиотечные функции часто имеют плохие статистические свойства, а некоторые повторяют шаблоны уже после десятков тысяч испытаний. Они часто инициализируются с использованием компьютерных часов реального времени в качестве начального числа, поскольку такие часы являются 64-битными и измеряют секунды в наносекундах, что намного превосходит человеческую точность . Эти функции могут обеспечить достаточную случайность для определенных задач (например, видеоигр), но непригодны там, где требуется высококачественная случайность, например, в криптографических приложениях или статистике. [15]

В большинстве операционных систем доступны источники случайных чисел гораздо более высокого качества; например /dev/random в различных версиях BSD, Linux, Mac OS X, IRIX и Solaris или CryptGenRandom для Microsoft Windows. Большинство языков программирования, включая упомянутые выше, предоставляют средства доступа к этим высококачественным источникам.

Люди [ править ]

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

Постобработка статистические проверки и

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

Сгенерированные случайные числа перед использованием иногда подвергаются статистическим тестам, чтобы убедиться, что основной источник все еще работает, а затем подвергаются последующей обработке для улучшения их статистических свойств. Примером может быть TRNG9803. [18] Аппаратный генератор случайных чисел, который использует измерение энтропии в качестве аппаратного теста, а затем выполняет постобработку случайной последовательности с помощью потокового шифрования сдвигового регистра. Обычно сложно использовать статистические тесты для проверки сгенерированных случайных чисел. Ван и Николь [19] предложил метод статистического тестирования на основе расстояния, который используется для выявления слабых мест нескольких генераторов случайных чисел. Ли и Ван [20] предложил метод проверки случайных чисел на основе лазерных источников хаотической энтропии с использованием свойств броуновского движения.

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

Другие соображения [ править ]

Изменение распределения [ править ]

Равномерные распределения [ править ]

Большинство генераторов случайных чисел изначально работают с целыми числами или отдельными битами, поэтому для достижения «канонического» равномерного распределения между 0 и 1 требуется дополнительный шаг. Реализация не так тривиальна, как деление целого числа на его максимально возможное значение. Конкретно: [21] [22]

  1. Целое число, используемое при преобразовании, должно обеспечивать достаточное количество битов для требуемой точности.
  2. Сама природа математики с плавающей запятой означает, что точность тем выше, чем ближе число к нулю. Эта дополнительная точность обычно не используется из-за огромного количества требуемых битов.
  3. Ошибка округления при делении может исказить результат. В худшем случае предположительно исключенная граница может быть получена вопреки ожиданиям, основанным на математических вычислениях с действительными числами.

Основной алгоритм, используемый OpenJDK , Rust и NumPy , описан в предложении для STL C++ . Он не использует дополнительную точность и страдает от смещения только в последнем бите из-за округления до четного. [23] Другие числовые проблемы оправданы при сдвиге этого «канонического» равномерного распределения в другой диапазон. [24] Предлагаемый метод для языка программирования Swift утверждает, что везде используется полная точность. [25]

Равномерно распределенные целые числа обычно используются в таких алгоритмах, как перетасовка Фишера-Йейтса . Опять же, простая реализация может привести к смещению результата по модулю, поэтому необходимо использовать более сложные алгоритмы. Метод, который почти никогда не выполняет деление, был описан в 2018 году Дэниелом Лемиром: [26] На данный момент самым современным является «оптимальный алгоритм» 2021 года, вдохновленный арифметическим кодированием, разработанный Стивеном Кэноном из Apple Inc. [27]

Большинство ГСЧ от 0 до 1 включают 0, но исключают 1, тогда как другие включают или исключают оба.

Другие дистрибутивы [ править ]

Учитывая источник однородных случайных чисел, существует несколько методов создания нового случайного источника, соответствующего функции плотности вероятности . Один метод, называемый методом инверсии , включает в себя интегрирование до площади, большей или равной случайному числу (которое должно генерироваться между 0 и 1 для правильного распределения). Второй метод, называемый методом принятия-отклонения , включает в себя выбор значений x и y и проверку того, превышает ли функция x значение y. Если это так, значение x принимается. В противном случае значение x отклоняется и алгоритм пытается повторить попытку. [28] [29]

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

Отбеливание [ править ]

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

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

с низким расхождением альтернатива как Последовательности

Некоторые вычисления с использованием генератора случайных чисел можно суммировать как вычисление общего или среднего значения, например вычисление интегралов методом Монте-Карло . Для таких задач можно найти более точное решение с помощью так называемых последовательностей с низким расхождением , также называемых квазислучайными числами. Такие последовательности имеют определенную структуру, которая качественно заполняет пробелы; действительно случайная последовательность может (и обычно так и происходит) оставлять большие пробелы.

и Мероприятия демонстрации

Следующие сайты предоставляют образцы случайных чисел:

  • Страницы ресурсов SOCR содержат ряд практических интерактивных занятий и демонстраций генерации случайных чисел с использованием Java-апплетов.
  • Группа квантовой оптики АНУ генерирует случайные числа, полученные из квантового вакуума. Образцы случайных чисел доступны на странице исследований квантового генератора случайных чисел.
  • Random.org предоставляет случайные числа, полученные из случайного атмосферного шума.
  • Служба генератора квантовых случайных битов Института Руджера Бошковича собирает случайности из квантового процесса фотонной эмиссии в полупроводниках. Они предоставляют различные способы получения данных, включая библиотеки для нескольких языков программирования.
  • Группа из Тайюаньского технологического университета генерирует случайные числа, полученные с помощью хаотического лазера. Образцы случайных чисел доступны на их физическом сервисе генератора случайных чисел.

Бэкдоры [ править ]

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

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

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

В 2010 году розыгрыш лотереи в США был сфальсифицирован директором по информационной безопасности Ассоциации лотереи нескольких штатов (MUSL), который тайно установил вредоносное ПО с бэкдором на защищенный компьютер RNG MUSL во время планового обслуживания. [36] В ходе взломов мужчина за несколько лет выиграл общую сумму в 16 500 000 долларов.

См. также [ править ]

Ссылки [ править ]

  1. ^ Лугрин, Томас (2023), Малдер, Валентин; Мермуд, Ален; Кредиторы, Винсент; Телленбах, Бернхард (ред.), «Генератор случайных чисел», Тенденции в области защиты данных и технологий шифрования , Cham: Springer Nature Switzerland, стр. 31–34, doi : 10.1007/978-3-031-33386-6_7 , ISBN  978-3-031-33386-6
  2. ^ random(4) Linux программиста Руководство – Специальные файлы
  3. ^ arc4random(3) OpenBSD по функциям библиотеки Руководство
  4. ^ Эрреро-Коллантес, Мигель; Гарсиа-Эскартин, Хуан Карлос (2016). «Квантовые генераторы случайных чисел». Обзоры современной физики . 89 : 015004. arXiv : 1604.03304 . дои : 10.1103/RevModPhys.89.015004 . S2CID   118592321 .
  5. ^ Ячак, Марцин М.; Йозвяк, Петр; Немчук, Якуб; Яцак, Януш Э. (2021). «Квантовые генераторы случайных чисел» . Научные отчеты . 11 (1): 16108. doi : 10.1038/s41598-021-95388-7 . ПМЦ   8352985 . ПМИД   34373502 .
  6. ^ Ли, Пу; Ван, Юн-Цай; Чжан, Цзянь-Чжун (13 сентября 2010 г.). «Полностью оптический быстрый генератор случайных чисел» . Оптика Экспресс . 18 (19): 20360–20369. Бибкод : 2010OExpr..1820360L . дои : 10.1364/OE.18.020360 . ISSN   1094-4087 . ПМИД   20940928 .
  7. ^ Ли, Пу, Юаньюань; Лю, Сянлянь; Чжан, Цзяньго; Го, Яньцян, Юцай (15 июля 2016 г.). Буквы по оптике . 41 (14): 3347–3350. Бибкод : 2016OptL... doi : 10.1364 OL.41.003347 . ISSN   1539-4794 . PMID   2909061 . /   . 41.3347L
  8. ^ Ван, Аньбанг; Ли, Пу; Чжан, Цзяньго; Чжан, Цзяньчжун; Ли, Лей; Ван, Юньцай (26 августа 2013 г.). «Высокоскоростной физический генератор случайных битов в реальном времени 4,5 Гбит/с» . Оптика Экспресс . 21 (17): 20452–20462. Бибкод : 2013OExpr..2120452W . дои : 10.1364/OE.21.020452 . ISSN   1094-4087 . ПМИД   24105589 . S2CID   10397141 .
  9. ^ Уокер, Джон. «HotBits: настоящие случайные числа» . Проверено 27 июня 2009 г.
  10. ^ Халприн, Ран; Наор, Мони . «Игры на извлечение случайности» (PDF) . Институт науки Вейцмана . Архивировано из оригинала (PDF) 7 августа 2011 г. Проверено 27 июня 2009 г.
  11. ^ Фонд TrueCrypt. «Урок для начинающих по TrueCrypt, часть 3» . Проверено 27 июня 2009 г.
  12. ^ «RANDOM.ORG – Служба истинно случайных чисел» . www.random.org . Проверено 14 января 2016 г.
  13. ^ «Генератор псевдослучайных чисел большой размерности» . Проверено 21 ноября 2018 г.
  14. ^ Видынски, Бернар (19 мая 2020 г.). «ГСЧ последовательности Вейля среднего квадрата». arXiv : 1704.00358 [ cs.CR ].
  15. ^ Мацумото, М.; Нисимура, Т. (1998). «MersenneTwister: равнораспределенный равнораспределенный равномерный генератор псевдослучайных чисел A623». ACM-транзакции по моделированию и компьютерному моделированию . 8 (1): 3–30. CiteSeerX   10.1.1.215.1141 . дои : 10.1145/272991.272995 . S2CID   3332028 .
  16. ^ В. А. Вагенаар (1972). «Генерация случайных последовательностей людьми: критический обзор литературы». Психологический вестник . 77 (1): 65–72. CiteSeerX   10.1.1.211.9085 . дои : 10.1037/h0032060 .
  17. ^ В. А. Вагенаар (1972). «Генерация случайных последовательностей людьми: критический обзор литературы». Психологический вестник . 77 (1): 65–72. CiteSeerX   10.1.1.211.9085 . дои : 10.1037/h0032060 .
  18. ^ Домстедт, Б. (2009). «TRNG9803 Генератор истинных случайных чисел» . Производитель: www.TRNG98.se.
  19. ^ Ван, Юнге (2014). «Статистические свойства псевдослучайных последовательностей и эксперименты с PHP и Debian OpenSSL». Компьютерная безопасность – ESORICS 2014 . Конспекты лекций по информатике. Том. 8712. Гейдельберг: Springer LNCS. стр. 454–471. дои : 10.1007/978-3-319-11203-9_26 . ISBN  978-3-319-11202-2 .
  20. ^ Ли, Пу; И, Сяоган; Лю, Сянлянь; Ван, Юньцай; Ван, Юнге (11 июля 2016 г.). «Броуновские свойства движения оптоэлектронных генераторов случайных битов на основе лазерного хаоса» . Оптика Экспресс . 24 (14): 15822–15833. Бибкод : 2016OExpr..2415822L . дои : 10.1364/OE.24.015822 . ISSN   1094-4087 . ПМИД   27410852 .
  21. ^ Гуалар, Ф. (2020). «Генерация случайных чисел с плавающей запятой путем деления целых чисел: практический пример». Вычислительная наука – ICCS 2020 . ICCS. Конспекты лекций по информатике. Том. 12138. стр. 15–28. дои : 10.1007/978-3-030-50417-5_2 . ISBN  978-3-030-50416-8 . S2CID   219889587 .
  22. ^ Кэмпбелл, Тейлор Р. (2014). «Равномерные случайные числа с плавающей запятой: как генерировать число двойной точности с плавающей запятой в [0, 1] равномерно случайным образом с учетом однородного случайного источника битов» . Проверено 4 сентября 2021 г.
  23. ^ «Новая спецификация для std::generate_canonical» . www.open-std.org .
  24. ^ Гуалар, Фредерик (июль 2021 г.). «Извлечение случайных чисел с плавающей запятой из интервала» . ХЭЛ . Проверено 4 сентября 2021 г.
  25. ^ НевинБР. «[stdlib] Улучшения случайных чисел с плавающей запятой от NevinBR · Запрос на извлечение № 33560 · apple/swift» . Гитхаб .
  26. ^ Лемир, Дэниел (23 февраля 2019 г.). «Быстрая генерация случайных целых чисел за интервал». ACM-транзакции по моделированию и компьютерному моделированию . 29 (1): 1–12. arXiv : 1805.10941 . дои : 10.1145/3230636 . S2CID   44061046 .
  27. ^ «Оптимальный алгоритм для ограниченных случайных целых чисел от Stephentyrone · Pull Request #39143 · apple/swift» . Гитхаб .
  28. ^ MathWorks. «Общие методы генерации» . Проверено 13 октября 2011 г. [ постоянная мертвая ссылка ]
  29. ^ Группа числовых алгоритмов. «G05 – Генераторы случайных чисел» (PDF) . Руководство по библиотеке НАГ, Марк 23 . Проверено 9 февраля 2012 г.
  30. ^ Мэтью Грин (18 сентября 2013 г.). «Многие недостатки Dual_EC_DRBG» .
  31. ^ Мэтью Грин (20 сентября 2013 г.). «RSA предупреждает разработчиков не использовать продукты RSA» .
  32. ^ «Мы не используем бэкдоры в наших криптопродуктах, — сообщает RSA клиентам» . Арс Техника . 20 сентября 2013 г.
  33. ^ «Исследователи могут внедрить необнаружимый троян в процессоры Intel Ivy Bridge» . Арс Техника . 18 сентября 2013 г.
  34. ^ Теодор Цо. «Я так рад, что устоял перед давлением со стороны инженеров Intel, заставивших /dev/random полагаться только на инструкцию RDRAND» . Гугл Плюс.
  35. ^ Теодор Цо. «Re: [PATCH] /dev/random: на многих архитектурах недостаточно энтропии» . ЛВН.
  36. ^ Нестель, М.Л. (7 июля 2015 г.). «Внутри крупнейшей лотереи всех времен» . Ежедневный зверь . Проверено 10 июля 2015 г.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ad9453defac44afe7821687dd0b811fb__1719033600
URL1:https://arc.ask3.ru/arc/aa/ad/fb/ad9453defac44afe7821687dd0b811fb.html
Заголовок, (Title) документа по адресу, URL1:
Random number generation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)