You are on page 1of 13

MAESTRA EN CIENCIAS DE LA INFORMACIN Y LAS COMUNICACIONES

MEMORIAS DE SEMINARIO
EL ALGORTIMO DE ELGAMAL

LUIS ALBERTO PERALTA AMAYA

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


MARZO 2004

A pocos podremos convencer de que no es nada fcil inventar un mtodo de


escritura secreta que resista investigacin cuidadosa. No obstante, puede
afirmarse rotundamente que el ingenio humano es incapaz de preparar una clave
que el ingenio humano no pueda resolver
Edgar Allan Poe.
Introduccin
La informacin en la era de los computadores se ha convertido paulatinamente en
una fuente de poder invaluable, desde tiempos remotos los secretos ms
importantes se guardaban y transmitan con el mayor celo, especialmente los
secretos militares permitieron un auge sin precedentes de las tcnicas
criptogrficas. El aumento en el poder de cmputo de los computadores actuales
ha obligado a manejar la informacin confidencial de manera cada vez ms
segura, implicando el uso de algoritmos de cifrado cada vez ms complejos. Aqu
tratar de exponer de la manera ms sencilla posible uno de los algoritmos de
clave pblica ms conocidos, el algoritmo de ElGamal, basado en el algoritmo de
cambio de clave de los profesores W. Diffie y M. Hellman.
PRELIMINARES
Qu es la Criptografa?
La humanidad desde tiempos remotos ha tratado de proteger sus secretos,
guardndolos celosamente en sus escritos, segn referencia David Khan en su libro
The Codebreakers, se conoce el uso de cifras para ocultar informacin desde 1900
A.C. en Egipto, 1500 A.C en Mesopotamia y 500 A.C. en la Biblia.
Uno de las cifras antiguas ms conocidas es la atribuida a Julio Csar, que se basa
en la rotacin fija de las letras del alfabeto.
Segn el Diccionario de la Real Academia de la Lengua, la palabra Criptografa
proviene de las raices griegas kriptos que significa oculto, y graphos, que significa
escritura, que al unirse traduciran algo como escritura oculta y que en nuestros
das puede traducirse como el arte de escribir mensajes en clave o secretos, sin
embargo cabe anotar que actualmente con los grandes avances tecnolgicos y
tericos impulsados inicialmente por Shannon y posteriormente por Diffie-Hellman,
el concepto fue revaluado, y se pas de una criptografa vista como arte, a
considerarse como una ciencia aplicada donde convergen varias ciencias como la
estadstica, las matemticas, la teora de la informacin, etc.

Actualmente puede definirse como el estudio de los protocolos y algoritmos que


permiten proteger de intrusos los mensajes durante su transmisin y
almacenamiento, y es aplicable tambin a los archivos, los objetos serializados o a
cualquier secuencia de bytes. Adicionalmente existen otros usos para la
criptografa como son: conservar la integridad de los datos, probar la identidad de
alguien y demostrar que un mensaje proviene de una fuente con una identidad
determinada.
Cita de un artculo de Martin Gardner cuando se present en 1977 el criptosistema
RSA:
Los computadores y la teora de complejidad estn llevando a la criptografa a una
etapa excitante, que quizs adquiera tintes tristes. Repartidos por todo el mundo
se encuentran hombres y mujeres de gran inteligencia, algunos de ellos geniales,
que han dedicado sus vidas al dominio del anlisis criptogrfico moderno. A partir
de la Segunda Guerra Mundial, incluso aquellas claves gubernamentales y militares
que no son de uso nico se han hecho tan difciles de descifrar que el talento de
estos expertos va siendo cada vez menos til. Estas personas se encuentran ahora
encima de trampillas a punto de abrirse y sumirlos en las profundidades del
olvido."
Qu es el Criptoanlisis?
Si se requiere que la comunicacin sea secreta, es porque se teme que un
enemigo intercepte y descifre el mensaje transmitido. Si este enemigo realmente
existe, utilizar todos los medios que tenga a su alcance para descifrar esos
mensajes secretos, utilizando un conjunto de tcnicas y mtodos, al que
llamaremos criptoanlisis.
En pocas palabras, criptoanlisis es el estudio de las revelaciones de los protocolos
y algoritmos criptogrficos.
Qu es la Criptologa?
Es la ciencia que reune la criptografa y el criptoanlisis, en otras palabras estudia
tanto las claves (criptografa) como sus debilidades (criptoanlisis) .
En toda comunicacin secreta se presenta una lucha entre criptgrafos y
criptoanalistas. Un xito de unos es el fracaso de los otros.[PIN96]

El Concepto de Cifra
El texto plano se convierte a texto en clave por medio de algoritmos criptogrficos,
llamados cifras(ciphers).
Encriptacin y Desencriptacin
La encriptacin es el proceso de transformar texto plano a texto clave, mientras
que la desencriptacin es el proceso inverso, es decir tomar texto en clave y
transformarlo en el texto plano original. Ambos procesos estn controlados por
claves, que son los valores que hacen variar la representacin de texto plano a
texto clave.
En la criptografa basada en claves, los algoritmos de encriptacin y
desencriptacin podran ser bien conocidos. Sin embargo, la clave de
desencriptacin, y a veces, la clave de encriptacin estn muy bien protegidas.
Una vez que se crea el texto plano con una determinada clave, el texto cifrado que
se crea slo puede ser desencriptado con la clve de desencriptacin que est
asociada a la clave de encriptacin.
A continuacin expondremos las ideas principales de los dos sistemas
criptogrficos ms comunes, a saber: Criptografia de clave secreta y Criptografia
de clave pblica.
Criptografa de Clave Secreta (Simtrica)
En algunos algoritmos de encriptacin, las claves de encriptacin y desencriptacin
son las mismas, o la clave de desencriptacin se puede calcular a travs de la
clave de encriptacin en una unidad de tiempo til. Estos algoritmos se conocen
como algoritmo de clave secreta, algoritmo de clave privada o algoritmo simtricos
y se caracterizan por ser altamente eficientes ( en relacin al tamao de su clave)
y robustos. Estos algoritmos exigen que la clave se mantenga en secreto, como
tambin que el remitente y el destinatario coordinen el uso de las claves secretas.
En otras palabras:
Llamemos M al conjunto de todos los mensajes que pueden enviarse dos usuarios,
A y B; C , al conjunto de todos los textos encriptados, y K a de todas las posibles
claves que pueden utilizar. Un criptosistema de clave secreta es una familia de
pares de funciones (Ek, Dk ) (Ek, Dk ) para cada clave k de K definidas como sigue:

Ek: M  C y Dk: C  M, de modo que para cada mensaje m de M se verifique


que: Dk (Ek (m)) = m.
Para utilizar este criptosistema, los usuarios A y B se ponen de acuerdo y eligen
secretamente un clave k de K. Si A desea enviar un mensaje m de M a B, encripta
el mensaje por medio de la funcin Ek, Ek(m) = c, y envia el resultado c a B. Para
recuperar el mensaje original, B desencripta el texto encripatado que ha recibido,
c,por medio de la funcin Dk (c) = Dk (Ek(m)) = m.
Los pares de funciones (Ek, Dk ) deben ser fciles de computar para los usuarios,
y deberian se difciles de computar para un escucha que conociera c, de modo
que no pudiera recuperar ni m ni k. En criptografia se suele utilizar el trmino
fcil para indicar que el cmputo se puede llevar a cabo en un corto espacio de
tiempo, mientra que el tmino difcil o intratable se utiliza para indicar que no
puede computarse en un tiempo aceptable utilizando el mejor algoritmo conocido
ni la mejor tecnologa disponible.
Estos son algunos de los criptosistemas de clave secreta ms conocidos y sus
vulnerabilidades:
DES(Data Encription Standard) es un algoritmo diseado por IBM y utilizado
habitualmente desde los aos 70. Es un mtodo de cifrado altamente
resistente frente a ataques criptoanalticos diferenciales. Por desgracia, su
tamao de clave (56 bits) la hace vulnerable a ataques de fuerza bruta. Un
reciente ataque, "patrocinado" por la empresa de seguridad RSA Data
Security Inc. contra un mensaje con cifrado DES requiri el uso de cientos
de ordenadores durante 140 das. Sin embargo, hay diseos de mquinas
que, con un costo de un milln de dlares, podran descifrar mensajes DES
en cuestin de minutos. Quiz por eso el gobierno de EEUU lo utiliza
solamente para cifrar datos no clasificados. En la actualidad ofrece
proteccin contra el pirata informtico habitual, pero no contra un esfuerzo
masivo por parte de un usuario con grandes recursos.
Tiene varios modos de funcionamiento, ECB (Electronic Codebook), CBC
(Cipher Block Chaining), CFB (Cipher Feedback), OFB (Output Feedback),
DESede.
Blowfish fue creado por Bruce Schneier, autor del libro Applied
Criptography (considerado por muchos como la "biblia" en cuestiones de
criptografa). Utiliza claves de hasta 448 bits y, hasta el momento, ha
resistido con xito todos los ataques. Por ello y por su estructura se le
considera uno de los algoritmos ms seguros, a pesar de lo cual no se utiliza

masivamente. Tal vez se deba a su relativa juventud (la del algoritmo, no la


de Schneier). Su autor no ha patentado el mtodo para que pueda ser
empleado
sin
limitaciones.
CAST (Carlisle Adams y Stafford Tavares) tiene estructura similar a la de
Blowfish. Parece ser un buen algoritmo, aunque tampoco lleva el tiempo
suficiente como para haber sido atacado hasta la saciedad. De momento,
sus posibilidades son buenas. Se conocen ataques criptoanalticos contra la
versin de clave 64 bits, aunque distan mucho de ser eficaces (requieren
2^17 textos sin cifrar y 2^48 clculos diferentes). No se conocen ataques
contra la versin de 128 bits. Ha sido patentado por Entrust Technologies,
quienes
permiten
el
uso
libre
de
este
algoritmo.
IDEA (International Data Encription Algorithm) ha sido desarrollado por
Xuejia Lay y James Massey. A pesar de que solamente lleva unos aos en
uso, es probablemente el mejor algoritmo de bloques existente. Utiliza clave
de 128 bits y se cree que es resistente al criptoanlisis. Se encuentra bajo
patente de Ascom-Tech, aunque se permite su uso gratuito para
aplicaciones
no
comerciales.
RC2 es un cgido protegido bajo secreto comercial (aunque no patentado)
por RSA Data Security Inc. Existen ataques criptoanalticos que, aunque
requieren de gran cantidad de texto cifrado, muestran las vulnerabilidades
de RC-2. Existen versiones mejoradas, y hoy da RC2 tiende a utilizarse cada
vez menos en el beneficio de su hermano mayor RC4.
RC4 es un intento de reemplazar RC2 por un algoritmo ms slido.
Tambin es un secreto comercial, aunque (al igual que RC2) su cdigo
fuente ha sido publicado en grupos de discusin. No se conocen ataques
contra l. Forma una parte vital del sistema de cifrado en capas SSL,
ampliamente utilizado en navegadores de Internet tales como Netscape
Navigator y Microsoft Internet Explorer. Por desgracia, la versin exportable
de RC4 tiene una clave de solamente 40 bits, lo que lo hace altamente
vulnerable a ataques de fuerza bruta. La versin EEUU, con clave de 128
bits.
RC5 fue diseado por Ron Rivest y se encuentra bajo patente de RSA Data
Security Inc. Es relativamente nuevo, y se conocen ciertos tipos de ataques
contra l. Asimismo existe un cierto nmero (pequeo) de claves dbiles
que no deben utilizarse.A pesar de ello, se le considera un sistema seguro.

SAFER es un algoritmo diseado por Robert Massey (uno de los creadores


de IDEA). Tiene claves de hasta 128 bits y, a pesar de algunas debilidades
en la primera versin y de ciertos ataques, parece un algoritmo seguro. Este
programa fue desarrollado para la empresa Cylink, que algunos ligan a la no
muy querida Agencia de Seguridad Nacional norteamericana (NSA); por ello,
hay quien no se fa.
Inconvenientes en la Criptografa de Clave Secreta
1. Distribucin de claves
Dos usuarios tienen que seleccionar un clave en secreto antes de empesar a
comunicarse, lo que debern hacer bien personalmente o por medio de un
canal inseguro.
2. Manejo de claves
En una red de n usuarios, cada pareja debe tener su clave secreta particular, lo
que hace un total de n(n-1)/2 claves para esa red.
3. Sin firma digital
Una firma digital es lo anlogo a una firma manual o rubrica, pero en un red de
comunicaciones. En los criptosistemas de clave secreta, no hay posibilidad, en
general, de firmar digitalmente los mensajes, con lo que el receptor del mismo
no puede estar seguro de que quien dice que le envia el mensaje sea
realmente quien lo ha hecho.
Cambio de Clave de Diffie-Hellman
Con objeto de evitar los tres problemas que se acaban de mensionar, DiffieHellman describieron un protocolo por medio del cual dos personas pueden
intercambiarse pequeas informaciones secretas por un canal inseguro. Este
protocolo se conoce como el cambio de clave de Diffie-Hellman, y es el siguiente:
1. Los dos usuarios, A y B, seleccionan pblicamente un grupo multiplicativo
finito, G de ordenn y un elemento de G.

2. A genera un nmero aleatorio a, calcula a en G y transmite este elemento


a B.
3. B genera un nmero aleatorio b, calcula b en G y transmite este elemento
a A.
4. A recibe b y calcula (b )a en G.
5. B recibe a y calcula (a )b en G.
Ahora A y B poseen un elemento comn y secreto del grupo G ab . Un
escucha(espa), S, podra conocer G, n, a y b y debera poder calcular el
elemento ab , lo que hasta ahora es un problema intratable.
Criptografa de Clave Pblica (Asimtrica)
De acuerdo a lo anteriormente expuesto, la criptografa de clave pblica o
asimtrica, contrasta con la de clave privada en el sentido que usa dos claves
distintas una para el encriptado y otra para el desencriptado, eliminando de paso
uno de los inconvenientes de la clave secreta: como hacer llegar al remitente la
clave de desencriptado. En los algoritmos utilizados en este tipo de criptografa se
usa una clave pblica para encriptar y una clave privada para desencriptar, de
hecho el conocimiento de la clave pblica no es suficiente para descifrar el
mensaje. Este sistema tiene un precio, las claves tienden a tener un mayor tamao
que las de los sistemas simtricos, son ms lentos y los mensajes cifrados son de
mayor extensin.
De esta forma todo lo que se requiere para iniciar una conversacin secreta es que
el remitente consiga una copia de la clave pblica del destinatario, que puede ser
usada por cualquier persona que desee comunicarse con su propietario,
necesitndose solo n pares de claves por cada n personas que deseen comunicarse
entre s.
Actualmente la criptografa asimtrica tiene dos aplicaciones principales, el
intercambio de claves privadas y la firma digital que acompaa a un archivo digital.
Bases de la Criptografa de clave pblica
Los sistemas de cifrado de clave pblica se basan en funciones-trampa de un slo
sentido que aprovechan propiedades particulares, por ejemplo de los nmeros
primos. Una funcin de un slo sentido es aqulla cuya computacin es fcil,

mientras que el clculo de su inversa resulta extremdamente difcil (es


computacionalmente intratable). Por ejemplo, es fcil multiplicar dos nmeros
primos juntos para obtener uno compuesto, pero es difcil factorizar uno
compuesto en sus componentes primos. Una funcin-trampa de un sentido es algo
parecido, pero tiene una "trampa". Esto quiere decir que si se conociera alguna
pieza de la informacin, sera fcil computar el inverso. Por ejemplo, si tenemos un

nmero compuesto por dos factores primarios y conocemos uno de los factores, es
fcil computar el segundo.
Teniendo en cuenta lo anterior pueden identificarse tres familias segn el
problema matemtico en que se basa la seguridad el criptosistema. La primera
familia basa su seguridad en el Problema de Factorizacin Entera PFE, siendo los
ms conocidos, RSA, y el de Rabin-Williams. La segunda familia basa su seguridad
en el Problema del Logaritmo Discreto PLD, a esta pertenecen el sistema de DiffieHellman de intercambio de claves, el sistema DSA de firma digital y el sistema de
ElGamal. La tercera familia basa su seguridad en el Problema del Logaritmo
Discreto Elptico PLDE, pertenecen a esta DHE (Diffie-Hellman Elptico), DSAE,
NRE(Nyberg-Rueppel), ElGamal Elptico, etc.
Logaritmo Discreto
Dado un elemento b Zn, N un natural positivo, y otro entero x, es fcil calcular
bx = a mod N. Pero dado a y b, el recuperar x, es un problema difcil, o sea, no
existen mtodos rpidos que sirvan en cualquier caso, tales que recuperen x. Este
es el problema del logaritmo discreto o del ndice. El nfasis puesto en la frase
que sirvan en cualquier caso se debe a que en algunas circunstancias es posible
resolver con rapidez el problema del logaritmo discreto.
Si se cumple que bx = a diremos que x es un logaritmo discreto de a en la base b y
lo escribiremos x = ld ba Planteamos el ejemplo en Zn, pero en realidad los
sistemas criptogrficos basados en el logaritmo discreto utilizan cuerpos finitos
como base, en particular, Zn es un cuerpo si y solo si N es un nmero primo.
Recordamos que en un cuerpo F esta definida una suma, +, y un producto,*, al
igual que ocurre en Zn, pero exigimos que para cada elemento a F, a 0 exista
un elemento a1, llamado el inverso de a, tal que a * (a1) = (a1) * a = 1, donde
1 es el neutro de la multiplicacin, o sea el elemento que cumple a * 1 = 1 * a = a
para todo a F.

Criptosistema de ElGamal
En 1984 Taher ElGamal propuso un esquema de clave pblica basado en la
exponenciacin discreta sobre el grupo multiplicativo de un cuerpo finito Zp . No
obstante, aqu presentaremos un protocolo ms general al propuesto por ElGamal
sobre un cuerpo finito G.
Suponemos, en primer lugar que los mensajes son elementos de G y que el
usuario A desea enviar un mensaje m al usuario B. El protocolo a seguir es el
siguiente:
1. Se selecciona un grupo finito G y un elemento de G.
2. Cada usuario A elige un nemro aleatorio a, que ser su clave
privada, y calcula a en G, que ser su clave pblica.
Para que un usuario A enve un mensaje m, a otro usuario B, suponiendo que los
mensajes son elementos de G, realiza las siguientes operaciones:
1. A genera un nmero aleatorio v y calcula v en G.
2. A mira la clave pblica de B, b , y calcula (b)v y m * bv en G.
3. A enva la pareja (v , m*bv) a B.
Para recuperar el mensaje original:
1. B calcula (v)b en G.
2. B obtiene m solo con calcular m*vb / vb
Por seguridad y eficacia, el grupo G y el elemento deberan elegirse de modo
que verificaran las siguientes condiciones:
Por eficacia, la operacin en G debera ser fcil de aplicar.

Por seguridad, el problema del logaritmo discreto en el subgrupo


cclico de G generado por , <>, debera ser difcil.

Para simplificar el protocolo anterior, podemos suponer, tal y como fue descrito por
ElGamal, que el grupo sobre el que se llevan a cabo las operaciones mencionadas en el
protocolo anterior es el grupo multiplicativo del cuerpo Zp ; de esta forma, las potencias y
productos anteriores se efectan mdulo un nmero primo p.

Ejemplo. Consideremos el grupo Z*15485863, con p=15485863 primo y un generador =7.

A y B eligen las siguientes claves: a=28236, b=21702.


a=72823612506884(mod 15485863) y b=7217028890431(mod 15485863), que
son las claves privadas y pblicas de A y B, respectivamente.
Supongamos que A quiere mandar a B el mensaje m=HIJO.
Entonces, codificamos m:
m = HIJO = 7.263+8.262+9.26+14 = 128688
A elige el nmero v = 480 y calcula v= 7480=12001315(mod 154885863). A
continuacin A calcula (v)b = 8890431480 9846598(mod 15485863), el de
m*vb=128688*9846598 8263449(mod 15485863) y decodifica el par formado
por: (v, m*vb) = (12001315,8263449), que es el mensaje encriptado:

v= 12001315 = 1.265+0.264+6.233+21.262+11.26+1=BAGVLB
m*vb = 8263449 = 18.264+2.263+4.262+0.26+1= SCEAZ
Por tanto el mensaje a enviar a B, es (BAGVLB,SCEAZ).
Veamos como recupera B el mensaje recibido.
En primer lugar, B codifica en base 26 la pareja recibida:
BAGVLB = 1.265+0.264+6.233+21.262+11.26+1=12001315=
SCEAZ = 18.264+2.263+4.262+0.26+25 = 8263449 = m*vb
A continuacin B calcula (v)b = 1200131521702= 9846598(mod 154885863) y
luego tiene que calcular
m*vb / vb
Para ello debe determinar el inverso de vb mod 15485863. La determinacin de
este inverso se lleva a cabo por medio del algoritmo de Euclides Extendido, es
decir, como
- 662582 * vb + 421299 * p = 1
Resulta que 1/vb - 662582 14823281 (mod 15485863)
Por tanto,
m*vb / vb = 8263449/98466598 = 8263449*14823281 = 128688 = m

Y recupera el mensaje original:


M = 128688 = 7.263+8.262+9.26+14 = HIJO.
Ataque al Criptosistema de ElGamal
Un escucha, S, que quisiera romper el protocolo anterior, conocera G, n, a , b ,
v y m*vb y debera calcular m. Este problema se conoce como el problema de
ElGamal(ElGamal Problem, EGP). Es fcil ver que la seguridad de este
criptosistema es equivalente a del cambio de clave de Diffie-Hellman; por tanto, la

seguridad del criptosistema de ElGamal est basada en la dificultad del logaritmo


discreto.
Baste decir que el ataque contra este sistema, hoy por hoy, se considera
intratable, dado que los mejores tiempos de computacin para calcular algoritmos
discretos son de tipo subexponencial.

BIBLIOGRAFIA
QUIRANTES SIERRA, Arturo. Taller de Criptografa.2004
http://www.ugr.es/~aquiran/cripto/informes/info002.htm.
PLANET CARSOFT. Argentina 2001.
http://www.carsoft.com.ar/crip_asim.htm
ANUJSETH.COM. 2003
http://www.anujseth.com/crypto/publickey.html
JOYNER,D. KREMINSKI,R. TURISCO, J. Applied Abstract lgebra. El algoritmo de
ElGamal.2002
http://web.usna.navy.mil/~wdj/book/node48.html
CERTAINTY KEY. Criptosystems.
http://www.certainkey.com/resources/glossary.php?Elgamal
WILLIAMS, Derek.
http://www.louisville.edu/~dawill03/crypto/ElGamal.html
WIKIPEDIA
http://es.wikipedia.org/wiki/Criptografia_asimetrica
GARCA HERNNDEZ, Arturo. SecureNet2002.
http://securenet2002.tripod.com/PKE/pke.html
FSTER SABATER, otros. Tcnicas Criptogrficas de Proteccin de Datos 2 Edicin. AlfaOmega Ra-ma Editores, 2001.
CABALLERO GIL, Pino. Seguridad Informtica Tcnicas Criptogrficas. Computec Ra-ma
Editores, 1997.
ELGAMAL, T. A Public Key Criptosystem and a Signatura Schema based on Discrete
Logarithms. IEEE Trans. Inform. Theory. 1985.

You might also like