Cifrado ElGamal
De Wikipedia, la enciclopedia libre
El procedimiento de cifrado/descifrado ElGamal se refiere a un esquema de cifrado basado en problemas matemáticos de algoritmos discretos. Es un algoritmo de criptografía asimétrica basado en al idea de Diffie-Hellman y que funciona de una forma parecida a este algoritmo discreto.
El algoritmo de ElGamal puede ser utilizado tanto para generar firmas digitales como para cifrar o descifrar.
Fue descrito por Taher Elgamal en 1984 y es usado en GNU Privacy Guard software, versiones recientes de PGP, y otros sistemas criptográficos. Este algoritmo no esta bajo ninguna patente lo que lo hace de uso libre.
La seguridad del algoritmo se basa en la suposición que la función utilizada es de un sólo sentido y la dificultad de calcular un logaritmo discreto.
El procedimiento de cifrado (y descifrado) esta basado en cálculos sobre un grupo cíclico cualquiera
lo que lleva a que la seguridad del mismo dependa de la dificultad de calcular logaritmos discretos en
.
Tabla de contenidos |
[editar] El algoritmo
ElGamal consta de tres componentes: el generador de claves, el algoritmo de cifrado, y el de descifrado. A continuación se describe el algoritmo utilizando el grupo multiplicativo de enteros módulo p.
[editar] Creación de llaves de cifrado
Para generar un par de llaves, se escoge un número primo
cualquiera tal que
tenga un factor primo grande. Además se eligen dos números aleatorios
(el generador) y
(que actuará como llave privada) tal que
.
Se calcula entonces el valor de
.
por lo tanto será la llave pública a utilizar.
En este caso
se refiere al operador de módulo de p y a es la llave privada mientras que los valores
,
y
son públicos.
[editar] Nota
La definición
es correcta. Sin embargo, desde un punto de vista de seguridad, esta definición tiene casos que no hacen sentido ya que
y
constituyen casos que no brindan seguridad alguna y hacen que el cifrado no funcione. Dado esto se considera preferentemente que
.
[editar] Cifrado
Suponiendo que se tiene un texto claro que necesita ser cifrado. Lo primero por hacer es convertir este texto en un elemento de G obteniendo un m. Luego se escoge arbitrariamente un número b tal que
para finalmente calcular:
El mensaje cifrado final corresponde a la tupla 
Un ejemplo sería que se tuviera un texto tal que
y escojemos un 
y
.
Finalmente el nuestro texto cifrado estaría compuesto por
.
[editar] Descifrado
Para descifrar se tiene que realizar el siguiente cálculo:
donde tenemos que
cumple con 
La resolución de este problema queda entonces de la siguiente manera
Nuevamente a modo de ejemplo, y tomando los datos del ejemplo anterior, obtenemos que
.
También existe una expresión más simplificada para el mismo proceso:
[editar] Análisis
[editar] Efectividad
Hasta el momento el algoritmo ElGamal de cifrado/descifrado puede ser considerado un algoritmo efectivo.
Un "adversario" con la habilidad de calcular logaritmos discretos podría ser capaz de romper un cifrado ElGamal. Sin embargo, hasta la actualidad, no existen algoritmos suficientemente eficientes para realizar este tipo de cálculos en un tiempo razonable, considerando además que se utilizen números grandes para cifrar. Dados estos antecedentes se puede decir que hoy en día ElGamal es seguro.
[editar] Maleabilidad
Sin embargo existe un caso en que este algoritmo se vuelve maleable. Esto Significa que bajo un ataque específico la seguridad de ElGamal se puede quebrar. Este ataque usa el hecho de tener el texto cifrado
del texto claro
(ambos conocidos). Sabiendo esto se puede llegar a que el texto cifrado
corresponde al texto plano
. Si ahora la persona que cifró el mensaje anterior genera otro texto cifrado
(utilizando el mismo
con el que cifró anteriormente) el malo debería ser capaz de llegar al texto plano
correspondiente siguiente los siguientes pasos:
- Calcular

- Buscar un
tal que
tomando en cuenta que
al igual que
cumple con estar entre
y 
- Tomando el peor caso, el atacante obtendrá dos textos claros (debido a la función módulo).
[editar] Desempeño
El análisis de desempeño del algoritmo ElGamal es similar al de RSA. Concretamente tenemos el siguiente análisis
- Sea
el módulo usuado en ElGamal. Los procesos de cifrado y descifrado de ElGamal por lo tanto toman tiempos de
.
| El contenido de esta página es un esbozo sobre matemática. Ampliándolo ayudarás a mejorar Wikipedia. Puedes ayudarte con las wikipedias en otras lenguas. |




(


