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., 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 en.
Algoritmo
El algoritmo primero realiza un intercambio de claves Diffie-Hellman para establecer un secreto compartido.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íclicodel ordencon generador. Dejarrepresentar el elemento de identidad de.
- 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 enteroaleatoriamente de.
- Calcular.
- La clave pública consta de los valoresAlice publica esta clave pública y la conserva.como su llave privada, que debe mantenerse en secreto.
Cifrado
Una segunda persona, Bob, cifra un mensaje.a Alice bajo su clave públicacomo sigue:
- Mapear el mensajea un elementodeutilizando una función de mapeo reversible.
- Elige un número enteroaleatoriamente de.
- CalcularEsto se llama secreto compartido .
- Calcular.
- Calcular.
- Bob envía el texto cifradoa Alicia.
Tenga en cuenta que si uno conoce ambos textos cifradosy el texto plano, uno puede encontrar fácilmente el secreto compartido, desdePor lo tanto, un nuevoy por lo tanto un nuevose genera para cada mensaje para mejorar la seguridad. Por esta razón,También se le llama llave efímera .
Descifrado
Alice descifra un texto cifradocon su llave privadacomo sigue:
- Calcular. Desde,y, por lo tanto, es el mismo secreto compartido que utilizó Bob en el cifrado.
- Calcular, lo contrario deen el grupoEsto se puede calcular de varias maneras. Sies un subgrupo de un grupo multiplicativo de enteros módulo , dóndees primo, el inverso multiplicativo modular se puede calcular utilizando el algoritmo euclidiano extendido . Una alternativa es calcularcomoEsto es lo contrario dedebido al teorema de Lagrange , ya que.
- CalcularEste cálculo produce el mensaje original., porque; por eso.
- MapaVolver al mensaje en texto plano.
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.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 subyacente, entonces la función de cifrado es unidireccional . [ 2 ]
Si se cumple el supuesto de decisión de Diffie-Hellman (DDH) en, 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 cifradode algún mensaje (posiblemente desconocido)Se puede construir fácilmente un cifrado válido.del mensaje.
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 paraSu 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
- Taher Elgamal , diseñador de este y otros criptosistemas.
- Esquema de firma ElGamal
- Cifrado homomórfico
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
- ↑ 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)
- 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.
- ↑ 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.
- ↑ 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.
- Esquemas de cifrado de clave pública