Está en la página 1de 15

Cdigos y Criptografa

76

TEMA 2. CRIPTOGRAFA Criptografa y Criptoanlisis Criptologa = Criptografa + Criptoanlisis Etimolgicamente criptologa quiere decir escritura secreta. Actualmente tiene el significado de ciencia de la comunicacin segura; su objetivo es que dos partes puedan intercambiar informacin sin que una tercera parte no autorizada, a pesar de que capte los datos, sea capaz de descifrar la informacin. La criptografa acta mediante criptosistemas; un criptosistema o sistema cifrado es un sistema que permite cifrar los mensajes de tal forma que una persona no autorizada no pueda descifrar el mensaje. La criptografa es la ciencia de disear criptosistemas. El criptoanlisis trata de romper los criptosistemas para apoderarse de la informacin cifrada.

Criptosistemas Clsicos(Simtricos) Un criptosistema clsico est formado por un quinteto de conjuntos ( P, C, K, e, D), donde: P es un conjunto finito cuyos elementos se llaman textos claros (plain text), estos seran los mensajes que se quieren enviar tal cual. C es un conjunto finito cuyos elementos se llaman criptotextos, esto sera lo que resulta una vez que la informacin se cifra. K es un conjunto finito cuyos elementos se llaman claves (keys). E = {Ek / k K} donde Ek: P C, Ek transformaciones criptogrficas D = {Dk / k K} donde Dk: C P, cumpliendo que Dk(Ek(x)) = x x P.

Esto se basa en que las 2 partes se ponen de acuerdo en la clave y en mantenerla secreta. La clave k da las transformaciones Ek y Dk. Un criptoanalista intercepta c pero como no conoce la clave k no es capaz de recuperar p. Cualquier persona que conozca la clave k puede descifrar el mensaje. La clave debe intercambiarse por un canal seguro y adems el conjunto de las claves debe ser enorme. Este criptosistema se llama simtrico ya que el conocimiento de la clave permite las operaciones de cifrar y descifrar.

Tema 2. Criptografa

Cdigos y Criptografa

77

a0 b1 . . z 26 Z27 Alfabeto 1- P = C = K = Z27 Para cada k Z27 Ek(x) := x+k (mod 27) x Z27 Dk(x) := x-k (mod 27) x Z27 k=3 E3(CESAR) = FHVDQ E3(ZAMORA) = CDORUD Este sistema se conoce como cifra de Csar. Como slo hay 27 posibles claves se prueban todas las posibles claves hasta que se encuentra la correcta. 2- P = C = Z27 K = S27 = { : Z27 Z27 / es biyectiva (permutacin)} E(x) := (x) x Z27 D(x) := -1(x) x Z27 |K| = 27! > 1028 El que |K| sea tan grande implica que este criptosistema no se pueda analizar a lo bruto. Este criptosistema se llama criptosistema de sustitucin. Principio de Kerchhoff: El criptoanalista conoce el criptosistema que se usa. Este criptosistema es fcilmente analizable. Su debilidad es el anlisis de frecuencias, esto es debido a la redundancia inherente de los lenguajes naturales. Cada lenguaje natural tiene una distribucin de frecuencias del alfabeto que es caracterstica; por ejemplo, en castellano: e 14.75 % a 13.25 % en ingls e t
Tema 2. Criptografa

Cdigos y Criptografa

78

a Cualquier idioma tiene una distribucin de frecuencias caracterstica. Se compara la distribucin de frecuencias del texto claro con la distribucin de frecuencias de los smbolos del criptotexto. Tambin se puede hacer una anlisis de frecuencias de pares de letras consecutivas, de ternas de letras... Estos dos criptosistemas son criptosistemas de sustitucin monoalfabtica, la transformacin sustituye una letra por otra, pero siempre es la misma. 3-Criptosistema afn. P = C = Z27 K = {(a,b) Z27 x Z27 / mcd (a,27) = 1} Si k = (a,b) Ek(x) := ax+b (mod 27) x Z27 Dk(x) := a-1(x-b) (mod 27) x Z27 a se toma primo con 27 para que tenga inverso en Z 27. En este caso |K| = 27 29. Este es un subsistema del caso anterior. Se disearon los sistemas polialfabticos en los que cada smbolo del alfabeto se sustituye por otro pero dependiendo de la posicin de la letra se cambia por una letra u otra, as analizando la distribucin de smbolos en el criptotexto no permite descifrar el mensaje. Criptosistemas de sustitucin monoalfabtica Anlisis de frecuencias Criptosistemas Polialfabticos: Ejemplo: Cifra de Vigner (s. XVI) P = C = K = (Z27)m, con m Z27, m 0 k K, k = (k1, k2.km) con ki Z27 Ek(x1....xm) = (x1+k1, x2+k2,.xm+km) (mod 27) Dk(x1....xm) = (x1-k1, x2-k2,. xm-km) (mod 27) Consideramos una sucesin peridica de desplazamientos. El primer smbolo se desplaza k1 posiciones, el segundo k2 posiciones y as hasta el ltimo y luego repetimos el proceso para los siguiente m smbolos. k = VIGENERE , m = 8 k = (22, 9, 7, ...)
Tema 2. Criptografa

Cdigos y Criptografa

79

MENSAJE SECRETO se cifrara como: m 13 (13+22) (mod 27) = 8 e 5 (5+9) (mod 27) = 14 n 14 (14+7) (mod 27) = 21 El criptotexto ya no se puede analizar mediante el anlisis de frecuencias. Esta cifra perdur durante siglos, hasta que en el s. XIX se descifr. Se debe aplicar el Test de Kasiski: En los textos hay palabras que se repiten a menudo y si la distancia entre partes iguales del texto es mltiplo de m entonces se van a cifrar de la misma forma. Se buscan estas coincidencias a lo largo del texto. Al conocer la longitud de la palabra se puede aplicar anlisis de frecuencias sobre los smbolos en las posiciones congruentes mdulo m. Shanonn demostr que se puede encontrar un criptosistema incondicionalmente seguro, esto es aunque el criptoanalista disponga de infinitos recursos de computacin y de infinito tiempo no va a poder descifrar el criptosistema. Cifra de Vernam (1917): m1 P = C = K = (Z2)m m k Z2 , k = (k1, k2,.km) Ek(x1....xm) = (x1+k1, x2+k2,.xm+km) (mod 2) Dk(y1....ym) = (y1+k1, y2+k2,. ym+km) (mod 2) Este criptosistema tiene seguridad incondicional. En este caso la longitud de la clave es igual a la longitud del texto. Si generamos una clave aleatoria todas las sucesiones de m bits son igualmente probables. Este sistema se denomina one-time pad; la clave slo se usa una vez. Este sistema en la prctica sirve de poco ya que genero una clave de igual tamao que lo que queremos transmitir, pero en criptosistemas simtricos ambas partes deben conocer la clave y debe haber un canal seguro por el que se puedan transmitir los m bits de la clave, pero si podemos hacer esto entonces podemos transmitir los m bits del texto sin cifrar por este canal seguro. DES (Data Encrytion Standart): Fue diseado en USA(70) con la idea de que fuese un estndar y fuese usado por las empresas en las transacciones. Fue criticado ya que usa una clave secreta de 64 bits, pero de stos slo 56 son la clave ya que hay 8 bits de control (correccin de errores). Este sistema no ofreca seguridad suficiente. El espacio de claves es enorme pero con ordenadores potentes se puede encontrar la clave.

Tema 2. Criptografa

Cdigos y Criptografa

80

AES (Advanced Encryption Standart): Este criptosistema es mucho ms avanzado que el anterior y est en fase de proyecto. Todos los criptosistemas clsicos se han ido rompiendo. Problemas fundamentales de los criptosistemas clsicos: El problema de la seguridad (Shanonn 1949, Bell System Journal). Shanonn dio una definicin de lo que es la seguridad de un criptosistema; defini la seguridad incondicional, sta se establece cuando un criptosistema es seguro con independencia de los medios disponibles (infinita potencia de clculo). Si un criptosistema es incondicionalmente seguro no se puede romper. Se demostr la existencia de criptosistemas de seguridad incondicional (cifrar de Vernann) aunque d.p.v prctico no tienen utilidad. Los criptosistemas ms modernos se basan en la seguridad computacional. La idea es considerar un criptosistema computacionalmente seguro cuando aunque haya un algoritmo que rompa el sistema ste requiera un tiempo de computacin tan grande que sea inviable llevarlo a la prctica. El problema del manejo y distribucin de claves. Los criptosistemas clsicos son de clave secreta, cualquiera que conozca la clave puede descifrar la informacin. Estos criptosistemas son vulnerables aunque no se sepa como criptoanalizarlos si se intercepta la clave secreta. El problema de la autentificacin. Los criptosistemas convencionales no proporcionan ningn mtodo para que el receptor del mensaje pueda tener la seguridad de que quien envi el mensaje es quien debera haberlo enviado y no una tercera parte. El mensaje podra ser alterado y no se podra saber si esta situacin se ha producido.

Criptografa de Clave Pblica En un criptosistema clsico hay un espacio de claves y para cada clave k hay una funcin Ek de encriptacin y otra Dk de desencriptacin. Cualquier persona que conozca k conoce Ek y Dk; pero adems si se conoce E k se conoce Dk y viceversa; as k, Ek y Dk deben ser secretas. En 1976 se trat de buscar un criptosistema en el cual el conocimiento de cmo encriptar no implicase el conocimiento de cmo desencriptar. Esto permite usar un criptosistema en el cual Ek fuese pblica pero no fuese factible calcula Dk. Ek y Dk deben ser inversas pero si uno conoce Ek no se debe poder obtener Dk. Esto apareci por primera vez en un artculo de W. Diffie y M. Hellman (New direction cryptography). Estos criptosistemas se basan en la funcin de direccin nica. Una funcin de direccin nica:
X f Y

Tema 2. Criptografa

Cdigos y Criptografa

81

es una funcin tal que es fcil d.p.v computacional calcular f(x) x X pero que por el contrario es difcil para la mayora de los y Y encontrar un x X / f(x) = y (suponiendo que exista). Por el momento no se ha demostrado la existencia de funciones de direccin nica pero si se conocen funciones que se piensa que son de direccin nica y que se usan en la prctica ya que de momento nadie ha sido capaz de invertir las funciones. Si Ek fuese de direccin nica ni siquiera el destinatario sera capaz de desencriptar . Una de las primeras y presumible funcin de direccin nica fue: f(x) , Zp(x) p = 264 59
f ( x) = x 2 + 17 + a1 x 2
24 24

+3

+ a1 x 3 + a3 x 2 + a 4 x + a5

ai = enteros de 19 dgitos En un criptosistema no serviran las funciones de direccin nica. Se usa una variante que son las funciones de direccin nica con trampa (trapdoor), que son funciones en las que es fcil calcular f(x), es fcil calcular x / f(x) = y dado y es posible revelar un algoritmo eficiente para calcular f hacia delante sin que el conocimiento del mismo proporcione un algoritmo eficiente para calcular f hacia atrs. Con esta funcin el destinatario ya puede desencriptar la informacin. Esto llev al concepto de criptosistema de clave pblica en el que hay una clave pblica que conoce todo el mundo y otra secreta para desencriptar que slo conoce el destinatario, con lo que ya no hay que intercambiar la clave secreta. Criptosistemas de Clave Pblica (CCP) o Criptosistemas asimtricos: Cada usuario del criptosistema se construye una funcin de encriptacin E u y una funcin de desencriptacin Du que cumplen las siguientes propiedades: CP1- Du(Eu(x)) = x para todo mensaje x y todo usuario u. CP2- Existen algoritmos eficientes para calcular Eu(x) y Du(x) para todo x. CP3- Existe una clave secreta (conocida slo por u) que permite obtener rpidamente Du a partir de Eu pero el conocimiento de Eu no hace factible hallar un algoritmo D * u * que ratifica D u (Eu(x)) = x para todo x. Cada usuario u hace pblico el algoritmo para calcular E u, los Eu se ponen en un directorio que es pblico. El algoritmo que permite calcular Du es mantenido en secreto por u. Si A quiere enviar un mensaje m a B, A busca EB en el directorio y calcula EB(m), A enva c = EB(m) y B calcula DB(EB(m)). Un criptoanalista conoce c = EB(m). CP4- Eu(Du(x)) = x x y todo usuario u. * CP5- No es factible encontrar a partir de Eu una funcin D * u tal que Eu(D u (x)) = x

Tema 2. Criptografa

Cdigos y Criptografa

82

Definicin: Una funcin H: X Y con |X| = l, |Y| = k y k mucho menor que l se llama funcin hash si es fcil calcular H(x) para todo x X y cumple: 1) No es factible encontrar dos valores distintos x x X tales que H(x) = H(x) (H es resistente a la colisin). 2) Dada y Im H no es factible encontrar x X tal que H(x) = y (H es resistente a la preimagen). A enva m a B firmado. A calcula H = H(m) y enva a B el par (m,H(m)). B aplica H a m y obtiene H(m), si coincide con H sabe que el mensaje es autntico suponiendo que H proviene realmente de A. A enva m a B firmado, A calcula H = H(m). A calcula E BDA(H) y enva a B (m, EBDA(H)) (se encripta la firma). B calcula E ADB(EBDA(H)) = EADA(H) = H. A continuacin B comprueba que H(m) = H. Al aplicar EA la nica forma de obtener la firma desencriptada es que previamente haya sido encriptada con DA que slo A conoce. Si A negase haber enviado el mensaje B podra ir a una 3 parte y demostrar que A ha enviado el mensaje (slo A ha podido utilizar DA). El Criptosistema RSA Riverest-Shamir-Adleman: Criptosistema RSA (A method for obtaining digital signatures and public key cryptosystems- Comunications of the ACM 1978) Se piensa que el criptosistema RSA es tan seguro como lo era en 1978. Exponenciacin modular con exponente y mdulos fijos gm,n: Zm Zn gm,n := xm (mod n) Se piensa que esta es una funcin de direccin nica con trampa. Extraccin de races mdulo n: Dados y, m, n Z+ hallar (en caso de que exista) un x tal que xm y (mod n) Es fcil calcular las imgenes pero la extraccin de races mdulo n no es factible computacionalmente a menos que se conozca una informacin adicional, que si se conoce entonces es fcil volver hacia atrs; esto se logra conociendo la factorizacin de m en nmeros primos ya que es fcil obtener las races m-simas. Dados m y n nadie conoce un algoritmo eficiente para la extraccin de races mdulo n pero no se ha demostrado que este algoritmo no exista.

Tema 2. Criptografa

Cdigos y Criptografa

83

RSA: RSA = (P, C, K, E, D) donde: P = C = Zn, con n = pq p y q primos K = {(n, e, d)/ ed 1 (mod (n))} Para cada k = (n, e, d) Ek(x) : = xe (mod n) x Zn Dk(x) : = xd (mod n) x Zn (n) = nmero de enteros positivos menores que n y primos con n. Zn = {0, 1, ..., n-1} En Zn slo tienen inverso los x tales que mcd(x,n) = 1 Z* n = {x Zn / mcd(x,n) = 1} es un grupo finito | Z* n | = (n) En el caso del sistema RSA: (n) = (pq) = (p)(q) = (p-1)(q-1) | Z* n | = p-1 si p es primo x Zn Dk(Ek(x)) = x Teorema (Lagrange): Si G es un grupo finito y x G, entonces x|G| = 1 Corolario (Euler): Si x Z+, mcd(x,n) = 1, entonces x(n) 1 (mod n) Corolario (Teorema pequeo de Fermat): Si p es primo, xp x (mod p) x Zp xp-1 1 (mod p) xp x (mod p)
*

x Z* n Ek(x) xe (mod n)
( x(n) ) t x Dk(Ek(x)) ( x e ) d (mod n) xed (mod n) xt(n)+1 (mod n) (mod n)
=1

x (mod n) ed 1 (mod (n)) ed = t(n) +1

Tema 2. Criptografa

Cdigos y Criptografa

84

El par (n,e) constituye la clave pblica mientras que d, p y q se mantienen en secreto. Cada usuario u elige dos primos distintos grandes (512 bits 154 dgitos decimales) pu y qu y calcula nu = puqu (n recibe el nombre de mdulo). * Se calcula (nu) = (pu 1)(qu 1) = |Z n |. u elige un entero eu tal que 1 < eu < (nu) y
u

mcd(eu,(nu)) = 1. A continuacin se calcula el inverso de e u en Z ( n ) , es decir, se calcula el entero du tal que 1 < du < (nu) y eudu 1 (mod (nu))
u

eu exponente de encriptacin du exponente de desencriptacin Clave pblica : (nu,eu) Eu(x) : = x eu (mod nu) Du(x) : = x d u (mod nu) u mantiene secreto pu, qu y du Los nmeros ms difciles de factorizar son los que se factorizan como 2 primos que tienen el mismo nmero de dgitos. Se presentan dos problemas: Reconocimiento de primos (primality test) Factorizacin de enteros.

Al usar el RSA queremos que otra parte no rompa el sistema, cualquier persona que conozca la descomposicin de un en factores primos puede desencriptar, esto lleva al problema de la factorizacin de enteros; nadie conoce un mtodo eficiente para factorizar enteros generales. AB A busca (nB,eB) A enva a B x eB (mod nB) B calcula (x eB ) d B (mod nB) = x Un criptoanalista tiene x eB (mod nB), debe hallar la raz eB de x, para esto debe conocer (nB) y para ello debe conocer qB y dB. p = 47 q = 59 n = pq = 4759 = 2773 (n) = (p)(q) = 4658 = 2668 e = 1225

Tema 2. Criptografa

Cdigos y Criptografa

85

2668 21

2 1225 135

5 218 83

1 135 52

1 83 31

1 52 21

1 31 10

1 21 1

1 10

mcd(1225,2668) = 1 1 = 2571225 1182668 2571225 1 (mod 2668) d = 257 Clave pblica (2773,1225) Clave privada (2773,257) x1225 (mod 2773) Exponenciacin binaria: 1225 = (10011001001)2 = 210 + 27 + 26 + 23 + 20 x1225 = x ( 2 1 cx 0c c = elevado al cuadrado x = multiplicar cxcccxcxcccxccx (((((((((x2)2)2x)2x)2)2)2x)2)2)2)x (mod 2773) Haciendo esto calculamos directamente x1225 (mod 2773); hacemos esto con slo 14 multiplicaciones. Vamos a ver que se cumplen las condiciones CP1...CP5 CP1 se cumple. D y E se calculan mediante algoritmos factibles ya que el algoritmo de exponenciacin binaria es eficiente. CP2 se cumple. CP3 permite asegurar que el RSA es seguro. E u es fcil de calcular pero obtener Du a partir de Eu no es factible. Existe la conjetura de que criptoanalizar RSA es equivalente a poder factorizar n. Lo mximo que se ha llegado a factorizar son nmeros de 130 dgitos. Los mejores algoritmos de factorizacin que se conocen son subexponenciales pero an as el tiempo de computacin es grande. Existe una creencia de que el RSA requiere la factorizacin de n y esto es difcil.
10

+ 2 7 + 2 6 + 23 + 2 0 )

= x2 x2 x2 x2 x

10

Tema 2. Criptografa

Cdigos y Criptografa

86

Encriptacin:
x x1225 (mod 2773) = c

Desencriptacin:
c c 257 (mod 2773)

257 = (100000001)2 cxccccccccx c257 = (((((((c2)2)2)2)2)2)2)2c (mod 2773) Problemas: Manejo y distribucin de claves. Este sistema de clave pblica resuelve este problema inmediatamente ya que 2 partes no tienen necesidad de intercambiarse clave alguna. Un usuario elige los primos y el exponente de Exponenciacin y hace pblica una clave pero la clave privada no se intercambia con nadie. Identificacin. Los criptosistemas clsicos no permiten saber que el mensaje proviene de quien realmente dice. Suponiendo que el RSA sea seguro (CP1 ... CP5) se resuelve este problema. Seguridad. Este problema est encerrado en la condicin CP3. No est demostrado que el RSA es seguro, existen una serie de hechos matemticos que hacen pensar que el RSA es seguro. La seguridad del RSA se basa en la creencia de que la funcin de encriptacin es una funcin de direccin nica con trampa. El que RSA sea seguro se basa en 2 premisas: a) Se cree que romper RSA es equivalente a saber factorizar n. Esta sin demostrar que no puede existir otra forma de romper RSA que no pase por factorizar n. No est demostrado que romper RSA sea equivalente a factorizar n. b) Si aceptamos la premisa anterior de que romper RSA pasa por factorizar n tenemos que la factorizacin de n para tamaos grandes de n es un problema intratable d.p.v. computacional. Se ha demostrado que factorizar el criptosistema de Rabin, que es parecido al RSA, es equivalente a factorizar el mdulo. La factorizacin de enteros equivale a estudiar RSA. Complejidad computacional: La teora de la complejidad computacional trata de clasificar los problemas computacionales de acuerdo con su complejidad, esto se corresponde con la idea intuitiva de complejidad.

Tema 2. Criptografa

Cdigos y Criptografa

87

Factorizacin NFS (Number Field Sieve Criba del cuerpo de nmeros) NFSnet: orca.st.usm.edu/~cwcurry/nfs/nfs.html Factorizacin ECM (Eliptic Curve Method): No sirve para factorizar nmeros tan grandes como el NFS pero tiene ciertas ventajas para ciertos factores. El tiempo del NFS depende del tamao del nmero, no de los factores que lo componen; en cambio ECM encuentra ms fcilmente los factores si stos son ms pequeos. Para romper RSA es mejor el NFS ya que ECM no puede con nmeros de ms de 50 dgitos. ECPNET: www.loira.fr/~zimmerma/records/ecmnet.html Cunningham proyect: www.cerios.purdme.edu/ssw/cum//index.html www.npac.sgr.edu/factoring.html www.utm.edu/research/primes Aqu se pueden encontrar los primos ms grandes que se conocen. P. Ribenbaim: The new book of Prime number records. Springer- Verlay (1995) 1984: Yates Sinkes of the Titanics titanic prime = primo de ms de 1000 dgitos decimales En 1984 se conocan 110 primos titnicos Gigantic primer = primo de ms de 10000 dgitos decimales Primos de Fermat: Fm = 2 2 + 1 Estos nmeros slo son primos hasta m = 5 Primos de Marsenne: 2p-1 (p primo) Para ver si un nmero de esta forma es primo o no se aplica el test de Lucas-Lehmer. www.marsenne.org/prime.htm : GIMPS (Great Internet Marsenne Prime Search) entropia.com/ips
m

Tema 2. Criptografa

Cdigos y Criptografa

88

Mp = 2p 1 1996 M1257787 (Cray T94) (Slawinski & Gage) (378632 dgitos decimales) 1996 M1398269 (P 90 MHZ) (J Aeannengand, Woltman, GIMPS) (420921 dgitos decimales) 1997 M2976221 (P 100 MHz) 1998 M3021377 (P 200 MHz) (909526 dgitos decimales) 1999 M69672593 (P 350 MHz) (Hajratwala) ( 2098960 dgitos decimales) Direcciones sobre criptografa: www.cryptome.org www.comterpone.com (Bruce Schneier : Cryptogam) www.certicon.com (Criptografa de curvas elpticas) www.iec.csic.es/criptonomicon www.kriptopolis.com theory.lcs.mit.edu/~rivest/crypto-security.html UBASIC (Yuji Kida) MPQS (Multiple Polynomial Quadratic Sieve) http://150.93.96.124/~kida ftp://rkmath.rikkyo.ac.jp/pub/ubim www.indigo.ie/~rmscott MIRALCL ( Multiple Precission Integer and Rational C Library) www.panillac.inria.fr/algo/morain www.lix.polytechnique.fr/morain/Prgms/eccp.english.html www.reality.sgi.com/chango/tech/math/prime/merdigit/index.html
f a ,n : Z n Z n f a ,n ( x ) := a x (mod n)

Problema del logaritmo discreto: Dados a, n, y encontrar, si existe, un entero x tal que ax y (mod n). Se piensa que esta funcin es de direccin nica. Esto se usa para alamacenar passwords. Sea G un grupo finito y g G. Sea <g> el subgrupo de G generado por g. Problema del logaritmo discreto: Dado y <g> encontrar un entero x tal que gx = y No hay algoritmos eficientes que premitan calcular esto.

Tema 2. Criptografa

Cdigos y Criptografa

89

DIFFIE HELLMAN EXCHANGE: Se usa el logaritmo discreto para intercambiar claves entre usuarios. La clave es pequea, as no hay problema en transmitirla, no ocurre esto con los mensajes. La principal desventaja de los criptosistemas de clave pblica frente a los de clave privada es la eficiencia, los criptosistemas de clave pblica son varios rdenes de magnitud ms lentos. El DES, p. ej., permite codificar y descodificar a velocidades enormes, si esto se hiciese con el RSA se necesitara mucho ms tiempo de transmisin y ms espacio de almacenamiento. En algunos casos conviene usar un criptosistema de clave privada pero realizando el intercambio de clves mediante un criptisistema de clave pblica. Se propuso utilizar el logaritmo discreto para hacer esto. Sea Fp = Zp = {0, 1, ... p-1} Fp* = Fp {0} = {1,2, ... p-1} Fp* es un grupo para la multiplicacin y es, de hecho, un grupo cclico (exite g Fp* tal que Fp* = <g>). Dados un generador g Fp* y dado y Fp*, hallar x Fp* / gx = y

E l c a n a l e s p b lic o A B

A y B se ponen de acuerdo en un primo grande p (512 bits), as O conoce p, adems, se ponen de acuerdo en un elemento g Fp*. A elige un entero positivo kA, 0 < kA < p, y aproximadamente del orden de p y calcula g k A (mod p ) y esto es lo que le enva a B. B elige un entero positivo kB, 0 < kB < p, y aproximadamente del orden de p y calcula g k B (mod p ) y esto es lo que le enva a A. La clave que van a compartir es:

g k Ak B (mod p ) Fp*

Tema 2. Criptografa

Cdigos y Criptografa

90

A calcula ( g k B calcula ( g k

) )

KA KB

(mod p) = g k Ak B (mod p ) (mod p) = g k Ak B (mod p )

Para que O pueda encontrar la clave secreta debe resolver el problema de DiffieHellman: Dados g , g k A , g k B Fp* encontrar g k Ak B . Se cree que este problema es equivalente al problema del logaritmo discreto que es intratable computacionalmente.

Tema 2. Criptografa

También podría gustarte