EdDSA (anglicky Edwards-curve Digital Signature Algorithm, Edwardsův algoritmus digitálního podpisu) je šifra s veřejným klíčem pro elektronický podpis, která využívá kryptografii nad eliptickými křivkami (variantu Schnorrova podpisu založeného na zakroucených Edwardsových křivkách). Šifra je navržena tak, aby byla rychlejší než stávající schémata digitálního podpisu bez obětování bezpečnosti. Vyvinul ji Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe a Bo-Yin Yang. Referenční implementace je zveřejněna jako public domain software.
Ed25519
Ed25519 je EdDSA podpis využívající SHA-512 (SHA-2) a eliptickou křivku související s Curve25519.
Výkon
Původní tým optimalizoval Ed25519 pro rodinu procesorů x86-64 Nehalem/Westmere. Ověření lze provádět v dávkách po 64 podpisech, což dále zvyšuje propustnost. Ed25519 má poskytovat odolnost proti útokům srovnatelnou s kvalitními 128bitovými symetrickými šiframi.
Veřejné klíče jsou dlouhé 256 bitů a podpisy jsou dlouhé 512 bitů.
Nekonzistence standardizace a implementace
Pro EdDSA existují dvě standardizační snahy, jeden od IETF (informační) a jeden od NIST jako součást FIPS 186-5. Rozdíly mezi standardy byly analyzovány, a jsou k dispozici testovací vektory.
Software
Významná použití Ed25519 zahrnují OpenSSH, GnuPG a různé alternativy nebo nástroj signify od OpenBSD. Použití Ed25519 (a Ed448) bylo standardizováno pro protokol SSH. V roce 2023 zahrnovala konečná verze standardu FIPS 186-5 deterministický Ed25519 jako schválené podpisové schéma.
- Apple Watch a iPhone používají klíče Ed25519 pro vzájemné ověřování IKEv2
- botan
- Crypto++
- Protokol kryptoměny CryptoNote
- Dropbear SSH
- I2Pd implementace EdDSA
- Java Development Kit 15
- Libgcrypt
- Minisign a Minisign Miscellanea pro macOS
- NaCl / libsodium
- OpenSSL 1.1.1
- Python – pomalá, ale stručná alternativní implementace, nezahrnuje ochranu proti útokům z postranního kanálu
- Referenční implementace Supercop (jazyk C s inline assemblerem)
- Virgil PKI standardně používá klíče Ed25519
- wolfSSL
- Nano (kryptoměna) používá pro adresy veřejné klíče ed25519
- Mainline DHT používá podepisování ed25519 pro své rozšíření podporující libovolně měnitelná data
Ed448
Ed448 je podpisové schéma EdDSA definované pomocí hašovací funkce SHAKE256 a eliptické křivky edwards448, (nezakroucené) Edwardsovy křivky související s Curve448. Ed448 byl také schválen ve finální verzi standardu FIPS 186-5.