Тип работы:
Предмет:
Язык работы:


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

Работа №46660

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы54
Год сдачи2018
Стоимость4330 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
406
Не подходит работа?

Узнай цену на написание


Введение 3
Глава 1. Предварительные сведения 6
Генераторы случайных чисел 6
Генераторы псевдослучайных чисел 9
Определение свойств случайных последовательностей 11
Глава 2. Генератор «Курсор» 15
Обоснование случайности 15
Извлечение случайной последовательности из траектории 17
Глава 3. Постобработка 24
Хеш-функции 25
Улучшение свойств случайных последовательностей при помощи хеш-функции MD5 27
Увеличение длины случайной последовательности при помощи хеш-функции MD5 28
Использование случайных последовательностей в качестве зерна для ГПСЧ 29
Заключение 35
Список использованной литературы и интернет - ресурсов 37
Приложение 1. Методика тестирования 40
Приложение 2. Листинг программы

Данная работа посвящена генерации и исследованию свойств случайных последовательностей. Объектом исследования являются случайные последовательности, а предметом - способы их генерации и свойства, получаемых последовательностей.
Несмотря на то, что первые приспособления для генерации случайных чисел (игральные кости) появились несколько тысяч лет назад, на сегодняшний день задача генерации случайных чисел, а особенно применимых в криптографии, все еще остается открытым вопросом: не существует единого подхода для создания генераторов случайных чисел, каждый день создаются новые генераторы или открываются новые свойства уже известных.
Целью данной работы является создание собственного криптографически стойкого генератора случайных чисел: программная реализация генератора, анализ получаемых случайных
последовательностей и поиск способов улучшения их качества. Для достижения этой цели были поставлен и ряд задач: проанализировать уже имеющиеся генераторы случайных чисел, изучить методы определения свойств случайных последовательностей и улучшения качества последовательностей. В качестве источника случайности было выбрано перемещение курсора мыши, поэтому среди задач был и поиск способа извлечения случайности из вышеназванного процесса.
Случайная последовательность - набор независимых друг от друга элементов, подчиняющихся заданному распределению (чаще всего равномерному). На сегодняшний день случайные последовательности нашли широкое применение в информатике и информационных технологиях: они используются в математическом моделировании, при проведении игр, например онлайн-лотерей, для вычисление вероятностных алгоритмов. Но особую роль случайные последовательности играют в криптографии: генерация паролей, ключей шифрования, простых чисел и многое другое. Если для некоторых задач достаточно, чтобы последовательность подчинялась заданному распределению, то для нужд криптографии необходимо, чтобы последовательности были истинно случайными или криптографически стойкими: задача предсказать следующий бит должна быть трудно разрешимой или неразрешимой вовсе.
В рамках данной работы был реализован генератор случайных чисел, использующий перемещение курсора мыши в качестве источника случайности. В дальнейшем разработанный генератор называется генератором «Курсор». Были проанализированы способы улучшения качеств полученных с помощью генератора «Курсор» последовательностей. Показано, что последующая обработка с помощью хеш-функции MD5 улучшает свойства последовательности. Так же были реализованы и проанализированы криптографически стойкие генераторы Blum-Blum-Shub (BBS) и Blum-Micali. Для инициализации генераторов использовались последовательности, полученные при помощи генератора «Курсор». Показано, что наилучшими свойствами обладает генератор Blum-Blum-Shub. Для работы с генераторами так же были реализованы методы модульной арифметики: быстрое возведение в степень, поиск наибольшего общего делителя, проверка чисел на простоту.
Рассматриваемые в работы методы генерации случайных последовательностей были реализованы в рамках одного приложения на языке C# с использованием платформы UWP (Universal Windows Platform). Выбор в пользу языка C# и платформы UWP был сделан исходя из того, что итоговый продукт предполагается использовать на персональных компьютерах, где ведущей операционной системой является Windows. Язык C# является нативным языком для Windows, то есть лучше всего подходит для разработки приложений для этой ОС. Платформа UWP же позволяет создавать приложение с удобным графическим интерфейсом и обеспечивает возможность запуска приложения на любом устройстве, где установлено ядро Windows10: персональные компьютеры, планшетные компьютеры, смартфоны.
Работа состоит из трех глав. В первой главе рассматриваются способы генерации истинно случайных и псевдослучайных последовательностей, проводится анализ положительных и отрицательных свойств каждого генератора. Во второй главе рассмотрен процесс создания генератора «Курсор» на основе перемещения курсора мыши. Приводятся способы перевода случайной траектории в двоичную последовательность. Третья глава посвящена постобработке полученных последовательностей с целью улучшения их свойств. Также в третьей главе представлено описание криптографически стойких генераторов, которые используют случайные последовательности для инициализации. В приложении 1 описан способ тестирования генератора «Курсор», а в приложении 2 приведен листинг программы.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате работы были проанализированы имеющиеся на данный момент времени способы генерации истинно случайных и псевдослучайных последовательностей. Было установлено, что генераторы случайных последовательностей являются криптографически стойкими, потому что они используют случайность окружающего мира: радиоактивный распад, шумы в атмосфере, радиоволны - эти процессы являются непредсказуемыми и неповторимыми. Генераторы псевдослучайных чисел являются надежными, если они основаны на трудно вычислимых задачах: факторизация числа, дискретный логарифм.
Были проанализированы и методы определения качеств случайных последовательностей. Сделан вывод, что серия тестов NIST лучше всего подходит для тестирования двоичных последовательностей произвольной длины: большинство тестов требует последовательность длиной всего 100 бит.
В результате работы был реализован собственный генератор случайных чисел - генератор «Курсор», использующий перемещения курсора мыши в качестве источника случайности. В работе показано, что процесс перемещения курсора можно считать случайным. Были проанализированы различные способы перевода координат на траектории в двоичную последовательность и выбран вариант, который дает наилучшие результаты, - сложение координат по модулю 256.
Исследованы способы последующей обработки последовательностей, получаемых с помощью генератора «Курсор» и показано, что после обработки хеш-функцией MD5 последовательности стали сравнимы с последовательностями, генерируемыми с помощью генераторов истинно случайных последовательностей, например с генератором Random.org. Но была выявлена проблема: генерация длинных случайных последовательностей требует больших усилий пользователя, что делает этот метод малопригодным для генерации длинных последовательностей.
Для генерации длинных последовательностей были реализованы криптографически стойкие генераторы Blum-Micali, Blum-Blum- Shub(BBS). Генератор Blum-Micali показал не очень хорошие статистические свойства, чего нельзя сказать о генераторе BBS, что позволяет рекомендовать его для генерации длинных последовательностей псевдослучайных чисел. Для работы генераторов использованы созданные в рамках работы функции модульной арифметики: быстрое возведение в степень, проверка чисел на простоту и поиск наибольшего общего делителя.
Таким образом, результатом работы является программа - генератор случайных последовательностей. Для генерации коротких случайных последовательностей используется генератор «Курсор», переводящий перемещение курсора мыши в двоичную последовательность. Для генерации же длинных последовательностей рекомендуется использовать генератор BBS. Для инициализации генератора применяются последовательности, полученные с помощью генератора «Курсор». Оба генератора: генератор «Курсор» и BBS показывают результаты сравнимые с истинно случайным генератором.



1. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. 2-е изд. М.: Триумф, 2002.
2. Генераторы случайных и псевдослучайных последовательностей.
Статистические тесты. Криптографически безопасные генераторы псевдослучайных последовательностей // URL:
http://www.nrjetix.com/fileadmin/doc/publications/Lectures_security/Lecture2.pdf (дата обращения: 11.06.2018).
3. HotBits: Genuine random numbers, generated by radioactive decay // URL: http://www.fourmilab.ch/hotbits/ (дата обращения: 11.06.2018).
4. Математика криптографии и теория шифрования // Национальный
Открытый Университет «ИНТУИТ» URL:
https://www.intuit.ru/studies/courses/552/408/info(дата обращения: 11.06.2018).
5. Random.org// URL: https://random.org/(дата обращения: 11.06.2018).
6. Слеповичев И.И. Генераторы псевдослучайных чисел. Учебное
пособие // Официальный сайт Саратовского национального исследовательского государственного университета имени Н. Г. Чернышевского. URL:
https://www.sgu.ru/sites/default/files/textdocsfiles/2017/10/04/slepoviche v_i.L_generatory_psevdosluchaynyh_chisel_2017.pdf (дата обращения: 11.06.2018).
7. Садыков А. Р. Оценка качества генераторов псевдослучайных
последовательностей // Казанский (Приволжский) федеральный университет URL:
https ://kpfu.ru/student_diplom/10.160.178.20_245435 8_F_Diplom Sa
dykov.pdf(дата обращения: 11.06.2018).
8. A statistical test suite for random and pseudorandom number generators for cryptographic applications. NIST Special Publications 800-22. Revision 1.a. April 2010.
9. Кнут, Д Искусство программирования. т. 2. Получисленные
алгоритмы. 3 изд. М.: ИД «Вильямс», 2007.
10. Потий А., Светлана Орлова С., Гриненко С. Статистическое
тестирование генераторов случайных и псевдослучайных чисел с использованием набора статистических тестов NIST STS // Правове, нормативне та метролопчне забезпечення системи захисту
шформацн в УкрашЁ 2001. №2. С. 206-214.
11. Гончарук В. С., Атаманов Ю. С., Гордеев С. Н. Методы генерации случайных чисел // Молодой ученый. 2017. №8. С. 20-23.
12. Практическая криптология. Леция 11. Лектор: Сушко С.А. //
Официальный сайт Государственного высшего учебного заведения «Национальный горный университет», Украина. URL: й11р://Ьй.пти.огд.иа/иа/з1ийеп1/те1ой/сгур1о1оду/лекция 11.pdf(дата
обращения: 11.06.2018).
13. Шевченко Д. Н., Кривенков С. В. Методика тестирования и использования генераторов псевдослучайных последовательностей // Проблемы физики, математики и техники. 2014. №2. С. 89-95.
14. Экспандеры и их применения (А. Е. Ромащенко) // Computer Science клуб URL: https://kzn.compscic1ub.ru/courses/expanders/2017-spring/
15. Ronen Shaltie. An introduction to randomness extractors // University of Haifa URL: https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf(дата обращения: 11.06.2018).
16. Иванов, М.А. Теория, применение и оценка качества генераторов псевдослучайных последовательностей М.: КУДИЦ-ОБРАЗ, 2003.
17. Extractors and the Leftover Hash Lemma // Boston University URL: http://www.cs.bu.edu/~reyzin/teaching/s11cs937/notes-leo-1.pdf(дата обращения: 11.06.2018).
18. Boaz Barak, Yevgeniy Dodis, Hugo Krawczyk, Olivier Pereira, Krzysztof
Pietrzak, Francois-Xavier Standaert, and Yu Yu. Leftover Hash Lemma, Revisited // Cryptology ePrint Archive URL:
https://eprint.iacr.org/2011/088.pdf(дата обращения: 11.06.2018).
19. R. Impagliazzo, L. A. Levin, and M. Luby. “Pseudo-random Generation from one-way functions (Extended Abstracts)” // Proceedings of the 21st Annual ACM Symposium on Theory of Computing, May 14-17, 1989, Seattle, Washington, USA. 1989, pp. 12-24.
20. Криптографические основы безопасности // Национальный
Открытый Университет «ИНТУИТ» URL:
https://www.intuit.ru/studies/courses/28/28/info(дата обращения: 11.06.2018).
21. Класс MD5 // MSDN - сеть разработчиков Microsoft URL:
https://msdn.microsoft.com/ru- ru/library/system.security.cryptography.md5(v=vs. 110).aspx (дата
обращения: 11.06.2018).
22. Структура BigInteger // MSDN - сеть разработчиков Microsoft URL: https://msdn.microsoft.com/ru- ru/library/system.numerics.biginteger(v=vs.110).aspx(дата обращения: 11.06.2018).
23.Что такое приложение универсальной платформы Windows (UWP)? // Microsoft - официальная страница URL:
https://docs.microsoft.com/ru-ru/windows/uwp/get-started/universal- application-platform-guide(дата обращения: 11.06.2018).
24. World's Oldest Backgammon Discovered in Burnt City // Payvand Iran News, 12.04.2004.


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ