RSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, Ади Шамиром и Леонардом Адлеманом. Алгоритм использует сложность факторизации больших целых чисел и лежит в основе множества современных систем безопасности.
RSA позволяет:
- шифровать данные с помощью открытого ключа;
- расшифровывать их только при наличии соответствующего закрытого ключа;
- создавать и проверять электронные подписи, обеспечивая неотказуемость и целостность информации.
Основные характеристики RSA
Характеристика | Описание |
---|---|
Тип алгоритма | Асимметричное шифрованиеАсимметричное шифрование (или криптография с открытым ключом) — это метод шифрования данных, при котором используются два различных, но More / ЭЦП |
Ключи | Пара: закрытый и открытый ключОткрытый ключ — это одна из двух частей асимметричной криптографической системы. Он используется для шифрования данных или проверки эл More |
Длина ключей | Обычно 2048 или 3072 бита |
Использование | SSL/TLS, SSH, PGP, ЭЦП, государственные системы |
Стандарты | PKCS #1, IEEE P1363, FIPS 186-4 |
Как работает RSA?
Алгоритм RSA основан на математических свойствах простых чисел и факторизации больших чисел. Процесс состоит из трёх основных этапов:
1. Генерация ключевой пары
- Выбираются два больших простых числа
p
иq
; - Вычисляется их произведение
n = p × q
— это модуль; - Выбирается публичный показатель
e
, взаимно простой с(p−1)(q−1)
; - Вычисляется секретный показатель
d
, удовлетворяющий уравнению:
$ e \cdot d \equiv 1 \mod{(p−1)(q−1)} $ Таким образом, открытый ключОткрытый ключ — это одна из двух частей асимметричной криптографической системы. Он используется для шифрования данных или проверки эл More — это пара(n, e)
, а закрытый —(n, d)
.
2. Шифрование
Сообщение $ M $ шифруется открытым ключом по формуле:
$ C = M^e \mod{n} $
3. Расшифровка
Зашифрованное сообщение $ C $ расшифровывается с помощью закрытого ключа:
$ M = C^d \mod{n} $
Подпись и проверка выполняются аналогично, но используются обратные операции.
Где применяется RSA?
- SSL/TLS-протоколы: используется для установления безопасного HTTPS-соединения между браузером и сервером;
- Электронная цифровая подпись (ЭЦП): применяется в квалифицированных сертификатах для подписания документов в ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More, налоговых системах, госзакупках и других платформах;
- Шифрование данных: используется в протоколах защиты информации, таких как PGP, S/MIME, SSH;
- Аутентификация и обмен ключами: RSA может применяться для безопасной передачи сеансовых ключей в гибридных системах шифрования;
- Блокчейн и цифровые сертификаты: поддерживается в большинстве инфраструктур открытых ключей (PKI).
Преимущества RSA
- Надёжность — более 40 лет активного использования без серьёзных уязвимостей при корректной реализации;
- Широкая поддержка — встроен во множество стандартов, библиотек и программ;
- Многофункциональность — подходит как для шифрования, так и для создания цифровой подписи;
- Прозрачность — открытый алгоритм, доступный для анализа и проверки.
Недостатки RSA
- Высокие вычислительные требования — особенно при использовании длинных ключей (например, 4096 бит);
- Уязвимость при малых ключах — ключКлюч в криптографии — это основной элемент, используемый для шифрования и расшифровки данных. Ключ представляет собой секретную информ More длиной менее 2048 бит считается небезопасным;
- Неэффективность по сравнению с ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More — требует больше ресурсов при той же степени защиты;
- Риск компрометации при плохом управлении ключами — потеря закрытого ключа делает всю систему бесполезной.
Сравнение RSA и ECDSA
Параметр | RSA | ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More |
---|---|---|
Длина ключа | 2048, 3072, 4096 бит | 256, 384, 521 бит |
Производительность | Медленнее | Быстрее |
Потребление ресурсов | Больше | Меньше |
Поддержка | Универсальная | Всё шире |
Будущее | Постепенно замещается | Активно развивается |
Пример работы с RSA через OpenSSL
# Генерация закрытого RSA-ключа длиной 2048 бит
openssl genrsa -out private.key 2048
# Извлечение открытого ключа из закрытого
openssl rsa -in private.key -pubout -out public.key
# Создание запроса на сертификат (CSR)
openssl req -new -key private.key -out csr.pem
# Подпись файла с помощью RSA
openssl dgst -sha256 -sign private.key -out signature.bin file.txt
# Проверка подписи
openssl dgst -sha256 -verify public.key -signature signature.bin file.txt
Форматы файлов, связанных с RSA
Расширение | Описание |
---|---|
.pemФормат .pem (от англ. Privacy Enhanced Mail) — это стандарт кодирования криптографических данных в виде текста с использованием Base64 и специальных за More | Текстовый формат Base64 с заголовками (——BEGIN RSA PRIVATE KEY——) |
.derФормат .der (от англ. Distinguished Encoding Rules) представляет собой двоичное представление данных X.509-сертификата. Это один из стандартных форматов д More | Двоичный формат хранения ключей |
.p7bФормат .p7b (также известный как PKCS #7) — это стандарт хранения сертификатов и цепочек доверия без закрытого ключа. Он используется для пер More | Сертификаты без приватного ключа |
.pfxФормат .pfx (Personal Information Exchange) — это стандарт хранения криптографических данных в виде одного защищённого файла. Он используется для хране More / .p12Формат .p12 (также известный как PKCS #12) — это стандарт хранения криптографических материалов в защищённом виде. Он представляет собой един More | Контейнеры с приватным ключом и цепочкой доверия |
.crtФайл с расширением .crt представляет собой цифровой сертификат, соответствующий стандарту X.509. Он содержит открытый ключ, информацию о вл More, .cerФормат .cer (иногда встречается как .crt) — это стандартное расширение для цифровых сертификатов X.509, используемых в системах электронной п More | Открытые сертификаты, часто связанные с RSA-ключами |
Перспективы RSA
Хотя RSA остаётся популярным, всё чаще специалисты рекомендуют переходить на ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More или EdDSA, особенно в системах с ограниченными ресурсами или повышенными требованиями к производительности. Однако RSA по-прежнему широко используется в legacy-системах, государственных проектах и корпоративной среде.