Руководство по генерации пары ключей RSA: шифрование открытым ключом и подпись закрытым ключом
Что такое пара ключей RSA
RSA — это алгоритм асимметричного шифрования, использующий пару ключей:
| Ключ | Назначение | Распространение |
|---|---|---|
| Открытый ключ | Шифровать / Проверять подпись | Можно свободно распространять |
| Закрытый ключ | Расшифровывать / Подписывать | Хранить только у себя |
Основной принцип: Данные, зашифрованные открытым ключом, можно расшифровать только закрытым ключом; подписи, созданные закрытым ключом, можно проверить открытым ключом.
Выбор длины ключа
| Длина | Уровень безопасности | Сценарий использования |
|---|---|---|
| 1024-бит | ❌ Небезопасно | Устаревшие системы |
| 2048-бит | ✅ Базовая безопасность | Повседневное использование |
| 3072-бит | ✅ Повышенная безопасность | Умеренно конфиденциальные данные |
| 4096-бит | ✅ Высокая безопасность | Высококонфиденциальные данные / долгосрочные ключи |
Генерация 4096-битного ключа занимает в 4-8× больше времени, чем 2048-битного. Шифрование/расшифровка также медленнее. Выбирайте исходя из своих потребностей.
Генерация пары ключей: пошагово
Шаг 1: Откройте инструмент пары ключей RSA
Перейдите к инструменту пары ключей RSA и выберите длину ключа (рекомендуется 2048 или 4096).
Шаг 2: Сгенерируйте пару ключей
Нажмите «Сгенерировать пару ключей». Инструмент автоматически создаст:
- Открытый ключ: текст в формате PEM, начинающийся с
-----BEGIN PUBLIC KEY----- - Закрытый ключ: текст в формате PEM, начинающийся с
-----BEGIN PRIVATE KEY-----
Шаг 3: Сохраните ключи
Открытый ключ → Отправьте всем, кому нужно зашифровать для вас данные
Закрытый ключ → Храните надёжно, никогда не утечьте (не коммитьте в Git!)
Формат PEM
PEM — это текст ключа в кодировке Base64. Распространённые форматы:
-----BEGIN PUBLIC KEY----- ← Открытый ключ PKCS#8
MIIBIjANBgkqhkiG9w0BAQEFAAOC...
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY----- ← Закрытый ключ PKCS#1
MIIEpAIBAAKCAQEA0d7...
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY----- ← Закрытый ключ PKCS#8
MIIEvgIBADANBgkqhkiG9w0BAQEF...
-----END PRIVATE KEY-----
PKCS#8 — универсальный формат; PKCS#1 — специфичен для RSA. Большинство современных систем предпочитают PKCS#8.
Шифрование открытым ключом + Расшифровка закрытым ключом
Используя инструмент шифрования/расшифровки RSA:
- Вставьте открытый текст в поле ввода
- Выберите «Шифровать открытым ключом»
- Вставьте открытый ключ получателя
- Нажмите зашифровать, чтобы получить шифротекст
- Получатель расшифровывает своим закрытым ключом для восстановления оригинала
Подпись закрытым ключом + Проверка открытым ключом
Подпись доказывает «это сообщение действительно от меня»:
- В инструменте шифрования/расшифровки RSA выберите «Подписать закрытым ключом»
- Введите сообщение и свой закрытый ключ
- Сгенерируйте значение подписи
- Другие проверяют подпись вашим открытым ключом, подтверждая, что сообщение не было изменено
RSA vs AES: когда использовать
| Сценарий | Рекомендация | Причина |
|---|---|---|
| Шифрование больших файлов | AES | RSA слишком медленный для больших объёмов данных |
| Обмен ключами | RSA | Зашифровать ключ AES открытым ключом |
| Цифровые подписи | RSA | Асимметричная природа идеально подходит |
| JWT-токены | RSA | Сервер подписывает закрытым ключом, клиенты проверяют открытым |
На практике они часто комбинируются: RSA передаёт ключ AES, AES шифрует сами данные (гибридное шифрование).
Распространённые проблемы
| Проблема | Причина | Решение |
|---|---|---|
| Ошибка расшифровки | Несоответствие ключей | Убедитесь, что открытый и закрытый ключи из одной пары |
| Ошибка «данные слишком длинные» | RSA имеет ограничение длины | Используйте AES или шифруйте по сегментам |
| Ошибка разбора формата | Отсутствуют заголовки PEM | Проверьте, что скопировали полный ключ |
| Медленная генерация | 4096-битный ключ | Это нормально; сначала попробуйте 2048-бит |
Итоги
Пары ключей RSA — основа асимметричного шифрования. Освоение шифрования открытым ключом и подписи закрытым ключом, а также понимание влияния длины ключа на безопасность, необходимо для безопасной разработки. Инструмент пары ключей RSA и инструмент шифрования/расшифровки RSA позволяют выполнить весь рабочий процесс прямо в браузере.