МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ ШИФРОВАНИЯ ИНФОРМАЦИИ
- Авторы: Кочеров Ю.Н1, Червяков Н.И2
-
Учреждения:
- Северо-Кавказский государственный технический университет
- Ставропольский государственный университет
- Выпуск: Том 10, № 4 (2012)
- Страницы: 70-74
- Раздел: Статьи
- URL: https://journals.eco-vector.com/2073-3909/article/view/55873
- ID: 55873
Цитировать
Полный текст
Аннотация
В статье рассмотрены вопросы моделирования параллельных алгоритмов шифрования информации с использованием системы остаточных классов и приведены примеры алгоритмов шифрования RSA, восстановления чисел и моделирования параллельных алгоритмов шифрования в среде Matlab Simulink. Целью статьи является увеличение криптостойкости путем параллельного выполнения различных криптографических алгоритмов или параллельного использования одного алгоритма, но с разными ключами.
Ключевые слова
Полный текст
Введение В современном информационном мире информация становится более ценным ресурсом, чем материальные и энергетические ресурсы. Владение точной и достоверной информацией дает преимущество той стороне, которая ею владеет, - особенно если эта информация касается конкурентов. Обладание такой информацией позволяет ее владельцу получить выигрыш: материальный, политический или военный. В современном мире необходимо защищать огромное количество информации, хранимой в базах данных и предаваемой по информационным сетям. Постановка задачи и моделирование алгоритма шифрования RSA в среде Matlab Simulink В настоящее время наиболее важную роль играет защита электронной информации от несанкционированного доступа. Для защиты информации используют различные криптографические алгоритмы, такие как RSA, DSA, ГОСТ 2814789, Шифросистема Эль-Гамаля и многие другие. Надежность криптографических алгоритмов во многом зависит от сложности реализации и от длины ключа шифрования данных. При моделировании в системе Matlab Simulink был использован алгоритм шифрования RSA - криптографический алгоритм с открытым ключом (RSA стал первым алгоритмом такого типа, пригодным и для шифрования и цифровой подписи, сегодня он используется в большом числе криптографических приложений [1]). Возьмем два больших простых числа р и q . Определим n как результат умножения p на q:n = р ■ q. Выберем случайное число, которое назовем d: это число должно быть взаимно простым (не иметь ни одного общего делителя, кроме единицы, с результатом умножения (р-1).(?-1)). Определим также число е, для которого является истинным следующее соотношение (е ■ c/)mod(/7 -1) • (q -1) = 1. Назовем открытым ключом числа ей п, а секретным - d и п. Задача состоит в том, чтобы зашифровать текст, рассматриваемый как последовательность чисел М(г), по формуле C(i) = (M(i)e)modn. Чтобы расшифровать данные, необходимо выполнить вычисления M(i) = (C(i)d)modn. В результате будет получено множество чисел М(г) , которые представляют собой исходный текст. Следующий пример наглядно демонстрирует алгоритм шифрования RSA. Зашифруем и расшифруем сообщение «САВ» по алгоритму RSA. Для простоты возьмем небольшие числа, что сократит расчеты. Выберем Р = 3 и <7 = 11. Определим « = 3-11 = 33. Найдем (р -1) • (q -1) = 20. Пусть d будет равно, например, 3, то есть d = 3. «Инфокоммуникационные технологии» Том 10, № 4, 2012 Кочеров Ю.Н., Червяков Н.И. 71 Выберем число e по формуле: (е • 3)mod 20 = 1. В нашем случае e будет равно, 7: (е = 1). Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32. Буква ^4 = 13, 2? = 17, С-19. Теперь зашифруем сообщение, используя открытый ключ {7,33}: С\ = (137)mod 33 = 62748517 mod 33 = 7; C2 = (177)mod33 = 410338673 mod33 = 8; СЗ = (197)mod33 = 893871739 mod33 = 13. Теперь расшифруем данные, используя закрытый ключ {3,33}: Ml = (73) mod 33 = 343 mod 33 = 13 (А); М2 - (83)mod33 = 512mod33 = 17 (В); М3 = (133)mod33 = 2197mod33 = 19(C). Данные расшифрованы [2]. Примеры моделирования алгоритмов RSA в Matlab Simulink представлены на рис. 1-2. Рис. 1. Пример моделирования шифрования алгоритма RSA Использование СОК для разделения информации на модули и восстановления ее Для параллельного использования нескольких алгоритмов шифрования необходимо представить входную информацию в системе остаточных классов (СОК). Система остаточных классов дает нестандартное представление для чисел и используется для повышения эффективности операций над кодами в остатках. Дело в том, что в данной системе числа представляются своими остатками от деления на выбранную систему оснований и все рациональные операции могут выполняться параллельно над цифрами каждого разряда в отдельности. После представления информации в СОК она шифруется алгоритмами RSA (пример работы алгоритма см. выше). Для передачи данных после шифрования по одному каналу и разделения входного сигнала на отдельные составляющие используются, соответственно, блок мультиплексора и блок демультиплексора. Основным параметром мультиплексора является число входов, демультиплексора - число выходов [3-4]. Примеры использования мультиплексора и демультиплексора представлены на рис. 3. На входы мультиплексора подаются два сигнала разной частоты, представленные двумя графиками: мультиплексор коммутирует их на один выход, скоммутированные сигналы в один канал представлены графиком. Далее демультиплексор коммутирует сигнал со входного канала на два выходных сигнала, также представленные графиками. Рис. 1. Пример моделирования дешифрования алгоритма RSA Рис. 3. Пример использования мультиплексора и демультиплексора После дешифровки данных, чтобы получить исходную информацию, использовалось преобразование СОК ^ ПСС, где ПСС - позиционная система счисления. При преобразовании СОК ^ ПСС использовался метод ортогональ «Инфокоммуникационные технологии» Том 10, № 4, 2012 72 Кочеров Ю.Н., Червяков Н.И. ных базисов. Преобразование кода числа А, заданного в СОК, в ПСС можно осуществить в соответствии с выражением, записанным в виде п A = (^ialBi)moAPni где щ - значение разрядов числаA по модулю Pi, В; - ортогональные базисы системы, Рп= Pi'р2щ•••'Рп [5]. Следующий пример демонстрирует преобразование из остаточных классов в позиционный код. Возьмем число ^4 = 103. Дана система оснований Pi=2, р2=3, Ръ=5, Р4=7, /?5=11, объем диапазона равен /* = 2*3*5*7-11 = 2310. Представим число A в системе остаточных классов по системе оснований р, А = ( 1,1,3,5,4)-Для расчета ортогональных базисов найдем величины P : д=— Pi Р 2310 = 1155; Р2= — Р2 Р 2310 Р 2310 Р 2310 р =Jr =zjiu=462; ^ =Jr =z^u = зз0. Рз Ра Р5= — Р 2310 р5 11 210. Ищем веса базисов: 1155-ти1 =l(mod2), методом подбора находим щ = 1; 770- щ =l(mod3), методом подбора находим т2 = 2; 462-/И, =l(mod5), методом подбора находим щ = 3; 330*/w4 =l(mod7), методом подбора находим тА = 1; 210-/w5 =l(modll), методом подбора находим т5 = 1. Далее вычислим сами базисы: ^=/^*/>=1*1155 = 1155; Щ-Щ'Рі =2*770 = 1540; В3=Щ‘Р3 = 3*462 = 1386; В4=т4'Р4 =1- 330 = 330; В5=т5-Р5 =1*210 = 210. Далее, имея значения базисов, вычислим значения числа А: А= |1*1155 +1*1540 +3*1386 +5*330 + + 4-210 |2310 = |9343|2310 =103. Из расчета видно, что переведенное из СОК число идентично исходному числу. Моделирование параллельных алгоритмов шифрования в среде Mathlab simulink На рис. 4 приведен пример модели параллельных алгоритмов шифрования при моделировании в среде Matlab Simulink. Рис. 4. Модель параллельных алгоритмов шифрования При моделировании в среде Matlab исходная информация разбита на пять модулей /> = (2,3,5,7,11). Каждый модуль зашифрован алгоритмом RSA. Алгоритм, представленный на рис. 4, можно условно разбить на пять частей. В первой части входной сигнал представляется в СОК по системе оснований р = (2,3,5,7,11). Во второй части информация, представленная в СОК, параллельно шифруется алгоритмами RSA. В третьей части сигнал после шифрования для передачи данных по одному каналу коммутируется мультиплексором в один канал, и для дешифровки данных ско-мутированный сигнал разделяется демультиплексором на пять каналов. В четвертой части сигнал дешифруется. В пятой части сигнал восстанавливается из СОК. Проверка на правильность выполнения путем вычитания входной и выходной информации. Рассмотрим пример использования параллельных алгоритмов шифрования. Зашифруем сообщение «АВС», используя параллельные алгоритмы шифрования. Представим сообщения как последовательность чисел А = 139В = 17,С = 19. Представим сообщение в СОК по системе оснований Р = (2,3,5,7,11); А = (1,1,3,6,2); В = (1,2,2,3,6); С = (1,1,4,5,8). Зашифруем сообщение, представленное в СОК, используя для каждого модуля свой ключ. Для числа по модулю 2 мы будем использовать открытый ключ {7,33} и закрытый {3,33}, для модуля числа 3 открытый ключ {11,91} и закрытый {59,91}, для модуля числа 5 открытый ключ {17,65} и закрытый {113,65}, для модуля числа 7 открытый ключ {5,34} и закрытый {13,34} и для модуля числа 11 открытый ключ {29,437} «Инфокоммуникационные технологии» Том 10, № 4, 2012 Кочеров Ю.Н., Червяков Н.И. 73 и закрытый {41,437} - пример расчета ключей см. выше. При моделировании в среде Matlab Simulink, так как значения переменных при возведении в степень выходили за область определения, во всех алгоритмах шифрования использовались одинаковые ключи шифрования: открытый ключ {7,33} и закрытый {3,33}. Теперь зашифруем сообщения, используя данные ключи: СА1 = (I7)mod33 = 1; Св 1 = (l7)mod33 = 1; Сс 1 = (I7)mod33 = 1; СА2 = (ln)mod91 = 1; Св2 = (2n)mod91 = 46; Сс2 = (ln)mod91 = 1; САЪ = (З17)mod65 = 48; Св3 = (217)mod65 = 32; Сс3 = (417)mod65 = 49; Сл4 = (65)mod34 = 24; Св4 = (З5)mod34 = 5; Сс4 = (55)mod34 = 31; СА5 = (229)mod437=243; Св5 = (629)mod437 = 302; Сс5 = (829)mod437 = 12. Итак, зашифрованное сообщение примет вид СА = (1,1,48,24,243) ; Св = (1,46,32,5,302); Сс= (1,1,49,31,12). Далее расшифруем сообщение: МА1 = (I3)mod33 = 1; Мв 1 = (l3)mod33 = 1; Мс 1 = (I3)mod33 = 1; МА2 = (l59)mod91 = 1; Мв2 = (4659)mod91 = 2; Мс2 = (l59)mod91 = 1; МАЪ = (48113)mod65 = 3; Мв3 = (32113)mod65 = 2; МСЪ = (49113)mod35 = 4; МА4 = (2413)mod34 = 6; Мв4 = (513)mod34 = 3; Мс4 = (3113)mod34 = 5; МА5 = (24341)mod437=2; Мв5=(302fVod437=6; Мс 5 = (1241)mod437 = 8. Расшифрованное сообщение примет вид МА = (1,1,3,6,2) = А; Мв = (1,2,2,3,6) = В; Мс =(1,1,4,5,8) = С. Таким образом, после расшифровки мы получили исходное сообщение. Восстановим расшифрованное сообщение преобразованием СОК ^ ПСС (пример преобразования СОК ^ ПСС см. выше). Л = |l-1155+ 1-1540+ 3-1386+ 6-330 +2-210|231() = = І9253 I = 13 rz,JJ 12310 ■ В = \2 • 1155 + 2 • 1540 + 2 • 1386 + 3 • 330 + 6 • 2Ю|2310 = = І9257 I = 17 rZ3/ 12310 11 ' С = |1 • 1155 +1 -1540 + 4 • 1386 + 5 • 330 + 8 • 210|231Q = = 111569 |2310 =19. Сравним данные, зашифрованные простым алгоритмом RSA, и данные, полученные при использовании параллельных алгоритмов шифрования. В примере для шифрования использовались одинаковые сообщения «АВС», при использовании алгоритма RSA мы получили следующее сообщение C1 = 7,C2 = 8,C3 = 13. При использовании параллельных алгоритмов шифрования мы получили сообщение С л = (1,1,48,24,243) ; Св = (1,46,32,5,302); Сс= (1,1,49,31,12). Выводы Данные, зашифрованные при помощи параллельных алгоритмов шифрования, имеют достаточно сложную структуру. Получение исходной информации из зашифрованной усложняется необходимостью взломать каждый алгоритм отдельно. Исследования выполнены при поддержке гранта РФФИ 12-07-00482-а.×
Об авторах
Ю. Н Кочеров
Северо-Кавказский государственный технический университет
Email: kocherov_yra@mail.ru
аспирант Кафедры «Информационные системы, электропривод и автоматика» Невинномысского технологического института - филиала Северо-Кавказского государственного технического университета.
Н. И Червяков
Ставропольский государственный университет
Email: kfmf-primath@stavsu.ru
Заслуженный деятель науки и техники РФ, доктор технических наук, профессор Кафедры «Прикладная математика и информатика» Ставропольского государственного университета.
Список литературы
- http://www.anti-malware.ru/rsa
- http://www.e-nigma.ru/stat/rsa/
- http://subscribe.ru/archive/tech. digitchip01/200212 /19092116.html
- Черных И.В. Simulink: инструмент моделирования динамических систем // http://www. knigka.info/2008/10/03/simulink-instrument-modelirovanija.html
- Модулярные параллельные вычислительные структуры нейропроцессорных систем. Под. ред. Н.И. Червякова. М.: Физматлит, 2003. -288 с.
- http://www.cybersecurity.ru/crypto/85133.html
Дополнительные файлы
