Professional Documents
Culture Documents
MEMORIAS DE SEMINARIO
EL ALGORTIMO DE ELGAMAL
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:
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.
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.
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
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.