ECIES (eng. Elliptic Curve Integrated Encryption Scheme ) es un esquema de cifrado de clave pública basado en curvas elípticas. Este esquema fue propuesto por Victor Shoup en 2001. ECIES se utiliza en varios estándares como ANSI X9.63, IEEE 1363a, ISO 18033-2 y SECG SEC 1.
En 1997, los científicos Mihir Bellare y Phillip Rogaway inventaron el esquema DLAES ( Discrete Logarithm Augmented Encryption Scheme ), que posteriormente pasó a llamarse DHAES ( Diffie-Hellman Augmented Encryption Scheme ) en 1998, y posteriormente, para evitar confusión con la abreviatura AES , rebautizada como DHIES ( Diffie-Hellman Integrated Encryption Scheme ). DHIES es un esquema avanzado de ElGamal que utiliza curvas elípticas, varios algoritmos de inserción de simulación y funciones hash. [una]
DHIES fue evaluado por ANSI y, con algunas modificaciones, el esquema fue incluido en el estándar ANSI X9.63 en 2001. Además, de forma independiente, con algunas modificaciones, el esquema se incluyó en el estándar IEEE 1363 en 2000. En 2004, cuando el estándar ANSI X9.63 se hizo público, el IEEE revisó el esquema para tener en cuenta los méritos de los dos estándares ANSI X9.63 e IEEE 1363 anteriores, e incluyó el nuevo esquema en el estándar IEEE 1363a en 2004.
Todos los esquemas anteriores se denominan colectivamente ECIES ( Esquema de cifrado integrado de curva elíptica ).
En 2009, una de las versiones ECIES se incluyó en la norma ISO/IEC 18033-2, y en 2009 en la norma SECG SEC 1. [1]
ECIES (Esquema de cifrado integrado de curva elíptica) incluye varias funciones:
Primera cara - Alicia : [2]
Segunda cara - Bob: [2]
Supongamos que Alice quiere enviar un mensaje a Bob. Alice tiene la clave pública de Bob, Bob tiene la clave privada correspondiente y Alice genera un par temporal de sus claves pública y privada . Las claves privadas son los elementos del campo final (el campo sobre el que se da la curva elíptica), y las claves públicas son los puntos que pertenecen a la curva elíptica y se calculan como el producto de la clave privada y el generador g de la curva elíptica. [3]
Para enviar un mensaje, Alice hace lo siguiente: [3]
En cuanto al proceso de descifrado, los pasos que debe seguir Bob son los siguientes: [4]
La seguridad de ECIES se basa en la complejidad computacional del problema de logaritmo discreto de grupo de curva elíptica ( ECDLP ). Los algoritmos criptográficos también pueden basarse en la complejidad computacional de los problemas de factorización (ejemplo de algoritmo: RSA ) y logaritmo discreto ( esquema ElGamal ). Sin embargo, ECDLP se considera la más difícil [5] de estas tres tareas, lo que lleva a una importante ventaja de ECIES: el tamaño de la clave.
Nivel de seguridad (bits) | Longitud de clave RSA (bits) | Longitud de clave ECIES (bits) |
---|---|---|
80 | 1024 | 160-223 |
112 | 2048 | 224-255 |
128 | 3072 | 256-283 |
192 | 7680 | 384-511 |
256 | 15360 | 512-571 |
La ventaja en el tamaño de la clave le permite exigir menos al hardware (por ejemplo, en el tamaño del búfer, RAM y memoria física; en el ancho de banda del canal en el caso de transferir claves a través de la red).
Una desventaja importante de ECIES en comparación con otros algoritmos criptográficos es la existencia de varias versiones de ECIES descritas por diferentes estándares ( ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2 y SECG SEC 1). Las diferencias entre estos estándares son la elección de funciones y parámetros específicos para la implementación de los componentes ECIES (KA, KDF, ENC, MAC, HASH). La desventaja es que no es posible implementar una versión de ECIES que satisfaga todos los estándares [6] .
Victor Shope probó [7] que si la clave pública U no está incluida en la entrada de KDF y si solo se usa la coordenada x del secreto compartido en el KDF, entonces ECIES es susceptible a ataques de texto cifrado elegido adaptativo (CCA2 )). La vulnerabilidad se denomina "suave" porque ningún ataque pudo obtener información significativa utilizando esta vulnerabilidad.
Una posible solución sugerida por Shoup es agregar la clave pública U a la entrada del KDF.
Shoup también demostró [8] que el esquema ECIES puede ser vulnerable cuando se utiliza la función XOR al cifrar mensajes de longitud variable. En particular, esto puede generar una vulnerabilidad a los ataques de texto cifrado adaptativo elegido (CCA2) . Soluciones posibles:
Este tipo de ataque es posible cuando un adversario proporciona específicamente una clave pública incorrecta. Si el remitente no autentica la clave pública de la otra parte, el adversario podrá reemplazar la clave pública con una clave más pequeña para obtener un secreto compartido u obtener información sobre la clave privada del remitente. Soluciones posibles:
Un ejemplo [12] de una implementación eficiente y segura de ECIES que cumple con IEEE 1363a e ISO/IEC 18033-2: