Вы находитесь на странице: 1из 18

Introduccin a la Criptografa

Matemtica Discreta Ingeniera Civil Informtica Universidad Tecnolgica de Chile INACAP

Profesora: Monical Sandoval Alumnos: Juan Manuel Goya Nicolas Neracher

~ Mayo de 2013 ~

Matemtica Discreta Introduccin a la Criptografa

Contenido
Conceptos Bsicos ........................................................................................................................... 3 Mtodos Clsicos de Encriptacin .................................................................................................. 3 CRIPTOGRAFA SIMTRICA (CLAVE SECRETA) ............................................................................. 3 Sustitucin: .................................................................................................................................. 3 Transposicin: ............................................................................................................................. 4 Mtodo de Esctala.......................................................................................................................... 4 Mtodo de Polybios ........................................................................................................................ 5 Mtodo de Vigenre ....................................................................................................................... 5 CRIPTOGRAFA ASIMTRICA (CLAVE PBLICA) ............................................................................... 6 FIRMA DIGITAL ................................................................................................................................ 6 Numeros Primos .............................................................................................................................. 7 Mtodo Asimtrico ......................................................................................................................... 9 Criptografa Asimtrica ............................................................................................................... 9 Generacin de claves .................................................................................................................... 17 RSA ................................................................................................................................................ 18 Generacin de claves ................................................................................................................ 18

Neracher Goya

Pgina 2

Matemtica Discreta Introduccin a la Criptografa

Conceptos Bsicos
Criptografa: (Del gr. , oculto, y -grafa). Arte de escribir con clave secreta o de un
modo enigmtico.

Criptografa: Ciencia que estudia la manera de cifrar y descifrar los mensajes para que resulte
imposible conocer su contenido a los que no dispongan de unas claves determinadas. En informtica el uso de la criptografa es muy habitual, utilizndose en comunicaciones y en el almacenamiento de ficheros La criptografa (del griego kryptos, ocultar, y graphos, escribir, literalmente escritura oculta) es el arte o ciencia de cifrar y descifrar informacin utilizando tcnicas que hagan posible el intercambio de mensajes de manera que slo puedan ser ledos por las personas a quienes van dirigidos.

Mtodos Clsicos de Encriptacin

CRIPTOGRAFA SIMTRICA (CLAVE SECRETA)

Es el sistema de cifrado ms antiguo y consiste en que tanto el emisor como el receptor encriptan y desencriptan la informacin con una misma clave k (clave secreta) que ambos comparten. El funcionamiento es muy sencillo: el emisor cifra el mensaje con la clave k y se lo enva al receptor. Este ltimo, que conoce dicha clave, la utiliza para desencriptar la informacin.

Sustitucin:

Consiste en establecer una correspondencia entre las letras del alfabeto en el que est escrito el mensaje original y los elementos de otro conjunto, que puede ser el mismo o distinto alfabeto.

Neracher Goya

Pgina 3

Matemtica Discreta Introduccin a la Criptografa

Transposicin:

Consiste en barajar los smbolos del mensaje original colocndolos en un orden distinto, de manera que el criptograma contenga los mismos elementos del texto claro, pero colocados de tal forma que resulten incomprensibles.

Mtodo de Esctala

Neracher Goya

Pgina 4

Matemtica Discreta Introduccin a la Criptografa

Mtodo de Polybios

Mtodo de Vigenre

Neracher Goya

Pgina 5

Matemtica Discreta Introduccin a la Criptografa

CRIPTOGRAFA ASIMTRICA (CLAVE PBLICA)


En 1976 Diffie y Hellman describieron el primer criptosistema de clave pblica conocido como el cambio de clave Diffie-Hellman. Estos criptosistemas estn basados en propiedades matemticas de los nmeros primos, que permite que cada interlocutor tenga una pareja de claves propias. De esta pareja de claves, una se denomina privada o secreta y la otra, pblica. La clave privada no se transmite nunca y se mantiene secreta. La clave pblica, por el contrario, se puede y se debe poner a disposicin de cualquiera, dado que es imposible deducir la clave privada a partir de la pblica.

La propiedad fundamental de esta pareja de claves es que lo que se cifra con una de estas claves, se descifra con la otra. Esta potente caracterstica asimtrica es la que permite a esta tecnologa servir de base el diseo de sistemas de comunicacin segura.

FIRMA DIGITAL
Los algoritmos de clave pblica tambin se pueden usar para formar firmas digitales. Las firmas digitales autentican la identidad de un remitente (si se fa de la clave pblica de ste) y ayudan a proteger la integridad de los datos.Con una clave pblica generada por Alicia, el remitente de los

Neracher Goya

Pgina 6

Matemtica Discreta Introduccin a la Criptografa datos de Alicia puede comprobar que sta los envi si compara la firma digital de los datos de Alicia y la clave pblica de sta. Para utilizar criptografa de clave pblica con el objeto de firmar digitalmente un mensaje, Alicia aplica primero un algoritmo hash al mensaje para crear una sntesis del mismo. La sntesis del mensaje es una representacin compacta y nica de los datos. Seguidamente, Alicia cifra la sntesis del mensaje con su clave privada para crear su firma personal. Despus de recibir el mensaje y la firma, Roberto descifra esta ltima utilizando la clave pblica de Alicia para recuperar la sntesis del mensaje y enva ste de forma aleatoria mediante el mismo algoritmo hash que utiliz Alicia. Si la sntesis del mensaje que calcula Roberto coincide exactamente con la que ha recibido de Alicia, Roberto puede estar seguro de que el mensaje provino del poseedor de la clave privada y de que no se han modificado los datos. Si Roberto confa en que Alicia es la propietaria de la clave privada, sabe que el mensaje proviene de Alicia. Nota Cualquiera puede comprobar una firma, ya que la clave pblica del remitente es de dominio pblico y normalmente se incluye en el formato de firma digital.Este mtodo no mantiene la confidencialidad del mensaje; para que sea secreto, tambin se debe cifrar.

Numeros Primos
Los nmeros primos son infinitos. supongamos lo contrario y que pn es el mayor nmero primo y sea N=p1*..*pn el producto de todos los nmeros primos hasta pn

tomemos M=N+1, M no es divisible por ningn pi, ya que si lo dividiramos por cualquiera de los p1,..,pn el resto de la divisin sera 1 si M fuera primo como M>pn sera contrario al hecho de que pn es el mayor de los nmeros primos.

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677

Neracher Goya

Pgina 7

Matemtica Discreta Introduccin a la Criptografa 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997

Neracher Goya

Pgina 8

Matemtica Discreta Introduccin a la Criptografa

Mtodo Asimtrico
Criptografa Asimtrica

Secretos. Todos los tenemos. La vida de cualquier persona involucra en algn momento (me atrevera a decir a diario) algn secreto, algo que quiera o tenga que ocultar. Y aunque usted est tentado a decir "no, yo no tengo nada que ocultar", sin embargo, es muy probable que utilice un password si tiene acceso a una computadora, o a recibir correspondencia electrnica, o tiene una tarjeta de crdito, o una mquina de la que saca dinero en efectivo, hasta la combinacin de una caja de seguridad o de un candado comn y corriente. Y ni qu hablar de hacer alguna transaccin por Internet que involucre alguna identificacin personal. Cuntas veces le contaron o ley que hay gente interesada en interceptar datos que usted enva por Internet para usarlos maliciosamente? Cuntas veces dud en enviar, tambin por Internet, el nmero de su documento, o su direccin postal, o el nmero de su tarjeta de crdito o de su cuenta bancaria, por temor a que fueran robados? Cuntas veces pens que hay gente que puede leer el contenido de sus mensajes de correo electrnico sin que usted lo advierta? Cuntas veces oy que, para poder garantizar ciertas condiciones mnimas de seguridad, hace falta usar matemtica? Ahora bien, qu "matemtica" hay que usar? Y cmo? Cun seguro es? Con lo que sigue, pretendo contarle cmo se hace, qu se usa y cun seguros son los mtodos que se aplican. Por supuesto, slo ser una idea y sin el rigor tcnico necesario, pero aspiro a que quien termine de leer el texto cuente con una informacin que no tena previamente. Eleg un camino que quiero compartir con usted, pero necesito pedirle algunas cosas antes: Yo voy a hacer algunas cuentas sencillas: multiplicaciones, divisiones y restas. Verifquelas o cralas, pero advierta que lo que uso son herramientas hiper sencillas. Hace falta que recuerde lo que es un nmero primo. Es decir, nmeros que slo son divisibles por ellos mismos o por el nmero 1. (El nmero 1 no se considera primo .) Por ejemplo, el 2, 3, 5, 7, 11, 13 son primos. En cambio, 4, 9, 15, 16 no lo son. Por ltimo, piense en un nmero entero positivo cualquiera antes de seguir leyendo (distinto de 0 y de 1). Ese nmero que est pensando, o bien es primo, o bien es el producto de nmeros primos. Es decir, cualquier nmero natural es, o bien un nmero primo, o bien se escribe como producto de primos. Por ejemplo, el 11 es primo y listo. El 19 tambin. Pero el 21 no es primo y se escribe como (7 x 3). El nmero 100 tampoco es primo, pero se escribe como (2 x 2 x 5 x 5).

La clave de por qu funciona este mtodo consiste en un par de razones muy interesantes. En principio, si le doy dos nmeros cualesquiera, 3 y 5 por ejemplo, y le digo que los multiplique, la respuesta es obvia: 15. Al revs: si le doy el nmero 15, y le pido que me diga cules son los

Neracher Goya

Pgina 9

Matemtica Discreta Introduccin a la Criptografa factores primos que lo componen (o sea, 3 y 5), tambin es fcil de calcular, porque los nmeros son pequeos.

En cambio, si le diera el nmero 358.566.167 y le dijera que encuentre los dos factores que lo componen... intente y ver que la dificultad es muy grande. La respuesta es que: 18.859 * 19.013 = 358.566.167

Y si le dijera que encuentre los factores primos de: 8.943.587.117

Tardar un poco ms, hasta descubrir que son 62.987 y 141.991. Es decir, lo que quiero comunicar ac es que calcular el producto de dos nmeros es algo sencillo. Tedioso, pero que no ofrece complicaciones. En cambio, encontrar los factores primos que componen un nmero, ms all de que tambin sea tedioso, es virtualmente imposible si los nmeros son muy grandes. Y sta es la clave del mtodo. Las computadoras ms rpidas que se usan hoy tardaran ms de 100.000 aos en encontrar los factores que componen nmeros de ms de 400 dgitos (que son los que se utilizan). En consecuencia, no se trata de que el mtodo que le voy a contar sea inviolable. De hecho, no es as. Slo que con la metodologa que se conoce hasta hoy, encontrar esos nmeros es virtualmente imposible. El tiempo dir si aparece una nueva manera de factorizar nmeros en sus componentes primos, que no sea usando las herramientas actuales. Si as fuere, habra que revisar todo, porque se transformara en vulnerable. Como es archiconocido, los aliados en la Segunda Guerra Mundial lograron decodificar los mensajes de los alemanes y de esa forma lograron invadir Normanda en 1944 y, a partir de ah, elaborar el triunfo final. Es decir, tratar de encriptar mensajes es un tema de alta sensibilidad. Sin embargo, en 1976, dos cientficos norteamericanos, Whitfield Diffie y Martin Hellmand, de la Universidad de Stanford, introdujeron una idea revolucionaria: "la clave pblica". Qu quiere decir esto? Hasta ese momento, se operaba de la siguiente manera: tanto el emisor como el receptor tenan una llave secreta. El emisor la usaba para cerrar el mensaje (encriptarlo) y el receptor, para abrirlo (desencriptarlo). La idea de Diffie y Hellmand fue usar algunos teoremas conocidos de Teora de nmeros para lograr que una de las claves fuera pblica. Es decir, ya no importara que alguien interceptara el mensaje, sino que, adems, cualquiera podra encriptar lo que quisiera. Usando el mtodo de Diffie y Hellmand, la persona que quiere encriptar un mensaje puede publicar en el diario o en las pginas amarillas, o donde se le ocurra, cul es la clave que usa. Pero lo extraordinario del descubrimiento es que, por ms que uno tenga esos datos, no le Neracher Goya Pgina 10

Matemtica Discreta Introduccin a la Criptografa sirven para decodificarlo! Eso s: el receptor del mensaje s tiene una clave privada que es la que usar para recuperar el mensaje original. En resumen: el emisor encripta el mensaje usando datos que todo el mundo puede conocer y luego lo enva. El receptor lo desencripta usando la clave privada. Lo notable es que la parte que falta, o sea, la clave privada, es inhallable para cualquier otra persona que no sea el propio receptor, quien, de paso, no es que la encuentra sino que la tiene en su poder de antemano. De todas formas, a este proceso le faltaba algo. En teora, funcionaba todo perfecto, pero cmo hacer para conseguir una clave que fuera tan privada que nadie pudiera encontrarla? En 1977, tres investigadores del MIT (Massachusetts Institute of Technology), Rivest, Shamir y Adleman, elaboraron un algoritmo que resolvi el problema. El algoritmo se conoce con el nombre de RSA (por las iniciales de los autores). Los tres cientficos fundaron la compaa RSA Data Security, con la que se transformaron casi instantneamente en millonarios, luego de haber patentado el proceso que an hoy es el que se usa en todas partes. De hecho, el propio Departamento de Defensa de los Estados Unidos interviene en el control de la empresa, ya que la clave es tan inviolable que permite mandar mensajes que nadie puede decodificar, poniendo, supuestamente, en riesgo la seguridad de un pas. Como dije antes, la rama de la matemtica que interviene en este proceso se llama Teora de nmeros. Lo curioso es que el ingls Godfrey H. Hardy, uno de los matemticos ms famosos del siglo XX, escribi: "Prefiero considerar a mi campo de investigacin como matemtica pura, ya que nadie ha descubierto an ninguna utilidad para la guerra aplicando la Teora de nmeros o la relatividad, y me parece muy raro que esto suceda en los prximos aos": Hardy fue un gran opositor (en aquella poca) de toda guerra y es reconocido como tal; de todas formas, su prediccin fue claramente errnea. No hace falta comentar cun devastador fue para la humanidad el desarrollo de armas nucleares y, por otro lado, la Teora de nmeros ha sido decisiva en los temas de criptografa. Pero lo interesante del comentario es que, lo que en ese momento era considerado un ejercicio intelectual, termin siendo la herramienta clave para el desarrollo de la criptografa moderna.

Una breve explicacin -sin entrar en los detalles tcnicos- de cmo funciona el mecanismo. Le pido que por favor trate de seguirme ahora, porque es la parte ms relevante de toda esta historia. Si siente que se pierde, no se preocupe. Siga leyendo hasta que se sienta cmodo con el mtodo y ver que, en principio, es sencillo de entender cmo funciona. Y eso es lo que pretendo hacer con lo que sigue.

Neracher Goya

Pgina 11

Matemtica Discreta Introduccin a la Criptografa Supongamos que yo quiero mandarle un mensaje a usted. Lo primero que tengo que hacer es transformar el mensaje en un nmero. Cmo hacer esto? Por ejemplo, adjudicndole a cada letra un par de dgitos. As, si uno asigna a cada letra del alfabeto un nmero, tenemos:

Entonces, si el mensaje fuera AMOR corresponde poner el siguiente nmero: 01131619

De esa forma, a cada mensaje escrito en palabras le corresponde un nmero. Por supuesto, cuanto ms largo es el mensaje ms grande es el nmero. Pero no interesa: lo importante es que el mensaje ahora se transform en un nmero, que llamaremos M. Ahora empieza el proceso de encriptacin y desencriptacin. En realidad, salvo que uno tenga mucho tiempo y nada que hacer con l, conviene usar una calculadora o una computadora, pero de todas formas lo que me interesa con este texto es contar -sin entrar en tecnicismos- cmo se hace. Empiezo con un plan de lo que voy a hacer: Busco el mensaje que quiero mandar. Digamos, para fijar las ideas, que quiero enviar el nmero 4. Busco la clave pblica que voy a usar para encriptar el mensaje. En este ejemplo, consiste de dos nmeros: 33 y 7. Usted (el receptor) conoce ya su clave privada, que tambin consiste en dos nmeros: 33 y 3 (note que al 33 lo usamos los dos: usted y yo).

Con estos datos, yo hago lo siguiente: PRIMER PASO: Multiplico el mensaje, el nmero 4, siete veces por s mismo (es decir, el mensaje lo elevo a uno de los nmeros de mi clave): 4 7 = 16.384

Neracher Goya

Pgina 12

Matemtica Discreta Introduccin a la Criptografa SEGUNDO PASO:

Divido el resultado por 33 (que es el segundo nmero de mi clave) y me fijo cunto sobra o cul es el resto. 16.384 = 496 * 33 + 16

Ac hago una pausa. Este nmero, 16, es el mensaje codificado. Esto es lo que voy a mandar y no me interesa que nadie lo intercepte. O sea, hasta ac, us cuatro nmeros: El mensaje: 4 El primer nmero de la clave: 7 El segundo nmero de la clave: 33 Y con ellos fabriqu el cuarto nmero: 16.

Ahora, usted recibe el mensaje encriptado, que es el nmero 16. Qu hace entonces? Bueno, usa su clave, que consiste no slo en el 33, sino tambin en el nmero 3 (y este nmero s que es privado! Slo usted lo conoce). Y hace lo siguiente:

TERCER PASO: Multiplica el mensaje por s mismo 3 veces. Es decir, eleva el mensaje que recibi al cubo, o sea, 16 3 = 4.096

CUARTO PASO (Y FINAL): Divide el resultado, o sea 4.096, otra vez por 33 y calcula cunto sobra: 4.096 = 124 * 33 + 4

Qu pas? Lo notable es que ahora, al hacer este proceso, usted descubre el mensaje que yo le mand y que era el nmero 4!

Neracher Goya

Pgina 13

Matemtica Discreta Introduccin a la Criptografa De hecho, lo invito a que elija el nmero que quiera como mensaje, y repita el procedimiento hasta convencerse de que no importa cul sea el nmero original, luego de los cuatro pasos que figuran ms arriba, usted lo va a redescubrir. Un ltimo ejemplo con claves diferentes, de manera tal que podamos verificar que todo lo que hice hasta ac est claro:

Mensaje M = 2 Clave pblica: 85 y 13 Clave privada: 85 y 5

Primer paso: 2 13 = 8.192 Segundo paso: 8.192=85 * 96 + 32

Luego, el mensaje encriptado es 32.

Tercer paso: 32 5 = 33.554.432 Cuarto paso: 33.554.432 = 394.758 * 85 + 2

Como se ve, entonces, uno vuelve a recuperar el nmero 2, el mensaje original. Una vez que entendi estos ejemplos, avanzo un poco ms. En general, el mtodo consiste en lo siguiente (ahora voy a usar letras para indicar tanto los mensajes como las distintas claves): Datos:

Neracher Goya

Pgina 14

Matemtica Discreta Introduccin a la Criptografa Mensaje = M Clave pblica = N y e Clave privada = N y d (se usan las letras e por potencia que sirva para encriptar y d para desencriptar).

Uno hace lo siguiente, entonces: Primer paso: calcula M d Segundo paso: divide el resultado por N y calcula el resto, que llamo R. M d =q * N+ R

En consecuencia, el mensaje encriptado ahora es R. El receptor recibe el nmero R y comienza a desencriptarlo.

Tercer paso: calcula R d

Cuarto paso: divide el resultado por N y calcula el resto, que tiene que ser M. R d =q"* N+ M El nmero N se elige de manera tal que sea muy grande. Qu quiere decir grande? Que tenga ms de 400 (cuatrocientos) dgitos. Para tener en claro cun enorme es un nmero as, basta pensar que todo el universo est compuesto por 2 300 tomos, o sea, aproximadamente un 1 seguido por 90 ceros. Ahora bien: se elige este nmero N de modo que sea el producto de slo dos nmeros primos, cada uno de aproximadamente doscientos dgitos. Digamos que N se escribe como el producto, entonces, de dos nmeros primos: p y q. N=p*q Este nmero N es el que va a formar parte de las claves pblica y privada. Ahora bien, uno se fabrica el siguiente nmero: (p - 1) * (q - 1)+1

Neracher Goya

Pgina 15

Matemtica Discreta Introduccin a la Criptografa ste tambin es un nmero muy grande, y cuando uno elige el nmero N tiene en cuenta que este otro nmero tiene que descomponerse tambin como producto de slo dos primos. Y justamente, esos dos primos son los que llam ms arriba e y d. O sea, (p - 1) * (q - 1) + 1 = e * d Estos dos nmeros, e y d, son los que completan las claves pblica y privada. Como expuse ms arriba, los nmeros que son pblicos son N y tambin e. Y la clave privada se compone del nmero N y del nmero d. Lo increble (en apariencia) y maravilloso de este procedimiento es que el nmero que resulta como resto es justamente M, el mensaje original! En definitiva, la encriptacin en la que el mundo de hoy confa depende de un par de resultados de la Teora de nmeros. La inviolabilidad del sistema radica en que -con los mtodos actuales- es imposible factorizar un nmero descubriendo en un tiempo razonable (o sea, no medido en siglos) cules son los primos que lo componen. Hasta aqu estamos bien. El da que alguien descubra cmo hacerlo, los sistemas colapsarn y habr que empezar de nuevo. Pero por ahora estamos bien.

Neracher Goya

Pgina 16

Matemtica Discreta Introduccin a la Criptografa

Generacin de claves
1. Cada usuario elige dos nmeros primos distintos y . o Por motivos de seguridad, estos nmeros deben escogerse de forma aleatoria y deben tener una longitud en bits parecida. Se pueden hallar primos fcilmente mediante test de primalidad. 2. Se calcula . o se usa como el mdulo para ambas claves, pblica y privada. 3. Se calcula , donde es la funcin de Euler.

4. Se escoge un entero positivo menor que , que sea coprimo con . o se da a conocer como el exponente de la clave pblica. o Si se escoge un con una suma encadenada corta, el cifrado ser ms efectivo. Un exponente muy pequeo (p. ej. ) podra suponer un riesgo para la seguridad.1 5. Se determina un (mediante aritmtica modular) que satisfaga la congruencia , es decir, que
o o o

sea el multiplicador modular inverso de es dividido exactamente por

Expresado

de

otra

manera,

. Esto suele calcularse mediante el algoritmo de Euclides extendido. se guarda como el exponente de la clave privada.

La clave pblica es es Nota:

, esto es, el mdulo y el exponente de cifrado. La clave privada

, esto es, el mdulo y el exponente de descifrado, que debe mantenerse en secreto.

PKCS#1 v2.0 y PKCS#1 v2.1 se especifican mediante la funcin de Carmichael en vez de la funcin de Euler, donde indica el mnimo comn mltiplo. Para una mayor eficiencia los siguientes valores se calculan de antemano y se almacenan como parte de la clave privada: o y : los primos para la generacin de las claves,
o o

y .

Neracher Goya

Pgina 17

Matemtica Discreta Introduccin a la Criptografa

RSA
Generacin de claves

Entrada: Parmetro de seguridad k Pasos: 1. Genera al azar primos p y q de k bits de largo, i.e., 2k-1 E p,q < 2k 2. Calcula n=p*q y H(n)=(p-1)*(q-1) 3. Selecciona al azar e tal que e y H(n) son primos relativos. 4. Calcula 0< d < H(n) tal que 1 = e*d mod H(n).

Salida: 1. Clave pblica: e y n 2. Clave privada (puerta secreta): d

Supuesto de RSA

M -> Me mod n es una funcin unidireccional con puerta secreta d

OJO: La existencia de funciones unidireccionales es una conjetura que no se ha demostrado formalmente.

Si un adversario puede factorizar n, entonces puede calcular H(n) y determinar d a partir de e, i.e., puede quebrar RSA, es decir el supuesto de RSA sera FALSO

Neracher Goya

Pgina 18

Вам также может понравиться