El protocolo Diffie-Hellman de curva elíptica ( ECDH ) es un protocolo de acuerdo de claves que permite a dos partes, cada una con un par de claves pública-privada de curva elíptica , establecer un secreto compartido a través de un canal inseguro . [ 1 ] [ 2 ] [ 3 ] Este secreto compartido puede usarse directamente como clave o para derivar otra clave . La clave, o la clave derivada, puede usarse para cifrar comunicaciones posteriores mediante un cifrado de clave simétrica . Es una variante del protocolo Diffie-Hellman que utiliza criptografía de curva elíptica .
Protocolo de establecimiento de claves
El siguiente ejemplo ilustra cómo se establece una clave compartida. Supongamos que Alice quiere establecer una clave compartida con Bob , pero el único canal disponible para ellos puede ser interceptado por un tercero. Inicialmente, los parámetros del dominio (es decir,en el caso principal o(en el caso binario) debe acordarse. Además, cada parte debe tener un par de claves adecuado para la criptografía de curva elíptica, que consiste en una clave privada.(un número entero seleccionado aleatoriamente en el intervalo) y una clave pública representada por un punto(dónde, es decir, el resultado de añadira sí mismoveces). Que el par de llaves de Alice seay el par de llaves de Bob esCada parte debe conocer la clave pública de la otra parte antes de la ejecución del protocolo.
Alice calcula el puntoBob calcula el puntoEl secreto compartido es(la coordenada x del punto). La mayoría de los protocolos estandarizados basados en ECDH derivan una clave simétrica deutilizando alguna función de derivación de clave basada en hash.
El secreto compartido calculado por ambas partes es igual, porque.
La única información sobre su clave que Alice revela inicialmente es su clave pública. Por lo tanto, nadie, excepto Alice, puede determinar la clave privada de Alice (Alice, por supuesto, la conoce al haberla seleccionado), a menos que pueda resolver el problema del logaritmo discreto en una curva elíptica . La clave privada de Bob es igualmente segura. Nadie, aparte de Alice o Bob, puede calcular el secreto compartido, a menos que pueda resolver el problema de Diffie-Hellman en una curva elíptica .
Las claves públicas pueden ser estáticas (y de confianza, por ejemplo, mediante un certificado) o efímeras (también conocidas como ECDHE , donde la 'E' final significa "efímera"). Las claves efímeras son temporales y no necesariamente autenticadas, por lo que, si se desea la autenticación, se deben obtener garantías de autenticidad por otros medios. La autenticación es necesaria para evitar ataques de intermediario . Si una de las claves públicas de Alice o Bob es estática, se frustran los ataques de intermediario. Las claves públicas estáticas no proporcionan ni secreto directo ni resistencia a la suplantación de identidad por compromiso de clave, entre otras propiedades de seguridad avanzadas. Los titulares de claves privadas estáticas deben validar la otra clave pública y aplicar una función de derivación de clave segura al secreto compartido Diffie-Hellman sin procesar para evitar la filtración de información sobre la clave privada estática. Para esquemas con otras propiedades de seguridad, consulte MQV .
Si Alice elige maliciosamente puntos de curva no válidos para su clave y Bob no valida que los puntos de Alice formen parte del grupo seleccionado, ella puede recopilar suficientes residuos de la clave de Bob para derivar su clave privada. Se descubrió que varias bibliotecas TLS eran vulnerables a este ataque. [ 4 ]
El secreto compartido se distribuye uniformemente en un subconjunto dede tamañoPor este motivo, el secreto no debe utilizarse directamente como clave simétrica, sino que puede utilizarse como entropía para una función de derivación de clave.
Acuerdo clave Diffie-Hellman sobre las curvas de Montgomery
Dejarde tal manera queLa curva elíptica de forma de Montgomeryes el conjunto de todossatisfaciendo la ecuaciónjunto con el punto en el infinito denotado como. Esto se llama la forma afín de la curva. El conjunto de todos-puntos racionales de, denotado comoes el conjunto de todossatisfactorio junto con. Bajo una operación de suma adecuadamente definida,es un grupo concomo elemento identidad. Se sabe que el orden de este grupo es un múltiplo de 4. De hecho, suele ser posible obteneryde tal manera que el orden deespara un primoPara discusiones más extensas sobre las curvas de Montgomery y su aritmética, se puede seguir [ 5 ] [ 6 ] [ 7 ]
Para una mayor eficiencia computacional, es preferible trabajar con coordenadas proyectivas. La forma proyectiva de la curva de MontgomeryesPor un puntoen, el-mapa de coordenadases lo siguiente: [ 7 ]siysiBernstein [ 8 ] [ 9 ] introdujo el mapacomo sigue:que se define para todos los valores deyenSiguiendo a Miller, [ 10 ] Montgomery [ 5 ] y Bernstein, [ 9 ] el acuerdo de clave Diffie-Hellman se puede llevar a cabo en una curva de Montgomery de la siguiente manera. Seaser un generador de un subgrupo de orden primo de Alicia elige una llave secretay tiene clave públicaBob elige una llave secretay tiene clave públicaLa clave secreta compartida de Alice y Bob es. Utilizando computadoras clásicas, el método más conocido para obtenerdeyrequiere sobretiempo utilizando el algoritmo rho de Pollard . [ 11 ]
El ejemplo más famoso de curva de Montgomery es Curve25519 , que fue introducida por Bernstein. [ 9 ] Para Curve25519,y. La otra curva de Montgomery que forma parte de TLS 1.3 es la Curva448 que fue introducida por Hamburgo. [ 12 ] Para la Curva448,y. Se han propuesto un par de curvas de Montgomery llamadas M[4698] y M[4058] competitivas con Curve25519 y Curve448 respectivamente en. [ 13 ] Para M[4698],y para M[4058],. En el nivel de seguridad de 256 bits, se han propuesto tres curvas de Montgomery llamadas M[996558], M[952902] y M[1504058] en. [ 14 ] Para M[996558],, para M[952902],y para M[1504058],respectivamente. Aparte de estas dos, se pueden encontrar otras propuestas de curvas de Montgomery en. [ 15 ]
Software
- Curve25519 es un conjunto popular de parámetros para curvas elípticas y una implementación de referencia de Daniel J. Bernstein en C. También hay disponibles enlaces e implementaciones alternativas.
- Curve448 , una curva elíptica que potencialmente ofrece 224 bits de seguridad, fue desarrollada por Mike Hamburg de Rambus Cryptography Research.
- La aplicación de mensajería LINE ha utilizado el protocolo ECDH para su cifrado de extremo a extremo "Letter Sealing" de todos los mensajes enviados a través de dicha aplicación desde octubre de 2015. [ 16 ]
- El protocolo Signal utiliza ECDH para obtener seguridad posterior a una vulneración de seguridad. Este protocolo se implementa en Signal , WhatsApp , Facebook Messenger y Skype .
Véase también
Referencias
- ↑ NIST, Publicación especial 800-56A, Recomendación para esquemas de establecimiento de claves por pares que utilizan criptografía de logaritmo discreto , marzo de 2006.
- ↑ Certicom Research, Estándares para criptografía eficiente, SEC 1: Criptografía de curva elíptica , Versión 2.0, 21 de mayo de 2009.
- ↑ NSA Suite B Cryptography, Suite B Implementers' Guide to NIST SP 800-56A Archivado el 6 de marzo de 2016 en Wayback Machine , 28 de julio de 2009.
- ↑ Tibor Jager; Jorg Schwenk; Juraj Somorovsky (04-09-2015). "Ataques prácticos de curvas inválidas en TLS-ECDH" (PDF) . Simposio Europeo sobre Investigación en Seguridad Informática (ESORICS'15) .
- 1 2 Montgomery, Peter L. "Acelerando los métodos de factorización de Pollard y de curvas elípticas" (PDF) . Mathematics of Computation, 48(177):243–264, 1987.
- ↑ Bernstein, Daniel J.; Lange, Tanja (2017). «Curvas de Montgomery y la escalera de Montgomery» . En Joppe W. Bos y Arjen K. Lenstra, editores, Temas de teoría computacional de números inspirados en Peter L. Montgomery, páginas 82-115. Cambridge University Press, 2017.
- 1 2 Costello, Craig; Smith, Benjamin (septiembre de 2018). "Curvas de Montgomery y su aritmética: el caso de campos característicos grandes" . Journal of Cryptographic Engineering . 8 (3). J. Cryptographic Engineering, 8(3):227–240, 2018.: 227– 240. arXiv : 1703.01863 . doi : 10.1007/s13389-017-0157-6 .
- ↑ Bernstein, Daniel J. "¿Podemos evitar las pruebas de cero en la aritmética rápida de curvas elípticas?" (PDF) .
- 1 2 3 Bernstein, Daniel J. (2006). "Curve25519: Nuevos récords de velocidad Diffie-Hellman" . Criptografía de clave pública - PKC 2006. Lecture Notes in Computer Science. Vol. 3958. En: Yung, M., Dodis, Y., Kiayias, A., Malkin, T. (eds) Criptografía de clave pública - PKC 2006. Lecture Notes in Computer Science, vol. 3958. Springer, Berlín, Heidelberg. pp. 207–228 . doi : 10.1007/11745853_14 . ISBN 978-3-540-33851-2.
- ↑ Miller, Victor S. (1986). "Uso de curvas elípticas en criptografía" . Avances en criptología — Actas de CRYPTO '85 . Lecture Notes in Computer Science. Vol. 218. En Avances en criptología - CRYPTO'85, Santa Bárbara, California, EE. UU., 18-22 de agosto de 1985, Actas, páginas 417-426. Springer Berlin Heidelberg, 1985. pp. 417-426 . doi : 10.1007/3-540-39799-X_31 . ISBN 978-3-540-16463-0.
- ↑ Pollard, John M. "Métodos de Monte Carlo para el cálculo de índices módulo p" (PDF) . Mathematics of Computation, 32:918–924, 1978.
- ↑ Hamburg, Mike (2015). "Ed448-goldilocks, una nueva curva elíptica" . ACR Cryptology ePrint Archive, 2015:625, 2015.
- ↑ Nath, Kaushik; Sarkar, Palash (2022). "Compromisos de seguridad y eficiencia para Diffie-Hellman de curva elíptica en los niveles de seguridad de 128 y 224 bits" . Journal of Cryptographic Engineering . 12. J Cryptogr Eng 12, 107–121 (2022): 107–121 . doi : 10.1007/s13389-021-00261-y .El código está disponible en https://github.com/kn-cs/x25519
- ↑ Nath, Kaushik; Sarkar, Palash (2020). "Cálculo eficiente de Diffie-Hellman de curva elíptica en el nivel de seguridad de 256 bits" . IET Information Security . 14 (6): 633– 640. doi : 10.1049/iet-ifs.2019.0620 .El código está disponible en https://github.com/kn-cs/mont256-dh y https://github.com/kn-cs/mont256-vec
- ↑ Bernstein, Daniel J.; Lange, Tanja. "Safecurves: elección de curvas seguras para la criptografía de curva elíptica" . Consultado el 15 de abril de 2024 .
- ↑ JI (13 de octubre de 2015). "Nueva generación de mensajería segura: "Sellado de cartas"Blog de ingenieros de LINE . LINE Corporation. Archivado del original el 1 de febrero de 2019. Consultado el 5 de febrero de 2018 .
- Protocolos de acuerdo clave
- Criptografía de curva elíptica