- Выбираются два различных случайных простых числа
и
заданного размера (например, 1024 бита каждое).
- Вычисляется их произведение
, которое называется модулем.
- Вычисляется значение функции Эйлера от числа
:
-
Выбирается целое число ), взаимно простое со значением функции . Обычно в качестве берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма 17, 257 или 65537. Число называется открытой экспонентой (англ. public exponent) Время, необходимое для шифрования с использованием быстрого возведения в степень, пропорционально числу единичных бит в . Слишком малые значения , например 3, потенциально могут ослабить безопасность схемы RSA.
-
Вычисляется число d, мультипликативно обратное к числу
по модулю
, то есть число, удовлетворяющее сравнению:
-
- Число
называется секретной экспонентой. Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.
- Пара публикуется в качестве открытого ключа RSA (англ. RSA public key). Пара играет роль закрытого ключа RSA (англ. RSA private key) и держится в секрете.
Алгоритм:
- Взять открытый ключ
Алисы
- Взять открытый текст
- Зашифровать сообщение с использованием открытого ключа Алисы:
- Принять зашифрованное сообщение
- Взять свой закрытый ключ
- Применить закрытый ключ для расшифрования сообщения: