Ed25519
Ed25519 — схема цифровой подписи EdDSA на кривой Curve25519. Разработана Дэниелом Бернштейном в 2011. Быстрая, безопасная, детерминистическая. Стандарт де-факто для новых систем.
Свойства
- Размер ключа: 32 байта (публичный), 64 байта (приватный)
- Подпись: 64 байта
- Стойкость ≈ 128-bit (как AES-128)
- Детерминистическая (нет уязвимости с повтором k)
- Быстрая подпись/проверка (в разы быстрее ECDSA)
- Устойчива к side-channel по времени (constant-time)
Где используется
- SSH —
ssh-keygen -t ed25519по умолчанию - TLS 1.3 — поддерживается
- Signal, WireGuard — идентификация
- Tor — hidden services v3
- Git — подпись коммитов
- Age — X25519 (тот же Curve25519, KEM-режим)
- Cardano, Solana, Monero — криптовалюты
Curve25519 vs Ed25519
Curve25519 — сама эллиптическая кривая. X25519 — ECDH (обмен ключами) на ней. Ed25519 — подпись (EdDSA) на ней (точнее, на twisted Edwards form Edwards25519).
Ed25519 vs ECDSA P-256
| Ed25519 | ECDSA P-256 | |
|---|---|---|
| Скорость подписи | быстрее ~2-3x | — |
| Скорость проверки | быстрее | — |
| Constant-time | да by design | требует care |
| Детерминизм | да | требует RFC 6979 |
| HSM/YubiKey | есть, но реже | везде |
Пост-квантовая замена
Ed25519 не устоит перед квантовым компом. Замены: ML-DSA (Dilithium, стандарт NIST FIPS 204), Falcon, SPHINCS+.
Генерация
ssh-keygen -t ed25519 -C "you@example.com"
openssl genpkey -algorithm Ed25519 -out key.pem