Перейти к содержимому
ecdsa.com

Ed25519

EdDSA на Curve25519 в форме Эдвардса с SHA-512 (RFC 8032, § 5.1): 32-байтные открытые ключи, 64-байтные детерминированные подписи и стойкость около 128 бит.
Другие написанияEd25519 signaturessh-ed25519Ed25519ctx

При генерации ключа 32-байтный seed хешируется SHA-512: первая половина после clamping становится секретным скаляром, а вторая — префиксом для вычисления nonce. Открытый ключ — 32-байтная кодировка координаты y точки в порядке little-endian со знаком x в старшем бите, а подпись — R ‖ S длиной 64 байта. API по-разному понимают «закрытый ключ»: это либо 32-байтный seed (RFC 8032, PKCS #8 по RFC 8410), либо 64 байта, где за seed следует открытый ключ (NaCl, libsodium, ed25519.PrivateKey в Go); это частый источник ошибок при преобразовании ключей.

Идентификаторы: OID 1.3.101.112 без параметров алгоритма (RFC 8410); в JOSE — kty OKP, crv Ed25519 (RFC 8037) и alg Ed25519 (RFC 9864, заменяет полиморфный EdDSA); в COSE — −19 (и более старый −8); в TLS 1.3 — ed25519 (0x0807); в SSH — ssh-ed25519 (RFC 8709); в OpenPGP v6 — собственный тип ключей (RFC 9580). WebCrypto поддерживает его начиная с Firefox 129, Safari 17 и Chrome 137.

На одном ядре Apple M4 Max OpenSSL 3.6.5 создаёт около 59 800 подписей Ed25519 и выполняет около 24 900 проверок в секунду. Ed25519 одобрен в FIPS 186-5. Библиотеки по-разному обрабатывают специально подобранные пограничные случаи (точки малого порядка, кодировки, отличные от канонической формы, проверка с кофактором или без него); это важно только там, где многие стороны должны одинаково решать, действительна ли подпись.

В отличие от ECDSA, Ed25519 не нуждается в случайности при подписании, не допускает варианта подписи с high-S и использует полные формулы сложения. Главный пробел — аппаратная поддержка: Secure Enclave от Apple, многие смарт-карты и HSM поддерживают только P-256, поэтому ключи доступа и ключи, привязанные к устройству, в основном используют ECDSA.

Стандарты и ссылки

Инструменты

Сравнения

Термины

Библиотеки

Кривые

Все термины