Curve25519
# Curve25519

En criptografía, Curve25519 es una curva elíptica (ECC) que ofrece 128 bits de seguridad (con una longitud de la clave de 256 bits) y está diseñada para su uso con el esquema de intercambio de clave Diffie-Hellman (ECDH) de curva elíptica. Es una de las curvas ECC más rápidas y no está cubierta por ninguna patente conocida.

La implementación de referencia es software de dominio público.

El documento original de Curve25519 lo definía como una función Diffie-Hellman (DH). Daniel J. Bernstein ha propuesto desde entonces que se utilice el nombre Curve25519 para la curva subyacente, y el nombre X25519 para la función DH.

## Propiedades matemáticas

La curva utilizada es $y^{2}=x^{3}+486662x^{2}+x$, una curva de Montgomery, sobre el campo primo definido por el número primo $2^{255}-19$, y usa el punto base $x=9$. Este punto genera un subgrupo cíclico cuyo orden es el primo: $2^{252}+27742317777372353535851937790883648493$ y es del índice $8$. Usar un subgrupo evita un ataque de algoritmo Pohlig-Hellman.

El protocolo utiliza punto elíptico comprimido (sólo coordenadas X), por lo que permite un uso eficiente de la escalera de Montgomery para ECDH, utilizando sólo coordenadas XZ.

Curve25519 está construida de tal manera que evita muchos problemas potenciales de implementación. Por diseño, es inmune a los ataques de tiempo y acepta cualquier cadena de 32 bytes como una clave pública válida y no requiere validar que un punto dado pertenezca a la curva, o que sea generado por el punto base.

La curva es biracionalmente equivalente a una curva de Edwards retorcida usada en el esquema de firma de Ed25519.

## Popularidad

Curve25519 fue publicada por primera vez por Daniel J. Bernstein en 2005, pero el interés aumentó considerablemente después de 2013 cuando se descubrió que la NSA había implementado una potencial puerta trasera en la Dual_EC_DRBG. Aunque no están directamente relacionados, hay aspectos sospechosos en las constantes de la curva P del NIST que suscitan preocupación por el hecho de que la NSA haya elegido valores que le dan una ventaja a la hora de factorizar claves públicas.

Desde entonces, Curve25519 se ha convertido en la alternativa de facto a P-256, y se utiliza en una amplia variedad de aplicaciones. A partir de 2014, OpenSSH utiliza por defecto ECDH basado en Curve25519. El comportamiento para el protocolo general de SSH todavía está siendo estandarizado en 2018.

En 2017, el NIST anunció que Curve25519 y Curve448 se añadirían a la Publicación Especial 800-186, que especifica las curvas elípticas aprobadas para su uso por el Gobierno Federal de los EE.UU. Ambas se describen en la RFC 7748.

En 2018, la especificación DKIM fue enmendada para permitir firmas con este algoritmo.

