Курсовая работа: Использование современных симметрических DES и асимметрических RSA алгоритмов шифрования
или, что то же самое, .
Именно поэтому для вычисления секретного ключа KB используют соотношение (5).
Таким образом, если криптограмму
возвести в степень K B , то в результате восстанавливается исходный открытый текст М , так как
Таким образом, получатель В, который создает криптосистему, защищает два параметра: секретный ключ K B и пару чисел (P,Q) , произведение которых дает значение модуля N . С другой стороны, получатель В открывает значение модуля N и открытый ключ К А .
Противнику известны лишь значения К А и N . Если бы он смог разложить число N на множители Р и Q , то он узнал бы "потайной ход" - тройку чисел {Р,Q, К A }, вычислил значение функции Эйлера
и определил значение секретного ключа K B .
Однако, как уже отмечалось, разложение очень большого N на множители вычислительно не осуществимо (при условии, что длины выбранных Р и Q составляют не менее 100 десятичных знаков).
Алгоритм шифрования и расшифрования в криптосистеме RSA
Предположим, что пользователь А хочет передать пользователю В сообщение в зашифрованном виде, используя криптосистему RSA. В таком случае пользователь А выступает в роли отправителя сообщения, а пользователь В - в роли получателя. Как отмечалось выше, криптосистему RSA должен сформировать получатель сообщения, т.е. пользователь В . Рассмотрим последовательность действий пользователя В и пользователя А .
1. Пользователь В выбирает два произвольных больших простых числа Р и Q .
2. Пользователь В вычисляет значение модуля N=Р*Q .
3. Пользователь В вычисляет функцию Эйлера (8):
4. Выбирает случайным образом значение открытого ключа К A с учетом выполнения условий:
5. Пользователь В вычисляет значение секретного ключа kB , используя расширенный алгоритм Евклида при решении сравнения
6. Пользователь В пересылает пользователю А пару чисел (N, К A ) по незащищенному каналу.
Если пользователь А хочет передать пользователю В сообщение М , он выполняет следующие шаги.
7. Пользователь А разбивает исходный открытый текст М на блоки, каждый из которых может быть представлен в виде числа
Мi =0,1,2,...,N-1 .
8. Пользователь А шифрует текст, представленный в виде последовательности чисел М , по формуле
9. Пользователь А отправляет криптограмму C1 , С2 , С3 ,...,Ci , ... пользователю В .
10. Пользователь В расшифровывает принятую криптограмму C1 , С2 , С3 ,...,Ci , ..., используя секретный ключ kB , по формуле