алгоритм RSA
Зашифрование / расшифрование.
После выбора параметров (N, E, D) абонент готов к работе. Передача зашифрованных сообщений состоит из следующих шагов:
1) Входное сообщение разбивается на блоки Mi, их размер определяется целым k, соответствующим неравенству 10k-1 < N < 10k.
2) Вычисляется значение Ci = MiE (mod N).
3) Значение Ci, которое является зашифрованным блоком сообщения, посылается по открытым каналам передачи данных.
4) Расшифрование заключается в вычислении значения Mi = CiD (mod N).
Приведем простой пример на малых простых числах Р=211 и Q=223. В этом случае N=47053 и М=46620. Выберем открытый ключ шифрования E=16813 и вычислим секретный ключ расшифрования D=19837. Теперь, взяв за сообщение название метода RSA, переведем его в число. Для этого будем считать букву R равной 18, S равной 19, А равной 1 по порядковому номеру их положения в английском алфавите. На представление каждой буквы отведем по 5 бит числа, представляющего открытый текст. В этом случае слову RSA соответствует следующее число:
M=((1*32)+19)*32+18=1650
С помощью открытого ключа получаем шифровку:
C = ME (mod N)=165016813 (mod 47053)=3071.
Получатель расшифровывает ее с помощью секретного ключа:
M = CD (mod N)=307119837 (mod 47053)=1650.
Авторы RSA в примере из своей первой публикации использовали D=9007 и N=11438162575788886766923577997614661 2010218296721242362562561842935706935245733897830597123563958705058989075147599290026879543541.
предыдущая следующая тема