A nyilvános kulcsú kriptográfiai rendszerekben az Edwards-görbe digitális aláírási algoritmus (EdDSA) egy digitális aláírási séma, amely az Edwards elliptikus görbe Schnor -séma egy változatát használja [1] .
Úgy tervezték, hogy gyorsabb legyen, mint a meglévő digitális aláírási séma, anélkül, hogy veszélyeztetné a biztonságát. Daniel J. Bernstein , Nils Duif, Tanya Lange, Peter Schwabe és Bo-Yin Yang tervezte 2011-re.
A következő az EdDSA egyszerűsített leírása, amely nem tartalmazza az egész számok és görbepontok bitkarakterláncként való kódolásának részleteit. A digitális aláírás megvalósításának teljes leírása és részletei megtalálhatók a dokumentációban és a vonatkozó RFC-kben [2] [3] [1] .
Az EdDSA a következő paramétereket használja:
Ezek a minimális beállítások az EdDSA aláírási séma összes felhasználója számára. Az EdDSA aláírás biztonsága nagymértékben függ a paraméterek megválasztásától, kivéve az alappont tetszőleges megválasztását. Például Polard ro-algoritmusa a logaritmushozdurván görbét kell vennie, mielőtt megtehetné[ pontosítás ] számítsa ki a logaritmust, [4] tehát l-nek elég nagynak kell lennie ahhoz, hogy ez ne legyen lehetséges, és általában nagyobbnak kell lennie 2^200-nál. [5] Az l választását q választása korlátozza, mivel a Hasse-tétel szerint nem térhet el q + 1-től többel, mint
Az EdDSA aláírási séma szerint
nyilvános kulcs Az EdDSA sémában a nyilvános kulcs egy b bitben kódolt görbepont. Aláírás Az A nyilvános kulcs által az M üzenetben lévő EdDSA aláírás a 2b bitben, egy görbepontban és egy egész számban kódolt (R,S) pár , amely kielégíti az ellenőrző egyenletet. 2 c S B = 2 c R + 2 c H ( R , A , M ) A . {\displaystyle 2^{c}SB=2^{c}R+2^{c}H(R,A,M)A.} privát kulcs Az EdDSA sémában a privát kulcs egy b-bites k karakterlánc, amelyet egyenletesen véletlenszerűen kell kiválasztani. A megfelelő nyilvános kulcs ebben az esetben , ahol , a H(k) legkisebb jelentőségű b-bitje, egy kisvégű egész számként értelmezve. Az M üzenetaláírás az (R,S) pár, ahol R=rB és és S ≡ r + H ( R , A , M ) s ( mod ℓ ) . {\displaystyle S\equiv r+H(R,A,M)s{\pmod {\ell )).} . Ez kielégíti az igazolási egyenletet 2 c S B = 2 c ( r + H ( R , A , M ) s ) B = 2 c r B + 2 c H ( R , A , M ) s B = 2 c R + 2 c H ( R , A , M ) A . {\displaystyle {\begin{aligned}2^{c}SB&=2^{c}(r+H(R,A,M)s)B\\&=2^{c}rB+2^{c }H(R,A,M)sB\\&=2^{c}R+2^{c}H(R,A,M)A.\end{igazítva}}}Ed25519 – EdDSA aláírási séma SHA-512 és Curve25519 használatával [2] ahol:
− x 2 + y 2 = egy − 121665 121666 x 2 y 2 , {\displaystyle -x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2},}
A görbe biracionálisan egyenértékű a Curve25519 néven ismert Montgomery-görbével. Egyenértékűség [6] [2]
x = u v − 486664 , y = u − egy u + egy . {\displaystyle x={\frac {u}{v}}{\sqrt {-486664}},\quad y={\frac {u-1}{u+1}}.}Bernstein csapata az Ed25519-et az x86-64 Nehalem /Westmere processzorcsaládhoz optimalizálta. Az ellenőrzés 64 digitális aláírásból álló kötegekben hajtható végre a még nagyobb átvitel érdekében. Az Ed25519-et úgy tervezték, hogy a 128 bites szimmetrikus titkosítások minőségéhez hasonló támadási ellenállást biztosítson . A nyilvános kulcsok 256 bitesek, az aláírás pedig kétszer akkora.
Biztonsági szolgáltatásként az Ed25519 nem használ olyan elágazási műveleteket és tömbindexelési lépéseket, amelyek titkoktól függenek az oldalcsatornás támadások megelőzésére .
Más diszkrét logaritmikus aláírási sémákhoz hasonlóan az EdDSA is egy nonce nevű titkos értéket használ , amely minden aláíráshoz egyedi. A DSA és ECDSA aláírási sémákban ezt a nonce-t hagyományosan véletlenszerűen generálják minden aláíráshoz, és ha a véletlenszám-generátor meghibásodik vagy megjósolható az aláírás generálása során, az aláírás kiszivároghat a privát kulcs, ami a Sony PlayStation 3 firmware-ével történt. aláíró kulcs frissítése [ 7] [8] . Hozzájuk képest az EdDSA determinisztikusan választja ki a nonce-okat, például a privát kulcs és az üzenet hash-ét. Így a privát kulcs generálása után az EdDSA-nak már nincs szüksége véletlenszám-generátorra az aláírások készítéséhez, és nem áll fenn annak a veszélye, hogy a digitális aláírás létrehozásához használt véletlenszám-generátor felfedje a titkos kulcsot.
Az Ed25519 figyelemre méltó felhasználási területei közé tartozik az OpenSSH , [9] GnuPG [10] és különféle alternatívák, valamint az OpenBSD értékeszköze . [tizenegy]