Аннотация
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 5
1 ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ 6
1.1 Шифр перестановки 6
1.2 Шифры простой замены 9
1.3 Шифры гаммирования 10
1.4 Искусственные нейронные сети и их составляющие 12
1.5 Обучение нейронных сетей 18
1.5.1 Общие понятия в обучении нейронных сетей 18
1.5.2 Алгоритм обратного распространения ошибок 18
1.5.3 Псевдокод 21
1.5.4 Недостатки градиентного спуска 21
1.5.5 Сравнение стохастического и пакетного градиентных спусков 22
1.6 Мониторинг состояния сети 22
1.6.1 Функция перекрестной энтропии в качестве целевой функции 22
1.6.2 Техники регуляризации 22
1.7 Глубокие нейронные сети 24
1.7.1 Обзор 24
1.7.2 Доступность данных 24
1.7.3 Локальный оптимум 25
1.7.4 Градиентная диффузия 25
1.8 Проблемы обучения глубоких сетей и их решения 25
1.8.1 Исчезающий градиент 25
1.8.2 Сигмоидальные активационные функции 26
1.8.3 Выбор подходящих весов 27
1.9 Сверточные нейронные сети 27
1.9.1 Обзор 27
1.9.2 Гиперпараметры сети 30
1.9.3 Типовая структура 31
1.9.4 Слой свёртки (convolutional layer) 32
1.9.5 Усеченное линейное преобразование (rectified linear unit) 32
1.9.6 Пулинг или слой объединения 32
1.9.7 Полносвязная нейронная сеть 33
1.10 Использование сверточных нейронных сете в анализе текстов 33
2 ОПИСАНИЕ РАЗРАБОТКИ 36
2.1 Создание базы данных зашифрованных текстов 36
2.1.1 Функция для шифра перестановки 36
2.1.2 Функция для шифра простой замены 36
2.1.3 Функция шифра гаммирования 37
2.2 Библиотека TensorFlow 37
2.2.1 Обзор 37
2.2.2 Примеры 38
2.2.3 Особенности 40
2.3 Сверточная нейронная сеть 42
2.3.1 Параметры сети 42
3 РЕЗУЛЬТАТЫ РАЗРАБОТКИ 44
3.1 Результаты эксперимента 44
ЗАКЛЮЧЕНИЕ 46
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 47
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А. Сверточная нейронная сеть 49
ПРИЛОЖЕНИЕ Б. Функция шифра гаммирования 51
ПРИЛОЖЕНИЕ В. Функция шифра перестановки 52
ПРИЛОЖЕНИЕ Г. Тренировка нейронной сети 53
ПРИЛОЖЕНИЕ Д. Функция шифра замены 56
Актуальность темы. Криптография - наука о методах обеспечения конфиденциальности и аутентичности информации. Криптография включает в себя методы шифрования информации, ассиметричные криптосистемы, системы электронной цифровой подписи, хеш-функции, управление ключами, получение скрытой информации, а также квантовую криптографию. Ключевой задачей криптографии является создание стойких алгоритмов шифрования. Любой конструируемый алгоритм подвергается тщательному анализу с целью выявления его слабых мест и возможности взлома. Алгоритм является относительно стойким до тех пор, пока не будут обнаружены методы и пути его анализа, позволяющие получить секретный ключ шифрования значительно быстрее, чем это можно сделать с использованием метода «грубого перебора».
Криптоанализом называют науку восстановления открытого текста без доступа к ключу. Основная задача криптоанализа состоит в том, чтобы определить вероятность взлома шифра и, таким образом, оценить его применимость в той или иной области. В ходе работы был рассмотрен криптоанализ некоторых шифров с целью определить по зашифрованным текстам отличительные особенности данных шифров.
В современном мире с ростом вычислительных мощностей компьютеров стойкость алгоритмов шифрования снижается. Необходимостью разработки программ для проверки стойкости к криптоанализу алгоритмов шифрования, обуславливается актуальность данной работы.
Цель работы - разработка нейронной сети для реализации компьютерной программы, позволяющей определить тип шифра, которым был зашифрован имеющийся текст.
Задачи работы:
1) провести анализ предметной области;
2) разработка математической модели и архитектуры нейронной сети, решающей задачу распознавания типа шифров;
3) создание компьютерной программы, реализующей данную модель;
4) проверка работы программы на экспериментальных данных.
В данной работе проводилось исследование по криптоанализу шифров с применением сверточной нейронной сети.
Нейронные сети, зарекомендовавшие себя, как мощный алгоритм для классификации изображений, в последнее время стали активно использоваться и для других задач машинного обучения.
В данной работы были рассмотрены 3 алгоритма шифрования текстов и их криптоанализ. Реализована сверточная нейронная сеть с посимвольным подходом, работа которой проверена на обучающей выборке текстов. Произведены подсчеты результатов работы нейронной сети. Показано что данная нейронная сеть с посимвольным подходом справляется со своей задачей на достаточно высоком уровне и вполне может быть использована в реальных задачах распознавания шифров.
1. B. Pang and L. Lee. Opinion mining and sentiment analysis. Foundations and Trends in Information Retrieval archive, 2008.
2. Y. Kim. Convolutional neural networks for sentence classification. arXiv:1408.5882 [cs.CL], 2014.
3. K. S. Tai et al. Improved semantic representations from tree-structured long short-term memory network. arXiv:1503.00075 [cs.CL], 2015.
4. Q. Le and T. Mikolov. Distributed representations of sentences and documents. arXiv:1405.4053 [cs.CL], 2014.
5. J. Schmidhuber. Learning complex, extended sequences using the principle of history compression. Neural Computation 4(2). с. 234-242, 1992.
6. X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. Aistats 9,, c. 249-256, 2010.
7. I. Sutskever et al. On the importance of initialization and momentum in deep learning. ICML'13 Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28, c. 1139-1147, 2013.
8. A. Karpathy. The unreasonable effectiveness of recurrent neural networks. http://karpathy.github.io/2015/05/21/mn-effectiveness/. (дата обращения 25.05.2018).
9. R. Collobert and J. Weston. A unified architecture for natural language processing: Deep neural networks with multitask learning. ICML '08 Proceedings of the 25th international conference on Machine learning, с. 160-167, 2008.
10. T. Mikolov et al. Distributed representations of words and phrases and their compositionality. arXiv:1310.4546 [cs.CL], 2013.
11. T. Mikolov et al. Efficient estimation of word representations in vector space. arXiv:1301.3781 [cs.CL], 2013.
12. Google Research Team. Tensorflow: Large-scale machine learning on heterogeneous distributed systems. arXiv:1603.04467 [cs.DC], 2016.
13. M. Schrimpf. Should i use tensorflow? arXiv:1611.08903 [cs.LG], 2016.
14. К. К. Семёнов. Автоматическое дифференцирование функций, выраженное программным кодом. Вестник Саратовского государственного технического университета, 2011.
15. В. Д. Чабаненко. Модификации метода стохастического градиентного спуска для задач машинного обучения с большими объемами данных. Master’s thesis, Московский государственный университет имени М.В. Ломоносова, 2016.
... всего 24 источников