Особенности алгоритма шифрования с использованием сети LVQ1
Евдокимов И. А., Солодовников В.И.
Учреждение Российской академии наук Центр информационных технологий в
проектировании (ЦИТП) РАН
Введение
Данные являются ценным ресурсом, доступ к которому необходимо строго контролировать и регламентировать. Одним из наиболее популярных подходов, используемых для предупреждения возможной угрозы несанкционированного доступа, является криптографическая защита или шифрование. Непрерывно идет поиск новых подходов и алгоритмов, которые обеспечивали бы надежную защиту информации. В качестве основы одного из таких подходов предлагается использование математического аппарата искусственных нейронных сетей. Идея использования нейронных сетей для криптографической защиты информации позаимствована из средств и методов «интеллектуального» анализа данных, где они успешно применяются при решении целого ряда задач выявления скрытых закономерностей, получения проектных и прогностических решений. Это обусловлено способностью нейронных сетей к моделированию нелинейных процессов, адаптивностью (обучение и самообучение), умением обобщать и извлекать существенные особенности из поступающей информации. Однако для шифрования, наряду с уже указанными свойствами, важную роль играет возможность восстановления искаженных сигналов и распознавания объектов, имеющих характеристики отличные от эталонных.
Построение системы шифрования на базе LVQ - сети
В качестве средства, создающего шифруемое сообщение, рассматривается нейронная сеть LVQ (Learning Vector Quantilization). Архитектура LVQ - сети
1 Работа выполняется при поддержке гранта Президента РФ № МК-3553.2009.9.
- 44 -
схематично представлена на рисунке 1 и состоит из двух слоев: конкурирующего и линейного.
R S1 S1 S1*S2 S2
Рис. 1. Структура LVQ - сети (Learning Vector Quantilization).
Конкурирующий слой осуществляет кластеризацию векторов, а линейный -соотносит кластеры с целевыми классами, заданными пользователем. Особенностью этой сети является то, что она может осуществлять классификацию для объектов, расположенных в многосвязных областях. В рассматриваемом подходе области каждого класса соответствуют коду некоторого символа или последовательности символов.
Алгоритм шифрования
Алгоритм шифрования основан на поиске искаженного кода, который может распознать или восстановить используемая сеть и состоит из двух этапов: предварительного и основного.
Предварительный этап заключается в формировании обучающего множество с учётом частотности появления символов из исходного алфавита. Осуществляется построение LVQ-сети и матриц весовых коэффициентов W1 и W2. Ключ шифрования, в данном случае, будет представлять собой информацию о выбранном типе нейросети и значениях ее структурных характеристик: количестве нейронов в каждом слое, весовых коэффициентах W1 и W 2 .
На основном этапе происходит процесс шифрования. Входом алгоритма шифрования является исходный текст, из которого выделяется очередной символ или группа символов используемого алфавита, т.е. определяется класс и элемент выходного слоя LVQ - сети. Для найденного класса случайным образом выбирается соответствующий ему кластер в пространстве шифрования. Соответствие кластера классу определяется из матрицы весовых коэффициентов W 2. В полученном кластере генерируется случайная точка, которая является шифром исходного символа.
Полученный шифр сохраняется, а алгоритм переходит к следующему символу. Диаграмма потока данных алгоритма шифрования представлена на рисунке 2.
Исходный
текст
Выделить
следующий
-Символ
1
Определить
класс
-Класс
Список
классов
І.
Выбрать случайный кластер по классу
_ Набор классов
-Кластер
Сгенерировать точку для кластера
-Точка
і
Сохранить результат. Перейти к следующему символу
_Зашифрованный
символ
Рис. 2. Диаграмма потоков данных алгоритма шифрования
Результатом работы алгоритма будет набор векторов р1(х1..хг)...рк(х1..хг), который соответствует полученному зашифрованному тексту, где К -количество символов или групп символов в исходном сообщении. Стоит отметить, что данный подход позволяет шифровать одни и те же символы или группы символов различными кодовыми последовательностями, причем находиться они могут в несвязанных областях.
Алгоритм дешифрования
Алгоритм дешифрования заключается в распознавании полученного шифротекста. Ключ дешифрования является составным ключом, включающим топологию сети и ее основные характеристики. Диаграмма потока данных алгоритма дешифрования представлена на рисунке 3.
ґ
л
Выделить следующий вектор
Вектор»
Найти ближайший кластер и выходу соответствующего 1,
остальные О
промежуточного слоя
Вектор на выходе
Матрицы \Л/1 и \Л/2
\
/
і
Исходный
текст
Ключ
дешифрования
Коды си м вол о в-
Алфавит
Рис. 3. Диаграмма потока данных алгоритма дешифрования
На вход алгоритма дешифрования подается зашифрованное сообщение, из которого выделяется очередной вектор пространства, в котором осуществлялось шифрование. Полученный вектор подается на вход ЬУр - сети, где происходит поиск ближайшего кластера min(dist (Ж 1,, р,)) и выходу нейрона победителя присваивается 1,
остальные выходы промежуточного слоя обнуляются. Результирующий вектор умножается на классифицирующую матрицу Ж 2, что позволяет определить класс и выбрать соответствующий символ исходного алфавита. Полученный текст сохраняется, а алгоритм переходит к следующему вектору зашифрованного сообщения.
Размер ключей шифрования
Особенностью алгоритма шифрования с использованием ЬУР-сетей, является автоматическая генерация ключей в ходе алгоритма обучения. При генерации формируется вектор классов С = С1....Сс, где С, - ,-ый класс, характеризующий символ
или группу символов, с - общее количество классов, а так же вектор кластеров К = (х1...х!!)1...(х1...х!,)к, где к - число кластеров к > с, (х1...х!,), - координаты ,-го
кластера и ^-размерность пространства, в котором осуществляется шифрование.
Таким образом, матрица W1 имеет размер 5 х k и состоит из элементов,
характеризующих координаты кластеров. В свою очередь, матрица W2 имеет размер
k х с и состоит из нулей и единиц, причём для каждой фиксированной строки г.
k с
^ м>2у > 1, а для каждого фиксированного столбца у: ^ 2у = 1. Данные условия
У 1
равнозначны тому, что каждый кластер принадлежит к единственному классу, и у каждого класса может быть больше одного кластера.
Число кластеров
Рис. 4. Зависимость размера ключа от числа кластеров (при Ь = Ь' = 16)
Так как для сохранения целостности задачи требуется передавать в качестве ключа шифрования всю топологию сети, то размер ключа вычисляется по формуле:
N = 5 • k • Ь + k • с
Первое слагаемое характеризует веса матрицы W1, где Ь - количество бит, необходимое для хранения значения весового коэффициента. Второе слагаемое отвечает за матрицу W2, элементы которой могут рассматриваться как значения битов. Другим вариантом подсчета требуемого объема памяти для матрицы W2 является указание класса для текущего кластера в виде пары [номер кластера, номер класса], т.к. все остальные веса равны 0, то их можно не учитывать. Получаем, что
для второго слоя достаточно к пар или 2 • к • b' бит, где b' бит необходимо для хранения номера нейрона. Тогда размер ключа вычисляется как:
N = s • к • b + 2 • к • b'.
Из приведенной формулы видно, что размер ключа прямо пропорционален количеству используемых кластеров и размерности пространства, в котором осуществляется шифрование. Данное обстоятельство может быть использовано пользователем для улучшения криптостойкости алгоритма, т.к. размер ключа связан с количеством вычислений, требуемых для подбора ключей, соотношением N й = 2N. Однако, необходимо учитывать тот факт, что с ростом размерности
пространства s, так же увеличивается и длинна получаемого шифротекста, что крайне нежелательно, поэтому данный параметр стоит использовать крайне осторожно. Увеличение длинны получаемого шифротекста может быть компенсировано с помощью введения дополнительных классов, которые будут включать не единичные символы, а часто встречающиеся в тексте цепочки символов, но это потребует дополнительных вычислительных затрат на предварительном этапе в процессе построения сети.
Частотный анализ исходного текста и области шифрования
Одним из наиболее действенных методов криптоанализа, является частотный анализ. В современных методах шифрования, зная вероятность появления шифруемого символа, можно проанализировать зашифрованную последовательность и построить ключ. Проведём анализ частотного распределения символов и точек обучаемой области, на примере следующего шифруемого сообщения: «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 раз, «e» -17 раз, а символы «k, b, c, (, ), -» всего по одному разу. Основные статистические показатели шифруемого текста приведены в таблице 1.
Общее количество символов в сообщении М 4 5
Размер алфавита А 27
Среднее значение частоты появления символа 0,037
Минимальное значение частоты появления символа ^п 0,0065
Максимальное значение частоты появления символа /тах 0,1818
Таблица 1. Статистика шифруемого текста
Для противодействия частотному криптоанализу требуется, чтобы
распределение всех точек в области определения криптотекста было равномерно. При шифровании символы входной последовательности будем проецировать на двумерную плоскость (т.е. я = 2) в виде пар (х,у), где х и у принимают значения в диапазонах (1000, 9000) и (1000, 4000). Например, для символа «e» были получены следующие кодирующие пары: (1832,3779), (2048,3520), (2028,2187), (5897,1393), (7101,2937), (4831,1513) и т.д., причем первые две относятся к одному кластеру. На рисунке 5 приведено сравнение частотности символов во входной последовательности и распределение точек области определения (пространства шифрования) по соответствующим классам входной последовательности.
0,2
0,18
0,16
0,14
0,12
0,1
0,08
0,06
0,04
0,02
1
1
II 1
иплНтПМ!
ГММШШМРНПМТГПГШ
Частотность символов в сообщении
Частотность точек каждого класса
) e г 0
thniab(sygfd)wu
l c
0
Рис. 5. Сравнение частотности символов в входной последовательности и распределение точек области определения по соответствующим классам входной
последовательности
- 50 -
Из рисунка видно, что графики очень близки. Данная особенность характеризует равномерное распределение символов входной последовательности по области шифрования, что делает затруднительным применение к алгоритму методов частотного криптоанализа.
Заключение
Рассмотрены особенности алгоритма шифрования с использованием сети LVQ, приведены соответствующие диаграммы потоков данных. Алгоритм основан на генерации случайным образом различных кластеров для одного или группы символов, в границах которых и происходит шифрование. Генерация осуществляется с учётом частотности появления символов из исходного алфавита. Показана зависимость ключа от числа используемых кластеров и размерности пространства шифрования. Рассмотрена возможность применения к полученному шифротексту частотного криптоанализа. Данный подход может использоваться для решения задач защиты информации, хранящейся на электронных носителях и передаваемой по различным каналам связи, как на персональном, так и корпоративном уровне.
Список литературы
1. Евдокимов И.А., Солодовников В.И. Применение LVQ-сети для шифрования текстовой информации // Материалы тринадцатого научно-практического семинара «Новые информационные технологии в автоматизированных системах», Москва, 2010. - С. 7-12.
2. Евдокимов И.А., Гридин В.Н., Солодовников В.И., Солодовников И.В. Предобработка данных с учетом заданных значений отдельных признаков // Информационные технологии и вычислительные системы.- 2009.- №1.- С. 14-17
3. Солодовников И.В., Солодовников В.И. Использование нейросетевых технологий для интерпретации и защиты информации. // Информационные технологии и математическое моделирование систем 2006-2008. Материалы международной научно-технической конференции.- М.: «Радиотехника», 2008, с. 84-87
4. Рассел С., Норвиг П. Искусственный интеллект: современный подход - М.: Издательский дом «Вильямс», 2006.
5. Медведев В.С., Потемкин В.Г. Нейронные сети. МА^АВ 6. М.: Диалог МИФИ. 2002.