Articulo de referencia

Cifrado ElGamal

En criptografía , el sistema de cifrado ElGamal es un algoritmo de cifrado de clave pública basado en el intercambio de claves Diffie-Hellman . Fue descrito por Taher Elgamal en...

En criptografía , el sistema de cifrado ElGamal es un algoritmo de cifrado de clave pública basado en el intercambio de claves Diffie-Hellman . Fue descrito por Taher Elgamal en 1985. [ 1 ] El cifrado ElGamal se utiliza en el software libre GNU Privacy Guard , en versiones recientes de PGP y en otros criptosistemas . El Algoritmo de Firma Digital (DSA) es una variante del esquema de firma ElGamal , que no debe confundirse con el cifrado ElGamal.

El cifrado ElGamal se puede definir sobre cualquier grupo cíclico.GRAMO{\displaystyle G}, como grupo multiplicativo de enteros módulo n  si y solo si n es 1, 2, 4, p k o 2 p k , donde p es un primo impar y k > 0 . Su seguridad depende de la dificultad del Problema Decisional Diffie-Hellman enGRAMO{\displaystyle G}.

Algoritmo

El algoritmo primero realiza un intercambio de claves Diffie-Hellman para establecer un secreto compartido.s{\displaystyle s}Luego, utiliza esto como una clave de un solo uso para cifrar el mensaje. El cifrado ElGamal se realiza en tres fases: la generación de claves, el cifrado y el descifrado. La primera consiste únicamente en el intercambio de claves, mientras que las dos últimas combinan cálculos de intercambio de claves con cálculos de mensajes.

Generación de claves

La primera participante, Alice, genera un par de claves de la siguiente manera:

  • Generar una descripción eficiente de un grupo cíclicoGRAMO{\displaystyle G\,}del ordenq{\displaystyle q\,}con generadorgramo{\displaystyle g}. Dejarmi{\displaystyle e}representar el elemento de identidad deGRAMO{\displaystyle G}.
    No es necesario crear un grupo y un generador para cada clave nueva. De hecho, es probable que una implementación específica de ElGamal esté programada para usar un grupo concreto, o un grupo de una suite específica. La elección del grupo depende principalmente del tamaño de las claves que se deseen utilizar.
  • Elige un número enteroincógnita{\displaystyle x}aleatoriamente de{1,,q1}{\displaystyle \{1,\ldots ,q-1\}}.
  • Calcularh:=gramoincógnita{\displaystyle h:=g^{x}}.
  • La clave pública consta de los valores(GRAMO,q,gramo,h){\displaystyle (G,q,g,h)}Alice publica esta clave pública y la conserva.incógnita{\displaystyle x}como su llave privada, que debe mantenerse en secreto.

Cifrado

Una segunda persona, Bob, cifra un mensaje.METRO{\displaystyle M}a Alice bajo su clave pública(GRAMO,q,gramo,h){\displaystyle (G,q,g,h)}como sigue:

  • Mapear el mensajeMETRO{\displaystyle M}a un elementometro{\displaystyle m}deGRAMO{\displaystyle G}utilizando una función de mapeo reversible.
  • Elige un número enteroy{\displaystyle y}aleatoriamente de{1,,q1}{\displaystyle \{1,\ldots ,q-1\}}.
  • Calculars:=hy{\displaystyle s:=h^{y}}Esto se llama secreto compartido .
  • Calculardo1:=gramoy{\displaystyle c_{1}:=g^{y}}.
  • Calculardo2:=metros{\displaystyle c_{2}:=m\cdot s}.
  • Bob envía el texto cifrado(do1,do2){\displaystyle (c_{1},c_{2})}a Alicia.

Tenga en cuenta que si uno conoce ambos textos cifrados(do1,do2){\displaystyle (c_{1},c_{2})}y el texto planometro{\displaystyle m}, uno puede encontrar fácilmente el secreto compartidos{\displaystyle s}, desdedo2metro1=s{\displaystyle c_{2}\cdot m^{-1}=s}Por lo tanto, un nuevoy{\displaystyle y}y por lo tanto un nuevos{\displaystyle s}se genera para cada mensaje para mejorar la seguridad. Por esta razón,y{\displaystyle y}También se le llama llave efímera .

Descifrado

Alice descifra un texto cifrado(do1,do2){\displaystyle (c_{1},c_{2})}con su llave privadaincógnita{\displaystyle x}como sigue:

  • Calculars:=do1incógnita{\displaystyle s:=c_{1}^{x}}. Desdedo1=gramoy{\displaystyle c_{1}=g^{y}},do1incógnita=gramoincógnitay=hy{\displaystyle c_{1}^{x}=g^{xy}=h^{y}}y, por lo tanto, es el mismo secreto compartido que utilizó Bob en el cifrado.
  • Calculars1{\displaystyle s^{-1}}, lo contrario des{\displaystyle s}en el grupoGRAMO{\displaystyle G}Esto se puede calcular de varias maneras. SiGRAMO{\displaystyle G}es un subgrupo de un grupo multiplicativo de enteros módulo norte{\displaystyle n}, dóndenorte{\displaystyle n}es primo, el inverso multiplicativo modular se puede calcular utilizando el algoritmo euclidiano extendido . Una alternativa es calculars1{\displaystyle s^{-1}}comodo1qincógnita{\displaystyle c_{1}^{qx}}Esto es lo contrario des{\displaystyle s}debido al teorema de Lagrange , ya quesdo1qincógnita=gramoincógnitaygramo(qincógnita)y=(gramoq)y=miy=mi{\displaystyle s\cdot c_{1}^{qx}=g^{xy}\cdot g^{(qx)y}=(g^{q})^{y}=e^{y}=e}.
  • Calcularmetro:=do2s1{\displaystyle m:=c_{2}\cdot s^{-1}}Este cálculo produce el mensaje original.metro{\displaystyle m}, porquedo2=metros{\displaystyle c_{2}=m\cdot s}; por esodo2s1=(metros)s1=metromi=metro{\displaystyle c_{2}\cdot s^{-1}=(m\cdot s)\cdot s^{-1}=m\cdot e=m}.
  • Mapametro{\displaystyle m}Volver al mensaje en texto planoMETRO{\displaystyle M}.

Uso práctico

Al igual que la mayoría de los sistemas de clave pública, el criptosistema ElGamal se suele utilizar como parte de un criptosistema híbrido , donde el mensaje se cifra mediante un criptosistema simétrico y ElGamal se utiliza únicamente para cifrar la clave simétrica. Esto se debe a que los criptosistemas asimétricos como ElGamal suelen ser más lentos que los simétricos para el mismo nivel de seguridad , por lo que resulta más rápido cifrar el mensaje, que puede ser arbitrariamente grande, con un cifrado simétrico y, a continuación, utilizar ElGamal solo para cifrar la clave simétrica, que suele ser bastante pequeña en comparación con el tamaño del mensaje.

Seguridad

La seguridad del esquema ElGamal depende de las propiedades del grupo subyacente.GRAMO{\displaystyle G}así como cualquier esquema de relleno utilizado en los mensajes. Si se cumple la suposición computacional de Diffie-Hellman (CDH) en el grupo cíclico subyacenteGRAMO{\displaystyle G}, entonces la función de cifrado es unidireccional . [ 2 ]

Si se cumple el supuesto de decisión de Diffie-Hellman (DDH) enGRAMO{\displaystyle G}, entonces ElGamal logra seguridad semántica . [ 2 ] [ 3 ] La seguridad semántica no está implícita únicamente en la suposición computacional de Diffie-Hellman. Véase Suposición decisional de Diffie-Hellman para un análisis de los grupos en los que se cree que se cumple la suposición.

El cifrado ElGamal es incondicionalmente maleable y, por lo tanto, no es seguro ante un ataque de texto cifrado elegido . Por ejemplo, dado un cifrado(do1,do2){\displaystyle (c_{1},c_{2})}de algún mensaje (posiblemente desconocido)metro{\displaystyle m}Se puede construir fácilmente un cifrado válido.(do1,2do2){\displaystyle (c_{1},2c_{2})}del mensaje2metro{\displaystyle 2m}.

Para lograr la seguridad contra ataques de texto cifrado elegido, el esquema debe modificarse aún más o debe utilizarse un esquema de relleno adecuado. Dependiendo de la modificación, la suposición de DDH puede ser necesaria o no.

También se han propuesto otros esquemas relacionados con ElGamal que logran seguridad contra ataques de texto cifrado elegido. El criptosistema Cramer-Shoup es seguro bajo ataques de texto cifrado elegido suponiendo que se cumple DDH paraGRAMO{\displaystyle G}Su prueba no utiliza el modelo de oráculo aleatorio . Otro esquema propuesto es DHIES , [ 4 ] cuya prueba requiere una suposición más fuerte que la suposición DDH.

Eficiencia

El cifrado ElGamal es probabilístico , lo que significa que un único texto plano puede cifrarse en muchos textos cifrados posibles, con la consecuencia de que un cifrado ElGamal general produce una expansión de tamaño de 1:2 desde el texto plano al texto cifrado.

El cifrado con ElGamal requiere dos exponenciaciones ; sin embargo, estas exponenciaciones son independientes del mensaje y pueden calcularse con antelación si es necesario. El descifrado requiere una exponenciación y el cálculo de la inversa del grupo, que, no obstante, pueden combinarse fácilmente en una sola exponenciación.

Véase también

Lecturas adicionales

  • AJ Menezes; PC van Oorschot; SA Vanstone. «Capítulo 8.4 Cifrado de clave pública ElGamal» (PDF) . Manual de criptografía aplicada . CRC Press.
  • Dan Boneh (1998). «El problema de decisión Diffie-Hellman». Teoría algorítmica de números . Notas de clase en informática. Vol.  1423. págs. 48–63 . CiteSeerX 10.1.1.461.9971 . doi : 10.1007/BFb0054851 . ISBN   978-3-540-64657-0.

Referencias

  1. Taher ElGamal (1985). "Un criptosistema de clave pública y un esquema de firma basado en logaritmos discretos" (PDF) . IEEE Transactions on Information Theory . 31 (4): 469– 472. CiteSeerX 10.1.1.476.4791 . doi : 10.1109/TIT.1985.1057074 . S2CID 2973271 .  (La versión presentada en la conferencia apareció en CRYPTO '84, págs. 10-18)
  2. 1 2 Mike Rosulek (13 de diciembre de 2008). "Esquema de cifrado Elgamal" . Universidad de Illinois en Urbana-Champaign . Archivado del original el 22 de julio de 2016.
  3. Tsiounis, Yiannis; Yung, Moti (24 de mayo de 2006). «Sobre la seguridad del cifrado basado en ElGamal». Criptografía de clave pública . Notas de clase en informática. Vol. 1431. págs. 117–134 . doi : 10.1007/BFb0054019 . ISBN   978-3-540-69105-1.
  4. Abdalla, Michel; Bellare, Mihir; Rogaway, Phillip (1 de enero de 2001). "Los supuestos de Oracle Diffie-Hellman y un análisis de DHIES" . Temas en criptología — CT-RSA 2001. Notas de clase en informática. Vol. 2020. págs. 143–158 . doi : 10.1007/3-540-45353-9_12 . ISBN   978-3-540-41898-6.