Исследование алгоритма защиты информации RSA. Криптосистемы с открытым ключом. Алгоритм Евклида, страница 2


не мог бы послать шифрованное сообщение или подтвердить подпись Протокол подтверждения подлинности отправителя сообщения.

•  Отправитель А и получатель В знают число р и случайное число N из интервала (1,N). А генерирует случайные числа * и у из того же интервала.

•  х является секретным ключом, а у должно быть взаимно простым с

передает В документ с подписью (Q,R,S,T). в    Получатель    В    проверяет    подпись,    контролируя    тождество

В этой системе секретным ключом для подписания сообщений является число х, а открытым ключом для проверки достоверности подписи - число

Q.

2.2. Криптосистема RSA

В 1978 году R.L.Rivest, A.Shamir, L.Adleman опубликовали криптосистему с открытом ключом, которая стала известной как RSA система. Рассматриваемая система криптографии основывается на следующей теореме.

Теорема (Эйлера). Пусть а и п целые числа. Тогда

где НОД (а, п) - наибольший общий делитель чисел а и п, ф{п) - функция Эйлера


определяется для всех целых положительных о и представляет собой число чисел ряда 0,1,..., п-1 взаимно простых с п. Если существует каноническое разложение числа п

Алгоритм. RSAКаждый пользователь выбирает два простых числа ри и Яи, произведение которых образует число nu= pq„,. Из (2) следует, что

Далее пользователь U определяет целое число е, 1< еи<ф(п„) , для которого НОД(е„, ф(пи)) = 1. С Помощью алгоритма Евклида пользователь U вычисляет за 2log]$(nu) шагов целое число du, удовлетворяющее сравнению

Пользователь U публикует числа ец и п„в открытой книге, но держит dв секрете. Числа ри и qu не играют большой роли, но также не публикуются.

Шифрование сообщения. Если пользователь А хочет передать сообщение m пользователю В (0 < гп < пв), то А выбирает из открытой книги число ев и вычисляет зашифрованный текст:

С ш mmodna .(5)

Расшифровка сообщения. Пользователь В восстанавливает сообщение m

ИЗ С, ВЫЧИСЛЯЯ

V => Cd» =ш''■*» = mH1#?n»)« m  mod nB ;      (I-любое)   ,

7



гдеН0Д(т,пв)=1.

Прииер L Пусть p=2U, q -223, n = pq = 47053, ф(п)= (p-l)(q-l)=46620, открытый ключ е= 16813, секретный ключ d=19837. Пользователь хочет передать английский текст RSA. Буквам соответствуют следующие номера их положения в английском алфавите: R=18, S=19, A=l. Тогда 5- битовое представление текста будет иметь следующий вид:

т=((1-32)+19)32+18=1650.

После шифрования получаем

С =. mdmo«l n - 165016813mod 47053 - 3071.

Получатель расшифровывает сообщение с помощью секретного ключа: P^Cmodn = 307l"837mod 47053 = 1650.

Пример 2. Рассмотрим случай, когда используется N- значный алфавит и известны положительные числа к и 1, к<1, причем значения Nk и N1 охватывают диапазон около 200 значного числа. Используется английский алфавит из N=26 букв, к=3,1=4. Шифруемое слово "YES".

формирование ключей пользователя А

1.  Определяется величина модуля  Nk< nA <Я\ Для этого выбираются простые числа pA=281,qA= 167, пА= pAqA = 281167 =46927.

2.  Используя генератор случайных чисел определяется секретный ключ еА= 39423, удовлетворяющий условиям НОД(еА, рА-1) = НОД(еА, qA-3.   Вычисляется открытый ключ dл = е'2 mod( рл - Щйл " l) = 26767 4   ЧисларА, qA, dA являются секретными.

Пользователь А использует для шифрования ключ (пА, еА) •*( 46927, 39423). Сообщение представляется в цифровом виде как триграф следующим образом: