УДК 004.056.57 Л. Х. Мифтахова
ПРИМЕНЕНИЕ НЕЧЕТКОЙ ЛОГИКИ ПРИ ПРОЕКТИРОВАНИИ ЛОКАЛЬНЫХ СЕТЕЙ С КРИПТОГРАФИЧЕСКОЙ ЗАЩИТОЙ ИНФОРМАЦИИ
Ключевые слова: нечеткая логика, симметричный алгоритм блочного шифрования, алгоритм Рэндала, беспроводные сети.
В представленной статье рассматривается метод шифрования с использованием теории нечетких множеств для повышения уровня безопасности беспроводных сетей. Информация, подлежащая передаче, шифруется с использованием симметричного алгоритма блочного шифрования.
Keywords: fuzzy logic, asymmetric block cipher algorithm, Rijndael algorithm, wireless networks.
In the present article deals with the encryption method using the theory of fuzzy sets to enhance the security of wireless networks. Information to be transmitted is encrypted using an asymmetric encryption algorithm block.
Введение
Нечеткая логика представляет собой подход к вычислению на основе т.н. «степеней правды», а не обычных уровней «истина» или «ложь» (1 или 0) булевой логики, на которой базируется современный компьютер. Понятия «нечеткие множества» и «нечеткая логика» являются обобщением теории классических множеств и классической (булевой) логики.
Идея нечеткой логики была впервые выдвинута доктором Лютфе Заде из Университета Калифорнии в Беркли в 1960-е годы. Доктор Заде работал над проблемой компьютерного понимания
естественного языка. Естественный язык (как и большинство других видов деятельности и природы) не так легко переводится в абсолютных терминах 0 и 1. Всё ли в конечном счете, описывается в терминах бинарной логики - вопрос философский, но на практике многие данные так или иначе, на основе промежуточных математических функций переводятся в булеву алгебру.
Нечеткая логика включает в себя 0 и 1, как крайние случаи истины (или «факт»), но и включает в себя различные состояния истины так, что, например, в результате сравнения между двумя логическими выражениями могут быть значения «не совсем истина» или «далеко не истина». Нечеткая логика ближе к тем правилам, по которым функционирует человеческий мозг. Человек собирает данные и формируют ряд частичных истин, которые формируют более высокие степени истины, которые, в свою очередь, при определенном превышении установленных пороговых значений, вызывают дальнейшие изменения в человеческом восприятии информации и реакции на нее. Подобные процессы являются основой построения искусственных компьютерных нейронных сетей и экспертных систем [1, 4].
В этой статье мы сконцентрируемся на реализации методов нечеткой логики при шифровании с использованием асимметричного ключа. Нечеткая логика, в данном случае, представляет собой методологию решения проблем передачи данных, которая может найти свое применение в различных системах, начиная от простых, небольших встраиваемых
микроконтроллеров до крупных, сетевых, многоканальных персональных компьютеров или серверов для сбора данных и управления рабочими станциями. Представленный метод может быть реализован в виде аппаратных средств, программного обеспечения (или) в виде их сочетания. [2, 9] Нечеткая логика обеспечивает простой способ решения на основе расплывчатой, неоднозначной/неточной входной информации или в условиях ее отсутствия. Основная концепция, лежащая в основе нечеткой логики, - понятие лингвистической переменной - переменная, значениями которой являются слова/предложения в естественных/искусственных языках.
В настоящее время, проблема сетевой безопасности становится все более актуальной, поскольку объем данных, которыми обмениваются пользователи посредством Интернет и локальных сетей приближается миллиардам терабайт [8]. Согласно [3] безопасность компьютерных сетей вообще и беспроводных сетей в частности содержит в себе три главных аспекта: конфиденциальность, целостность и подлинность авторства. Популяризация применения мультимедийных технологий, и все возрастающая способность передачи данных посредством этих технологий через компьютерные сети постепенно приводит к вопросу о защите и безопасности. Применение методов криптографической защиты информации с открытым ключом удобны тем, что они не требуют дополнительного канала связи для обмена закрытым ключом между отправителем и получателем [7]. Тем не менее, они часто основываются на сложных математических вычислениях и, как правило, гораздо менее эффективны по сравнению с криптосистемами на симметричном ключе.
Основная часть
Безопасность является основной проблемой в современных системах передачи данных. Повышение уровня опасности кибер-преступлений связано, прежде всего, с возросшими возможностями вычислительных систем: повысилась вероятность вычисления пароля перебором возможных вариантов (т.н. «атака по словарю» и «атака с полным перебором пароля»);
определение пароля по открытой части зашифрованного сообщения («атака по открытому тексту»). Поэтому основное внимание следует уделить тому, как сохранить ключ в тайне и обеспечить его безопасный обмен между отправителем и получателем зашифрованного текста. В данной работе текст будет зашифрован на основе алгоритма Рэндала с симметричным ключом, т. е. шифрование и дешифрование текста будет происходить с использованием одного и того же ключа. Алгоритм Рэндала (Advanced Encryption Standard, AES) является одним из симметричных алгоритмов блочного шифрования. Алгоритм был принят в качестве стандарта шифрования правительством США по результатам конкурса AES в 2000 году. На сегодняшний день алгоритм хорошо проанализирован и широко используется. По состоянию на 2009 год AES является одним из самых распространённых алгоритмов
симметричного шифрования. Поддержка AES введена фирмой Intel в семейство процессоров x86 начиная с Intel Core i7-980X Extreme Edition, а затем на процессорах Sandy Bridge, что говорит о значительном доверии к алгоритму.
Для описания алгоритма Рэндала применимы следующие переменные [5] :
- BLOCK - последовательность байт, из которых состоят входные и выходные блоки информации, а также ключи шифрования;
- CIPHER KEY - прямоугольный массив байтов, имеющий 4 строки и NK колонок, в котором хранится информация о секретном ключе;
- CIPHERTEXT - выходные данные алгоритма Рэндала;
- KEY EXPANSION - процедура конечной генерации секретного пароля;
- ROUND KEY - секретный пароль, используемый при шифровании и дешифровании;
- STATE - промежуточный результат шифрования, представленный в виде прямоугольного массива байтов из 4 строк и NB колонок;
- S-BOX - нелинейная таблица замен, использующаяся в нескольких циклах трансформации замены байтов и в процедуре KEY EXPANSION для взаимнооднозначной замены значения байта;
- NB - число столбцов (32-битных слов), составляющих основу переменной STATE (в стандарте AES NB=4);
- NK - число 32-битных слов, составляющих секретный ключ (в стандарте AES NK=4, 6 или 8);
- NR - число циклов, которое является функцией NK и NB (для стандарта NR=10, 12 или 14);
- RCON[] - массив, который состоит из битов 32-разрядного слова и является постоянным для данного цикла.
Вспомогательные процедуры и функции алгоритма Рэндала:
- ADDROUNDKEY() - процедура обработки исходного текста при шифровании и дешифровании, при которой ROUND KEY и STATE подвергаются логической операции XOR. Длина ROUNDKEY равна длине STATE (т.е., если NB=4, то длина ROUNDKEY равна 128 бит=16 байт);
- INVMIXCOLUMNS() - процедура обработки текста при дешифровании, которая является обратной по отношению к MIXCOLUMNS();
- INVSHIFTROWS() - процедура обработки текста при дешифровании, которая является обратной по отношению к дешифровании SHIFTROWS();
- INVSUBBYTES() - трансформация при расшифровании, которая является обратной по отношению к SUBBYTES();
- MIXCOLUMNS() - процедура трансформации текста при шифровании, которая произвольно перемещает столбцы STATE и смешивает их содержимое;
- ROTWORD() - функция, используемая в процедуре KEY EXPANSION(), которая производит циклическую перестановку 4-байтового слова открытого текста;
- SHIFTROWS() - процедура трансформации при шифровании, которая обрабатывает массив STATE, циклически смещая последние три строки этого массива на разные величины;
- SUBBYTES() - процедура трансформации при шифровании, которая обрабатывает массив STATE, используя нелинейную таблицу замещения байтов (S-BOX), применяя её независимо к каждому байту массива STATE;
- SUBWORD() - функция, используемая в процедуре KEY EXPANSION, которая берёт на входе 4-байтовое слово и, применяя к таблице S-BOX к каждому из 4 байтов, выдаёт выходное слово.
Для стандарта AES длина блока входных данных и массива STATE постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. [6] При этом, исходный алгоритм Рэндала допускает длину ключа и размер блока от 128 до 256 бит с шагом в 32 бита. Для обозначения выбранных длин входного текста, массива STATE и ключа CIPHER KEY в 32-битных словах используется переменная NB=4 для входного текста и массива STATE, NK=4, 6, 8 для ключа CIPHER KEY соответственно для разных длин ключей. В начале алгоритма шифрования некоторый входной текст INPUT копируется в массив STATE по правилу:
state[r,c] = input[r+4c], для 0<r<4 и 0<c<NB. После этого к массиву STATE применяется процедура ADDROUNDKEY() и массив проходит через эту процедуру циклично 10, 12 или 14 раз (в зависимости от длины ключа). При этом последний цикл отличается от предыдущих. Таким образом, в массиве STATE сохраняется промежуточный вариант шифрования, которые далее копируется в переменную OUTPUT по правилу:
output[r+4c]=state[r,c],
для 0<r<4 и 0<c<NB.
Отдельные процедуры SUBBYTES(), SHIFTROWS(), MIXCOLUMNS(), И
ADDROUNDKEY() также необходимы для обработки массива данных STATE. Их общий смысл был описан выше.
Для оценки секретности передаваемого по локальной сети сообщения необходимо проведение качественной экспертной оценки. В качестве основы построения экспертной оценки можно использовать элементы нечетких множеств. В представленной статье для шифрования данных секретный ключ генерируется с использованием стандартного алгоритма AES. Полученный шифр текста сохраняется памяти для организации процедуры сравнения. Из текста формируется матрица со значениями кода ASCII зашифрованного текста. Далее, матрица преобразуется в двоичный код, которому применяется функция нечетких множеств, где каждое значение сформировано на основе матрицы нечетного множества, в зависимости от предварительной экспертной оценки входного текста. Для расшифровки текста формируется транспонированная матрица. Следующие шаги заключаются в процессе извлечения зашифрованных данных из удаленной системы. Общая структура предлагаемой системы шифрования данных представлена на рис. 1.
Выводы
В представленной статье предложен алгоритм стандартного шифрования AES, основанный на алгоритме Рэндала, с использование матрицы нечеткого множества. Применение функций и правил формирования нечетких множеств может автоматизировать работу систем
шифрования/дешифрования информации
различного уровня секретности, тем самым уменьшая время получения секретного и открытого текста.
Литература
1. Dr. Brian Gladman, Rijndeal, "A Specification for the AES Algorithm". - 245 p.
2. J.Daeman and V.Rijndael. http://www.esat.kuleven.ac.be/rijmen/rijndael/rijndaelv2.zip, 1999.
3. B. Gladman, "A Specification for Rijndael, the AES Algorithm"http://fp.gladman.plus.com/cryptography_techno logy/Rijndael.aes.spec.311 .pdf
4. Hexiong Yang, Chongwen Li, Fuzzy Mathematics and Its Application, Tianjin: Tianjin Science & Technology Publishing House, 1990 - P. 37-101.
5. Le Luo A method of quality evaluation of hydropower project based on fuzzy mathematics. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2004, №32(08) - p. 82-84.
6. V.Potdar and E.Chang "Disguising text cryptography", International Network Conference in Plumouth, Uk, 2004 -154 p.
7. Shafi Golgwasser, Mihir Bellare, "Lecture Notes on Cryptography", July 2008 - 245 p.
8. William Stallings, "Cryptography and Network Security", Fourth Edition, June 3 - 96 p.
9. "Fuzzy Sets and Applications: Selected Papers by L. AZadeh", ed. R.R Yager et al. - 36 p.
Рис. 1 - Структура системы шифрования данных с применением функций нечетких множеств
© Л. Х. Мифтахова - старший преподаватель кафедры информационной безопасности КНИТУ, [email protected].
© L. H. Miftakhova - senior lecturer in information security of Kazan National Research Technological University; [email protected].