MODELING OF PARALLEALGORITMS FOR ENCRYPTION INFORMATION


Cite item

Abstract

This article discusses the questions of modeling of parallel encryption algorithms of the information with usage of system of residual classes. It also presents the examples of RSA encryption algorithms, restoration of numbers and modeling of parallel algorithms of enciphering in the environment of Matlab Simulink. The purpose of the given article is magnifications cryptographic strength by parallel performance of various cryptographic algorithms or parallel use of one algorithm, but with different keys.

Full Text

Введение В современном информационном мире информация становится более ценным ресурсом, чем материальные и энергетические ресурсы. Владение точной и достоверной информацией дает преимущество той стороне, которая ею владеет, - особенно если эта информация касается конкурентов. Обладание такой информацией позволяет ее владельцу получить выигрыш: материальный, политический или военный. В современном мире необходимо защищать огромное количество информации, хранимой в базах данных и предаваемой по информационным сетям. Постановка задачи и моделирование алгоритма шифрования 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-а.
×

References

  1. http://www.anti-malware.ru/rsa
  2. http://www.e-nigma.ru/stat/rsa/
  3. http://subscribe.ru/archive/tech. digitchip01/200212 /19092116.html
  4. Черных И.В. Simulink: инструмент моделирования динамических систем // http://www. knigka.info/2008/10/03/simulink-instrument-modelirovanija.html
  5. Модулярные параллельные вычислительные структуры нейропроцессорных систем. Под. ред. Н.И. Червякова. М.: Физматлит, 2003. -288 с.
  6. http://www.cybersecurity.ru/crypto/85133.html

Copyright (c) 2012 Kocherov Y.N., Chervyakov N.I.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies