Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la...

60
Lucía Ayestarán Garralda Jesús Antonio Laliena Clemente Facultad de Ciencia y Tecnología Grado en Matemáticas 2015-2016 Título Director/es Facultad Titulación Departamento TRABAJO FIN DE GRADO Curso Académico Introducción a la criptografía Autor/es

Transcript of Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la...

Page 1: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Lucía Ayestarán Garralda

Jesús Antonio Laliena Clemente

Facultad de Ciencia y Tecnología

Grado en Matemáticas

2015-2016

Título

Director/es

Facultad

Titulación

Departamento

TRABAJO FIN DE GRADO

Curso Académico

Introducción a la criptografía

Autor/es

Page 2: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

© El autor© Universidad de La Rioja, Servicio de Publicaciones, 2016

publicaciones.unirioja.esE-mail: [email protected]

Introducción a la criptografía, trabajo fin de gradode Lucía Ayestarán Garralda, dirigido por Jesús Antonio Laliena Clemente (publicado por

la Universidad de La Rioja), se difunde bajo una LicenciaCreative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.

Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a lostitulares del copyright.

Page 3: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos
Page 4: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Resumen.

El hombre ha experimentado la necesidad de ocultar su informacion confi-dencial de oıdos y ojos indiscretos desde que comenzo a comunicarse con sussemejantes. Ocultamos para preservar nuestra intimidad, esconder nuestros pla-nes mas malvados o sorprender gratamente, o, simplemente, por diversion. Heaquı el origen de la criptografıa.

Por otro lado, descubrir es algo que, parece que por naturaleza, ha excitadosiempre al ser humano. O, mejor aun, descubrir algo que compromete de algunmodo a alguien que tiene especial interes en mantenerlo oculto. He aquı el origendel criptoanalisis.

Este trabajo pretende introducir al lector en el mundo de las cifras pero,sobre todo, se centra en estudiar el papel fundamental de las matematicas enlas mismas. Estas van cobrando importancia a medida que nos acercamos a laactualidad. A lo largo de toda su historia, la criptografıa se ha vuelto mas com-pleja, mas segura y mas rapida gracias, en gran medida, al trabajo de grandesmatematicos. Pero ellos mismos tambien la han vuelto insegura y peligrosa. Laeterna carrera entre creadores de cifras y descifradores ha marcado en variasocasiones el curso de la historia. Dado que es un tema extenso y este trabajono permite mas que profundizar en aspectos concretos, se centra en la implica-cion de las matematicas en la criptografıa de clave publica, en concreto en lossistemas RSA y ElGamal.

Page 5: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos
Page 6: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Abstract.

Man has experienced the need to hide confidential information from pryingeyes and ears since he started to communicate with his fellows. We hide topreserve our privacy, secrete our wickedest plans or give someone a pleasantsurprise, or simply for fun. Here is the origin of cryptography.

On the other hand, it seems that finding out things has always excited thehuman being. Or, even better, discovering something that compromises someonewho has a special interest in keeping it hidden. Here is the origin of cryptoa-nalysis.

This paper aims to introduce the reader in the world of ciphers, but, all on,focuses on studying the fundamental role of mathematics in them. These aregaining importance as we approach today. Throughout its history, cryptographyhas become more complex, faster and more secure thanks largely to the work ofgreat mathematicians. But they have also become it unsafe and dangerous. Theeternal race between creators of figures and code breakers has marked the courseof history on several occasions. Since it is an extensive subject and this workallows to go in depth just in some specific aspects, it focuses on the involvementof math in public key cryptography, particularly in the RSA and ElGamal cry-ptosistems.

Page 7: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos
Page 8: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Indice

1. Introduccion 3

2. Nociones historicas: criptografıa de clave privada 5

3. Introduccion a la criptografıa de clave publica: RSA 113.1. Nociones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.1. El algoritmo de Euclides . . . . . . . . . . . . . . . . . . . 123.1.2. Teorema Chino del Resto . . . . . . . . . . . . . . . . . . 153.1.3. Otros resultados utiles . . . . . . . . . . . . . . . . . . . . 16

3.2. Descripcion del sistema RSA . . . . . . . . . . . . . . . . . . . . 173.3. Implementando RSA . . . . . . . . . . . . . . . . . . . . . . . . . 193.4. Ataque a RSA: factorizacion del modulo n . . . . . . . . . . . . . 203.5. Test de primalidad . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.5.1. Algoritmo de Solovay-Strassen . . . . . . . . . . . . . . . 253.5.2. El algoritmo de Miller-Rabin . . . . . . . . . . . . . . . . 29

4. Sistema ElGamal y logaritmos discretos 314.1. Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2. El problema del logaritmo discreto . . . . . . . . . . . . . . . . . 33

4.2.1. Algoritmo de Shanks: Baby step-Giant step . . . . . . . . 334.2.2. Algoritmo de Pohlig-Hellman . . . . . . . . . . . . . . . . 344.2.3. Algoritmo de calculo de ındices . . . . . . . . . . . . . . . 37

5. Otros grupos para la construccion de ElGamal 415.1. Cuerpos de Galois . . . . . . . . . . . . . . . . . . . . . . . . . . 425.2. Curvas elıpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1

Page 9: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

2

Page 10: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

1. Introduccion

Desde la epoca de los antiguos egipcios hasta hoy en dıa, la criptografıa hasido un arma importante a la hora de garantizar la privacidad en una comuni-cacion. Aunque antiguamente y a lo largo de practicamente toda su historia lacriptografıa haya sido utilizada como una de las armas intelectuales mas poten-tes en el campo militar, que ha motivado intensamente su desarrollo acelerado,sobretodo en la primera y la segunda guerra mundial, desde finales del siglo XXes fundamental para proporcionar privacidad en las comunicaciones digitalesque tanto utilizamos todos los dıas. Tanto es ası, que para la NSA (Agencia na-cional de seguridad Estadounidense) la comunicacion segura es “una amenaza”,ya que, por ejemplo, organizaciones terroristas pueden comunicarse de manerasegura sin ningun problema.

Como ya hemos comentado, la criptografıa esta presente en nuestro dıa dıa,sobretodo en las comunicaciones electronicas. HTTPS (Hypertext Transfer Pro-tocol Secure), el protocolo que se utiliza en internet para garantizar la seguridaden las operaciones de comercio electronico, utiliza un cifrado basado en el pro-tocolo criptografico1 TLS (Transport Layer Security). TLS utiliza criptografıaasimetrica (clave publica) para autentificar a la contraparte con quien se estancomunicando e intercambiar la clave simetrica. Esta sesion es luego usada pa-ra cifrar el flujo de datos entre las partes con un cifrado simetrico. Entre losposibles algoritmos de clave publica que utiliza se veran en este trabajo: el in-tercambio de claves de Diffie-Hellman y el sistema RSA. Entre los algoritmosde clave privada que utiliza veremos: DES (inseguro) y AES (uso generalizado).

Sin embargo, aunque muchas de nuestras comunicaciones deberıan ser, enprincipio, seguras, la propia NSA es probablemente el riesgo mas grave para laseguridad de las comunicaciones. Este hecho se desvelo cuando los datos acercade la vigilancia mundial2 empezaron a publicarse confirmando temores previosmuy extendidos en la comunidad informatica. Estos papeles muestran que laNSA (utilizando probablemente una cantidad enorme de recursos) es capaz deromper HTTPS. Este tema se sale del objetivo de este trabajo, pero convienerecordar que la mayorıa de las veces transmitimos informacion confidencial deforma no del todo segura.

El trabajo comienza haciendo una breve introduccion a la criptografıa declave privada, desde los metodos criptograficos mas clasicos hasta estandares

1Un protocolo criptografico o protocolo de seguridad (tambien llamado protocolo de ci-frado) es un protocolo abstracto o concreto que realiza funciones relacionadas con la seguridad,aplicando metodos criptograficos. Describe la forma en que un algoritmo debe usarse.

2Los datos acerca de la vigilancia mundial son una serie de revelaciones sacadas a la luzpor la prensa internacional entre 2013 y 2015, que demuestran la vigilancia que principalmentelas agencias de inteligencia de Estados Unidos, en colaboracion con otros paıses aliados, hanestado ejerciendo de manera masiva sobre la poblacion mundial. La informacion salio a la luzgracias al excontratista de la NSA y la CIA, Edward Snowden.

3

Page 11: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

adoptados por la NSA como los sistemas DES y AES. Pero los cifrados de claveprivada requieren que emisor y receptor compartan una clave, y aquı es dondesurge el problema de la distribucion de claves, que se convierte en un verdade-ro problema sobretodo cuando, en tiempos de guerra, se cifraban millones demensajes cada dıa. Como solucion a este asunto surge la criptografıa de cla-ve publica, presentada por primera vez por los matematicos Whitfield Diffie yMartin Hellman en 1976, que no requiere de ninguna clave compartida, si node funciones de gran interes matematico: las funciones de un solo sentido. Sonfunciones faciles de evaluar, pero muy difıciles de invertir. He aquı el motivodel gran interes por el problema del logaritmo discreto, o la factorizacion denumeros enormes.

Dentro de la criptografıa de clave publica, en la que se centra este trabajo,hablaremos de los criptosistemas RSA (capıtulo 3) y ElGamal (capıtulos 4 y 5).En concreto, sobre RSA nos centraremos en su descripcion (seccion 3.2.), en elataque mas obvio: la factorizacion de un entero producto de dos primos enormes(seccion 3.4.), y en como se hace hoy en dıa para hallar dichos primos (seccion3.5.). Sobre ElGamal veremos tambien su descripcion (seccion 4.1.), el ataqueque consiste en intentar hallar un logaritmo discreto en concreto y los metodosmas utilizados para ello (seccion 4.2.). Veremos tambien la generalizacion delsistema ElGamal cuando no usamos Zp en su implementacion, sino otros gruposde gran interes, como son, por ejemplo, las curvas elıpticas hoy en dıa (capıtulo5). Se ha escogido el criptosistema RSA por ser el primer criptosistema deter-minante en la criptografıa de clave publica. Y el sistema de ElGamal, aunquegeneralmente no se utiliza de forma directa, ya que la velocidad de cifrado yautenticacion es inferior a la obtenida con RSA, se ha escogido por ser de granimportancia en el desarrollo del DSS (Digital Signature Standard), del NIST(National Institute of Standards and Technology) estadounidense.

El trabajo se desarrolla en gran parte a partir del libro Cryptography: Theoryand Practice de Douglas R. Stinson (1995). Parte del capıtulo 2 surge de la lec-tura del bestseller de Simon Singh Los codigos secretos (1999). Ademas, tambiense han consultado libros y artıculos de, entre otros, MSRI Publications (edito-rial Cambridge University Press), la revista IEEE Transactions on InformationTheory, y varias conferencias a nivel internacional como la IEEE Symposium onFoundations of Computer Science (FOCS) o la ACM Conference on Computerand Communications Security (CSS).

El objetivo fundamental de la criptografıa es permitir que dos personas, alas que nos referiremos a lo largo de este trabajo como Alicia y Bob, puedancomunicarse a traves de un canal inseguro de tal manera que un oponente,Oscar, no pueda entender lo que se ha dicho. Este canal puede ser una lıneade telefono o una red de computadores, por ejemplo. La informacion que Aliciadesea enviar a Bob, que llamamos “texto claro”, puede ser un texto en espanol,datos numericos, o cualquier otra cosa.

4

Page 12: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

2. Nociones historicas: criptografıa de clave pri-vada

Desde que escribe, el ser humano ha sentido la necesidad de ocultar susmensajes a terceras personas en ciertas ocasiones. Antiguamente, sus tecnicasse basaban simplemente en esconderlos (lo que llaman seguridad por oscuridadu ocultacion). Mas adelante, se da cuenta de que esconder un mensaje no eraun buen metodo para evitar que su contenido fuera descubierto, ya que queel enemigo lo encontrara no era tan difıcil muchas veces, o correr el riesgo erademasiado peligroso. Ası que desarrolla una nueva tecnica: camuflar el contenidode tal manera que solo el receptor directo del mensaje fuera capaz de entenderlo.Esto es a lo que llamamos cifrar un mensaje, y ha perdurado hasta hoy en dıa.Para llevar a cabo esta nueva practica, hace falta que ambos, emisor y receptor,establezcan un sistema bien definido.

Definicion 2.1. Un criptosistema es una 5-tupla (P, C,K, E ,D) satisfaciendolas siguientes condiciones:

1. P es un conjunto finito de posibles textos claros

2. C es un conjunto finito de posibles textos oscuros

3. K, el espacio de claves, es un conjunto finito de posibles claves

4. Para cada K ∈ K, existe una regla de encriptacion eK ∈ E y unacorrespondiente regla de descifrado dK ∈ D. Cada eK : P → C ydK : C → P son funciones tales que dK(eK(x)) = x para todo texto clarox ∈ P.

Figura 1: La escıtala esparta-na. El texto solo podıa leerse en-rollando la tira en una escitala conlas mismas dimensiones que la uti-lizada para escribir el texto. Des-enrrollada la tira, el texto no tenıaningun sentido.

Los metodos clasicos se clasifican principalmente en metodos por sustitu-cion y por transposicion. Como su propio nombre indica, los de sustitucionsustituıan cada letra del texto claro por otra diferente (siguiendo diferentes cri-terios) para formar el texto oscuro, mientras que los de transposicion consistıanen desordenar el texto claro.

Ya los antiguos egipcios usaron metodos criptograficos. Por ejemplo, los sa-cerdotes egipcios utilizaron la escritura hieratica (jeroglıfica) que era claramenteincomprensible para el resto de la poblacion. Los antiguos babilonios tambienutilizaron metodos criptograficos en su escritura cuneiforme. El primer caso cla-ro de uso de metodos criptograficos se dio durante la guerra entre Atenas yEsparta: con la escıtala los gobernantes de Esparta transmitieron, con eficacia,sus instrucciones secretas a los generales de su ejercito durante las campanasmilitares. Se trataba de un palo o baston en el cual se enrollaba en espiral unatira de cuero. Sobre esa tira se escribıa el mensaje en columnas paralelas al ejedel palo. La tira desenrollada mostraba un texto sin relacion aparente con eltexto inicial, pero que podıa leerse volviendo a enrollar la tira sobre un palo delmismo diametro que el primero.

En los tiempos de la Roma Imperial se usaba el cifrario del Cesar, llamadoası porque era el procedimiento que empleaba Julio Cesar para enviar mensajes

5

Page 13: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

secretos a sus legiones, y es uno de los algoritmos criptograficos mas simples. Esun algoritmo de sustitucion, su cifrado consistıa simplemente en sustituir unaletra por la situada tres lugares mas adelante en el alfabeto; esto es, la A setransformaba en D, la B en E y ası sucesivamente hasta que la Z se convertıaen C (hoy en dıa, cualquier alfabeto que este codificado desplazando las letrasdel alfabeto cualquier cantidad de posiciones se llama “cifrado de Cesar”, auncuando la letra inicial sea diferente de la D).

Figura 2: Grafico mostrando lafrecuencia de cada letra del alfa-beto espanol. Analizando las fre-cuencias de las letras en un tex-to espanol cifrado y comparandolascon estas frecuencias conseguıandescifrar textos cifrados mediantela sustitucion.

La sustitucion monoalfabetica (en la que cada letra del alfabeto se identi-fica con otra distinta durante todo el texto) fue el procedimiento dominante a lolargo del primer milenio de nuestra era. Por esa epoca, muchos estudiosos consi-deraban a la cifra de sustitucion como indescifrable. Sin embargo, en la ciudadde Bagdad se produjo el milagro del desciframiento. El artıfice fue el sabio arabeAbu Yusuf Yaqub ibn Ishaq al-Sabbah Al-Kindi (801-873), mas conocido comoAl-Kindi, un importante filosofo arabe y un estudioso de las Ciencias, autor deunos 300 libros sobre medicina, matematicas, linguıstica, musica, etc. La tecnicaconsistıa en tomar un texto cualquiera escrito en el mismo idioma que el textoclaro y analizar la frecuencia de las letras del alfabeto. Luego, compararlas conlas frecuencias de las letras del texto cifrado, e identificar la mas frecuente con lamas frecuente en el texto cifrado, la segunda mas frecuente con la segunda masfrecuente en el texto cifrado, y ası sucesivamente (tecnica conocida comunmentecomo analisis de frecuencias).

El frances Blaise de Vigenere, en el siglo XVI, desarrollo la teorıa de la crip-tologıa polialfabetica, por esta razon su nombre ha acabado asociado con unode los metodos mas famosos de sustitucion polialfabetica. Lo que hoy se deno-mina “tablero de Vigenere” consiste en una disposicion de letras que contieneen orden los 26 alfabetos de Cesar. Se procede de la siguiente manera:

a) Se busca una palabra clave facil de recordar.

b) Se escribe la palabra debajo del texto en claro, repitiendose tantas vecescomo sea necesario.

c) Cada letra del texto en claro se codifica con el alfabeto de la tabla marcadopor la letra inferior, o sea, la letra de la clave que corresponde.

Veamos un ejemplo para ilustrarlo mejor:

Ejemplo 2.2. Supongamos que queremos cifrar el mensaje: “Mensaje secreto”y escogemos la clave “TFGLUCIA”. Procedemos escribiendo la clave encima deltexto claro tantas veces hasta que todas las letras del mensaje queden cubiertas.

clave −→ T F G L U C I A T F G L U Cmensaje −→ M E N S A J E S E C R E T Otexto cifrado −→ F J T D U L M S X H X P N Q

Como la primera letra del mensaje, la M, tiene encima una T, se sustituye enel texto cifrado por la letra correspondiente a la M segun el alfabeto de la lineaque comienza por T, y ası sucesivamente. En el cuadro Vigenere de abajo hemos

6

Page 14: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

marcado donde se encuentran las tres primeras letras del texto cifrado (en rojo,azul y verde, respectivamente).El destinatario del mensaje podra descifrarlo apartir de la clave utilizando el proceso inverso.

Enigma

Como poco a poco todos los metodos criptograficos que van surgiendo alo largo de la Historia son rotos por los descifradores, los criptografos se venobligados a abandonar el lapiz y el papel, y a sacar partido de la tecnologıamas avanzada para codificar mensajes. La primera maquina criptografica es eldisco de cifras, inventado en el siglo XV por el arquitecto italiano Leon Alberti,uno de los padres de la cifra polialfabetica. No hablaremos del disco de cifras,que tenıa un funcionamiento muy simple, si no de su sucesor quinientos anosdespues, la famosa maquina Enigma, que tanta repercusion tuvo en el desarrollode la segunda guerra mundial y se convirtio en el mas temible sistema de codi-ficacion de la Historia. Fue inventada en 1918 por el inventor aleman ArthurScherbius y su fama se debe a haber sido adoptada por las fuerzas militaresde Alemania desde 1930.

Se sale del objetivo de este trabajo explicar detalladamente el funcionamien-to de la Enigma, ası que simplemente diremos que constaba, inicialmente, de

7

Page 15: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

tres modificadores y un clavijero dispuestos de manera arbitraria por el cifra-dor, obteniendo aproximadamente 1016 claves posibles. El esfuerzo que rompioel cifrado aleman empezo en 1929 cuando los polacos interceptaron una maqui-na Enigma enviada de Berlın a Varsovia y equivocadamente no protegida comoequipaje diplomatico. Un joven matematico polaco, Marian Rejewski, hizo

Figura 3: La maquina Enigmaoriginal. Disponıa de un mecanis-mo de cifrado rotatorio, que per-mitıa usarla tanto para cifrar comopara descifrar mensajes. Su facili-dad de manejo y supuesta inviola-bilidad fueron las principales razo-nes para su amplio uso por partede las fuerzas armadas alemanas.

uno de los mayores descubrimientos significativos en la historia del criptoanali-sis combinando tecnicas fundamentales de matematicas y estadıstica para des-cifrar los mensajes cifrados con la Enigma original. Sin embargo, los alemanesmejoraron su maquina y es en Bletchley Park donde matematicos y criptografosbritanicos, entre ellos Alan Turing, jugadores de ajedrez y bridge y fanaticosde los crucigramas, se enfrentaron a los problemas presentados por las nuevasvariaciones, y encontraron medios de quebrar muchas de ellas con la ayuda delos metodos polacos usados anteriormente.

DES

En 1972, tras terminar un estudio sobre las necesidades del gobierno en ma-teria de seguridad informatica, la autoridad de estandares estadounidense NBS(National Bureau of Standards) — ahora rebautizado NIST (National Instituteof Standards and Technology) — concluyo en la necesidad de un estandar anivel gubernamental para cifrar informacion confidencial. En consecuencia, el15 de mayo de 1973, tras consultar con la NSA (National Security Agency), elNBS solicito propuestas para un algoritmo que cumpliera rigurosos criterios dediseno. IBM presento un candidato que fue considerado aceptable, un algoritmodesarrollado durante el periodo 1973–1974 basado en otro anterior, el algoritmoLucifer de Horst Feistel. El equipo de IBM dedicado al diseno y analisis del al-goritmo estaba formado por Feistel, Walter Tuchman, Don Coppersmith, AlanConheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz,Lynn Smith, y Bryant Tuckerman. El 17 de marzo de 1975, la propuesta deDES fue publicada en el Registro Federal.

Antes de presentar el algoritmo, clasificamos los algoritmos criptograficos endos grandes bloques:

- Cifrados de flujo: La idea basica del cifrado de flujo es dividir el texto enbloques pequenos, de un bit o un byte de largo, y codificar cada bloque depen-diendo de muchos bloques anteriores. El cifrado de flujo utiliza una clave decodificacion diferente, un valor que debe ser alimentado en el algoritmo, paracada bit o byte.

- Cifrados de bloque: La idea es dividir el texto en bloques relativamentelargos, normalmente de 64 o 128 bits, y codificar cada bloque por separado. Seutiliza la misma clave para todos los bloques.

El algoritmo DES cifra por flujo. La estructura basica del algoritmo aparecerepresentada en la Figura 4: hay 16 fases identicas de proceso, denominadasrondas. Tambien hay una permutacion inicial y final denominadas PI y PF, queson funciones inversas entre sı, por lo que no son criptograficamente significa-

8

Page 16: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

tivas, pero se incluyeron para facilitar la carga y descarga de bloques sobre elhardware de mediados de los 70. Antes de las rondas, el bloque es dividido endos mitades de 32 bits que son procesadas alternativamente. Este entrecruza-miento se conoce como esquema Feistel.

La estructura de Feistel asegura que el cifrado y el descifrado sean proce-sos muy similares (la unica diferencia es que las subclaves se aplican en ordeninverso cuando desciframos), lo que simplifica enormemente la implementacion.El sımbolo rojo “

⊕” representa la operacion OR exclusivo (XOR). La funcion

Figura 4: La estructura generalde Feistel en DES.

F mezcla la mitad del bloque con parte de la clave. La salida de la funcionF se combina entonces con la otra mitad del bloque, y los bloques son inter-cambiados antes de la siguiente ronda. Tras la ultima ronda, las mitades no seintercambian; esta es una caracterıstica de la estructura de Feistel que hace queel cifrado y el descifrado sean procesos parecidos.

La funcion F opera sobre medio bloque (32 bits) cada vez y consta de cuatropasos:

1. Expansion: la mitad del bloque de 32 bits se expande a 48 bits duplicandoalgunos de los bits.

2. Mezcla: el resultado se combina con una subclave utilizando una operacionXOR. Dieciseis subclaves,una para cada ronda, se derivan de la clave inicialmediante una generacion de subclaves que no describiremos.

3. Sustitucion: tras mezclarlo con la subclave, el bloque es dividido en ochotrozos de 6 bits antes de ser procesados por las cajas de sustitucion. Cadauna de las ocho cajas reemplaza sus seis bits de entrada con cuatro bits desalida, de acuerdo con una trasformacion no lineal, especificada por una tablade busqueda.

4. Permutacion: finalmente, las 32 salidas de las cajas se reordenan de acuerdoa una permutacion fija.

Sin embargo, ya en sus comienzos se plantearon cuestiones sobre su seguri-dad. Incluso antes de ser adoptado como estandar, fue su reducido tamano declave, mas que el criptoanalisis teorico, el que provoco la necesidad de reempla-zarlo. En 1977, Diffie y Hellman propusieron una maquina con un coste estimadode 20 millones de dolares que podrıa encontrar una clave DES en un solo dıa.Hacia 1993, Wiener propuso una maquina de busqueda de claves con un costede un millon de dolares que encontrarıa una clave en 7 horas. La vulnerabilidadde DES fue demostrada en la practica en 1998 cuando la Electronic FrontierFoundation (EFF), un grupo dedicado a los derechos civiles en el ciberespacio,construyo una maquina a medida para romper DES, con un coste aproximadode 250.000 dolares.

AES

Advanced Encryption Standard (AES), tambien conocido como Rijn-dael, es un esquema de cifrado por bloques adoptado como un estandar de

9

Page 17: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

(a) En la fase de SubBytes, cada byte enel state es reemplazado con su entradaen una tabla de busqueda fija de 8 bits,S ; bij = S(aij).

(b) En el paso ShiftRows, los bytes en cada filadel state son rotados de manera cıclica hacia laizquierda. El numero de lugares que cada byte esrotado difiere para cada fila.

(c) En el paso MixColumns, cada columna delstate es multiplicada por un polinomio constan-te c(x).

(d) En el paso AddRoundKey, cada by-te del state se combina con un byte dela subclave usando la operacion XOR

Figura 5: Fases del sistema AES

cifrado por el gobierno de los Estados Unidos el 26 de mayo de 2002. Desde2006, es uno de los algoritmos mas populares usados en criptografıa simetrica.

El cifrado fue desarrollado por dos criptologos belgas, Joan Daemen y Vin-cent Rijmen. Al contrario que su predecesor DES, Rijndael es una red de susti-tucion-permutacion, no una red de Feistel. Como nuevo estandar de cifrado, seesta utilizando actualmente a gran escala.

Tiene un tamano de bloque fijo de 128 bits y tamanos de llave de 128, 192o 256 bits. Opera en una matriz de 4 × 4 bytes, llamada state. El proceso decifrado mezcla las 4 fases que se muestran en la figura 5, denominadas SubBytes,ShiftRows, MixColumns y AddRoundKey combinadas de la siguiente manera:

. Una fase inicial de AddRoundKey.

. Dependiendo de la longitud de la clave, un numero de rondas distinto en elque se llevan a cabo repetidamente (10 rondas para llaves de 128 bits, 12rondas para llaves de 192 bits, y 14 rondas para llaves de 256 bits): SubBytes,ShiftRows, MixColumns y AddRoundKey.

. Una fase final de SubBytes, ShiftRows y AddRoundKey.

10

Page 18: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

3. Introduccion a la criptografıa de clave publi-ca: RSA

En los sistemas de clave privada Alicia y Bob elegıan secretamente la claveK que daba lugar a las funciones de encriptacion eK y de descifrado dK . Hastaahora, o bien dK era identica a eK o derivaba facilmente de ella, de tal maneraque la exposicion de eK volvıa inseguro el sistema. El problema de estos siste-mas era que requerian de la comunicacion previa de una clave K entre Alicia yBob usando un canal seguro, antes de transmitir ningun mensaje cifrado. Estose volvıa muy complicado en la practica, cuando millones y millones de comu-nicaciones se establecıan diariamente, sobretodo en tiempos de guerra.

El problema de la distribucion de claves parece irresoluble cuando los mejoresmatematicos del momento lo abordan. Sin embargo, fue la publicacion en 1976del artıculo New Directions in Cryptography, de Whitfield Diffie y Martin Hell-man la que introdujo un metodo radicalmente nuevo para distribuir las clavescriptograficas, dando un gran paso adelante para resolver uno de los problemasfundamentales de la criptografıa, metodo que termino llamandose intercambiode claves Diffie-Hellman. El sistema se basa en la idea de que dos interlocuto-res pueden generar conjuntamente una clave compartida sin que un intruso queeste escuchando las comunicaciones pueda llegar a obtenerla. Su seguridad radi-ca en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmosdiscretos en un cuerpo finito.

3.1. Nociones basicas

Intercambio de claves Diffie-Hellman

Definicion 3.1. Supongamos que a ≥ 1 y m ≥ 2 son enteros. Si m.c.d(a,m) =1, entonces decimos que a y m son coprimos. El numero de enteros en Zm queson coprimos con m se denota frecuentemente por φ(m) (esta funcion se llamaphi-funcion de Euler). Al conjunto de dichos enteros se le denota Z

∗m.

No es difıcil de ver que Z∗m forma un grupo abeliano con respecto al producto.

Supongamos que p es primo, α es un elemento primitivo de Z∗p, es decir, de

orden p − 1, y que los valores p y α son conocidos publicamente. Recordamosque si p es primo, Z∗

p es cıclico y cualquier elemento primitivo es generador delmismo. Suponemos que dos personas, las llamamos A y B, quieren compartiruna clave. Para ello, A elige aA aleatoriamente, 0 � aA � p − 2, y genera αaA

mod p y se lo envıa a B. Este elige a su vez aB aleatoriamente, 0 � aB � p− 2,genera αaB mod p y se lo envıa a A. Entonces A calcula

K = (αaB )aA mod p

y B calcula

K = (αaA)aB mod p

11

Page 19: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Ası, ambos han conseguido compartir la misma clave K. Sin embargo, siun enemigo quisiera obtener dicha clave a partir de los mensajes que han si-do enviados y de los valores p y α publicos, tendrıa que ser capaz de calcularcualquiera de los valores aA o aB , es decir, tendrıa que calcular un logaritmodiscreto en Zp. Sin embargo, y tal y como estudiaremos mas adelante, este noes un problema ni mucho menos sencillo.

Aunque la aparicion del metodo de Diffie-Hellman supusiera el final del pro-blema de distribucion de claves, habıa un pequeno problema: las dos personasque querıan compartir una clave tenıan que estar conectados al mismo canalsimultaneamente o si no el proceso se alargaba. Fue este el motivo por el quelos matematicos de la epoca siguieron trabajando duro en busca de un sistemamejor. Es entonces en 1977 cuando Ron Rivest, Adi Shamir y Leonard Adleman,del Instituto Tecnologico de Massachusetts (MIT), presentan el sistema al quedieron nombre sus iniciales: RSA.

Antes de describir el funcionamiento RSA, necesitamos discutir algunos as-pectos concernientes a la aritmetica modular y a la teorıa de grupos. Dos resul-tados fundamentales que se requieren son el algoritmo de Euclides y el teoremaChino del Resto.

3.1.1. El algoritmo de Euclides

Antes de nada, repasamos algunas nociones basicas de la aritmetica modular.

Definicion 3.2. Supongamos que a y b son enteros, y m es un entero positivo.Entonces, escribimos a ≡ b (mod m) si m divide a b− a. La frase a ≡ b (modm) se lee ”a es congruente con b modulo m”. El entero m se llama el modulo.

Supongamos que dividimos a y b por m, obteniendo cocientes y restos ente-ros, donde los restos estan entre 0 y m−1. Es decir, a = q1m+r1 y b = q2m+r2,donde 0 � r1 � m− 1 y 0 � r2 � m− 1. Entonces, no es difıcil de ver que a ≡ b(mod m) si y solo si r1 = r2. Usaremos la notacion a mod m (sin parentesis)para denotar el resto de dividir a por m, es decir, el valor r1 anterior. Ası, a ≡ b(mod m) si y solo si a mod m = b mod m. Si reemplazamos a por a mod m,decimos que a esta reducido modulo m.

Podemos definir ahora la aritmetica modulo m: Zm se define como el con-junto {0, ...,m − 1}, dotado de dos operaciones, + y ×. La adicion y la multi-plicacion en Zm funcionan exactamente como la adicion y multiplicacion en Z

pero reduciendo modulo m. Definimos a − b en Zm como a + m − b mod m.Equivalentemente, podemos calcular el entero a− b y reducirlo despues modulom.

Veamos un resultado importante para saber cuando podemos encontrar uninverso multiplicativo en Zm:

Teorema 3.3. La congruencia ax ≡ b (mod m) tiene una solucion unica x ∈Zm para todo b ∈ Zm si y solo si gcd(a,m) = 1.

Demostracion. En efecto, sea a’ el inverso de a en Zm. Entonces,

12

Page 20: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

a’a = 1 (mod m) ⇔ a′a = 1 +mq, con q ∈ Z

⇔ aa′ −mq = 1

y esta ecuacion lineal con coeficientes enteros tiene solucion si y solo si

m.c.d.(a,m) = 1

es decir, si a y m son primos entre si.

Llegados a este punto, sabemos que todo b ∈ Z∗m tiene un inverso multipli-

cativo, b−1, pero no tenemos aun un algoritmo eficiente para calcularlo. Dichoalgoritmo existe; se llama algoritmo de Euclides extendido. Pero antes, describi-mos el algoritmo de Euclides en su forma basica, usado para calcular el maximocomun divisor de dos enteros positivos, llamemoslos r0 y r1, donde r0 > r1. Elalgoritmo de Euclides consiste en realizar la siguiente secuencia de divisiones:

r0 = q1r1 + r2, 0 < r2 < r1r1 = q2r2 + r3, 0 < r3 < r2...

rn−2 = qn−1rn−1 + rn, 0 < rn < rn−1

rn−1 = qnrn.

Ası, no es difıcil de mostrar que

m.c.d(r0, r1) = m.c.d(r1, r2) = ... = m.c.d(rn−1, rn) = rn

Por lo tanto, se sigue que

m.c.d(r0, r1) = rn.

Podemos usar el algoritmo de Euclides para determinar si un entero positivob < m tiene inverso multiplicativo modulo m, empezando con r0 = m y r1 = b.Sin embargo, el algoritmo no calcula dicho valor (si existe). Veamos como po-demos solucionar este problema:

Definimos primero una secuencia de numeros t0, t1, ..., tm conforme a la si-guiente recurrencia:

t0 = 0t1 = 1tj = tj−2 − qj−1tj−1 mod r0, if j ≥ 2.

donde los qj y rj son los definidos arriba. Tenemos entonces el siguiente resultadoutil:

Teorema 3.4. Para 0 ≤ j ≤ m, se tiene que rj ≡ tjr1 (mod r0), donde los qjy los rj se definen como en el algoritmo de Euclides, y los tj son definidos enla recurrencia anterior.

Demostracion. La demostracion es por induccion sobre j. La afirmacion es trivialpara j = 0 y j = 1. Suponemos que es cierta para j = i− 1 y j=i− 2, con i ≥ 2;probamos que la afirmacion es entonces cierta para j=i. Por induccion, tenemosque

13

Page 21: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

ri−2 ≡ ti−2r1 (mod r0)

y

ri−1 ≡ ti−1r1 (mod r0).

Ahora, calculamos

ri = ri−2 − qi−1ri−1

≡ ti−2r1 − qi−1ti−1ri (mod r0)≡ (ti−2 − qi−1ti−1)ri (mod r0)≡ tir1 (mod r0).

Por lo tanto, el resultado es cierto por induccion.

Como consecuencia inmediata del teorema obtenemos el siguiente corolario:

Corolario 3.5. Supongamos que m.c.d.(r0, r1) = 1. Entonces

tm = r−11 mod r0.

Notemos que la secuencia de numeros t0, t1, ..., tm puede ser calculada enel algoritmo Euclidiano a la vez que los qj y los rj . Estamos ahora listos parapresentar el algoritmo de Euclides extendido:

Algoritmo de Euclides extendido

Si conseguimos expresar 1 como combinacion lineal del modulo m y el nume-ro cuyo inverso queremos calcular, llamemoslo b, esta claro que si la expresionque obtenemos es de la forma

1 = A× b+B ×m

entonces A es el numero que buscamos, ya que en Zm tenemos que 1 = A × b.El algoritmo en pseudocodigo se puede expresar como sigue:

14

Page 22: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

1: n0 = m2: b0 = b3: t0 = 04: t = 15: �q =

n0

b0

6: r = n0 − q × b07: while r > 0 do8: temp = t0 − q × t9: if temp ≥ 0 then temp = temp mod m

10: else temp = n0 − ((−temp) mod m)11: end if12: t0 = t13: t = temp14: n0 = b015: b0 = r

16: �q =n0

b0

17: r = n0 − q × b018: end while19: if b = 1 then b no tiene inverso modulo m

20: else b−1 = t mod m21: end if

Es decir, vamos haciendo sucesivas divisiones entre cocientes y restos , calcu-lando a la vez el valor temp, que sera el correspondiente ti, valor que nos darael inverso modular de b cuando el resto valga 0.

3.1.2. Teorema Chino del Resto

Como ya he comentado, otro resultado importante antes de introducir elcriptosistema RSA es el tan conocido teorema Chino del Resto. El teorema esrealmente un metodo de resolucion de ciertos sistemas de congruencias.

Supongamos quem1, ...,mr son coprimos dos a dos (es decir, m.c.d(mi,mj) =1 si i = j). Supongamos que a1, ..., ar son enteros, y consideremos el siguientesistema de congruencias:

⎧⎪⎪⎪⎨⎪⎪⎪⎩

x ≡ a1 (mod m1)x ≡ a2 (mod m2)...x ≡ ar (mod mr)

(1)

El teorema afirma que este sistema tiene solucion unica modulo M = m1×m2×...×mr.

Teorema 3.6. Supongamos que m1, ...,mr son enteros positivos coprimos dosa dos, y sean a1, ..., ar enteros. Entonces, el sistema de r congruencias x ≡ ai

15

Page 23: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

(mod mi) (1 ≤ i ≤ r) tiene una unica solucion modulo M = m1×m2× ...×mr,que viene dada por

x =

r∑i=1

aiMiyi mod M,

donde Mi = M/mi e yi = M−1i mod mi, para 1 ≤ i ≤ r.

3.1.3. Otros resultados utiles

Mencionamos ahora otro resultado elemental de la teorıa de grupos, el lla-mado teorema de Lagrange. Antes, para un grupo (finito) multiplicativo G de-finimos el orden de un elemento g ∈ G como el menor entero positivo m quehace que gm = 1. Enunciamos el siguiente resultado sin demostracion.

Teorema 3.7. (Lagrange) Sea G un grupo multiplicativo de orden n, y g ∈ G.Entonces el orden de g divide a n.

Los siguientes corolarios son esenciales para nuestros propositos.

Corolario 3.8. Si b ∈ Z∗n, entonces bφ(n) ≡ 1 (mod n)

Demostracion. Z∗n es un grupo multiplicativo de orden φ(n).

El siguiente resultado se lo debemos a Fermat:

Corolario 3.9. Sea p un primo y b ∈ Zp. Entoncs bp ≡ b (mod p).

Demostracion. Si p es primo, entonces φ(p) = p − 1. Luego, para b ≡ 0 (modp) el resultado es cierto por el Corolario 2.8. Para b ≡ 0 (mod p), el resultadotambien es cierto ya que 0p ≡ 0 (mod p).

Sabemos que si p es primo, Z∗p tiene orden p − 1, y el orden de cualquier

elemento en Z∗p divide a p − 1. Ademas, aunque no lo probaremos, tenemos el

siguiente resultado:

Teorema 3.10. Si p es primo, Z∗p es cıclico.

Es decir, el teorema nos dice que existe un elemento α ∈ Z∗p con orden p− 1,

es decir, un elemento primitivo modulo p. Cualquier elemento β ∈ Z∗p puede

escribirse como β = αi, con 0 ≤ i ≤ p− 2, de forma unica. El orden de β = αi

es el mınimo entero x tal que βx = αix = 1, es decir, el mınimo x para queix = (p − 1)k con k ∈ Z. Luego k tiene que ser el mınimo entero positivo que

haga que(p− 1)k

isiga siendo entero: k = i

m.c.d.(p−1,i) . Ası, tenemos que el

orden de β es

p− 1

m.c.d.(p− 1, i)

Luego β sera un elemento primitivo si y solo si m.c.d.(p− 1, i) = 1. De aquı sesigue que el numero de elementos primitivos modulo p es φ(p− 1).

16

Page 24: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

3.2. Descripcion del sistema RSA

Ahora sı estamos listos para describir el Cryptosistema RSA. Este sistemausa calculos en Z

∗n, donde n es el producto de dos primos p y q distintos. Notemos

que para dicho n, φ(n) = (p− 1)(q− 1), ya que los enteros coprimos con pq sontodos los menores a el, mas los multiplos de p, que son q, y los multiplos de q,que son p: pq − p− q + 1. La descripcion formal de RSA es la siguiente:

Sea n = pq, donde p y q son primos. Sea P = C = Zn, ydefinimos

K = {(n,p,q,a,b): n = pq, p,q primos, ab ≡ 1 (mod φ(n))}.Para K = (n,p,q,a,b), definimos

eK(x) = xb mod n

y

dK(y) = ya mod n

(x, y ∈ Zn). Los valores n y b son publicos, y los valores p,q,ason secretos.

Antes de nada, verificamos que las operaciones de encriptacion y desciframientoson inversas. Dado que

ab ≡ 1 (mod φ(n)),

tenemos que

ab = tφ(n) + 1

para algun entero t ≥ 1. Supongamos que x ∈ Z∗n; entonces tenemos que

(xb)a ≡ xtφ(n)+1 (mod n)≡ (xφ(n))tx (mod n)

≡ 1tx (mod n)≡ x (mod n)

como querıamos. Sea ahora x ∈ Zn \ Z∗n , es decir, m.c.d.(x, n) = 1. Dado que

n es el producto de dos primos p y q, y 0 ≤ x < n, tenemos que dicho divisorcomun es p, q o un multiplo de alguno de estos, pero no de los dos; es decir, p|xo q|x. Supongamos que p|x y que q no divide a x. Queremos ver que (xb)a ≡ x(mod n). Pero

(xb)a ≡ xba ≡ x(p−1)(q−1)t+1 (mod n)

Ası que nuestro problema es equivalente a probar que x(p−1)(q−1)t+1 − x ≡ 0(mod n), es decir, que x(x(p−1)(q−1)t − 1) ≡ 0 (mod n). Pero si q no dividea x entonces xq−1 ≡ 1 (mod n), es decir, xq−1 = rq − 1 con r ∈ Z. Ası,x(p−1)(q−1)t = (rq − 1)(p−1)t ≡ 1 (mod q). Por tanto q|(x(p−1)(q−1)t − 1). Perocomo p|x se tiene que

n = pq|x(x(p−1)(q−1)t − 1).

17

Page 25: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Ası,

x(x(p−1)(q−1)t − 1) ≡ 0 (mod n)

y queda probado lo que querıamos.Veamos un pequeno ejemplo (inseguro) del Cryptosistema RSA.

Ejemplo 3.11. Supongamos que Bob elige p = 101 y q = 113. Entonces n =11413 y φ(n) = 100× 112 = 11200. Como 11200 = 26527, un entero b puede serusado como exponente de encriptacion si y solo si b no es divisible por 2, 5 o7. En la practica, no hace falta factorizar φ(n) si no simplemente asegurarse deque el m.c.d.(φ(n), b) = 1 mediante el algoritmo de Euclides. Supongamos queBob elige b = 3533. Utilizando el algoritmo de Euclides extendido obtiene que

b−1 = 6597 mod 11200.

Ası, el exponente de descifrado secreto de Bob sera a = 6597.

Bob hace publico n=11413 y b=3533. Ahora, supongamos que Alicia quieremandar el texto en claro 9726 a Bob. Calculara

97263533 mod 11413 = 5761

y mandara el texto cifrado 5761 a Bob (por un canal que no tiene por que serseguro). Cuando Bob recibe el mensaje cifrado, utiliza su exponente secreto paradescifrarlo:

57616597 mod 11413 = 9726.

La seguridad de RSA se basa en la esperanza de que la funcion de cifradoeK(x) = xb mod n sea unidireccional, de tal manera que sea inviable, compu-tacionalmente, que un oponente pueda descifrar un texto cifrado.

Las funciones unidireccionales, tambien conocidas como funciones de un so-lo sentido, son funciones que tienen la propiedad de ser faciles de calcular perodifıciles de invertir. Facil de calcular se refiere a que un algoritmo la puedecomputar en tiempo polinomico, en funcion de la longitud de la entrada.Difıcil de invertir significa que no hay algoritmo probabilıstico que en tiempopolinomial puede computar una preimagen de f(x) cuando x es escogido al azar.Este tipo de funciones son las que incesantemente han buscado los matematicosa lo largo de la historia para poder avanzar en los metodos criptograficos, yaque les permitirıan una comunicacion segura sin temor a que el enemigo pudieradescifrar el mensaje.

Pero, ¿que significa “calcular una funcion en tiempo polinomico”?. ¿Y “al-goritmo probabilıstico”?. Aclaramos estos conceptos.

Definicion 3.12. En computacion, cuando el tiempo de ejecucion de un algo-ritmo es menor que un cierto valor calculado a partir del numero de variablesimplicadas usando una formula polinomica, se dice que dicho problema se puederesolver en un tiempo polinomico.

18

Page 26: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Por ejemplo, si determinar el camino optimo que debe recorrer un cartero quepasa por N casas necesita menos de 50N2 +N segundos, entonces el problemaes resoluble en un tiempo polinomico.

Definicion 3.13. Un algoritmo probabilıstico (o propabilista) es un algo-ritmo que basa su resultado en la toma de algunas decisiones al azar, de talforma que, en promedio, obtiene una buena solucion al problema planteado paracualquier distribucion de los datos de entrada. Es decir, al contrario que un al-goritmo determinista, a partir de unos mismos datos se pueden obtener distintassoluciones y, en algunos casos, soluciones erroneas.

Enseguida, en la seccion de test de primalidad, hablaremos mas detallada-mente sobre estos algoritmos, usados para calcular numeros primos muy grandes.Antes, veamos algunos detalles de la implementacion de RSA.

3.3. Implementando RSA

Son muchos los aspectos de RSA a discutir, entre ellos los detalles de la pues-ta en marcha, la eficiencia de encriptacion y desciframiento, y los problemas deseguridad.

Los pasos que debe seguir Bob para preparar la comunicacion son (masadelante veremos como lo lleva a cabo):

1. Generar dos primos grandes, p y q

2. Calcular n = pq y φ(n) = (p− 1)(q − 1)

3. Elegir un b aleatorio (0 < b < φ(n)) tal que m.c.d.(b, φ(n)) =1

4. Calcular a = b−1 mod φ(n) usando el algoritmo de Euclides

5. Publicar n y b como su clave publica en un directorio.

Centremonos primero en como cifrar y descifrar un mensaje. Como hemos visto,es necesario calcular potencias modulo n, asunto que se complica cuando n esenorme. Por ello, es preciso utilizar aritmetica de multiprecision para realizarcalculos en Zn, y el tiempo requerido para ello dependera del numero de bits dela representacion binaria de n.

Supongamos que n tiene k bits en su representacion binaria; k = �log2 n+1.Consideramos ahora la exponenciacion modular, es decir, el calculo de una fun-cion de la forma xc mod n. Este calculo puede ser realizado mediante c − 1multiplicaciones modulares; sin embargo, esto es muy ineficiente si c es grande(notemos que c podrıa ser tan grande como φ(n)− 1)).

El algoritmo mas utilizado para agilizar este trabajo es el conocido metodode “elevar al cuadrado y multiplicar”, que reduce el numero de multiplicacionesmodulares a un maximo de 2l, donde l es el numero de bits en la representacionbinaria de c. Este metodo asume que el exponente, llamemoslo b, se representa

19

Page 27: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

en binario como

b =

l−1∑i=0

bi2i,

donde bi = 0 o 1, 0 ≤ i ≤ l − 1. Presentamos el algoritmo formalmente:

1: z = 12: i = l − 13: while i ≥ 0 do4: z = z2 mod n5: if bi = 1 then z = z × x mod n6: end if7: end while

Volvamos al Ejemplo 2.11, en el que Alicia ha tenido que calcular 97263533

mod 11413. Veamos como lo harıa utilizando el metodo de “elevar al cuadradoy multiplicar”.

Ejemplo 3.14. Alicia seguira el algoritmo y calculara 97263533 mod 11413 dela siguiente manera:

i bi z

11 1 12 × 9726 = 972610 1 97262 × 9726 = 26599 0 26592 = 56348 1 56342 × 9726 = 91677 1 91672 × 9726 = 49586 1 49582 × 9726 = 77835 0 77832 = 62984 0 62982 = 46293 1 46292 × 9726 = 101852 1 101852 × 9726 = 1051 0 1052 = 110250 1 110252 × 9726 = 5761

Como ya hemos visto antes, el texto cifrado es 5761.

3.4. Ataque a RSA: factorizacion del modulo n

El ataque mas obvio serıa intentar factorizar n. Si se consiguiera, solo tendrıaque calcularse φ(n) = (p− 1)(q − 1) y sacar a a partir de b exactamente comoBob. Luego, es necesario que n sea lo suficientemente grande como para quefactorizarlo resulte inviable.

Pero, ¿como de grande exactamente?. Hoy en dıa, n es normalmente de entre1024-2048 bits de longitud. Algunos expertos creen que las claves de 1024 bitspodrıan comenzar a ser debiles en poco tiempo. Si n tiene 256 bits o menos, pue-de ser factorizado en pocas horas con un ordenador personal, usando softwarelibre. Si tiene 512 bits puede ser factorizado por varios cientos de computadoras.

20

Page 28: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Nadie ha conseguido, al menos que se sepa publicamente, factorizar un moduloRSA de 1024 bits correctamente construıdo; el mayor modulo factorizado cono-cido tiene 768 bits, que fue anunciado en diciembre de 2009 tras varios anos deesfuerzo computacional distribuido ([11]). Un dispositivo hardware teorico lla-mado TWIRL descrito por Shamir y Tromer en el 2003 cuestiono la seguridadde claves de 1024 bits. Se recomienda actualmente que n sea como mınimo de2048 bits de longitud.

¿Como podrıa un atacante intentar factorizar n?. Dedicamos una pequenaseccion de este trabajo para hablar de los algoritmos de factorizacion mas uti-lizados.

Algoritmos de factorizacion

El problema de factorizar enteros en tiempo polinomico no ha sido aun re-suelto en computacion clasica. Existe, sin embargo, un algoritmo para compu-tacion cuantica, propuesto por el profesor estadounidense Peter Shor, capazde encontrar la factorizacion de un entero en sus factores primos, cuya cotasuperior en tiempo es polinomica y tal que la probabilidad de obtener una res-puesta equivocada es menor de 25%. Este descubrimiento disparo el interes enla computacion cuantica y ya se han construido algunos computadores cuanti-cos muy basicos, capaces de descomponer numeros pequenos. Se espera que con

Figura 6: Peter Shor es pro-fesor de matematicas aplicadas enel MIT. Es famoso por su tra-bajo en computacion cuantica, enparticular por elaborar el algorit-mo de Shor, un algoritmo cuanticode factorizacion exponencialmentemas rapido que el mejor algoritmoconocido actualmente que se ejecu-ta en un ordenador clasico.

los tremendos avances de los ultimos anos, pronto estos sistemas sean capacesde descomponer numeros suficientemente grandes para quebrantar el sistemaRSA (y otros basados en lo mismo). Pero el tema de la computacion cuantica seescapa de los propositos de este trabajo y por tanto nos limitaremos a hablar delos algoritmos de la computacion clasica. Los dos mas efectivos para factorizarenteros muy grandes son la Criba general del cuerpo de numeros (descu-bierto por J. M. Pollard en 1993) y la Criba cuadratica (descubierto por C.Pomerance en 1985). Explicar el funcionamiento de estos algoritmos requierebastante tiempo, ası que solo veremos, y por encima, la Criba cuadratica, porsu antiguedad y porque el otro esta basado en el.

Criba cuadratica

Es todavıa el metodo mas rapido para enteros que tienen 100 o menos dıgi-tos decimales, y es considerado mucho mas sencillo que la criba del cuerpo denumeros. Es un algoritmo de factorizacion de proposito general, lo que signi-fica que su tiempo de ejecucion unicamente depende del tamano del entero aser factorizado.

El algoritmo se basa en encontrar a y b, con a ≡ ±b, tales que a2 ≡ b2

(mod n). De esta manera, tendrıamos que n divide a (a + b)(a − b), pero nodivide a ninguno de los dos factores (ya que a = ±b), por lo que tendrıamosque el m.c.d.(a+ b, n) y el m.c.d.(a− b, n) son ambos no triviales. Como n es elproducto de dos primos, estos dos factores son los que buscamos.

Ahora la dificultad es como encontrar tales a y b, especialmente cuandotrabajamos con numeros de enorme longitud. Veamos antes de nada algunas

21

Page 29: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

definiciones necesarias.

Definicion 3.15. Un numero liso es un entero que puede factorizarse com-pletamente en numeros primos pequenos. Concretamente, un entero positivo sellama B-liso si ninguno de sus factores primos es mayor que B.

Esta definicion nos lleva al siguiente lema, crucial para la construccion delmetodo.

Lema 3.16. Si m1,m2, ...,mk son enteros positivos B-lisos, y si k > π(B)(donde π(B) denota el numero de primos en el intervalo [1, B]), entonces algunasubsucesion no vacıa de (mi) tiene producto un cuadrado.

Demostracion. Para un numero B -liso m, miremos a su vector exponente v(m).Si la factorizacion de m en primos es

m =

π(B)∏i=1

pvii ,

donde pi es el primo i -esimo y cada exponente vi es un entero no-negativo,el vector exponente es v(m) = (v1, v2, ..., vπ(B)). Entonces, una subsucesionmi1 , ...,mit tiene producto un cuadrado si y solo si v(mi1) + ... + v(mit) tie-ne todas las entradas pares. Es decir, si y solo si esta suma de vectores el vector

nulo modulo 2. Ahora, el espacio vectorial Fπ(B)2 , donde F2 es el cuerpo finito

de 2 elementos, tiene dimension π(B). Y tenemos k > π(B) vectores, luego lasubsucesion de vectores es linealmente dependiente en este espacio vectorial. Sinembargo, dependencia lineal en F2 quiere decir que la suma de alguna subsuce-sion es el vector nulo.

Entonces, recapitulando, necesitamos escoger un B y construir una sucesioncon tantos elementos como numeros primos menores que B haya, y uno mas.Pero los numeros que forman la sucesion no pueden ser cualesquiera, sino nume-ros B -lisos. Veamos un ejemplo simple para visualizar mejor el funcionamientodel metodo.

Ejemplo 3.17. Sea n = 222769. Escogemos B = 17.Hay 7 numeros primos menores o iguales que 17 (2,3,5,7,11,13 y 17), por lo quedeberıamos encontrar al menos 8 numeros xi cuyos cuadrados modulo n sean17-lisos para asegurarnos de que, por el lema previo, el producto de algunos otodos ellos es un cuadrado perfecto:

4722 ≡ 3× 5 −→ v(4722) = (0, 1, 1, 0, 0, 0, 0)4732 ≡ 26 × 3× 5 −→ v(4732) = (6, 1, 1, 0, 0, 0, 0)4752 ≡ 23 × 3× 7× 17 −→ v(4752) = (3, 1, 0, 1, 0, 0, 1)4772 ≡ 23 × 5× 7× 17 −→ v(4772) = (3, 0, 1, 1, 0, 0, 1)4822 ≡ 3× 5× 72 × 13 −→ v(4822) = (0, 1, 1, 2, 0, 1, 0)4932 ≡ 23 × 3× 5× 132 −→ v(4932) = (3, 1, 1, 0, 0, 2, 0)5032 ≡ 25 × 33 × 5× 7 −→ v(5032) = (5, 3, 1, 1, 0, 0, 0)5052 ≡ 29 × 32 × 7 −→ v(5052) = (9, 2, 0, 1, 0, 0, 0)

22

Page 30: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Siguiendo el razonamiento de la demostracion del lema, reducimos modulo 2 yconstruımos la matriz correspondiente:

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

0 1 1 0 0 0 00 1 1 0 0 0 01 1 0 1 0 0 11 0 1 1 0 0 10 1 1 0 0 1 01 1 1 0 0 0 01 1 1 1 0 0 01 0 0 1 0 0 0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

Salta a la vista que hay varias combinaciones posibles que dan el vector nulo(por ejemplo, cogiendo simplemente el primer y segundo vector). Tomamos, porejemplo, el segundo, tercer y cuarto vector, que estan asociados a las potenciasde 473, 475 y 477 respectivamente. Esto significa que el producto de 4732, 4752

y 4772 es un cuadrado perfecto. En efecto:

4732 × 4752 × 4772 ≡ 212 × 32 × 52 × 72 × 172 (mod 222769)(473× 475× 477)2 ≡ (26 × 3× 5× 7× 17)2 (mod 222769)

Ası que ya hemos encontrado a = ±b con a2 ≡ b2 (mod n). Tales numeros son114240 = 26× 3× 5× 7× 17 y 18086 = 473× 475× 477 mod 222769. Ası quelo unico que nos falta hacer es calcular el m.c.d.(114240− 18086, 222769) = 367(por el algoritmo de Euclides) y dividiendo 222769 por 367 obtenemos el otrofactor: 607.

En el ejemplo, hemos empezado a buscar a partir del entero mas proximoa la raız cuadrada de n por arriba (

√222769 = 471,98, luego empezamos por

472). Cuando elevamos al cuadrado numeros entre la raız de n y la raız de 2n, elnumero que obtenemos se encuentra entre n y 2n, luego para reducirlo modulon basta restar n. Resumiendo, los numeros B-lisos que nos interesan los encon-tramos recorriendo la sucesion x2 − n con x = �n1/2 , �n1/2 + 1, ....

Pero, aunque en el ejemplo no hemos explicado las elecciones que hemoshecho, a la hora de abordar un problema, sobretodo cuando se trata de unentero grande, nos surgen dos problemas: la eleccion de B ; y como uno reconocelos numeros B -lisos que necesita. El primer problema es complejo de resolver,ası que solo diremos que se demuestra en [6] que debe ser de la forma

B = e(1/2+o(1))√

(logn log logn).

Analicemos con mas atencion el segundo problema.

Reconociendo numeros lisos

La division por tentativa es una buena candidata, pero podemos encontrarun metodo mejor: la criba de Eratosthenes. Uno empieza con una lista denumeros desde el 2 hasta un cierto lımite X. Entonces uno empieza por el 2,el primer numero no marcado, como primo, y tacha todos los numeros pares

23

Page 31: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

como no primos, ya que son divisibles por 2. El siguiente numero sin marcares el 3, que es el siguiente primo, y se tachan todos los numeros multiplos de3, y ası sucesivamente. Si hacemos esto hasta llegar a X1/2, entonces todos losnumeros que quedan sin tachar son primos. Pero no son los numeros sin marcarlos que nos interesan, sino los marcados. Es mas, cuantas mas marcas tengaun numero mejor, ya que significara que sus factores son pequenos, y que tienemuchos factores, por lo que es un numero grande.

Imaginemos que modificamos un poco el proceso: en vez de marcar un nume-ro cuando es divisible por un primo escogido, lo sustituimos por el cociente aldividirlo por dicho primo. Ademas, cribamos tambien por las potencias del pri-mo antes de pasar al siguiente, volviendo a dividir por dicho primo. Si uno sigueeste proceso con los primos hasta B y sus potencias, los numeros B -lisos hastaX son aquellos que han sido transformados en el numero 1. Pero nosotros noestamos interesados en encontrar los numeros lisos entre 2 y X, sino en los dela forma x2 − n, a medida que x crece. Pero aquı podemos aplicar un metodoparecido:

Este consiste en resolver las congruencias cuadraticas x2 − n ≡ 0 (mod p)para todo primo p > 2. Por resultados de aritmetica modular, la ecuacion tendra2 soluciones, ninguna o, en el caso en que p|n, 1 unica (cosa que dificilmenteocurrira). Si no tiene solucion, no hay criba. Si hay dos soluciones, digamos a1y a2, tachamos todos los numeros de la secuencia que son congruentes con a1 oa2 modulo p. Se obtiene un resultado similar para mayores potencias de p. Y asıes como reconocemos los valores B -lisos de x2−n: usamos una criba cuadratica.

3.5. Test de primalidad

Uno se da cuenta enseguida de que la utilizacion de numeros primos es recu-rrente en el tema de la criptografıa, como hemos visto en el RSA. Pero, a medidaque avanza la tecnologıa, son necesarios numeros cada vez mas grandes, y nosiempre es facil encontrar los que necesitamos. En la construccion del sistemaRSA es necesario generar “primos aleatorios” que en su representacion binariatengan 1024 bits, o incluso 2048, como los expertos aconsejan. En la practica, loque se hace es generar numeros aleatorios grandes, y comprobar despues si sonprimos mediante algun test de primalidad probabilıstico de orden polinomial detipo Monte Carlo, tales como el de Solovay-Strassen o el de Miller-Rabin, quepresentamos en esta seccion. Estos algoritmos son rapidos, pueden comprobar sin es primo en un tiempo que es polinomico en log2 n, pero existe una posibilidadde que determinen que n es primo cuando no lo es. Sin embargo, ejecutandosuficientes veces el algoritmo, la probabilidad de error puede ser reducida tantocomo se desee.

La otra cuestion importante es cuantos enteros aleatorios hace falta analizarhasta encontrar uno que sea primo. Un famoso resultado de la teorıa de nume-ros, llamado Teorema de los numeros primos, asegura que el numero de primosmenores o iguales que N es aproximadamente N/ lnN ; es decir, si p es elegidoal azar, la probabilidad de que sea primo es de 1/ ln p, aproximadamente. Para

24

Page 32: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

uno de 1024 bits, tenemos 1/ ln p ≈ 1/355, lo que significa que, de media, uno decada 355 enteros aleatorios del tamano apropiado sera primo. Si nos centramosen los impares la probabilidad se dobla.

Un problema de decision es un problema en el que una pregunta debe serrespondida con un “sı” o un “no”. Un algoritmo probabilista es cualquier algo-ritmo que utiliza numeros aleatorios (a diferencia de los deterministas, que sonaquellos que no los utilizan).

Definicion 3.18. Un algoritmo de Monte Carlo sı-sesgado es un algo-ritmo probabilista para un problema de decision en el que la respuesta “sı” es(siempre) correcta, pero la respuesta “no” puede ser incorrecta. Un algoritmo deMonte Carlo no-sesgado se define de la manera obvia. Decimos que un algo-ritmo de Monte Carlo sı-sesgado tiene probabilidad de error ε si, para cualquiercaso en el que la respuesta es “sı”, el algoritmo responde (incorrectamente) “no”con probabilidad menor o igual que ε.

El problema de decision llamado Compuestos consiste en decidir si unentero positivo mayor o igual que dos es compuesto. En nuestro caso, nos interesael “no”, ya que significa que nuestro numero es primo. Pero los algoritmos deMonte Carlo sı-sesgados no aseguran que la respuesta negativa sea correcta.Presentamos el algoritmo de Solovay-Strassen, que es un algoritmo de MonteCarlo sı-sesgado con probabilidad de error 1/2.

3.5.1. Algoritmo de Solovay-Strassen

Antes de nada, introducimos algunos conceptos de la teorıa de numeros.

Definicion 3.19. Sean p un primo impar y x un entero, 1 ≤ x ≤ p− 1. Se diceque x es un residuo cuadratico modulo p si la congruencia y2 ≡ x (mod p)tiene una solucion y ∈ Zp. Se dice que x es un no-residuo cuadratico modulop si x ≡ 0 (mod p) y x no es un residuo cuadratico modulo p.

Teorema 3.20. (Criterio de Euler) Sea p primo. Entonces x es un residuocuadratico modulo p si y solo si

x(p−1)/2 ≡ 1 (mod p).

Por otro lado, si x es un no-residuo cuadratico, entonces

x(p−1)/2 ≡ −1 (mod p).

Demostracion. Primero, supongamos que x ≡ y2 (mod p). Recordemos por elCorolario 3.9 que si p es primo, entonces xp−1 ≡ 1 (mod p) para todo x ≡ 0(mod p). Ası, tenemos

x(p−1)/2 ≡ (y2)(p−1)/2 (mod p)≡ yp−1 (mod p)≡ 1 (mod p).

Analogamente, supongamos que x(p−1)/2 ≡ 1 (mod p). Sea b un elemento pri-mitivo modulo p. Entonces x ≡ bi (mod p) para algun i. Entonces, tenemos

25

Page 33: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

x(p−1)/2 ≡ (bi)(p−1)/2 (mod p)≡ bi(p−1)/2 (mod p).

Dado que b tiene orden p − 1, p − 1 debe dividir i(p − 1)/2. Luego i es par, yentonces las raıces cuadradas de x son ±bi/2.

Definicion 3.21. Sea p es un primo impar. Para todo entero a ≥ 0, definimos

el sımbolo de Legendre(

ap

)de la siguiente manera:

(a

p

)=

⎧⎨⎩

0 si a ≡ 0 (mod p)1 si a es un residuo cuadratico modulo p

−1 si a es un no-residuo cuadratico modulo p(2)

Ya hemos visto que a(p−1)/2 ≡ 1 (mod p) si y solo si a es un residuo cuadrati-co modulo p. Si a es un multiplo de p, esta claro que a(p−1)/2 ≡ 0 (mod p). Porultimo, si a es un no-residuo cuadratico modulo p, a(p−1)/2 ≡ −1 (mod p) pues-to que ap−1 ≡ 1 (mod p). Luego, obtenemos el siguiente resultado, que nosproporciona un algoritmo eficiente para calcular sımbolos de Legendre:

Teorema 3.22. Sea p primo. Entonces(ap

)≡ a(p−1)/2 (mod p).

Definimos ahora una generalizacion del sımbolo de Legendre.

Definicion 3.23. Sea n un entero positivo impar, y sea pe11 ...pekk la factorizacionen numeros primos de n. Sea a ≥ 0 un entero. El sımbolo de Jacobi

(an

)se define

como (a

n

)=

k∏i=1

(a

pi

)ei

Supongamos que n >1 es impar. Si n es primo, entonces(an

) ≡ a(n−1)/2

(mod n) para todo a. Por otro lado, si n es compuesto, podra cumplirse o noque

(an

) ≡ a(n−1)/2 (mod n). Si la ecuacion se cumple, entonces a es llamadoun pseudoprimo de Euler en base n. Sin embargo, se puede demostrar que, paratodo entero compuesto impar n, como mucho la mitad de los enteros positivosmenores que n son pseudoprimos de Euler en base n. Este hecho muestra queel test de primalidad de Solovay-Strassen que presentamos a continuacion tieneuna probabilidad de error menor o igual que 1/2.

1. Elegir un entero aleatorio a, 1 ≤ a ≤ n− 1

2. Si(an

) ≡ a(n−1)/2 (mod n) entonces

responder “n es primo’

si no

responder “n es compuesto”

26

Page 34: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

El problema que surge ahora es como evaluar los sımbolos de Jacobi eficien-temente. Para hacerlo basandonos en su definicion, tendrıamos que poder fac-torizar n. Pero si lo factorizamos, entonces ya sabemos si es o no primo, y nonecesitamos aplicar ningun algoritmo. Afortunadamente, podemos evaluar unsımbolo de Jacobi sin factorizar n utilizando algunos resultados de la teorıa denumeros. Enumeramos dichas propiedades sin demostracion:

1. Si n es un entero impar y m1 ≡ m2 (mod n), entonces

(m1

n

)=

(m2

n

)

2. Si n es un entero impar, entonces

(2

n

)=

{1 si n ≡ ±1 (mod 8)

−1 si n ≡ ±3 (mod 8)(3)

3. Si n es un entero impar, entonces

(m1m2

n

)=

(m1

n

)(m2

n

).

En particular, si m = 2kt, con t impar, entonces

(mn

)=

(2

n

)k (t

n

)

4. Sean m y n enteros impares. Entonces

(mn

)=

{ − (nm

)si m ≡ n ≡ 3 (mod 4)(

nm

)en otro caso

(4)

En general, aplicando estas cuatro propiedades, es posible calcular un sımbolode Jacobi

(mn

)en tiempo polinomial. Las unicas operaciones aritmeticas que se

requieren son reducciones modulares y extraer factores de potencias de 2.

Ahora, supongamos que hemos generado un numero aleatorio n y comproba-do su primalidad usando el algoritmo de Solovay-Strassen. Si hemos ejecutadoel algoritmo m veces, ¿como de seguros estamos de que n es primo?. Definimoslas siguientes variables aleatorias: a denota el evento

“un entero aleatorio impar n de un tamano especıfico es compuesto”,

y b denota el evento

“el algoritmo responde que ‘n es primo’ m veces seguidas”.

La probabilidad de que suceda b habiendo sucedido a, prob(b|a), es menor oigual que 2−m. Sin embargo, lo que nos interesa no es eso, si no prob(a|b), quemuchas veces no es la misma. Para calcularla, utilizamos el teorema de Bayes:

27

Page 35: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Teorema 3.24. Sea {A1, A2, ..., Ai, ..., An} un conjunto de sucesos mutuamenteexcluyentes y exhaustivos, y tales que la probabilidad de cada uno de ellos esdistinta de cero. Sea B un suceso cualquiera del que se conocen las probabilidadescondicionales P (B|Ai). Entonces, la probabilidad P (Ai|B) viene dada por laexpresion:

P (Ai|B) =P (B|Ai)P (Ai)

P (B)

donde

- P (Ai) son las probabilidades a priori.

- P (B|Ai) es la probabilidad de B en la hipotesis Ai,

- P (Ai|B) son las probabilidades a posteriori.

Para aplicar el teorema, necesitamos conocer prob(a). Supongamos que N ≤n ≤ 2N. Aplicando el Teorema de los numeros primos, el numero de primos(impares) entre N y 2N es aproximadamente

2N

ln 2N− N

lnN≈ N

lnN≈ n

lnn.

Dado que hay N/2 ≈ n/2 enteros impares entre N y 2N, usaremos la estimacion

prob(a) ≈ 1− 2

lnn.

Entonces, podemos calcular prob(a|b) como sigue:

prob(a|b) = prob(b|a)prob(a)prob(b)

=prob(b|a)prob(a)

prob(b|a)prob(a) + prob(b|a)prob(a)Notemos que a denota el evento

“un entero aleatorio impar n de un tamano especıfico es primo”.

Es interesante comparar las dos cantidades (lnn − 2)/(lnn − 2 + 2m+1)y2−m

en funcion de m. Supongamos que n ≈ 2512 ≈ e355, dado que este es el tamanode los primos que nos interesan para el RSA. Entonces la primera funcion esaproximadamente 353/(353+ 2m+1). Evaluamos las dos funciones para algunosvalores de m en la siguiente tabla:

m 2−m 353

353 + 2m+1

1 ,500 ,98882 ,250 ,97785 ,312× 10−1 ,846510 ,977× 10−3 ,1470

20 ,954× 10−6 ,1683× 10−3

30 ,931× 10−9 ,1644× 10−6

50 ,888× 10−15 ,1568× 10−12

100 ,789× 10−30 ,1392× 10−27

28

Page 36: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

A pesar de que 353/(353 + 2m+1) se aproxima a cero exponencialmente, no lohace tan rapido como 2−m. En la practica, sin embargo, uno tomarıa un valorde m parecido a 50 o 100, reduciendo la probabilidad de error a una cantidadmuy pequena.

Concluımos esta seccion con otro algoritmo de Monte Carlo para el problemaCompuestos, conocido como el algoritmo de Miller-Rabin. En la practica, estealgoritmo se comporta mejor que el de Solovay-Strassen.

3.5.2. El algoritmo de Miller-Rabin

El algoritmo de Miller-Rabin es tambien un algoritmo de Monde Carlo sı-sesgado. Lo presentamos a continuacion:

1. Escribir n− 1 = 2km, donde m es impar

2. Elegir un entero aleatorio a, 1 ≤ a ≤ n− 1

3. Calcular b = am mod n

4. Si b ≡ 1 (mod n) entonces

responder“n es primo” y salir

5. Para i = 0 hasta k − 1 hacer

Si b ≡ −1 (mod n) entonces

responder “n es primo” y salir

Si no

b = b2 mod n

6. responder “n es compuesto”

Veamos la prueba de que es un algoritmo sı-sesgado.

Demostracion. Asumimos que el algoritmo responde que “n es compuesto” paraun primo n (es decir, el algoritmo responde que sı, pero es incorrecto, en con-tra de la definicion de sı-sesgado), y llegamos a una contradiccion. Dado que elalgoritmo ha respondido que n es compuesto, debe darse que am ≡ 1 (mod n).Consideremos ahora la sucesion de valores b calculados en el paso 3 del algorit-mo. Dado que b es elevado al cuadrado en cada iteracion del ciclo para, estamos

probando con los valores am, a2m, ..., a2k−1m. Ademas, tenemos que

a2im ≡ −1 (mod n)

para 0 ≤ i ≤ k − 1. Ahora, usando la hipotesis de que n es primo, el Corolario3.9 nos dice que

a2km ≡ 1 (mod n)

29

Page 37: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

puesto que n − 1 = 2km. Entonces, a2k−1m es una raız cuadrada de 1 modulo

n. Como n es primo, las unicas dos raıces cuadradas de 1 modulo n son ±1mod n. Veamos por que: x es una raız cuadrada de 1 modulo n si y solo si

n|(x− 1)(x+ 1).

Como n es primo, o bien n|(x − 1) (es decir, x ≡ 1 (mod n)) o n|(x + 1) (esdecir, x ≡ −1 (mod n)).

Tenemos que

a2k−1m ≡ −1 (mod n),

ası que tiene que darse que

a2k−1m ≡ 1 (mod n).

Entonces a2k−2m tiene que ser una raız cuadrada de 1. Por el mismo argumento,

a2k−2m ≡ 1 (mod n).

Repitiendo este argumento, finalmente obtenemos que

am ≡ 1 (mod n),

que es una contradiccion, ya que de ser ası, el algoritmo habrıa respondido “nes primo”.

Falta por comentar la probabilidad de error del algoritmo de Miller-Rabin.Aunque no lo probaremos, puede demostrarse que la probabilidad de error es,como maximo, 1/4.

30

Page 38: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

4. Sistema ElGamal y logaritmos discretos

El sistema ElGamal sigue un esquema de cifrado basado en el problema dellogaritmo discreto, al que dedicaremos una pequena parte de este trabajo.Basado en la idea de Diffie-Hellman, funciona de una forma parecida a su algo-ritmo. Puede ser utilizado tanto para generar firmas digitales3 como para cifraro descifrar mensajes.

Figura 7: Taher Elgamal (18 deagosto de 1955) es un reconocidocriptografo egipcio. Entre sus prin-cipales aportaciones destacan ser elinventor de la firma digital y unode los desarrolladores del protoco-lo SSL.

Fue descrito por Taher Elgamal en 1984. Hoy en dıa, se usa en GnuPG,versiones recientes de PGP, y otros sistemas criptograficos. No esta bajo ningunapatente, lo que lo hace de uso libre.

4.1. Descripcion

Tal y como hemos comentado, el sistema se basa en el problema del logaritmodiscreto. Antes de nada, empezamos describiendo este problema en el contextode un grupo finito Zp, con p primo (recordemos que el grupo multiplicativo Z∗

p escıclico, y a un elemento generador de Z∗

p se le llama primitivo): Sea I = (p, α, β),donde p es primo, α ∈ Zp es un elemento primitivo en Z

∗p, y β ∈ Z

∗p. El problema

del logaritmo discreto consiste en encontrar el unico entero a, 0 ≤ a ≤ p− 2, talque

αa ≡ β (mod p).

A dicho entero a se le denota por el logα β.

El problema del logaritmo discreto en Zp ha sido objeto de estudio desde ha-ce mucho. El interes viene del hecho de que la funcion inversa, la exponenciacion,puede ser calculada eficientemente usando el metodo de “elevar al cuadrado ymultiplicar” visto anteriormente, y, al contrario, resolver el logaritmo discretoes generalmente considerado difıcil si p es elegido cuidadosamente.

El sistema de ElGamal es no-determinista, lo que significa que un mis-mo texto claro puede ser cifrado dando como resultado varios textos cifradosdistintos. Presentamos formalmente el criptosistema:

3Una firma digital es un mecanismo criptografico que permite al receptor de un mensajefirmado digitalmente determinar la entidad originadora de dicho mensaje, y confirmar que elmensaje no ha sido alterado desde que fue firmado por el que lo origino.

31

Page 39: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Sea p un primo tal que hallar un logaritmo discreto en Zp seainviable, y sea α ∈ Z

∗p un elemento primitivo. Sea P = Z

∗p,

C = Z∗p × Z

∗p y definamos

K = {(p, α, a, β): β ≡ αa (mod p)}.Los valores p, α y β son publicos, y a es secreto.Para K = (p, α, a, β), y para un numero (secreto) k ∈ Zp−1

aleatorio, definimos

eK(x, k) = (y1, y2)

donde

y1 = αk mod p

y

y2 = xβk mod p

Para y1, y2 ∈ Z∗p, se define

dK(y1, y2) = y2(ya1 )

−1 mod p

Informalmente, ası es como funcional el criptosistema: el texto claro x es“enmascarado” multiplicandolo por βk, dando lugar a y2. El valor α

k se trans-mite tambien como parte del texto cifrado. Bob, que conoce el exponente secretoa, puede calcular βk a partir de αk. Entonces, puede “quitar la mascara” divi-diendo y2 por βk para obtener x.

Es importante que Alicia use un k aleatorio diferente cada vez que mande unmensaje. Supongamos que Alicia utiliza la misma k para cifrar ambos mensajesx y x’. Oscar se da cuenta porque entonces y1 = y′1. Supongamos que el mensajex es un anuncio de ventas que se hace publico al dıa siguiente. Oscar descubre

x, ası que calcula x′ =x · y′2y2

. Es decir, en este caso, el hecho de conocer x le

permite al oponente Oscar conocer otro mensaje x’.

Pongamos un pequeno ejemplo para ilustrar mejor el funcionamiento delcriptosistema.

Ejemplo 4.1. Supongamos que Alicia quiere mandar un mensaje a Bob, que haelegido como parametros de su sistema ElGamal los siguientes: p = 15485863,α = 7, a = 28236 y, por tanto,

β = 728236 mod 15485863 = 12506884

Supongamos que el mensaje que Alicia quiere mandar es x = 128688. Entonces,elije k = 480 y calcula

y1 = αk = 7480 = 12001315 (mod 154885863)

e

32

Page 40: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

y2 = 128688× 12506884480 = 8263449 (mod 154885863)

y manda a Bob el par (y1, y2). Cuando Bob lo recibe, calcula el mensaje:

x = 8263449× (1200131528236)−1 mod 154885863 = 128688

Nos queda ahora pendiente la cuestion sobre como de seguro es este cripto-sistema. En la siguiente seccion, nos dedicamos al ataque mas obvio: hallar ellogaritmo discreto de β modulo p, es decir, el exponente secreto a.

4.2. El problema del logaritmo discreto

Aunque hoy en dıa la mayorıa de los usuarios de este criptosistema, cons-ciente o inconscientemente, utilizan un p de 512 bits de longitud, un artıculopublicado recientemente en Estados Unidos (vease [3]) asegura que un logaritmodiscreto modulo p cuando p es de 512 bits se calcularıa en un minuto usando laCriba del cuerpo de numeros para logaritmos discretos (con un tiempode precompilacion de una semana aproximandamente). Segun esta publicacion,los usuarios corrientes de internet deberıan usar un primo p de 1024 bits comomınimo, y los servidores uno de 2048. Ademas, p − 1 debe tener al menos unfactor primo grande (veremos que si no el algoritmo de Pohlig-Hellman solucio-narıa el problema del logaritmo discreto).

En esta seccion veremos algunos de los algoritmos mas conocidos y utilizadospara el problema del logaritmo discreto, como son el de Shanks, el de Pohlig-Hellman, y el del calculo de ındices. Sin embargo, el record de calculo deun logaritmo discreto se obtuvo en 2007 mediante la criba general del cuerpode numeros para logaritmos discretos (modulo un primo de 530 bits), que notrataremos en este trabajo por su complejidad.

4.2.1. Algoritmo de Shanks: Baby step-Giant step

Sea m = �√p− 1 4. El algoritmo de Shanks consiste en:

1. Calcular los conjuntos:Baby Steps : {βα−i mod p : 0 ≤ i ≤ m−1} = {β, βα−1, βα−2, ..., βα−(m−1)}Giant Steps : {αmj mod p : 0 ≤ j ≤ m− 1} = {1, αm, α2m, ..., α(m−1)m}

2. Buscar en esos conjuntos elementos que tengan el mismo valor. Es decir,buscar un elemento βα−i mod p en el primer conjunto y otro elemento αmj

mod p en el segundo tales que βα−i mod p = αmj mod p

3. Despejando β, se tiene que β = αjm+i, y, por lo tanto, el logaritmo discretode β en base α es k = jm+ i

Veamos un ejemplo ilustrativo:

Ejemplo 4.2. Se quiere calcular el logaritmo discreto de β = 59 en base α =7con p = 71, es decir, en el grupo F

∗71, mediante el metodo de Shanks: calculamos

4La funcion techo, que se expresa con � �, asigna a cada numero real el numero entero masproximo por exceso, es decir, el menor numero entero igual o mayor que el.

33

Page 41: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

i 59 · 7−i

0 591 492 73 14 615 296 657 608 39

Tabla 1: Baby Steps

j 79j

0 11 472 83 214 645 266 157 668 49

Tabla 2: Giant Steps

m = �√70 = 9 y formamos nuestros dos conjuntos Baby Step y Giant Step,representados en las tablas 1 y 2, respectivamente.

Se observa que 1 ≡ 59 · 7−3 ≡ 70 (mod 71). Entonces, 59 ≡ 73 (mod 71), esdecir, el logaritmo discreto de 59 en base 7 es 3.

4.2.2. Algoritmo de Pohlig-Hellman

El algoritmo de Pohlig-Hellman [4] es un metodo utilizado para resolver elproblema del logaritmo discreto en grupos cuyo orden tiene divisores primospequenos. Es decir, que el tiempo empleado para calcular un logaritmo discretomodulo p es pequeno cuando p−1 se descompone en primos pequenos, e inviablesi p − 1 tiene algun factor primo grande. Primero, supongamos que p − 1 sedescompone como

p− 1 =

k∏i=1

pcii ,

donde los pi son primos distintos. El valor a = logα β queda determinado unica-mente modulo p − 1. Primero observamos que si podemos calcular a mod pciipara cada i, 1 ≤ i ≤ k, entonces podemos calcular a mod (p−1) por el teoremaChino de los restos. Ası, supongamos que q es un primo tal que

p− 1 ≡ 0 (mod qc)

y

p− 1 ≡ 0 (mod qc+1).

Veamos como calcular el valor

x = a mod qc,

donde 0 ≤ x ≤ qc − 1. Podemos expresar x en base q como

x =

c−1∑i=0

aiqi,

donde 0 ≤ ai ≤ q − 1 para 0 ≤ i ≤ c − 1. Observemos tambien que podemosexpresar a como

34

Page 42: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

a = x+ qcs,

para algun entero s.El primer paso del algoritmo de Pohlig-Hellman es calcular a0. La principalobservacion es que

β(p−1)/q ≡ α(p−1)a0/q (mod p),

Para ver esto, notemos que

β(p−1)/q ≡ α(p−1)(x+qcs)/q (mod p),

luego, basta ver que

α(p−1)(x+qcs)/q ≡ α(p−1)a0/q (mod p).

La congruencia anterior se cumplira si y solo si

(p− 1)(x+ qcs)

q≡ (p− 1)a0

q(mod p-1 ).

Sin embargo, tenemos que

(p− 1)(x+ qcs)

q− (p− 1)a0

q=

p− 1

q(x+ qcs− a0)

= p−1q

(∑c−1i=0 aiq

i + qcs− a0

)= p−1

q

(∑c−1i=1 aiq

i + qcs)

= (p− 1)(∑c−1

i=1 aiqi−1 + qc−1s

)≡ 0 (mod p-1 )

que es exactamente lo que querıamos probar. Ası que comenzaremos calculandoβ(p−1)/q mod p. Si

β(p−1)/q ≡ 1 (mod p),

entonces a0 = 0. En otro caso, calculamos sucesivamente

γ = α(p−1)/q mod p, γ2 mod p, ...,

hasta que

γi ≡ β(p−1)/q (mod p)

para algun i. Cuando esto ocurra, tendremos a0 = i.Ahora, si c = 1, hemos terminado. En caso contrario, c > 1, y continuamoscalculando a1. Para ello, definimos

β1 = βα−a0

y denotamos

x1 = logαβ1 mod qc.

35

Page 43: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

No es difıcil de ver que

x1 =

c−1∑i=0

aiqi.

Por tanto, se sigue que

β(p−1)/q2

1 ≡ α(p−1)a1/q (mod p).

Ası que calcularemos β(p−1)/q2

1 mod p, y encontraremos la i tal que

γi ≡ β(p−1)/q2

1 (mod p).

Entonces tendremos que a1 = i.Si c = 2, ya hemos acabado; si no, repetimos el proceso c − 2 veces mas, obte-niendo ası a2, ..., ac−1

Presentamos ahora formalmente el algoritmo, que consiste en calcular a0, ..., ac−1,donde

logαβ mod qc =

c−1∑i=0

aiqi,

siendo p y q tales que

p− 1 ≡ 0 (mod qc)

y

p− 1 ≡ 0 (mod qc+1).

He aquı el algoritmo de Pohlig-Hellman:

1: Calcular γi = α(p−1)i/q mod p para 0 ≤i ≤ q − 1

2: j = 0 y βj = β3: while j ≤ c− 1 do

4: Calcular δ = β(p−1)/qj+1

j mod p5: Hallar i tal que δ = γi6: aj = i

7: βj+1 = βjα−ajq

j

mod p8: j = j + 19: end while

Ilustramos el algoritmo con un pequeno ejemplo.

Ejemplo 4.3. Sea p = 37. Sean α = 2 y β = 28, es decir, queremos calcular a,el logaritmo en base 2 de 28 en Z37.

El primer paso es descomponer n = p − 1 = 36 en sus factores primos:36 = 22 · 32. Para llevar a cabo nuestro objetivo, deberemos calcular a mod 4y a mod 9. Empezamos con el primer factor primo: q = 2. Entonces c = 2, yaque

36

Page 44: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

36 ≡ 0 (mod 22)36 ≡ 0 (mod 23)

Entonces, γ0 = 1 y γ1 = α36/2 mod 37 = 218 mod 37 = 36.Seguimos construyendo

δ = 2836/2 mod 37 = 2818 mod 37 = 1 mod 37

Ası que a0 = 0. Dado que c > 1, seguimos nuestra construccion y hallamos a1.Para ello, definimos

β1 = β0α−a0 mod 37 = 28 mod 37 = 28.

Luego a1 = 1. Luego x1 = a0 + a1q = 2. Hacemos lo mismo con el segundo, yultimo, factor primo. Tomamos q = 3. Calculamos

γ0 = 1; γ1 = 226/3 mod 37 = 26; γ2 = 226×2/3 mod 37 = 10.

Como antes, construımos

δ = 2836/3 mod 37 = 26

luego a0 = 1. Calculamos β1 = 28 · 2−1 mod 37 = 14 y

δ = 1436/32

mod 37 = 10

luego a1 = 2. Ası que ya estamos en condiciones de plantear nuestro sistema decongruencias

{x ≡ 2 (mod 4)x ≡ 7 (mod 9),

(5)

que resolvemos facilmente usando el teorema Chino de los restos, obteniendoque x = log228 = 34.

4.2.3. Algoritmo de calculo de ındices

El primero en introducir la idea basica del calculo de ındices fue Kraitchik en1922. Merkle la redescubrio en 1977 cuando el problema del logaritmo discretocomenzo a adquirir importancia, pero fue Adleman quien optimizo el algoritmoy lo presento en 1979 tal y como hoy lo conocemos [5].

Este metodo solo puede utilizarse en ciertos grupos entre los que se encuen-tran los grupos multiplicativos de los cuerpos finitos. La perdida de generalidadde este metodo se compensa con una mayor eficiencia que surge de sacar pro-vecho de las propiedades particulares del grupo. Suponemos pues que queremoshallar el logaritmo discreto de β en base α en Zp.

La idea de este algoritmo consiste en explotar la representacion de los ele-mentos del grupo como producto de elementos de un subconjunto pequeno, labase de factores. Tomamos B = {p1, p2, ..., pr} ⊆ Zp, con pi primos. El algoritmoconsta, basicamente, de tres etapas:

37

Page 45: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

1. Buscar identidades del tipo:

r∏i=1

pαii ≡ αt (mod p), t ∈ Z

de donde se deduce que:

r∑i=1

αi logα pi ≡ t (mod p), (6)

Pero, ¿como generamos identidades de este tipo? Una forma elemental dehacerlo es tomar un valor x aleatorio, calcular pxi mod p, y ver si αx mod ppuede descomponerse en primos de B (usando la division por tentativa, porejemplo).

2. Una vez halladas suficientes identidades del tipo 6, es decir, r linealmenteindependientes, tenemos un sistema compatible determinado cuyas incogni-tas son los ındices de los elementos de la base de factores. Resolviendo dichosistema, se determina el logaritmo discreto de los elementos pi.

Estas dos etapas constituyen una precomputacion que no depende del elemen-to del que queremos calcular el logaritmo discreto. Solo debemos llevarlas acabo una vez y podemos utilizar el resultado para calcular varios logaritmosdiscretos en base g.

3. Una vez llevada a cabo la fase de precomputacion, calculamos nuestro lo-garitmo discreto a partir de un algoritmo probabilıstico de tipo Las Vegas.Elegimos un entero aleatorio s (1 ≤ s ≤ p− 2), calculamos

γ = βαs mod p

e intentamos factorizar γ sobre B. Si esto puede hacerse, obtenemos unacongruencia de la forma

βαs ≡ pc1a pc22 ...pcBB (mod p).

que equivale a:

logα β + s ≡ c1 logα p1 + ...+ cB logα pB (mod p− 1)

Dado que conocemos todo excepto logα β, deducimos rapidamente su valor.

Veamos un pequeno ejemplo.

Ejemplo 4.4. Sea p = 10007 y α = 5. Supongamos que tomamos B = {2, 3, 5, 7}.Evidentemente, log55 = 1, ası que debemos calcular, en la fase inicial, los treslogaritmos restantes.

Aquı es donde deberemos probar con distintos x hasta dar con valores quefuncionen. Algunos de los exponentes “afortunados” son 4063, 5136 y 9865.Con x = 4063, calculamos

38

Page 46: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

54063 mod 10007 = 42 = 2× 3× 7.

Esto nos lleva a la congruencia

log5 2 + log5 3 + log5 7 ≡ 4063 (mod 10006).

Analogamente, dado que

55136 mod 10007 = 54 = 2× 33

y

59865 mod 10007 = 189 = 33 × 7,

obtenemos las dos congruencias que nos faltan:

log5 2 + 3 log5 3 ≡ 5136 (mod 10006)

y

3 log5 3 + log5 7 ≡ 9865 (mod 10006).

Tenemos ası tres congruencias en tres incognitas, que nos llevan a la unica so-lucion modulo 10006: log5 2 = 6578, log5 3 = 6190 y log5 7 = 1301.

Una vez llevada a cabo esta fase de precomputacion, podrıamos calcular cual-quier logaritmo discreto en base 5 en Z10007. Supongamos que queremos calcularlog5 9451. Supongamos que elegimos un exponente “aleatorio” s = 7736, y cal-culamos

9451× 57736 mod 10007 = 8400.

Dado que 8400 = 24315271 se factoriza sobre B, obtenemos

log5 9451 = 4 log5 2 + log5 3 + 2 log5 5 + log5 7− smod 10006 = 4× 6578 + 6190 + 2× 1 + 1301− 7736 mod 10006 = 6057.

Para verificarlo, podemos comprobar que, efectivamente, 56057 ≡ 9451 (mod 10007).

39

Page 47: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

40

Page 48: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

5. Otros grupos para la construccion de ElGa-mal

Hasta ahora hemos considerado el problema del logaritmo discreto en cuerposfinitos Zp. Antes de nada, introducimos el problema del logaritmo discreto en ungrupo cualquiera (finito) G : Sea I = (G,α, β), donde G es un grupo finito conla operacion ◦, α ∈ G y β ∈ H, donde H = {αi : i ≥ 0} es el subgrupo generadopor α. El problema del logaritmo discreto consiste en encontrar el unico enteroa, 0 ≤ a ≤ |H| − 1, tal que αa = β, donde la notacion αa significa

α ◦ ... ◦ α (a veces)

Denotaremos este entero a por logα β.En la seccion anterior, hemos usado el grupo multiplicativo Z

∗p porque el

problema del logaritmo discreto era difıcil de resolver cuando p cumplıa ciertacondicion, y podıamos ası construir el criptosistema ElGamal de forma segura.Pero este puede ser implementado en cualquier grupo donde el logaritmo discretosea incalculable, y hay mas candidatos. Definimos el criptosistema ElGamal enun subgrupo H de manera similar al original descrito anteriormente:

Sea G un grupo finito con la operacion ◦, y sea α ∈ G unelemento tal que el problema del logaritmo discreto en H seainviable, donde H = {αi : i ≥ 0} es el subgrupo generado porα. Sea P = G, C = G×G, y definamos

K = {(G, α, a, β): β = αa }.Los valores α y β son publicos, y a es secreto.Para K = (G, α, a, β), y para un numero (secreto) k ∈ Z|H|aleatorio, definimos

eK(x, k) = (y1, y2)

donde

y1 = αk

y

y2 = x ◦ βk

Para un texto cifrado y = (y1, y2), se define

dK(y) = y2 ◦ (ya1 )−1

Notemos que el grupo G no tiene por que ser abeliano (obviamente H es abelianopor ser cıclico). Ası, puede ser util mirar en otros grupos con la esperanza deencontrar otros marcos en los que el problema del logaritmo discreto parece serirresoluble. Dos clases de grupos de este tipo son:

1. el grupo multiplicativo del cuerpo de Galois GF (pn)

2. el grupo de una curva elıptica definida sobre un cuerpo finito.

41

Page 49: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

5.1. Cuerpos de Galois

Antes hemos comentado el hecho de que Zp es un cuerpo si p es primo. Sinembargo, hay otros ejemplos de cuerpos finitos que no son de esa forma. Dehecho, existe un cuerpo finito de q elementos si q = pn con p primo y n ≥ 1.Veremos enseguida como se construye dicho cuerpo, pero antes, introducimosalgunos conceptos necesarios.

Definicion 5.1. Sea p primo. Definimos Zp[x] como el conjunto de todos lospolinomios en la variable x. Definiendo la suma y multiplicacion de polinomiosen la forma usual (y reduciendo los coeficientes modulo p), tenemos un anillo.

Para f(x), g(x) ∈ Zp[x], decimos que f(x) divide a g(x) (notacion: f(x)|g(x))si existe q(x) ∈ Zp[x] tal que

g(x) = q(x)f(x).

Para f(x) ∈ Zp[x] \ {0}, definimos deg(f), el grado de f, como el mayorexponente en un termino de f no cero.

Supongamos f(x), g(x), h(x) ∈ Zp[x], y deg(f) = n ≥ 1. Denotamos

g(x) ≡ h(x) (mod f(x))

si

f(x)|(g(x)− h(x)).

Vamos a definir ahora un anillo de polinomios “modulo f(x)”, que deno-tamos por Zp[x]/(f(x)). La construccion de Zp[x]/(f(x)) a partir de Zp[x] estabasada en la idea de congruencias modulo f(x) y es analoga a la construccion deZm a partir de Z.

Supongamos que deg(f) = n. Si dividimos g(x) por f(x), obtenemos un(unico) cociente q(x) y resto r(x), donde

g(x) = q(x)f(x) + r(x)

y

deg(r) < n o r(x) = 0

Esto puede hacerse por la usual division entre polinomios. Luego un polinomioen Zp[x] es congruente modulo f(x) a un unico polinomio de grado menor que n.Definimos ahora los elementos de Zp[x]/(f(x)) como los pn polinomios en Zp[x]de grado menor que n. La suma y el producto en Zp[x]/(f(x)) se definen comoen Zp[x], seguidas de una reduccion modulo f(x). Equipado con estas operacio-nes, Zp[x]/(f(x)) es un anillo.

Recordemos que Zm es un cuerpo si y solo si m es primo, y que los inversosmultiplicativos pueden ser hallados usando el algoritmo Euclidiano. Sucede algosimilar en el caso de Zp[x]/(f(x)). El analogo a la primalidad en el caso de lospolinomios es la irreducibilidad, que definimos a continuacion:

42

Page 50: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Definicion 5.2. Un polinomio f(x) ∈ Zp[x] se dice que es irreducible si noexisten polinomios f1(x), f2(x) ∈ Zp[x] tales que

f(x) = f1(x)f2(x)

con deg(f1) > 0 y deg(f2) > 0.

Un hecho importante es que Zp[x]/(f(x)) es un cuerpo si y solo si f(x) es irre-ducible5. Ademas, los inversos multiplicativos en Zp[x]/(f(x)) pueden calcularsepor medio de una sencilla modificacion del algoritmo de Euclides (extendido).Falta discutir acerca de la existencia y unicidad de este tipo de cuerpos. Existeal menos un polinomio irreducible de cualquier orden n ≥ 1 en Zp[x]. Por tanto,existe un cuerpo finito con pn elementos para todo primo p y todo entero n ≥ 1.Habitualmente hay muchos polinomios irreducibles de grado n en Zp[x]. Perose puede demostrar que los cuerpos finitos construıdos a partir de cualesquierados polinomios irreducibles de grado n son isomorfos. Luego hay un unico cuer-po finito de tamano pn, llamado cuerpo de Galois, que se denota por GF(pn).Finalmente, puede verse que no existe un cuerpo finito con r elementos a menosque r = pn para algun primo p y algun entero n ≥ 1.

Hemos visto anteriormente que el grupo multiplicativo Z∗p (siendo p primo)

es un grupo cıclico de orden p−1. De hecho, el grupo multiplicativo de cualquiercuerpo finito es cıclico: GF(pn)\{0} es un grupo cıclico de orden pn − 1, lo quesignifica que acabamos de encontrar grupos cıclicos en los que el problema dellogaritmo discreto puede resultar interesante, y pueden utilizarse para construirel sistema de ElGamal. Los mas estudiados en la practica han sido los cuerposGF(2n).

5.2. Curvas elıpticas

Como ya hemos comentado, otro de los grupos en los que podemos construirel sistema ElGamal es el grupo de una curva elıptica definida sobre un cuerpofinito.

Definicion 5.3. Sea p > 3 primo. La curva elıptica y2 = x3 + ax + b sobreZp es el conjunto de soluciones (x, y) ∈ Zp × Zp de la congruencia

y2 ≡ x3 + ax+ b (mod p), (7)

donde a, b ∈ Zp son constantes tales que 4a3 + 27b2 ≡ 0 (mod p), junto con unpunto especial O llamado punto en el infinito6.

Podemos convertir una curva elıptica E en un grupo abeliano si definimosuna apropiada operacion sobre sus puntos. Dicha operacion se escribe con la

5Las afirmaciones que se hacen no las demostramos porque nos robarıan mucho espacio yson resultados bien conocidos de la teorıa de anillos.

6La ecuacion 7 puede utilizarse para definir una curva elıptica sobre cualquier cuerpoGF(pn), para p > 3. Una curva elıptica sobre GF(2n) o GF(3n) es definida por una ecuacionligeramente diferente.

43

Page 51: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

notacion aditiva y se define de la siguiente manera (donde todas las operacionesaritmeticas se realizan en Zp): Supongamos que P = (x1, y1) y Q = (x2, y2) sondos puntos de E. Si x2 = x1 e y2 = −y1, entonces P +Q = O; de otra manera,P +Q = (x3, y3), donde

x3 = λ2 − x1 − x2

y3 = λ(x1 − x3)− y1

y

λ =

⎧⎪⎨⎪⎩

y2−y1

x2−x1, si P = Q

3x21+a2y1

, si P = Q.

(8)

Por ultimo, definimos

P +O = O + P = P

para todo P ∈ E. Con esta definicion de suma, E es un grupo abeliano con Ocomo elemento identidad. Los inversos son muy faciles de calcular: el inversode (x, y) (que escribimos como −(x, y) por tratarse de la operacion suma) es(x,−y) para todo (x, y) ∈ E.

Recordemos ahora aquı lo visto en 3.19, 3.20 y 3.21 para residuos cuadrati-cos. Una vez que sabemos que la ecuacion x2 ≡ a (mod p) tiene solucion (yentonces en general tiene 2), nos planteamos como encontrar una. Una opcionpoco eficiente serıa probar con x = 1, ..., x = p − 1. Afortunadamente, existenformulas para hallar las raıces directamente. Distinguimos dos casos:

Caso p ≡ 3 mod 4:

Escribimos p−1 = 2s con s = 2n+1 y elegimos x = a(s+1)/2 = an+1 = a(p+1)/4.Verifiquemos que x2 ≡ a mod p. En efecto

x2 ≡ a2n+2 ≡ a2n+1a ≡ a(p−1)/2a ≡ a.

La ultima identidad se sigue del Criterio de Euler.

Caso p ≡ 1 mod 4:

Escribimos p− 1 = 2rs con s impar y elegimos y = a(s+1)/2. Como y2 = as+1 =asa, necesitamos encontrar un z tal que z2 ≡ as, pues entonces x = yz−1 serala solucion buscada. Notemos que z existe pues as es un residuo cuadratico. Laecuacion x2 ≡ as la resolvemos probando, pero solamente con los numeros delconjunto

S = {ms,m2s, ...,m2rs},donde m es cualquier no-residuo modulo p. Notemos que el conjunto S tiene2r elementos, que en general es mucho menor que p. ¿Por que estamos segu-ros de que z esta en S?. En primer lugar, como a es un residuo cuadratico,

44

Page 52: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

1 ≡ a(p−1)/2 ≡ a2r−1s, luego el orden de as divide a 2r−1. Como z2 ≡ as, en-

tonces el orden de z divide a 2r. El Teorema de Lagrange implica que hay alos sumo 2r de estos elementos. Por otro lado, si m es un no-residuo cuadrati-co, entonces el orden de ms es exactamente 2r ya que por el Criterio de Euler(ms)2

r−1 ≡ m(p−1)/2 ≡ −1. De esto se sigue que los elementos del conjunto Sson todos distintos y como son exactamente 2r, son todos.

Veamos ya un ejemplo en el que hallamos una curva elıptica sobre un cuerpofinito.

Ejemplo 5.4. Sea E la curva elıptica y2 = x3+x+6 sobre Z11. Determinemosprimero los puntos de E. Esto puede hacerse mirando a cada x ∈ Z11, calcu-lando x3 + x + 6 mod 11, e intentando despues resolver la ecuacion 7 para y.Dado un cierto x, podemos probar a ver si z = x3+x+6 mod 11 es un residuocuadratico aplicando el criterio de Euler, es decir, viendo si z(11−1)/2 ≡ 1 (mod11 ). Para los z que sı lo son, tendremos que calcular las raıces modulo 11, quellamaremos y1 e y2. Como 11 ≡ 3 mod 4, podemos aplicar el metodo explicadoanteriormente para hallarlas. Los resultados obtenidos se muestran en la Tabla1.

x x3 + x+ 6 mod 11 ¿Residuo? y1, y20 6 no1 8 no2 5 sı 4, 73 3 sı 5, 64 8 no5 4 sı 2, 96 8 no7 4 sı 2, 98 9 sı 3, 89 7 no10 4 sı 2, 9

Tabla 3: Puntos en la curva elıptica y2 = x3 + x+ 6 sobre Z11.

Ası que tenemos 13 (estos 6× 2 = 12 y el punto en el infinito, O) puntos enla curva. Dado que cualquier grupo de orden primo es cıclico, tenemos que Ees isomorfo a Z13, y cualquier punto distinto del punto en el infinito genera E.Observemos que esto significa que calculando multiplos (la operacion del grupoes aditiva) de cualquier punto obtendremos todos los demas.

Despues de ver este ejemplo, nos surge la duda sobre cuantos puntos tendrauna curva elıptica E sobre Zp. Un conocido teorema que le debemos a Hasseasegura que el numero de puntos en E, que denotamos por #E, satisface lasiguiente desigualdad ([7]):

p+ 1− 2√p ≤ #E ≤ p+ 1 + 2

√p.

45

Page 53: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Calcular exactamente el valor de #E es mas difıcil, pero Schoof invento unalgoritmo para ello. Supongamos que conseguimos calcular #E, y que queremosahora encontrar un subgrupo cıclico H de E para poder construir un sistemade ElGamal. Nos conviene conocer algo sobre la estructura de E :

Teorema 5.5. Sea E una curva elıptica definida sobre Zp, donde p es primo,p > 3. Existen enteros n1 y n2 tales que E es isomorfo a Zn1

× Zn2. Ademas,

n2|n1 y n2|(p− 1).

Lo que el teorema nos dice es que si conseguimos calcular n1 y n2, entoncessabemos que E tiene un subgrupo cıclico isomorfo a Zn1

que podremos usar ennuestro criptosistema. Notemos que si n2 = 1, E es un grupo cıclico. Ademas,si #E es primo, o el producto de primos distintos, entonces E tambien deberaser cıclico.

Ejemplo 5.6. [8] Sea la curva elıptica y2 = x3 + 7x+ 12 sobre Z103. El punto(-1,2) tiene orden 13 y el punto (19,0) tiene orden 2. Por lo tanto, el numero depuntos en E, #E, es multiplo de 26. Ademas, el teorema de Hasse implica que84 ≤ #E ≤ 124. El unico multiplo de 26 en este rango es 104, luego #E = 104.

Intentemos ahora hallar n1 y n2. Por resultados basicos sobre clasificacionde grupos abelianos finitos, y teniendo en cuenta que 104 = 23 ·13, nuestro grupoes isomorfo a uno de los siguientes grupos:

. Z2 × Z2 × Z2 × Z13∼= Z2 × Z2 × Z26

. Z2 × Z4 × Z13∼= Z2 × Z52

. Z8 × Z13∼= Z104

La unica opcion posible es que n1 = 52 y n2 = 2. Ası que, por el teorema 5.5,sabemos que nuestra curva E tiene un subgrupo cıclico isomorfo a Z52.

Los algoritmos de Shanks y Pohlig-Hellman pueden aplicarse al problema dellogaritmo en curvas elıpticas, conocido como el logaritmo discreto elıptico, perono se conoce ninguna adaptacion del algoritmo de calculo de ındices para ello.Se cree que el problema del logaritmo discreto elıptico es mas difıcil de resolverque el correspondiente a los cuerpos vistos anteriormente. De esta manera, laslongitudes de claves en criptografıa de curva elıptica pueden ser mas cortas conun nivel de seguridad comparable. Una curva elıptica que contiene un subgrupode orden 2160 proporciona una construccion de un criptosistema seguro, siemprey cuando el orden del subgrupo sea divisible por, al menos, un primo grande(como antes, para protegernos contra el ataque de Pohlig-Hellman).

Veamos un ejemplo de cifrado de ElGamal usando la curva elıptica del Ejem-plo 5.4.

Ejemplo 5.7. Supongamos que α = (2, 7) y el “exponente” secreto de Bob esa = 7, luego

β = 7α = (7, 2).

46

Page 54: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Ası que la operacion de cifrado es

eK(x, k) = (k(2, 7), x+ k(7, 2)),

donde x ∈ E y 0 ≤ k ≤ 12, y la operacion de desciframiento es

dK(y1, y2) = y2 − 7y1.

Supongamos que Alicia quiere cifrar el mensaje x =(10,9) (que es un punto deE). Si elije el valor k=3, calculara

y1 = 3(2, 7) = (8, 3)

y

y2 = (10, 9) + 3(7, 2) = (10, 9) + (3, 5) = (10, 2).

Luego, y = ((8, 3), (10, 2)). Cuando Bob recibe el mensaje cifrado y, lo descifrade la siguiente manera:

x = (10, 2)− 7(8, 3) = (10, 2)− (3, 5) = (10, 2) + (3, 6) = (10, 9).

Luego, el desciframiento le lleva al texto en claro correcto.

Existen varias dificultados practicas a la hora de implementar el sistemaElGamal sobre una curva elıptica. Cuando lo implementabamos en Zp (o enGF (pn) con n > 1), tenıamos un factor de expansion del mensaje de 2. Imple-mentado sobre una curva elıptica, obtenemos un factor de expansion de (alre-dedor de) 4. Esto ocurre porque hay aproximadamente p textos claros (#E ),pero cada texto cifrado consiste en cuatro elementos del cuerpo. Un problemamas serio es el hecho de que el espacio de textos claros consiste en los puntos enla curva E, y no se conoce ningun metodo conveniente que genere dichos puntos.

Menezes y Vanstone hallaron una variacion mas eficiente del criptosistema.En esta variacion, los textos en claro y cifrados pueden ser pares ordenados deelementos del cuerpo arbitrarios (distintos de cero), es decir, no se requiere quesean puntos en E. Esto implica un factor de expansion del mensaje de 2, el mismoque en el ElGamal original. Presentamos la variacion de Menezes-Vanstonea continuacion:

47

Page 55: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Sea E una curva elıptica definida sobre Zp (p > 3 primo) talque E contiene un subgrupo cıclico H en el que el problema dellogaritmo discreto es inviable.Sea P = Z

∗p × Z

∗p, C = E × Z

∗p × Z

∗p, y definamos

K = {(E, α, a, β): β = aα }.donde α ∈ E. Los valores α y β son publicos, y a es secreto.

Para K = (E, α, a, β), para un numero (secreto) k ∈ Z|H|aleatorio, y para x = (x1, x2) ∈ Z

∗p × Z

∗p, definimos

eK(x, k) = (y0, y1, y2)

donde

y0 = kα,(c1, c2) = kβ,

y1 = c1x1 mod py2 = c2x2 mod p.

Para un texto cifrado y = (y0, y1, y2), se define

dK(y) = (y1c−11 mod p, y2c

−12 mod p),

dondeay0 = (c1, c2)

Si volvemos a la curva y2 = x3 + x + 6 sobre Z11, vemos que el Criptosistemade Menezes-Vanstone permite 10× 10 = 100 textos en claro, frente a los 13 quepermitıa el sistema original. Veamos un ejemplo de cifrado y descifrado en estesistema utilizando la misma curva.

Ejemplo 5.8. Como en el ejemplo anterior, supongamos que α = (2, 7) y el“exponente” secreto de Bob es a = 7, luego

β = 7α = (7, 2).

Supongamos que Alicia quiere cifrar el mensaje

x = (x1, x2) = (9, 1)

(notemos que x no es un punto en E), y que elije el valor aleatorio k = 6.Primero, calcula

y0 = kα = 6(2, 7) = (7, 9)

ykβ = 6(7, 2) = (8, 3),

luego c1 = 8 y c2 = 3.

Despues, calcula

y1 = c1x1 mod p = 8× 9 mod 11 = 6

48

Page 56: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

yy2 = c2x2 mod p = 3× 1 mod 11 = 3.

El mensaje que le manda a Bob es

y = (y0, y1, y2) = ((7, 9), 6, 3).

Cuando Bob recibe el texto cifrado y, primero calcula

(c1, c2) = ay0 = 7(7, 9) = (8, 3),

y luego

x = (y1c−11 mod p, y2c

−12 mod p)

= (6× 8−1 mod 11, 3× 3−1 mod 11)= (6× 7 mod 11, 3× 4 mod 11)

= (9, 1).

Por tanto, el desciframiento le lleva al texto claro correcto.

Uno podrıa preguntarse por que se usan las curvas elıpticas y no otros gru-pos vistos que parecen ser mas faciles de construir. La razon es que las curvaselıpticas ofrecen el mismo nivel de seguridad que los sistemas clasicos utilizandoun menor numero de bits. Por ejemplo, se estima en [12] que una clave de 4096bits para RSA ofrece la misma seguridad que una de 313 bits en un sistema decurva elıptica. Esto significa que la implementacion de los criptosistemas de cur-va elıptica requiere un menor tamano de chip, un menor consumo de energıa, etc.

49

Page 57: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

50

Page 58: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Conclusiones.

Aunque las cifras han hecho que el ocultamiento de la informacion este adisposicion de todos, en muchas ocasiones no es mas que una falsa sensacion deseguridad, dado que muchas de las medidas que tomamos, o toman por nosotros,no son suficientes ante un ataque de criptoanalisis. Un ejemplo de ello lo vemoscon el tamano de las claves que utilizan los protocolos de internet.

El secreto perfecto lo logramos cuando utilizamos una clave aleatoria, de lamisma extension del texto claro, y la utilizamos una sola vez. Pero esta tecnicaresulta inviable. Sin embargo, de otro modo, el secreto perfecto no existe: aunqueen la criptografıa moderna es posible crear cifras que estan realmente fuera delalcance de todas las formas conocidas de criptoanalisis, la experiencia nos diceque todas las cifras que se han considerado seguras tarde o temprano han caıdo.Parece que la informatica cuantica es la meta. Teoricamente, garantizara laprivacidad absoluta.

51

Page 59: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

52

Page 60: Introducción a la criptografía - Biblioteca de la ... · Resumen. El hombre ha experimentado la necesidad de ocultar su informaci´on confi-dencial de o´ıdos y ojos indiscretos

Referencias

[1] Douglas R. Stinson, Cryptography: Theory and Practice, CRC Press, BocaRaton, Florida (1995).

[2] Simon Singh, Los codigos secretos: El arte y la ciencia de la criptografıa,desde el antiguo Egipto a la era de Internet, Editorial Debate, primeraedicion (2000).

[3] David Adrian, Karthikeyan Bhargavan, Zakir Durumeric, Pierrick Gaudry,Matthew Green, J. Alex Halderman, Nadia Heninger, Drew Springall, Em-manuel Thome, Luke Valenta, Benjamin VanderSloot, Eric Wustrow, San-tiago Zanella-Beguelin, and Paul Zimmermann, Imperfect Forward Secrecy:How Diffie-Hellman Fails in Practice, 22nd ACM Conference on Computerand Communications Security, Denver, CO (2015).

[4] S. Pohlig y M. Hellman, An Improved Algorithm for Computing Logarithmsover GF(p) and its Cryptographic Significance, IEEE Transactions on In-formation Theory 24, 106-110 (1978).

[5] L. Adleman, A subexponential algorithm for the discrete logarithm problemwith applications to Cryptography, Proceedings of the 20th Annual Sympo-sium on Foundations of Computer Science, 55-60 (1979).

[6] Carl Pomerance, Smooth numbers and the quadratic sieve, AlgorithmicNumber Theory, MSRI Publications 44, 69-81 (2008).

[7] J.H. Silverman, The Arithmetic of Elliptic Curves, Springer (GTM 106)(1986).

[8] Lawrence C. Washington, Elliptic curves: number theory and cryptography,CRC Press, 2nd edition (2008).

[9] National Bureau of Standards, Data Encryption Standard, FIPS-Pub.46(1999).

[10] Nadia Heninger, Zakir Durumeric, Eric Wustrow, and J. Alex Halderman,Mining your Ps and Qs: Detection of widespread weak keys in networkdevices, In Proceedings of the 21st USENIX Security Symposium (Agosto2012).

[11] T. Kleinjung, K. Aoki, J. Franke, A. Lenstra, E. Thome, J. Bos, P. Gaudry,A. Kruppa, P. Montgomery, D. Osvik, H. Te Riele, A. Timofeev, and P.Zimmermann, Factorization of a 768-bit RSA modulus. In Advances inCryptology—CRYPTO 2010, T. Rabin, Ed., pp. 333–350 (2010).

[12] I. F. Blake, G. Seroussi, y N. P. Smart, Elliptic curves in cryptography, vo-lume 265 of London Mathematical Society Lecture Note Series, CambridgeUniversity Press, Cambridge (2000, reimpresion del original del 1999).

53