El esquema de Elgamal es un criptosistema de clave pública basado en la dificultad de calcular logaritmos discretos en un campo finito . El criptosistema incluye un algoritmo de cifrado y un algoritmo de firma digital. El esquema ElGamal subyace a los antiguos estándares de firma digital en los Estados Unidos ( DSA ) y Rusia ( GOST R 34.10-94 ).
El esquema fue propuesto por Taher El-Gamal en 1985 . [1] ElGamal desarrolló una variante del algoritmo Diffie-Hellman . Mejoró el sistema Diffie-Hellman y obtuvo dos algoritmos que se utilizaron para el cifrado y la autenticación. A diferencia de RSA, el algoritmo ElGamal no estaba patentado y, por lo tanto, se convirtió en una alternativa más económica, ya que no se requerían tarifas de licencia. Se cree que el algoritmo está cubierto por la patente Diffie-Hellman.
El sistema de cifrado ElGamal es en realidad una de las formas de generar claves públicas Diffie-Hellman . El cifrado de ElGamal no debe confundirse con el algoritmo de firma digital de ElGamal.
El mensaje debe ser menor que . El mensaje se cifra de la siguiente manera:
Es fácil ver que la longitud del texto cifrado en el esquema de ElGamal es el doble de la longitud del mensaje original .
Conociendo la clave privada , el mensaje original se puede calcular a partir del texto cifrado mediante la fórmula:
Al mismo tiempo, es fácil comprobar que
y por lo tanto
.Para cálculos prácticos, la siguiente fórmula es más adecuada:
Dado que se introduce una variable aleatoria en el esquema de ElGamal , el cifrado de ElGamal puede denominarse cifrado de sustitución multivaluado. Debido a la aleatoriedad de la elección del número, este esquema también se denomina esquema de cifrado probabilístico. La naturaleza probabilística del cifrado es una ventaja para el esquema de ElGamal, ya que los esquemas de cifrado probabilístico muestran una mayor solidez en comparación con los esquemas con un proceso de cifrado específico. La desventaja del esquema de cifrado de ElGamal es que el texto cifrado tiene el doble de longitud que el texto sin formato. Para un esquema de cifrado probabilístico, el mensaje en sí y la clave no definen de manera única el texto cifrado. En el esquema de ElGamal, es necesario utilizar diferentes valores de una variable aleatoria para encriptar diferentes mensajes y archivos . Si usa el mismo , entonces para los textos cifrados correspondientes y la relación se cumple . A partir de esta expresión se puede calcular fácilmente , si se sabe .
La firma digital sirve para permitir identificar cambios en los datos y establecer la identidad del firmante. El destinatario de un mensaje firmado puede utilizar una firma digital para demostrar a un tercero que la firma fue realizada por el remitente. Cuando se trabaja en modo firma, se supone que existe una función hash fija , cuyos valores se encuentran en el intervalo .
Para firmar un mensaje , se realizan las siguientes operaciones:
Conociendo la clave pública , la firma del mensaje se verifica de la siguiente manera:
El algoritmo considerado es correcto en el sentido de que la firma calculada según las reglas anteriores será aceptada cuando sea verificada.
Transformando la definición , tenemos
Además, del pequeño teorema de Fermat se sigue que
El número debe ser aleatorio y no debe duplicarse para diferentes firmas obtenidas con el mismo valor de clave secreta.
es fácil verificar que el par es la firma digital correcta para el mensaje .
Actualmente, los criptosistemas de clave pública se consideran los más prometedores. Estos incluyen el esquema de ElGamal, cuya fortaleza criptográfica se basa en la complejidad computacional del problema del logaritmo discreto , donde, dadas p , g e y , se requiere calcular x que satisfaga la comparación:
GOST R34.10-1994 , adoptado en 1994 en la Federación Rusa, que regulaba los procedimientos para generar y verificar una firma digital electrónica, se basó en el esquema ElGamal. Desde 2001, se utiliza el nuevo GOST R 34.10-2001 , que utiliza la aritmética de curvas elípticas definidas sobre campos de Galois simples . Hay una gran cantidad de algoritmos basados en el esquema ElGamal: estos son algoritmos DSA , ECDSA , KCDSA, esquema Schnorr .
Comparación de algunos algoritmos:
Algoritmo | Llave | Objetivo | Resistencia criptográfica, MIPS | notas |
RSA | Hasta 4096 bits | Cifrado y firma | 2.7•10 28 para clave de 1300 bits | Basado en la dificultad del problema de factorización de números grandes ; uno de los primeros algoritmos asimétricos. Incluido en muchos estándares |
ElGamal | Hasta 4096 bits | Cifrado y firma | Para la misma longitud de clave, la fuerza criptográfica es igual a RSA, es decir 2.7•10 28 para clave de 1300 bits | Basado en el difícil problema de calcular logaritmos discretos en un campo finito; le permite generar claves rápidamente sin comprometer la seguridad. Utilizado en el algoritmo de firma digital del DSS estándar DSA |
DSA | Hasta 1024 bits | Solo firma | Basado en la dificultad del problema del logaritmo discreto en un campo finito ; aceptado como estado estándar de EE. UU.; utilizado para comunicaciones secretas y no clasificadas; El desarrollador es la NSA. | |
ECDSA | Hasta 4096 bits | Cifrado y firma | La criptorresistencia y la velocidad de funcionamiento son superiores a las de RSA | Dirección moderna. Desarrollado por muchos matemáticos destacados |