El esquema de cifrado integrado ( IES ) es un esquema de cifrado híbrido que proporciona seguridad semántica contra un adversario que puede usar ataques de texto simple o cifrado elegido . La seguridad del esquema se basa en el problema computacional Diffie-Hellman .
Se especifican dos variantes de IES: el esquema de cifrado integrado de logaritmo discreto (DLIES) y el esquema de cifrado integrado de curva elíptica (ECIES), que también se conoce como esquema de cifrado aumentado de curva elíptica o simplemente esquema de cifrado de curva elíptica. Estas dos variantes son idénticas hasta el cambio de un grupo subyacente [ aclaración necesaria ] .
Descripción informal de DLIES
Como descripción y descripción general breve e informal de cómo funciona IES, se utiliza un esquema de cifrado integrado de logaritmo discreto (DLIES), centrándose en iluminar la comprensión del lector, en lugar de detalles técnicos precisos.
- Alice obtiene la clave pública de Bob a través de una infraestructura de clave pública o algún otro método de distribución. Bob conoce su propia clave privada .
- Alice genera un valor fresco, efímero , y su valor público asociado .
- Luego, Alice calcula una clave simétrica utilizando esta información y una función de derivación de clave (KDF) de la siguiente manera:
- Alice calcula su texto cifrado a partir de su mensaje real (mediante el cifrado simétrico de ) cifrado con la clave (utilizando un esquema de cifrado autenticado ) de la siguiente manera:
- Alice transmite (en un solo mensaje) tanto el efímero público como el texto cifrado .
- Bob, sabiendo y , ahora puede calcular y descifrar desde .
Tenga en cuenta que el plan no proporciona a Bob ninguna garantía sobre quién envió realmente el mensaje: este plan no hace nada para impedir que alguien se haga pasar por Alice.
Descripción formal de ECIES
Información requerida
Para enviar un mensaje cifrado a Bob mediante ECIES, Alice necesita la siguiente información:
- La suite de criptografía que se utilizará, incluyendo una función de derivación de clave (por ejemplo, ANSI-X9.63-KDF con opción SHA-1 ), un código de autenticación de mensajes (por ejemplo, HMAC-SHA-1-160 con claves de 160 bits o HMAC-SHA-1-80 con claves de 80 bits ) y un esquema de cifrado simétrico (por ejemplo, TDEA en modo CBC o esquema de cifrado XOR ) — indicado .
- Parámetros del dominio de la curva elíptica: para una curva sobre un campo primo o para una curva sobre un campo binario.
- La clave pública de Bob , que Bob genera de la siguiente manera: , donde es la clave privada que elige al azar.
- Alguna información compartida opcional: y
- que denota el punto en el infinito .
Encriptación
Para cifrar un mensaje, Alice hace lo siguiente:
- genera un número aleatorio y calcula
- deriva un secreto compartido: , donde (y )
- utiliza un KDF para derivar claves de cifrado simétrico y claves MAC :
- encripta el mensaje:
- Calcula la etiqueta del mensaje cifrado y :
- Salidas
Descifrado
Para descifrar el texto cifrado, Bob hace lo siguiente:
- deriva el secreto compartido: , donde (es el mismo que Alice derivó porque ), o genera una salida fallida si
- Deriva claves de la misma manera que lo hizo Alice:
- utiliza MAC para verificar la etiqueta y genera una salida fallida si
- utiliza un esquema de cifrado simétrico para descifrar el mensaje
Referencias
- SECG , Estándares para criptografía eficiente, SEC 1: Criptografía de curva elíptica, versión 2.0, 21 de mayo de 2009.
- Gayoso Martínez, Hernández Encinas, Sánchez Ávila: Un estudio del esquema de cifrado integrado de curva elíptica , Revista de Ingeniería y Ciencias de la Computación, 2, 2 (2010), 7–13.
- Ladar Levison: Código para usar ECIES para proteger datos (ECC + AES + SHA), lista de correo openssl-devel, 6 de agosto de 2010.
- IEEE 1363a (estándar no público) especifica DLIES y ECIES
- ANSI X9.63 (estándar no público)
- ISO/IEC 18033-2 (norma no pública)
- Victor Shoup, Una propuesta para un estándar ISO para el cifrado de clave pública, versión 2.1, 20 de diciembre de 2001.
- Abdalla, Michel y Bellare, Mihir y Rogaway, Phillip: DHIES: un esquema de cifrado basado en el problema Diffie-Hellman, IACR Cryptology ePrint Archive, 1999.