Народный

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

Curve25519

Эллиптическая кривая, спроектированная Дэниелом Бернштейном в 2005. Основа Diffie-Hellman (X25519) в WireGuard, TLS 1.3, Signal, SSH. Стандарт де-факто для современной асимметричной криптографии.

Что это

Curve25519 — это эллиптическая кривая Монтгомери над полем GF(2²⁵⁵ − 19), спроектированная Дэниелом Бернштейном в 2005 году специально для быстрого и безопасного Diffie-Hellman. Используется в двух режимах:

  • X25519 — Diffie-Hellman key exchange (RFC 7748). Применяется в TLS 1.3, WireGuard, Noise Protocol, Signal Protocol, SSH.
  • Ed25519 — цифровые подписи на той же кривой через схему EdDSA (RFC 8032). Применяется для подписи TLS-сертификатов, SSH-ключей, transparency-логов.

К 2026 году Curve25519 — самая распространённая ECC-кривая в практической криптографии, обогнавшая NIST-кривые P-256/P-384 из-за подозрений к константам последних.

Как это работает

Кривая определяется уравнением y² = x³ + 486662·x² + x над простым полем 2²⁵⁵ − 19. Базовая точка имеет порядок чуть меньше 2²⁵². Private key — 32 байта (256 бит), public key тоже 32 байта (только x-координата точки).

Diffie-Hellman через X25519:

Alice:   a (private), A = a·G (public)
Bob:     b (private), B = b·G (public)
Shared:  Alice вычисляет a·B, Bob вычисляет b·A — оба получают a·b·G

Ключевое преимущество — операция X25519 реализуется через Montgomery ladder, который выполняется за константное время (constant-time) на любой архитектуре, без branch’ей по секретным данным. Это отрезает целый класс side-channel атак — таймингов, кэш-атак, power analysis.

Применение в WireGuard:

[Interface]
PrivateKey = <base64 32 байт x25519>
ListenPort = 51820

[Peer]
PublicKey = <base64 32 байт x25519 публичного ключа peer'а>
Endpoint = vpn.example.com:51820

Handshake WireGuard — это IK-pattern Noise Protocol, основанный целиком на X25519 + ChaCha20-Poly1305 + BLAKE2s.

Почему это важно для пользователя VPN

Если VPN-сервис говорит “WireGuard” или “modern crypto” — за этим почти наверняка стоит Curve25519. Это не маркетинг, а инженерное решение: 32-байтные ключи помещаются в QR-код или в одну строку Telegram, handshake занимает 1 RTT, на ARM-смартфоне Curve25519 опережает RSA-2048 в 10-20 раз по скорости.

Что юзеру стоит знать:

  • TLS 1.3 в Chrome/Firefox по умолчанию предпочитает X25519 для key exchange (ECDHE). При подключении к HTTPS-сайту через VPN на этой кривой строится session key для каждого соединения.
  • Forward secrecy. Ephemeral X25519 (новая ключевая пара на каждую сессию) гарантирует PFS — даже если завтра украдут долговременный приватный ключ сервера, прошлый трафик не расшифруют.
  • Post-quantum угроза. X25519 уязвим к гипотетическому квантовому компьютеру (алгоритм Шора). В 2026 году TLS 1.3 уже переходит на гибридные kex (X25519 + ML-KEM), см. Post-quantum VPN.

Curve25519 — это не “ещё одна кривая”, это инженерное решение, на котором стоит почти вся современная end-to-end-криптография.

Связанные термины

X25519 — это Curve25519 в режиме DH. ChaCha20-Poly1305 — обычно идёт в паре в одной cipher suite. Noise Protocol — фреймворк, использующий X25519 как стандартный примитив. WireGuard handshake целиком построен на Curve25519. TLS 1.3 ECDHE по умолчанию предпочитает X25519.

Источники