112
1 UNIVERSIDAD NACIONAL DE LA LIBERTAD Facultad de Ciencias F´ ısicas y Matem´ aticas Departamento de Inform´ atica ´ Algebra universal para la Ciencia de la Computaci´on:Aplicaci´onalaCriptograf´ ıa Jos´ e A. Rodr´ ıguez Melquiades Teresa Bracamonte Nole MsC. Ciencia de la Computaci´on Ing.Inform´atico Trujillo - PERU 2009

Aplicacion de La Criptografia

Embed Size (px)

DESCRIPTION

Libro que trata sobre la aplicacion de la Criptografia, desde sus origenes hasta los metodos y formas de utilización.

Citation preview

Page 1: Aplicacion de La Criptografia

1

UNIVERSIDAD NACIONAL DE LA LIBERTADFacultad de Ciencias Fısicas y Matematicas

Departamento de Informatica

Algebra universal para la Ciencia de laComputacion: Aplicacion a la Criptografıa

Jose A. Rodrıguez Melquiades Teresa Bracamonte NoleMsC. Ciencia de la Computacion Ing. Informatico

Trujillo - PERU

2009

Page 2: Aplicacion de La Criptografia

2

Prefacio

Page 3: Aplicacion de La Criptografia

Indice general

1. Introduccion a la criptografıa 71.1. Evolucion historica de la criptografıa . . . . . . . . . . . . . . . . 8

1.1.1. Criptografıa clasica . . . . . . . . . . . . . . . . . . . . . . 81.1.2. Criptografıa moderna . . . . . . . . . . . . . . . . . . . . 9

1.2. Elementos participantes en un modelo criptografico . . . . . . . . 111.2.1. Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.2. Escenario basico . . . . . . . . . . . . . . . . . . . . . . . 111.2.3. Criptosistema simetrico . . . . . . . . . . . . . . . . . . . 131.2.4. Criptosistema asimetrico . . . . . . . . . . . . . . . . . . . 14

1.3. Investigadores que han aportado a la criptografıa . . . . . . . . . 151.3.1. Antes del siglo XX . . . . . . . . . . . . . . . . . . . . . . 151.3.2. Durante las guerras mundiales . . . . . . . . . . . . . . . 161.3.3. Creadores de algoritmos simetricos . . . . . . . . . . . . . 161.3.4. Creadores de algoritmos asimetricos . . . . . . . . . . . . 16

1.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Algoritmos y Complejidad computacional 192.1. Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2. Complejidad computacional . . . . . . . . . . . . . . . . . . . . . 21

2.2.1. Analisis de algoritmos . . . . . . . . . . . . . . . . . . . . 222.2.2. Formalizacion del analisis de los algoritmos . . . . . . . . 232.2.3. Clases de problemas . . . . . . . . . . . . . . . . . . . . . 262.2.4. Complejidad computacional con enteros . . . . . . . . . . 28

2.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3. Teorıa de numeros 333.1. Que es la teorıa de numeros . . . . . . . . . . . . . . . . . . . . . 333.2. Divisibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3. MCD, MCM y Numeros primos . . . . . . . . . . . . . . . . . . . 36

3.3.1. Maximo comun divisor (mcd) . . . . . . . . . . . . . . . . 373.3.2. Mınimo comun multiplo (mcm) . . . . . . . . . . . . . . . 403.3.3. Numeros primos . . . . . . . . . . . . . . . . . . . . . . . 40

3.4. Congruencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.5. Enteros modulo n: Zn . . . . . . . . . . . . . . . . . . . . . . . . 48

3.5.1. Operaciones en Zn . . . . . . . . . . . . . . . . . . . . . . 483.5.2. Grupo multiplicativo . . . . . . . . . . . . . . . . . . . . . 50

3.6. Funcion de Euler φ . . . . . . . . . . . . . . . . . . . . . . . . . . 513.7. Problema de factorizacion entera . . . . . . . . . . . . . . . . . . 52

3

Page 4: Aplicacion de La Criptografia

4 INDICE GENERAL

3.7.1. Factorizacion de proposito especial . . . . . . . . . . . . . 533.7.2. Factorizacion de proposito general . . . . . . . . . . . . . 53

3.8. Residuo cuadratico . . . . . . . . . . . . . . . . . . . . . . . . . . 553.8.1. Residuo cuadratico y residuo no cuadratico . . . . . . . . 55

3.9. Problema de la raız cuadrada modulo n . . . . . . . . . . . . . . 583.9.1. Raız cuadrada cuando n un numero primo . . . . . . . . . 583.9.2. Raız cuadrada cuando n un numero compuesto . . . . . . 58

4. Criptosistemas basados en teorıa de numeros 614.1. Cifrado por clave simetrica . . . . . . . . . . . . . . . . . . . . . 61

4.1.1. Cifrado por caracteres . . . . . . . . . . . . . . . . . . . . 614.1.2. Cifrado por bloque y flujo . . . . . . . . . . . . . . . . . 66

4.2. Cifrado por clave asimetrica . . . . . . . . . . . . . . . . . . . . . 754.2.1. Criptosistema non-secret de Cocks-Ellis . . . . . . . . . . 764.2.2. Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . 774.2.3. Criptosistema de Rabin . . . . . . . . . . . . . . . . . . . 804.2.4. Encriptacion probabilıstica de un mensaje de un bit . . . 844.2.5. Encriptacion probabilıstica de un mensaje grande . . . . . 854.2.6. Criptosistema de Goldwasser-Micali . . . . . . . . . . . . 864.2.7. Criptosistema de Blum-Goldwasser . . . . . . . . . . . . 88

4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5. Algebra abstracta 915.1. Que es el Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5.1.1. Algebra elemental . . . . . . . . . . . . . . . . . . . . . . 915.1.2. Algebra abstracta . . . . . . . . . . . . . . . . . . . . . . 91

5.2. Modelos algebraicos . . . . . . . . . . . . . . . . . . . . . . . . . 925.2.1. Operaciones n-arias . . . . . . . . . . . . . . . . . . . . . 925.2.2. Semigrupos y monoides . . . . . . . . . . . . . . . . . . . 92

5.3. Estructuras algebraicas . . . . . . . . . . . . . . . . . . . . . . . 935.3.1. Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.3.2. Anillos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995.3.3. Anillo de polinomios . . . . . . . . . . . . . . . . . . . . . 1005.3.4. Campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

6. Esquemas criptograficos basados en algebra 1076.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

7. Firmas digitales 1097.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Page 5: Aplicacion de La Criptografia

Indice de figuras

1.1. Comunicacion entre dos entidades. . . . . . . . . . . . . . . . . . . . 81.2. Scytale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3. Maquina mecanica. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4. Claude Shannon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.5. Diffie y Hellmann. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.6. Criptosistema fragil. . . . . . . . . . . . . . . . . . . . . . . . . . . 131.7. Criptosistema e = d. . . . . . . . . . . . . . . . . . . . . . . . . . . 131.8. Criptosistema e 6= d. . . . . . . . . . . . . . . . . . . . . . . . . . . 141.9. Principales aportes en criptosistema asimetrico. . . . . . . . . . . . . 15

2.1. Lugar de nacimiento de Al Khwarizmi. . . . . . . . . . . . . . . . . 202.2. Velocidad algoritmica. . . . . . . . . . . . . . . . . . . . . . . . . . 202.3. Alan M Turing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4. S. Cook y R. Karp. . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5. Modelo computacional RAM. . . . . . . . . . . . . . . . . . . . . . 232.6. Modelos computacional PRAM. . . . . . . . . . . . . . . . . . . . . 242.7. Comparacion asintotica de los algoritmos A y B. . . . . . . . . . . . 262.8. Clases de problemas. . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1. Carl F. Gauss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2. Riemann. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3. Paul Erdos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4. Euclides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.5. M. Agrawal, N. Kayal y N. Saxena. . . . . . . . . . . . . . . . . . . 44

4.1. Alfabeto y su equivalente numerico. . . . . . . . . . . . . . . . . . . 614.2. Emperador romano Julio Cesar. . . . . . . . . . . . . . . . . . . . . 624.3. Cifrado usando la transformacion del Cesar. . . . . . . . . . . . . . . 624.4. Letras en texto cifrado usando la ecuacion (4.5). . . . . . . . . . . . 654.5. Blaise de Vigenere. . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.6. Maquina de cifrado de Hill. . . . . . . . . . . . . . . . . . . . . . . 694.7. J. Daemen y V. Rijmen. . . . . . . . . . . . . . . . . . . . . . . . . 734.8. Hilbert Vernam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.9. R. Rivest, A. Shamir y L. Adleman. . . . . . . . . . . . . . . . . . . 784.10. Michael Rabin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.11. S. Goldwasser y S. Micali. . . . . . . . . . . . . . . . . . . . . . . . 874.12. M. Blum y S. Goldwasser . . . . . . . . . . . . . . . . . . . . . . . 88

5

Page 6: Aplicacion de La Criptografia

6 INDICE DE FIGURAS

5.1. Evariste Galois. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.2. Niels Abel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.3. Sophus Lie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Page 7: Aplicacion de La Criptografia

Capıtulo 1

Introduccion a lacriptografıa

La criptologıa se clasifica en criptografıa y criptoanalisis, en este ultimo casose refiere a la ciencia que analiza y rompe los criptosistemas. La criptografıa asu vez se clasifica en clasica y moderna. La criptografıa moderna es simetrica(clave privada) y asimetrica (clave publica).

Criptografıa1 juega un rol crucial en la vida de la poblacion actual mundial,desde la Internet banking y comercio electronico hasta email y los procesosde negocios basados en la web. De acuerdo con el Oxford English Dictionary,criptografıa es la manera secreta de escribir usando letras o caracteres en unsentido no ordinario, o por metodos de modo tal que el mensaje sea entendiblecuando se conozca la clave respectiva.[?]

Podemos resumir afirmando que la criptografıa esta relacionado con la co-municacion en presencia de un intruso, y abarca diversos problemas tales como:encriptacion, autenticacion, distribucion de claves, etc. La siguiente figura mues-tra como se produce el proceso de comunicacion:

1Es la ciencia que usa la matematica para encriptar y desencriptar los datos, es decir es laciencia de la seguridad de los datos.

7

Page 8: Aplicacion de La Criptografia

8 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

Figura 1.1: Comunicacion entre dos entidades.

Observando la figura podemos notar las entidades que participan en un pro-ceso de comunicacion, donde Alicia escribe un mensaje m el cual a su vez esencriptado usando la funcion encriptadora Ee; el resultado de este proceso esel mensaje encriptado(cifrado) c. El mensaje cifrado es remitido a traves deun canal inseguro hacia Bob, el cual a su vez aplicando la funcion desencrip-tadora, Dd, a c obtiene el mensaje original m. En este proceso de transmisionexiste un tercer participante, denominado adversario, el cual en todo momentodeseara apoderarse el mensaje m.

La criptografıa es pues el proceso de cifrar un mensaje con la finalidad deasegurar la integridad del mismo. Pero para lograr tener exito en el proceso detransferencia de mensajes, es necesario conocer los fundamentos basicos en elcual se basan los diversos esquemas criptograficos existentes. Los fundamentosteoricos son: Algoritmos, Complejidad computacional (clase de problemas Py NP), Teorıa de numeros, Algebra, y ultimamente Ecuaciones diferencialesordinarias, ademas de Numeros complejos.

1.1. Evolucion historica de la criptografıa

La criptografia tiene una grande y fascinante historia que empezo hace cien-tos de anos. Por ello los investigadores la han clasificado en dos etapas, cadauna de ellas con distintos rasgos o formas de asegurar la confidenciabilidad dela informacion, de acuerdo con la etapa de desarrollo de los conocimientos.

1.1.1. Criptografıa clasica

Los metodos eran tan simples que el proceso de encriptacion se hacia usandoel lapiz y papel, o usando simples dispositivos mecanicos.

1. Egipto: En la antigua cultura egipcia, los primeros vestigios de cripto-grafıa se los han encontrado en los jeroglıficos. Los cientıficos creen queestos son los primeros intentos para hacer comunicaciones secretas.

Page 9: Aplicacion de La Criptografia

1.1. EVOLUCION HISTORICA DE LA CRIPTOGRAFIA 9

2. Mesopotamia: Las culturas Caldeo - Asiria tenian un tipo de escrituracuyos mensajes eran plasmados en las famosas tablas de arcilla. Se creeque en estas tablas los mesopotamios ocultaban la informacion.

3. Hebreos: Los antiguos hebreos hicieron uso de cifras monoalfabeticassencillas de sustitucion, quizas comenzaron hace 500 - 600 anos a.c.

4. Grecia: Las fuerzas armadas usaron un dispositivo llamado scytale trans-position cipher, el cual era usado para cifrar sus mensajes. El matematicoHerodoto, segun se afirma, ocultaba sus mensajes en tablas de madera otatuados en la cabeza de los esclavos. Actualmente esta forma de ocultarla informacion se llama estenografıa.

Figura 1.2: Scytale.

5. Roma: Roma fue un paıs de la antiguedad muy poderoso, por ello eranecesario tener un tipo de metodo para encriptar muy seguro, esto losllevo a crear el criptosistema llamado el cifrado del Cesar.

1.1.2. Criptografıa moderna

Como ya hemos afirmado, la criptografıa tiene una larga y fascinante historiaque data desde los primeros pobladores humanos de la tierra. Sin embargo apartir del siglo IXX gracias al desarrollo de la matematica y posteriormente ala ciencia de la computacion, los conceptos empiezan a formalizarse. En 1917Gilbert Vernam propone un cifrado de teletipo, en el cual una clave previamentepreparada es conservada en una cinta perforada. Antes de la segunda guerramundial los metodos matematicos empiezan a proliferar, en esta etapa destacael aporte de William F. Friedman quien aplico tecnicas estadısticas para eldesarrollo del criptoanalisis y el cifrado. Ya en la segunda guerra mundial lacriptografia y el criptoanalisis se basaron en la matematica.

Esta es la epoca en que se disenaron maquinas de cifrado mecanicas y elec-tromecanicas, con las cuales se lograron romper los mensajes cifrados.

Page 10: Aplicacion de La Criptografia

10 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

Figura 1.3: Maquina mecanica.

Se considera que el verdadero desarrollo empezo con Claude Shannon, quienpresento su trabajo durante la segunda guerra mundial titulado communicationtheory of secrety systems, asi como su libro mathematical theory of communica-tion. Con estos trabajos Shannon establece las bases teoricas para la criptografıay el criptoanalisis.

Figura 1.4: Claude Shannon.

En los anos 1970 con dos avances importantes se inicio a la proteccion dela informacion digital. Uno fue en 1976, cuando Diffie y Helmann presentan elpapers New directions in cryptography; el otro avance fue el desarrollo del DataEncryption Standard - DES en 1977. En el primer aporte se introduce el con-cepto de criptografıa de clave publica, ademas de un metodo para el intercambiode claves, cuya seguridad estuvo basado en la intratabilidad del problema dellogaritmo discreto.

Figura 1.5: Diffie y Hellmann.

En 1978 los investigadores Ronald Rivest, A. Shamir y L. Adleman descubrenque usando la intratabilidad del problema de la factorizacion de grandes numeros

Page 11: Aplicacion de La Criptografia

1.2. ELEMENTOS PARTICIPANTES EN UN MODELO CRIPTOGRAFICO11

enteros, es posible crear un criptosistema para encriptar. De este modo se dacontinuidad al descubrimiento iniciado por Clifford Cocks en 1973; surge de estemodo el RSA. En 1985 el egipcio, de origen americano, Taher ElGamal presentaotro criptosistema basado en el problema del logaritmo discreto.

1.2. Elementos participantes en un modelo crip-tografico

Los modelos criptograficos son aquellos que formalizan el proceso de encrip-tacion y desencriptacion, por ello es conveniente fijar la notacion estandar y elcontexto en el cual estan basados los criptosistemas.

1.2.1. Entidades

1. Alicia y Bob: Son las identidades centrales en el proceso de comunica-cion, Alicia necesita remitir un mensaje secreto a Bob y el para leerlo debeconocer la clave de desencriptacion.

2. Eva: Es una villana que actua como una entidad pasiva, es decir escuchatodas las comunicaciones entre Alicia y Bob. Eva lee cualquier mensajeque no este correctamente encriptado e incluso puede hacer confundir aAlicia y a Bob; esto es convencer, por ejemplo, a Alicia que escriba untexto que a Eva le convenga. Eva no puede alterar el mensaje.

3. Fred: Es un falsificador que intentara falsificar la firma de Alicia sobrelos mensajes que seran remitidos para Bob.

4. Mallory: Es el mas villano, pues actua como una entidad activa con deseosde hacer dano, puede alterar un mensaje de acuerdo a su conveniencia.Tambien se le denomina el hombre que esta en el centro.

5. Peggy y Victor: Son entidades que participan en el proceso de firmasdigitales. Peggy (the prover) debe convencer a Victor (the verifier) de suidentidad.

1.2.2. Escenario basico

1. Alfabeto: Es un conjunto finito de caracteres a partir del cual se cons-truiran las palabras, de acuerdo con las respectivas reglas de la gramaticaestablecida.

Por convencion el alfabeto se denota por Σ, y el conjunto de palabras deun lenguaje se denota por Σ∗.

Ejemplos:

Σ = a, b, ..., z ,Σ = 0, 1, ..., 9 ,Σ = 0, 1

Page 12: Aplicacion de La Criptografia

12 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

2. Espacio de mensajes: Esta formado por una cadena de caracteres ob-tenidos a partir del alfabeto. Por notacion el espacio de mensajes se re-presenta por M. Un elemento, m, de este espacio es llamado mensaje entexto plano2.

Ejemplo:

Considerando el alfabeto Σ = a, b, ..., z , sea M el siguiente espaciode mensajes: El curso algebra universal para ciencia de la computacionesta destinado para alumnos de Informatica de la Universidad Nacionalde Trujillo. Los profesores orientan el curso a la criptografıa, por ser fun-damental para todo estudiante de ciencia de la computacion, pues el temade la seguridad de la informacion es muy importante. El alumno queda sa-tisfecho con los temas estudiados, por ello afirman Profesor jarm estamosen el salon de clases. Profesora tbn estamos en el laboratorio esperandola.

Los mensajes en texto plano considerado son:- jarm estamos en el salon de clases- tbn estamos en el laboratorio esperandola.

3. Espacio de mensajes cifrados: Este espacio esta formado por textocifrado, es decir por mensajes a los cuales se les ha aplicado algun metodode cifrado, donde la notacion considerada es C. Un elemento, c, de esteespacio es llamado mensaje cifrado3.

Ejemplo:

Los mensajes en texto plano del ejemplo anterior al ser cifrados seran lossiguientes mensajes:

86144 20709 263085 211472 210174 211472 20709 134438

246055 107536 26 191160 94013 20709

4. Espacio de claves: Es un conjunto finito, donde sus elementos son cla-ves para encriptar, e, y desencriptar, d, respectivamente. El espacio declaves se denota por K. Las claves son construidas mediante algoritmosgeneradores de claves.

Formalmente las claves se pueden expresar como funciones matematicas:

- Funcion encriptadora : Ee : M → C.

- Funcion desencriptadora: Dd : C →M .

5. Esquema criptografico: Esta dado por las funciones para encriptar ydesencriptar de algun criptosistema, con la siguiente propiedad:

∀e ∈ K, ∃d ∈ K tal que Dd = E−1e , esto es Dd(Ee(m)) = m,∀m ∈M .

Un criptosistema es denominado fragil, sı una tercera entidad, Eva, puede recu-perar el texto plano a partir del texto cifrado. Si todas las claves posibles sonprobadas para conocer cual de ellas esta siendo usada por las entidades en sucomunicacion, entonces decimos que el criptosistema se quiebra; esto se obtienemediante una busca exaustiva. Por ello es preferible que el espacio de claves seabien grande, para que de este modo la busca sea computacionalmente inviable.

2plaintext.3ciphertext.

Page 13: Aplicacion de La Criptografia

1.2. ELEMENTOS PARTICIPANTES EN UN MODELO CRIPTOGRAFICO13

Figura 1.6: Criptosistema fragil.

En criptografıa moderna las tecnicas criptograficas se clasifican en dos gru-pos, cada una de las cuales presentan metodos para encriptar, ademas ciertasventajas y desventajas. A continuacion presentamos estos dos grupos.

1.2.3. Criptosistema simetrico

En este tipo de esquema, cada par (e,d) es computacionalmente ”facil”dedeterminar d a partir de e, asi como e a partir de d, esto es que e = d.

Figura 1.7: Criptosistema e = d.

La criptografıa simetrica presenta tres clases:

1. Cifrado por caracteres: En este esquema, tambien llamado cifrado mo-nografico, cada caracter es cambiado mediante una sustitucion. Conside-rando que el alfabeto tiene 26 caracteres, entonces existen 26! posibles

Page 14: Aplicacion de La Criptografia

14 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

maneras para producir una transformacion monografica. En el presentetexto se estudian aquellas que estan basadas en la aritmetica modular.

2. Cifrado por bloque: Es un esquema en el cual el mensaje en texto planose particiona en bloques de palabras de longitud fija sobre el alfabeto Σ,para luego encriptar cada bloque en cierto tiempo.

3. Cifrado por flujo: Es un cifrado en el que se remite una palabra m =m1m2 . . ., usando un flujo de claves e1e2 . . . en un texto cifrado c = c1c2 . . ..Ademas el descifrado se efectua usando la clave para desencriptar di, co-rrespondiente a la clave encriptadora ei. Existe un criptosistema de clavepublica basada en el cifrado por flujo, es decir el conocido criptosistemade Blum-Goldwasser.

1.2.4. Criptosistema asimetrico

En este criptosistema, tambien llamado de clave publica, se considera cual-quier par (e,d) con la propiedad siguiente: Conocida una clave e que es compu-tacionalmente inviable y dado un c ∈ C, entonces se desea encriptar m ∈ Mtal que Ee(m) = c. Esta propiedad significa que dado la clave para cifrar e, escomputacionalmente inviable obtener la clave de descifrado d.

Figura 1.8: Criptosistema e 6= d.

El siguiente cuadro muestra un resumen de los principales aportes en elesquema de clave publica:

Page 15: Aplicacion de La Criptografia

1.3. INVESTIGADORES QUE HAN APORTADO A LA CRIPTOGRAFIA15

Figura 1.9: Principales aportes en criptosistema asimetrico.

En el capıtulo 4 estudiaremos con mas detalle la criptografıa simetrica yasimetrica, es decir los principales metodos cifrado conocidos.

1.3. Investigadores que han aportado a la crip-tografıa

Consideramos, en la presente seccion, rendir un homenaje a aquellas perso-nas que con sus investigaciones han contribuido al desarrollo de esta area dela ciencia de la computacion. De acuerdo a lo establecido por Wikipedia, laclasificacion se hace considerando las etapas de desarrollo de la criptografıa.

1.3.1. Antes del siglo XX

1. Charles Babbage: Matematico del siglo IXX

2. Leone Battista Alberti: Creador el metodo de sustitucion polialfabeti-ca, el cual es considerado como el primer diseno criptografico mecanico.

3. Julius Caesar: Polıtico y general romano.

Page 16: Aplicacion de La Criptografia

16 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

4. Friedrich Kasiski: Publico el primer ataque realizado al cifrado de Vi-genere, y que actualmente es conocido como el Kasiski test.

5. Auguste Kerckhoffs: Hizo una contribucion a los principios del cifrado.

6. Johannes Trithemius: Fue el primer investigador en describir tablasque fueron usados en la sustitucion polialfabetica. Es considerado uno delos pioneros de la estenografıa.

1.3.2. Durante las guerras mundiales

1. Nigel de Grey: Jugo un rol importante en la desencriptacion del telegrafode Zimmermann durante la primera guerra mundial.

2. Georges Painvin: Rompio el cifrado ADFGVX durante la primera gue-rra mundial.

3. Marian Rejewski, Poland, Biuro Szyfrow: En 1932 solucionaron lamaquina enigma con plugboard, que fue el principal dispositivo de cifradousado por Alemania.

4. William F. Friedman: Introdujo metodos estadısticos en la criptografıa.

5. John Joseph Rochefort: Contribuyo con el rompimiento del JN-25,despues del ataque al Pearl Harbor.

1.3.3. Creadores de algoritmos simetricos

1. Ross Anderson: Investigador de la Universidad de Cambridge y co-inventor del cifrado de serpiente, con el Danes Lars Knudsen.

2. Paulo S.l. M. Barreto: Investigador de la Universidad de Sao Paulo,que fue el co-inventor de la funcion hash Whirlpool.

3. Don Coppersmith: Co-inventor de los criptosistemas DES y MARS.

4. Joan Daemen: Investigador de origen belga quien es co-autor del cifradoRijndeal, el cual fue el Advanced Encryption Standard - AES. El otrocreador del Rijndeal es Vincent Rijmen.

5. Ronald L. Rivest: Investigador del MIT e inventor del RC ciphers series,asi como el MD algorithm series.

6. Bruce Schneier: Inventor del Blowfish y co-inventor del Twofish.

7. Adi Shamir: De nacionalidad israeli, fue el inventor del secret sharing.

1.3.4. Creadores de algoritmos asimetricos

1. Leonard Adleman: Co-inventor del criptosistema RSA. Los otros crea-dores fueron Ronald L. Rivest y Adi Shamir.

2. David Chaum: Investigador del las firmas blind.

Page 17: Aplicacion de La Criptografia

1.4. EJERCICIOS 17

3. Whitfield Diffie: Co-inventor del protocolo para el intercambio de clavesDiffie-Hellman. El otro co-inventor fue Martin Hellman.

4. Taher ElGamal: De nacionalidad egipcia, es el inventor del criptosistemaElGamal, el cual esta basado en el problema del logaritmo discreto.

5. Shafi Goldwasser: Junto con Adi Shamir y Silvio Micali son los creadoresde la denominada zero-knowledge proofs.

6. Neal Koblitz: Creo en forma independiente la criptografıa basada encurvas elipticas. El otro creador, tambien independiente, fue Victor Miller.

7. Alfred Menezes: Co-inventor de la tecnica para curvas elipticas MQV.

8. Michael Rabin: Es el creador del criptosistema del mismo nombre.

1.4. Ejercicios

Page 18: Aplicacion de La Criptografia

18 CAPITULO 1. INTRODUCCION A LA CRIPTOGRAFIA

Page 19: Aplicacion de La Criptografia

Capıtulo 2

Algoritmos y Complejidadcomputacional

En este capıtulo se examinan los conceptos basicos de la teorıa de la com-plejidad computacional de los algoritmos. La utilidad de esta teorıa esta en quemediante ella es posible estimar el comportamiento computacional, teoricamentehablando, del algoritmo en lo referido a la cantidad de operaciones realizadas1,como el recurso memoria usado2.

El capıtulo empieza definiendo algoritmo para luego pasar a complejidadcomputacional propiamente dicha, donde se comenta el analisis de algoritmos ysu formalizacion, ademas de las clases de problemas computacionales. Finaliza-mos con la complejidad de los numeros enteros.

2.1. Algoritmos

De acuerdo con Papadimitroi, dos ideas cambiaron el mundo. En 1448, en laciudad alemana de Mainz, Johann Gutenberg descubrio una manera de imprimirlibros. Esto significo que el intelecto humano se difundio y que la ciencia ytecnologıa crecieron exponencialmente. Muchos historiadores dicen que esto sedebio a la tipografıa, otros afirman que la clave del desarrollo no fue la tipografıa,sino los algoritmos.

El sistema decimal, creado en la India 600 a.c., fue una revolucion en el ra-zonamiento cuantitativo, es decir que usando solamente diez sımbolos se puedenrepresentar compactamente grandes numeros. Sin embargo difundir tales ideasde los indues llevo mucho tiempo, siendo las barreras para tal difusion los idio-mas, distancia e ignorancia. El medio decisivo para la difusion del conocimientofue un libro escrito en Arabe, siglo IX, por una persona que vivio en Baghdad(actualmente la capital de Irak). Al Khwarizmi fue tal personaje que creo meto-dos basicos para la adicion, multiplicacion y division de numeros, incluido laraız cuadrada. Tales procedimientos fueron precisos, no ambiguos, mecanicos,eficientes y correctos. Es decir fueron los algoritmos.

1Complejidad de tiempo.2Complejidad de espacio.

19

Page 20: Aplicacion de La Criptografia

20 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

Abu Ja’Far Mohammed lbn Musa Al Khwarizmi (780 - 850 a.c.) fue unastronomo y matematico arabe, miembro de la denominada casa de la sabiduriael cual era una academia de cientıficos de Baghdad. El nombre de Al Khwarizmisignifica de la ciudad de Khwarizmi, actualmente es la ciudad llamada Khiva.Sus biografos afirman que Al Khwarizmi escribio diversos libros de matemati-cas, astronomıa y geografıa. El termino algebra fue introducido en Europa atraves de sus trabajos y proviene del arabe al-jabr, el cual es parte del tıtulode su libro Kitab al-jabr w’al muquabala. En su libro, Al Khwarizmi describeprocedimientos para realizar las operaciones aritmeticas. Los autores europeosusaron una adaptacion latina de su nombre, hasta que finalmente llegaron a lapalabra algoritmo.

Figura 2.1: Lugar de nacimiento de Al Khwarizmi.

Posteriormente se ha establecido que los algoritmos y la estructura de datosforman el nucleo de la ciencia de la computacion, pues ellos son los componentesbasicos de cualquier software. Por lo tanto, aprender algoritmos es importantepara quien desee desarrollar software de calidad.

Formalmente un algoritmo es una entidad matematica, el cual es indepen-diente de un lenguaje de programacion especıfico, maquina o compilador; porello disenar algoritmos, en algun sentido, es todo acerca de la teorıa matematicadetras del diseno de buenos programas. La siguiente figura insinua el porque seestudia el diseno de algoritmos.

Figura 2.2: Velocidad algoritmica.

De acuerdo con Dijkstra, un algoritmo corresponde a la descripcion de unpatron de comportamiento, expresado en terminos de un conjunto finito de ac-ciones. El diccionario Houaiss de la lengua portuguesa define algoritmo comoun conjunto de reglas y procedimientos logicos bien definidos, que conducen ala solucion de una problema en etapas. El diccionario Wester de la lengua ingle-sa, afirma que un algoritmo es un procedimiento para solucionar un problemamatematico en una cantidad finita de pasos, el cual frecuentemente involucra la

Page 21: Aplicacion de La Criptografia

2.2. COMPLEJIDAD COMPUTACIONAL 21

repeticion de una operacion. Los autores del libro Introduction to AlgorithmsThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein, de-finen algoritmo, informalmente, como aquel procedimiento computacional biendefinido que toma algun valor o un conjunto de valores, como su entrada; yproduce algun valor o conjunto de valores como su salida. Un algoritmo es pues,una sucesion de pasos computacionales que transforman una entrada en unasalida.

Segun el problema que se tenga que solucionar, el disenador de algoritmostendra que desidir que paradigma de algoritmo usar. Los paradigmas consi-derados en ciencia de la computacion son los siguientes: Dividir para vencer,Programacion dinamica, Algoritmos greedy y Algoritmos aproximados.

2.2. Complejidad computacional

Todo empezo con una maquina. En 1936, el matematico ingles Alan M. Tu-ring desarrollo un modelo computacional teorico que lleva su nombre. Al igualque los computadores que fueron desarrollados en los anos 1940 y 1950, respec-tivamente, la maquina de Turing tambien fue considerada un modelo compu-tacional teorico.

Al poco tiempo del descubrimiento de la maquina de Turing, se descubrio quesu modelo basico falla en lo referido al conteo de la cantidad de tiempo o memorianecesaria, para que un computador efectue su trabajo, es decir en la solucion dealgun problema. La idea clave para medir el tiempo y espacio como una funcion,denominada de complejidad, empezo a inicios de los anos 1960 con Hartmanisy Stearns. De este modo empezaba la complejidad computacional.

En los primeros dias de la complejidad, los investigadores intentaron crearnuevas medidas para analizar los algoritmos. La primera nocion de computacioneficiente fue la denominada clase de problemas que se ejecutan en tiempo po-linomial, es decir la clase P. Este concepto posteriormente condujo a la clasede problemas NP, en particular los NP-completos. Actualmente un problemaabierto es el tema de si P = NP. Existe un premio de un millon de dolaresamericanos para quien sea capaz de demostrar al igualdad.

Figura 2.3: Alan M Turing.

El trabajo de Stephen Cook y Richard M. Karp, a inicios de los anos 1970,

Page 22: Aplicacion de La Criptografia

22 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

mostro que una gran cantidad de problemas combinatorios y logicos son NP-completos.

Figura 2.4: S. Cook y R. Karp.

2.2.1. Analisis de algoritmos

El analisis de un algoritmo es para predecir los recursos que tal procedimien-to requiere para obtener la solucion respectiva. Los recursos son:

* Operaciones (complejidad de tiempo).

* Memoria (complejidad de espacio).

* Comunicacion (complejidad de comunicacion).

En el analisis de complejidad lo mas frecuente es la cantidad de operaciones quehace un algoritmo durante su ejecucion, es decir la complejidad de tiempo. Porlo general, para un problema dado, se analizan diversos algoritmos candidatosque solucionan el problema, de estos candidatos se selecciona el mas eficiente,es decir que el analisis indica el candidato mas viable.

Analizar un algoritmo puede ser un descubrimiento, pues:

a. Como el comportamiento de un algoritmo puede ser diferente para ca-da entrada, entonces es necesario resumir el comportamiento en formulasfacilmente entendibles.

b. Aunque generalmente se selecciona un solo modelo de maquina, es posibleenfrentarse a muchas opiniones, es decir como expresar nuestro analisis.

c. En el proceso de analisis se debe: Hallar un medio de expresion que seasimple para escribir y manipular, mostrar las caracterısticas importantesde los recursos que el algoritmo requiere, y suprimir detalles tediosos.

Para el analisis de algoritmos se requiere de conceptos matematicos consideradosdentro de la matematica discreta, teorıa de probabilidades, algebra; asi comocierta habilidad para identificar los terminos mas significantes en una formula.

Page 23: Aplicacion de La Criptografia

2.2. COMPLEJIDAD COMPUTACIONAL 23

2.2.2. Formalizacion del analisis de los algoritmos

Antes de analizar un algoritmo, lo primero que se debe tener en cuentaes el modelo computacional donde funcionara el algoritmo, es cual incluya losrecursos que seran usados, ademas de los costos que implica su uso. En estasubseccion estudiaremos la dominacion asintotica el cual es, teoricamente, larepresentacion grafica de un algoritmo en el plano, donde el eje de las abcisasrepresenta la cantidad de informacion que el algoritmo recibira, y el eje de lasordenadas denota la cantidad de operaciones que se emplearan para la solucionde cierto problema.

A. Modelos computacionales

Los modelos considerados en ciencia de la computacion son:

(A.1) Modelo RAM: En el modelo RAM (Random Access Machine) las ins-trucciones son ejecutadas una despues de la otra, con operaciones no con-currentes.

Figura 2.5: Modelo computacional RAM.

En el modelo RAM, el procesador busca una instruccion o un dato dela memoria, donde una unica instruccion es ejecutada cada vez en formasecuencial. Cada operacion ejecutada por el procesador, significa hacercalculos aritmeticos, logicos y acceso a la memoria, es decir significa uncosto de tiempo. Ademas cada operacion y dato guardado en la memo-ria, significa un costo de espacio.

(A.2) Modelo PRAM: Este modelo PRAM (Parallel Random Access Machine)esta orientado para trabajar con maquinas paralelas en forma de clusterso supercomputadores.

Page 24: Aplicacion de La Criptografia

24 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

Figura 2.6: Modelos computacional PRAM.

B. Dominacion y tipos de notaciones asintoticas

El analisis de un algoritmo cuenta con algunas operaciones elementales, don-de la medida de costo o medida de complejidad indica el crecimiento asintoticode la operacion considerada.

Definicion: Una funcion f(n) domina asintoticamente a otra funcion g(n), siexisten las constantes c, n0 > 0 tal que, para n ≥ n0 se tiene |g(n)| ≤ c|f(n)|.Tipos de notaciones asintoticas:

(a) Notacion O3: Dadas dos funciones f(n) y g(n), entonces se dice que g(n)domina asintoticamente a f(n), sı existen constantes positivas c y n0 talque ∀n ≥ n0, tenemos que 0 ≤ f(n) ≤ cg(n).

Por notacion, f(n) = O(g(n)) indica que g(n) es el lımite superior. Cuandola notacion O se usa para expresar el tiempo de ejecucion de un algoritmoen el peor caso, entonces estaremos definiendo el lımite superior del tiempode ejecucion de tal algoritmo para todas las entradas.

Ejemplo:

Algoritmo de ordenacion por insercion, en el peor caso, presenta unacomplejidad O(n2).

3Fue creado por Paul Bachmann en 1892. Esta notacion algunas es llamada el sımbolo deLandau, pues fue Edmund Landau quien lo uso en su trabajo de estimacion de funciones enteorıa de numeros. Posteriormente, esta notacion fue popularizada por Donald Knuth en elanalisis de algoritmos.

Page 25: Aplicacion de La Criptografia

2.2. COMPLEJIDAD COMPUTACIONAL 25

(b) Notacion Ω: Dadas dos funciones f(n) y g(n), entonces se dice que g(n)es el lımite inferior, sı existen constantes positivas c y n0 tal que ∀n ≥ n0,tenemos que 0 ≤ cg(n) ≤ f(n).

El lımite inferior se denota por f(n) = Ω(g(n)). Cuando la notacion Ω seusa para expresar el tiempo de ejecucion de un algoritmo en el mejor caso,entonces estaremos definiendo el lımite inferior del tiempo de ejecucion detal algoritmo para todas las entradas.

Ejemplo:

Algoritmo de ordenacion por insercion, en el mejor caso, presenta unacomplejidad Ω(n).

(c) Notacion θ: Dadas dos funciones f(n) y g(n), se dice que f(n) = θ(g(n)),sı existen constantes positivas c1, c2 y n0 tal que ∀n ≥ n0, tenemos que0 ≤ c1g(n) ≤ f(n) ≤ c2g(n).

Ejemplo:

Muestre que n2

2 − 3n = θ(n2)

En efecto

Por definicion

c1n2 ≤ n2

2− 3n ≤ c2n

2, ∀n ≥ n0

Dividiendo por n2, tenemos:

c1 ≤ 12− 3

n≤ c2

Por lo tanto, se verifica el resultado para c1 = 114 , c2 = 1

2 , con n0 = 7.

Page 26: Aplicacion de La Criptografia

26 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

Teorema 2.1: Para todo par de funciones g(n) y f(n), se cumple lo siguiente

f(n) = θ(g(n))⇐⇒ f(n) = O(g(n)) y f(n) = Ω(g(n))

La importancia del estudio de las notaciones asintoticas esta en el hechode que permite comparar el comportamiento teorico, antes de implementar, delos algoritmos; es decir que una vez obtenido la complejidad del algoritmo, elresultado puede ser comparado con otros algoritmos, simplemente evaluando lasfunciones de complejidad y dejando de lado las constantes de proporcionalidad.

Ejemplo:Un procedimiento algoritmico con complejidad computacional O(n), es mejor

que otro procedimiento con tiempo computacional O(n2).

Ejemplo:Un algoritmo A emplea 100n unidades de tiempo para ser ejecutado, otro

algoritmo B emplea 2n2. Entonces un analisis en estos dos resultados nos in-dica que para n < 50, el programa B es mejor en tiempo de ejecucion queA. La situacion se revierte cuando n > 51. Graficamente tenemos el siguientecomportamiento:

Figura 2.7: Comparacion asintotica de los algoritmos A y B.

2.2.3. Clases de problemas

Los problemas intratables o difıciles son muy comunes en la naturaleza y enlas areas del conocimiento. Por ello los problemas se clasifican faciles y difıciles.Para el primer caso estos problemas son resueltos por algorimos polinomiales, ypara el segundo caso los algoritmos de solucion son exponenciales.

Ejemplos de algoritmos polinomiales, O(p(n)), donde p(n) es un polinomio,tenemos los siguientes:

- Busca secuencial: O(n)

- Busca binaria: O(log n)

Page 27: Aplicacion de La Criptografia

2.2. COMPLEJIDAD COMPUTACIONAL 27

- Ordenacion por insercion, seleccion: O(n2)

- Ordenacion por Quicksort, ShellSort, mergesort: O(nlog n)

- Multiplicacion de matrices: O(n3).

- etc.

Ejemplos de algoritmos exponenciales, O(cn), c > 1 tenemos:

- Agente viajero: O(n!), donde n! ≤ nn = 2nlog n.

- Problema de la mochila

- Problema clique,

- etc.

Teniendo en cuenta lo expresado anteriormente, existe una clasificacion de losproblemas en dos tipos:

a) Clase P: Son aquellos problemas que pueden ser solucionados por al-goritmos deterministas en tiempo polinomial, esto es que la clase P sedefine como el conjunto de problemas de decision concreto4 solucionablesen tiempo polinomial, es decir si existe un algoritmo que lo soluciona enO(nk).

Usando la teorıa de los lenguajes formales, la clase de complejidad Ptambien se define por

P = L ⊆ 0, 1∗ : ∃ un algoritmo que decide L en tiempo polinomial.b) Clase NP: Son aquellos problemas que pueden ser resueltos por algo-

ritmos no deterministas (heurısticas, algoritmos aproximados) en tiempopolinomial, es decir son aquellos problemas cuya solucion puede ser veri-ficada en tiempo polinomial.

Del punto de vista de los lenguajes, decir un lenguaje L ∈ NP si y sola-mente existe un algoritmo de tiempo polinomial A, tal que

L = w ∈ 0, 1∗ : ∃ un certificado5, |y| = O(|w|c) tq. A(w, y) = 1Un caso especial de los problemas NP son los llamados NP-completos, los cualesson muy importantes por la cantidad de aplicaciones que tienen. Una definicionmuy importante para obtener problemas NP-completo a partir de otros proble-mas NP-completos, es la llamada reduccion o transformaciones. Un problemaA es reducible en otro problema B, A ≤p B, si un algoritmo para B sirvepara solucionar el problema A. Es decir, si existe un algoritmo de tiempo po-linomial que mapea cada instancia x ∈ A en una instancia f(x) ∈ B tal quex ∈ A⇔ f(x) ∈ B.

Un problema B es NP-completo si se cumple que B ∈ NP y A ≤p B, ∀ A ∈NP, respectivamente. Por lo tanto, con esta informacion podemos afirmar queun problema es NP-completo, si se cumplen dos condiciones, dadas en 1972 porRichard M. Karp, es decir:

4Conjunto de instancias es el conjunto de palabras binarias.5Es una palabra escrito en binario.

Page 28: Aplicacion de La Criptografia

28 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

(1) Mostrar que B ∈ NP.

(2) Hallar un problema NP completo A, y probar que A ≤p B, esto es, descri-bir la transformacion f, mostrar que f puede ser transformado en tiempopolinomial y mostrar que x ∈ A ⇔ f(x)∈ B.

Figura 2.8: Clases de problemas.

Existen muchos problemas NP-completos, que estan clasificados dentro de lasdiversas areas existentes en ciencia de la computacion, tales como en geometrıacomputacional, teorıa de grafos, diseno de redes, base de datos, programacionmatematica, logica, automatas y teorıa de lenguajes, etc.

Algunos ejemplos para determinar la NP-completitud de ciertos problemasNP son los siguientes:

- El problema de cubrimiento de vertices es NP-completo, pues el conocidoproblema NP-completo llamado problema clique, se reduce en el cubri-miento de vertices.

- El problema de ciclo hamiltoniano es NP-completo, pues el problema decubrimiento de vertices se reduce en el.

- El problema del agente viajero es NP-completo.

2.2.4. Complejidad computacional con enteros

Antes que sean inventados los computadores, los investigadores en matemati-cas hacian sus calculos a mano o con dispositivos mecanicos. De una u otramanera ellos solamente podian trabajar con numeros enteros pequenos, puestrabajar con numeros grandes implicaba emplear mas tiempo con posibilidadesde cometer errores.

Cuando se tiene un problema y para tal problema se le ha disenado unalgoritmo, entonces una preocupacion inmediata es querer conocer la cantidadde tiempo que tal algoritmo emplea para hallar la solucion, en particular para unproblema de tipo numerico. Para tal efecto la medida a usar se da en terminosde operaciones bit.

Una operacion bit significa la adicion, sustraccion o multiplicacion de dosdıgitos binarios; asi como la division de un entero de dos bits por otro de unbit. Por tanto la complejidad computacional de un algoritmo esta dado por la

Page 29: Aplicacion de La Criptografia

2.2. COMPLEJIDAD COMPUTACIONAL 29

cantidad de operaciones bit necesarias para que un procedimiento algoritmicose ejecute.

Ejemplo:Para efectuar una operacion especıfica sobre un numero entero, se requiere

a lo mas n3 +8n2log n operaciones bit. Entonces como 8n2log n < n3, se puedeconcluir que para ejecutar tal operacion se necesitaran menos de 9n3 operacio-nes bit, para cada entero n. Finalmente como la cantidad de operaciones bitrequeridas es siempre menor que la constante 9 veces n3, se concluye que lacomplejidad es O(n3) operaciones bit.

Ejemplo:Sobre el conjunto de los numeros enteros positivos se cumple que n4+2n3+5

es O(n4), pues n4 + 2n3 + 5 ≤ n4 + 2n4 + 5n4 = 8n4, para ∀n ∈ Z+.

Usando la notacion asintotica O se nota que para sumar o restar dos nume-ros enteros de n-bits, se necesitaran O(n) operaciones bit; para multiplicar dosenteros de n-bits del modo convencional, se emplean O(n2) operaciones bit.Sorprendentemente existen algoritmos mas veloces para multiplicar grandesnumeros enteros. Para desarrollar tal algoritmo primero considerar la multi-plicacion de enteros de 2n-bits, por ejemplo a = (a2n−1a2n−2 . . . a1a0) y b =(b2n−1b2n−2 . . . b1b0). Estos numeros se pueden escribir como:

a = 2nA1 + A0 y b = 2nB1 + B0

dondeA1 = (a2n−1a2n−2 . . . an+1an) A0 = (an−1an−2 . . . a1a0)B1 = (b2n−1b2n−2 . . . bn+1bn) B0 = (bn−1bn−2 . . . b1b0)

La identidad

ab = (22n + 2n)A1B1 + 2n(A1 −A0)(B0 −B1) + (2n + 1)A0B0 (2.1)

es usada para hallar el producto de a con b, para tal efecto se requiere que seejecuten tres multiplicaciones de enteros de n-bits, esto es A1B1, (A1−A0)(B0−B1) y A0B0, como tambien ciertas adiciones.

Ejemplo:Multiplicar (1101)2 con (1011)2.En efecto(1101)2 = 22(11)2 + (01)2 y (1011)2 = 22(10)2 + (11)2. Usando la identidad

anterior hallamos lo siguiente:

(1101)2(1011)2 = (24 + 22)(11)2(10)2 + 22((11)2 − (01)2)((11)2 − (10)2)

+(22 + 1)(01)2(11)2

= (24 + 22)(110)2 + 22(10)2(01)2 + (22 + 1)(11)2

= (1100000)2 + (11000)2 + (1000)2 + (1100)2 + (11)2

= (10001111)2

Page 30: Aplicacion de La Criptografia

30 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

A continuacion formalizamos la estimacion de la cantidad de operaciones bitnecesarias para multiplicar dos enteros de n-bits. Si M(n) denota la cantidadde operaciones bit necesarias para multiplicar dos enteros de n-bits, entoncesdesde la identidad (2.1) hallamos que

M(2n) ≤ 3M(n) + Cn, (2.2)

donde C es una constante, pues cada una de las tres multiplicaciones de enterosde n-bits emplea M(n) operaciones bit, mientras que la cantidad de adicionesy movimientos necesarias para computar ab mediante la identidad (2.1), nodepende de n y cada una de tales operaciones emplea O(n) operaciones bit.

De (2.2), por induccion matematica, se muestra que

M(2k) ≤ c(3k − 2k), (2.3)

donde c = maxM(2), C.En efecto

1. Si k = 1, entonces M(2) ≤ c(31 − 21) = c = maxM(2), C.2. Por hipotesis inductiva, asumir que M(2k) ≤ c(3k − 2k) es valido.

3. Probaremos para k + 1. En efecto, por (2.2) tenemos:

M(2k+1) ≤ 3M(2k) + C2k

≤ 3c(3k − 2k) + C2k

≤ c3k+1 − c× 3× 2k + C2k

≤ c(3k+1 − 2k+1).

Usando el resultado dado por (2.3) se puede demostrar el siguiente teorema:

Teorema 2.2: La multiplicacion de dos enteros de n-bits puede ser ejecutadoen O(nlog2 3).Prueba

De (2.3) tenemos:M(n) = M(2log2 n) ≤M(2[log2 n]+1)

≤ c(3[log2 n]+1 − 2[log2 n]+1)≤ 3c× 3[log2 n]

≤ 3c× 3log2 n = 3cnlog2 3, pues 3log2 n = nlog2 3.

Un caso particular el teorema anterior esta dado por el siguiente resultado:Teorema 2.3: Sea ε > 0 un entero positivo, entonces existe un algoritmo paramultiplicar dos numeros enteros de n-bits usando O(n1+ε) operaciones bit.

Teorema 2.4: Existe un algoritmo para multiplicar dos enteros de n-bits usandoO(nlog2 n log2 log2 n) operaciones bit.

NOTA: log2 3 ≈ 1,585 < 2.ε = log2 3− 1 ≈ 0,585

Un algoritmo convencional realiza la division de un numero entero de 2n-bitspor otro de n-bits, usando O(n2) operaciones bits. Sin embargo la cantidad de

Page 31: Aplicacion de La Criptografia

2.3. EJERCICIOS 31

operaciones bit necesarias para la division entera puede ser relacionado con lacantidad de operaciones bits necesarias para la multiplicacion entera.

Teorema 2.5: Existe un algoritmo para hallar el cociente q = a/b, cuandose divide un numero entero a de 2n-bit con otro entero b, que usa O(M(n))operaciones bit, donde M(n) es la cantidad de operaciones bit necesarias paramultiplicar dos enteros de n-bits.

2.3. Ejercicios

Page 32: Aplicacion de La Criptografia

32 CAPITULO 2. ALGORITMOS Y COMPLEJIDAD COMPUTACIONAL

Page 33: Aplicacion de La Criptografia

Capıtulo 3

Teorıa de numeros

Desde tiempos remotos el hombre ha estado interesado en guardar sus des-cubrimientos en hojas de papiros (en Egipto), hojas de papel o libros fisicamenteexistentes. En tiempos actuales se tiene otro medio para guardar la informacion,es decir, existe un computador en el cual la informacion es guardada en formadigital. Tal informacion cuando es colocada en la Internet es accesada por di-versas personas a las cuales se les da la facilidad para obtenerla; sin embargotambien existe informacion reservada para cierto grupo de personas, las cualessolamente ellas deben conocerla; es decir se desea asegurar la informacion, enotras palabras encriptarla. La encriptacion va mas alla, pues es posible hacertransacciones comerciales con movimiento de dinero via Internet.

La teorıa de numeros contribuye mucho para la creacion de los metodos deencriptacion, donde los numeros mas importantes son los enteros positivos, enespecial los numeros primos1.

3.1. Que es la teorıa de numeros

Es la rama de la matematica que en general esta relacionada con el estudiode las propiedades de los numeros y en particular con el estudio de los numerosenteros. De acuerdo con los metodos usados esta teorıa se subdivide en diversoscampos de estudio los cuales se clasifican en:

1 Teorıa de numeros elemental: En esta teorıa los numeros enteros sonestudiados sin el uso de las tecnicas de otros campos de la matematica. Lostemas de estudio son la divisibilidad, el algoritmo de Euclides para hallarel maximo comun divisor, factorizacion de numeros enteros en numerosprimos, congruencia (concepto creado por Carls F. Gauss2), etc.

1Estudiado hace 2500 anos por los griegos.2(1777 - 1855) Llamado el principe de la matematica, con su libro Disquisitiones Arith-

meticae escrito en 1801 establece los fundamentos de la teorıa de numeros moderna. Gausstambien trabajo en geometrıa, algebra, , analisis, astronomia y fısica matematica, pero supreferencia era la teorıa de numeros.

33

Page 34: Aplicacion de La Criptografia

34 CAPITULO 3. TEORIA DE NUMEROS

Figura 3.1: Carl F. Gauss.

2 Teorıa de numeros analıtica: Para el estudio de los numeros enteros,esta teorıa emplea toda la maquinaria del calculo y del analisis complejo.Ejemplos tenemos el teorema del numero primo y la hipotesis del Riemann(actualmente es un problema abierto)

Figura 3.2: Riemann.

3 Teorıa de numeros algebraica: En esta teorıa el concepto de numero seexpande a los numeros algebraicos los cuales son raices de polinomios concoeficientes racionales. Estos dominios contienen elementos que analogosa los enteros, llamados enteros algebraicos.

4 Teorıa de numeros geometrica: Tradicionalmente llamado geome-trıa de numeros, es aquella que incorpora todas las formas de geometrıa.Todo empezo con el teorema de Minkowski acerca de los puntos latice enconjuntos convexos.

5 Teorıa de numeros combinatoria: Estudia los denominados proble-mas numero-teoricos, los cuales involucran ideas combinatorias en sus for-mulaciones o soluciones. El fundador de esta rama de la teorıa de numerosfue Paul Erdos3. En este campo los metodos algebraicos y analıticos sonrobustos.

3(1913 - 1996) Matematico de nacionalidad hungara, muy famoso por sus elegantes demos-traciones en problemas matematicos aparentemente no solubles, especialmente en teorıa denumeros. Fundo la matematica discreta y es considerado como uno de los matematicos masproductivos, mas 1500 papers producidos.

Page 35: Aplicacion de La Criptografia

3.2. DIVISIBILIDAD 35

Figura 3.3: Paul Erdos.

6 Teorıa de numeros computacional: Estudia los algoritmos mas rele-vantes, tales como el algoritmo para testar la primalidad de los numerosprimos y la factorizacion de numeros enteros los mismos que son aplicadosen criptografia.

3.2. Divisibilidad

La divisibilidad de entre dos enteros es un tema basico en la teorıa de nume-ros.Definicion (divisibilidad): Sean los numeros a 6= 0, b ∈ Z. Entonces a es divi-sible por b, si ∃ c ∈ Z tal que b = ac. Por notacion a|b.Ejemplos

13|182; −3|33;

Propiedad 1: ∀a, b, c, m, n ∈ Z se cumple

(a) a|a.

(b) Si a|b y b|c, entonces a|c.(c) Si a|b y a|c, entonces a|(bx + cy),∀x, y ∈ Z.

(d) Si a|b y b|a, entonces a = +b o a = −b.

(e) Si a|b y b|c, entonces a|c.(f) Si c|a y c|b, entonces c|(ma + nb.

EjemploSi 11|66 y 66|198, entonces 11|198.

Definicion (division): Si a y b ∈ Z, con b ≥ 1, entonces la division ordinaria dea por b esta dada por la siguiente expresion:

a = qb + r, donde 0 ≤ r < b

Observacion:Sean los numeros a, b ∈ Z, con b 6= 0. Entonces r = a mod b = a− bba/bc y

q = a div b = ba/bc.

Page 36: Aplicacion de La Criptografia

36 CAPITULO 3. TEORIA DE NUMEROS

Ejemplos3;−12; 21; 342;−1113 son divisibles por 3.

Ejemplo214/6. Entonces q = 214 div 6 = b214/6c = b35,666c = 35

r = 214 mod 6 = 214− 6b214/6c = 4

Ejemplo114/7. Entonces q = −17

r = 5, pues −114 = (−17)(7) + 5

Ejemplos11 mod 4 = 3; 22 mod 5 = 2

Propiedad 2c ∈ Z es comun divisor de a y b, si se cumple que c|a y c|b.

3.3. MCD, MCM y Numeros primos

En esta seccion empezamos a estudiar el maximo comun divisor y mınimocomun multiplo de numeros enteros positivos, ademas del concepto central de lateorıa de numeros, es decir los numeros primos. Estos numeros descubiertos porlos antiguos griegos poseen propiedades importantes e interesantes que a pesarde su antiguedad aun en nuestros dias continuan siendo investigados. Tal vez elinteres por continuar con esta investigacion se debe al teorema que formulo elmatematico griego Euclides4 en su obra los Elementos, donde se demuestra queexisten infinitos numeros primos. La aplicacion de estos numeros esta en loscriptosistemas.

Figura 3.4: Euclides.

4(350 ac.) Poco se conoce sobre su vida, en Los elementos (coleccion de 13 libros) Euclidespresenta una introducciıon a la geometrıa en el plana y solida, asi como la teorıa de numeros.El famoso algoritmo de Euclides esta en el libro VII, y la prueba de la existencia de infinitosnumeros primos esta en el libro IX.

Page 37: Aplicacion de La Criptografia

3.3. MCD, MCM Y NUMEROS PRIMOS 37

3.3.1. Maximo comun divisor (mcd)

El mcd de los numeros enteros a y b, esta dado por el numero entero d ∈ Z+,si se cumple lo siguiente:

(a) d es un divisor comun de a y b.

(b) Si c|a y c|b, entonces c|d.

Ejemplos

- mcd(12,15) = 15.

- mcd(0, 100) = 100.

Propiedad 3

(1) Si a y b ∈ Z+, entonces mcd(2a − 1, 2b − 1)= 2mcd(a,b) − 1

(2) Si a, b y c ∈ Z; a|bc y mcd (a, b)=1, entonces a|c.

(3) Si a, b y c ∈ Z; a|c, b|c y mcd(a, b)=1, entonces ab|c.

(4) Si a1, . . . , an ∈ Z, no todos ceros, entonces el

mcd(a1, . . . , an) = mcd(a1, . . . , an−2,mcd(an−1, an)). (3.1)

(5) Si a, b ∈ Z+, con a > b, entonces mcd(a, b) = mcd (b, a mod b).

Ejemplos

- Sean a = 3, b = 5. Entonces el mcd(23 − 1, 25 − 1) = 2mcd(3,5) − 1.

- mcd(18, 24, 36) = mcd(18, mcd(24,36)) = mcd(18, 12) = 6.

Algoritmo de Euclides

Es un metodo sistematico que sirve para hallar el mcd de dos numeros enterospositivos. El metodo fue creado por el matematico de origen griego llamadoEuclides y fue escrito en la obra Los Elementos.

Entrada: a, b ∈ Z+, con a ≥ bSalida : mcd(a, b)MIENTRAS (b 6= 0)

r ← a mod b;a← b;b← r;

FIN MIENTRASretornar (a)

Como todo algoritmo, en ciencia de la computacion, conocer su complejidadcomputacional es de vital importancia pues es necesario conocer el recurso que

Page 38: Aplicacion de La Criptografia

38 CAPITULO 3. TEORIA DE NUMEROS

se empleara. A continuacion se presenta un teorema debido a Gabriel Lame5.Este teorema da una estimacion de la cantidad de divisiones que son necesariaspara hallar el mcd usando el algoritmo de Euclides.

Teorema 3.1: La cantidad de divisiones necesarias para hallar el mcd de dosnumeros enteros positivos usando el algoritmo de Euclides, no excede cinco vecesel numero de dıgitos decimales en el menor de los dos numeros enteros.

DemostracionCuando se aplica el algoritmo de Euclides con los numeros a = r0 y b = r1,

con a > b, se obtiene la siguiente sucesion de ecuaciones:

r0 = r1q1 + r2, 0 ≤ r2 < r1

r1 = r2q2 + r3, 0 ≤ r3 < r2

...

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

rn−1 = rnqn

Observando las ecuaciones anteriores, notamos que se han realizado n divisiones,donde los coeficientes son qi ≥ 1, para i = 1, . . . , n−1 y qn ≥ 2, pues rn < rn−1.Por lo tanto tenemos:

rn ≥ 1 = f2

rn−1 ≥ 2rn ≥ 2f2 = f3

rn−2 ≥ rn−1 + rn ≥ f3 + f2 = f4

rn−3 ≥ rn−2 + rn−1 ≥ f4 + f3 = f5

...

r2 ≥ r3 + r4 ≥ fn−1 + fn−2 = fn

b = r1 ≥ r2 + r3 ≥ fn + fn−1 = fn+1

De este modo, para que existan n divisiones usadas por el algoritmo de Euclides,debemos tener

b ≥ fn+1 (3.2)

Usando el resultado fn > αn−2, para n ≥ 3, donde α = (1+√

5)2 , obtenemos

fn+1 > αn−1, n ≥ 2, α =

(1 +√

5)

2. (3.3)

5(1795 - 1870) Se graduo en la Ecole Polytechnique, estudio la teorıa matematica de laelasticidad e invento las coordenadas curvilineas. Hizo diversos descubrimientos en teorıa denumeros, incluyendo la estimacion de la cantidad de pasos empleados por el algoritmo deEuclides. Carl F. Gauss considero a Lame como el matematico frances mas famoso de suepoca.

Page 39: Aplicacion de La Criptografia

3.3. MCD, MCM Y NUMEROS PRIMOS 39

Por lo tanto, usando la transitividad entre (3.2) y (3.3) obtenemos b > αn−1.Como log10α > 1

5 , entonces tenemos

log10b > (n− 1) log10α >n− 1

5(3.4)

En consecuencian− 1 < 5 log10b (3.5)

Sea b un entero con k dıgitos decimales, de modo que

b < 10k (3.6)

Aplicando logaritmo a (3.6) obtenemos log10b < k. Reemplazando este ultimoresultado en (3.5) obtenemos n− 1 < 5k, pues k ∈ Z. Es decir n ≤ 5k. ♣

El siguiente resultado es una consecuencia del teorema de Lame e informaque el algoritmo de Euclides es eficiente:Corolario 3.2: El mcd de dos numeros positivos a y b, on a > b, se encuentrausando O((log2 a)3) operaciones bit.

DemostracionPor el teorema (3.1) sabemos que para hallar el mcd(a, b) es necesario O(log2 a)

divisiones, donde cada operacion usa O((log2 a)2) operaciones bit. Por lo tanto,por las operaciones de notacion asintotica, tenemos O((log2 a)3).

El algoritmo de Euclides presenta una variacion denominada algoritmo deEuclides extendido, el cual presentamos a continuacion:

Algoritmo de Euclides Extendido

Es un metodo sistematico que sirve para hallar el mcd de dos numeros enterospositivos, el cual es expresado como la combinacion lineal de dos numeros enterosx e y, es decir d = ax + by.

Entrada: a, b ∈ Z+, con a ≥ bSalida : d = mcd(a, b)SI (b = 0)

d← a; x← 1; y ← 0;FIN SIretornar (d, x, y)x1 ← 0; x2 ← 1;y1 ← 1; y2 ← 0;

MIENTRAS (b > 0)q ← ba

b c; r ← a− qb;x← x2 − qx1; y ← y2 − qy1;a← b; b← r;x2 ← x1; x1 ← x;y2 ← y1; y1 ← y;

FIN MIENTRASd← a; x← x2; y ← y2;retornar (d, x, y)

Ejemplomcm(252, 198) = 18, pues d = 18 = 4× 252− 5× 198.

Page 40: Aplicacion de La Criptografia

40 CAPITULO 3. TEORIA DE NUMEROS

3.3.2. Mınimo comun multiplo (mcm)

El mcm de dos numeros enteros a y b esta dado por un el entero d ∈ Z+, sise cumple lo siguiente:

(a) a|d y b|d.

(b) Si a|c y b|c, entonces d|c.Ejemplos

- mcm(12,15) = 60.

- mcm(2, 100) = 100.

Propiedad 4

(1) Si a y b ∈ Z+, entonces mcm(a, b)= a× b/mcd(a, b)

(2) Si a1, . . . , an ∈ Z, no todos ceros, entonces el

mcm(a1, . . . , nn−1, an) = mcm(mcm(a1, . . . , an−1), an). (3.7)

Ejemplos

- 2; 5; 13; 101; 163, etc.

Ejemplos

- Sean a = 12, b = 15. Entonces el mcm(12, 15) = 12 × 15/mcd(12, 15) =180/3 = 60.

- mcm(0, 100) = 0× 100/mcd(0, 100) = 0.

- mcm(18, 24, 36) = mcm(mcm(18, 24),36) = mcm(72, 36) = 72.

3.3.3. Numeros primos

Un numero primo es un entero positivo mayor que 1 que tiene dos divisoresenteros positivos, esto es que los divisores son el numero mismo y la unidad.

Ejemplos2; 5; 13; 101; 163, etc.

Un numero entero positivo mayor que 1 que no es primo, es llamado numerocompuesto.

Ejemplos

- 4 = 2× 2;

- 111 = 3× 37;

- 1001 = 7× 11× 13.

Page 41: Aplicacion de La Criptografia

3.3. MCD, MCM Y NUMEROS PRIMOS 41

A continuacion presentamos dos resultados los cuales establecen que existeninfinitos numeros primos.

Lema 3.3: ∀1 6= a ∈ Z+ tiene un divisor primo.

Teorema 3.4: Existen infinitamente muchos numeros primos.

DemostracionSupongamos que existe un cantidad finita de numeros primos

p1, p2, . . . , pn, donde n ∈ Z+

Sea Qn = p1p2 . . . pn +1 un entero obtenido multiplicando los n numeros primosmas 1. Entonces por el lema 3.3, Q tiene al menos un divisor primo q.

Mostraremos por contradiccion que q no es uno de los numeros primos dadosen pi, i = 1, 2, . . . , n.

En efectoSi q = pj para algun numero entero j con 1 ≤ j ≤ n, entonces Qn −

p1p2 . . . pn = 1, pues q divide a ambos terminos de esta ecuacion. Por la pro-piedad 1-f tenemos que q|1 lo cual es imposible pues los primos no dividen a1. Por lo tanto q no es un numero primo dado. Esta contradiccion asegura laexistencia de infinitos numeros primos. ♣

Nuestro interes por conocer los numeros primos radica en ellos son funda-mentales para los criptosistemas tal como el RSA, para tal efecto hacer un testde primalidad que distingue numeros enteros primos de los numeros compuestoses importante. El test de primalidad basico es el llamado trial division, el cualestablece lo siguiente: Un numero entero n es primo, si y solamente si n no esdivisible por cualquier otro primo que no exceda a la

√n.

En siguiente resultado es de vital importancia, pues es util para hallar todoslos numeros primos menores o iguales que un numero entero positivo n. Elteorema origina el procedimiento llamado Sieve de Eratosthenes, cuyo creadorfue el matematico de la antigua grecia, llamado Eratosthenes6.

Teorema 3.5: Si n es un numero entero compuesto, entonces n tiene un factorprimo que no excede a la

√n.

DemostracionComo n es un numero compuesto, entonces n = ab, donde a y b son enteros

con 1 < a ≤ b < n. Debemos tener a ≤ √n, pues caso contrario b ≥ a >√

ny ab >

√n√

n = n. Por el lema 3.3, a debe tener un divisor primo, el cual porpropiedad 1-e tambien es un divisor de n, el cual a su vez se nota que es menoro igual a

√n, esto es a ≤ √n. ♣

EjemploSea n = 10. Entonces como

√100 = 10, los primos menores que 10 son los

siguientes: 2, 3, 5 y 7, respectivamente. A continuacion se presenta, graficamente,el procedimiento de Eratosthenes aplicado a los primos menores que 10:

6(276 - 194 a.c.) Nacio en Cyrene,colonia al este de Egipto. estudio en escuela de Platonen Atenas. Escribio sobre matematicas, geografıa, astronomıa, historia, filosofıa y literatura.

Page 42: Aplicacion de La Criptografia

42 CAPITULO 3. TEORIA DE NUMEROS

- Multiplos mayores de 2, son marcados con un cırculo rojo:

- Multiplos mayores de 3, son marcados con un cırculo azul:

- Multiplos mayores de 5, son marcados con un cırculo azul oscuro:

- Multiplos mayores de 7, son marcados con un cırculo futzia:

Page 43: Aplicacion de La Criptografia

3.3. MCD, MCM Y NUMEROS PRIMOS 43

Finalmente, todos los numeros no marcados, distintos de 1, seran los numerosprimos buscados.

Desde hace cientos de anos, los matematicos han sentido el deseo de hallar elnumero primo mas grande, que el actual primo conocido; por ello quien descubratal numero primo se hace famoso, al menos por un tiempo, ingresando de estemodo al libro de los records. El investigador Mersenne afirma que el numeroprimo mas grande se calcula mediante la formula 2p − 1, siendo p un numeroprimo. Por ello, actualmente el mayor primo conocido esta dado por: 224036583−1.

Como estar seguro que un numero de muchos dıgitos es primo ?. Comocomentado anteriormente, esto se consigue con las trial divisions del numero npor los primos que no excedan a la

√n. Si n no es divisible por cualquiera de

tales primos, entonces n sera primo asi mismo. En consecuencia, una vez que seha determinado que n no es divisible por cualquier otro primo sin exceder su raızcuadrada, entonces habremos demostrado que n es primo. Esta demostracion esllamada certificate of primality.

Desafortunadamente el uso de la trial division para producir un certificadode primalidad es bastante ineficiente, en especial cuando el numero n es grande,es decir que usando el teorema del numero primo es posible estimar la cantidadde operaciones bit necesarios para mostrar que n es numero primo por trialdivisions.

El teorema afirma que existe aproximadamente√

n

log√

n=

2√

n

log n(3.8)

de numeros primos que no exceden a√

n. Computacionalmente dividir n porun entero m significa hacer O(log2n × log2m) operaciones bit. Por lo tanto, lacantidad de operaciones bit necesarias para mostrar que n es numero primo esal menos (

2√

n

log n

)(c log2 n) = c

√n (3.9)

donde log2 m se desprecia, pues es al menos 1.

Page 44: Aplicacion de La Criptografia

44 CAPITULO 3. TEORIA DE NUMEROS

Nuevamente este metodo, para mostrar que n es numero primo, es bienineficiente, pues es necesario no solamente conocer todos los primos menoresque√

n, sino que ademas es necesario hacer al menos una constante multiple de√n operaciones bit.

Observacion: Sabemos que un numero entero, en un computador, es transfor-mado en binario. Entonces la complejidad computacional de los algoritmos paradeterminar cuando un entero es primo, se medira en terminos de la cantidad dedıgitos binarios que tal numero tiene. Por lo tanto, un numero entero positivon, tendra log2 n + 1 dıgitos binarios. En consecuencia la notacion asintotica Oestimara la complejidad de un algoritmo en terminos de la cantidad de dıgitosbinarios que tiene el numero entero n, es decir en terminos de log2 n.

Finalmente, notamos que el algoritmo usando la Trial division, usado paradeterminar cuando n es un numero primo, es exponencial en terminos de lacantidad de dıgitos binarios de n o en terminos de log2 n, pues n = 2log2

n2 . Esta

complejidad exponencial hace que el algoritmo sea inviable de ser usado.

EjemploDeterminar cuando un numero entero de 200 dıgitos es primo, usando la

trial division, significa gastar billones de anos en un computador veloz.

Las investigaciones para probar cuando un numero entero es primo han idoen aumento, asi por ejemplo en 1975, G.L. Miller desarrolla un algoritmo elemplea O

((log n)5

)de operaciones bit. En 1983 L. Adleman, C. Pomerance

y R. Rumely desarrollan un algoritmo el cual emplea O((log n)c log log log n

)

operaciones bit. En el ano 2002 el profesor hindu M. Agrawal y sus alumnosN. Kayal y N. Saxena anuncian el desarrollo de un algoritmo que produce uncertificado de primalidad para un numero entero n. El algoritmo anunciado usaO

((log n)12

)operaciones bit.

Figura 3.5: M. Agrawal, N. Kayal y N. Saxena.

Teorema (fundamental de la aritmetica) 3.6: Todo 2 ≤ n ∈ Z se puedefactorizar y expresar como el producto de sus potencias primas.

n = pe11 pe2

2 . . . pek

k , pi 6= pj , ei ∈ Z+ (3.10)

Page 45: Aplicacion de La Criptografia

3.4. CONGRUENCIA 45

Propiedad 5

(1) Si a = pe11 pe2

2 . . . pek

k , y b = pf11 pf2

2 . . . pfk

k , donde ei ≥ 0 y fi ≥ 0. Entoncesel

mcd(a, b) = pmine1,f11 p

mine2,f22 . . . p

minek,fkk (3.11)

mcm(a, b) = pmaxe1,f11 p

maxe2,f22 . . . p

maxek,fkk (3.12)

(2) Sean a, b ∈ Z. Estos enteros son llamados relativamente primos o copri-mos, sı el mcd(a,b) = 1.

Ejemplosmcd(27 33 54 72 113 173 , 24 35 52 72 112 133) = 24 33 52 72 112

mcm(27 33 54 72 113 173 , 24 35 52 72 112 133) = 27 35 54 72 113 133 173

EjemploLos pares 6 y 35 son numeros coprimos, analogamente lo son 25 y 42 respec-

tivamente.

3.4. Congruencia

Este aporte matematico que hace posible trabajar con las relaciones de di-visibilidad, inventado por el matematico escoces Karls F. Gauss, es util para lacriptografıa. Formalmente se lo define del modo siguiente:

Definicion (congruencia): Sean n ∈ Z+ un numero entero positivo, sean ademaslos enteros a, b ∈ Z. entonces a es congruente con b modulo n, sı n divide a(a− b), es decir

a ≡ b(mod n) (3.13)

Ejemplos22 ≡ 4(mod 9), pues 9|(22− 4)

200 ≡ 2(mod 9), pues 9|(200− 2)

13 no es conguente con 2 modulo 9.

Teorema 3.7: Sean a, b dos numeros enteros, entonces a ≡ b(mod n) si y sola-mente existe un k ∈ Z tal que a = b + kn.

Demostracion

(→) Si a ≡ b(mod n), entonces n|(a − b). Esto significa, por definicion, queexiste un k ∈ Z con kn = a− b, de modo que a = b + kn.

(←) Si existe un k ∈ Z, con a = b + kn, entonces kn = a − b. Por lo tanto,n|(a− b) y en consecuencia a ≡ b(mod n).

Page 46: Aplicacion de La Criptografia

46 CAPITULO 3. TEORIA DE NUMEROS

Ejemplo19 ≡ −2(mod 7), pues existe un k = 3 tal que 19 = −2 + 3× 7

Propiedad 6Para todo a, a1, b, b1, c ∈ Z se cumple lo siguiente:

(1) a ≡ b(mod n) si y solamente a y b tienen el mismo residuo cuando se losdivide por n.

(2) Si a ≡ a1(mod n) y b ≡ b1(mod n), entonces son validos las siguientesafirmaciones: a + b ≡ a1 + b1(mod n) y a× b ≡ a1 × b1(mod n)

Teorema 3.8Para todo a, b, c ∈ Z se cumple lo siguiente:

(1) a ≡ a(mod ).

(2) Si a ≡ b(mod n), entonces b ≡ a(mod n).

(3) Si a, b, c son numeros enteros con a ≡ b(mod n) y b ≡ c(mod n), entoncesa ≡ c(mod n)

Por el teorema 3.8, vemos que el conjunto de enteros se divide en n conjuntosdiferentes, llamados clase de congruencia modulo n. Cada conjunto contieneenteros los cuales son mutuamente congruentes modulo n.

EjemploSea n = 4. Entonces las cuatro congruencias modulo 4 estan dado por:

. . . ≡ −8 ≡ −4 ≡ 0 ≡ 4 ≡ 8 . . . (mod 4)

. . . ≡ −7 ≡ −3 ≡ 1 ≡ 5 ≡ 9 . . . (mod 4)

. . . ≡ −6 ≡ −2 ≡ 2 ≡ 6 ≡ 10 . . . (mod 4)

. . . ≡ −5 ≡ −1 ≡ 3 ≡ 7 ≡ 11 . . . (mod 4)

Teorema 3.9: Sean a, b y n numeros enteros, con n > 0 tal que a ≡ b(mod n),entonces se tienen los siguientes casos:

(1) a + c ≡ b + c(mod n)

(2) a− c ≡ b− c(mod n)

(3) a× c ≡ b× c(mod n)

DemostracionSe deja para el lector.

Ejemplo19 ≡ 3(mod 8), entonces por el teorema (3.9) se cumple:

- 19 + 7 ≡ 3 + 7(mod 8)

- 19− 7 ≡ 3− 7(mod 8)

- 19× 2 ≡ 3× 2(mod 8)

Page 47: Aplicacion de La Criptografia

3.4. CONGRUENCIA 47

Teorema 3.10: Sean a, b, c y n numeros enteros, con n > 0 tal que simcd(c, n) = d y a× c ≡ b× c(mod n), entonces a ≡ b(mod n

d ).Demostracion

Se deja para el lector.

EjemploComo 50 ≡ 20(mod 15), mcd(10, 15) = 5 y 50 × 10 ≡ 20 × 10(mod 15),

entonces de acuerdo con el teorema se cumple 50 ≡ 20(mod 155 ).

Corolario 3.11: Sean a, b, c y n numeros enteros, tal que n > 0, mcd(c, n) = 1y a× c ≡ b× c(mod n), entonces a ≡ b(mod n).Demostracion

Se deja para el lector.

EjemploComo mcd(1, 3) = 1 y 5× 1 ≡ 2× 1(mod 3), entonces de acuerdo con el

corolario se cumple 5 ≡ 2(mod 3).

Teorema 3.12: Sean a, b, c,d y n numeros enteros, tal que n > 0, a ≡ b(mod n)y c ≡ d(mod n), entonces entonces se cumple

(1) a + c ≡ b + d(mod n)

(2) a− c ≡ b− d(mod n)

(3) a× c ≡ b× d(mod n)

DemostracionSe deja para el lector.

EjemploComo 13 ≡ 3(mod 5) y 7 ≡ 2(mod 5), entonces por el teorema 3.12 se

cumple

- 13 + 7 ≡ 3 + 2(mod 5)

- 13− 7 ≡ 3− 2(mod 5)

- 13× 7 ≡ 3× 2(mod 5)

Teorema 3.13: Sean a, b, k y n numeros enteros, tal que k > 0, n > 0,a ≡ b(mod n), entonces ak ≡ bk(mod n).Demostracion

Como a ≡ b(mod n), por definicion se cumple n|(a− b). Ademas como

ak − bk = (a− b)(ak−1 + ak−2b + . . . + abk−2 + bk−1)

vemos que (a − b)|(ak − bk). Por lo tanto n|(ak − bk), esto es por definicion setiene que ak ≡ bk(mod n). ♣Ejemplo

Sean k = 3 y 7 ≡ 2(mod 5), entonces por el teorema se cumple 73 ≡23(mod 5).

Page 48: Aplicacion de La Criptografia

48 CAPITULO 3. TEORIA DE NUMEROS

Teorema 3.14: Sean a, b numeros enteros, con n1, n2, . . . nk numeros enterospositivos; sean ademas las relaciones a ≡ b(mod n1), a ≡ b(mod n2) . . . , a ≡b(mod nk). Entonces a ≡ b(mod [n1, n2, . . . , nk]), donde [n1, n2, . . . , nk] es elmcm de n1, n2, . . . , nk.

DemostracionComo por hipotesis a ≡ b(mod n1), a ≡ b(mod n2) . . . , a ≡ b(mod nk),

entonces por definicion n1|(a−b), n2|(a−b), . . ., nk|(a−b). Por tanto se cumple

[n1, n2, . . . , nk]|(a− b)

De este ultimo resultado podemos deducir que se cumple por definicion de con-gruencia a ≡ b(mod [n1, n2, . . . , nk]). ♣

Corolario 3.15: Sean a, b numeros enteros, con n1, n2, . . . nk numeros ente-ros positivos donde cada par de ellos son primos relativos; sean ademas lasrelaciones a ≡ b(mod n1), a ≡ b(mod n2) . . . , a ≡ b(mod nk). Entonces a ≡b(mod n1n2 . . . nk)

DemostracionSe deja para el lector.

3.5. Enteros modulo n: Zn

Este conjunto especial de numeros enteros, se define como el conjunto deenteros dado por 0, 1, . . . , n − 1. Como en todo conjunto, en los Zn tambiense pueden efectuar operaciones tales como adicion, sustraccion y multiplicacionmodulo n. Su importancia esta en que es muy usado en los criptosistemas crip-tograficos.

3.5.1. Operaciones en Zn

(1) Adicion

Sean a, b ∈ Zn, la adicion modular se define por

(a + b)mod n =

a + b a + b < na + b− n a + b ≥ n

EjemploSea el conjunto Z15 = 0, 1, . . . , 14. La adicion de los numeros 6 ∈ Z15

y 9 ∈ Z15 esta dado por 0 ∈ Z15, pues por definicion de los Zn se tiene que6 + 9 ≡ 0(mod 15).

EjemploSea el conjunto Z25 = 0, 1, . . . , 24. La adicion de los numeros 13 ∈ Z25

y 16 ∈ Z25 esta dado por 4 ∈ Z25, pues por definicion se tiene que 13 + 16 ≡4(mod 25).

Page 49: Aplicacion de La Criptografia

3.5. ENTEROS MODULO N: ZN 49

(2) Multiplicacion

Siendo a, b ∈ Zn, la multiplicacion modular se efectua simplemente multi-plicandolos como si fueran numeros enteros comunes, para luego coger el restode la division de tal producto por n.

EjemploSea el conjunto Z25 = 0, 1, . . . , 24. La multiplicacion de 13 por 16 es 8,

pues 13× 16 ≡ 8(mod 25).

(3) Inverso multiplicativo

Dados los numeros enteros a y n > 0, el inverso multiplicativo de a modulon esta dado por el numero entero y ∈ Zn, tal que a× y ≡ 1(mod n).

Es importante tener en cuenta que si y existe, entonces es unico, y a esllamado invertible. Por notacion, el inverso de a se denota por a−1.

EjemploEn Z9 = 0, 1, . . . , 8 los elementos invertibles son 1, 2, 4, 5, 7, 8, pues por

ejemplo el inverso de 4 es 7 ya que 4× 7 ≡ 1(mod 9). Analogamente, el inversode 7 es 4, pues 7× 4 ≡ 1(mod 9).

Propiedad 7Sea a ∈ Zn, entonces a es invertible si y solamente si el mcd(a, n) = 1.

EjemploSea Z9 = 0, 1, . . . , 8, entonces 2 es invertible, pues el mcd(2, 9) = 1.

Analogamente lo es 4, pues el mcd(4, 9) = 1.

Algoritmo para el inverso multiplicativo

Entrada: a ∈ Zn

Salida : Existencia del inversoHallar x e y tal que ax + ny = dSI (d > 1)

Inverso no existe;CASO CONTRARIO;

retornar (x)

(4) Division

Sean a, b ∈ Zn. La division de a por b modulo n esta dado por el productode a con b−1 modulo n.

Podemos notar que la division modular es posible, solamente si b es invertiblemodulo n.

EjemploSea Z9 = 0, 1, . . . , 8 el conjunto de los numeros enteros modulo 9,

entonces considerando 3 ∈ Z9 y 4 ∈ Z9 tenemos que 3 ÷ 4(mod 9) = 3, puescomo 4−1 = 7 entonces tenemos que 3× 7(mod 9) = 3.

Page 50: Aplicacion de La Criptografia

50 CAPITULO 3. TEORIA DE NUMEROS

(5) Exponenciacion

La exponenciacion modular es otra operacion basica muy util para la cripto-grafıa. El siguiente algoritmo emplea una representacion binaria de un numeroentero k de modo que k = k020 +k121 + . . .+kt2t, donde cada ki es de la formabinaria, esto es ki = 0, 1.Ejemplo

Sea Z9 = 0, 1, . . . , 8 un conjunto de numeros enteros modulo 9. Enton-ces 5 ∈ Z9 se puede representar por 5 = 1× 20 + 0× 21 + 1× 22.

Algoritmo para exponenciacion

Entrada: a ∈ Zn, k ∈ Z tal que 0 ≤ k < n,con una representacion binaria.

Salida : akmod nb← 1;SI (k = 0)

retornar (b)A← a;SI (k0 = 1)

b← a;PARA (i = 1 : t)

A← A2mod n;SI (ki = 1)

b← Ab mod n;FIN PARA;

retornar (b)

EjemploSea Z1234 = 0, 1, . . . , 1233, donde a = 5 ∈ Z1234 y k = 596. Entonces

El algoritmo reporta 5596mod( 1234) = 1013, donde 596 = 0× 20 + 0× 21 + 1×22 + 0× 23 + 1× 24 + 0× 25 + 1× 26 + 0× 27 + 0× 28 + 1× 29.

3.5.2. Grupo multiplicativo

Dado un numero entero n > 0, el grupo multiplicativo de Zn esta dado por:

Z∗n = a ∈ Zn/mcd(a, n) = 1 (3.14)

Los siguientes resultados nos ayudan a entender mejor el grupo multiplicativo.

- Si n es un numero primo, entonces Z∗n = a ∈ Zn/1 ≤ a ≤ n− 1.

- El orden de Z∗n esta dado por la cantidad de elementos que posee, es decir|Z∗n|.

EjemploSea Z9 = 0, 1, . . . , 8, entonces Z∗9 = 1, 2, 4, 5, 7, 8. Analogamente en

Z5 = 0, 1, . . . , 4, se tiene el siguiente grupo multiplicativo Z∗5 = 1, 2, 3, 4.

Page 51: Aplicacion de La Criptografia

3.6. FUNCION DE EULER φ 51

3.6. Funcion de Euler φ

Esta funcion tiene la propiedad de que su valor en un numero entero n, estadado por el producto de los valores de la funcion de Euler φ en las potenciasprimas que ocurren en la factorizacion de n. Una funcion con esta propiedad esllamado multiplicativo.

A continuacion se presentan dos definiciones muy importantes para la de-mostracion de los teoremas que tambien presentamos.

Definicion (Funcion aritmetica): Sea n ∈ Z+. Una funcion aritmetica es aque-lla funcion que esta definida para todo numero entero positivo.

Definicion (Funcion multiplicativa): Sean m,n numeros enteros positivos re-lativamente primos. Una funcion aritmetica f es llamada multiplicativa, si secumple f(mn) = f(m)f(n).f es completamente multiplicativa, si f(mn) = f(m)f(n), ∀m,n ∈ Z+.

EjemploLa funcion constante f(n) = 1, ∀n es completamente multiplicativa, pues

f(mn) = 1,f(m) = 1 = f(n).

EjemploLa funcion identidad g(n) = n, ∀n es completamente multiplicativa, pues

g(mn) = mn = g(m)g(n).

Teorema 3.16: Si f es una funcion multiplicativa y si ademas n = pa11 pa2

2 . . . pass

es la factorizacion prima del entero positivo n, entonces

f(n) = f(pa11 )f(pa2

2 ) . . . f(pass )

Teorema 3.17: Sea p un numero primo, entonces φ(p) = p − 1. Ademas, sip ∈ Z+ con φ(p) = p− 1, entonces p es primo.

Teorema 3.18: Sea p un numero primo y a ∈ Z+, entonces φ(pa) = pa − pa−1.

EjemploSea p = 5 y a = 3, entonces φ(53) = 53 − 53−1 = 100.

Teorema 3.19: Sean m y n numeros enteros positivos relativamente primos,entonces φ(mn) = φ(m)φ(n).

EjemploSea m = 5 y n = 3, entonces φ(5× 3) = φ(5)× φ(3)

= (5− 1)× (3− 1)= 8

Teorema 3.20: Sean ai ∈ Z+, pj numeros primos,donde i, j = 1 . . . k, n =pa11 pa2

2 . . . pak

k . Entonces

φ(n) = n(1− 1p1

)(1− 1p2

) . . . (1− 1pk

)

Page 52: Aplicacion de La Criptografia

52 CAPITULO 3. TEORIA DE NUMEROS

DemostracionComo φ es una funcion multiplicativa, entonces por el teorema 3.16 tenemos

que

φ(n) = φ(pa11 )φ(pa2

2 ) . . . φ(pak

k )

Ademas por el teorema 3.18 tenemos que

φ(paj

j ) = paj

j − paj−1j = p

aj

j (1− 1pj

)

para j = 1, 2, . . . , k.

Por lo tanto: φ(n) = pa11 (1− 1

p1)pa2

2 (1− 1p2

) . . . pak

k (1− 1pk

)

= pa11 pa2

2 . . . pak

k (1− 1p1

)(1− 1p2

) . . . (1− 1pk

)

= n(1− 1p1

)(1− 1p2

) . . . (1− 1pk

)

Ejemploφ(720) = φ(243251) = 720(1− 1

2 )(1− 13 )(1− 1

5 ) = 40

Teorema 3.21: Sea 2 < n ∈ Z+, entonces φ(n) es par.

Un criptosistema asimetrico es seguro si esta basado en la intratabilidad7 deciertos problemas computacionales, tales como los problemas de la factorizacionentera, la raız cuadrada modulo n, etc. En la siguiente seccion estudiamos estosproblemas.

3.7. Problema de factorizacion entera

Por el teorema fundamental de la aritmetica se sabe que cada numero enteropositivo puede ser escrito como el producto de numeros primos. En la presenteseccion nos centramos en este problema comentando los tipos de factorizacion loscuales son importantes para la criptografıa, pues es la base para la seguridad delos criptosistemas RSA y de Rabin. El problema se establece del modo siguiente:

Dado un numero entero n ∈ Z+, el problema es hallar la factorizacion de nes factores primos, es decir

n = pe11 pe2

2 . . . pek

k , con pi 6= pj , ∀i 6= j, ei ≥ 1

El problema de decidir cuando un numero entero es compuesto o es primo, engeneral es mas facil que el problema de factorizar, por ello antes de factorizarun numero es mejor primero testar para comprobar si tal numero es o no escompuesto. La factorizacion no trivial de n es de la forma n = ab, donde 1 <a < n y 1 < b < n, con a y b no necesariamente numeros primos. Si el valor den es grande, entonces es necesario contar con algoritmos que faciliten el trabajoen dos etapas, es decir que primero se obtengan los factores a y b y luego testarla primalidad de tales factores.

7No se conocen las pruebas de sus complejidades computacionales, solamente se conocensus lımites inferiores.

Page 53: Aplicacion de La Criptografia

3.7. PROBLEMA DE FACTORIZACION ENTERA 53

De acuerdo a su comportamiento computacional, la literatura reporta diver-sos algoritmos los cuales son clasificados en dos tipos a seguir:

3.7.1. Factorizacion de proposito especial

En este tipo de factorizacion el tiempo de ejecucion de los algoritmos depen-den de las propiedades de los factores de n. Los algoritmos conocidos son:

1. Algoritmo de division trial.

2. Algoritmo de Rho Pollard

3. Algoritmo de (p− 1) Pollard.

4. Algoritmo de curva elıptica.

El algoritmo de Rho Pollard es utilizado para hallar factores pequenos de ciertonumero compuesto.En efecto

Entrada: Un numero entero n que no sea una potencia prima.Salida : Factor no trivial d de na← 2;b← 2;PARA (i = 1, 2, . . .);

a← a2 + 1 mod n;b← b2 + 1 mod n;b← b2 + 1 mod n;d← mcd(a− b, n);SI (1 < d < n)

Retornar d;SI (d = n)

Retornar Sin exito;FIN PARA;

Los algoritmos Rho Pollard y (p− 1) Pollard, creados en 1974 por J.M. Po-llard, tienen como caracterıstica su lentitud para factorizar problemas difıciles,a menos que los numeros a factorizar tengan propiedades especiales.

EjemploSea n = 455459 un numero entero, al aplicar el algoritmo se obtiene el

factor 743. El otro factor se obtiene al dividir n entre el factor reportado por elalgoritmo, es decir 613.

EjemploSea n = 8051 un numero entero, el algoritmo reporta el factor no trivial 97.

El otro factor es 83.

3.7.2. Factorizacion de proposito general

En este tipo de factorizacion el tiempo de ejecucion de los algoritmos depen-den del tamano de n.

Page 54: Aplicacion de La Criptografia

54 CAPITULO 3. TEORIA DE NUMEROS

1. Algoritmo de quadratic sieve.

2. Algoritmo de number field sieve.

El metodo descrito mediante el algoritmo de Quadratic sieve creado por CarlPomerance en 1981, hizo posible por primera vez factorar numeros de mas ciendıgitos. Tuvo gran suceso cuando factorizo un entero de 129 dıgitos, conocidocomo RSA-129 cuya factorizacion fue considerado como un descubrimiento porlos creadores del RSA.

El algoritmo Quadratic sieve sigue los siguientes pasos:Entrada: Un numero entero compuesto n que

no sea una potencia prima.Salida : Factor no trivial d.Seleccionar el factor base p1, p2, . . . , pt, donde p1 = −1,pj, j ≥ 2 es el j − 1 esimo primo p, para el cual n es unresiduo cuadratico modulo p;Hallar m = b√nc;i← 1;MIENTRAS (i ≤ t + 1);

Hallar b = q(x) = (x + m)2 − n; //x = 0,±1,±2, . . .Testar cuando b es pt-suave. Si no lo es, escoger nuevo xe ir al paso anterior;SI (b es bt-suave)

ai ← (x + m);bi ← b;vi ← (vi1 , vi2 , . . . , vit), donde vij = eijmod 2, 1 ≤ j ≤ t;

FIN SIi← i + 1;

FIN MIENTRASEn Z2 hallar φ 6= T ⊆ 1, 2, . . . , t + 1 tal que

∑i∈T vi = 0;

Hallar x =∏

i∈T aimod n;PARA (j, 1 ≤ j ≤ t)

lj =∑

i∈Teij

2 ;FIN PARAy =

∏tj=1 p

ljj mod n;

SI (x ≡ ±y(mod n)En Z2 hallar φ 6= T ⊆ 1, 2, . . . , t+1 tal que

∑i∈T vi = 0;

Ir a computar otro x;FIN SId = mcd(x− y, n);Retornar d.

El valor de b es llamado suave si se cumple que b =∏t

j=1 peij

j .

En la actualidad el mejor algoritmo para factorizar numeros enteros con masde 115 dıgitos es el number field sieve, que inicialmente fue propuesto por J.M.Pollard y mejorado posteriormente por Buhler, Lenstra y Pomerance. Su exitolo tuvo cuando factorizo el numero entero de 160 dıgitos en el ano 2003, conocidocomo RSA-160.

Page 55: Aplicacion de La Criptografia

3.8. RESIDUO CUADRATICO 55

3.8. Residuo cuadratico

Definimos el concepto de residuo cuadratico y algunas propiedades de losresiduos cuadraticos. Ademas se estudia el sımbolo de Legendre el cual ayuda adecidir cuando un numero es residuo cuadratico de p, asi como sus propiedades.Asi mismo presentamos el criterio de Euler que nos permitira determinar cuandoa es un residuo cuadratico modulo p.

3.8.1. Residuo cuadratico y residuo no cuadratico

Sean p un numero primo impar, a un numero entero relativamente primocon p. Entonces tenemos la siguiente definicion:

Definicion (residuo cuadratico): Si n es un numero entero impar, entonces a esun residuo cuadratico de n, sı el mcd(a, n) = 1 y la congruencia x2 ≡ a(mod n)tiene solucion.

Podemos deducir que si la congruencia x2 ≡ a(mod n) no tiene solucion,entonces se dice que a no es residuo cuadratico de n.

EjemploSea n = 11. Entonces para determinar que enteros son residuos cuadraticos

de 11, debemos computar los cuadrados de los numeros enteros 1, 2, . . . , 10, esdecir

x2 ≡ a(mod m) =⇒ 12 ≡ 1(mod 11)x2 ≡ a(mod m) =⇒ 22 ≡ 4(mod 11)x2 ≡ a(mod m) =⇒ 32 ≡ 9(mod 11)x2 ≡ a(mod m) =⇒ 42 ≡ 5(mod 11)x2 ≡ a(mod m) =⇒ 52 ≡ 3(mod 11)x2 ≡ a(mod m) =⇒ 62 ≡ 3(mod 11)x2 ≡ a(mod m) =⇒ 72 ≡ 5(mod 11)x2 ≡ a(mod m) =⇒ 82 ≡ 9(mod 11)x2 ≡ a(mod m) =⇒ 92 ≡ 4(mod 11)x2 ≡ a(mod m) =⇒ 102 ≡ 1(mod 11)

Por lo tanto, los residuos cuadraticos son: 1, 3, 4, 5, 9 y los residuos no cuadrati-cos son: 2, 6, 7, 8, 10.

Lema 3.22: Sean p un numero primo impar, a un entero no divisible por p.Entonces la expresion x2 ≡ a(mod p) no tiene soluciones o tiene exactamentedos soluciones incongruentes modulo p.

Teorema 3.23: Sea p un numero primo impar, entonces existen exactamentep−12 residuos cuadraticos de p y p−1

2 residuos no cuadraticos de p entre losnumeros enteros 1, 2, . . . , p− 1.

Definicion (Sımbolo de Legendre): Sean p un numero primo e impar, a unnumero entero no divisible por p. Entonces el sımbolo de Legendre8 (a

p ) se

8(1752 - 1833) Fue profesor de la Ecole Militaire en Paris desde 1775 hasta 1780. En susmemorias publicadas en 1785 discute la ley de la reciprocidad cuadratica. Legendre escribio ellibro texto Elements de geometrie el cual fue usado por mas de cien anos.

Page 56: Aplicacion de La Criptografia

56 CAPITULO 3. TEORIA DE NUMEROS

define por.(

a

p

)=

1 si a es residuo cuadratico de p.−1 si a no es residuo cuadratico de p.

De acuerdo con la definicion anterior podemos notar que es posible tener unconjunto de residuos cuadraticos, denotado por Qp, cuyo valor es 1.

EjemploConsiderando el ejemplo anterior tenemos los siguientes sımbolos de Legen-

dre: (111

)=

(311

)=

(411

)=

(511

)=

(911

)= 1

(211

)=

(611

)=

(711

)=

(811

)=

(1011

)= −1

El siguiente criterio, llamado criterio de Euler, sirve para decidir cuando unnumero entero es un residuo cuadratico de un numero primo:

Teorema 3.24: Sean p un numero entero primo e impar, a un entero positivono divisible por p. Entonces

(ap

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

EjemploSean p = 23 y a = 5 Entonces

(523

)= −1, pues por el criterio de Euler se

tiene:(

523

) ≡ 5(23−1)/2 mod 23 =⇒ (523

)= −1

Por lo tanto a = 5 no es un residuo cuadratico de 23.

Teorema 3.25: Sea p un numero entero primo e impar, sean ademas a, b dosenteros no divisibles por p. Entonces

1. Si a ≡ b(mod p), entonces(

ap

)=

(bp

).

2.(

ap

)(bp

)=

(abp

).

3.(

a2

p

)= 1.

El sımbolo de Jacobi9 es una generalizacion del sımbolo de Legendre y es utilpara evaluar los sımbolos de Legendre asi como en la definicion de un tipo denumeros llamados pseudoprimos.

El siguiente algoritmo permite obtener el sımbolo de Jacobi:9(1804 - 1851) Carl Jacobi fue un matematico aleman perteneciente a una familia de

banqueros. Estudio en la Universidade de Berlin obteniendo su doctorado en 1825. En 1826estuvo en la Universidad de Konigsberg. Hizo numerosos aportes en teorıa numeros, analisis,geometrıa y mecanica. Tuvo mucho interes por la historia de la matematica.

Page 57: Aplicacion de La Criptografia

3.8. RESIDUO CUADRATICO 57

jacobi(a, n)

Entrada: Un numero entero n ≥ 3.Un numero entero a tal que 0 ≤ a < n.

Salida : Sımbolo de Jacobi.SI (a = 0)

Retornar 0SI (a = 1)

Retornar 1a = 2ea1; //a1 es un numero impar.SI (e es par)

s← 1;CASO CONTRARIO

SI ((n ≡ 1(mod 8)) ‖ (n ≡ 7(mod 8)))s← 1;

CASO CONTRARIOSI ((n ≡ 3(mod 8)) ‖ (n ≡ 5(mod 8)))

s← −1;SI ((n ≡ 3(mod 4)) & & (a1 ≡ 3(mod 4)))

s← −s;n1 ← n mod a1;SI (a1 = 1)

Retornar s;CASO CONTRARIO

Retornar (s, jacobi(n1, a1)).

Por lo estudiado anteriormente tenemos que existen los dos conjuntos si-guientes:

Jn = a ∈ Z∗n/ a tiene su sımbolo de Jacobi igual a 1

Qn = Conjunto de los residuos cuadraticos modulo n

Por lo tanto podemos considerar dos casos:

1. Si n = p es primo, entonces es facil decidir cuando a ∈ Z∗n es un residuocuadratico modulo n, pues a ∈ Qn ⇐⇒

(an

)= 1.

2. Si n = pq, donde p y q son numeros primos impares y distintos, entonces:Si a ∈ Jn, entonces a ∈ Qn ⇐⇒

(ap

)= 1.

Finalmente podemos afirmar que si la factorizacion de n es conocida, entoncesel problema de los residuos cuadraticos se soluciona calculando el sımbolo deLegendre.

Teorema 3.26: Existe un algoritmo de tiempo polinomial que computa el sımbo-lo de Jacobi ( a

n ), siempre que n es un numero impar grande mayor que 1 y a esrelativamente primo con n.

Page 58: Aplicacion de La Criptografia

58 CAPITULO 3. TEORIA DE NUMEROS

3.9. Problema de la raız cuadrada modulo n

El problema de la raız cuadrada modulo n es muy usado en criptografıa,donde para hallar la raız se debe tener en cuenta que un numero entero n esprimo o tal vez compuesto. Si n es primo, entonces la raız cuadrada modulo nes facilmente obtenida, pero si n es un numero compuesto entonces hallar talraız es difıcil ya que sus factores primos son desconocidos.

3.9.1. Raız cuadrada cuando n un numero primo

El siguiente algoritmo encuentra la raız cuadrada usando O((log p)4) opera-ciones bit:

Entrada: Un numero entero primo e impar p ∈ Z.a ∈ Z tal que 1 ≤ a ≤ p− 1;

Salida : Dos raıces cuadradas de a modulo p.Hallar el sımbolo de Legendre (a

p );SI ((a

p ) = −1)Retornar: a no tiene raız cuadrada;Terminar.

Seleccionar numeros enteros b, aleatoriamente, tal que1 ≤ b ≤ p− 1, hasta hallar un ( b

p ) = −1);Hallar p− 1 = 2s × t, donde t es impar;Usar el algoritmo de inverso multiplicativo para hallar a−1mod p;Usar el algoritmo de exponenciacion para hallar c← bt yr ← a

(t+1)2 mod p;

PARA (i = 1 : s− 1)d = (r2 a−1)2

s−i−1mod p;

SI (d ≡ −1(mod p)r ← rc mod p;

FIN SI;c← c2mod p;

FIN PARA;Retornar (r,−r);

EjemploSean los numeros p = 23 y a = 4. Entonces las raices son r = ±2.

EjemploSean los numeros enteros p = 101 y a = 80. Las raices reportadas por el

algoritmo anterior son r = ±79.

3.9.2. Raız cuadrada cuando n un numero compuesto

Para este caso se considera a n = pq, donde p y q son dos numeros primosdistintos e impares.

Decidir cuando a ∈ Z∗n es un residuo cuadratico modulo un numero enterocompuesto n, se cree que es un problema dificil. Por ello se hace uso del sımbolo

Page 59: Aplicacion de La Criptografia

3.9. PROBLEMA DE LA RAIZ CUADRADA MODULO N 59

que Jacobi ( an ) = −1 para decidir que a no es un residuo cuadratico. Por otro

lado, si ( an ) = 1 entonces decidir si a es un residuo cuadratico es un problema.

El siguiente algoritmo, efectua O((log p)3) operaciones bit, permite hallarraıces modulo n cuando se conocen los primos p y q, respectivamente:

Entrada: Un numero entero n y sus factores p y q.a ∈ Qn;

Salida : Cuatro raıces cuadradas de a modulo n.Hallar las raıces r y −r de a modulo p;Hallar las raıces s y −s de a modulo q;Usar algoritmo de Euclides para hallar c y d tal que cp+dq = 1;x← (rdq + scp)mod n;y ← (rdq − scp)mod n;Retornar (±x mod n,±y mod n);

Page 60: Aplicacion de La Criptografia

60 CAPITULO 3. TEORIA DE NUMEROS

Page 61: Aplicacion de La Criptografia

Capıtulo 4

Criptosistemas basados enteorıa de numeros

En esta seccion estudiamos criptosistemas de tipo simetrico y asimetico queutilizan teorıa de numeros. En el primer caso nos referimos al cifrado por carac-teres y al cifrado por bloque y flujo. Ademas comentamos el Data EncryptionStandard mas conocido con DES. Finalmente estudiamos algunos criposistemasasimetricos reportados por la literatura especializada.

4.1. Cifrado por clave simetrica

4.1.1. Cifrado por caracteres

En este tipo de cifrado se estudian sistemas basados en la transformacion decada letra del mensaje en texto plano en una letra diferente (o posiblemente lamisma), para producir el texto cifrado. Los metodos son llamados cifrado porcaracter o monografico, pues cada caracter es cambiado mediante una sustitu-cion; para tal efecto usaremos la sustitucion dada en la siguiente figura

Figura 4.1: Alfabeto y su equivalente numerico.

En la figura anterior podemos notar que existen 26! posibles maneras di-ferentes para producir una transformacion monogafica. Estudiaremos aquellasbasadas en la teorıa de numeros.

(S.1) Cifrado del CesarTuvo su origen con el emperador romano Julio Cesar1.

1La version mas moderna fue en los anos 1970.

61

Page 62: Aplicacion de La Criptografia

62CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Figura 4.2: Emperador romano Julio Cesar.

El proceso empieza transformando las letras del alfabeto en numeros, porello considerando a P como el equivalente numerico de una letra en el textoplano, y C como el equivalente de la correspondiente letra en el texto cifrado,tenemos la siguiente expresion denominada transformacion del Cesar:

C ≡ P + 3(mod 26), 0 ≤ C ≤ 25 (4.1)

Aplicando sucesivamente (4.1) en la figura 4.1, obtenemos la figura 4.6 dada acontinuacion:

Figura 4.3: Cifrado usando la transformacion del Cesar.

Notamos que ahora ya tenemos un texto cifrado expresado en letras. A con-tinuacion presentamos el proceso que se sigue para encriptar y desencriptar untexto.

Encriptacion

Entrada: Mensaje en texto plano m.Salida : Mensaje cifrado c.Dividir m en bloques de cinco caracteres;Convertir cada bloque a su equivalente numerico;Usar la transformacion del Cesar C ≡ P + 3(mod 26);Reemplazar el resultado obtenido por la transformaciondel Cesar por su equivalente numerico;

retornar (Retornar el texto cifrado.)

EjemploSea el siguiente mensaje: tbn estamos en el laboratorio esperandola. Al

aplicar el algoritmo obtenemos lo siguiente:

Page 63: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 63

- tbnes tamos enell abora torio esper andol a

- 19 1 13 4 18 19 0 12 14 18 4 13 4 11 110 1 14 17 0 19 14 17 8 14 4 18 15 4 170 13 3 14 110

- 22 4 16 7 21 22 3 15 17 21 7 16 7 14 143 4 17 20 3 22 17 20 11 17 7 21 18 7 203 16 6 17 143

- weqhv wdprv hqhoo derud wrulr hvshu dqgro d

EjemploSea el siguiente mensaje: jarm estamos en el salon de clases. Al aplicar

el algoritmo obtenemos lo siguiente:

- jarme stamo senel salon decla ses

- 9 0 17 12 4 18 19 0 12 14 18 4 13 4 1118 0 11 14 13 3 4 2 11 0 18 4 18

- 12 3 20 15 7 21 22 3 15 17 21 7 16 7 1421 3 14 17 16 6 7 5 14 3 21 7 21

- mduph vwdpr vhqho vdorq ghfod vhv

EjemploEl mensaje me gusta algebra universal, al ser encriptado por el algoritmo

reporta:

ph jxvwd dojheud xqlyhuvdo

Desencriptacion

Entrada: Mensaje en texto cifrado c.Salida : Mensaje plano m.Convertir cada bloque a su equivalente numerico;Usar la transformacion del Cesar C ≡ P − 3(mod 26);Cambiar los numeros obtenidos por los equivalentes en letras;Concatenar los caracteres obtenidos;

retornar (Retornar el texto plano.)

EjemploSea el siguiente mensaje: mduphvwdprvhqhovdorqghfodvhv. Al aplicar el

algoritmo obtenemos lo siguiente:

- mduph vwdpr vhqho vdorq ghfod vhv

Page 64: Aplicacion de La Criptografia

64CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

- 12 3 20 15 7 21 22 3 15 17 21 7 16 7 1421 3 14 17 16 6 7 5 14 3 21 7 21

- 9 0 17 12 4 18 19 0 12 14 18 4 13 4 1118 0 11 14 13 3 4 2 11 0 18 4 18

- jarme stamo senel salon decla ses

- jarm estamos en el salon de clases

(S.2) Transformacion afin

Una transformacion en general dada por

C ≡ aP + b(mod 26), 0 ≤ C ≤ 25 (4.2)

donde a y b son numeros enteros con mcd(a, 26) = 1 es llamado afin, cuandoa = 1.

Un analisis sobre el alfabeto de 26 caracteres establece que, usando la funcionde Euler, es posible hacer un total de 12 elecciones para el entero a y 26 eleccionespara el numero entero b; dando un total de 12 × 26 = 312 transformacionesposibles. Uno de ellos, usando (4.2), esta dado por

C ≡ P (mod 26) (4.3)

donde a = 1 y b = 0, respectivamente.

Si las relaciones entre el texto plano y el texto cifrado esta descrito por (4.2),entonces la relacion inversa se expresa mediante

P ≡ a−1(C − b)(mod 26), 0 ≤ P ≤ 25 (4.4)

donde a−1 es la inversa de a modulo 26. Esta inversa se encuentra usando lacongruencia a−1 ≡ aφ(26)−1 = a11(mod 26).

Sean a = 7 y b = 10 dos numeros enteros, usando (4.2) tenemos la siguientetransformacion encriptadora:

C ≡ 7P + 10(mod 26), 0 ≤ C ≤ 25 (4.5)

Para desencriptar, por (4.4), tenemos la transformacion siguiente:

P ≡ 15(C − 10)(mod 26), 0 ≤ P ≤ 25 (4.6)

es decir, (4.6) equivale a

P ≡ 15C + 6(mod 26), 0 ≤ P ≤ 25 (4.7)

donde 15 es la inversa de 7 modulo 26.

Page 65: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 65

La siguiente figura muestra las correspondientes letras cifradas usando (4.5)

Figura 4.4: Letras en texto cifrado usando la ecuacion (4.5).

En la figura notamos que, por ejemplo, en el texto plano la letra l correspondeal numero entero 11. En el texto cifrado al numero 9 le corresponde la letra j,pues 7 × 11 + 10 = 87, esto es que 87 ≡ 9(mod 26), siendo 9 el equivalentenumerico de j.

Encriptacion

Entrada: Mensaje en texto plano m.Salida : Mensaje cifrado c.Dividir m en bloques de cinco caracteres;Usar la transformacion C ≡ 7P + 10(mod 26);

retornar (Retornar el texto cifrado.)

EjemploSea el siguiente mensaje: tbn estamos en el laboratorio esperandola. Al

aplicar el algoritmo obtenemos lo siguiente:

- tbnes tamos enell abora torio esper andol a

- 19 1 13 4 18 19 0 12 14 18 4 13 4 11 110 1 14 17 0 19 14 17 8 14 4 18 15 4 170 13 3 14 11 0

- 13 17 23 12 6 13 10 16 4 6 12 23 12 9 910 17 4 25 10 13 4 25 14 4 12 6 11 12 2510 23 5 4 9 10

- nrxmg nkqeg mxmjj krezk nezoe mglmz kxfej k

En el mensaje podemos notar, por ejemplo, que al aplicar C ≡ 7P +10(mod 26),con P = 19 (corresponde a la letra elegida t), obtenemos C ≡ 133+10(mod 26),esto es C ≡ 143(mod 26), lo cual reporta un numero 13, cuyo equivalente comopuede verse en el texto cifrado es n.

EjemploEl mensaje jarm estamos en el salon de clases, cuando es encriptado se

obtiene lo siguiente:

- jarme stamo senel salon decla ses

Page 66: Aplicacion de La Criptografia

66CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

- . . .

- vkzqm gnkqe gmxmj gkjex fmyjk gmg

Desencriptacion

Entrada: Mensaje en texto cifrado c.Salida : Mensaje plano m.Usar la transformacion P ≡ 15C + 6(mod 26);Concatenar los caracteres obtenidos;

retornar (Retornar el texto plano.)

EjemploAl mensaje encriptado nrxmgnkqegmxmjjkrezknezoemglmzkxfejk, aplicando-

le el algoritmo desencriptador obtenemos lo siguiente:

- nrxmg nkqeg mxmjj krezk nezoe mglmz kxfej k

- tbnes tamos enell abora torio esper andol a

- tbn estamos en el laboratorio esperandola

En el mensaje c podemos notar, por ejemplo, que al aplicar P ≡ 15C+6(mod 26),con C = 13 (corresponde a la letra elegida n), obtenemos P ≡ 195+6(mod 26),esto es P ≡ 201(mod 26), lo cual reporta un numero 19, cuyo equivalente comopuede verse en el texto plano es t.

4.1.2. Cifrado por bloque y flujo

El cifrado por caracteres es vulnerable, pues el estar basado en la frecuenciade los caracteres en el texto cifrado lo hace debil ante los criptoanalistas. Anteesta situacion y para evitar la vulnerablidad, el uso de cifrados que sustituyenpor cada bloque del texto plano, de longitud especificada, un bloque de textocifrado de igual longitud, es la mejor alternativa. El cifrado por bloque tambienes llamado poligrafico.

(S.3) Cifrado de Vigenere

Fue creado por el diplomatico y criptologo frances Blaise de Vigenere2.

El metodo propuesto por Vigenere fue establece que en lugar de encriptarcada caracter de un mensaje en texto plano de igual modo, mejor cambiarlo porel cifrado de las letras de un modo diferente, es decir, la clave de un cifrado deVigenere consiste en la palabra e1e2 . . . en, donde cada letra es cambiado por suequivalente numerico k1, k2, . . ., kn.

2(1523 - 1596) Recibio una exelente educacion. A los 17 anos fue llevado a la corte francesay a los 22 aos fue secretario del Duke de Never. En 1549 estuvo en Roma como diplomatico,donde empieza a leer diversos libros de criptografıa de la epoca. Fue autor de mas de 20libros, siendo el mas conocido Traicte des Chiffres escrito en 1585. En este libro discute sobreel cifrado poli-alfabetico e introduce diversas variaciones.

Page 67: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 67

Figura 4.5: Blaise de Vigenere.

Encriptacion

Entrada: Mensaje en texto plano m.Clave k.

Salida : Mensaje cifrado c.Dividir m en bloques pi de longitud n;Convertir cada bloque pi a su equivalente numerico;Convertir cada caracter de k en su equivalente numerico;Usar ci ≡ pi + ki(mod 26), 0 ≤ ci ≤ 25, i = 1, . . . , n;retornar (Retornar el texto cifrado.)

EjemploSea el siguiente mensaje: m = millennium con la clave k = ytwok. Al

aplicar el algoritmo para encriptar, segun Vigenere obtenemos lo siguiente:

- El equivalente numerico de m y k es:p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 = 12 8 11 11 4 13 13 8 20 12

k1 k2 k3 k4 k5 = 24 19 22 14 10

- c1 ≡ p1 + k1(mod 26) =⇒ c1 ≡ 12 + 24(mod 26) =⇒ c1 = 10c2 ≡ p2 + k2(mod 26) =⇒ c2 ≡ 8 + 19(mod 26) =⇒ c2 = 1c3 ≡ p3 + k3(mod 26) =⇒ c3 ≡ 11 + 22(mod 26) =⇒ c3 = 7c4 ≡ p4 + k4(mod 26) =⇒ c4 ≡ 11 + 14(mod 26) =⇒ c4 = 25c5 ≡ p5 + k5(mod 26) =⇒ c5 ≡ 4 + 10(mod 26) =⇒ c5 = 14c6 ≡ p6 + k6(mod 26) =⇒ c6 ≡ 13 + 24(mod 26) =⇒ c6 = 11c7 ≡ p7 + k7(mod 26) =⇒ c7 ≡ 13 + 19(mod 26) =⇒ c7 = 6c8 ≡ p8 + k8(mod 26) =⇒ c8 ≡ 8 + 22(mod 26) =⇒ c8 = 4c9 ≡ p9 + k9(mod 26) =⇒ c9 ≡ 24 + 14(mod 26) =⇒ c9 = 8c10 ≡ p10 + k10(mod 26) =⇒ c10 ≡ 12 + 10(mod 26) =⇒ c10 = 22

- kbhzolgeiw

EjemploSea el siguiente mensaje: m = jarm estamos en el salon de clases con

la clave k = fatima. Al aplicar el algoritmo para encriptar, segun Vigenereobtenemos lo siguiente:

Page 68: Aplicacion de La Criptografia

68CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

- jarme stamo senel salon decla ses

- El equivalente numerico de m es:9 0 17 12 4 18 19 0 12 14 18 4 13 4 11 18 0 11 14 133 4 2 11 0 18 4 18

- El equivalente numerico de k es:5 0 19 8 12 1

- . . .

- Mensaje encriptado: oakuqs yafwee seeaml tnwmol fsxa

EjemploSea el siguiente mensaje: m = tbn estamos en el laboratorio esperandola

con la clave k = fatima. Al aplicar el algoritmo para encriptar, segun Vigenereobtenemos lo siguiente:

- tbnes tamos enell abora torio esper andol a

- . . .

- Mensaje encriptado: ybgmet fmhaqn jleino wamwdi telxqr fnwwxa

Desencriptacion

Entrada: Mensaje en texto cifrado c.Clave k.

Salida : Mensaje en texto plano m.Dividir c en bloques ci de longitud n;Convertir cada bloque ci a su equivalente numerico;Convertir cada caracter de k en su equivalente numerico;Usar pi ≡ ci − ki(mod 26), 0 ≤ ci ≤ 25, i = 1, . . . , n;retornar (Retornar el texto plano.)

EjemploSea el siguiente mensaje cifrado: c = ffflbcvfx con la clave k = zorro. Al

aplicar el algoritmo para desencriptar obtenemos lo siguiente:

- El equivalente numerico de c y k es:c1 c2 c3 c4 c5 c6 c7 c8 c9 = 5 5 5 11 1 2 21 5 23

k1 k2 k3 k4 k5 = 25 14 17 17 14

- p1 ≡ c1 − k1(mod 26) =⇒ p1 ≡ 5− 25(mod 26) =⇒ p1 = 6p2 ≡ c2 − k2(mod 26) =⇒ p2 ≡ 5− 14(mod 26) =⇒ p2 = 17p3 ≡ c3 − k3(mod 26) =⇒ p3 ≡ 5− 17(mod 26) =⇒ p3 = 14p4 ≡ c4 − k4(mod 26) =⇒ p4 ≡ 11− 17(mod 26) =⇒ p4 = 20p5 ≡ c5 − k5(mod 26) =⇒ p5 ≡ 1− 14(mod 26) =⇒ p5 = 13p6 ≡ c6 − k6(mod 26) =⇒ p6 ≡ 2− 25(mod 26) =⇒ p6 = 3p7 ≡ c7 − k7(mod 26) =⇒ p7 ≡ 21− 14(mod 26) =⇒ p7 = 7p8 ≡ c8 − k8(mod 26) =⇒ p8 ≡ 5− 17(mod 26) =⇒ p8 = 14p9 ≡ c9 − k9(mod 26) =⇒ p9 ≡ 23− 17(mod 26) =⇒ p9 = 6

Page 69: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 69

- groundhog

EjemploSea el siguiente mensaje cifrado: c = ybgmetfmhaqnjleinowamwditelxqrfnww-

xa con la clave k = fatima. Al aplicar el algoritmo para desencriptar obtenemoslo siguiente:

- ybgmet fmhaqn jleino wamwdi telxqr fnwwxa

- . . .

- tbnest amosen ellabo ratori oesper andola

- tbn estamos en el laboratorio esperandola

(S.4) Cifrado de Hill

Es otro tipo de cifrado por bloque creado por Lester S. Hill3, quien consideraque cada bloque de dos letras en texto plano debe ser reemplazado por otrobloque, tambien de dos letras, en texto cifrado.

Figura 4.6: Maquina de cifrado de Hill.

Encriptacion

Entrada: Mensaje en texto plano m.Salida : Mensaje cifrado c.Dividir m en bloques de longitud dos. Si m no es de longitudpar, entonces de debe agregar una letra al final del mensaje;Convertir cada bloque a su equivalente numerico;Usar c1 ≡ 5p1 + 17p2(mod 26), 0 ≤ c1 ≤ 25;

c2 ≡ 4p1 + 15p2(mod 26), 0 ≤ c2 ≤ 25;Reemplazar c1, c2 obtenido por su equivalente en letras;retornar (Retornar el texto cifrado.)

3(1891 - 1961) Nacio en Nueva York. Recibio su doctorado en matematicas en 1926 enla Universidad de Yale. Trabajo en la universidades de Montana, Princeton, Maine y Yale.Hill tuvo interes por las aplicaciones de la matematica a las comunicaciones, por ello desa-rrollo metodos para verificar la ocurrencia de numeros en el telegrafo, ası como un metodopara encriptar.

Page 70: Aplicacion de La Criptografia

70CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

EjemploSea el siguiente mensaje: tbn estamos en el laboratorio esperandola. Al

aplicar el algoritmo obtenemos lo siguiente:

- Texto plano dividido en bloques de longitud dos:

tb ne st am os enel la bo ra to rioe sp er an do la

- Equivalente numerico del texto plano:

19 1 13 4 18 19 0 12 14 18 4 134 11 11 0 1 14 17 0 19 14 17 814 4 18 15 4 17 0 13 3 14 11 0

- Para cada bloque usar la transformacion para encriptar, es decir:c1 ≡ 5p1 + 17p2(mod 26) =⇒ c1 ≡ 5× 19 + 17× 1(mod 26) =⇒ c1 = 8c2 ≡ 4p1 + 15p2(mod 26) =⇒ c2 ≡ 4× 19 + 15× 1(mod 26) =⇒ c2 = 13

c1 ≡ 5p1 + 17p2(mod 26) =⇒ c1 ≡ 5× 13 + 17× 4(mod 26) =⇒ c1 = 3c2 ≡ 4p1 + 15p2(mod 26) =⇒ c2 ≡ 4× 13 + 15× 4(mod 26) =⇒ c2 = 8

...

c1 ≡ 5p1 + 17p2(mod 26) =⇒ c1 ≡ 5× 11 + 17× 0(mod 26) =⇒ c1 = 3c2 ≡ 4p1 + 15p2(mod 26) =⇒ c2 ≡ 4× 11 + 15× 0(mod 26) =⇒ c2 = 18

- El resultado obtenido al aplicar la transformacion de encriptacion es:

8 13 3 8 23 19 22 24 12 14 7 325 25 3 18 9 6 7 16 21 0 13 68 12 7 11 23 11 13 13 19 14 3 18

- El equivalente en letras (del texto cifrado) es:

in di xt wy mo hdzz ds jg hq va ngim hl xl nn to ds

Desencriptacion

Es un proceso inverso semejante a la encriptacion, para ello se deben usarlas transformaciones:

p1 ≡ 17c1 + 5c2(mod 26)

p2 ≡ 18c1 + 23c2(mod 26)

EjemploSea el siguiente mensaje: indixtwymohdzzdsjghqvangimhlxlnntods. Al apli-

car el algoritmo respectivo obtenemos lo siguiente:

Page 71: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 71

- Dividiendo el texto cifrado en bloques de longitud dos:

in di xt wy mo hdzz ds jg hq va ngim hl xl nn to ds

- El equivalente numerico de cada bloque del texto cifrado es:

8 13 3 8 23 19 22 24 12 14 7 325 25 3 18 9 6 7 16 21 0 13 68 12 7 11 23 11 13 13 19 14 3 18

- Usando la transformacion para desencriptar, obtenemos:19 1 13 4 18 19 0 12 14 18 4 134 11 11 0 1 14 17 0 19 14 17 814 4 18 15 4 17 0 13 3 14 11 0

- El texto plano es:

tb ne st am os enel la bo ra to rioe sp er an do la

(S.5) Data Encryption Standard - DES

El cifrado por bloque mas importante que ha sido usado para aplicacionescomerciales, y por los gobiernos de los paises desarrollados durante los ultimos20 anos, ha sido el Data Encryption Algorithm - DEA el cual fue estandarizadoen 1977 como parte del DES. El DEA es un tipo de algoritmo para cifrado, queencripta bloques de 64 bits usando una clave de tambien 64 bits.

A pesar que el DEA no ha sido derrotado en el sentido de que no es facilmenteatacado, sin embargo es vulnerable cuando se le somete a un analisis por la fuerzabruta, es decir que mediante una busca exhaustiva sobre el DEA puede significarque en menos de un dıa se determinen las 256 posibles claves. Debido estadebilidad el National Institute of Standards and Technology - NIST decidio nocertificar el DES para que sea usado despues del ano 1998.

En febrero del ano 1997 el NIST anuncio que se empezaba a buscar el sucesorpara el DES, esto es buscaba un Advanced Encryption Standard - AES. El 12de septiembre de ese ano se formalizo la convocatoria, en la cual se establecianlas siguientes condiciones para los algoritmos candidatos:

1. Ser de dominio publico.

2. Ser un algoritmo de cifrado simetrico y soportar bloques de, como mınimo,128 bits.

3. Las claves de cifrado podran ser de 128, 192 y 256 bits.

4. Ser implementable en hardware y en software.

Se presentaron los siguientes quince trabajos diferentes para tal convocatoria:

1. CAST-256 (Entrust Technologies, Inc.).

Page 72: Aplicacion de La Criptografia

72CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

2. CRYPTON (Future Systems, Inc.).

3. DEAL (Richard Outerbridge, Lars Knudsen).

4. DFC (CNRS Centre National pour la Recherche Scientifique Ecole Nor-male Superieure).

5. E2 (NTT Nippon Telegraph and Telephone Corporation).

6. FROG (TecApro International, S.A.).

7. HPC (Rich Schroeppel).

8. LOKI97 (Lawrie Brown, Josef Pieprzyk, Jennifer Seberry).

9. MAGENTA (Deutsche Telekom AG).

10. MARS (IBM).

11. RC6 (RSA Laboratories).

12. RIJNDAEL (John Daemen, Vincent Rijmen).

13. SAFER+ (Cylink Corporation).

14. SERPENT (Ross Anderson, Eli Biham, Lars Knudsen).

15. TWOFISH (Bruce Schneier, John Kelsey, Doug Whiting, David Wagner,Chris Hall, Niels Ferguson).

En agosto de 1999 el NIST decidio como los 5 finalistas a: MARS, RC6, RIJN-DAEL, SERPENT y TWOFISH. Estos algoritmos finalistas fueron sometidos auna nueva evaluacion mas exhaustiva hasta el 15 de mayo del 2000. Durante losdıas 13 y 14 de abril de 2000 se discutieron los ultimos analisis de los algoritmosfinalistas. El 15 de mayo del 2000 finalizo el periodo publico de analisis. El 2de octubre del mismo ano mediante votacion se eligio el algoritmo ganador delconcurso. El resultado fue el siguiente:

- MARS: 13 votos.

- RC6: 23 votos.

- RIJNDAEL: 86 votos.

- SERPENT: 59 votos.

- TWOFISH: 31 votos.

Con este resultado el NIST selecciono como estandar para los Estados Unidos,el trabajo presentado por los investigadores Joan Daemen4 y Vincent Rijmen5

4(1965 -) Nace en Limburg, Belgica.En 1988 se gradua como Ing. electromecanico. Trabajacon grupo de investigacion COSIC, donde disena cifrados por bloque y flujo, asi como en lasfunciones de hash. En 1995 se gradua como doctor.

5(1970 - ) Nacio en Bruselas, Belgica. En 1993 se gradua como Ing. electronico en laUniversidad de Leuven. En 1997 se gradua como doctor con su tesis Cryptanalysis and designof iterated block ciphers en el Laboratorio ESAT/COSIC de la Universidad de Leuven. Trabajacomo colaborador del Dr. Joam Daemen, de donde uno de los proyectos realizados originael algoritmo Rijndael. Entre 2001 - 2003 fue profesor visitante en el Institute for AppliedInformation Processing and Communications de la Universidad de Tecnologıa en Austria;entre los anos 2004 - 2007 trabaja a dedicacion exclusiva en la misma universidad. Desdeoctubre del 2007 es profesor asociado en la Universidad de Leuven, trabajando nuevamenteen el laboratorio COSIC.

Page 73: Aplicacion de La Criptografia

4.1. CIFRADO POR CLAVE SIMETRICA 73

del Laboratorio COSIC en K.U. Leuven en Belgica.

Figura 4.7: J. Daemen y V. Rijmen.

El algoritmo AES para encriptar es capaz de usar claves simetricas de 128,192 y 256 bits, respectivamente, y bloques de 128 bits para desencriptar. Lacomplejidad del AES y el tamano de las claves que soporta lo hace resistente aataques por la fuerza bruta por muchos anos. El gobierno americano afirma queel AES permanecera seguro por al menos 20 anos.

(S.6) Cifrado de Vernam

Sea la sucesion ki, i = 1, . . . , de elementos del espacio de claves K llamadoflujo de claves. Un cifrado por flujo es aquel que remite una palabra en textoplano p1p2 . . ., usando el flujo de claves ki en una palabra de texto cifradoc1c2 . . ., donde ci = Eki(pi) es la funcion para encriptar. La desencripacion estadado por pi = Edi(ci), donde di es la clave para desencriptar

El cifrado de Vernam fue propuesto por Gilbert Vernam6 en 1917 para usarloen la encriptacion y desencriptacion de mensajes remitidos mediante telegrafo.

Figura 4.8: Hilbert Vernam.

6(1890 - 1960) Nacio en Nueva York. Despues de graduarse en el Worcester PolytechnicInstitute trabajo en AT & T, donde desarrolla un metodo para transmitir mediante teletipo,el primer sistema de criptografıa automatizada y segura. Tambien desarrollo una tecnicapara encriptar imagenes digitales. Vernam patento 65 inventos relacionados con criptografıay sistemas de comunicacion.

Page 74: Aplicacion de La Criptografia

74CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Encriptacion

Entrada: Mensaje en texto plano pi, i = 1 . . . mexpresado en bits.

Flujo de claves ki, i = 1 . . . m expresado en bits.Salida : Mensaje cifrado c.Usar la transformacion Eki(pi) ≡ ki + pi(mod 2), i = 1 . . . m;retornar (Retornar el texto cifrado.)

EjemploSea el siguiente mensaje: m = 011110111 con el flujo de claves k =

110001111. Al aplicar el algoritmo para encriptar, obtenemos lo siguiente:

Ek1(p1) ≡ k1 + p1(mod 2) =⇒ Ek1(p1) ≡ 1 + 0(mod 2) =⇒ Ek1(p1) = 1Ek2(p2) ≡ k2 + p2(mod 2) =⇒ Ek2(p2) ≡ 1 + 1(mod 2) =⇒ Ek1(p1) = 0

...Ek9(p9) ≡ k9 + p9(mod 2) =⇒ Ek9(p9) ≡ 1 + 1(mod 2) =⇒ Ek9(p9) = 0

Por lo tanto el texto m cifrado es: 101111000.

(S.7) Cifrado Autoclave

Es otro tipo de cifrado por flujo creado Vigenere, el cual usa una clave inicialespecial. Este tipo de cifrado usa la siguiente transformacion:

ci ≡ pi + ki(mod 26),

donde pi es el equivalente numerico del iesimo caracter del texto plano. Analo-gamente lo es ci en el texto cifrado. En lo referido al flujo de claves ki es elequivalente numerico respectivo. La clave inicial se denota por k1 = s, siendo sel equivalente numerico.

EjemploDado el mensaje hermit, con la clave inicial x (cuyo equivalente numerico

es 23) y el flujo de claves 7, 4, 17, 12 y 8, respectivamente. Encriptar el mensaje.En efecto

El equivalente numerico del mensaje esta dado por: 7 4 17 12 8 19. Al usarla transformacion encriptadora obtenemos lo siguiente:

c1 ≡ p1 + k1(mod 26) =⇒ c1 ≡ 7 + 23(mod 26) =⇒ c1 = 4c2 ≡ p2 + k2(mod 26) =⇒ c2 ≡ 4 + 7(mod 26) =⇒ c2 = 11

...c6 ≡ p6 + k6(mod 26) =⇒ c6 ≡ 19 + 8(mod 26) =⇒ c6 = 1

Por tanto, el texto cifrado en forma numerica obtenido es: 4 11 21 3 20 1 .Su equivalente en caracteres es: e l v d u b.

Para desencriptar un mensaje primero se debe conocer el valor de la claveinicial, luego para determinar el primer caracter del texto plano usar la siguientetransformacion:

Page 75: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 75

p1 ≡ c1 − s(mod 26)

A continuacion para obtener los siguientes caracteres del texto plano usar:

p2 ≡ c2 − p1(mod 26)p3 ≡ c3 − p2(mod 26)

...pi−1 ≡ ci−1 − pi−2(mod 26)pi ≡ ci − pi−1(mod 26)

EjemploDado el mensaje encriptado rmntu con la clave inicial f (cuyo equivalente

numerico es 5), desencriptar el mensaje.En efectoEl equivalente numerico del mensaje encriptado esta dado por: 17 12 13 19 20.

Al usar la transformacion desencriptadora obtenemos lo siguiente:p1 ≡ c1 − s(mod 26) =⇒ p1 ≡ 17− 5(mod 26) =⇒ p1 = 12p2 ≡ c2 − p1(mod 26) =⇒ p2 ≡ 12− 12(mod 26) =⇒ p2 = 0p3 ≡ c3 − p2(mod 26) =⇒ p3 ≡ 13− 0(mod 26) =⇒ p3 = 13p4 ≡ c4 − p3(mod 26) =⇒ p4 ≡ 19− 13(mod 26) =⇒ p4 = 6p5 ≡ c5 − p4(mod 26) =⇒ p5 ≡ 20− 6(mod 26) =⇒ p5 = 14

El texto plano en forma numerica obtenido es: 12 0 13 6 14. Su equivalenteen caracteres es: m a n g o .

4.2. Cifrado por clave asimetrica

Hasta hace poco tiempo el cifrado de la informacion estaba basada en latecnica de clave simetrica, es decir que la clave secreta era compartida por lasentidades participantes (Alicia y Bob).

Esto cambio en los anos 1970 cuando aparecio la denominada criptografıaasimetrica o criptografıa de clave publica, quien revoluciono la teorıa y la practi-ca basada en la existencia de un tipo especial de funcion one way conocida comotrapdoor function. Fueron James H. Ellis7 y Clifford C. Cocks8 de la agencia deinteligencia britanica Government Communication Headquarters - GCHQ, quie-nes descubrieron esta tecnica llamada Non-secret encryption.

La literatura criptografica afirma que el como distribuir la clave fue el mayorproblema para los militares britanicos en los anos 1960, por ello en 1969 Ellistuvo la idea de la conocida, actualmente, trapdoor function, es decir una funcionone way el cual puede ser facilmente invertida. Esta idea tambien la tuvieron,anos despues, Whitfield Diffie, Martin Hellman y Merkle.

En 1973 el joven investigador Clifford Cocks hizo una simple solucion delproblema iniciado por Ellis. El aporte hecho por Cocks fue redescubierto muchos

7(1924 - 1997) Ingeniero y matematico quien en 1970 cuando trabaja en la GCHQ, conci-bio la posibilidad del non-secret encryption.

8(1950 - ) Matematico britanico y criptografo de la GCHQ quien invento el primer algoritmoen 1973, ahora conocido como RSA. Su trabajo no fue reconocido, inicialmente, como tal puesfue considerado como informacion clasificada. Cocks permanecio como desconocido hasta 1997.

Page 76: Aplicacion de La Criptografia

76CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

anos despues por R. Rivest, A. Shamir y L. Adleman creadores del criptosistemaRSA.

4.2.1. Criptosistema non-secret de Cocks-Ellis

El criptosistema propuesto por Clifford Cocks fue una respuesta a la pruebade existencia de Ellis de la posibilidad de una encriptacion non-secret. Supon-gamos que Alicia desea escribir a Bob un mensaje privado para ellos, entoncesel Criptosistema non-secret de Cocks-Ellis trabaja tal como se describe a conti-nuacion:Generacion de la claves

(1) Bob escoje dos numeros primos p y q, tal que p no divide a q − 1 y q nodivide a p−1. Despues de esta eleccion Bob obtiene y hace publica la claven = pq.

(2) Para poder desencriptar, Bob usa el algoritmo de Euclides para hallar losnumeros x e y, de modo que satisfaga la relacion px ≡ 1(mod q − 1) yqy ≡ 1(mod p− 1).

(3) Bob nuevamente usa el algoritmo de Euclides extendido para hallar u y vrespectivamente, de modo que se cumpla up ≡ 1(mod q) y vq ≡ 1(mod p).Su clave privada (trapdoor) estara dada por (p, q, x, y, u, v).

Encriptacion

(1) Alicia divide un mensaje m en m1,m2, . . . mt, donde cada mi satisface0 ≤ mi < n. Cada bloque es encriptado usando la transformacion:

ci ≡ mni (mod n).

(2) Alicia remite cada bloque encriptado a Bob.

Desencriptacion

(1) Bob recupera un bloque del mensaje como:

ai ≡ cyi (mod p).

bi ≡ cxi (mod q).

(2) Bob puede recuperar, nuevamente, un bloque del mensaje como:

upbi + vqai ≡ mi(mod n).

EjemploGeneracion de la claves:

(1) Bob escoje dos numeros primos p = 5 y q = 7, tal que p no divide a q − 1y q no divide a p− 1. Entonces la clave publica sera n = pq = 35.

Page 77: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 77

(2) Para poder desencriptar, Bob usa el algoritmo de Euclides extendido yencuentra x = 5 e y = 3, pues 5× 5 ≡ 1(mod 6) y 7× 3 ≡ 1(mod 4).

(3) Bob nuevamente usa el algoritmo de Euclides y encuentra u = v = 3,pues satisfacen 3 × 5 ≡ 1(mod 7) y 3 × 7 ≡ 1(mod 5). Su clave privada(trapdoor) estara dada por (p, q, x, y, u, v) = (5, 7, 5, 3, 3, 3).

Encriptacion:

(1) Alicia tiene el mensaje m = 10 el cual lo encripta del modo siguiente:

c ≡ 1035(mod 35).

(2) Alicia remite c = 5 a Bob.

Desencriptacion:

(1) Bob recupera el bloque del mensaje como:

a ≡ 53(mod 5) =⇒ a = 0.

b ≡ 55(mod 7) =⇒ b = 3.

(2) Bob puede recuperar, nuevamente, el mensaje como:

3× 5× 3 + 3× 7× 0 ≡ m(mod 35) =⇒ m = 10.

4.2.2. Criptosistema RSA

De acuerdo con la literatura digital (Wikipedia), el criptosistema de clavepublica RSA es un algoritmo asimetrico basado en bloques, que utiliza una cla-ve publica y otra privada. La seguridad de este algoritmo radica en que no sepuede factorizar, rapidamente, un numero grande en factores primos, es decir elalgoritmo esta basado el problema matematico llamado problema de la factori-zacion entera, el cual es de alta complejidad computacional. La formulacion delRSA es similar al criptosistema propuesto por Cocks-Ellis.

El algoritmo fue creado en 1977 por Ronald Rivest9, Adi Shamir10 y LeonardAdleman11 en el MIT12 y patentado por el MIT en 1983 en Estados Unidos conel numero 4.405.829. Esta patente expiro el 21 de septiembre de 2000.

9(1948 - ) En 1969 estudio graduacion en la Universidad de Yale, y doctorado en cienciade la computacion en la Universidad de Stanford en 1974. Actualmente es profesor del MIT.Ha trabajado en machine learning, algoritmos computacionales y diseno VLSI.

10(1952 - ) Nacio en Israel. En 1972 se graduo en la Universidad de Tel Aviv. Es doctor enciencia de la computacion en el Weizmann Institute of Science, donde actualmente es profesoren el departamento de matematica aplicada. Shamir ha contribuido mucho en criptografıa.

11(1945 - ) Es graduado en matematica y doctor en ciencia de la computacion, estudiadosen la Universidad de California. Trabajo en el MIT. Actualmente trabaja en las areas de com-plejidad computacional, seguridad computacional, inmunologıa y biologıa molecular, ademasde criptografıa.

12Massachusetts Institute of Technology.

Page 78: Aplicacion de La Criptografia

78CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Figura 4.9: R. Rivest, A. Shamir y L. Adleman.

Generacion de la claves

(1) Alicia genera, aleatoriamente y del mismo tamano, dos numeros primosgrandes y diferentes p y q, respectivamente.

(2) n = pq.

(3) φ = (p− 1)(q − 1).

(4) Seleccionar, aleatoriamente, un numero entero e tal que mcd(e, φ) = 1,con 1 < e < φ.

(5) Usar el algoritmo de Euclides extendido para hallar el numero entero dtal que ed ≡ 1(mod φ), donde 1 < d < φ.

(6) La clave publica de Alicia es (n, e) y la clave privada es d.

Encriptacion

(1) Bob recibe la clave publica de Alicia (n, e).

(2) Representa el mensaje en texto plano m, como un numero entero en elintervalo [0, n− 1].

(3) Computar c ≡ memod( n).

(4) Remitir el texto cifrado c a Alicia.

Page 79: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 79

Desencriptacion

(1) Para recuperar m, Alicia usa la transformacion m ≡ cdmod( n).

EjemploGenerar las claves publica y privada:

(1) Alicia genera p = 43 y q = 59, respectivamente.

(2) n = 43× 59 = 2537.

(3) φ = (43− 1)(59− 1) = 2436.

(4) Seleccionar e = 13, pues mcd(13, 2436) = 1 y ademas 1 < e = 13 < 2436.

(5) Usando el algoritmo de Euclides extendido se obtiene d = 937, pues 13×d ≡ 1(mod 2436) con 1 < 937 < 2436.

(6) La clave publica de Alicia es (n, e) = (2537, 13) y la clave privada esd = 937.

EjemploSea el texto plano siguiente: m = public key cryptography. Para encriptar

m seguimos los siguientes pasos:.

(1) Bob recibe la clave publica de Alicia (n, e) = (2537, 13).

(2) Usando la tabla dada en la figura 4.1 representamos numericamente elmensaje m:

public : 15 20 1 11 8 2key : 10 4 24cryptography : 2 17 24 15 19 14 6 17 0 15 7 24

Bob agrupa el mensaje representado numericamente en bloques de longi-tud dos:

15 20 01 11 08 02 10 0424 02 17 24 15 19 14 0617 00 15 07 24 23

(3) Para cada bloque usando c ≡ memod( n) obtenemos el texto cifrado, esdecir

c ≡ (1520)13mod( 2537) =⇒ c = 95.c ≡ (0111)13mod( 2537) =⇒ c = 1648.

...

c ≡ (2423)13mod( 2537) =⇒ c = 1084.

(4) Remitir el texto cifrado c a Alicia.

00 95 16 48 14 10 12 9908 11 23 33 21 32 03 7011 85 19 57 10 84

Page 80: Aplicacion de La Criptografia

80CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

EjemploDesencriptar el mensaje cifrado obtenido en el ejemplo anterior.

Alicia ha recibido un mensaje encriptado, para leer el contenido ella debeaplicar el algoritmo de descifrado.

(1) Para cada bloque del texto cifrado, Alicia usara m ≡ cdmod( n), es decir

m ≡ (0095)937mod( 2537) =⇒ m = 1520.m ≡ (1648)937mod( 2537) =⇒ m = 0111.

...

m ≡ (1084)937mod( 2537) =⇒ m = 2423.

Expresando los resultados obtenidos por sus equivalentes en letras, ten-dremos el texto plano buscado.

4.2.3. Criptosistema de Rabin

Este criptosistema es asimetrico cuya seguridad esta basada en la compleji-dad del problema de la factorizacion y el problema de la raız cuadrada moduloun numero compuesto n, tiene cierta similaridad con el RSA. El algoritmo deeste sistema criptografico fue publicado en enero de 1979 por el investigadorde origen israeli Michael Oser Rabin13, quien junto con Dana Scott ganaron elpremio A. Turing por su trabajo sobre automatas no deterministas, el cual esun concepto clave para la teorıa de complejidad computacional, en particularpara describir las clases de complejidad P y NP.

Figura 4.10: Michael Rabin.

Generacion de la claves

(1) Alicia genera, aleatoriamente dos numeros primos grandes, del mismo ta-mano y diferentes p y q, respectivamente.

13(1931 - ) Nacio en Breslau, Alemania, recibio su M.Sc. en la Universidad Hebrea deJerusalen en 1953 y su Ph.D. en la Universidad de Princeton en 1956. Es un cientıfico encomputacion. En 1975 inventa el test de primalidad llamado Miller-Rabin, el cual determinarapidamente si un numero es primo o compuesto. En 1987 junto con Richard Karp crean elalgoritmo para busca de cadenas llamado algoritmo Rabin-Karp. Actualmente es profesor enla Universidad de Harvard, asi como tambien en la Universidad Hebrea de Jerusalen.

Page 81: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 81

(2) n = pq.

(3) La clave publica de Alicia es n y la clave privada es (p, q).

Encriptacion

(1) Bob recibe la clave publica de Alicia n.

(2) Representa el mensaje en texto plano m, como un numero entero en elintervalo [0, n− 1].

(3) Computar c ≡ m2mod( n).

(4) Remitir el texto cifrado c a Alicia.

Desencriptacion

(1) Para recuperar m, Alicia usa el algoritmo para encontrar las raıces m1,m2, m3 y m4.

(2) Como el mensaje remitido por Bob esta en una de las raıces, Alicia debedecidir en cual de tales raıces esta el mensaje m.

EjemploGenerar las claves publica y privada:

(1) Alicia genera p = 277 y q = 331, respectivamente.

(2) n = 277× 331 = 91687.

(3) La clave publica de Alicia es n = 91687 y la clave privada es (p, q) =(277, 331).

EjemploSea el texto plano dado en binario por m′ = 1001111001. Para encriptar m′

seguimos los siguientes pasos:

(1) Bob recibe la clave publica de Alicia n = 91687.

(2) Suponiendo que los ultimos seis bits del mensaje original son necesariosantes de la encriptacion, tenemos que para encriptar m′ = 1001111001Bob reproduce los ultimos seis bits de m′ para obtener el mensaje de 16bits, esto es m = 1001111001111001 el cual equivale a 40569. Notamosque m ∈ [0, 91686].

(3) Para encriptar m usamos c ≡ m2mod( n), es decir

c ≡ (40569)2mod( 91687),=⇒ c = 62111.

(4) Remitir el texto cifrado c = 62111 a Alicia.

EjemploDesencriptar el mensaje cifrado obtenido en el ejemplo anterior.

En efecto

Page 82: Aplicacion de La Criptografia

82CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

(1) Para recuperar m, usamos el algoritmo de las raıces, es decir

m1 = 69654 = 10001000000010110.m2 = 22033 = 101011000010001.m3 = 40569 = 1001111001111001.m4 = 51118 = 1100011110101110.

(2) Alicia evalua las raıces obtenidas y observa que en el mensaje m3 existeuna redundancia. Por lo tanto, el mensaje original m′ esta en m3.

Como se puede encriptar en forma segura un mensaje de un bit ?

De acuerdo con la interrogante planteada, cualquier criptosistema asimetrico de-terminista tal como RSA y Rabin no son garantıa para asegurar la encriptacion,pues Eva podria verificar facilmente cuando el criptosistema satisface c = Ee(0)y c = Ee(1), pudiendo de este modo distinguir entre los dos mensajes. Entonces:Que se podria hacer ?.

Alicia y Bob, para encriptar, tendrıan que hacer uso de la aleatoriabilidad. Enefecto, considerando el RSA ellos tendrıan que asumir de que es difıcil recuperarel bit menos significante de un mensaje. Formalmente, el bit menos significantees el llamado predicado hard core del RSA bajo la suposicion del RSA.

Si Bob desea remitir un mensaje de un bit, entonces primero debe obtenerla clave publica de Alicia (n, e) y luego escoger un x ∈ Z∗n, con la propiedad deque el bit menos significante de x es m, m ∈ 0, 1. Entonces Bob encripta xusando c ≡ xe mod n y lo remite a Alicia. Alicia desencripta el mensaje de Bobcon su clave privada d, usando x ≡ cd mod n. Luego ella examina el bit menossignificante de x para comprobar si el mensaje es 0 o 1.

Para que Eva pueda conocer el mensaje, ella tendrıa que conocer el bit menossignificante; pero como este bit es un predicado hard core del RSA, entonces Evano tendra exito siendo su probabilidad signicante mayor de 1/2.

Lo siguiente nos ayuda a entender ciertos conceptos muy utiles para loscriptosistemas probabilısticos:

La complejidad teorica entre los problemas faciles con respecto a Alicia -Bob y los problemas difıciles con respecto a Eva, constituyen la base de lacriptografıa moderna. Esto supone que Eva tendra un lımite en cuanto a suscapacidades computacionales. Ademas es un error suponer que cualquier lımitede la capacidad computacional de Eva no efectara a Alicia y a Bob. Esto nosconduce a la siguiente suposicion:

Alicia, Bob y Eva solamente pueden ejecutar computacionesprobabilisticas en tiempo polinomial.

Si Bob y Alicia son capaces de encriptar y desencriptar facilmente, significaque los procedimientos son algoritmos (posiblemente probabilısticos) de tiempopolinomial. Ante esta situacion tenemos la siguiente interrogante: Como forma-lizar el idea de que Eva hace una computacion sobre un problema computacio-nalmente intratable, cuando ella trata de desencriptar un mensaje interceptadosin clave alguna?.

Page 83: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 83

Supongamos que conocemos que P 6= NP y por tanto que un problemaNP-difıcil no tiene un algoritmo de tiempo polinomial. Asumiendo que Aliciay Bob usan un criptosistema donde la desencriptacion para Eva es NP-difıcil,entonces: esto es garantıa que tal criptosistema de seguro ?. La respuesta esno, pues como no existe un algoritmo de tiempo polinomial para un problemaparticular, entonces no podemos asegurar que el problema siempre es difıcil parasolucionarlo.

Otra interrogante razonable es: Eva nunca sera capaz de desencriptar cual-quier criptosistema ?. La respuesta es no pues si Eva simplemente conjetura ointenta adivinar, entonces existe una pequena posibilidad que este haciendo locorrecto.

Para nuestro interes, es posible que Alicia y Bob esten tranquilos pues usanun criptosistema con el siguiente nivel de seguridad:

Si Eva usa cualquier algoritmo probabilıstico de tiempopolinomial, entonces la probabilidad que ella desencriptecorrectamente un mensaje aleatorio es negligible14.

Que significa negligible ?. Se necesita que la probabilidad de que Eva desencriptesea tan pequena como sea posible. Como Eva tiene el permiso de usar cualquieralgoritmo probabilıstico de tiempo polinomial, entonces necesitamos asegurar-nos que, aun, si ella repite su ataque una cantidad polinomial de veces, no tengaexito en su intento. Esto nos conduce a la siguiente definicion:

Definicion: Un funcion r : N → N es negligible, si para cualquier polinomiop : N → N existe un numero entero k0 tal que r(k) < 1

p(k) , para k ≥ k0.

De acuerdo con la definicion anterior, una funcion negligible es mas pequenoque el inverso de cualquier polinomio positivo, es decir p(k) ≥ 1,∀k ≥ 1. Pornotacion neg(.) denota una funcion B : 0, 1∗ → 0, 1 negligible.

A continuacion formalizamos la idea que una parte particular de informacionrelacionada con el mensaje le es dificil a Eva obtenerla desde un criptosistema.En efecto

Un predicado es una question del tipo si o no, es decir un predicado es unafuncion

B : 0, 1∗ → 0, 1.Informalmente, el predicado hard core de una funcion f one way, es un predica-do que es difıcil de computarlo cuando se da f(x), pero es facil de computarlocuando se conoce x. Si f es una funcion encriptadora, entonces esto correspon-de a una cuestion que Eva no puede responder cuando solamente se tiene elcriptosistema, pero que puede responder cuando se le da el mensaje.

Como un predicado solamente tiene dos valores posibles, entonces Eva siem-pre tendra un chance del 50% para responder correctamente B(x), aun sin co-nocer acerca de B(x), x o f(x). Decir que un predicado es difıcil de computar,significa que es inviable hacerlo.

14Insignificante.

Page 84: Aplicacion de La Criptografia

84CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Formalmente, un predicado B : 0, 1∗ → 0, 1 es un predicado hard corede una funcion f : 0, 1∗ → 0, 1∗, si y solamente si

1. Existe un algoritmo probabilıstico de tiempo polinomial que, dado x,computa B(x).

2. Para cualquier algoritmo probabilıstico A de tiempo polinomial y x ∈0, 1k se cumple

Pr[A(f(x)) = B(x)] ≤ 12 + neg(k).

Lema 4.1: Si B : 0, 1∗ → 0, 1 es un predicado hard core de la funcionf : 0, 1∗ → 0, 1∗, entonces

|Pr[B(x) = 0]− Pr[B(x) = 1]| ≤ neg(k), ∀x ∈ 0, 1k.

Por lo tanto, un predicado hard core es una funcion difıcil de computar y lasalida es un bit.

El siguiente resultado valida el bit menos significante de un mensaje encrip-tado usando el criptosistema RSA:

Teorema 4.2: Bajo la suposicion del uso del RSA, el bit menos significante delmensaje es un predicado hard core del criptosistema RSA.

Dada cualquier familia de funciones trapdoor fi : Di → Di con predicadoshard core Bi, entonces Alicia y Bob pueden encriptar un mensaje simple de unbit, asi como mensajes mas grandes. En las siguientes subsecciones estudiaremoscuatro esquemas de encriptacion probabilistica.

4.2.4. Encriptacion probabilıstica de un mensaje de un bit

Generacion de la claves

(1) Alicia selecciona una clave de longitud k y genera las claves publica yprivada expresada por (i, ti).

(2) Alicia hace publico la clave i y mantiene en secreto la clave ti.

Encriptacion

(1) Bob recibe la clave publica de Alicia i.

(2) Encripta el mensaje de un bit m ∈ 0, 1, escogiendo un x ∈ Di conBi(x) = m.

(3) Bob remite el mensaje en texto cifrado dado por c = fi(x).

Desencriptacion

(1) Alicia usa su clave privada ti y recupera x de c = fi(x).

(2) Alicia obtiene m = Bi(x).

La seguridad de este criptosistema es considerada como buena. Si Bob encriptauno de dos posibles mensajes y los remite, entonces como m = Bi(x) es unpredicado hard core de fi, Eva no podra conocer cual mensaje fue remitido conprobabilidad de exito significante mayor que 1/2.

Page 85: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 85

4.2.5. Encriptacion probabilıstica de un mensaje grande

Generacion de la claves

(1) Alicia selecciona una clave de longitud k y genera las claves publica yprivada expresada por (i, ti).

(2) Alicia hace publico la clave i y mantiene en secreto la clave ti.

Encriptacion

(1) Bob recibe la clave publica de Alicia i.

(2) Encripta el mensaje m de n bits, m ∈ 0, 1n, escogiendo un x1, x2, . . . , xn ∈Di con Bi(xj) = mj , para 1 ≤ j ≤ n.

(3) Bob remite el mensaje en texto cifrado dado por c = (fi(x1), fi(x2), . . . , fi(xn)).

Desencriptacion

(1) Alicia usa su clave privada ti y recupera cada xj a partir de fi(xj).

(2) Alicia obtiene m = (Bi(x1), Bi(x2), . . . , Bi(xn)).

La siguiente pregunta nos hace reflexionar acerca de la seguridad: Como pode-mos definir la seguridad para grandes mensajes ?.

En efecto

Cuando se encripta un simple bit, se dice que este proceso es seguro sı Evano conoce cual de los dos mensajes fueron remitidos con probabilidad de exitosignificante mayor que 1/2. Esta idea extendida a mensajes mas grandes originael concepto de polinomialmente indistingible.

Informalmente, un criptosistema polinomialmente indistinguible equivale adecir: Siempre que Eva presenta a Bob dos mensajes m1 y m2 de igual longitud,y el encripta uno de tales mensajes, entonces Eva no podra saber cual c esuna encriptacion de m1 o una encriptacion de m2 con probabilidad significantemayor que 1/2. Estas consideraciones conducen al siguiente test de seguridad:

1. Bob selecciona una clave de longitud k.

2. Bob genera una clave publica y privada (e, d) de longitud requerida y lapublica como su clave e.

3. Eva produce dos mensajes m1 y m2 de longitud k en tiempo polinomialprobabilıstica.

4. Bob elige, aleatoriamente, uno de tales mensajes, m ∈ m1, m2 y losencripta como c = Ee(m).

5. Bob remite c a Eva.

6. Eva reconoce cual de los dos mensajes fue encriptado por Bob.

7. Si el reconocimiento de Eva fue correcto, entonces tendra exito. Caso con-trario falla.

Page 86: Aplicacion de La Criptografia

86CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Se dice que un criptosistema de polinomialmente indistingible, si y solamente sila probabilidad de tener exito en el test no es mayor de 1/2.

Teorema 4.3: El proceso de encriptacion probabilıstico para mensajes gran-des, usando predicados hard core, produce un criptosistema polinomialmenteindistingible.

Formalmente un criptosistema es semanticamente seguro si Eva obtiene unaparte de la informacion, si ella es capaz de computar alguna funcion b : M →0, 1 tal que

b(m) =

1 Si m tiene informacion de Alicia.0 Caso contrario.

En la definicion de seguridad semantica se considera al mensaje involucradocomo razonable, esto significa que existe un algoritmo probabilıstico de tiempopolinomial que, dado una clave de cierta longitud y una clave publica, producemensajes.

Sea b : M → 0, 1. Consideramos dos casos:

1. No hay criptosistema: Eva da su clave publica a Bob y le cuenta que Aliciaha elegido un mensaje m de longitud k. Pedimos a Eva que conjetureacerca de b(m).

2. Hay criptosistema: Eva da su clave publica a Bob y le cuenta que Aliciaha elegido un mensaje m de longitud k. Pero en este caso damos a Eva elcriptosistema c = Ee(m) y le preguntamos que conjeture b(m).

Un criptosistema es llamado semanticamente seguro, si y solamente si paracualquier funcion b : M → 0, 1, la probabilidad de tener exito (cuando sele da un criptosistema) en la conjetura de b()m por parte de Eva, es a lo masinsignificante que cuando no se le da un criptosistema. El siguiente resultado sedebe a S. Goldwasser y a S. Micali, dado en 1984.

Teorema 4.4: Un criptosistema de clave publica es semanticamente seguro si ysolamente si el es polinomialmente indistingible.

4.2.6. Criptosistema de Goldwasser-Micali

Es el primer criptosistema probabilıstico para el cifrado de clave publica,creado en 1982 por Shafrira Goldwasser15 y Silvio Micali16.

Este esquema es semanticamente seguro, sı se asume que el problema resi-dualmente cuadratico es intratable.

15(1958 - ) Nacio en Nueva York, graduada en matematicas en 1979 en la Carnegie Me-llon University, con su maestria y doctorado en ciencia de la computacion estudiado en laUniversidad de California, siendo su asesor el profesor Manuel Blum. Actualmente trabaja enel MIT, perteneciendo al grupo de investigaciones en teorıa de la computacion. Sus areas deinvestigacion son: Teorıa de complejidad, criptografıa y teorıa numeros computacional.

16(1954 - ) Investigador de origen italiano. En 1982 recibio su doctorado en la Universidadde California, actualmente es profesor en el MIT y sus area de interes es seguridad de lainformacion.

Page 87: Aplicacion de La Criptografia

4.2. CIFRADO POR CLAVE ASIMETRICA 87

Figura 4.11: S. Goldwasser y S. Micali.

Generacion de la claves

(1) Alicia selecciona, aleatoriamente, dos numeros primos p y q grandes, dife-rentes y del mismo tamano.

(2) Obtener n = pq.

(3) Seleccionar un y ∈ Zn tal que:(3.1) y no es residuo cuadratico modulo n.(3.2) El sımbolo de Jacobi ( y

n ) = 1.

(4) La clave publica de Alicia es (n, y) y la clave privada es (p, q).

Encriptacion

(1) Bob recibe la clave publica de Alicia (n, y).

(2) Representa el mensaje en texto plano m, como una palabra binaria m =m1m2 . . . mt de longitud t.

(3) PARA (i = 1 : t)Escoger aleatoriamente un x ∈ Z∗n.SI (mi = 1)

ci ← yx2 mod nCASO CONTRARIO

ci ← x2 mod nFIN SI

FIN PARA

(4) Remitir el texto cifrado c = (c1, c2, . . . , ct) a Alicia.

DesencriptacionPara recuperar m, Alicia hace lo siguiente:

(1) PARA (i = 1 : t)Hallar los sımbolos de Legendre ei = ( ci

p );SI (ei = 1)

mi ← 0;CASO CONTRARIO

mi ← 1;FIN SI

FIN PARA

Page 88: Aplicacion de La Criptografia

88CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

(2) El mensaje m = m1m2 . . .mt es recuperado.

Ejemplo

4.2.7. Criptosistema de Blum-Goldwasser

Es el criptosistema probabilıstico mas eficiente y su poder es comparadocon el RSA. Este criptosistema fue creado en 1984 por Manuel Blum17 y ShafiGoldwasser. Asumiento que el problema de la factorizacion entera es intratable,entonces el criptosistema de Blum-Goldwasser es semanticamente seguro.

Figura 4.12: M. Blum y S. Goldwasser

Generacion de la claves

(1) Alicia selecciona, aleatoriamente, dos numeros primos p y q grandes ydiferentes, tales que p ≡ 3(mod 4) y q ≡ 3(mod 4).

(2) Obtener n = pq.

(3) Usar el algoritmo de Euclides extendido para hallar a y b tal que ap+bq =1.

(4) La clave publica de Alicia es n y la clave privada es (p, q, a, b).

Encriptacion

(1) Bob recibe la clave publica de Alicia n.

(2) Sean los numeros k = blog nc y h = blog kc, entonces Bob representael mensaje como una palabra m = m1m2 . . . mt, donde cada mi es unapalabra binaria de longitud h.

(3) x0 ← r2mod n, donde r ∈ Z∗n se elige aleatoriamente.

17(1938 - ) Nacio en Venezuela y es el unico sudamericano que ha recibido el premio TuringAward en 1995, por su contribucion a la teorıa de complejidad y su aplicacion a la criptografıa.Blum estudio en el MIT graduandose en 1959, asi como obtuvo su maestria, en 1961, y sudoctorado en 1964 tambien en el MIT. Trabajo como profesor en la Universidad de Californiahasta el 2000. Actualmente es profesor en ciencia de la computacion en la Universidad deCarnegie Mellon.

Page 89: Aplicacion de La Criptografia

4.3. EJERCICIOS 89

(4) PARA (i = 1 : t)xi ← x2

i−1mod n.Sean pi los h bits menos significativos de xi.ci ← pi ⊕mi.

FIN PARA

(5) xt+1 ← x2t mod n.

(4) Remitir el texto cifrado c = (c1, c2, . . . , ct, xt+1) a Alicia.

DesencriptacionPara recuperar m, Alicia hace lo siguiente:

(1) d1 ← (p+14 )t+1 mod( p− 1).

(2) d2 ← ( q+14 )t+1 mod( q − 1).

(3) u← xd1t+1 mod p.

(4) v ← xd2t+1 mod q.

(5) x0 ← (vap + ubq) mod n.

(6) PARA (i = 1 : t)xi ← x2

i−1 mod n.Sean pi los h bits menos significativos de xi

mi ← pi ⊕ ci.FIN PARA

(7) Retornar el mensaje m = m1m2 . . .mt.

Ejemplo

4.3. Ejercicios

Page 90: Aplicacion de La Criptografia

90CAPITULO 4. CRIPTOSISTEMAS BASADOS EN TEORIA DE NUMEROS

Page 91: Aplicacion de La Criptografia

Capıtulo 5

Algebra abstracta

5.1. Que es el Algebra

El algebra es la rama de la matematica que esta relacionado con el estudiode la estructura, relacion y cantidad. El termino algebra deriva del libro titula-do Kitab al-jabr w’al muquabala, cuya traduccion es the compendious book oncalculation by completion and balancing. En este libro escrito por Al-kuarizmi,se presentan operaciones simbolicas para la solucion sistematica de ecuacioneslineales y cuadraticas.

Junto con la geometrıa, analisis, combinatoria y la teorıa de numeros, el alge-bra es una de las ramas principales de la matematica, clasificada como algebraelemental y algebra abstracta, respectivamente

5.1.1. Algebra elemental

Estudia las propiedades del sistema de los numeros reales, considerando cons-tantes y variables.

5.1.2. Algebra abstracta

Esta parte del algebra se subdivide en

(a) Estructuras algebraicas: Estudia los grupos, anillos y campos axioma-ticamente definidos.

(b) Algebra lineal: Estudia las propiedades de los espacios vectoriales.

(c) Algebra universal: Estudia las propiedades comunes de las estructurasalgebraicas.

(d) Teorıa algebraica de numeros: Estudia las propiedades de los numerosatraves de los sistemas algebraicos.

(e) Algebra geometrica: Estudia los aspectos geometricos del algebra. Estetipo de algebra se debe al matematico griego Euclides.

(f) Algebra combinatoria: Estudia los metodos algebraicos que son usadospara el estudio de los problemas combinatorios.

91

Page 92: Aplicacion de La Criptografia

92 CAPITULO 5. ALGEBRA ABSTRACTA

5.2. Modelos algebraicos

En algebra abstracta, para estudiar las estructuras algebraicas es necesarioconstruir un modelo, a partir del cual se constuye todo su universo de estudio.En este punto podemos establecer una analogıa con los modelos computacionalesRAM y PRAM. Los modelos algebraicos son las operaciones n-arias, asi comolos semigrupos y monoides.

5.2.1. Operaciones n-arias

Dado un conjunto no vacio S, es posible establecer algun tipo de operacionen el. Este tipo de operacion, en general es conocido como n-aria, donde n puedeser 1, 2, ....

Sea S 6= φ un conjunto. Una operacion monadic (unaria) ∗ sobre S, estadado por la aplicacion

∗ : S → Sa 7→ ∗(a) = c

Sea S 6= φ un conjunto. Una operacion binaria ∗ sobre S, esta dado por unaaplicacion de S x S hacia S, es decir

∗ : SxS → S(a, b) 7→ ∗(a, b) = c

Propiedades de la operacion binaria

1) Asociativa: a * (b * c) = (a * b) * c, ∀ a, b, c ∈ S.

2) Elemento identidad: ∃ e ∈ S tal que e * a = a * e = a, ∀ a ∈ S.

3) Elemento inverso: ∀ a ∈ S, ∃ a′ ∈ S tal que a′ * a = a * a′ = e.

4) Conmutatividad: a * b = b * a, ∀ a, b ∈ S.

Es posible hacer una generalizacion de las operaciones anteriormente presenta-das, es decir una operacion n-aria ∗ sobre S, esta dado por la aplicacion:

∗ : SxSx...xS → S(a, b, ...) 7→ ∗(a, b, ...) = c

Una vez conocida las operaciones n-arias, podemos establecer la estructuraalgebraica (S, (∗1, ∗2, ..., ∗n)), como aquel que tiene una o mas operaciones n-aria∗i, i = 1, ..., n definido sobre S. En una estructura algebraica las operacionesn-arias tienen que satisfacer ciertas propiedades.

5.2.2. Semigrupos y monoides

Un semigrupo (S, *), consiste de un conjunto S 6= φ y una operacion binariaasociativa * sobre el conjunto S.

Ejemplos:

- Conjunto de los numeros naturales incluido 0: (N, +), (N, x).

- Conjunto de los numeros enteros : (Z, +), (Z, x).

Page 93: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 93

- Conjunto de los numeros racionales : (Q, +), (Q, x).

- Conjunto de los numeros reales : (R, +), (R, x).

- Conjunto de los numeros complejos : (C, +), (C, x).

Ejemplo:Sean C 6= φ, CC = f : C → C el conjunto de todas las funciones. Entonces

siendo la operacion composicion de funciones, tenemos que (CC , ) es unsemigrupo, pues se cumple:

- g ∈ CC y h ∈ CC . Entonces g h ∈ CC .

- Si g, h, j ∈ CC . Entonces (g h) j = g (h j).

Un monoide (S, *), consiste de un conjunto S 6= φ y una operacion binariaasociativa * sobre el conjunto S, tal que S tiene una identidad.

Ejemplos:

- Conjunto de los numeros naturales incluido 0 : (N, +), (N, x).

- Conjunto de los numeros enteros : (Z, +), (Z, x).

- Conjunto de los numeros racionales : (Q, +), (Q, x).

- Conjunto de los numeros reales : (R, +), (R, x).

- Conjunto de los numeros complejos : (C, +), (C, x).

Ejemplo:Dado un grafo, el conjunto de arcos (camino) basados en un vertice fijo v,

forma un monoide bajo la operacion binaria concatenacion, donde el caminonulo es la identidad.

Ejemplo:Sea R2x2 el conjunto de matrices reales de orden 2. Entonces (R2x2, *), donde

la operacion binaria se define por A * B = A - 2B, no es un monoide.

Ejemplo:El par dado por (N, -), no es un monoide.

5.3. Estructuras algebraicas

5.3.1. Grupos

La teorıa de grupos es una rama del algebra y presenta aplicaciones en lafısica, quimica y ciencia de la computacion. Los grupos han investigados desdeya hace un buen tiempo. Algunos grupos son los siguientes:

Page 94: Aplicacion de La Criptografia

94 CAPITULO 5. ALGEBRA ABSTRACTA

- Teorıa de Galois: Creado por Evarist Galois1. Esta teorıa proporciona unaconexion entre la teorıa de campos y la teorıa de grupo, pues ciertos pro-blemas de la teorıa de campos pueden ser reducidos a la teorıa de grupospara un mejor entendimiento. Ademas Galois fue el primer investigadorque uso el termino grupo, usandolo para describir las simetrias de lasecuaciones que se satisfacen por las soluciones para una ecuacion polino-mial, es decir demostro que las soluciones de una ecuacion polinomial songovernadas por un grupo.

Figura 5.1: Evariste Galois.

- Grupos abelianos: Creado por Abel2, es un grupo llamado grupo conmuta-tivo donde la aplicacion de una operacion no depende del orden. El grupoabeliano generaliza la aritmetica de la adicion de enteros. Actualmente, lateorıa de grupos abelianos infinitos es una area de investigacion actual.

El Premio Abel (Abel Prize) esta destinado a los investigadores en ma-tematicas. Fue propuesto en 1902 por el rey Oscar II de Suecia y Noruega,sin embargo el plan se disolvio cuando el intento por unir los dos paisesfracazo en 1905. Los planes para un Premio Abel nuevamente se reabrioen el 2000, y en 2001 el Gobierno de Noruega concedio 200 millones decoronas noruegas (22 millones de dolares) para crear el nuevo premio.

Figura 5.2: Niels Abel.

1(1811 - 1832) Matematico frances quien determino las condiciones necesarias y suficientespara que un polinomio sea solucionable por radicales. Publico tres papers, en los dos primerosestablece los fundamentos de la teorıa de Galois, y en el tercer paper dedicado a la teorıa denumeros, establece el concepto de campo finito. Murio en un duelo a la edad de 20 anos.

2(1802 - 1829) Matematico noruego, quien demostro que es imposible solucionar el polino-mio ax5 + bx4 + cx3 + dx2 + ex + f = 0, donde a 6= 0. Ingreso a la universidad en 1821.

Page 95: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 95

- Grupos de Lie: Creado por el matematico Sophus Lie3. Este tipo de gruposes importante para el estudio de la ecuaciones diferenciales y las varieda-des. Actualmente se los esta usando en criptografıa.

Figura 5.3: Sophus Lie.

Historicamente existen tres raıces de la teorıa de grupos: Teorıa de ecuacionesalgebraicas, teorıa de numeros y la geometrıa. Entre los primeros investigadorestenemos Leonard Euler, Karl Gauss, Lagrange, Evarist Galois y A. Cauchy.Formalmente los grupos se definen del modo siguiente:

Definicion(Grupo): Sea G un conjunto no vacio, entonces un grupo (G, *), don-de * es una operacion binaria, es aquel que satisface las siguientes propiedades:

- Asociativa: ∀ a, b, c ∈ G, se cumple a * (b * c) = (a * b) * c.

- Identidad: ∀ a ∈ G, ∃ e ∈ G, tal que e * a = a * e = a.

- Inversa: ∀ a ∈ G, ∃ a−1 ∈ G, tal que a−1 * a = a * a−1 = e.

Algunas caracterısticas especiales hacen que los grupos tengan nombres propios,es decir, si a * b = b * a, ∀ a, b ∈ G, entonces G es llamado grupo abeliano oconmutativo. Si en un grupo la operacion binaria fuese la operacion adicion omultiplicacion, entonces los grupos son llamados grupo aditivo y grupo multi-plicativo, respectivamente. Ademas, si |G| es finito, entonces (G, *) tambien esfinito.

Definicion(Producto directo): Sean (G1, ∗1) y (G2, ∗2) dos grupos. El productodirecto de dos grupos esta dado por:

G1 ⊗G2 = (a1,a2) / a1 ∈ G1 y a2 ∈ G2,donde * se define por (a1, a2)*(b1, b2) = (a1 ∗1 b1, a2 ∗2 b2).

La suma y el producto directo pueden ser extendidos a n grupos, esto esG1 ⊕G2 . . .⊕Gn y G1 ⊗G2 . . .⊗Gn, respectivamente.

Un analisis sobre la teorıa de grupos reporta lo siguiente:

1. Todo grupo tiene exactamente un elemento identidad.

3(1842 - 1899) Nacio en Noruega, en 1872 obtuvo su doctorado con la tesis On a classof geometric transformations, creo la teorıa de simetria continua aplicandolo al estudio de lageometrıa y las ecuaciones diferenciales.

Page 96: Aplicacion de La Criptografia

96 CAPITULO 5. ALGEBRA ABSTRACTA

2. En cada grupo cada elemento tiene un inverso.

3. Leyes de cancelacion:3.1 Si ab = ac, entoncesw b = c.3.2 Si ba = ca, entoncesw b = c.

4. (a−1)−1 = a.

5. (a1a1 . . . ak)−1 = a−1k . . . a−1

2 a−11 .

6. Si a, b ∈ G, entonces las ecuaciones ax = b y xa = b tienen solucionesunicas en el grupo G, las cuales estan dadas por x = a−1b y x = ba−1.

7. El producto directo G1 ⊗ G2 . . . ⊗ Gn es abeliano, sı cada grupo Gi esabeliano.

8. Sea Gi, para i = 1, . . . n grupos. Entonces se cumple

|G1 ⊗G2 . . .⊗Gn| = |G1||G2| . . . |Gn|.

9. La identidad para G1 ⊗ G2 . . . ⊗ Gn es (e1, e2, . . . , en), donde ei es laidentidad del grupo Gi.

10. La estructura de un grupo puede ser determinado por una regla simple opor una tabla, en la cual se lista todos los productos.

EjemploLos conjuntos Z, Q, R y C, con la operacion adicion son grupos los cuales

tiene al numero 0 como su identidad, y el inverso aditivo es −a.

EjemploEl conjunto de los numeros complejos modulo 1, es decir eiθ = cosθ +

i senθ/0 < θ < 2π es un grupo con la operacion multiplicacion, siendo suidentidad eiθ = 1, y la inversa (eiθ)−1 = e−iθ.

EjemploLos conjuntos R − 0, Q − 0 y C − 0 con la operacion multiplicacion

son grupos, donde la identidad y la inversa estan dados por 1 y 1a , donde a 6= 0,

respectivamente.

EjemploEl conjunto de los numeros reales positivos R+ con la operacion multiplica-

cion son grupos, donde la identidad 1 y la inversa 1a , donde a 6= 0.

EjemploEl conjunto de las funciones biyectivas f : S → S con la operacion compo-

sicion de funciones es un grupo, donde la identidad esta dado por la funcioni : S → S, con i definida por i(s) = s,∀s ∈ S y la inversa se define porf−1(y) = s ⇐⇒ f(s) = y.

EjemploEl conjunto de las matrices reales Mmn con la operacion adicion de matrices

es un grupo, donde la identidad esta dado por la matriz nula, y la inversa aditiva−A, respectivamente.

Page 97: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 97

EjemploEl conjunto de los numeros enteros modulo n, denotado por Zn, con la

operacion (a + b)mod n es un grupo,donde la identidad es 0.

EjemploEl grupo multiplicativo Z∗n con la operacion ab mod n es un grupo, donde la

identidad esta dado por 1.

En los dos ultimos ejemplos, los elementos de estos grupos son vistos comoclases de equivalencia, donde tal clase se define como

[a] = b ∈ Z/b mod n = a mod n.Para hallar la inversa a−1 de a ∈ Z∗n, se debe usar el algoritmo de Euclidesextendido tal que d = mcd(a, n) = aa−1 + kn = 1.

En las siguientes tablas podemos ver los elementos de Z2 y Z3, respectiva-mente:

+ 0 10 0 11 1 0

+ 0 1 20 0 1 21 1 2 02 2 0 1

Homomorfismo de grupos

Sean los grupos (G,∗) y (H, ∗′), respectivamente, entonces la funcion dadapor

ϕ : G→ H, definida por ϕ(a ∗ b) = ϕ(a) ∗′ ϕ(b), ∀a, b ∈ G.

es un homomorfismo de grupos.

Isomorfismo de grupos

Sean G y H dos grupos. Entonces la funcion ϕ : G→ H es un isomorfismo,si ϕ es un homomorfismo biyectivo.

Ejemplo:Sean dos grupos (R2×2,+) y (R, +) respectivamente, entonces f : R2×2 → R

definida por f([

a bc d

])= b + c es un homomorfismo.

En efectoSean A y B dos matrices de orden 2, tal que

f(A + B) = f([

a bc d

]+

[a′ b′

c′ d′

])= f

([a + a′ b + b′

c + c′ d + d′

])

Page 98: Aplicacion de La Criptografia

98 CAPITULO 5. ALGEBRA ABSTRACTA

= b+b′+c+c′ = (b+c)+(b′+c′) = f([

a bc d

])+ f

([a′ b′

c′ d′

])

= f(A) + f(B).

Observacion

1. Si ϕ es un isomorfismo, entonces ϕ−1 es un isomorfismo.

2. El isomorfismo es una relacion de equivalencia, es decir es reflexiva, simetri-ca y transitiva.

3. Si ϕ : G→ H es un homomorfismo, entonces ϕ(G) es un grupo.

4. Si p es un numero primo, entonces solamente existe un grupo de orden p,es decir (Zp,+) es un grupo.

5. Zm×Zn es isomorfo con Zmn si y solamente si m y n son primos relativos,es decir existe una funcion ϕ : Zm × Zn → Zmn.

Subgrupo

Sea (G, ∗) un grupo. Un subgrupo de G esta dado por un subconjuntoH ⊆ G tal que (H, ∗) es un grupo con la misma operacion del grupo G. Si H esun sugrupo de G y H 6= G, entonces H es llamado subgrupo propio de G.

EjemplosLos siguientes conjuntos son subgrupos aditivos (Z, +), (Q, +), (R, +) y (C,

+), respectivamente.

Ejemplos

1. Z2 no es un subgrupo de Z4, pues el grupo de operaciones no es la misma.

2. El conjunto de los numeros enteros impares, (Zi, +), no es un subgrupode (Z, +), pues Zi no es cerrado con respecto a la adicion.

3. (N, +) no es un subgrupo de (Z, +), pues N no tiene inverso aditivo.

4. Los conjuntos 0, 0, 3, 0, 2, 4, Z6 son subgrupos del grupo Z6.

5. Los subconjuntos (Q - 0, ×), (R - 0, ×) y (C - 0, ×) son subgruposmultiplicativos de los grupo multiplicativos (Q, ×), (R, ×) y (C, ×).

Observacion

a) Si G es un grupo y a ∈ G, entonces el conjunto (a) es un subgrupo de G.

b) Todo subgrupo de un grupo abeliano es abeliano.

c) Si H es un subgrupo de un grupo G, entonces

- El elemento identidad de H es el elemento identidad de G.- El inverso (en H) de un elemento a ∈ H, es el inverso (en G) de a.

Page 99: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 99

d) Un subconjunto H del grupo G es un subgrupo de G, si y solamente si secumple:- H 6= φ.- Si a, b ∈ H, entonces ab ∈ H- Si a ∈ H, entonces a−1 ∈ H.

e) Un subconjunto H del grupo G es un subgrupo de G, si y solamente si secumple:- H 6= φ.- Si a, b ∈ H, entonces ab−1 ∈ H.

f) La interseccion de subgrupos de un grupo G, es un subgrupo de G.

g) La union de subgrupos no es necesariamente un subgrupo.

5.3.2. Anillos

La teorıa de anillos es util para el razonamiento acerca de una amplia clase deinteresantes estructuras algebraicas. Intuitivamente, un anillo es un estructuraalgebraica que tiene dos operaciones, es decir un anillo esta dado por (R, ∗, ∗′).Definicion(Anillo): Un anillo es una estructura (R, +, ×) que consiste de unconjunto no vacio R que esta cerrado bajo las operaciones binarias + y × talque

- (R, +) es un grupo abeliano.

- Asociatividad con respecto a la operacion producto, es decir ∀a, b, c ∈ R,a× (b× c) = (a× b)× c.

- Distributividad, es decir ∀a, b, c ∈ R

a× (b + c) = a× b + a× c.

(a + b)× c = a× c + b× c.

Observacion

a) Si la operacion multiplicacion es conmutativa, R es un anillo conmutativo.

b) Un anillo R es llamado anillo con unidad, sı existe una identidad u 6= 0para la multiplicacion; es decir

u× a = a× u = a, a ∈ R.

c) Un elemento m del anillo con unidad R es llamado unidad, sı m tieneinverso multiplicativo; es decir

∃m−1 ∈ R tal que m×m−1 = m−1 ×m = u

d) El conjunto de unidades en un anillo R forma un grupo llamado grupo deunidades de R.

Page 100: Aplicacion de La Criptografia

100 CAPITULO 5. ALGEBRA ABSTRACTA

Ejemplos

- (Z, +, ×) es un anillo conmutativo.

- (Zn, +, ×) es un anillo conmutativo, donde las operaciones adicion ymultiplicacion son ejecutadas mediante el modulo n.

- Sea Zn un anillo, Z∗n = a ∈ Zn/mcd(a, n) = 1 es un grupo de unidades.

- (Q, +, ×), (R, +, ×) y (C, +, ×) son anillos.

Homomorfismo e Isomorfismo de anillos

Sean (R, +,×) y (S, +′,×′) dos anillos. La funcion definida por

φ : (R, +,×)→ (S,+′,×′)tal que ∀a, b ∈ R

- φ(a + b) = φ(a) +′ φ(b)

- φ(a× b) = φ(a)×′ φ(b)

es llamado un homomorfismo de anillos.

Sean R y S dos anillos. Entonces la funcion φ : R→ S es un isomorfismo deanillos, sı ella es un homomorfismo de anillos biyectivo.

EjemploLa funcion φ : R → S definido por φ(a) = a mod n es un homomorfismo de

anillos.

EjemploSi R y S son anillos, entonces φ : R → S definido por φ(a) = 0, ∀a ∈ R es

un homomorfismo de anillos.

5.3.3. Anillo de polinomios

Si R es un anillo, entonces podemos formar el anillo de polinomios R[x], elcual consiste de todos los polinonios

f(x) = anxn + an−1xn−1 + . . . + a1x

1 + a0

en la indeterminada x, con coeficientes en R, ademas de las operaciones adiciony multiplicacion definidas de la manera usual.

Un polinomio constante, es el polinomio f(x) = a0. Si a0 6= 0, entonces f(x)es de grado 0. Si f(x) = 0, el grado del polinomio es indefinido, es decir ∞.

Formalmente, un anillo de polinomio sobre el anillo R consiste del conjuntodado por

R[x] = f(x)/f(x) es un polinomio sobre R en la variable xdonde las operaciones se definen por:Adicion: n ≥ m

Page 101: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 101

(anxn + an−1xn−1 + . . . + a1x

1 + a0) + (bmxm + bm−1xm−1 + . . . + b1x

1 + b0) =

anxn + . . . + am+1xm+1 + (an + bn)xn + . . . + (a1 + b1)x1 + (a0 + b0)

Multiplicacion:

(anxn + . . .+a1x1 +a0)(bmxm + . . .+ b1x

1 + b0) = cn+mxn+m + . . . c1x1 + c0

donde ci = a0bi + a1bi−1 + . . . + aib0, para i = 0, 1, . . . , m + n.

EjemploSea Z2[x] un anillo de polinomios, entonces tenemos las siguientes operacio-

nes:

(x3 + x1 + 1) + (x2 + x1) = x3 + x2 + 1.

(x3 + x1 + 1)(x2 + x1) = x5 + x4 + x3 + x.

EjemploEn el anillo de polinomios Z6[x] tenemos las siguientes operaciones:

(2x + 1) + (3x + 1) = 5x + 2.

(2x + 1)(3x + 1) = 6x2 + 2x + 3x + 1 = 5x + 1.

Polinomios irreducibles

Sea f(x) ∈ R[x] un polinomio de grado n. f(x) es irreducible sobre R sital polinomio no puede ser escrito como el producto de otros dos polinomios enR[x], donde cada uno de ellos es de grado positivo y menores que n. Es decir

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

EjemploTodos los polinomios de grado 1 son irreducibles en R[x], pues ningun poli-

nomio de la forma

f(x) = a1x + a0, con a1 6= 0

puede descomponerse en el producto de dos polinomios.

EjemploNo todo polinomio de grado 2 es irreducible en R[x]. Siendo f(x) = a2x

2 +a1x

1 + a0 un polinomio, entonces

1) Si a21 − 4a2a0 < 0, entonces f(x) es irreducible.

2) Si a21 − 4a2a0 ≥ 0, entonces f(x) es reducible.

Observacion:

a) Si R es un anillo, entonces [x] tambien es un anillo.

b) Si R es un anillo conmutativo, entonces R[x] tambien lo es.

c) Si R es un anillo con unidad, entonces R[x] tiene al polinomio constante,f(x) = 1, como unidad.

Page 102: Aplicacion de La Criptografia

102 CAPITULO 5. ALGEBRA ABSTRACTA

5.3.4. Campos

Un campo es un anillo conmutativo en el cual no todos los elementos tieneninversos multiplicativos, es decir un campo (F, +,×) es tal que

- (F, +,×) es un anillo.

- (F − 0,×) es un grupo conmutativo.

Por notacion F [x] denota un campo en la indeterminada x.

EjemploLos conjuntos de numeros (Q, +,×), (R, +,×) y (C, +,×) son campos.

EjemploSea Zn = 0, 1, . . . , n − 1, con n primo. Entonces Zn es un campo con las

operaciones adicion y multiplicacion modular.

Division de polinomios

Si g(x), h(x) ∈ F [x], con h(x) 6= 0, entonces la division g(x)÷ h(x) producelo siguiente:

g(x) = q(x)h(x) + r(x),

donde q(x) es el cociente y r(x) denota el residuo de la division entre polinomios.Ademas se cumple que grad(r(x)) < grad(h(x)).

En teorıa de numeros hemos estudiado la forma de obtener el resto y elcociente de la division entre dos numeros, analogamente sucede para polinomios,es decir que el resto se obtiene mediante r(x) = g(x) mod h(x), y el cocientemediante q(x) = g(x) div h(x).

EjemploEn Z5 tenemos los polinomios g(x) = 3x4 + 2x3 + 2x + 1 y h(x) = x2 + 2.

El cociente esta dado por:q(x) = 3x2 + 2x + 4

y el resto porr(x) = 3x + 3.

EjemploEn Z2 tenemos los polinomios g(x) = x6 + x5 + x3 + x2 + x + 1 y h(x) =

x4 + x3 + 1. La division de g(x) y h(x) nos permite obtener:q(x) = x2

y el resto porr(x) = x3 + x + 1

Definicion(Division): Sean g(x) y h(x) dos polinomios en F [x], entonces h(x)divide a g(x), es decir h(x)|g(x), si g(x) mod h(x) = 0.

Definicion(Congruencia): Sean g(x) y h(x) dos polinomios en F [x], entonces

g(x) ≡ h(x)(mod f(x)), si f(x)|(g(x)− h(x))

Page 103: Aplicacion de La Criptografia

5.3. ESTRUCTURAS ALGEBRAICAS 103

Definicion(Campo finito): Un campo finito es un campo F , el cual tiene unacantidad finita de elementos. El orden de F esta dado por la cantidad de ele-mentos de F .

Sea Zp un campo finito de orden p, entonces es posible extender el conceptode mcd para el anillo de polinomio Zp[x].

Definicion: Una operacion Zp significa una adicion, sustraccion, multiplicacion,inversa o division en Zp.

Algoritmo de Euclides

Sean g(n), h(x) dos polinomios no nulos en Zp[x]. El mcd de g(x) y h(x)esta dado por el polinomio monic de mayor grado en Zp[x], el cual divide a g(x)y h(x).

Entrada: g(x), h(x) ∈ Zp[x]Salida : mcd (g(x), h(x))MIENTRAS (h(x) 6= 0)

r(x)← g(x) mod h(x);g(x)← h(x);h(x)← r(x);

FIN MIENTRASretornar (g(x))

Suponiendo que grad(g(x)) ≤ m y que grad(h(x)) ≤ m, entonces el algorit-mo de Euclides se ejecuta en un tiempo de O(m2 (log p)2) operaciones bit.

El algoritmo de Euclides en Zp[x] puede ser extendido, de modo tal que elmcd se expresa como la combinacion lineal de los polinomios s(x) y t(x), esdecir

d(x) = g(x)s(x) + h(x)t(x)

El algoritmo de Euclides extendido se expresa por:

Entrada: g(x), h(x) ∈ Zp[x]Salida : d = mcd(g(x), h(x))SI (h(x) = 0)

d(x)← g(x);s(x)← 1;t(x)← 0;

FIN SIRetornar(d(x), s(x), t(x))s2(x)← 1; s1(x)← 0;t2(x)← 0; t1(x)← 1;MIENTRAS (h(x) 6= 0)

q(x)← g(x) div h(x);r(x)← g(x)− q(x)h(x);s(x)← s2(x)− q(x)s1(x);t(x)← t2(x)− q(x)t1(x);

Page 104: Aplicacion de La Criptografia

104 CAPITULO 5. ALGEBRA ABSTRACTA

g(x)← h(x); h(x)← r(x);s2(x)← s1(x); s1(x)← s(x);t2(x)← t1(x); t1(x)← t(x);

FIN MIENTRASd(x)← g(x); s(x)← s2(x); t(x)← t2(x);retornar (d(x), s(x), t(x))

Ejemplo:En Z2[x] tenemos los polinomios g(x) = x10 + x9 + x8 + x6 + x5 + x4 + 1 y

h(x) = x9 + x6 + x5 + x3 + x2 + 1, respectivamente. Al aplicar el algoritmo deEuclides Extendido se tienen los resultados siguientes:

s2(x)← 1; s1(x)← 0;t2(x)← 0; t1(x)← 1;

Como h(x) 6= 0, en la iteracion 1:

q(x)← x + 1;r(x)← x8 + x7 + x6 + x2 + 1;s(x)← 1;t(x)← x + 1;g(x)← x9+x6+x5+x3+x2+1; h(x)← x8+x7+x6+x2+1;s2(x)← 0; s1(x)← 1;t2(x)← 1; t1(x)← x + 1.

Como h(x) 6= 0, en la iteracion 2:

q(x)← x + 1;r(x)← x5 + x2 + x + 1;s(x)← x + 1;t(x)← x2;g(x)← x8 + x7 + x6 + x2 + 1; h(x)← x5 + x2 + x + 1;s2(x)← 1; s1(x)← x + 1;t2(x)← x + 1; t1(x)← x2.

Como h(x) 6= 0, en la iteracion 3:

q(x)← x3 + x2 + x + 1;r(x)← x3 + x + 1;s(x)← x4;t(x)← x5 + x4 + x3 + x2 + x + 1;g(x)← x5 + x2 + x + 1; h(x)← x3 + x + 1;s2(x)← x + 1; s1(x)← x4;t2(x)← x2; t1(x)← x5 + x4 + x3 + x2 + x + 1.

Como h(x) 6= 0, en la iteracion 4:

q(x)← x2 + 1;r(x)← 0;s(x)← x6 + x4 + x + 1;t(x)← x7 + x6 + x2 + x + 1;

Page 105: Aplicacion de La Criptografia

5.4. EJERCICIOS 105

g(x)← x3 + x + 1; h(x)← 0;s2(x)← x4; s1(x)← x6 + x4 + x + 1;t2(x)← x5+x4+x3+x2+x+1; t1(x)← x7+x6+x2+x+1.

Finalmente como h(x) = 0, entonces hemos encontrado el mcd para lospolinomios dados inicialmente. La respuesta es d(x) = x3 + x + 1.

5.4. Ejercicios

Page 106: Aplicacion de La Criptografia

106 CAPITULO 5. ALGEBRA ABSTRACTA

Page 107: Aplicacion de La Criptografia

Capıtulo 6

Esquemas criptograficosbasados en algebra

6.1. Ejercicios

107

Page 108: Aplicacion de La Criptografia

108CAPITULO 6. ESQUEMAS CRIPTOGRAFICOS BASADOS EN ALGEBRA

Page 109: Aplicacion de La Criptografia

Capıtulo 7

Firmas digitales

7.1. Ejercicios

109

Page 110: Aplicacion de La Criptografia

110 CAPITULO 7. FIRMAS DIGITALES

Page 111: Aplicacion de La Criptografia

Bibliografıa

[1] P.A. Abdulla and B. Jonsson. Verifying program with unreliable channels.In Proceedings of the 8th IEEE Symposium on Logic in Computer Science,1993.

[2] P.A. Abdulla and B. Jonsson. Undecidable verification problems for pro-grams with unreliable channels. In Proc. ICALP-94, volume 820 of LectureNotes in Computer Science, pages 316-327. Springer-Verlag, 1994.

[3] R. Alur, R.K. Brayton, T.A. Henzinger, S. Qadeer and S.K.Rajamani.Partial-Order Reduction in Symbolic State Space Exploration. Proceedingsof the 9th International Conference on Computer-aided Verification, 1997.

[4] R. Alur, C. Courcoubetis, and D. Dill. Model-checking in dense real-time.Information and Computation, 104(1): 2-34, May 1993.

[5] R. Alur, S. Chaudhuri, K. Etessami and P. Madhusudan. On-the-flyReachability and Cycle Detection for Recursive State Machines. Univer-sity of Pennsylvania, USA, 2005.

[6] B. Boigelot and P. Wolper. Symbolic verification with periodic sets. In Proc.6th Conference on Computer Aided Verification, volume 818 of LectureNotes in Computer Science, pages 55-67, Stanford, June 1994. Springer-Verlag.

[7] J.G. Brookshear. Computer Science. An Overview. Addison-Wesley Iberoa-mericana S.A., 1995.

[8] G. Cece, A. Finkel, and S. Purushothaman. Unreliable channels are easierto verify than perfect channels. Information and Computation, 124(3): 20-31, 1996.

[9] T.H. Cormen, CH. E. Leiserson and R.L. Rivest. Introduction to ALGO-RITHMS.Second Edition, The MIT Press, Cambridge, Massachusetts Lon-don, England, McGraw-Hill Book Company, 2001.

[10] E.M. Clarke, E.A. Emerson and A.P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications: a practicalapproach. ACM Transactions on Programming Languages and Systems,8(2): 244-263, January 1986.

[11] P. Godefroid and D.E. Long. Symbolic Protocol Verification with QueueBDDs. In Proceedings of the 11th IEEE Symposium on Logic in ComputerScience, New Brunswick, July 1996.

111

Page 112: Aplicacion de La Criptografia

112 BIBLIOGRAFIA

[12] S. Gnesi. Formal Specification and Verification of Complex Systems. Notesin Theoretical Computer Science 80(2003).

[13] Rob M. Hierons. Checking States and Transitions of a set of CommunicatingFinite State Machines. Brunel University, October, 7, 2004.

[14] John E. Hopcroft, R. Motwani and J.D. Ullman. Introduction to AutomataTheory, Languages, and Computation. it 2nd ed. Addison-Wesley, 2001.

[15] Joost-Pieter Katoen. Principles of Model Checking. Formal Methods andTools Group, Lecture Notes, University of Twente, 2002.

[16] J.K. Pachl. Protocol description and analysis based on a state transitionmodel with channel expressions. In Proc. 7th IFIP WG 6.1 Internatio-nal Symposium on Protocol Specification, Testing, and Verification, North-Holland, 1987.

[17] Dana Petcu. Parallel Explicit State Reachability Analysis and State SpaceConstruction. Institute e-Austria Timisoara and Computer Science Depart-ment, Wertern University of Timisoara, Romania, 2004.

[18] W. Peng and S. Purushothaman. Data flow analysis of communicationsfinite state machines. ACM Transactions on Programming Languages andSystems, 13(3): 399-442, 1991.

[19] M.J. Quinn. Parallel Computing Theory and Practice. McGraw-Hill, 1994.

[20] Robert Sedgewick. Algorithms in Java, Third Edition. Addison Wesley,2002.

[21] Thomas A. Sudkamp. Languages and Machines. An Introduction to theTheory of Computer Science. Second Edition, Addison-Wesley, 1997.

[22] Andrew Tanenbaum. Networking Computers. Second Edition, Addison-Wesley, 2000.

[23] W. Thomas. Automata on infinite objects. In Handbook of TheoreticalComputer Science, Vol. B. Elsevier, pp. 135-191, 1990.

[24] M.Y. Vardi. Nontraditional Applications of Automata Theory. Rice Uni-versity, Dept. of Computer Science, 1994.

[25] P. Wolper and Bernard Boigelot. Verifying Systems with Infinite but Re-gular State Spaces. Proc. of 10th International Conference on Computer-Aided Verification, Vancouver, Lecture Notes in Computer Science,Springer-Verlag, June, 1998.