Научная статья на тему 'Применение LVQ-сети для шифрования текстовой информации'

Применение LVQ-сети для шифрования текстовой информации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
251
159
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение LVQ-сети для шифрования текстовой информации»

Применение ЬУО-сети для шифрования текстовой

информации1

Евдокимов И. А., Солодовников В.И.

Учреждение Российской академии наук Центр информационных технологий в

проектировании (ЦИТП) РАН

Введение

В настоящее время резко возросло количество информации, хранящейся на электронных носителях и передаваемой по различным каналам связи, при этом хотя бы частичная утрата данной информации, например конфиденциальной или персональной, может иметь печальные последствия для её владельца. Одним из наиболее популярных подходов, используемых для предупреждения возможной угрозы несанкционированного доступа, является шифрование. Многие информационные системы (в частности СУБД) включают средства криптографической защиты, однако существует набор факторов накладывающих ограничения на эффективность методов шифрования. Все современные алгоритмы шифрования подразумевают возможность несанкционированной дешифровки в силу того, что алгоритмы эти известны (открыты). Другой вопрос, что сегодняшние технические средства способны расшифровать документ лишь за несколько тысяч лет и, не смотря на развитие компьютерной индустрии, этот срок вряд ли сильно сократиться в ближайшее время. Проблема, скорее, не в скорости компьютера, а в фундаментальной науке, которая пока не открыла быстрый метод поиска простых чисел и если данная задача будет решена, алгоритмы шифрования придется пересмотреть. В частности, прогнозируется появление квантовых компьютеров с возможностью раскладывать числа на простые множители, что позволит расшифровывать сообщения, закодированные при помощи современных криптографических алгоритмов. Поэтому непрерывно идет поиск новых подходов и алгоритмов, которые обеспечивали бы надежную защиту информации.

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

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

Классическая схема основывается на использовании односторонних функций / с секретом, для которых инвертирование функции затруднено. К таким функциям

можно отнести сигмоидные функции вида ст(х,К) = 1—(!) и радиальные

1 Работа выполняется при поддержке гранта Президента РФ № МК-3553.2009.9.

- 7 -

-( x-K1)2

базисные функции вида h(x; K1, K2) = e K 2 (2), вычисление обратных значений

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

Системы шифрования обычно включают следующие компоненты:

• ключ шифрования, предназначенный для шифрования исходных данных (обычный текст, таблицы БД и т.д.);

• алгоритм шифрования, который определяет, как с помощью ключа шифрования преобразовать исходные данные в шифротекст;

• ключ дешифрования, предназначенный для дешифрования шифротекста;

• алгоритм дешифрования - задает, как с помощью ключа дешифрования преобразовать шифротекст в исходные данные.

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

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

Несколько более сложен алгоритм шифрования. Он основан на поиске искаженного кода, который может распознать или восстановить используемая сеть.

1—1 U U U U

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

Реализации системы шифрования на основе LVQ - сети

В качестве средства, создающего шифруемое сообщение, рассмотрим нейронную сеть LVQ (Learning Vector Quantilization), которая является развитием сети Кохонена и используется для классификации и кластеризации векторов входа. Архитектура LVQ - сети схематично представлена на рисунке 1 и состоит из двух слоев: конкурирующего и линейного. Конкурирующий слой осуществляет

кластеризацию векторов, а линейный - соотносит кластеры с целевыми классами, заданными пользователем.

R S1 S1 S1*S2 S2

Рис. 1. Структура LVQ - сети (Learning Vector Quantilization)

Для того чтобы нейрон k победил в конкурентной борьбе, его потенциал V 1k

для заданного входного образца должен быть максимальным среди всех нейронов

слоя. Тогда выходной сигнал нейрона победителя принимается равным 1. Выходные

сигналы других нейронов устанавливаются в 0. Таким образом:

f 1, если V 1k > V1, для всех j Ф k a1k =\ j (3)

[0, иначе

Здесь потенциал нейрона V 1k определяет близость входного вектора и вектора

весовых коэффициентов нейрона.

Как в конкурирующем, так и в линейном слое по одному нейрону приходится на целевой кластер или класс. Соответственно, конкурирующий слой способен поддержать до £1 кластеров, которые в свою очередь, могут быть соотнесены с S 2 целевыми классами, причем S2 < £1. Таким образом, единичный элемент i-строки (остальные 0) однозначно выберет i-столбец матрицы весов W 2 в качестве выхода сети. При этом каждый столбец имеет единственный элемент равный 1, который указывает принадлежность к классу.

Алгоритм шифрования с использованием LVQ - сети

Алгоритм шифрования с использованием LVQ-сети состоит из двух этапов:

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

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

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

Алгоритм предварительного этапа

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

в исходном тексте, n - число вхождения i-го символа в исходный текст.

2. Автоматически генерируем количество областей для каждого символа (класса) с учетом частотного анализа a. Сгенерированный вектор количества областей для каждого класса - y(ml...mt), где t-количество различных символов (классов), mt - число областей для i-го класса.

3. Случайным образом формируются области, соответствующие каждому символу в зависимости от векторов y(ml...mt). Количество областей для

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

4. Проводится обучение LVQ-сети, и формируются матрицы весовых коэффициентов Ж1 и Ж2. Ключ шифрования, в данном случае, будет представлять собой информацию о выбранном типе нейросети и значения ее структурных характеристик: количество нейронов в каждом слое, весовые коэффициенты Ж1 и Ж2 .

Алгоритм основного этапа шифрования

По известным весовым коэффициентам Ж1 и Ж 2, формируется шифротекст.

1. Для каждого символа (класса) входного текста случайным образом

выбирается эталонный вектор из матрицы Ж1 (то есть кластер),

принадлежащий данному классу.

2. Для данного кластера случайным образом выбирается вектор р. = (х1..хг) (где х -значение .-ой координаты вектора, а г - размерность области определения) для которого верно соотношение (Ж 1., р.) = шт, где

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

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

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

Ключ дешифрования является составным ключом, включающим топологию сети и ее основные характеристики, в частности, матрицы весовых коэффициентов Ж1 и Ж2. Дешифровка текста производится путём нахождения шin(dist(Ж1., р1)) и

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

Схема подсистемы шифрования

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

Д

а

н

н

ы

е

п

о

л

ь

з

о

в

а

т

е

л

я

Обу

гчающая выборку

Блок обучения

Параметры

выборки

Случайное число [п1..пк] пределы

Генератор выборки Генератор случайных чисел

А 1 А Случайное число

кеу

[п1..пк] Парметры случайного числа

Данные.^ текст введённый пользователем

Зашифрованный текст.пеі/ текст введённый пользователем,*.кеу

Блок

шифрования

".кеу, Зашифрс

ванный тек1

Блок

дешифрования

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Исходный

Хранилище файлов

Рис.2. Общая схема подсистемы шифрования

Заключение

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

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

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

2. Солодовников И.В., Солодовников В.И. Использование нейросетевых

технологий для интерпретации и защиты информации. // Информационные

технологии и математическое моделирование систем 2006-2008. Материалы международной научно-технической конференции.- М.: «Радиотехника», 2008, с. 8487

3. Евдокимов И. А., Серегина Ю.А. ,Солодовников И.В. Формирование LVQ-сети для задачи классификации // Материалы Девятого научно - практического семинара «Новые информационные технологии», Москва, 2007

4. Рассел С., Норвиг П. Искусственный интеллект: современный подход - М.: Издательский дом «Вильямс», 2006.

5. Медведев В.С., Потемкин В.Г. Нейронные сети. МА^АВ 6. М.: Диалог МИФИ. 2002.

i Надоели баннеры? Вы всегда можете отключить рекламу.