Министерство образования и науки РФ ФГБОУ ВО «Тверской государственный университет» Математический факультет Кафедра математического анализа Специальность «Компьютерная безопасность» Курсовая работа На тему Нейрокриптография Выполнила: Соловьёва А.В., курс 5, группа М-54 Проверила: Тверь 2018 Содержание Введение............................................................................................................... 3 Искусственные нейронные сети – основные определения ............................... 5 Нейрокриптография ............................................................................................. 8 Описание математической модели ДМЧ ....................................................... 10 Реализация протокола синхронизации ключей двух абонентов на базе нейронных сетей и его применение ............................................................... 11 Анализ существующих алгоритмов шифрования на основе ИНС на примере AES...................................................................................................... 12 Список источников: ............................................................................................ 15 2 Введение За последние несколько лет наблюдается повышение интереса к нейронным сетям, которые успешно применяются в самых различных областях – бизнесе, медицине, технике, геологии, физике. Нейронные сети вошли в практику везде, где нужно решать задачи прогнозирования, классификации или управления. Нейросетевые технологии были рождены в середине 40ых годов прошлого столетия работами известного нейрофизиолога Маккалока У. С. в процессе проведения под его председательством 10-и конференций (Cerebral Inhibition Meeting), в частности его совместной с Уолтером Питтсом работой «Логическое исчисление идей, относящихся к нервной активности » (1943). Эти технологии в последующие десятилетия получили активное развитие в работах ряда зарубежных ( Ф. Розенблатт, Р. Хехт-Нильссен, Лотфи Заде, П. Вербос и др.) и отечественных ученых (В. М. Глушков, А. Г. Ивахненко, В.В. Солодовников, Я.З. Цыпкин и др.) Нейросетевые технологии в рамках создания конкретных интеллектуальных информационных систем в 50ые, 60ые и 70ые годы прошлого столетия применялись в основном для решения различных задач распознавания образов . В связи с этим получила широкое развитие теория нейронных сетей, включающая в себя разработку структур нейронных сетей и различных алгоритмов настройки коэффициентов связей нейронов в этих сетях. Направление создания искусственных нейросетей зародилось в двадцатом веке на границе математики и нейрофизиологии благодаря технологиям электроники. Вплоть до начала двадцать первого века нейрокомпьютеры развивались главным образом благодаря достижениям микроэлектроники. В тоже время разрабатывался математический аппарат – нейроматематика. В двадцать первом веке тенденции существенно изменились. Возросшие мощности суперкомпьютеров дают возможность ставить задачу симуляции нейросистем живых существ, что фактически означает возвращение в направление искусственных нейронных сетей когнитивной науки . Искусственные нейронные сети (ИНС) благодаря своей архитектуре 3 представляют собой эффективный способ параллельной обработки данных. Данное свойство ИНС позволяет в перспективе применять их для широкого круга задач, однако часто сложность реализации такой системы сводит на нет её практическую применимость. Несмотря на данный факт ИНС весьма широко применяются для защиты информации, как в рамках научно-исследовательских проектов, так и в рамках коммерческих продуктов[1,2]. Далее определяются основные понятия, связанные с искусственными нейронными сетями, определяются задачи, эффективно решаемые нейрокомпьютерами. 4 Искусственные нейронные сети – основные определения Интеллектуальные системы на основе искусственных нейронных сетей позволяют с успехом решать проблемы распознавания образов, выполнения прогнозов, оптимизации, ассоциативной памяти и управления. Традиционные подходы к решению этих проблем не всегда предоставляют необходимую гибкость. Искусственные нейросети являются электронными моделями нейронной структуры мозга, который главным образом учится из опыта. Естественный аналог доказывает, что множество проблем, которые пока не подвластны решению имеющимися компьютерами, могут быть эффективно решены блоками нейросетей. Достижения в области нейрофизиологии предоставляют начальное понимание механизма естественного мышления, где хранение информации происходит в виде образов, некоторые из которых являются сложными. Однослойные искусственные нейронные сети Хотя один нейрон и способен выполнять простейшие процедуры распознавания, но для серьезных нейронных вычислений необходимо соединять нейроны в сети. Сама сеть состоит из группы нейронов, образующих слой, как показано в правой части рисунка 3.1. Отметим, что вершины круга слева служат лишь для распределения входных сигналов. Они не выполняют каких-либо вычислений и поэтому не будут считаться слоем. Для большей наглядности обозначим их кругами, чтобы отличать их от вычисления нейронов, обозначенных квадратами. Каждый элемент из множества входов X отдельным весом соединен с каждым искусственным нейроном. А каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, но здесь они показаны все для демонстрации общей картины. Могут существовать также соединения между выходами и входами элементов в слое [1]. 5 Рисунок 3.1 – Самая простая однослойная нейронная сеть Удобно считать веса элементами W матрицы. Матрица имеет m строк и n столбцов, где m - число входов, а n - число нейронов. Например, - это вес, связывающий второй вход с третьим нейроном [2]. Многослойные искусственные нейронные сети Большие и сложные нейронные сети имеют, как правило, и большие вычислительные возможности. Хотя созданы сети всех конфигураций, какие только можно себе представить, послойная организация нейронов копирует слоистые структуры определенных отделов мозга. Оказалось, что такие многослойные сети обладают большими возможностями, чем однослойные, и в последние годы были разработаны алгоритмы для их обучения. Многослойные сети могут строиться из каскадов слоев. Выход одного слоя является входом для последующего слоя. Подобная сеть показана на рисунке 4.1 и снова изображена со всеми соединениями [3]. 6 Рисунок 4.1 – Структура многослойной нейронной сети Многослойные сети не могут привести к увеличению вычислительной мощности по сравнению с однослойной сетью, если активационная функция между слоями линейная. Вычисление выхода слоя заключается в умножении входного вектора на первую весовую матрицу с последующим умножением (если отсутствует нелинейная активационная функция) результирующего вектора на вторую весовую матрицу, которая показана на формуле . OUT = (X*W1)*W2 где X - вход нейрона; OUT – выход нейрона; W - весовые коэффициенты. Так как умножение матриц ассоциативно, то в результате можем записать формулу (2): (X*W1)*W2 =X*(W1*W2) Это показывает, что двухслойная линейная сеть эквивалентна одному слою с весовой матрицей, равной произведению двух весовых матриц. Итак, любая многослойная линейная сеть может быть заменена эквивалентной однослойной сетью. Однако однослойные сети весьма ограничены по своим вычислительным возможностям. Таким образом, для расширения возможностей сетей по сравнению с однослойной сетью необходима нелинейная активационная функция[4]. 7 Нейрокриптография Нейрокриптография — раздел криптографии, изучающий применение стохастических алгоритмов, в частности, нейронных сетей, для шифрования и криптоанализа. В криптоанализе используется способность нейронных сетей исследовать пространство решений. Также имеется возможность создавать новые типы атак на существующие алгоритмы шифрования, основанные на том, что любая функция может быть представлена нейронной сетью. Взломав алгоритм, можно найти решение, по крайней мере, теоретически. При этом используются такие свойства нейронных сетей, как взаимное обучение, самообучение и стохастическое поведение, а также низкая чувствительность к шуму, неточностям (искажения данных, весовых коэффициентов, ошибки в программе). Они позволяют решать проблемы криптографии с открытым ключом, распределения ключей, хеширования и генерации псевдослучайных чисел. Идеи нейрокриптографии впервые были озвучены Себастьяном Дорленсом в 1995 году, спустя 30 лет после определения основ нейронных сетей. В 1995 году Себастьян Дорленс применил нейрокриптоанализ, чтобы научить нейронные сети инвертировать S-перестановки в DES. В ходе эксперимента было найдено 50 % битов ключа, то есть ключ целиком может быть найден за короткое время. Аппаратная реализация состоит из множества (64К) простых микроконтроллеров, расположенных на СБИС. Другой пример — протокол шифрования с открытым ключом Халил Шибаба, в котором процесс дешифрации основан на многоуровневой нейронной сети, обучающейся по алгоритму обратного распространения. В то же время процесс шифрования и создания закрытого ключа использует обычную двоичную алгебру. Преимущество этого метода в малых затратах времени и памяти. Недостаток — в алгоритме обратного распространения: на больших массивах входных данных нейронная сеть обучается очень долго. Поэтому данный протокол имеет лишь теоретическое значение. В основе криптографических нейронных систем шифрования данных лежат два подхода к использованию ключей. В системе с одним секретным ключом, ключ известен только абонентам системы. В другом подходе используются два ключа – секретный для дешифрования и открытый для шифрования. Симметрические сети отличаются быстрой производительностью, но требуют 8 дополнительных мер безопасности. В асимметрических сетях используются однородные данные, что обеспечивает высокую криптостойкость и хорошо подходит для компьютерной реализации[3,4]. Архитектура искусственных нейронных сетей позволяет эффективно выполнять работы по распознаванию образов и классификации множества объектов по какому-либо признаку. Кроме того, благодаря правильно спроектированным алгоритмам обучения нейронные сети могут достигать крайне высоких показателей точности[5,6]. Приведенные выше преимущества позволяют эффективно использовать искусственные нейронные сети в системах биологической аутентификации, системах цифровых водяных знаков, распознавании подписи человека с использованием искусственных нейронных сетей[8-12], распознавании лица человека[13,14]. В России существует стандарт ГОСТ [15] Р 52633-2006, определяющий требования к средствам высоконадёжной биометрической аутентификации. При биометрической аутентификациив соответствии с данным стандартом используется многослойная нейронная сеть. 9 Описание математической модели ДМЧ ДМЧ – это особый вид многоуровневой нейронной сети прямого распространения. Она состоит из одного выходного нейрона, K скрытых нейронов и KxN входных нейронов. Входные нейроны принимают двоичные значения xij ∈ {−1, +1} Веса между входными и скрытыми нейронами принимают значения 𝑤ij ∈ {−𝑙, … ,0, … , +𝑙} Значение каждого скрытого нейрона есть сумма произведений входного значения и весового коэффициента: 𝑁 𝜎𝑖 = 𝑠𝑔𝑛 (∑ 𝑤ij xij ) 𝑗=1 −1 𝑥≤0 1 𝑥>0 𝑠𝑔𝑛(𝑥) = { Значение выходного нейрона есть произведение всех скрытых нейронов: 𝐾 𝜏 = ∏ 𝜎𝑖 𝑖=1 Выходное значение также двоичное. 10 Реализация протокола синхронизации ключей двух абонентов на базе нейронных сетей и его применение У каждого абонента (А или Б) есть своя ДМЧ. Их синхронизация происходит следующим образом: 1. Задаём случайные значения весовых коэффициентов 2. Выполняем следующие шаги, пока не наступит синхронизация 1. Генерируем случайный входной вектор X 2. Вычисляем значения скрытых нейронов 3. Вычисляем значение выходного нейрона 4. Сравниваем выходы двух ДМЧ: 1. Выходы разные: переход к п.2.1 2. Выходы одинаковые: применяем выбранное правило к весовым коэффициентам После полной синхронизации (веса wij обоих ДМЧ одинаковые), А и Б могут использовать веса в качестве ключа. После полной синхронизации (веса wij обоих ДМЧ одинаковые), А и Б могут использовать веса в качестве ключа. Этот метод известен как двунаправленное обучение. Для обновления весовых коэффициентов могут использоваться следующие правила - Правило Хебба 𝑤𝑖+ = 𝑤𝑖 + 𝜎𝑖 𝑥𝑖 𝜃(𝜎𝑖 𝜏) 𝜃(𝜏 𝐴 𝜏 𝐵 ) - Анти-правило Хебба 𝑤𝑖+ = 𝑤𝑖 − 𝜎𝑖 𝑥𝑖 𝜃(𝜎𝑖 𝜏) 𝜃(𝜏 𝐴 𝜏 𝐵 ) - Случайное блуждание 𝑤𝑖+ = 𝑤𝑖 + 𝑥𝑖 𝜃(𝜎𝑖 𝜏)𝜃(𝜏 𝐴 𝜏 𝐵 ) 11 *подумать над этим* Анализ существующих алгоритмов шифрования на основе ИНС на примере AES Также модель искусственной нейронной сети подходит для задач шифрования. Задача шифрования будет рассмотрена на примере алгоритма AES. AES (Advanced Encryption Standard) является итеративным блочным шифром, который был выбран NIST в качестве международного стандарта и замены DES. В настоящее время является наиболее широко распространенным блочный шифром. Rijndael является итеративным блочным шифром, шифрование или расшифрование блока данных осуществляется c помощью раундовой функции. Три стандартные версии AES называются AES-128, AES-192 и AES-256 и отличаются друг от друга длиной ключа (128, 192, и 256 бит) и количеством раундов (10, 12, и 14) Их безопасность была тщательно исследована АНБ. Тем не менее, в последнее время появились некоторые виды атак, которые, как было доказано, достаточно эффективно применяются к AES. Чтобы противостоять этим атакам, можно сделать некоторые изменения, внедрив нелинейную нейронную сеть в AES[11]. Нейронные сети используются для классификации и аппроксимации функций/выделения задач, которые устойчивы к некоторым неточностям, для которых имеется много доступных данных для обучения, но к которым не могут быть применены жесткие правила. Автор статьи попытался реализовать Rijndael-криптосистему с помощью ИНС. Эта криптосистема имеет менее сложное строение, чем AES и не линейна в эксплуатации. Нелинейной должна быть нейронная сеть с обратной связью, что позволило бы выполнить шифрование/расшифрование открытого текста/зашифрованного текста с высокой производительностью и очень низким уровнем ошибок. Идея автора состояла в том, чтобы разработать такую нелинейную ИНС. Нелинейность необходима для уменьшения вероятности взлома алгоритма. Уменьшение вероятности взлома достигается с помощью нелинейной функции активации, также свойство нелинейной аппроксимации сети является полезным для практического применения. Многослойный персептрон (MLP) является наиболее популярным видом ИНС прямого распространения, его свойством является способность эмулировать любое соотношение входов/выходов. MLP отвечает здесь за частоту обновления, так как он обновляет веса после того, как весь блок обучающих данных представлен полностью. Блочная адаптация является более надежной с того момента, когда шаг обучения усреднен по всем обучающим шаблонам. MLP имеет следующие параметры. Для процесса шифрования, могут быть использованы следующие настройки: входной вектор, являющийся открытым текстом; выходной — зашифрованный текст из алгоритма AES; первоначальные веса будут ключом шифрования; 12 нелинейная функция активации каждого нейрона будет (log-сигмойда), что дает выходные значения между (0 — 1). Для процесса расшифровки, могут быть использованы следующие параметры: входным вектором является шифртекст; выходные значения — открытый текст; Первоначальные веса будут ключом для расшифровки; нелинейная функция каждого нейрона будет (сигмовидной), что дает выход между (0 — 1). Вход и выход можно масштабировать, чтобы иметь возможность совмещаться с функцией активации. В фазе обучения, Rijndael-алгоритм производит зашифрованный текст из определенного входного текста. ИНС принимает входной текст в качестве входного и выходного текста в качестве цели, и самообучается для достижения такого же выходного текста. Модель структуры ИНС называется "последовательнопараллельная модель", где алгоритм Rijndael влияет на динамическое поведение нейронной модели. Фаза операций будет многослойной ИНС прямого распространения с конечными весами, используемыми для получения выходного сигнала шифрования/расшифрования. На этом этапе будет продолжаться производство открытого текста/зашифрованного текста до тех пор, пока новый ключ не начнет использоваться в системе, тогда ИНС необходимо будет переобучиться на новый ключ. В шифровании и расшифровании, в качестве нелинейной функции активации для каждого нейрона был использован гиперболический тангенс. Свойство сигмоиды производит выходные значения в диапазоне (от -1 до +1). Данные, используемые в AES находятся в диапазоне (0 — 255). Таким образом, чтобы ИНС была совместима с данными AES (текстом, зашифрованным текстом, ключом шифрования) на этапе функции активации, есть необходимость преобразовать данные в диапазон (0 — 1). Это достигается путем использования коэффициента масштабирования (1/256) таким образом, чтобы стать совместимым с выходом функции активации. Коэффициент может быть использован на выходе каждого нейрона повторно для преобразования выходного диапазона обратно в (0 — 255). Для простоты автор использовал только версией AES, имеющей 128-битный ключ. AES использует блок данных длиной 128 бит для шифрования/расшифрования. Таким образом, ИНС будет использовать данные в форме байт, так что и вход, и выход будет размером 16 байт. ИНС должен иметь по крайней мере один скрытый слой в 16 нейронов для достижения размера входного ключа длины 16 байт. Для обучения ИНС имеем топологию (16 — 16 — 16 — 1). Она принимает вектор из 16 байт в качестве входных данных и производит вектор из 16 байт как обученный текст. Веса каждого слоя являются ключом (16 байт) вектор. В этой ИНС шифрование не будет производить нужный текст, потому что минимальный градиент будет достигнут без достижения целевой производительности. Рисунок 3 и 4 отражают обучение процессов шифрования и дешифрования на основе 16-ти байт входного текста. Тесты показывают, что выходные тексты на нейро-AES в шифровании и расшифровании не идентичны выходным текстам шифрования и расшифрования AES. Одним из основных способов решений этой проблемы является сокращение входных и целевых векторов ИНС. Это решение будет иметь тенденцию к сокращению времени подготовки и достижению целевой производительности. Идея сокращения заключается в создании более чем одной 13 параллельной операции ИНС. Каждая операция ИНС будет работать с частью входных и выходных векторов. На данный момент опробованы несколько топологий ИНС и обнаружено, что ИНС с топологией (4 — 16 — 16 — 1) является лучшим выбором. Нейро-криптосистема состоит из 4 слоев, работающих параллельно. Каждый из слоев ИНС принимает входной вектор длиной 4 байта. Топология желаемого ИНС в процессе расшифрования/шифрования выглядит следующим образом. Слой 1 с 4 нейронами, где каждый нейрон получает один байт из входного вектора (открытый текст/зашифрованный текст). Слой 2 с 16 нейронами, где каждый нейрон суммирует вес всех 8 нейронов в 1-м слое. Слой 3 с 16 нейронами, где каждый нейрон суммирует вес всех 8 нейронов во 2-м слое. Слой 4 (выходной слой) с 1 нейроном, который суммирует вес всех 8 нейронов в третьем слое. Начальные веса ИНС являются ключами для процесса расшифрования/шифрования. Таким образом, ключ длиной 16 байт из ИНС был взят следующим образом: 4x1 матрица в качестве начального веса от входа к слою 1. 16x4 матрица (представляет 16 байт из ключа и повторяется 4 раза) в качестве 14 Список источников: 1. Политика и модели безопасности : 6.8 Теоретико-информационные модели https://learn.urfu.ru/resource/index/data/resource_id/40980/revision_id/0 2. StudFiles - файловый архив студентов . Теория и Методология ИБ: 12.6. Информационные модели – https://studfiles.net/preview/2014326/page:53/ 3. Теоретические основы компьютерной безопасности – Н.А. Гайдамакин , 2008г. 4. Курс лекций на тему : Теоретические основы компьютерной безопасности - П.Д. Зегжда, П.Н Девянин , 2008 г. 15