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

Алгоритм RSА предложили в 1978 г. три автора: Р.Райвест (rivest), А.Шамир (Shamir) и А.Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алго­ритм RSА стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.

Надежность алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных лога­рифмов. .

В криптосистеме RSА открытый ключ Кв, секретный ключ kв, сообщение М и криптограмма С принадлежат множеству це­лых чисел

ZN = {0, 1,2, ...,N-1}, (4.1)

где N - модуль: N = Р*Q. (4.2)

Здесь Р и Q - случайные большие простые числа. Для обеспече­ния максимальной безопасности выбирают Р и О равной длины и хранят в секрете.

Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.

Открытый ключ КВ выбирают случайным образом так, что­бы выполнялись условия:

 

1 < КВ <= f(N), НОД (КВ, f(N)) = 1, (4.3)

f(N) = (P-1)(Q-1) (4.4)

где f(N) - функция Эйлера.

 

Функция Эйлера f(N) указывает количество положитель­ных целых чисел в интервале от 1 до N, которые взаимно про­сты с N.

Второе из указанных выше условий означает, что открытый ключ КВ и функция Эйлера f(N) должны быть взаимно простыми.

Далее, используя расширенный алгоритм Евклида, вычис­ляют секретный ключ кВ, такой, что

 

kB * KB =1 (mod f(N)) (4.5)

или

kB = KB-1 (mod (P-1)(Q-1)).

 

Это можно осуществить, так как получатель В знает пару простых чисел (P, Q) и может легко найти f(N). Заметим, что кВ и N должны быть взаимно простыми.

Открытый ключ КВ используют для шифрования данных, а секретный ключ kВ - для расшифрования.

Преобразование шифрования определяет криптограмму С через пару (открытый ключ КB, сообщение М) в соответствии со следующей формулой:

 

С = ЕКB(М) = ЕB(М) = МКB(mod N). (4.6)

 

В качестве алгоритма быстрого вычисления значения С используют ряд последовательных возведений в квадрат целого М и умножений на М с приведением по модулю N.

Обращение функции С = МКB(mod N), т.е. определение значения М по известным значениям C, КB и N, практически не осуществимо при N =2512.

Однако обратную задачу, т.е. задачу расшифрования крип­тограммы С, можно решить, используя пару (секретный ключ kB, криптограмма С) по следующей формуле:

 

М = DkB (С) = DB (С) = СkB (mod N). (4.7)

Процесс расшифрования можно записать так:

 

DB(Ев (М)) = М. (4.8)

Подставляя в (4.8) значения (4.6) и (4.7), получаем:

 

Кв )kв = М (mod N)

или

МКвkB = М(mod N). (4.9)

 

Величина f(N) играет важную роль в теореме Эйлера, ко­торая утверждает, что если НОД (х, N) =1, то

Xf(N) = 1 (mod N),

или в несколько более общей форме

 

Xnf(N) + 1 = X (mod N) (4.10)

 

Сопоставляя выражения (4.9) и (4.10), получаем

КB * kB = n * f (N) +1

или, что то же самое,

КB * kB =1 (mod f (N)}.

Именно поэтому для вычисления секретного ключа kB ис­пользуют соотношение (4.5).

Таким образом, если криптограмму

С = МКв(mod N)

возвести в степень kB, то в результате восстанавливается исходныйоткрытый текст М, так как

KB)kB = мКBkB = Мnf(N)+1 = М (modN).

Таким образом, получатель В, который создает криптоси­стему, защищает два параметра: 1) секретный ключ kB и 2) пару чисел (Р, Q), произведение которых дает значение модуля N. С другой стороны, получатель В открывает значение модуля N и от­крытый ключ КB.

Противнику известны лишь значения КB и N. Если бы он смог разложить число N на множители Р и Q, то он узнал бы "потайной ход" - тройку чисел {Р, Q, КB}, вычислил значение функ­ции Эйлера

f(N) = (Р-1)(Q-1)

и определил значение секретного ключа kB.

Однако, как уже отмечалось, разложение очень большого N на множители вычислительно не осуществимо (при условии, что длины выбранных Р и Q составляют не менее 100 десятичных знаков).








Дата добавления: 2017-08-01; просмотров: 517;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.