Articulo de referencia

EdDSA

En criptografía de clave pública , el algoritmo de firma digital de curva de Edwards ( EdDSA ) es un esquema de firma digital que utiliza una variante de la firma de Schnorr bas...

En criptografía de clave pública , el algoritmo de firma digital de curva de Edwards ( EdDSA ) es un esquema de firma digital que utiliza una variante de la firma de Schnorr basada en curvas de Edwards retorcidas . [ 1 ] Está diseñado para ser más rápido que los esquemas de firma digital existentes sin sacrificar la seguridad. Fue desarrollado por un equipo que incluía a Daniel J. Bernstein , Niels Duif, Tanja Lange , Peter Schwabe y Bo-Yin Yang . [ 2 ] La implementación de referencia es software de dominio público . [ 3 ]

Resumen

A continuación se presenta una descripción simplificada de EdDSA, omitiendo detalles sobre la codificación de enteros y puntos de curva como cadenas de bits; los detalles completos se encuentran en los artículos y RFC. [ 4 ] [ 2 ] [ 1 ]

Un esquema de firma EdDSA es una opción: [ 4 ] : 1–2 [ 2 ] : 5–6 [ 1 ] : 5–7

  • de campo finitoFq{\displaystyle \mathbb {F} _{q}}sobre potencia prima imparq{\displaystyle q};
  • de curva elípticami{\displaystyle E}encimaFq{\displaystyle \mathbb {F} _{q}}cuyo grupomi(Fq){\displaystyle E(\mathbb {F} _{q})}deFq{\displaystyle \mathbb {F} _{q}}-Los puntos racionales tienen orden#mi(Fq)=2do{\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell }, dónde{\displaystyle \ell }es un número primo grande y2do{\displaystyle 2^{c}}se denomina cofactor;
  • del punto baseBmi(Fq){\displaystyle B\in E(\mathbb {F} _{q})}con orden{\displaystyle \ell }; y
  • de función hash criptográficaH{\displaystyle H}con2b{\displaystyle 2b}Salidas de bits, donde2b1>q{\displaystyle 2^{b-1}>q}para que los elementos deFq{\displaystyle \mathbb {F} _{q}}y puntos de curva enmi(Fq){\displaystyle E(\mathbb {F} _{q})}se puede representar mediante cadenas deb{\displaystyle b}bits.

Estos parámetros son comunes a todos los usuarios del esquema de firma EdDSA. La seguridad del esquema de firma EdDSA depende críticamente de la elección de los parámetros, excepto por la elección arbitraria del punto base; por ejemplo, se espera que el algoritmo rho de Pollard para logaritmos tome aproximadamenteπ/4{\displaystyle {\sqrt {\ell \pi /4}}}sumas de curvas antes de que pueda calcular un logaritmo discreto, [ 5 ] así{\displaystyle \ell }debe ser lo suficientemente grande para que esto sea inviable, y normalmente se considera que supera los 2200. [ 6 ] La elección de{\displaystyle \ell }está limitado por la elección deq{\displaystyle q}, puesto que por el teorema de Hasse ,#mi(Fq)=2do{\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell }no puede diferir deq+1{\displaystyle q+1}por más2q{\displaystyle 2{\sqrt {q}}}La función hashH{\displaystyle H}Normalmente se modela como un oráculo aleatorio en los análisis formales de la seguridad de EdDSA.

Dentro de un esquema de firma EdDSA,

Clave pública
Una clave pública EdDSA es un punto de curva.Ami(Fq){\displaystyle A\in E(\mathbb {F} _{q})}, codificado enb{\displaystyle b}bits.
Verificación de firma
Una firma de EdDSA en un mensajeMETRO{\displaystyle M}mediante clave públicaA{\displaystyle A}es el par(R,S){\displaystyle (R,S)}, codificado en2b{\displaystyle 2b}bits, de un punto curvoRmi(Fq){\displaystyle R\in E(\mathbb {F} _{q})}y un número entero0<S<{\displaystyle 0<S<\ell }que satisface la siguiente ecuación de verificación, donde{\displaystyle \parallel }denota concatenación :

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

Clave privada
Una clave privada EdDSA es unab{\displaystyle b}cadena de bitsk{\displaystyle k}que debe elegirse uniformemente al azar. La clave pública correspondiente esA=sB{\displaystyle A=sB}, dóndes=H0,,b1(k){\displaystyle s=H_{0,\dots ,b-1}(k)}es el menos significativob{\displaystyle b}trozos deH(k){\displaystyle H(k)}interpretado como un entero en little-endian .
Firma
La firma en un mensajeMETRO{\displaystyle M}se calcula de forma determinista como(R,S),{\displaystyle (R,S),}dóndeR=rB{\displaystyle R=rB}parar=H(Hb,,2b1(k)METRO){\displaystyle r=H(H_{b,\dots ,2b-1}(k)\parallel M)}, ySr+H(RAMETRO)s(mod).{\displaystyle S\equiv r+H(R\parallel A\parallel M)s{\pmod {\ell }}.}Esto satisface la ecuación de verificación.

2doSB=2do(r+H(RAMETRO)s)B=2dorB+2doH(RAMETRO)sB=2doR+2doH(RAMETRO)A.{\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 es el esquema de firma EdDSA que utiliza SHA-512 (SHA-2) y una curva elíptica relacionada con Curve25519 [ 2 ] donde

incógnita2+y2=1121665121666incógnita2y2,{\displaystyle -x^{2}+y^{2}=1-{\frac {121665}{121666}}x^{2}y^{2},}

  • =2252+27742317777372353535851937790883648493{\displaystyle \ell =2^{252}+27742317777372353535851937790883648493}ydo=3{\displaystyle c=3}
  • B{\displaystyle B}es el punto único enmi(Fq){\displaystyle E(\mathbb {F} _{q})}cuyoy{\displaystyle y}La coordenada es4/5{\displaystyle 4/5}y cuyoincógnita{\displaystyle x}La coordenada es positiva. "Positivo" se define en términos de codificación de bits:
    • Las coordenadas "positivas" son coordenadas pares (el bit menos significativo se borra).
    • Las coordenadas "negativas" son coordenadas impares (el bit menos significativo está activado).
  • H{\displaystyle H}es SHA-512 , conb=256{\displaystyle b=256}.

La curva retorcida de Edwardsmi/Fq{\displaystyle E/\mathbb {F} _{q}}se conoce como edwards25519 , [ 7 ] [ 1 ] y es birracionalmente equivalente a la curva de Montgomery conocida como Curve25519 . La equivalencia es [ 2 ] [ 7 ] [ 8 ]incógnita=v486664,y=1+1.{\displaystyle x={\frac {u}{v}}{\sqrt {-486664}},\quad y={\frac {u-1}{u+1}}.}

Actuación

El equipo original optimizó Ed25519 para la familia de procesadores x86-64 Nehalem / Westmere . La verificación se puede realizar en lotes de 64 firmas para un rendimiento aún mayor. Ed25519 está diseñado para proporcionar una resistencia a ataques comparable a la de los cifrados simétricos de 128 bits de alta calidad . [ 9 ]

Las claves públicas tienen una longitud de 256 bits y las firmas tienen una longitud de 512 bits. [ 10 ]

Codificación segura

Ed25519 está diseñado para evitar implementaciones que utilizan condiciones de bifurcación o índices de matriz que dependen de datos secretos, [ 2 ] : 2 [ 1 ] : 40 con el fin de mitigar los ataques de canal lateral .

Al igual que otros esquemas de firma basados ​​en registros discretos, EdDSA utiliza un valor secreto llamado nonce, único para cada firma. En los esquemas de firma DSA y ECDSA , este nonce se genera tradicionalmente de forma aleatoria para cada firma; si el generador de números aleatorios se ve comprometido y se vuelve predecible al crear una firma, esta puede filtrar la clave privada, como ocurrió con la clave de firma de la actualización de firmware de Sony PlayStation 3. [ 11 ] [ 12 ] [ 13 ] [ 14 ]

En cambio, EdDSA elige el nonce de forma determinista como el hash de una parte de la clave privada y el mensaje. Por lo tanto, una vez generada una clave privada, EdDSA ya no necesita un generador de números aleatorios para realizar firmas, y no existe peligro de que un generador de números aleatorios defectuoso utilizado para realizar una firma revele la clave privada. [ 2 ] : 8

Inconsistencias en la estandarización y la implementación

Cabe señalar que existen dos iniciativas de estandarización para EdDSA: una del IETF, la RFC 8032 informativa , y otra del NIST, como parte de FIPS 186-5. [ 15 ] Se han analizado las diferencias entre los estándares, [ 16 ] [ 17 ] y se dispone de vectores de prueba. [ 18 ] 

Software

Entre los usos notables de Ed25519 se incluyen OpenSSH , [ 19 ] GnuPG [ 20 ] y varias alternativas, y la herramienta signify de OpenBSD . [ 21 ] El uso de Ed25519 (y Ed448) en el protocolo SSH se ha estandarizado. [ 22 ] En 2023, la versión final del estándar FIPS 186-5 incluyó Ed25519 determinista como un esquema de firma aprobado. [ 15 ]

Ed448

Ed448 es el esquema de firma EdDSA definido en RFC 8032 que utiliza la función hash SHAKE256 y la curva elíptica edwards448 , una curva de Edwards (sin torsión) relacionada con Curve448 en RFC 7748. Ed448 también ha sido aprobado en la versión final del estándar FIPS 186-5. [ 15 ]  

Referencias

  1. 1 2 3 4 5 Josefsson, S.; Liusvaara, I. (enero de 2017). Algoritmo de firma digital de curva de Edwards (EdDSA) . IRTF . doi : 10.17487/RFC8032 . ISSN 2070-1721 . RFC 8032. Recuperado el 11 de julio de 2022 . 
  2. 1 2 3 4 5 6 7 Bernstein, Daniel J .; Duif, Niels; Lange, Tanja ; Schwabe, Peter; Bo-Yin Yang (2012). "Firmas de alta velocidad y alta seguridad" (PDF) . Revista de ingeniería criptográfica . 2 (2): 77– 89. doi : 10.1007/s13389-012-0027-1 . S2CID 945254 . 
  3. "Software" . 11/06/2015 . Consultado el 07/10/2016 . El software Ed25519 es de dominio público.
  4. ^ Daniel J. Bernstein ; Simón Josefsson; Tanja Lange ; Peter Schwabe; Bo-Yin Yang (4 de julio de 2015). EdDSA para más curvas (PDF) (Informe técnico) . Consultado el 14 de noviembre de 2016 .
  5. Daniel J. Bernstein ; Tanja Lange ; Peter Schwabe (1 de enero de 2011). Sobre el uso correcto del mapa de negación en el método rho de Pollard (Informe técnico). Archivo de preimpresiones de criptología de la IACR. 2011/003 . Recuperado el 14 de noviembre de 2016 .
  6. Bernstein, Daniel J. ; Lange, Tanja . "Seguridad ECDLP: Rho" . SafeCurves: elección de curvas seguras para criptografía de curva elíptica . Recuperado el 16 de noviembre de 2016 .
  7. 1 2 Langley, A.; Hamburg, M.; Turner, S. (enero de 2016). Curvas elípticas para la seguridad . IETF . doi : 10.17487/RFC7748 . ISSN 2070-1721 . RFC 7748. Recuperado el 12 de noviembre de 2024 . 
  8. Bernstein, Daniel J.; Lange , Tanja (2007). Kurosawa, Kaoru (ed.). Suma y duplicación más rápidas en curvas elípticas . Avances en criptología—ASIACRYPT. Lecture Notes in Computer Science. Vol. 4833. Berlín: Springer. pp. 29–50 . doi : 10.1007/978-3-540-76900-2_3 . ISBN   978-3-540-76899-9MR 2565722 .​ 
  9. Bernstein, Daniel J. (22 de enero de 2017). "Ed25519: firmas de alta velocidad y alta seguridad" . Recuperado el 27 de septiembre de 2019. Este sistema tiene un objetivo de seguridad de 2^128; romperlo tiene una dificultad similar a la de romper NIST P-256, RSA con claves de ~3000 bits, cifrados de bloques robustos de 128 bits, etc.
  10. Bernstein, Daniel J. (22 de enero de 2017). "Ed25519: firmas de alta velocidad y alta seguridad" . Consultado el 1 de junio de 2020. Las firmas caben en 64 bytes. […] Las claves públicas consumen solo 32 bytes.
  11. Johnston, Casey (30 de diciembre de 2010). "PS3 hackeada mediante una mala implementación de criptografía" . Ars Technica . Consultado el 15 de noviembre de 2016 .
  12. fail0verflow (29/12/2010). Hacking de consolas 2010: Fracaso épico de PS3 (PDF) . Chaos Communication Congress . Archivado del original (PDF) el 26/10/2018 . Consultado el 15/11/2016 .
  13. "27º Congreso de Comunicación del Caos: Hacking de consolas 2010: Fracaso épico de PS3" (PDF) . Consultado el 4 de agosto de 2019 .
  14. Buchanan, Bill (12 de noviembre de 2018). "No jugando al azar: Los hackeos de criptomonedas de Sony PS3 y Bitcoin. Cuidado con los generadores de números aleatorios" . Medium . Archivado del original el 30 de noviembre de 2018. Consultado el 11 de marzo de 2024 .
  15. 1 2 3 Moody, Dustin (2023-02-03). FIPS 186-5: Estándar de firma digital (DSS) . NIST . doi : 10.6028/NIST.FIPS.186-5 . S2CID 256480883. Recuperado el 2023-03-04 . 
  16. Chalkias, Konstantinos; Garillot, Francois; Nikolaenko, Valeria (2020-10-01). Domando los muchos EdDSA . Security Standardisation Research Conference (SSR 2020) . Recuperado el 2021-02-15 .
  17. Brendel, Jacqueline; Cremers, Cas ; Jackson, Dennis; Zhao, Mang (2020-07-03). La seguridad demostrable de ed25519: Teoría y práctica . Simposio IEEE sobre Seguridad y Privacidad (S&P 2021) . Recuperado el 15 de febrero de 2021 .
  18. "ed25519-speccheck" . GitHub . Consultado el 15 de febrero de 2021 .
  19. "Cambios desde OpenSSH 6.4" . 3 de enero de 2014. Consultado el 7 de octubre de 2016 .
  20. "Novedades de GnuPG 2.1" . 14 de julio de 2016. Consultado el 7 de octubre de 2016 .
  21. "Cosas que usan Ed25519" . 6 de octubre de 2016. Consultado el 7 de octubre de 2016 .
  22. Harris, B.; Velvindron, L. (febrero de 2020). Ed25519 y Ed448 Algoritmos de clave pública para el protocolo Secure Shell (SSH) . IETF . doi : 10.17487/RFC8709 . ISSN 2070-1721 . RFC 8709. Consultado el 11 de julio de 2022 . 
  23. "Seguridad del sistema para watchOS" . Consultado el 7 de junio de 2021 .
  24. Matt Johnston (14-11-2013). "DROPBEAR_2013.61test" . Archivado del original el 05-08-2019 . Recuperado el 05-08-2019 .
  25. "Algoritmos heurísticos y computación distribuida" (PDF) . Èvrističeskie Algoritmy I Raspredelennye Vyčisleniâ (en ruso): 55– 56. 2015. ISSN 2311-8563 . Archivado del original (PDF) el 20 de octubre de 2016. Consultado el 7 de octubre de 2016 . 
  26. Frank Denis. "Minisign: Una herramienta extremadamente sencilla para firmar archivos y verificar firmas" . Consultado el 7 de octubre de 2016 .
  27. minisign-misc en GitHub
  28. Frank Denis (29-06-2016). "libsodium/ChangeLog" . GitHub . Consultado el 07-10-2016 .
  29. "CAMBIOS EN OpenSSL" . 31 de julio de 2019. Archivado del original el 18 de mayo de 2018. Consultado el 5 de agosto de 2019 .
  30. "python/ed25519.py: las subrutinas principales" . 6 de julio de 2011. Consultado el 7 de octubre de 2016 .
  31. "Software: Implementaciones alternativas" . 11 de junio de 2015. Consultado el 7 de octubre de 2016 .
  32. "eBACS: ECRYPT Benchmarking de sistemas criptográficos: SUPERCOP" . 10 de septiembre de 2016. Consultado el 7 de octubre de 2016 .
  33. "Biblioteca criptográfica de seguridad Virgil para C: Biblioteca: Foundation" . GitHub . Consultado el 4 de agosto de 2019 .
  34. "wolfSSL Biblioteca SSL integrada (anteriormente CyaSSL)" . Consultado el 7 de octubre de 2016 .
  • Página principal de Ed25519
Obtenido de " https://en.wikipedia.org/w/index.php?title=EdDSA&oldid=1344842505#Ed448 "