Está en la página 1de 12

Aterrizando Ideas

El Logaritmo Discreto y sus aplicaciones en la Criptograf a


Mayte Bonilla Quintana Estudiante de Matemticas Aplicadas del ITAM a

1. Introduccin o
Los logaritmos discretos son anlogos a los logaritmos que usamos ordinariamente. La difea rencia radica en que los logaritmos comunes resuelven la ecuacin ax = b en los nmeros o u reales o complejos (se dice que el logaritmo de b base a es x).Mientras que los logaritmos discretos trabajan con elementos de un grupo c clico nito. Es sorprendente cmo al pasar o del grupo de los reales a un grupo c clico nito el problema de encontrar la x en la ecuacin o puede complicarse tanto, de hecho slo necesitamos una calculadora comn para resolver o u x = loga b en los reales, mientras que el problema de resolver el logaritmo discreto es uno de los problemas ms dif a ciles y fue hasta el 2001 cuando se pudo calcular el logaritmo discreto para un nmero primo de 120 d u gitos. Se ha aprovechado la dicultad del problema de calcular logaritmo discreto para la criptograf ya que la seguridad del algoritmo de encriptacin radica en la dicultad de calcular a, o logaritmos discretos.

Qu es la Criptograf e a?
Denicin 1. La palabra criptograf viene del griego krypt, que signica oculto y o a de graphos que signica escribir. Por lo tanto podemos decir que la criptograf es el a arte o ciencia de cifrar y descifrar informacin mediante tcnicas especiales y se emplea para o e el intercambio de mensajes condenciales que slo pueden ser le o dos por las personas a las que van dirigidos (y stos son los que tendrn los medios para descifrarlos). e a Se usa el trmino criptolog cuando se trata a la criptograf como ciencia, es decir, cuando e a a nos enfocamos ms en las tcnicas de cifrado y el criptoanlisis (que son las tcnicas para a e a e poder descifrar un mensaje interceptado).

Conceptos
Vamos a suponer que hay dos personas Alicia y Bob, Alicia le quiere mandar un mensaje condencial a Bob, el mensaje condencial se denomina texto plano. El cifrado es el proceso de convertir el texto plano en un texto ilegible que es llamado texto cifrado. Por lo general la aplicacin de un algoritmo para cifrar el texto se basa en la existencia de una clave. o

4.58257569495584000658804719372800848898445657676797190260724212390686842 19

laberintos e innitos Las dos tcnicas ms sencillas de cifrado, en la criptograf clsica, son la sustitucin (came a a a o biar las letras por otras letras, d gitos o s mbolos) y la trasposicin (que es una permutacin o o de los elementos), la gran mayor de los cifrados clsicos son combinaciones de estas dos a a operaciones bsicas. a El descifrado es el proceso inverso que recupera el texto plano a partir del texto cifrado y la clave. El protocolo criptogrco especica los detalles de cmo se utilizan los algoritmos y a o las claves (y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado y claves es lo que constituyen en conjunto un criptosistema, que es con lo que el usuario nal trabaja e interacta. u Las cifras se pueden clasicar de dos formas dependiendo de las claves: 1. Los algoritmos que usan una unica clave (cifras simtricas). Estos son los utilizados en e la criptograf clsica. Se dejaron de utilizar ya que para descifrar un mensaje tambin a a e se ten que enviar la clave, lo cul implicaba un gran riesgo. Adems si las claves se a a a cambiaban y el receptor no las conoc era imposible que descifrara el mensaje. a 2. Los que emplean dos claves(cifras asimtricas), una para cifrar mensajes, clave pblica y e u otra para descifrarlos, clave privada. Son las que se utilizan actualmente. Estos cifrados se basan en funciones trampa, las cuales son de un slo sentido, es decir, aquellas o cuya computacin es fcil mientras que su inversin resulta extremadamente dif o a o cil. La trampa consiste en que si se sabe algn dato de la funcin entonces resulta fcil u o a encontrar su inversa. Este dato debe ser la clave privada. Por ejemplo, el problema de factorizar nmeros es extremadamente dif si se trata de primos grandes; pero si tengo u cil el nmero n = pq, donde p y q son primos grandes, el problema de encontrar p y q (la u factorizacin de n) es dif al menos que conozca p, lo cual hace trivial encontrar a q. o cil Cuando Alicia quiere enviar un mensaje a Bob, entonces se le cifra con su clave pblica u y slo l lo va a poder descifrar con su clave privada. o e

Historia
Desafortunadamente, como muchas aplicaciones de las matemticas y de la ciencia en general, a se desarrolla a partir de la guerra y de la necesidad de mandar mensajes, de tal forma que si el mensajero era interceptado por el enemigo, la informacin que portaba no corriera peligro o (ya que el enemigo ser incapaz de descifrar el mensaje). a El primer criptosistema del que tenemos referencia es el conocido como Csar, el cual cone siste en recorrer las letras del abecedario y escribir el mensaje con las letras recorridas, de manera que a la letra A le va a corresponder la letra D, a la B la E y as sucesivamente. Otro mtodo utilizado por los griegos fue la sc e tala espartana, esta tcnica consiste en ene volver una especie de cilindro (sc tala) con un pedazo de tela, en el cual se escribe el mensaje verticalmente, de tal forma que cuando se desenvuelva el pedazo de tela lo que est escrito a no tenga sentido y slo pueda descifrarlo alguien que posea un cilindro con el mismo dimetro. o a

4.58257569495584000658804719372800848898445657676797190260724212390686842 20

Aterrizando Ideas Fue hasta 1465 cuando el italiano Leon Battista Alberti invent un nuevo sistema en el cual o las letras son sustitu das por otras letras, guras, s mbolos o una combinacin de estos de o acuerdo con un sistema predenido y una llave. Un criptgrafo muy importante del siglo XVI, o fue el francs Blaise de Vignere, quien diseo un cifrado en el cual el texto plano se escribe e n como nmeros que corresponden a cada letra del abecedario, a estos se le suma la cantidad u correspondiente mdulo 26 de la letra correspondiente con una clave, la cual se repite tantas o veces como sea necesaria para que a cada letra del mensaje se le sume una letra correspondiente a la palabra clave. Durante la primera guerra mundial, los alemanes usaron el cifrado ADFVX, en el cual hubo una gran evolucin ya que fue de los primeros en unir la transposicin (es decir la permutacin o o o de letras) y la sustitucin (reemplazar unas letras por otras), lo cual causa difusin y cono o fusin, que son caracter o sticas de un buen cifrado e implican que es dif (a veces imposible) cil proponer una regla de correspondencia entre las letras del mensaje original y las del mensaje cifrado. Otro avance que presenta la criptograf durante esta poca es el uso de mquinas a e a de clculo, lo cual facilita el proceso de cifrar mensajes, por lo tanto los cifrados adquirieron a ms seguridad. La mquina ms conocida es Enigma. A partir de entonces se dieron grandes a a a avances en la criptograf sobre todo en lo terico. a, o Los avances en la computacin dieron pauta para el desarrollo de nuevos criptosistemas, con o la caracter stica de que fueran muy dif ciles de descifrar mediante fuerza bruta(poner a correr la computadora a prueba y error hasta que se pudiera descifrar el mensaje). A mediados de los aos 70, el Departamento de Normas y Estndares norteamericano publica n a el primer diseo lgico de un cifrador que fue el llamando DES. As n o mismo se empezaron a desarrollar los sistemas asimtricos, los cuales permiten hoy en d trabajar con criptograf e a a en cosas muy importantes y comunes como la rma digital y los cifrados asimtricos. e

2. Conceptos preliminares
Orden de a (md n) o Sean a, n > 1 enteros con mcd(a, n) = 1. El orden de a (md n) es r, el menor entero positivo o tal que ar 1 (md p). o Teorema 1. Teorema Chino del Residuo Suponga que el mcd(m, n) = 1. Dados los enteros a, b hay exactamente una solucin x o (md nm) al sistema de ecuaciones o x a (md m) o x b (md n) o Demostracin. Como mcd(m, n) = 1 existen enteros s, t tales que ms + nt = 1. Por lo tanto o ms 1 (md n), porque ms = 1 nt , y nt 1 (md m). Sea x = bms + ant, entonces o o x a(nt) a(1) a (md m) y x bms b (md n), por lo tanto la solucin existe. o o o

4.58257569495584000658804719372800848898445657676797190260724212390686842 21

laberintos e innitos Supongamos que y es otra solucin. Entonces x y (md m) y x y (md n), entonces o o o x y es mltiplo tanto de m como de n. u Teorema 2. (Pequeo) Teorema de Fermat n Si p es primo y p no divide a a, entonces ap1 1 (md p). o Demostracin. Sea S = {1, 2, 3, . . . , p 1}(vamos a observar que S (Z , )) Consideremos el o = p mapeo de : S S dado por (x) = ax (md p) . Para checar la cerradura suponemos que o (x) = 0, esto implica que ax 0 (md p). Como mcd(a, p) = 1, podemos sacar el inverso o multiplicativo de a y multiplicrselo a la congruencia para que nos quede que x 0 (md p), a o pero observemos que entonces x S, lo cual es una contradiccin, por lo tanto (x) = 0 y / o (x) S. Supongamos x, y S, con (x) = (y), esto implica que ax ay (md p). Como mcd(a, p) = o 1, existe el inverso multiplicativo de a, multiplicamos por ste la congruencia y obtenemos e que x y (md p). Por lo tanto la funcin es inyectiva y asigna a cada elemento x en S una o o distinta (x), por lo tanto (1), (2), ..., (p 1), son distintos elementos en el codominio. Como S tiene slo p 1 elementos, se sigue que la funcin es suprayectiva. Observamos que o o los elementos del dominio son los mismos que los del codominio pero con alguna permutacin. o Se sigue que: 1 2 3 (p 1) (1) (2) (3) (p 1) se da porque (Z , ) es un grupo abeliano y por lo tanto es conmutativo p (a 1) (a 2) (a 3) (a (p 1)) ap1 (1 2 3 (p 1)) Observemos que j (Z , ) j 1 S tal que jj 1 = 1, entonces p 1 ap1 (md p) o (md p) o

Funcin de Euler o
(n) es el nmero de enteros 1 a n, tal que mcd(a, n) = 1. Por ejemplo, si n = 10, a = u {1, 3, 7, 9}, por lo tanto (n) = 4. Si p es primo, a = {1, 2, 3, ..., p 1}, entonces (p) = p 1 Teorema 3. Teorema de Euler Si mcd(a, n) = 1, entonces a(n) 1 (md p) o Demostracin. Sea S el conjunto de todos los enteros x, con 1 x n y mcd(x, n) = 1, sea o : S S dado por (x) = ax (md n), (es la misma que utilizamos en el teorema de o Fermat). Tenemos que: x (x) a(n) x
xS xS xS

como mcd(x, n) = 1, tenemos que cada x tiene inverso multiplicativo y por lo tanto multiplicando por todos los inversos nos queda 1 a(n) (md n) o 4.58257569495584000658804719372800848898445657676797190260724212390686842 22

Aterrizando Ideas Observar que si n = p entonces el teorema de Fermat y el teorema de Euler son el mismo. Del teorema de Euler se sigue un principio bsico, que establece que si quieres trabajar a (md n), entonces debes de trabajar en los exponentes con (md (n)). Formalmente: o o Sean a, n, x, y enteros con n 1 y mcd(a, n) = 1. Si x y (md (n)), entonces ax ay o (md n). o Demostracin. Como x y (md (n)), entonces x = y + (n)k, luego o o ax = ay+(n) = ay (a(n) )k = ay 1k ay (md n) o

Ra ces primitivas
Cuando p es un primo, una ra primitiva mdulo p es un nmero cuyas potencias caen en z o u todas las clases distintas de cero. Por ejemplo, las potencias de 3 (md 7) son: o 31 3 (md 7) 34 4 (md 7) o o 32 2 (md 7) 35 5 (md 7) o o 33 6 (md 7) 36 1 (md 7) o o Por lo tanto se dice que 3 es ra primitiva de 7. z Ahora veamos las potencias de 3 (md 13) o 31 3 (md 13) o 33 1 (md 13) o 2 4 3 9 (md 13) 3 32 31 3 (md 13) o o Lo cual nos indica que 3 no es ra primitiva de 13. z Observaciones: sea g una ra primitiva de p (primo) z 1. Sea n un entero. Entonces g n 1 (md p) si, y slo si, n 0 (md p 1)) o o o 2. Si j y k son enteros, entonces g j g k (md p) si, y slo si, j k (md p 1) o o o

3. El Problema del Logaritmo Discreto


Sea p un nmero primo jo. Sean , = 0 enteros (md p), y suponga que u o x (md p) o El problema de hallar la x es llamado el problema del logaritmo discreto. Asumimos que si n es el orden de (md p), entonces 0 x < n y denotamos a o 4.58257569495584000658804719372800848898445657676797190260724212390686842 23

laberintos e innitos

x L () decimos que x es el logaritmo discreto de con respecto a . Ejemplo: Sea p = 11 y = 2. Como 26 = 24 22 = (5)(4) = 20 = 9 (md 11), tenemos que L2 (9) = 6, pero sabemos que o 26 = 21 6 = 22 6 = 9 (md 11) o

Esto se da por el principio bsico del Teorema de Euler, ya que 6 16 26 (md 10), ena o tonces podr amos decir que 6, 16, 26 son logaritmos discretos. Pero por el momento vamos a jar el valor de x en el menor entero no negativo (porque en algunas aplicaciones se necesita tener un nmero concreto en vez de una clase). u Para que el logaritmo discreto est bien denido, tomamos a como ra primitiva (md p), e z o ya que con esta condicin evitaremos que 0 (md p). o o Una propiedad del logaritmo discreto es que si es una ra primitiva (md p), entonces z o L (1 2 ) = L (1 ) + L (2 ) (md p 1) o

Si p es pequeo entonces es fcil calcular los logaritmos discretos (probando con todos los n a exponentes posibles), pero si p es muy grande ya no es fcil. a

4. Calcular Logaritmos Discretos


Test de paridad
Para simplicar tomemos que sea una ra primitiva (md p), se sigue que p 1 es el z o orden de (md p), ya que si el orden de (md p) fuera y < p 1 entonces ya no ser o o a ra primitiva, porque si tomamos z, x enteros positivos tal que z = y + x < p 1, entonces z z = y+x = x y = y (md p), lo cual indica que no puede ser ra primitiva (ya que o z z, y < p 1, toman el mismo valor). Tenemos entonces que Si j y k son enteros, entonces j k (md p) si, y slo si, j k (md p 1) o o o Asumimos que 0 x p 1, queremos hallar x. Es fcil determinar x (md 2). Notamos que ((p1)/2 )2 = p1 = 1 (md p), entonces a o o sacando ra cuadrada (p1)/2 = +1 (md p). Como p1 es el orden de (md p), entonces z o o p1 es el menor exponente que es congruente con 1, por lo tanto debemos tener (p1)/2 = 1 (md p). o Sea = x (md p), elevamos los dos lados a la potencia (p 1)/2 y obtenemos o (p1)/2 = x(p1)/2 = (1)x (md p) o

4.58257569495584000658804719372800848898445657676797190260724212390686842 24

Aterrizando Ideas . Por lo tanto si (p1)/2 = +1 (md p), entonces x es par, de otra forma x es impar. o Ejemplo: Queremos resolver 2x = 9 (md 11). Como (p1)/2 = 95 = 92 92 9 = (4)(4)(9) = (5)(9) = 45 = 1 (md 11) o o Lo cul nos dice que x es par. De hecho x = 6, como lo vimos antes. a

El algoritmo de Pohlig- Hellman


Sirve cuando p 1 tiene factores primos pequeos. n r Suponemos que p 1 = qi j , es la factorizacin de p 1 en primos. Sea q r uno de los o r factores. Vamos a calcular L () (md q r ). Esto lo vamos a hacer para cada qi j , y para o hallar el logaritmo discreto vamos a combinar las respuestas usando el Teorema Chino del residuo. Escribamos x = x0 + x1 q + x2 q 2 + ... con 0 xi r 1. Determinamos los coecientes x0 , x1 , ..., xr1 . Notar que x p1 q = x0 p1 p1 + (p 1)(x1 + x2 q + x3 q 2 + ) = x0 + (p 1)n q q

donde n es un entero. Tenemos que = x (md p), elevamos ambos lados a la (p 1)/q (notar que (p 1)/q es o entero, por la factorizacin), para obtener: o (p1)/2 x(p1)/2 x0 (p1)/2 (p1 )n x0 (p1)/2
p1

(md p) o

Por el Teorema de Fermat sabemos que 1 (md p) y por lo tanto se da la congruencia. o o Para hallar x0 , solo tenemos que revisar las potencias k(p1)/q (md p), k = 0, 1, 2, ..., q 1 hasta que una nos resulte igual a (p1)/q . Se sigue que x0 = k. Por la propiedad mencionada al principio, tenemos que los exponentes k(p 1)/q son distintos mdulo p 1, entonces k es o unica. Si ahora queremos hallar los coecientes restantes. Asumimos que q 2 |p 1, sea 1 x0 q(x1 +x2 q+...) (md p). Elevamos los dos lados o (p1)/q 2 2 (p1)(x1 +x2 q+...)/q a la (p 1)/q y obtenemos 1 x1 (p1)/q (p1 )x2 +x3 q+... x1 (p1)/q (md p). o Para hallar x1 , slo tenemos que revisar cul de las potencias k(p1)/q (md p), k = 0, 1, 2, ..., q o a o 2 1 nos da (p1)/q . Se sigue que x1 = k. Luego si q 3 |p 1, sea 2 1 x1 q (md p), elevamos los dos lados a la (p 1)/q 3 y o hallamos x2 . De esta forma hasta que q r+1 ya no divida a p 1, pero en este punto habremos determinado a x0 , x1 , ..., xr1 y asi conoceremos a x (md q r ). o

4.58257569495584000658804719372800848898445657676797190260724212390686842 25

laberintos e innitos Repetimos el procedimiento para todos los factores de p1. Esto nos determina a x (md q1i ) o r para toda i.Con el teorema Chino del residuo la combinamos en una congruencia x (md p o 1). Como 0 x p 1, x es unica y obtenemos el logaritmo. Ejemplo: Sea p = 41, = 7 y = 12, queremos resolver 7x = 12 md 41. o Notamos que 41 1 = 40 = 8(5) = 23 5. Primero, tomamos q = 2, y vamos a encontrar x (md 23 ). Escribimos x = x0 + 2x1 + 4x2 o (md 8). o Primero queremos hallar x0 , entonces calculamos (p1)/q 122 0 40 1 (md 41) y o o (p1)/2 720 1 (md 41) como (p1)/2 ((p1)/2 )x0 (md 41), tenemos que x0 = 1. o Ahora para calcular x1 tenemos 1 equivx0 1271 31 (md 41), recordamos que 71 o se calcula de la siguiente forma: Observacin: como mcd(7, 41) = 1 entonces 71 existe. Por el algoritmo de la divisin de o o Euclides tenemos que 41 = 7(5) + 6 7 = 6(1) + 1 lo que implica que 1 = 7 + 6(1) = 7 + (41 + 7(5))(1) = 41(1) + 7(6) y por lo tanto 71 = 6, luego 12(6) = 7231 (md 41). o Regresando al problema, (p 1)/4 3110 1 (md 41). Como (p1)/4 ((p1)/2 )x1 o (1)x1 (md 41), entonces se sigue que x1 = 0. o (p1)/q 3 315 Para hallar x2 tenemos que 2 1 2x1 (31)(70 ) 31 (md 41) y 2 o (p1)/2) x2 1 ( ) (md 41), por lo tanto x2 = 1. Por lo tanto ya podemos tener x = o x0 + 2x1 + 4x2 = 1 + 0 + 4 = 5 (md 8). o Ahora tomamos q = 5, entonces queremos encontrar x = x0 (md 5). Tenemos (p1)/5 o 128 18 (md 41) y (p1)/5 78 37 (md 41). Queremos que 18 (37)x0 (md 41), o o o tratando con diferentes valores obtenemos que 373 18 (md 41), por lo tanto x 3 o (md 5). o Tenemos las ecuaciones x = 5 (md 8) y x = 3 (md 5). Usaremos el Teorema Chino del o o residuo para obtener x (md p). o De x = 3 (md 5), se sigue que x = 3 + 5h, sustitu o mos en la segunda ecuacin y tenemos o que (md 8) h = 51 2 = (3)(2) = 2 o

3 + 5h = 5

(md 8) 5h = 2 o

(md 8) o

sustitu mos x = 3 + 5h = 3 + 5(2) = 13 (md 40) y por lo tanto 71 3 = 12 (md 41). o o

4.58257569495584000658804719372800848898445657676797190260724212390686842 26

Aterrizando Ideas

Baby step, Giant Step


Otra forma de hallar x tal que x (md p), es escogiendo primero N tal que N 2 p 1. o Luego hacemos dos listas: 1. j (md p) para 0 j < N . o 2. N k (md p) o Comparamos las dos listas y vemos si coinciden. Si hallamos una coincidencia j N k entonces j+N k , y por tanto x = j + N k resuelve el problema del logaritmo discreto. Podemos observar que siempre va a haber una coincidencia, ya que 0 x p 1 N 2 , podemos escribir a x como x = x0 + N x1 con 0 x0 , x1 < N , y por lo tanto j = x0 , k = x1 da la coincidencia.

The Index Calculus


Otra vez tratamos de resolver x (md p), cuando p es un primo y es una ra primitiva. o z Primero tenemos que jar B y todos los primos menores a B sern nuestra base de factores. a Calculamos k (md p) para varios valores de k. Cada uno de estos nmeros lo tratamos de o u escribir como producto de primos menores a B. Si no podemos entonces descartamos esa k (md p). o Si k pai (md p), entonces por propiedades de los logaritmos discretos tenemos que o i k ai L (pi ) (md (p 1)). Cuando obtenemos sucientes de estas relaciones podemos o resolver L (pi ) para cada i. Ahora para r enteros aleatorios, calculamos r (md p) . Cada uno de estos nmeros lo o u tratamos de escribir como producto de primos menores que B. Si los encontramos tenemos que r pbi (md p) , lo que signica que L () r + bi L (pi ) (md (p 1)). o o i Este algoritmo es efectivo cuando p tiene un tamao moderado. n Ejemplo: Sea p = 131, = 2. Tomamos B = 10, por lo tanto la base factores es {2, 3, 5, 7}. Calculamos k (md p): o 21 2 (md 131) o 2 125 53 (md 131) o 212 5 7 (md 131) o 27 27 (3)(3) 32 (md 131) o 234 53 3 (md 131) o
8

214

4.58257569495584000658804719372800848898445657676797190260724212390686842 27

laberintos e innitos Por lo tanto tenemos: 1 L2 (2) (md 130) o 8 3 L2 (5) (md 130) o 12 L2 (5) + L2 (7) (md 130) o 14 2 L2 (3) (md 130) o 34 L2 (3) + 2 L2 (5) (md 130) o De la segunda congruencia tenemos L2 (5) 8 31 46 (md 130). Si sustituimos en la o tercera ecuacin tenemos L2 (7) 12 L2 (5) 12 46 34 96 (md 130) , de la quinta o o congruencia obtenemos L2 (3) 34 2 L2 (5) 34 2(46) 72 (md 130). o Supongamos que queremos calcular L2 (37). Escogemos exponentes al azar y tenemos que 37 243 3 5 7 (md 131), por lo tanto L2 (37) = 43 + L2 (3) + L2 (5) + L2 (7) 43 + o 72 + 46 + 96 41 (md 130) Por lo tanto L2 (37) = 41, lo que quiere decir que 241 37 o (md 131). o

5. Aplicaciones a la Criptograf a
Vamos a suponer que los mensajes enviados estn en bits. a

Comprometer un Bit
Supongamos que Alicia le quiere enviar a Bob un bit b, que ser 0 1, de tal forma que: a 1. Bob no pueda determinar el valor del bit sin la ayuda de Alicia. 2. Alicia no pueda cambiar el valor del bit una vez que se lo env a Bob. a Una solucin matemtica a este problema ser que Alicia y Bob se pusieran de acuerdo y o a a eligieran un primo largo p 3 (md 4) y una ra primitiva . Alicia elige un nmero aletorio o z u x < p 1 tal que el segundo bit x1 sea b. Env x (md p) a Bob. Asumimos que Bob a o no puede calcular logaritmos discretos para p, entonces cuando Bob quiera conocer el valor de b, Alicia le va a mandar x, as viendo a x (md 4) (utilizando un algoritmo similiar al , o de Pohling Hellman) encuentra b. Observamos que Alicia no puede mandar un valor de x distinto ya que Bob va a checar x (md p) y sabemos que esta ecuacin tiene solucin o o o unica para x < p 1.

Intercambio de Llave de Die-Hellman


Un problema en la criptograf moderna es el intercambio de llaves ya que ahora las personas a que se desean comunicar estn lejos y la mayor de las veces utilizan medios de comunicacin a a o que no son muy seguros, como Internet, para enviar mensajes. Supongamos que Alicia y Bob quieren establecer una llave privada K. Una forma de hacerlo es: 4.58257569495584000658804719372800848898445657676797190260724212390686842 28

Aterrizando Ideas 1. Alicia o Bob escoge un p que sea largo y seguro, junto con una ra primitiva (md p). z o Hace pblicos estos nmeros. u u 2. Alicia escoge una x aleatoria secreta con 1 x p 2, y Bob selecciona una y = x con las mismas caracter sticas. 3. Alicia manda x (md p)a Bob, y Bob manda y (md p) a Alicia. o o 4. Usando los mensajes que recibieron, pueden calcular la llave K. Alicia calcula K (y )x (md p) y Bob calcula K (x )y (md p). o o Supongamos que Eva intercepta la comunicacin entre Alicia y Bob, es decir conoce x y y . o Si puede calcular logaritmos discretos, puede conocer x y calcular (y )x K. Si Eva tiene K puede descifrar toda la comunicacin entre Alicia y Bob. o Eva no necesariamente tiene que saber calcular logaritmos discretos, puede resolver el Computational Die-Hellman problem. Computational Die-Hellman problem: Si p es un primo y una ra primitiva (md p). Entonces dadas x (md p) y y (md p), z o o o hallar xy (md p). o Todav no se sabe si resolver este problema es ms fcil que calcular logaritmos discretos. a a a Pero podemos simplicar este problema con el problema de decisin de Die-Hellman. o Decisin Die-Hellman Problam: o Si p es un primo y una ra primitiva (md p). Entonces dadas x (md p), y (md p) z o o o y = 0 (md p) , decidir si xy (md p). o o No se sabe si un mtodo para resolver el problema de decisin de Die-Hellman ayuda a la e o solucin del problema computacional de Die-Hellman en el presente. Una forma de resolver o el problema de Decisin de Die-Hellman es fuerza bruta (calcular muchas hasta que una o te de igual a xy (md p), pero esto es imprctico. Por lo tanto, aunque Eva conozca x o a (md p), y (md p) es muy dif que pueda hallar K, se podr decir que tan dif como o o cil a cil calcular logaritmos discretos.

Criptosistema de Llave P blica ElGamal u


Alicia quiere mandar un mensaje m a Bob. Bob elige un primo largo p y una ra primitiva z . Asumimos que m es un entero con 0 m < p, si es mas grande lo partimos en bloques. Bob elige un entero secreto a y calcula a (md p). La informacin (p, , ) es la llave o o pblica de Bob. u Alicia manda un mensaje a Bob de la siguiente forma: 1. Obtiene la llave pblica de Bob (p, , ) u 4.58257569495584000658804719372800848898445657676797190260724212390686842 29

laberintos e innitos 2. Elige al azar un entero k secreto y calcula r k (md p) o 3. Calcula t k m (md p) o 4. Le env a Bob (r, t) a Bob descifra el mensaje calculando tra m (md p) o Esto funciona ya que tra k m(k )a (a )k m(k )a m (md p), porque como estao mos trabajando en un grupo abeliano ak mka ak ka m m (md p). o Observaciones: Bob tiene que mantener en secreto a, ya que si Eva encuentra a entonces puede descifrar todos sus mensajes. Si Eva sabe el valor de k entonces puede calcular t k ( k m) k m (md p), por lo cual, o Alicia tiene que mantener en secreto el valor de k. Tambin debe de ser aleatorio y se tiene e que cambiar cada vez que mande un mensaje ya que sino se esta mandando la misma r en todos sus mensajes y si descubre m en alguno de ellos, entonces descubrir todos los mensajes. an De otra forma, aunque intercepte (r, t) Eva no puede conocer m, o es tan dif como resolver cil el problema de Cmputo de Die-Hellman. o

6. Conclusin o
El algoritmo discreto es una funcin que aunque no es muy popularporque su clculo es muy o a complicado si se trata de nmeros primos muy grandes, se utiliza en muchas aplicaciones como u la criptograf En general, es sorprendente ver cmo algunos conceptos que son demasiado a. o tericos en matemticas, y de hecho hasta a veces desconocidos, se pueden aplicar a cosas o a que se utilizan en la vida cotidiana, mostrndonos que son tan importantes las matemticas a a tericas como las aplicadas. o

Bibliograf a
[1] http://www.worldlingo.com [2] http://serdis.dis.ulpgc.es [3] CRIPTOGRAFIA/cifras %20de %20sustitucion.html [4] http://es.wikipedia.org [5] Introduction to Cryptography with Coding Theory,Wade Trapp ,Lawrence C. Washington ,2nd Edition, Pretince Hall, 2002.

4.58257569495584000658804719372800848898445657676797190260724212390686842 30

También podría gustarte