Articulo de referencia

Esquema de cifrado integrado

El esquema de cifrado integrado ( IES ) es un esquema de cifrado híbrido que proporciona seguridad semántica contra un adversario capaz de utilizar ataques de texto plano elegid...

El esquema de cifrado integrado ( IES ) es un esquema de cifrado híbrido que proporciona seguridad semántica contra un adversario capaz de utilizar ataques de texto plano elegido o texto cifrado elegido . La seguridad del esquema se basa en el problema computacional de 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), también conocido como esquema de cifrado aumentado de curva elíptica o simplemente esquema de cifrado de curva elíptica. Estas dos variantes son idénticas salvo por el cambio de un grupo subyacente .

Descripción informal de DLIES

Como descripción breve e informal del funcionamiento de IES, se utiliza un esquema de cifrado integrado de logaritmo discreto (DLIES), centrándose en facilitar la comprensión del lector, en lugar de en detalles técnicos precisos.

  1. Alice descubre la clave pública de Bob.gramoincógnita{\displaystyle g^{x}}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.incógnita{\displaystyle x}.
  2. Alice genera un valor fresco y efímero.y{\displaystyle y}y su valor público asociadogramoy{\displaystyle g^{y}}.
  3. Alice calcula entonces una clave simétrica.k{\displaystyle k}utilizando esta información y una función de derivación de clave (KDF) de la siguiente manera:k=KDF(gramoincógnitay){\displaystyle k={\textrm {KDF}}(g^{xy})}
  4. Alice calcula su texto cifradodo{\displaystyle c}de su mensaje realmetro{\displaystyle m}(mediante cifrado simétrico demetro{\displaystyle m}) cifrado con la clavek{\displaystyle k}(utilizando un esquema de cifrado autenticado ) de la siguiente manera:do=mi(k;metro){\displaystyle c=E(k;m)}
  5. Alice transmite (en un solo mensaje) tanto el público efímerogramoy{\displaystyle g^{y}}y el texto cifradodo{\displaystyle c}.
  6. Bob, sabiendoincógnita{\displaystyle x}ygramoy{\displaystyle g^{y}}, ahora puede calculark=KDF(gramoincógnitay){\displaystyle k={\textrm {KDF}}(g^{xy})}y descifrarmetro{\displaystyle m}dedo{\displaystyle c}.

Tenga en cuenta que este sistema no le ofrece a Bob ninguna garantía sobre quién envió realmente el mensaje: este sistema no impide que nadie se haga pasar por Alice.

Descripción formal de ECIES

Información requerida

Para enviar un mensaje cifrado a Bob usando ECIES, Alice necesita la siguiente información:

  • El conjunto 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 sistema de 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 ) — anotadomi{\displaystyle E}.
  • Parámetros del dominio de la curva elíptica:(pag,a,b,GRAMO,norte,h){\displaystyle (p,a,b,G,n,h)}para una curva sobre un campo primo o(metro,F(incógnita),a,b,GRAMO,norte,h){\displaystyle (m,f(x),a,b,G,n,h)}para una curva sobre un campo binario.
  • Clave pública de BobKB{\displaystyle K_{B}}, que Bob genera de la siguiente manera:KB=kBGRAMO{\displaystyle K_{B}=k_{B}G}, dóndekB[1,norte1]{\displaystyle k_{B}\in [1,n-1]}es la clave privada que elige al azar.
  • Información compartida opcional:S1{\displaystyle S_{1}}yS2{\displaystyle S_{2}}
  • O{\displaystyle O}que denota el punto en el infinito .

Cifrado

Para cifrar un mensajemetro{\displaystyle m}Alice hace lo siguiente:

  1. genera un número aleatorior[1,norte1]{\displaystyle r\in [1,n-1]}y calculaR=rGRAMO{\displaystyle R=rG}
  2. deduce un secreto compartido:S=PAGincógnita{\displaystyle S=P_{x}}, dóndePAG=(PAGincógnita,PAGy)=rKB{\displaystyle P=(P_{x},P_{y})=rK_{B}}(yPAGO{\displaystyle P\neq O})
  3. Utiliza una función de derivación de clave (KDF) para obtener claves de cifrado simétricas y claves MAC :kmikMETRO=KDF(SS1){\displaystyle k_{E}\|k_{M}={\textrm {KDF}}(S\|S_{1})}
  4. cifra el mensaje:do=mi(kmi;metro){\displaystyle c=E(k_{E};m)}
  5. calcula la etiqueta del mensaje cifrado yS2{\displaystyle S_{2}}:d=IMPERMEABLE(kMETRO;doS2){\displaystyle d={\textrm {MAC}}(k_{M};c\|S_{2})}
  6. resultadosRdod{\displaystyle R\|c\|d}

Descifrado

Para descifrar el texto cifradoRdod{\displaystyle R\|c\|d}Bob hace lo siguiente:

  1. deduce el secreto compartido:S=PAGincógnita{\displaystyle S=P_{x}}, dóndePAG=(PAGincógnita,PAGy)=kBR{\displaystyle P=(P_{x},P_{y})=k_{B}R}(es el mismo que el que derivó Alice porquePAG=kBR=kBrGRAMO=rkBGRAMO=rKB{\displaystyle P=k_{B}R=k_{B}rG=rk_{B}G=rK_{B}}), o las salidas fallaron siPAG=O{\displaystyle P=O}
  2. Deduce las claves de la misma manera que lo hizo Alicia:kmikMETRO=KDF(SS1){\displaystyle k_{E}\|k_{M}={\textrm {KDF}}(S\|S_{1})}
  3. utiliza MAC para comprobar la etiqueta y muestra que falló sidIMPERMEABLE(kMETRO;doS2){\displaystyle d\neq {\textrm {MAC}}(k_{M};c\|S_{2})}
  4. utiliza un esquema de cifrado simétrico para descifrar el mensaje.metro=mi1(kmi;do){\displaystyle m=E^{-1}(k_{E};c)}

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 , Journal of Computer Science and Engineering, 2, 2 (2010), 7–13.
  • Ladar Levison: Código para usar ECIES para proteger datos (ECC + AES + SHA) , lista de correo openssl-dev, 6 de agosto de 2010.
  • La norma IEEE 1363a (no pública) especifica DLIES y ECIES.
  • ANSI X9.63 (norma no pública)
  • ISO/IEC 18033-2 (norma no pública)
  • Victor Shoup, Propuesta de una norma 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 de Diffie-Hellman , Archivo de preimpresiones de criptología de la IACR, 1999.