Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 414

Ed25519

ПроверилCybersecurity entrepreneur & security researcher

Что такое Ed25519?

Ed25519Схема подписи EdDSA на скрученной кривой Эдвардса edwards25519, около 128 бит безопасности, детерминированная, быстрая и устойчивая к атакам по сторонним каналам (RFC 8032).


Ed25519 — наиболее широко распространённая реализация алгоритма подписи на кривых Эдвардса (EdDSA), описанная в RFC 8032. Она использует скрученную кривую Эдвардса edwards25519 (бирационально эквивалентную Curve25519) над простым полем 2²⁵⁵ − 19, давая 32-байтовые открытые ключи и 64-байтовые подписи при примерно 128 битах безопасности. Подпись детерминирована: нонс для каждой подписи выводится из закрытого ключа и сообщения через SHA-512, что исключает катастрофический сбой повторного использования нонса, сломавший подпись кода Sony PlayStation 3 и Android-кошельки Bitcoin, повторно применявшие k из ECDSA.

В феврале 2023 года NIST добавил EdDSA (Ed25519 и Ed448) в FIPS 186-5, завершив долгий период, когда схема была повсеместной на практике, но не одобрена FIPS, — разрыв, из-за которого её не пускали в некоторые регулируемые среды. Сегодня Ed25519 — значение по умолчанию в OpenSSH, WireGuard, GnuPG, TLS 1.3, Signal и современных системах подписи кода.

Тонкий подводный камень — семантика проверки. Поскольку кофактор кривой равен 8, реализации расходятся в том, принимать ли точки малого порядка и выполняется ли проверка с кофактором, так что подпись, принятую одной библиотекой, другая может отвергнуть, а некоторые допускают податливые (malleable) варианты. Статья 2020 года «Taming the Many EdDSA» (Chalkias, Garillot, Nikolaenko) каталогизировала эти расхождения, важные для систем консенсуса вроде блокчейнов (Solana, Cardano), где каждый валидатор должен совпадать бит в бит. RFC 8032 рекомендует более строгие проверки; библиотеки вроде libsodium применяют их по умолчанию.

flowchart TD
  SK["Закрытое зерно"] -->|SHA-512| H["Хэш h0..h63"]
  H --> A["Скаляр a, открытый ключ A = a*B"]
  H --> PR["Байты префикса"]
  PR --> R["r = SHA-512(префикс, M)"]
  R --> RP["R = r*B"]
  RP --> S["S = r + SHA-512(R, A, M)*a"]
  S --> SIG["Подпись = R, S<br/>64 байта, детерминированная"]
  SIG --> V{"Проверка:<br/>8*S*B == 8*R + 8*h*A ?"}
  A --> V
  V -->|да| OK["Верна"]
  V -->|нет| BAD["Отклонить"]

Примеры

  1. 01

    Ключи OpenSSH, созданные `ssh-keygen -t ed25519`.

  2. 02

    Solana, Cardano и другие блокчейны подписывают транзакции на Ed25519.

Частые вопросы

Что такое Ed25519?

Схема подписи EdDSA на скрученной кривой Эдвардса edwards25519, около 128 бит безопасности, детерминированная, быстрая и устойчивая к атакам по сторонним каналам (RFC 8032). Относится к категории Криптография в кибербезопасности.

Что означает Ed25519?

Схема подписи EdDSA на скрученной кривой Эдвардса edwards25519, около 128 бит безопасности, детерминированная, быстрая и устойчивая к атакам по сторонним каналам (RFC 8032).

Как защититься от Ed25519?

Защита от Ed25519 обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Ed25519?

Распространённые альтернативные названия: EdDSA на edwards25519, RFC 8032 Ed25519.

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

См. также