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

Протокол Диффи — Хеллмана на эллиптических кривых

Протокол Диффи — Хеллмана на эллиптических кривых (Elliptic Curve Diffie — Hellman, ECDH) — это криптографический протокол, позволяющий двум сторонам, не имеющим предварительно согласованного секрета, установить общий секретный ключ по незащищённому каналу связи. Является вариантом классического протокола Диффи — Хеллмана, в котором вместо мультипликативной группы конечного поля используется группа точек эллиптической кривой над конечным полем. ECDH обеспечивает эквивалентный уровень безопасности при значительно меньшей длине ключа, что делает его основой современных систем асимметричного шифрования, включая TLS, SSH и Signal Protocol.

История

Протокол Диффи — Хеллмана был впервые опубликован в 1976 году Уитфилдом Диффи и Мартином Хеллманом в работе «New Directions in Cryptography». Идея использования эллиптических кривых в криптографии была независимо предложена Нилом Коблицем и Виктором Миллером в 1985 году. Они показали, что группа точек эллиптической кривой над конечным полем может служить аналогом мультипликативной группы поля, но с более высокой вычислительной сложностью задачи дискретного логарифмирования.

Практическая реализация ECDH стала возможной после стандартизации эллиптических кривых Национальным институтом стандартов и технологий США (NIST) в 2000 году (стандарт FIPS 186-2). В 2010-х годах протокол получил широкое распространение в интернет-протоколах: в 2018 году более 80% HTTPS-соединений использовали ECDH для согласования ключей.

Математические основы

Эллиптическая кривая над конечным полем

Эллиптическая кривая над конечным полем \( \mathbb{F}_p \) (где \( p \) — простое число, большее 3) задаётся уравнением Вейерштрасса:

\[ y^2 = x^3 + ax + b \mod p, \]

где коэффициенты \( a, b \in \mathbb{F}_p \) удовлетворяют условию \( 4a^3 + 27b^2 \not\equiv 0 \mod p \) (отсутствие сингулярностей). Множество точек кривой \( E(\mathbb{F}_p) \) состоит из всех пар \( (x, y) \), удовлетворяющих уравнению, а также бесконечно удалённой точки \( \mathcal{O} \), играющей роль нейтрального элемента.

Группа точек

На множестве \( E(\mathbb{F}_p) \) определена операция сложения точек, превращающая его в абелеву группу. Правила сложения:

Порядок группы \( |E(\mathbb{F}_p)| \) приблизительно равен \( p \), но точное значение определяется теоремой Хассе: \( |E(\mathbb{F}_p)| = p + 1 - t \), где \( |t| \leq 2\sqrt{p} \).

Задача дискретного логарифмирования на эллиптической кривой (ECDLP)

Пусть \( G \) — базовая точка кривой простого порядка \( n \). Задача ECDLP состоит в нахождении целого числа \( k \) по известным точкам \( G \) и \( Q = kG \). Стойкость ECDH основана на вычислительной сложности ECDLP: для кривой размера 256 бит решение требует около \( 2^{128} \) операций, что эквивалентно сложности взлома RSA с ключом 3072 бита.

Описание протокола ECDH

Параметры системы

До начала работы стороны договариваются об общих параметрах:

Эти параметры могут быть взяты из стандартизированных кривых, например, Curve25519 (определена в RFC 7748) или P-256 (NIST).

Шаги протокола

  1. Генерация ключей:
  1. Обмен открытыми ключами:
  1. Вычисление общего секрета:

Пример на малой кривой

Рассмотрим кривую \( y^2 = x^3 + x + 1 \) над \( \mathbb{F}_{23} \). Пусть базовая точка \( G = (0, 1) \), порядок \( n = 7 \). Алиса выбирает \( a = 2 \), вычисляет \( A = 2G = (5, 19) \). Боб выбирает \( b = 3 \), вычисляет \( B = 3G = (13, 7) \). Общий секрет: \( S = 2B = 3A = 6G = (17, 3) \).

Классификация и варианты

По типу кривой

По режиму работы

Комбинированные протоколы

Применение

Транспортный уровень безопасности (TLS)

Начиная с версии TLS 1.3 (RFC 8446, 2018), ECDHE является обязательным для согласования ключей. При установке HTTPS-соединения клиент и сервер обмениваются эфемерными открытыми ключами на кривых X25519 или P-256. Полученный общий секрет используется для шифрования сеанса.

SSH (Secure Shell)

Протокол SSH-2 поддерживает обмен ключами по ECDH (RFC 5656). Популярные реализации (OpenSSH) по умолчанию используют Curve25519.

Signal Protocol

Мессенджер Signal и его производные (WhatsApp, Facebook Messenger) используют ECDH в комбинации с протоколом X3DH (Extended Triple Diffie-Hellman) для установления асинхронных сеансов с совершенной прямой секретностью.

Криптовалюты

В Bitcoin и Ethereum ECDH не используется напрямую, но применяется алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm), основанный на той же кривой secp256k1. В некоторых блокчейнах (например, Monero) ECDH применяется для создания одноразовых ключей.

Безопасность

Стойкость к атакам

Критика стандартов NIST

В 2013 году Эдвард Сноуден раскрыл информацию, что АНБ США могло внедрить бэкдоры в генератор случайных чисел Dual_EC_DRBG, связанный с криптографией на эллиптических кривых. Это привело к снижению доверия к кривым NIST и росту популярности Curve25519.

Реализации

ECDH реализован во всех основных криптографических библиотеках:

Перспективы

С развитием квантовых вычислений ECDH постепенно вытесняется гибридными схемами, сочетающими классическую криптографию с постквантовыми алгоритмами. В 2024 году Национальный институт стандартов и технологий США (NIST) начал стандартизацию гибридных механизмов, включая ML-KEM (CRYSTALS-Kyber) в комбинации с ECDH. Тем не менее, на 2025 год ECDH остаётся доминирующим протоколом согласования ключей в интернете.

Источники

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

На главную BFOmetr →