You are on page 1of 7

ElGamal

Esquema de firma digital basado en la


complejidad del clculo del logaritmo
discreto

Algoritmo asimtrico ElGamal





Taher ElGamal propone en 1985 un algoritmo que hace uso del


problema del logaritmo discreto PLD.
Este algoritmo fue diseado especficamente para firma digital

Algoritmo asimtrico El Gamal








Se elige un grupo multiplicativo Zp*, donde p es un primo grande


Del grupo p se elige una raz , generador del grupo
Cada usuario elige un nmero aleatorio dentro de p
 El valor ser la clave privada
Cada usuario calcula mod p
 Los valores ( mod p) y p sern la clave pblica
Seguridad del sistema
 Para descubrir la clave privada, el atacante deber enfrentarse
al problema del logaritmo discreto para p grande

http://web.usna.navy.mil/~wdj/book/node48.html

Operacin de cifra con ElGamal


Operacin Cifrado: A cifra un nmero N que enva a B
 El usuario B ha elegido su clave privada b dentro del
cuerpo del nmero primo p que es pblico.
 El usuario B ha hecho pblica su clave b mod p.
 El emisor A genera un nmero aleatorio de sesin y
calcula mod p.
 Con la clave pblica de B (b) el emisor A calcula:
 (b) mod p
 A enva a B el par:

N(b) mod p
C = [ mod p, N(b) mod p]

Operacin de descifrado con ElGamal


Operacin Descifrado: B descifra el criptograma C que enva A
 El usuario B recibe C = [ mod p, N(b) mod p].
 B toma el valor mod p y calcula ()b mod p.
 B descifra el criptograma C haciendo la siguiente divisin:
[N(b) mod p ] / [()b mod p] ... porque (b) = ()b
 El paso anterior es posible hacerlo porque existir el
inverso de ()b en el grupo p al ser p un primo. Luego:
[N(b) {inv ()b, p}] mod p = N

Ejemplo de cifrado con ElGamal


Adela (A) enviar a Benito (B) el nmero N = 10 cifrado
dentro del cuerpo p = 13 que usa Benito.
CIFRADO
Claves pblicas de Benito: p = 13, = 6, (b) mod p = 2
Adela (A) elige por ejemplo = 4 y calcula:
() mod p = 64 mod 13 = 9
(b)v mod p = 24 mod 13 = 3
N(b)v mod p = 103 mod 13 = 4
Y enva a (B): () mod p, N(b)v mod p = [9, 4]

Ejemplo de descifrado con ElGamal


DESCIFRADO
La clave privada de Benito (B) es b = 5
Benito recibe: [() mod p, N(b)v mod p] = [9, 4]
Benito calcula:
()b mod p = 95 mod 13 = 3
[N(b)v] inv[()b, p] = 4 inv (3, 13) = 4 9
N = 4 9 mod 13 = 10 (se recupera el valor)
Recuerde que debe ser una raz de p. Como ya hemos
visto, si no es una raz, aunque s puede hacerse la cifra,
se facilitara el ataque al problema del logaritmo discreto.

You might also like