Генератор пар ключей RSA

Размер ключа (бит)
Далее

Пара ключей RSA состоит из двух математически взаимосвязанных чисел: публичного ключа, который вы предоставляете другим, и приватного ключа, который вы храните в безопасности. Данный генератор создаёт оба ключа в стандартном кодировании PEM с использованием криптографически безопасного случайного источника данных. Используйте его для инициализации подписчика JWT, создания сертификата TLS для тестовой среды или формирования идентичности для подключения по SSH без необходимости использования командной строки.

Как создать пару ключей RSA

  1. 1

    Выберите размер ключа

    Выберите 2048, 3072 или 4096 бит. Более длинные ключи обеспечивают большую безопасность, но требуют больше времени на подпись и проверку.

  2. 2

    Генерировать

    Инструмент создаёт новый модуль и частный экспонент с использованием примитивов WebCrypto.

  3. 3

    Копировать или скачать

    Получите частный ключ, закодированный в формате PEM (BEGIN PRIVATE KEY), и соответствующий публичный ключ (BEGIN PUBLIC KEY).

  4. 4

    Безопасно храните частный ключ

    Перенесите его в менеджер секретов или ключевую цепочку, ни в коем случае не вставляйте его в чаты, электронную почту или публичные репозитории.

Какой размер ключа следует использовать?

Больший размер не всегда лучше. Правильный размер зависит от срока службы ключа и от того, сколько ресурсов процессора вы готовы тратить на каждую подпись.

Рекомендации NIST кратко

Размер ключа Уровень безопасности Типичное применение Относительная стоимость подписи
2048 бит ~112 бит Подписывание JWT, краткосрочные сертификаты TLS, большинство API 1x
3072 бит ~128 бит Долговечные корневые центры сертификации (CA), соответствие FIPS > 2030 ~3x
4096 бит ~140 бит Высоконадёжные корневые ключи, долгосрочное подписание документов ~7x

Как PEM вписывается в контекст

Ключи упакованы по стандарту PKCS#8/SPKI и закодированы в base64 между маркерами -----BEGIN----- и -----END-----. Это именно тот формат, который ожидают все основные библиотеки: OpenSSL, crypto в Node.js, cryptography в Python, crypto/rsa в Go и KeyFactory в Java.

Практические советы

  • Проводите ротацию не реже раза в год для ключей подписи с широким охватом.
  • Для новых систем выбирайте ECDSA (P-256) или Ed25519, они быстрее, а подписи значительно меньше.
  • Никогда не используйте одну пару ключей в несвязанных системах. Если один ключ утечёт, под угрозой окажется всё, что от него зависит.
  • Используйте парольную фразу при хранении закрытого ключа на диске. Стандартом является зашифрованный PEM (BEGIN ENCRYPTED PRIVATE KEY).

Часто задаваемые вопросы

Да, это относится к большинству случаев подписания API и сессий. Национальный институт стандартов и технологий (NIST) и Британский институт стандартов (BSI) по-прежнему считают алгоритм RSA с ключом длиной 2048 бит приемлемым как минимум до 2030 года; однако для случаев, требующих более длительного использования, рекомендуется использовать алгоритм с ключом длиной 3072 бита.

Частный ключ PEM используется вместе с ssh-keygen -y -f key.pem для получения публичного ключа ssh-rsa. Для повседневного использования протокола SSH рекомендуется использовать алгоритм Ed25519, ключи получены более компактными и вычисления выполняются быстрее.

Первый алгоритм, PKCS#1 (доступен только для RSA). Второй, PKCS#8 (оболочка, независимая от конкретного алгоритма), который предпочтительно используется современными библиотеками; данный инструмент генерирует данные в формате PKCS#8.

Это не так. Генерация ключей выполняется локально через API WebCrypto, а файл формата PEM формируется в памяти перед отображением на странице.

Сопутствующие инструменты

Генератор SSL-сертификатов

Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.

Кодировщик и декодировщик Base85

Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.

Генератор хешей

Создавайте хеши MD5, SHA-1, SHA-256, SHA-384, SHA-512 и CRC32 из текста, с готовым для копирования дайджестом для контрольных сумм и сравнений.

Генератор ключей PGP

Создайте пару ключей OpenPGP в текстовом формате ASCII и сертификат отзыва с Curve25519, RSA 2048 или RSA 4096.

Идентификатор шифрования

Вставьте зашифрованный текст, и идентификатор предложит вероятные схемы кодирования/шифрования: Base64, hex, двоичный, Морзе, Цезарь или подстановочный, JWT и распространенные хеши.

Конвертер ETH в USD

Переводите Ethereum (ETH) в доллары США по актуальному курсу ETH/USD или по своему курсу. Узнайте, сколько стоит в долларах любое количество ETH.

Инструмент доступен на других языках