Генератор псевдослучайных чисел - это алгоритм для генерации последовательности чисел, чьи свойства близки к свойствам истинно случайной последовательности. Никакой алгоритм не может генерировать полностью случайные числа, он может только аппроксимировать некоторые их свойства.
Есть возможность получить последовательность очень близкую к истинно случайной, посредством генератора истинно случайных чисел. Данное устройство генерирует числа, на основе хаотически изменяющихся параметров протекающего физического процесса. Но у данных устройств есть очень существенный недостаток - это маленькая скорость генерации чисел.
Очень важную роль последовательность случайных чисел (ПСЧ) играют в криптографии. Она используется для генерации секретных ключей, генерации гаммирующих последовательностей, формирования контрольных кодов и т.д. Очень важным является применение ПСЧ в азартных играх, поскольку результат игры не должен быть предсказуемым.
Поскольку генерация случайных чисел очень важна, то требования, предъявляемые к генератору, оказываются очень высокими. Возникает вопрос: как мы можем сказать, хорош генератор или нет? Для ответа на этот вопрос существует множество тестов . Данные тесты проверяют свойства последовательности, которые должны быть близки к свойствам истинно случайной последовательности. Один тест не может дать явный ответ на вышестоящий вопрос, поэтому для проверки ГПЧ используют несколько тестов.
Таким образом, целью моей работы было разработать приложение для проверки последовательностей на случайность. Для реализации данной системы я использовал наиболее известные тесты:
1. Графические тесты.
2. Тесты Д.Кнутта.
3. Тесты “DieHard”.
4. Тесты NIST.
Такой набор разных тестов даст наиболее ясный ответ о качестве ГПЧ. Используя графические тесты, пользователь сможет более точно увидеть поведение исследуемой последовательности и сделать вывод о её случайности.
А неподготовленный пользователь всегда сможет узнать результат исследования, используя оценочные тесты.
Основными задачами дипломной работы являются:
1. Изучить и проанализировать существующие методы тестирования псевдослучайных последовательностей.
2. Реализовать генератор псевдослучайной последовательности.
3. Создать приложение, где будут реализованы выбранные тесты.
4. Проверить на случайность реализованный генератор и сделать вывод о его качестве.
В данной дипломной работе было реализовано приложение на платформе .NET Framework, язык программирования - C#, интегрированная среда разработки Visual Studio 2017, проект Windows Forms. При запуске программы появляется окно (рис.19.).
В данном приложении есть возможность загрузки текстового файла с исходной последовательностью, которую хочет проверить пользователь. Также пользователь может сгенерировать псевдослучайную последовательность любой длины. Для этого необходимо в меню выбрать -Генераторы’" и выбрать любой из предложенных генераторов. После сделанного выбора, появится окно (рис.20.) с возможностью введения ключа и выбора длины последовательности.
После выбора генератора, пользователь может проверить его качество, используя перечень реализованных тестов, которые он может найти, выбрав в меню -Тестирование”. В данном списке пользователь может воспользоваться, как и графическими тестами, так и оценочными. При выборе графического теста, появится окно с графиком (рис.21.), по которому пользователь должен сам сделать вывод о качестве исследуемого генератора. Если пользователь не обладает возможностью сделать вывод по графическому тесту, то он сможет воспользоваться оценочным тестом. При выборе оценочного теста, появится окно (рис.22.) с готовым ответом.
Также есть возможность -Проверить генератор"". После нажатия на соответствующую кнопку, исследуемый генератор пройдет все имеющиеся оценочные тесты и выдаст результат (рис.23.).
С помощью данного приложения я проверил два генератора псевдослучайных чисел, реализованных ранее. По пройденным тестам можно сделать вывод о том, что оба генераторами обладают свойствами истинно случайной последовательности
1. Иванов, М. А. Криптографические методы защиты информации в компьютерных системах и сетях [Текст] / М. А. Иванов. — М.: Кудиц - Образ, 2001. — 363 с.
2. Чугунков, И. В. Теория, применение и оценка качества генераторов псевдослучайных последовательностей [Текст] / И. В. Чугунков, М. А. Иванов. — М.: Кудиц - Образ, 2003. — 240 с.