factograf
CA
Sign in

esquema de signatura digital

EdDSA

All data from the card 3
Dissenyadors
Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang, et al.
Data primera publicació
setembre 2011
Estructura
corba el·líptica

En criptografia de clau pública, l'algoritme de signatura digital de corba d'Edwards (EdDSA) és un esquema de signatura digital que utilitza una variant de la signatura de Schnorr basada en corbes d'Edwards retorçades. Està dissenyat per ser més ràpid que els esquemes de signatura digital existents sense sacrificar la seguretat. Va ser desenvolupat per un equip que incloïa Daniel J. Bernstein, Nie

Resum

La següent és una descripció simplificada d'EdDSA, ignorant els detalls de la codificació d'enters i punts de corba com a cadenes de bits; els detalls complets es troben als articles i a la RFC.

Un esquema de signatura EdDSA és una opció:

  • de camp finit {\displaystyle \mathbb {F} _{q}} sobre la potència prima imparella {\displaystyle q};
  • de corba el·líptica {\displaystyle E} més de {\displaystyle \mathbb {F} _{q}} el grup del qual {\displaystyle E(\mathbb {F} _{q})} de {\displaystyle \mathbb {F} _{q}} els punts racionals tenen ordre {\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell }, on {\displaystyle \ell } és un primer gran i {\displaystyle 2^{c}} s'anomena cofactor;
  • del punt base {\displaystyle B\in E(\mathbb {F} _{q})} amb ordre {\displaystyle \ell }; i
  • de la funció hash criptogràfica {\displaystyle H} amb {\displaystyle 2b} sortides de -bit, on {\displaystyle 2^{b-1}>q} de manera que els elements de {\displaystyle \mathbb {F} _{q}} i punts de corba en {\displaystyle E(\mathbb {F} _{q})} es pot representar mitjançant cadenes de {\displaystyle b} bits.

Aquests paràmetres són comuns a tots els usuaris de l'esquema de signatura EdDSA. La seguretat de l'esquema de signatura EdDSA depèn críticament de l'elecció dels paràmetres, excepte per l'elecció arbitrària del punt base; per exemple, s'espera que l'algoritme rho de Pollard per a logaritmes trigui aproximadament {\displaystyle {\sqrt {\ell \pi /4}}} addicions de corbes abans de poder calcular un logaritme discret, de manera que {\displaystyle \ell } ha de ser prou gran perquè això sigui inviable, i normalment es considera que supera 2200 L'elecció de {\displaystyle \ell } està limitat per l'elecció de {\displaystyle q}, ja que pel teorema de Hasse, {\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell } no pot diferir de {\displaystyle q+1} per més de {\displaystyle 2{\sqrt {q}}}. La funció hash {\displaystyle H} normalment es modela com un oracle aleatori en anàlisis formals de la seguretat d'EdDSA.

Dins d'un esquema de signatura EdDSA,

Clau pública
Una clau pública EdDSA és un punt de corba {\displaystyle A\in E(\mathbb {F} _{q})}, codificat en {\displaystyle b} bits.
Verificació de signatura
Una signatura EdDSA en un missatge {\displaystyle M} per clau pública {\displaystyle A} és la parella {\displaystyle (R,S)}, codificat en {\displaystyle 2b} bits, d'un punt de corba {\displaystyle R\in E(\mathbb {F} _{q})} i un nombre enter {\displaystyle 0<S<\ell } satisfent la següent equació de verificació, on {\displaystyle \parallel } denota concatenació:

{\displaystyle 2^{c}SB=2^{c}R+2^{c}H(R\parallel A\parallel M)A.}

Clau privada
Una clau privada EdDSA és una {\displaystyle b} cadena de bits {\displaystyle k} que s'han de triar uniformement a l'atzar. La clau pública corresponent és {\displaystyle A=sB}, on {\displaystyle s=H_{0,\dots,b-1}(k)} és el menys significatiu {\displaystyle b} trossos de {\displaystyle H(k)} interpretat com un enter en ordre de bytes.
Signatura
La signatura d'un missatge {\displaystyle M} es calcula determinísticament com a {\displaystyle (R,S),} on {\displaystyle R=rB} per {\displaystyle r=H(H_{b,\dots,2b-1}(k)\parallel M)}, i {\displaystyle S\equiv r+H(R\parallel A\parallel M)s{\pmod {\ell }}.} Això satisfà l'equació de verificació

{\displaystyle {\begin{aligned}2^{c}SB&=2^{c}(r+H(R\parallel A\parallel M)s)B\\&=2^{c}rB+2^{c}H(R\parallel A\parallel M)sB\\&=2^{c}R+2^{c}H(R\parallel A\parallel M)A.\end{aligned}}}

Ed25519

Ed25519 és l'esquema de signatura EdDSA que utilitza SHA-512 (SHA-2) i una corba el·líptica relacionada amb la corba25519 on

  • {\displaystyle q=2^{255}-19,}
  • {\displaystyle E/\mathbb {F} _{q}} és la corba d'Edwards torçada

{\displaystyle -x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2},}

  • {\displaystyle \ell =2^{252}+27742317777372353535851937790883648493} i {\displaystyle c=3}
  • {\displaystyle B} és el punt únic en {\displaystyle E(\mathbb {F} _{q})} de qui {\displaystyle y} coordenada és {\displaystyle 4/5} i de qui {\displaystyle x} la coordenada és positiva. "positiu" es defineix en termes de codificació de bits:
    • Les coordenades "positives" són coordenades parells (el bit menys significatiu s'esborra)
    • Les coordenades "negatives" són coordenades imparelles (es defineix el bit menys significatiu)
  • {\displaystyle H} és SHA-512, amb {\displaystyle b=256}.

La corba d'Edwards retorçada {\displaystyle E/\mathbb {F} _{q}} es coneix com a edwards25519, i és biracionalment equivalent a la corba de Montgomery coneguda com a Curve25519. L'equivalència és {\displaystyle x={\frac {u}{v}}{\sqrt {-486664}},\quad y={\frac {u-1}{u+1}}.}

Read next

In 12 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article