RSA — асимметричное шифрование и цифровая подпись | Глоссарий FREEHOSTING

RSA

RSA Cryptosystem
RSA — RSA — асимметричный криптоалгоритм на основе сложности факторизации произведения двух больших простых чисел. Используется для обмена ключами, цифровых подписей и шифрования коротких сообщений. Безопасной считается длина ключа от 2048 бит.

Определение простыми словами

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) и атак по сторонним каналам, а не из-за самого алгоритма.