Моделирование параллельных алгоритмов шифрования информации

Бесплатный доступ

В статье рассмотрены вопросы моделирования параллельных алгоритмов шифрования информации с использованием системы остаточных классов и приведены примеры алгоритмов шифрования RSA, восстановления чисел и моделирования параллельных алгоритмов шифрования в среде Matlab Simulink. Целью статьи является увеличение криптостойкости путем параллельного выполнения различных криптографических алгоритмов или параллельного использования одного алгоритма, но с разными ключами.

Параллельные алгоритмы, шифрование информации, алгоритм rsa

Короткий адрес: https://sciup.org/140191592

IDR: 140191592

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

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

Постановка задачи и моделирование алгоритма шифрования RSA в среде Matlab Simulink

В настоящее время наиболее важную роль играет защита электронной информации от несанкционированного доступа. Для защиты информации используют различные криптографические алгоритмы, такие как RSA, DSA, ГОСТ 2814789, Шифросистема Эль-Гамаля и многие другие.

Надежность криптографических алгоритмов во многом зависит от сложности реализации и от длины ключа шифрования данных. При моделировании в системе Matlab Simulink был использован алгоритм шифрования RSA – криптографический алгоритм с открытым ключом (RSA стал первым алгоритмом такого типа, пригодным и для шифрования и цифровой подписи, сегодня он используется в большом числе криптографических приложений [1]).

Возьмем два больших простых числа р и q . Определим n как результат умножения p на q'.n = р • q. Выберем случайное число, которое назовем d : это число должно быть взаимно простым (не иметь ни одного общего делителя, кроме единицы, с результатом умножения ip_W_XW

Определим также число e , для которого является истинным следующее соотношение (e • d) mod( p -1) • (q -1) = 1. Назовем открытым ключом числа e и n, а секретным – d и n. Задача состоит в том, чтобы зашифровать текст, рассматриваемый как последовательность чисел м^ , по формуле С(Г) = (MdY^modn . Чтобы расшифровать данные, необходимо выполнить вычисления M(i) = (C(z/) mod и . В результате будет получено множество чисел M(i) , которые представляют собой исходный текст.

Следующий пример наглядно демонстрирует алгоритм шифрования RSA.

Зашифруем и расшифруем сообщение «САВ» по алгоритму RSA. Для простоты возьмем небольшие числа, что сократит расчеты.

Выберем p = 3 и q = 11.

Определим 77 = 3'11 = 33.

Найдем (^-IH^-ll^O. Пусть d будет равно, например, 3, то есть d — 3 .

Выберем число e по формуле: (е • 3)mod 20 = 1. В нашем случае e будет равно, Т. (е = 7). Представим шифруемое сообщение как последовательность чисел в диапазоне от 0 до 32. Буква ^ = 13, 5 = 17, С = 19. Теперь зашифруем сообщение, используя открытый ключ {7,33}:

С1 = (13 7)mod 33 = 62748517 mod 33 = 7;

С2 = (177) mod 33 = 410338673 mod33 = 8;

СЗ = (197)mod33 = 893871739 mod 33 = 13.

Теперь расшифруем данные, используя закрытый ключ {3,33}:

Ml = (73)mod33 = 343mod33 = 13 (A);

Л72 = (83)mod33 = 512mod33 = 17 (B);

М3 = (133)mod33 = 2197mod33 = 19(C).

Данные расшифрованы [2].

Примеры моделирования алгоритмов RSA в Matlab Simulink представлены на рис. 1-2.

Рис. 1. Пример моделирования шифрования алгоритма RSA

Рис. 1. Пример моделирования дешифрования алгоритма RSA

Использование СОК для разделения информации на модули и и восстановления ее

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

Для передачи данных после шифрования по одному каналу и разделения входного сигнала на отдельные составляющие используются, соответственно, блок мультиплексора и блок демультиплексора. Основным параметром мультиплексора является число входов, демультиплексора – число выходов [3-4]. Примеры использования мультиплексора и демультиплексора представлены на рис. 3.

На входы мультиплексора подаются два сигнала разной частоты, представленные двумя графиками: мультиплексор коммутирует их на один выход, скоммутированные сигналы в один канал представлены графиком. Далее демультиплексор коммутирует сигнал со входного канала на два выходных сигнала, также представленные графиками.

Рис. 3. Пример использования мультиплексора и демультиплексора

После дешифровки данных, чтобы получить исходную информацию, использовалось преобразование СОК → ПСС, где ПСС – позиционная система счисления. При преобразовании СОК → ПСС использовался метод ортогональ- ных базисов. Преобразование кода числа А, заданного в СОК, в ПСС можно осуществить в соответствии с выражением, записанным в виде 4 = (^

Следующий пример демонстрирует преобразование из остаточных классов в позиционный код. Возьмем число Л = 103. Дана система оснований Pi=2, p2=3, p3 =5, pA=T, p5 =11, объем диапазона равен P = 2-3•5•7 • 11 = 2310. Представим число A в системе остаточных классов по системе оснований p, A = (1,1, 3,5,4).

Для расчета ортогональных базисов найдем величины P :

i

„ p

2310

„ P 2310

p\ = — =

: 1155; Л, = — =-----= 770 ;

P\

2

" P2 3

„ p

2310

„ P 2310

p3 = — =

= 462 ; P4 = — =----= 330 ;

Рз

5

Pa 7

n p

2310

p5 = — --

= 210.

Рз

11

Ищем веса базисов: 1155 ■ mx = l(mod2), методом подбора находим mA =  1;

770- m2 = l(mod3), методом подбора находим m2ее 2; 462 • m3 = l(mod5), методом подбора находим m3 = 3; 330-w4 = I(mod7), методом подбора находим m4 = 1; 210- m5 = l(modl 1), методом подбора находим m5ее 1.

Далее вычислим сами базисы:

5, = m, • 7^ = 1 ■ 1155 = 1155;

B2=m2-P2 =2-770 = 1540;

B, = m3-P3 =3-462 = 1386;

B4 = m4 • P4 = 1 • 330 = 330;

B5=m5-P5 =1-210 = 210.

Далее, имея значения базисов, вычислим значения числа А:

АЦ 1-1155 + 1-1540 + 3-1386 + 5 • 330 +

+ 4-210 I2310 = |9343|23io =ЮЗ.

Из расчета видно, что переведенное из СОК число идентично исходному числу.

Моделирование параллельных алгоритмов шифрования в среде Mathlab simulink

На рис. 4 приведен пример модели параллельных алгоритмов шифрования при моделировании в среде Matlab Simulink.

Рис. 4. Модель параллельных алгоритмов шифрования

При моделировании в среде Matlab исходная информация разбита на пять модулей ^ = (2,3,5,7,11). Каждый модуль зашифрован алгоритмом RSA.

Алгоритм, представленный на рис. 4, можно условно разбить на пять частей. В первой части входной сигнал представляется в СОК по системе оснований p = (2,3,5,7,11). Во второй части информация, представленная в СОК, параллельно шифруется алгоритмами RSA. В третьей части сигнал после шифрования для передачи данных по одному каналу коммутируется мультиплексором в один канал, и для дешифровки данных ско-мутированный сигнал разделяется демультиплексором на пять каналов. В четвертой части сигнал дешифруется. В пятой части сигнал восстанавливается из СОК. Проверка на правильность выполнения путем вычитания входной и выходной информации.

Рассмотрим пример использования параллельных алгоритмов шифрования.

Зашифруем сообщение «АВС», используя параллельные алгоритмы шифрования. Представим сообщения как последовательность чисел A = 13,5 = 17,C = 19. Представим сообщение в СОК по системе оснований p = (2,3,5,7,11); A = (1,1,3,6,2);

B = (1,2,2,3,6); C = (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} и закрытый {41,437} – пример расчета ключей см. выше. При моделировании в среде Matlab Simulink, так как значения переменных при возведении в степень выходили за область определения, во всех алгоритмах шифрования использовались одинаковые ключи шифрования: открытый ключ {7,33} и закрытый {3,33}.

Теперь зашифруем сообщения, используя данные ключи:

СЛ1 = (l7)mod33 = 1; СВ1 = (l7)mod33 = 1;

Ccl = (l7)mod33 = 1; CA2 = (l")mod91 = 1;

Cs2 = (2n)mod91 = 46; Cc2 = (ln)mod91 = 1;

C43 = (317)mod65 = 48; CB3 = (217)mod65 = 32;

Cc3 = (4l7)mod65 = 49; CA4 = (65)mod34 = 24;

Cs4 = (35)mod34 = 5; Cc4 = (55)mod34 = 31;

Ca5 = (229)mod437 = 243; CB5 = (629)mod437 = 302;

Cc5 = (829)mod437 = 12.

Итак, зашифрованное сообщение примет вид CA = (1,1,48,24,243); CB = (1,46,32,5,302);

Cc =(1,1,49,31,12).

Далее расшифруем сообщение:

MA1 = (l3) mod 33 = 1; MB1 = (I3) mod 33 = 1;

Mc\ =(l3)mod33 = l; MA2 = (l59)mod91 = 1;

MB2 = (4659)mod91 = 2; Mc2 = (l59)mod91 = 1;

MA3 = (48113)mod65 = 3; MB3 = (32113)mod65 = 2;

Mc3 = (49ll3)mod35 = 4; MA4 = (24l3)mod34 = 6;

MB4 = (513)mod34 = 3; Mc4 = (3113)mod34 = 5;

MAS = (24341)mod437= 2; MB5 = (302”)mod437= 6;

Mc5 = (1241)mod437 = 8.

Расшифрованное сообщение примет вид

MA = (1,1,3,6,2) = A; MB = (1,2,2,3,6) = в;

Mc = (1,1,4,5,8) = C .

Таким образом, после расшифровки мы получили исходное сообщение.

Восстановим расшифрованное сообщение преобразованием СОК → ПСС (пример преобразования СОК → ПСС см. выше).

A = |1 • 1155 + 1 -1540 + 3 -1386 + 6 • 330 + 2 • 210|^3w =

= I92531,,» =13 ■

В = |2 ■ 1155 + 2 ■ 1540 + 2 ■ 1386 + 3 ■ 330 + 6 ■ 210|^310 =

= I9257 lMM =17 ■

C = |1 -1155 + 1 -1540 + 4 -1386 + 5 - 330 + 8 ■ 210|7310 =

-111560 |2,|0 =19 .

Сравним данные, зашифрованные простым алгоритмом RSA, и данные, полученные при использовании параллельных алгоритмов шифрования. В примере для шифрования использовались одинаковые сообщения «АВС», при использовании алгоритма RSA мы получили следующее сообщение C1 = 7,C2 = 8,C3 = 13. При использовании параллельных алгоритмов шифрования мы получили сообщение

CA = (1,1,48,24,243); CB = (1,46,32,5,302);

Cc =(1,1,49,31,12).

Выводы

Данные, зашифрованные при помощи параллельных алгоритмов шифрования, имеют достаточно сложную структуру. Получение исходной информации из зашифрованной усложняется необходимостью взломать каждый алгоритм отдельно. Исследования выполнены при поддержке гранта РФФИ 12-07-00482-а.

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

  • 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
Статья научная