Saltar al contenido

Qué es EdDSA

Qué es EdDSA

¿Qué es EdDSA?

En criptografía de clave pública, el algoritmo de firma digital de Edwards-curva (EdDSA) es un esquema de firma digital que utiliza una variante de la firma de Schnorr basada en curvas Twisted Edwards. 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 incluye a Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe y Bo-Yin Yang. La implementación de referencia es software de dominio público.

Resumen de EdDSA

La siguiente es una descripción simplificada de EdDSA, ignorando los detalles de la codificación de números enteros y puntos de curva como cadenas de bits; los detalles completos están en los documentos y en el RFC.

Un esquema de firma de EdDSA es una opción:

  1. de campo finito, estilo de pantalla
  2. de curva elíptica. E over {\displaystyle \Nmathbb {F} _{q}} \mathbbb {F} cuyo grupo muestra el estilo E (Mathbbb) E(\mathbb {F} _{q}) of {\Ndisplaystyle \mathbb {F} _{q}} \mathbbb {F} Los puntos racionales tienen orden. Estilo de la pantalla. \ell es un gran primo y estilo de pantalla 2^{c}}. 2^c se llama el cofactor;
  3. del punto base, estilo de pantalla B en E, estilo de pantalla B en E, estilo de pantalla con orden.
  4. de la función hash resistente a la colisión del objetivo, estilo de pantalla H con salidas de 2 bits, donde el estilo de pantalla es 2^{b-1}>q {\displaystyle 2^{b-1}>q} de modo que los elementos de {\displaystyle \mathbb {F} _{q}} \mathbbb {F} y puntos de curva en el estilo de visualización E (Mathbbb). E(\mathbbb {F} _{q}) puede ser representado por cadenas de bits b} de estilo de pantalla.

Estos parámetros son comunes a todos los usuarios del esquema de firmas de EdDSA. La seguridad del esquema de firmas de 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 {\sqrt estilo {\ell \pi /4}}}. antes de que pueda calcular un logaritmo discreto. \La celda debe ser lo suficientemente grande para que esto sea inviable, y típicamente se considera que excede los 2.200. La elección del estilo de la pantalla. \La elección del estilo de pantalla está limitada por la elección del estilo de pantalla q, ya que por el teorema de Hasse, el estilo de pantalla E (Mathbbb) = 2 DIFUNDE LA PALABRA- …por más de lo que el estilo de la pantalla 2. Estilo de pantalla 2.

Qué es EdDSA

Dentro de un esquema de firma de EdDSA se encuentra

Clave pública

Una clave pública EdDSA es un punto de curva del estilo de visualización A en E (E) en E (F) en E (F) en E (F) en Mathbb (F), codificado en B (B) bits de visualización.

Firma

Una firma de EdDSA en un mensaje. M por clave pública {\ estilo de pantalla A} A es el par estilo de pantalla (R,S)} estilo de pantalla (R, S), codificado en 2b, 2b bits, de un punto de curva estilo de pantalla R, en E. y un número entero del estilo 0. {\displaystyle 0<S<Sell } satisfaciendo la ecuación de verificación

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

Clave privada

Una clave privada de EdDSA es una cadena de b-bit de estilo de pantalla k k que debe ser elegida uniformemente al azar. La clave pública correspondiente es {\displaystyle A=sB} {\displaystyle A=sB}, donde {\displaystyle s=H_{0,}dots ,b-1}(k)}. Es el menos significativo de los pedacitos del estilo de la pantalla, el estilo de la pantalla. Interpretado como un entero en Little-endian. La firma en un mensaje, estilo M. M es el estilo de la pantalla (R,S)} donde el estilo de visualización R=rB} para el estilo de visualización r=H(H_{b,}dots ,2b-1}(k),M)} {\ estilo de visualización r=H(H_{b,}(k),} y

Estilo de pantalla S+H(R,A,M)s(R,A,M)s(R,D,M)s). Estilo de pantalla S+H(R,A,M)s(R,A,M)s(R,D,M)s).

Esto satisface la ecuación de verificación:

B\&=2^{c}rB+2^{c}H(R,A,M)sB\&=2^{c}RB+2^{c}H(R,A,M)sB\&=2^{c}R+2^{c}H(R,A,M)}(R,A,M)A.}}(R,M)A.A.}}(R,A,M)A.A.}). B\&=2^{c}rB+2^{c}H(R,A,M)sB\&=2^{c}RB+2^{c}H(R,A,M)sB\&=2^{c}R+2^{c}H(R,A,M)}(R,A,M)A.}}(R,M)A.A.}}(R,A,M)A.A.}).

  1. Ed25519
  2. Ed25519 es el esquema de firma de EdDSA usando SHA-512 y Curve25519[2] donde
  3. {\displaystyle q=2^{255}-19,} {\\\displaystyle q=2^{255}-19,}}
  4. {\displaystyle E/\mathbbb {F} _{q}} E/{mathbbb {F}}_{q} es la retorcida curva de Edwards
  5. {\displaystyle -x^{2}+y^{2}=1-{frac {121665}{121666}}x^{2}y^{2},} {\displaystyle -x^{2}+y^{2}=1-{frac {121665}{121666}}x{2}y^^2},}.
  6. {\displaystyle \ell =2^{252}+27742317777372353535851937790883648493} {\\displaystyle \ell =2^{252}+277423177777737235353585193779088364848493} y {\displaystyle c=3} c = 3
  7. El estilo de pantalla B es el único punto en el estilo de pantalla E. E(\mathbbb {F} _{q}) cuyo estilo de visualización y coordenada es {\N- estilo de visualización 4/5}. {\displaystyle 4/5} y cuya {\displaystyle x} x coordinate es positiva (“positive” se define en términos de codificación de bits), y
  8. El estilo de pantalla H es SHA-512, con el estilo de pantalla b=256.
  9. La curva del estilo de visualización E(\\mathbbb {F} _{q})}}. E(\mathbbb {F} _{q}) es equivalente biracionalmente a la curva de Montgomery conocida como Curve25519. La equivalencia es Difunde la palabra- difunde la palabra-

Desempeño de EdDSA

El equipo de Bernstein ha optimizado 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 al ataque comparable a las cifras simétricas de 128 bits de calidad. Las claves públicas tienen 256 bits de longitud y las firmas tienen el doble de ese tamaño.

Codificación segura de EdDSA

Como características de seguridad, Ed25519 no utiliza operaciones de sucursales ni pasos de indexación de matrices que dependan de datos secretos, con el fin de derrotar muchos ataques de canales laterales.

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, y si el generador de números aleatorios se rompe y es predecible al hacer una firma, la firma puede filtrar la clave privada, como ocurrió con la clave de firma de la actualización del firmware de Sony PlayStation 3. En contraste, EdDSA escoge el nonce deterministicamente como el hash de la clave privada y el mensaje. Por lo tanto, una vez que se genera una clave privada, EdDSA ya no necesita un generador de números aleatorios para hacer firmas, y no hay peligro de que un generador de números aleatorios roto utilizado para hacer una firma revele la clave privada.

Qué es EdDSA

Software de EdDSA

Los usos notables de Ed25519 incluyen OpenSSH, GnuPG y varias alternativas, y la herramienta Signify de OpenBSD[12] El uso de Ed25519 en el protocolo SSH está siendo estandarizado.

  1. Implementación de referencia SUPERCOP (lenguaje C con ensamblador en línea)
  2. Una implementación alternativa lenta pero concisa, no incluye protección contra ataques de canal lateral (Python).
  3. NaCl / libsodio
  4. Protocolo de cryptocurrency de CryptoNote
  5. wolfSSL
  6. I2Pd tiene su propia implementación de EdDSA
  7. Minisign y Minisign Miscellanea para macOS
  8. Virgil PKI usa claves Ed25519 por defecto
  9. Botán
  10. Dropbear SSH desde 2013.61test
  11. OpenSSL 1.1.1 (soporte para TLS 1.3 y SHA3 además de X25519/Ed25519)
  12. Hashmap Server y Cliente (Go language y Javascript)
  13. Libgcrypt