Накопление случайности при помощи комбинирования различных генераторов псевдослучайных чисел | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №23 (418) июнь 2022 г.

Дата публикации: 15.06.2022

Статья просмотрена: 99 раз

Библиографическое описание:

Чайко, В. И. Накопление случайности при помощи комбинирования различных генераторов псевдослучайных чисел / В. И. Чайко. — Текст : непосредственный // Молодой ученый. — 2022. — № 23 (418). — С. 56-59. — URL: https://moluch.ru/archive/418/92714/ (дата обращения: 19.11.2024).



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

Ключевые слова: накопление случайности, генератор псевдослучайных чисел (ГПСЧ), комбинированный ГПСЧ, сложение по модулю 2, XOR

В своей предыдущей статье «Накопление случайности в генераторах псевдослучайных чисел», опубликованной 14 февраля 2022 года в данном журнале, я рассматривал способ увеличения случайности различных генераторов псевдослучайных чисел (ГПСЧ) при помощи логической функции «сложение по модулю 2» (XOR, «исключающее или», ⊕). В ней не рассматривался вариант накапливания случайности при помощи комбинирования различных ГПСЧ, чему и посвящена данная статья. [1]

Условно ГПСЧ можно представить как некий «механизм», получающий на входе энтропию, а выдающий псевдослучайные числа. [2] Графически схема ГПСЧ изображена на рисунке 1.

Графическая схема ГПСЧ

Рис. 1. Графическая схема ГПСЧ

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

Графическая схема ГПСЧ

Рис. 2. Графическая схема ГПСЧ

Различные ГПСЧ могут увеличивать случайность друг друга при помощи «перемешивания» сгенерированных ими чисел логической функцией ⊕. Таким образом, мы превращаем множество ГПСЧ в один большой ГПСЧ. Этот принцип схематично изображен на рисунке 3 (а). Объединяя все ГПСЧ в один, мы получаем один большой ГПСЧ, имеющий все причины «не случайности» всех ГПСЧ в него входящих. Наглядно это изображено на рисунке 3 (б).

Комбинированный ГПСЧ Комбинированный ГПСЧ

а)

б)

Рис. 3. Комбинированный ГПСЧ

Случайность ГПСЧ (S) рассчитывается по следующей формуле [1]:

Для доказательства данной гипотезы был проведен следующий опыт: на 5 ГПСЧ было осуществлено накопление случайности при помощи перемешивания от 1 до 11 чисел логической функцией XOR. Для эксперимента были выбраны следующие ГПСЧ: «rand» [3], «random_int» [4], «random_bytes» [5], «openssl_random_pseudo_bytes» [6], «uniqid» [7]. Результаты представлены в таблице 1.

Таблица 1

Результаты накопления случайности на различных ГПСЧ

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

Rand

Random_int

Random_bytes

openssl_random_pseudo_ bytes

uniqid

1

0,998791

0,99894

0,995726

0,995089

0,998686

2

0,899095

0,899844

0,899472

0,899605

0,898847

3

0,903935

0,90343

0,90306

0,926265

0,903837

4

0,901062

0,901256

0,900828

0,928027

0,901606

5

0,901522

0,901209

0,901109

0,93173

0,901887

6

0,901048

0,901427

0,900787

0,93374

0,901084

7

0,901026

0,901012

0,90012

0,935063

0,900913

8

0,901609

0,901019

0,900373

0,935453

0,901518

9

0,901332

0,900833

0,900379

0,936186

0,901094

10

0,901136

0,901741

0,900491

0,901031

0,900907

11

0,901407

0,901295

0,900348

0,899991

0,901212

Далее было осуществлено накопление случайности при помощи комбинирования ГПСЧ. В комбинировании участвовали следующие ГПСЧ: «rand» [3], «random_int» [4], «random_bytes» [5], «openssl_random_pseudo_bytes» [6], «uniqid» [7], а также ГПСЧ, встроенные в языки программирования С [8], C++ [9], C# [10], JavaScript [11], Pascal [12] и BASIC [13].

Накопление случайности на комбинированном ГПСЧ происходит по принципу добавления ГПСЧ: в каждом новом испытании добавлялся один новый генератор, после чего проходит вычисление случайности всей конструкции (комбинированного ГПСЧ). Данные представлены в таблице 2.

Таблица 2

Накопление случайности на комбинированном ГПСЧ

Добавляемый ГПСЧ

S добавляемого ГПСЧ

S

1

Rand

0,999337

0,999337

2

Random_int

0,999506

0,999547

3

Random_bytes

0,995126

0,998175

4

openssl_random_pseudo_bytes

0,995759

0,99762975

5

uniqid

0,998916

0,9980888

6

C

0,54151

0,922173167

7

C++

0,440747

0,918811571

8

C#

0,88822

0,915072

9

JavaScript

0,999309

0,924431666

10

Pascal

0,998633

0,9319596

11

BASIC

0,876855

0,934851818

На основе полученных данных были вычислены 2 параметра для каждого ГПСЧ: уровень накопленной случайности (ΔS) и коэффициент накопления случайности (k) по следующим формулам:

где: ΔS — уровень накопленной случайности, S 11 случайность из 11 строки таблицы, S 2 — случайность из 2 строки таблицы, k — коэффициент накопления случайности.

Значения S 2 и S 11 берутся в таблицах 1 и 2, индекс буквы S обозначает номер строки таблицы.

Результаты эксперимента представлены в таблице 3.

Таблица 3

Результаты проведенного эксперимента

Название ГПСЧ

Параметры ГПСЧ

S 11

S 2

ΔS

k

Rand

0,9014070

0,8990950

0,0023120

0,0002312

Random_int

0,9012950

0,8998440

0,0014510

0,0001451

Random_bytes

0,9003480

0,8994720

0,0008760

0,0000876

openssl_random_pseudo_ bytes

0,8999910

0,8996050

0,0003860

0,0000386

uniqid

0,9012120

0,8988470

0,0023650

0,0002365

Комбинированный

0,9348518

0,9995470

-0,0646952

-0,0064695

Согласно полученным данным, всем ГПСЧ, кроме комбинированного, удалось накопить случайность. Тем не менее, стоит отметить, что накопление случайности на комбинированном генераторе произойдет только при многократном увеличении числа ГПСЧ, что доказывает превосходство способа накопления случайности на одном генераторе при помощи ⊕.

Выводы:

  1. При комбинировании ГПСЧ происходит увеличение количества причин того, почему данный ГПСЧ не идеальный. Количество причин равно количеству причин всех входящих в него генераторов.
  2. Увеличение случайности при помощи комбинирования различных ГПСЧ менее эффективно, нежели накапливание случайности путем перемешивания сгенерированных чисел одним и тем же генератором логической функцией ⊕.

Литература:

  1. Чайко, В. И. Накопление случайности в генераторах псевдослучайных чисел. / В. И. Чайко. — Текст: непосредственный // Исследования молодых ученых: материалы ХXХII Международной научной конференции. — Казань: Молодой ученый, 2022. — С. 10–15. URL: https://moluch.ru/conf/stud/archive/418/16988/ (дата обращения: 26.05.2022).
  2. Смарт, Н. Криптография / Н. Смарт. — М.: Техносфера, 2005. — 528 c. — Текст: непосредственный.
  3. rand. — Текст: электронный // php.net: [сайт]. — URL: https://www.php.net/manual/ru/function.rand.php (дата обращения: 25.05.2022).
  4. random_int. — Текст: электронный // php.net: [сайт]. — URL: https://www.php.net/manual/ru/function.random-int.php (дата обращения: 25.05.2022).
  5. random_bytes. — Текст: электронный // php.net: [сайт]. — URL: https://www.php.net/manual/ru/function.random-bytes.php (дата обращения: 25.05.2022).
  6. openssl_random_pseudo_bytes. — Текст: электронный // php.net: [сайт]. — URL: https://www.php.net/manual/ru/function.openssl-random-pseudo-bytes.php (дата обращения: 25.05.2022).
  7. uniqid. — Текст: электронный // php.net: [сайт]. — URL: https://www.php.net/manual/ru/function.uniqid.php (дата обращения: 25.05.2022).
  8. ISO/IEC 9899:2018 Information technology — Programming languages — C. — Текст: электронный // https://www.iso.org: [сайт]. — URL: https://www.iso.org/standard/74528.html (дата обращения: 25.05.2022).
  9. C++. — Текст: электронный // C++: [сайт]. — URL: https://isocpp.org (дата обращения: 25.05.2022).
  10. Документация по C#. — Текст: электронный // Microsoft: [сайт]. — URL: https://docs.microsoft.com/ru-ru/dotnet/csharp (дата обращения: 25.05.2022).
  11. JavaScript.com by Pluralsight. — Текст: электронный // JavaScript.com: [сайт]. — URL: https://www.javascript.com (дата обращения: 25.05.2022).
  12. Система программирования PascalABC.NET. — Текст: электронный // PascalABC.NET: [сайт]. — URL: http://www.pascalabc.net (дата обращения: 25.05.2022).
  13. Liberty BASIC v4.5.1. — Текст: электронный // Liberty BASIC: [сайт]. — URL: https://www.libertybasic.com (дата обращения: 25.05.2022).
Основные термины (генерируются автоматически): накопление случайности, XOR, BASIC, логическая функция, помощь комбинирования, генератор, число, графическая схема, коэффициент накопления случайности, строка таблицы.


Ключевые слова

накопление случайности, XOR, генератор псевдослучайных чисел (ГПСЧ), комбинированный ГПСЧ, сложение по модулю 2

Похожие статьи

Накопление случайности в генераторах псевдослучайных чисел

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

Методы генерации псевдослучайных чисел

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

Разработка программного метода генерации псевдослучайных чисел

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

Математические основы и программная реализация генератора псевдослучайных последовательностей

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

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

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

Применение различных подходов к решению задач теории вероятностей при подготовке к экзаменам

Существуют различные методы решения задач теории вероятностей. Решение задач при помощи стандартных формул теории вероятностей (формулы сложения/умножения вероятностей/условной вероятности/ Байеса/ полной или не полной вероятности), решение методом п...

Алгоритм построения простых чисел

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

Цифровой генератор сигналов

В статье рассматривается алгоритм построения цифрового генератора сигналов, приведены примеры описания генератора гармонических функций, линейной, экспоненциальной, степенной функции, генератора ЛЧМ-сигнала.

Статистическое моделирование на ЭВМ непрерывных случайных величин средствами языка программирования R

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

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

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

Похожие статьи

Накопление случайности в генераторах псевдослучайных чисел

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

Методы генерации псевдослучайных чисел

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

Разработка программного метода генерации псевдослучайных чисел

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

Математические основы и программная реализация генератора псевдослучайных последовательностей

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

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

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

Применение различных подходов к решению задач теории вероятностей при подготовке к экзаменам

Существуют различные методы решения задач теории вероятностей. Решение задач при помощи стандартных формул теории вероятностей (формулы сложения/умножения вероятностей/условной вероятности/ Байеса/ полной или не полной вероятности), решение методом п...

Алгоритм построения простых чисел

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

Цифровой генератор сигналов

В статье рассматривается алгоритм построения цифрового генератора сигналов, приведены примеры описания генератора гармонических функций, линейной, экспоненциальной, степенной функции, генератора ЛЧМ-сигнала.

Статистическое моделирование на ЭВМ непрерывных случайных величин средствами языка программирования R

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

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

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

Задать вопрос