Построение алгоритма симметричного шифрования на основе нейросетевого подхода

Построение алгоритма симметричного шифрования на основе нейросетевого подхода

Гридин В.Н., Солодовников В.И.

Федеральное государственное бюджетное учреждение науки Центр информационных технологий в проектировании (ЦИТП) РАН

info(q)4itc. ras, ru

Аннотация. Рассматриваются вопросы применения нейронных сетей для криптографической защиты информации. Проводится анализ и выбор нейросетевых парадигм. Предлагаются алгоритмы шифрования, дешифрования и предобработки данных. Алгоритм шифрования основан на генерации различных вариантов искаженного кода, который может распознать или восстановить используемая сеть. Ключ шифрования и дешифрования включает информацию о выбранном шаблоне нейросети и ее структурных характеристиках (количество нейронов в слое, весовые коэффициенты, функции активации, пороговые значения и т.д.). Исследуется влияние составного ключа шифрования на криптостойкость и возможность применения частотного криптоанализа.

Ключевые слова: нейронная сеть, криптография, симметричное шифрование.

1 Введение

Проблема защиты передаваемой информации имеет многовековую историю, однако и на сегодняшний день не только не теряет своей актуальности, но и предъявляет новые, все более жесткие требования. Одним из наиболее популярных подходов, используемых для предупреждения возможной угрозы несанкционированного доступа, является криптографическая защита или шифрование. В настоящее время единственно надежным методом шифрования является метод «одноразового блокнота», предложенный еще в 1917 году Гильбертом Вернамом (Gilbert Vernam), поскольку доказана его безусловная секретность. Поэтому непрерывно идет поиск новых подходов и алгоритмов, которые обеспечивали бы надежную защиту информации. В качестве основы одного из таких подходов предлагается использование математического аппарата искусственных нейронных сетей. Это объясняется тем обстоятельством, что особенностью ряда нейронных сетей является способность восстановления искаженных сигналов и распознавания объектов, имеющих характеристики отличные от эталонных. С другой стороны, многие асимметричные криптосистемы основываются на использовании односторонних функций с секретом, для которых затруднено инвертирование. К ним можно отнести сигмоидные (логистические) и радиальные базисные функции, которые используются и во многих парадигмах нейронных сетей [Медведев и др., 2002]. Причем

поиск обратного значения для них усложняется, поскольку это значение может находиться в некоторой области, связанной с функцией дополнительным набором правил. Эта сложность зависит от характеристик области (линейные или нелинейные границы, связная или несвязная область и т.д.). Именно эти принципы и положены в основу предлагаемого подхода.

2 Алгоритм шифрования

Предлагаемый алгоритм может быть отнесен к блочным шифрам, что обусловлено структурными особенностями нейронных сетей, а именно фиксированным числом входных элементов и внутренним представлением данных. Без потери общности будем рассматривать алгоритм шифрования некоторой текстовой информации, т.е. будем оперировать символами или наборами символов (классами) и их кодами. В случае необходимости аналогичные рассуждения могут быть проведены для любых кортежей вида состоящих из 0 и 1, где 5 -размерность блока шифруемых

данных. Таким образом, предлагаемый алгоритм применим для любого потока данных.

В качестве инструментария для получения и обработки шифротекста могут быть рассмотрены нейросетевые парадигмы, применимые для классификации образов. Например, это может быть многослойный персептрон, ЯВР, РЫК и ЬУС) - сеть.

Алгоритм шифрования основан на генерации различных вариантов искаженного кода, который может распознать или восстановить используемая сеть с заданными характеристиками. Для его реализации необходимо рассмотрение следующих основных этапов [Гридин и др.,2011]:

предварительный этап, на котором осуществляется предобработка данных [Евдокимов и др., 2009] и формируется обучающее множество с учётом частотности появления символов из исходного алфавита (формирование кластеров);

построение нейросети - выбор нейросетевой парадигмы, определение структуры нейронной сети и задание значений весовых коэффициентов (обучение);

основной этап, на котором происходит процесс шифрования.

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

2.1 Формирование областей пространства шифрования

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

информация о частотности появления символов (групп символов) из исходного алфавита. Если такие данные отсутствуют, то производится анализ исходного текста и рассчитывается частота вхождения каждого символа в шифруемом сообщении a(nv..nt), где t - количество различных символов в исходном тексте, щ - число вхождения ¿-го символа в исходный текст.

В качестве примера рассмотрим следующее шифруемое сообщение: «jerome k. jerome. three men in a boat (to say nothing of the dog). there were four of us - george, and william samuel harris, and myself, and montmorency.». Не сложно заметить, что частотность появления символов не равномерна. Так пробел встречается 28 раз, «е» - 17 раз, а символы «к, Ъ, с, (, ), -» всего по одному разу. Основные статистические показатели шифруемого текста приведены в таблице 1, а распределение символов показано на рисунке 1.

Таблица 1. Статистика шифруемого текста

Общее количество символов в сообщении М 1 54

Размер алфавита А 2 7

Среднее значение частоты появления символа ^атегаее 0 ,037

Минимальное значение частоты появления символа ^ 0 ,0065

Максимальное значение частоты появления символа ^тах 0 ,1818

П

- - - -

о О J О 0 . D J J _1 э п П  0 _1 и.

jerom k.thniab(sygfd)wu-,lc

Рис. 5. Распределение символов в исходном сообщении

Формирование областей (кластеров) пространства шифрования, в границах которых будут осуществляться искажения кодов символов, состоит из следующих шагов:

1) Автоматически генерируется количество областей для каждого символа (класса) с учетом частотного анализа а. В результате получается вектор количества областей у{т1...т(), где ¿-количество различных символов (классов), т1 - число областей для г'-го класса.

2) Случайным образом формируются области, соответствующие каждому символу в зависимости от векторов у(щ..щ). Количество областей для каждого символа будет различным. Область задаётся в виде обучающей выборки - набора близко лежащих векторов с указанием их класса. При этом вновь сгенерированные вектора сравниваются с уже полученными, что гарантирует принадлежность каждого вектора к единственному классу.

На рисунке 2 представлена реализация частотного анализа шифруемого сообщения и результат формирования центров кластеров.

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

Э Шьтфрпванир

Шмедаемый теист- ""Я №|еге ««Ыош оГ из - демде. агк! ий1«п мтие! лп(1 гп)«е11, апй топИтиепеу. Лналиа

; Частотный i

Иллюстрация

¡Цифрование

№ Символ Частота Кластеры Неег -

1 \ 2 2

2 е 17 17

3 I 10 Ю

4 о 12 12

5 т К 3

28 28

7 к 1 1

8 4 4

Э I 7 7

10 11 5 5

11 3 3

12 \ 5 5

13 а Э 3

14 ь 1 1

15 1 1 1

16 8 5 5

1? 2_ 3 3

1Я л 4 4

Выполнить

№кл. IX |у I Раницс |Символ ж

1 4158 3085 97 |

2 6033 3236 128 I

3 БЭ34 1520 18 е

4 1263} 3220 77 е

5 6453 3541 77 е

8 7702 1Э11 43 с

7 5223 3313 72 е

8 6365 2570 160

9 5120 1ЭВЗ 62 е

Ш 07151 2553; 13 ё

11 4254 1840 35 с

12 4810 13 50 е

13 4161 1352 31 е

14 7436 3605 126 е

15 2314 2073 103 е

18 4232: 3025 5 е

17 6247 3156 136 е -

1Й аяоч ЯПЗЙ 111

Рис. 2. Анализ шифруемого сообщения. Формирование центров кластеров

2.2 Построение нейронной сети

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

Построение различных типов нейросетей обладает своими индивидуальными особенностями, но преследует единую цель: научиться распознавать и классифицировать искаженный код из областей, сформированных на предварительном этапе. Фактически происходит создание ключа шифрования, который в данном случае, будет представлять собой информацию о выбранном типе нейросети и значениях ее структурных характеристик: количество нейронов в каждом слое, весовые коэффициенты слоев ¡¥1 и .

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

Нейросети, использующие радиальные базисные функции в нейронах промежуточного слоя, основаны на разбиении пространства окружностями или в общем случае гиперсферами (групповое представление). Вследствие чего, такие сети, в отличие от многослойного персептрона, не умеет экстраполировать свои выводы за область известных данных. При удалении от обучающего множества значение функции отклика быстро спадает до нуля, таким образом, ЫВР - нейроны действуют в достаточно малой области входного пространства и чем шире пространство (количество входов и расстояние между ними), тем больше требуется нейронов. Однако, центры КВБ - нейронов могут совпадать с центрами областей (кластеров) пространства шифрования, т.е. в структуре сети хранится информация об областях допустимых искажений.

2.3 Основной этап

Основной этап заключается в формировании шифротекста, который может быть распознан используемой нейронной сетью. 1) Для каждого символа или группы символов (класса) входного текста случайным образом выбирается эталонный вектор, который

характеризует определенный кластер (область), соответствующий данному классу. Для нейронных сетей, использующих КВР-нейроны, эталонный вектор может быть взят из матрицы Ш, тогда как для персептрона необходимость отдельно хранить информацию об областях допустимых искажений кода. 2) Для данного кластера случайным образом выбирается вектор р = (хг.хг) (где X, -значение г'-ой координаты вектора, а г - размерность области определения) для которого результат работы сети пе^р) соответствует исходному классу. Тем самым мы получаем случайный вектор, принадлежащий выбранному кластеру и классу.

Результатом работы алгоритма будет набор векторов р1(х1..хг)...рк(хх..хг), который соответствует полученному зашифрованному тексту, где ^-количество символов или групп символов в исходном сообщении. Полученная последовательность не является числовыми кодами символами, поэтому прочитать её, не имея ключа, не представляется возможным. Данный алгоритм позволяет шифровать одни и те же символы или группы символов различными кодовыми последовательностями, причем находиться они могут в несвязанных областях.

3 Алгоритм дешифрования

Алгоритм дешифрования заключается в распознавании полученного шифротекста. Ключ дешифрования является составным ключом, включающим топологию сети и ее основные характеристики, в частности, матрицы весовых коэффициентов Ш и 1¥2. На вход алгоритма поступает зашифрованное сообщение, из которого выделяется очередной код символа и подается на вход сети. Нейросеть обеспечивает прямое прохождение сигнала и осуществляет классификацию, что позволяет определить класс и выбрать соответствующий символ исходного алфавита. Полученный текст сохраняется, а алгоритм переходит к следующему элементу зашифрованного сообщения.

4 Анализ алгоритма и ключей шифрования

В качестве первичного признака, по которому производится классификация шифров, используется тип преобразования, осуществляемого с открытым текстом при шифровании. Если фрагменты открытого текста (отдельные буквы или группы букв) заменяются некоторыми их эквивалентами в шифртексте, то соответствующий шифр относится к классу шифров замены [Алферов и др.,2005]. Попробуем разобраться, можно ли предложенный алгоритм шифрования отнести к классу шифров замены.

Предложенный алгоритм шифрования с использованием нейронных сетей основывается на генерации случайных чисел. Ключом шифрования и дешифрования является сама нейросеть, а именно выбранная парадигма и ее структурные характеристики. Эти значения, с одной стороны, зависят от нейронной сети, а с другой, определяются представлением кода: его длиной, количеством одновременно кодируемых символов и т.п. При использовании для обучения истинно случайных чисел и достаточно большой области обучения (пространства, в котором осуществляется шифрование), вероятность получения одинаковых топологий сети крайне мала. Все полученные топологии являются равноправными, т.е. и ключи шифрования являются равноправными. Невозможно установить простых зависимостей между ключами, используемыми в процессе шифрования.

При формировании обучающего множества сначала составляется вектор классов С = Сх....Сс, где С,- /-ый класс, характеризующий символ или группу символов, с- общее количество классов. Затем формируется вектор кластеров ^ = где к - число кластеров к>с,

(х,...хД - координаты г'-го кластера и ¿-размерность пространства, в котором осуществляется шифрование. Матрица Ш имеет размер яхк. Для сетей, использующих ИЗБ - нейроны, матрица состоит из элементов, характеризующих координаты кластеров. Для многослойного персептрона к - характеризует не число кластеров, а кол-во нейронов промежуточного слоя, достаточное для разделения кластеров. В свою очередь, матрица }¥2 имеет размер к х с. Так как для сохранения целостности задачи требуется передавать в качестве ключа шифрования всю топологию сети, то размер ключа вычисляется по формуле:

N = в-к-Ь + к-с-Ь,

где Ъ - количество бит, необходимое для хранения значения весового коэффициента.

Из приведенной формулы видно, что размер ключа прямо пропорционален количеству используемых кластеров и размерности пространства, в котором осуществляется шифрование. Данное обстоятельство может быть использовано пользователем для улучшения криптостойкости алгоритма, т.к. размер ключа связан с количеством вычислений, требуемых для подбора ключей, соотношением ^операций = 2м.

Однако, используя особенности различных нейросетевых парадигм, в приведенную формулу могут быть внесены некоторые изменения. Например, для сетей использующих 11ВР нейроны, в частности для сети ЬУС), другим вариантом подсчета требуемого объема памяти для матрицы Ж2 является указание класса для текущего кластера в виде пары [номер кластера, номер класса], т.к. все остальные веса равны 0, то их можно не учитывать. Тогда для второго слоя достаточно к пар или 2-к-Ь' бит, где Ь' бит необходимо для хранения номера нейрона. В этом случае:

М = э-к-Ь + 2-к-Ь'.

Для сетей класса многослойный персептрон нет необходимости использовать в выходном слое число нейронов равное числу классов, а можно воспользоваться кодированием номера класса с помощью бинарного вектора. В этом случае количество нейронов в выходном слое будет равняться значению с' = 1о%2с, округленному до большего целого. Кроме того, для данного типа нейросетей число нейронов промежуточного слоя к' не характеризует количество кластеров, а должно быть достаточным для разделения имеющихся кластеров в пространстве шифрования. Для двумерной плоскости его можно оценить исходя из числа прямых, которое необходимо для разбиения плоскости на к областей.

Если рассматривать тестовое шифруемое сообщение из примера предварительного этапа, то размер алфавита и количество классов с равно 27. Количество кластеров не может быть меньше 27, т.к. каждому классу должен соответствовать хотя бы один кластер. Размерность пространства шифрования равна 2.

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Число кластеров

Рис. 3. Зависимость размера ключа от числа кластеров и типа нейронной сети

На рисунке 3 представлены графики с оценочными значениями количества бит, необходимого для хранения значений весовых коэффициентов, для следующих вариантов нейросетей:  НС1 - многослойный персептрон, у которого число нейронов выходного слоя равно с, количество нейронов промежуточного слоя

меняется от 7 до 10 в зависимости от числа кластеров и для хранения весового коэффициента используется 64 бита;

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

НСЗ - нейросеть с ЯВБ нейронами промежуточного слоя, где для хранения весовых коэффициентов используется по 16 бит;

НС4 - нейросеть аналогичная НСЗ, но для хранения весовых коэффициентов промежуточного слоя (кластеров) используется 64 бита.

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

5 Заключениие

В основу предлагаемого подхода положена способность ряда нейронных сетей к восстановлению искаженных сигналов и распознаванию объектов, имеющих характеристики отличные от эталонных. Предложены алгоритмы шифрования, дешифрования и предобработки данных. Алгоритм шифрования основан на генерации различных вариантов искаженного кода, который может распознать или восстановить используемая сеть. Ключ шифрования и дешифрования включает информацию о выбранном шаблоне нейросети и ее структурных характеристиках (количество нейронов в слое, весовые коэффициенты, функции активации, пороговые значения и т.д.). Рассмотрены особенности использования многослойного персептрона и сетей, использующих радиальные базисные функции в нейронах промежуточного слоя. Показана зависимость ключа от числа используемых кластеров и размерности пространства шифрования.

Благодарности

Работа выполняется в рамках программы фундаментальных научных исследований ОНИТ РАН «Архитектурно-программные решения и обеспечение безопасности суперкомпьютерных информационно-вычислительных комплексов новых поколений», проект «Использование крупномасштабной проблемы криптоанализа и криптостойкости

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

Список литературы

[Алферов и др.,2005] Алферов А. П., Зубов А. Ю., Кузьмин А. С., Черемушкин А. В. Основы криптографии. // М.: Гелиос АРВ, 2005.

[Гридин и др., 2011] Гридин В.Н., Солодовников В.И., Евдокимов И.А. Применение нейросетевош подхода на основе LVQ-сети для шифрования текстовой информации // Системы высокой доступности. - М.: Радиотехника, 2011 - №1, т.7 - С. 65-68.

[Евдокимов и др., 2009] Евдокимов И.А., Гридин В.Н., Солодовников В.И., Солодовников И.В. Предобработка данных с учетом заданных значений отдельных признаков // Информационные технологии и вычислительные системы.- 2009.- №1.- С. 14-17.

[Медведев и др., 2002] Медведев B.C., Потемкин В.Г. Нейронные сети. MATLAB 6. // М.: Диалог МИФИ. 2002.