Открыть сервис

ANSI X9.63

ANSI X9.63 — это стандарт Американского национального института стандартов (ANSI), определяющий методы и протоколы для выполнения криптографических операций на основе эллиптических кривых (ECC — Elliptic Curve Cryptography). Стандарт является частью серии ANSI X9, которая регламентирует требования к безопасности в финансовой индустрии, и был разработан для обеспечения конфиденциальности, целостности и аутентичности данных при электронных транзакциях.

История и контекст разработки

Разработка стандарта ANSI X9.63 была обусловлена необходимостью внедрения более эффективных и безопасных криптографических алгоритмов в финансовом секторе. К середине 1990-х годов алгоритмы на основе эллиптических кривых (ECC) стали рассматриваться как перспективная альтернатива традиционным методам (RSA, DSA) благодаря возможности обеспечить сопоставимый уровень безопасности при значительно меньшей длине ключа. Это было особенно важно для устройств с ограниченными вычислительными ресурсами, таких как смарт-карты и банковские терминалы.

Работа над стандартом велась подкомитетом ANSI X9F1, который занимается вопросами криптографии в финансовых услугах. Первая версия стандарта была опубликована в 2001 году. Он был разработан как расширение и уточнение более раннего стандарта ANSI X9.62, который описывал цифровые подписи на основе эллиптических кривых (ECDSA). В то время как X9.62 фокусировался исключительно на подписях, X9.63 охватывал более широкий спектр криптографических примитивов, включая шифрование и согласование ключей.

Основные криптографические схемы

ANSI X9.63 определяет несколько ключевых криптографических схем, каждая из которых решает определённые задачи обеспечения безопасности.

Схема согласования ключей (Key Agreement Scheme)

Наиболее известной и широко используемой частью стандарта является схема согласования ключей на основе эллиптических кривых, часто обозначаемая как ECDH (Elliptic Curve Diffie-Hellman). Эта схема позволяет двум сторонам, не имеющим общего секрета, установить защищённый канал связи. Каждая сторона генерирует свою пару ключей (закрытый и открытый) и обменивается открытыми ключами по незащищённому каналу. Затем каждая сторона, используя свой закрытый ключ и открытый ключ другой стороны, вычисляет общий секретный ключ, который может быть использован для последующего симметричного шифрования.

Стандарт ANSI X9.63 уточняет реализацию ECDH, включая спецификации по выбору параметров эллиптической кривой, форматам представления точек на кривой и методам вывода общего секрета. Он также описывает схему согласования ключей с взаимной аутентификацией (ECMQV — Menezes-Qu-Vanstone), которая позволяет не только установить общий ключ, но и подтвердить подлинность обеих сторон в процессе обмена.

Схема шифрования (Encryption Scheme)

Стандарт включает схему шифрования на основе эллиптических кривых, известную как ECES (Elliptic Curve Encryption Scheme). Эта схема является гибридной: она использует асимметричную криптографию на эллиптических кривых для шифрования сессионного ключа, который затем применяется для симметричного шифрования самого сообщения. Такой подход сочетает в себе удобство управления ключами асимметричной криптографии с высокой скоростью работы симметричных алгоритмов.

Процесс шифрования включает генерацию эфемерной пары ключей отправителем, вычисление общего секрета с использованием открытого ключа получателя, получение из этого секрета симметричного ключа и шифрование сообщения. Расшифровка выполняется получателем с использованием его закрытого ключа.

Схема цифровой подписи (Digital Signature Scheme)

Хотя основная схема цифровой подписи на эллиптических кривых (ECDSA) была стандартизирована в ANSI X9.62, стандарт X9.63 также содержит требования и рекомендации по её использованию в контексте более широких протоколов безопасности. Он определяет форматы подписанных сообщений и процедуры верификации, обеспечивая совместимость с другими элементами стандарта.

Параметры эллиптических кривых

ANSI X9.63 определяет набор рекомендуемых параметров эллиптических кривых, которые должны использоваться при реализации ECC. Эти параметры включают:

  • Простое поле (Fp) или поле характеристики 2 (F2m): Определяет математическую структуру, над которой строится кривая.
  • Коэффициенты a и b: Определяют уравнение кривой (y² = x³ + ax + b для Fp).
  • Порядок кривой (n): Количество точек на кривой.
  • Базовая точка (G): Генерирующая точка, используемая для вычисления открытых ключей.
  • Кофактор (h): Отношение порядка кривой к порядку базовой точки.

Стандарт включает как кривые над простыми полями (например, P-256, P-384, P-521), так и кривые над полями характеристики 2, которые были популярны в ранних реализациях, но впоследствии уступили место кривым над простыми полями из-за соображений производительности и безопасности.

Форматы данных и кодирование

ANSI X9.63 детально регламентирует форматы представления криптографических объектов, что критически важно для совместимости между различными реализациями. Основные форматы включают:

  • Форматы точек на эллиптической кривой: Определяет, как точка (координаты x и y) преобразуется в последовательность байтов. Стандарт поддерживает сжатый (compressed) и несжатый (uncompressed) форматы. Сжатый формат позволяет уменьшить размер передаваемых данных, передавая только координату x и один бит для восстановления координаты y.
  • Форматы ключей: Определяет структуру для хранения и передачи открытых и закрытых ключей.
  • Форматы сообщений: Определяет, как упаковываются зашифрованные данные, общие секреты и подписи для передачи по протоколам.

Применение и значение

Хотя ANSI X9.63 был разработан для финансовой индустрии, его влияние вышло далеко за её пределы. Стандарт стал основой для многих других криптографических стандартов и протоколов, включая:

  • IETF (Internet Engineering Task Force): Стандарты RFC, такие как RFC 4492 (Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)), во многом опирались на спецификации ANSI X9.63.
  • NIST (National Institute of Standards and Technology): Наборы кривых NIST (P-256, P-384, P-521) были прямо заимствованы из ANSI X9.63.
  • ISO (International Organization for Standardization): Международный стандарт ISO/IEC 15946, описывающий криптографию на эллиптических кривых, также основан на ANSI X9.63.

В России криптографические алгоритмы на эллиптических кривых регулируются национальными стандартами ГОСТ Р 34.10-2012 (цифровая подпись) и ГОСТ Р 34.11-2012 (хэш-функция), которые используют собственные параметры кривых, отличные от ANSI X9.63. Тем не менее, знание ANSI X9.63 необходимо для обеспечения совместимости с международными финансовыми системами и протоколами, используемыми в трансграничных операциях.

Критика и ограничения

Основная критика в адрес ANSI X9.63 связана с включением кривых над полями характеристики 2. Хотя эти кривые были популярны в 1990-х годах, впоследствии были обнаружены атаки, снижающие их безопасность по сравнению с кривыми над простыми полями. В 2010-х годах многие организации (включая NIST и IETF) рекомендовали отказаться от использования кривых над F2m.

Кроме того, некоторые эксперты критиковали стандарт за излишнюю сложность и детализацию, что могло затруднить его реализацию в простых устройствах. Однако, несмотря на это, ANSI X9.63 остаётся одним из наиболее влиятельных и широко используемых стандартов в области криптографии на эллиптических кривых, заложив основы для многих современных систем защиты данных.

Источники

  • American National Standard X9.63-2001: Public Key Cryptography for the Financial Services Industry — Key Agreement and Key Transport Using Elliptic Curve Cryptography.
  • American National Standard X9.62-2005: Public Key Cryptography for the Financial Services Industry — The Elliptic Curve Digital Signature Algorithm (ECDSA).
  • NIST Special Publication 800-186: Recommendations for Discrete Logarithm-Based Cryptography: Elliptic Curve Domain Parameters.
  • RFC 4492: Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →