tal z es el logaritmo discreto de y en base x, en . Escribimos, .
En la tabla 3.1 vemos que 14 es primitivo
en así como todas sus potencias impares (esto porque
17-1=16 es una potencia de 2), a saber: 14, 7, 12, 6, 3, 10, 5, 11.
entonces x2i=xi. Sin embargo, el cálculo de logaritmos discretos es un problema completo-NP. En este sentido es que la exponenciación es una función unidireccional.
El Método de ElGamal se resume como sigue:
Ejemplo: Supongamos elegido el primo p=1438033, el cual es el 109789-ésimo primo. Entonces .
Consideremos el elemento primitivo . Y como llave secreta el exponente z = 45276. Entonces . La llave pública es pues (p,x,y)=(1438033, 278783, 1153553).
Ahora, si alguien quiere enviar un mensaje, digamos m= 89279, entonces
genera un número aleatorio , digamos k=1376276. Calcula
El cifrado es pues c=(v1,v2)=(1435954,
502371).
Ahora, partiendo de c, con la llave secreta z se calcula
. Su inverso multiplicativo en
es w1-1=
1015266. Así pues el producto
efectivamente coincide con m.
La seguridad del método de ElGamal se basa en la dificultad del Problema
del logaritmo discreto:
Instancia:
Solución: