Определение простыми словами
RSA назван по фамилиям авторов — Rivest, Shamir, Adleman, 1977 год. Алгоритм работает с парой ключей: публичным и приватным. Публичным шифруют — приватным расшифровывают, и наоборот. Стойкость держится на том, что разложить произведение двух больших простых чисел на множители — задача, требующая астрономического времени.
RSA редко шифрует длинные данные: для них используют AES, а RSA нужен, чтобы безопасно передать симметричный ключ или подписать хеш сообщения. Этот же принцип лежит в основе SSH-ключей и сертификатов TLS.
Сравнение асимметричных алгоритмов
| Алгоритм | Длина ключа | Применение |
|---|---|---|
| RSA-2048 | 2048 бит | Текущий минимум для TLS-сертификатов и SSH |
| RSA-4096 | 4096 бит | Подпись долгоживущих корневых сертификатов |
| ECDSA P-256 | 256 бит | TLS, JWT, мобильные устройства |
| Ed25519 | 256 бит | SSH-ключи, подписи в современных протоколах |
Кейсы использования
- SSH-аутентификация на сервер по приватному ключу вместо пароля.
- Сертификаты HTTPS: браузер проверяет подпись CA, выпущенную через RSA или ECDSA.
- Подпись JWT-токенов в API: сервер подписывает приватным ключом, клиент проверяет публичным.
- Подпись deb- и rpm-пакетов в репозиториях, чтобы менеджер пакетов отверг подменённые файлы.
- Шифрование сессионного ключа AES в OpenPGP-сообщениях и старых версиях TLS.
Негативный сценарий: ключи короче 2048 бит уже сняты с поддержки в большинстве УЦ. RSA-1024 и тем более RSA-512 считаются скомпрометированными, а длинные ключи 8192 бит замедляют рукопожатие и поэтому не приживаются. Для новых проектов выбирают Ed25519 или ECDSA — они короче и быстрее при сравнимой стойкости.
Технические детали
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private.pem
openssl rsa -in private.pem -pubout -out public.pem
openssl req -new -key private.pem -out site.csr
openssl dgst -sha256 -sign private.pem -out file.sig file.bin
openssl dgst -sha256 -verify public.pem -signature file.sig file.bin
ssh-keygen -t rsa -b 4096 -C "user@example.com"
🔥 Где это применяется
Частые вопросы
RSA или ECDSA — что выбрать для нового сайта?
Для новых сайтов чаще берут ECDSA P-256: ключи короче, рукопожатие быстрее, нагрузка на CPU ниже. RSA-2048 остаётся на случай совместимости с очень старыми клиентами и встроенными системами.
Безопасен ли RSA-2048 в 2026 году?
Да. NIST и BSI допускают использование RSA-2048 до 2030 года. Для долгоживущих корневых сертификатов и подписи дистрибутивов рекомендуют RSA-4096 или переход на постквантовые схемы.
Можно ли расшифровать RSA, имея только публичный ключ?
Нет, при честной длине ключа от 2048 бит. Утечки случаются из-за слабых случайных чисел при генерации, неправильного padding (PKCS#1 v1.5 без OAEP) и атак по сторонним каналам, а не из-за самого алгоритма.