Асимметричный ключ
Асимметричный ключ (также асимметричный криптографический ключ, пара ключей) — это один из двух математически связанных, но не равных друг другу ключей, используемых в асимметричной криптографии (криптосистемах с открытым ключом). В отличие от симметричного шифрования, где для зашифрования и расшифрования применяется один и тот же секретный ключ, асимметричная схема предполагает наличие пары: открытого ключа (public key), который может быть опубликован и известен всем, и закрытого ключа (private key, секретный ключ), который хранится в тайне владельцем. Информация, зашифрованная открытым ключом, может быть расшифрована только соответствующим закрытым ключом, и наоборот.
Принцип работы
Асимметричные ключи генерируются парами с помощью специальных алгоритмов, основанных на сложных математических задачах (например, факторизации больших чисел или дискретного логарифмирования). Ключи образуют неразрывную пару: закрытый ключ невозможно (за практически приемлемое время) вычислить из открытого, а открытый ключ, как правило, не может быть использован для расшифровки сообщения, зашифрованного им же.
Основные операции, выполняемые с помощью асимметричных ключей:
- Шифрование: Отправитель шифрует сообщение открытым ключом получателя. Получатель расшифровывает его своим закрытым ключом.
- Электронная подпись: Владелец подписывает документ или хеш-сумму своим закрытым ключом. Любой, имеющий соответствующий открытый ключ, может проверить подлинность подписи и целостность документа.
- Обмен ключами: Протоколы (например, Диффи — Хеллмана) позволяют двум сторонам, не имеющим предварительно общего секрета, сгенерировать общий сеансовый ключ, используя свои открытые и закрытые ключи.
История
Концепция асимметричной криптографии была впервые публично предложена в 1976 году Уитфилдом Диффи и Мартином Хеллманом в работе «Новые направления в криптографии». В ней они описали принцип, но не реализовали полноценную систему. Первая практическая реализация — криптосистема RSA — была разработана в 1977 году Роном Ривестом, Ади Шамиром и Леонардом Адлеманом (название — по первым буквам фамилий). RSA основана на сложности факторизации произведения двух больших простых чисел. Позднее, в 1985 году, были предложены схемы на основе эллиптических кривых (ECC), которые обеспечивают сопоставимую стойкость при меньшей длине ключа.
Классификация алгоритмов
Асимметричные алгоритмы различаются по математической основе и области применения. Основные классы:
- На основе факторизации: RSA (Rivest–Shamir–Adleman). Наиболее распространённый алгоритм, используемый для шифрования и цифровых подписей.
- На основе дискретного логарифмирования: Алгоритм Диффи — Хеллмана (DH) — для обмена ключами; алгоритм цифровой подписи Эль-Гамаля (ElGamal) — для шифрования и подписей; DSA (Digital Signature Algorithm) — стандарт цифровой подписи США.
- На основе эллиптических кривых (ECC): ECDH (Elliptic-curve Diffie–Hellman) — для обмена ключами; ECDSA (Elliptic Curve Digital Signature Algorithm) — для цифровых подписей. ECC обеспечивает более высокую производительность и меньшую длину ключа при равной криптостойкости.
Характеристики и параметры
Длина ключа
Длина асимметричного ключа (в битах) напрямую влияет на криптостойкость, но не является единственным фактором. Для RSA и DH типичные длины ключей — 2048, 3072, 4096 бит. Для ECC — 256, 384, 521 бит. Согласно рекомендациям NIST (Национальный институт стандартов и технологий США), ключ RSA длиной 2048 бит обеспечивает стойкость, эквивалентную симметричному ключу длиной 112 бит, а ключ ECC длиной 256 бит — стойкость, эквивалентную симметричному ключу длиной 128 бит.
Криптостойкость
Криптостойкость асимметричных алгоритмов основана на вычислительной сложности обратных математических задач. Для RSA — это задача факторизации большого числа; для DH — задача дискретного логарифмирования; для ECC — задача дискретного логарифмирования на эллиптической кривой. С развитием квантовых вычислений некоторые из этих задач (факторизация, дискретное логарифмирование) могут быть решены за полиномиальное время с помощью алгоритма Шора, что делает RSA, DH и ECDSA уязвимыми. В связи с этим разрабатываются постквантовые криптосистемы (например, на основе решёток, кодов, хэш-функций), устойчивые к атакам квантовых компьютеров.
Производительность
Асимметричное шифрование и подписание значительно медленнее симметричного. Поэтому на практике асимметричные ключи используются, как правило, для двух целей:
- Шифрование небольших объёмов данных (например, ключей симметричного шифрования).
- Цифровые подписи (подписывается хеш-сумма документа, а не сам документ).
Применение
Асимметричные ключи лежат в основе многих современных технологий информационной безопасности:
- SSL/TLS (HTTPS): Протоколы защиты веб-трафика. При установке соединения сервер предоставляет клиенту свой сертификат, содержащий открытый ключ. Клиент использует его для шифрования сеансового ключа симметричного шифрования.
- Электронная подпись (ЭП): В России и других странах используется для юридически значимого документооборота, подписания договоров, налоговой отчётности. Квалифицированная электронная подпись (КЭП) выдается удостоверяющими центрами, аккредитованными Минцифры России.
- Шифрование электронной почты: Протоколы PGP (Pretty Good Privacy) и S/MIME (Secure/Multipurpose Internet Mail Extensions) используют асимметричные ключи для шифрования писем и проверки подлинности отправителя.
- Блокчейн и криптовалюты: В системах, таких как Bitcoin, Ethereum, асимметричные ключи (обычно на основе ECDSA) используются для создания адресов (из открытого ключа) и подписания транзакций (закрытым ключом).
- Аутентификация: SSH (Secure Shell) — протокол удалённого доступа к серверам, где аутентификация может выполняться с помощью пары ключей, а не пароля.
- Управление доступом: В некоторых системах контроля доступа (например, к API) используются токены, подписанные асимметричным ключом сервера.
Управление ключами
Безопасность асимметричной криптографии критически зависит от правильного управления ключами:
- Генерация: Закрытый ключ должен генерироваться на доверенном устройстве, используя качественный источник случайных чисел. Компрометация генерации (например, использование слабого ГПСЧ) может привести к уязвимости.
- Хранение: Закрытый ключ должен храниться в защищённом виде. Типичные способы: аппаратные модули безопасности (HSM), смарт-карты, токены (например, Рутокен, JaCarta), зашифрованные файлы на диске (с парольной фразой).
- Распространение: Открытые ключи распространяются через инфраструктуру открытых ключей (PKI). В PKI доверие обеспечивается цепочкой сертификатов, подписанных удостоверяющими центрами (CA). В России PKI регулируется Федеральным законом № 63-ФЗ «Об электронной подписи».
- Отзыв: При компрометации закрытого ключа или утрате доверия к нему, соответствующий сертификат должен быть отозван (через списки отзыва CRL или протокол OCSP).
Критика и ограничения
- Производительность: Асимметричные алгоритмы значительно медленнее симметричных, что ограничивает их применение для шифрования больших объёмов данных.
- Управление ключами: Сложность и высокая стоимость развёртывания и поддержки PKI, особенно в крупных организациях. Ошибки в управлении могут привести к утечкам закрытых ключей.
- Уязвимость к квантовым компьютерам: Как уже упоминалось, классические алгоритмы (RSA, ECDSA) уязвимы для квантовых атак. Разработка и внедрение постквантовых стандартов (например, CRYSTALS-Kyber, CRYSTALS-Dilithium) активно ведутся, но пока не завершены.
- Атаки на реализацию: Уязвимости могут возникать не в математике алгоритма, а в его программной или аппаратной реализации (например, атаки по сторонним каналам — timing attacks, power analysis).
Интересные факты
- В 2010 году была обнаружена уязвимость в генераторе псевдослучайных чисел в библиотеке OpenSSL, которая привела к тому, что некоторые открытые ключи RSA были сгенерированы с недостаточной энтропией и могли быть факторизованы.
- В 2015 году исследователи из Университета штата Пенсильвания показали, что около 0,2% всех открытых ключей RSA в Интернете имеют общие простые множители, что позволяет вычислить закрытые ключи.
- В России действует ГОСТ Р 34.10-2012 (и его обновлённая версия ГОСТ Р 34.10-2021) — стандарт на электронную подпись на основе эллиптических кривых.
Источники
- Диффи, У., Хеллман, М. «Новые направления в криптографии» (1976).
- Ривест, Р., Шамир, А., Адлеман, Л. «Метод получения цифровых подписей и криптосистем с открытым ключом» (1978).
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи».
- NIST Special Publication 800-57 «Recommendation for Key Management».
- ГОСТ Р 34.10-2021 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →