Подчеркнем, что КС и N должны быть взаимно простыми числами, т.е.
НОД (КС, N) = 1.
Открытый ключ КО используется отправителем сообщения для шифрования данных, а секретный ключ КС используется получателем сообщения для его расшифрования.
Процедура шифрования использует открытый ключ КО и открытое сообщение М и имеет вид
.
Для вычисления Е используется алгоритм возведения в степень по модулю N.
Обращение функции , т.е. определение М при известных Е, КО и N практически неосуществимо при .
Процедура расшифрования криптограммы Е осуществляется на основе секретного ключа КС получателя и принятой им криптограммы Е на основе следующего выражения
или, что эквивалентно
,
.
Тогда
или .
В соответствии с теоремой Эйлера
или в общей форме
.
Тогда, заменив х на М запишем
или .
Именно вследствие указанного вычисление секретного ключа осуществляется на основе данного выражения.
Таким образом, если криптограмму
возвести в степень КС, то как результат будет восстановлено исходное сообщение М, так как
.
Поэтому в такой криптосистеме получатель защищает два параметра:
- секретный ключ КС;
- пару чисел P, Q, таких что ;
в тоже время открытыми остаются (помещаются в открытый справочник):
- значение модуля N;
- открытый ключ КО.
Противнику известны N и КО. Вследствие большой величины N, противник не может за приемлемое время решить задачу факторизации, т.е. разложить N на простые множители, которые выполняют роль «потайного хода» при взятии дискретного логарифма. Если же указанную задачу удалось решить, то в этом случае на основе тройки чисел {P, Q, КО}, характеризующей «потайной ход» просто осуществляется вычисление функции Эйлера
и противник определяет значение секретного ключа КС
В связи с этим значение чисел P и Q должны быть очень большими (не менее 100 десятичных знаков).
3. Процедура шифрования и расшифрования по алгоритму RSA
Абонент А – отправитель сообщения, а абонент Б его получатель.
Криптограмма RSA формируется получателем сообщения, в первую очередь для сохранения в тайне значений чисел P и Q.
Последовательность действий пользователей А и Б.
1. Пользователь Б осуществляет выбор двух произвольных больших чисел P и Q.
2. Пользователь Б вычисляет значение
3. Пользователь Б вычисляет функцию Эйлера
и выбирает значение открытого ключа КО с учетом выполнения условий
, ,
4. Пользователь Б вычисляет значение секретного ключа КС, используя расширенный алгоритм Евклида при решении сравнения
5. Пользователь Б пересылает пользователю А пару чисел (N и КО) по незащищенному каналу
При передачи информации пользователем А пользователю Б, отправитель осуществляет следующие действия:
6. Пользователь А разбивает исходный открытый текст М на блоки, каждый из которых может быть представлен в виде числа Мi
Мi = 0, 1, 2, …, N-1.
7. Пользователь А шифрует текст, представленный в виде последовательности чисел Мi по формуле
и отправляет криптограмму
пользователю Б.
8. Пользователь Б расшифровывает принятую криптограмму
используя секретный ключ КС
Пример
Занумеруем алфавит
А Б В …
1 2 3
Необходимо передать сообщение «ВАБ» ® (3, 1, 2)
1. Действия пользователя Б
1. Выбираем Р = 3, Q = 11
2. Вычисляем модуль N = Р×Q = 3×11 = 33
3. Вычисляет значение функции Эйлера
j(N) = j(33) = (Р-1)(Q-1) = (3-1)(11-1) = 20
и выбирает в качестве открытого ключа КО число удовлетворяющее условиям
, НОД (КО, 20) = 1.
Пусть КО =7.
4. Вычисляет значение секретного ключа КС решая сравнение
с применением расширенного алгоритма Евклида.
Перейдем к обозначениям расширенного алгоритма Евклида
Данное уравнение эквивалентно уравнению
Так как , то
или
или
.
Начальный цикл:
1 цикл
следующий цикл
2 цикл
следующий цикл
3 цикл
Значит , ,
Отсюда
КС=3
5. Пользователь Б пересылает пользователю А пару чисел (N=33, КО=7)
6. Шифрует текст, представленный в виде последовательности чисел М1, М2, М3, используя ключ КО=7 и N=33 по формуле
Указанное получено с учетом того, что
31 º 3 mod 33
32 º 9 mod 33
34 º 81 mod 33
31×32 ×34 º 37 = 3×9×15 mod 33= 405 mod 33 = 9 mod 33
21 º 2 mod 33
22 º 4 mod 33
24 º 16 mod 33
21×22 ×24 º 27 = 2×4×16 mod 33= 128 mod 33 = 29 mod 33
7. Передается криптограмма
Е1,Е2,Е3 = 9,1,29
8. Осуществляет расшифровку с помощью секретного ключа КС по формуле
М1,М2,М3 = 3,1,2 ® ВАБ.
Указанное получено с учетом того, что
291 º 29 mod 33
292 º 16 mod 33
291 ×292 = 29×16 = 464 mod 33 = 2
Рис. 1. Обобщенная схема НКГС
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.