Пара ключей — это модуль n = p·q длиной 2048–4096 бит, открытая экспонента e (почти всегда 65537) и закрытая экспонента d = e⁻¹ mod lcm(p − 1, q − 1). Закрытые ключи обычно содержат также p, q и параметры CRT dP, dQ и qInv, которые ускоряют подписание примерно в четыре раза (структура RSAPrivateKey из PKCS #1, RFC 8017, приложение A.1.2). При подписании закодированное сообщение возводится в степень d по модулю n; при проверке подпись возводится в степень e, а результат сравнивается с ожидаемым кодированием.
RSA в чистом виде (raw RSA) пластичен и позволяет подделывать подписи, поэтому схема дополнения всегда входит в алгоритм: RSASSA-PKCS1-v1_5 (детерминированная, RS256 в JOSE) или RSASSA-PSS (рандомизированная, PS256) для подписей и RSAES-OAEP для шифрования. Старое дополнение шифрования PKCS #1 v1.5 сделало возможными атаки Блейхенбахера типа padding oracle; в TLS 1.3 транспорт ключей RSA убран полностью. FIPS 186-5, § 5.4, требует, чтобы простых множителей было ровно два, а открытая экспонента была нечётной и лежала в диапазоне от 2¹⁶ до 2²⁵⁶.
Подпись имеет ту же длину, что и модуль: 256 байт для RSA-2048, 384 для RSA-3072, 512 для RSA-4096. SP 800-57, часть 1, оценивает стойкость 2048-битного ключа в 112 бит, а 3072-битного — в 128 бит. Проверка дешёвая, а подписание — нет: на одном ядре Apple M4 Max с OpenSSL 3.6.5 RSA-2048 подписывает около 3 000 и проверяет около 114 000 сообщений в секунду, а генерация 2048-битного ключа занимает в среднем около 26 миллисекунд при большом разбросе.
NIST IR 8547 (первоначальный публичный черновик) предлагает объявить устаревшим RSA со стойкостью 112 бит (2048-битные ключи) после 2030 года и запретить любой RSA после 2035 года. Сравнение с эллиптическими кривыми — в статье ECDSA или RSA.