una introducciÓn a la criptografÍa,el criptosistema rsa

39
. . . . . . . . . . Monografía Una Introducción a la criptografía. El criptosistema R.S.A. . . . . . . . . . . Mario Merino Martínez D 0405 055 Bachillerato Internacional 2003 - 2004 I.E.S Cardenal López de Mendoza 3970 Palabras, 39 Páginas

Upload: orlando-esteban-vasquez-herrera

Post on 04-Jul-2015

438 views

Category:

Documents


12 download

TRANSCRIPT

. . . . . .. . . .

Monografía

Una Introducción a la criptografía. El criptosistema R.S.A.

. . . . . . . . . .

Mario Merino Martínez D 0405 055 Bachillerato Internacional 2003 - 2004 I.E.S Cardenal López de Mendoza 3970 Palabras, 39 Páginas

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

. . . . . . .. . .

Una introducción a la criptografía. El criptosistema R.S.A.

Resumen

Esta monografía trata sobre una de las aplicaciones directas de las matemáticas: la criptografía. Describe qué es, así como su relación con otras ciencias. Se comenta su valor histórico y actual, sus usos más comunes. Se analizan los distintos tipos de criptosistemas que existen actualmente y su funcionamiento matemático, comparando sus pros y sus contras, y se incluyen aplicaciones de ejemplo sobre algunos de los criptosistemas más importantes.

Desde una introducción general a las bases matemáticas de todo sistema criptográfico, se centra en sistemas específicos, a los que les siguen ejemplos de operación. En concreto, profundiza sobre el sistema de clave pública llamado R.S.A., y las ventajas de este tipo de cifrado con respecto al resto.

Las conclusiones de esta pequeña investigación son una visión general sobre la criptografía, que ha jugado un papel fundamental en la historia, y a la vez profunda sobre algunos de los sistemas criptográficos más comunes del pasado y del presente, de los cuales el R.S.A. podemos afirmar que es uno de los más prácticos y ventajosos, por sus amplias posibilidades, su seguridad, el cumplimiento de gran número de requisitos, y la firma R.S.A., etc. Las conclusiones también son una comprensión del funcionamiento de estos sistemas, y de la lucha entre criptógrafos y criptoanalistas, en eterna rivalidad, con lo que se produce una evolución constante de los criptosistemas y de las técnicas empleadas.

En los apéndices finales se encuentran los algoritmos matemáticos utilizados, una breve introducción al criptoanálisis (en relación directa con la criptografía), y otros datos auxiliares.

2

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Índice

RESUMEN___________________________________________________________ 2 Introducción__________________________________________________________ 5 Cripografía: Definición_________________________________________________ 6 La criptografía en la historia y en la actualidad _____________________________ 8 Criptosistemas _______________________________________________________ 11 Criptosistemas de clave secreta __________________________________________ 13

Sustitución - El sistema del César _____________________________________________ 14

Transposición - Transposición simple__________________________________________ 16

Criptosistemas de clave pública _________________________________________ 18 Condiciones de Diffie-Hellman:_______________________________________________ 19

Diferentes sistemas de clave pública:___________________________________________ 20

El R.S.A.____________________________________________________________ 21 Funcionamiento del sistema: _________________________________________________ 22

Ejemplo: _________________________________________________________________ 24

Firma R.S.A.______________________________________________________________ 27

Conclusiones ________________________________________________________ 28 APÉNDICES ________________________________________________________ 29 Criptoanálisis ________________________________________________________ 30

Análisis de Frecuencias _____________________________________________________ 31

Seguridad de Shannon ________________________________________________ 32 Algoritmos __________________________________________________________ 34

Algoritmo de Euclides ______________________________________________________ 34

Exponenciación binaria: _____________________________________________________ 36

Programa utilizado ___________________________________________________ 37 BIBLIOGRAFÍA _____________________________________________________ 38

3

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Agradecimientos:

A mis padres, Roberto y Carmen, por estar allí con sus frases de ánimo.

A mi profesor de matemáticas, Serafín, por su apoyo y sus consejos.

4

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Introducción

He elegido la criptografía como tema de esta monografía porque

considero que es una materia de vital importancia en la sociedad actual, la

cual necesita autenticidad, seguridad y confidencialidad en la transmisión de

datos y mensajes. Hoy en día es una constante en la informática y en la red,

siendo un claro ejemplo el DES, o el sistema de clave pública RSA, muy

extendidos por todo el mundo.

La criptografía es una ciencia, y ha servido a lo largo de la historia

para ocultar mensajes secretos. Actualmente se considera una ciencia

aplicada, y está relaccionada directamente con las matemáticas,

concretamente con la resolución de problemas difíciles, como la

factorización de números de 150 cifras, en el caso del sistema R.S.A.

Pero, ¿qué es exactamente? ¿Cómo funciona la criptografía

matemáticamente? Estos y otros problemas constituyen el problema de

investigación principal, aunque también se estudian los usos que tiene

actualmente y como ha intervenido a lo largo de la historia y su evolución.

Tras una introducción histórica a la criptografía, analizaré distintos

tipos de criptosistemas, en especial el ya nombrado R.S.A.. Mi objetivo es,

por lo tanto, estudiar y comprender los métodos de encriptación, con

aplicaciones de ejemplo del R.S.A. y otros sistemas, y hallar cuál es el más

seguro y práctico de los estudiados. Además se explora el valor la

criptografía en el pasado y en la sociedad actual.

5

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Cripografía: Definición

La criptografía1, del griego kryptós, “escondido”, y graphos,

“escritura”, es el arte de enmascarar los mensajes con signos convencionales,

que sólo cobran sentido a la luz de una clave secreta. Es la ciencia y el arte

de escribir para que sea indescifrable el contenido del texto escrito, para

quien no posea la clave.

La seguridad de un mensaje no ha de depender del secreto de su

método de ocultación, sino de la clave utilizada en ese método.2 La gente

que la desconozca no podrá entenderlos, aunque tengan algún conocimiento

de cómo han ocultado los datos.

En un principio, la criptografía era considerada un arte. Pero

actualmente es considerada una ciencia aplicada, una rama de las

matemáticas, debido a su relación con otras ciencias como la teoría de

números, la estadística, y las teorías de la información y de información

computacional.

El proceso de transformación del texto original (mensaje), en el

texto cifrado (criptograma), se conoce como cifrado o encriptación, y su

proceso contrario, es decir, el de recuperación del texto original, descifrado o

desencriptación.

El cifrado se lleva a cabo con una serie de parámetros, conocidos

como clave, que son indispensables para la recuperación del mensaje.

1 Criptografía: (Del gr. κρυπτóς, oculto, y -grafía). Conjunto de técnicas que permiten cifrar y descifrar un mensaje. Arte de aplicarlas. (Criptografía, Nueva Enciclopedia Larousse. Tomo V. Ed. Planeta, Barcelona, 1982). 2 Aquí hay que distinguir entre “criptografía” y “código”: un código asigna una palabra a cada mensaje posible, o a cada palabra o grupo de palabras, de manera que se necesita un libro de traducción para codificar y recuperar el mensaje. Por ello, no todos los mensajes se pueden transmitir, solo aquellos que dispongan de un código establecido entre emisor y receptor. Por eso, hay veces que son denominados “criptosistemas restringidos”, pues su seguridad depende del secreto del sistema de encriptación en sí, y no de una clave. La verdadera criptografía, en cambio, permite cifrar cualquier mensaje, a partir de una clave establecida, que es la que ha de mantenerse en secreto.

6

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

El criptoanálisis3, es la contrapartida de la criptografía. Ambos han

tenido una gran relevancia en la historia y en la actualidad, han cambiado el

rumbo de las guerras. Juntos, criptografía y criptoanálisis, constituyen la

criptología.

La lucha entre ambas ciencias, puede equipararse con la metáfora

del escudo y la espada: a lo largo de la historia, la criptografía ha

desarrollado criptosistemas aparentemente indescifrables, que con el tiempo

han sido vencidos por nuevos métodos de criptoanálisis. Puede decirse que

ambos evolucionan a la par.

Como dijo Edgar Allan Poe (apasionado de la criptografía), “es

dudoso que el género humano logre crear un enigma que el mismo ingenio

humano no sea capaz de resolver”4.

3 Ciencia que estudia los métodos de descubrir o romper la clave cuando no se conoce, a partir del texto cifrado o de otros métodos. Arte de descifrar criptogramas (Criptoanálisis, Nueva Enciclopedia Larousse. Tomo V. Ed. Planeta, Barcelona, 1982). 4 Edgar Allan Poe, cita de “The Gold Bug” (El Escarabajo de Oro)

7

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

La criptografía en la historia y en la actualidad

El hombre se las ha ingeniado desde muy antiguo para garantizar el

secreto de sus comunicaciones privadas. La existencia de la criptografía

aparece ya en las tablas cuneiformes y los papiros. Desde el Antiguo Egipto

hasta el mundo actual de internet, los criptogramas han sido protagonistas de

varios sucesos históricos. Y son la base en la que se han apoyado los espías a

lo largo del tiempo.

Los espartanos, en Grecia, desarrollaron en el 400 a.C. la Scitala, -

primer sistema criptográfico por tansposición5. Julio Cesar utilizó un método

basado en la sustitución de cada letra por la que ocupa varios puestos más

allá en el alfabeto, creando así el conocido cifrado que lleva su nombre6.

La criptografía resurgió en la Europa de la Edad Media: era

necesaria en las intrigas del Papado. Fue Grabiele de Lavinde, un servidor

del Papa Clemente VII quien escribió el primer manual sobre la materia.

En 1.466, León Batista Alberti, creó el sistema polialfabético, que

emplea varios abecedarios, saltando de uno a otro cada tres o cuatro

palabras. El emisor y el destinatario del mensaje debían ponerse de acuerdo

en ciertos aspectos para conocer el orden de los saltos de alfabeto.

Un siglo después, Giovanni Battista Belaso7 instituyó una nueva

técnica. La clave, formada por una palabra o una frase, debía transcribirse

letra a letra sobre el texto original. Cada letra del texto se cambia por la

correspondiente en el alfabeto que comienza en la letra clave.

A partir del siglo XIX, surgen criptoanalistas tan ilustres como

Charles Babbage8 , Friedrich Kasiski, Georges Painvin, Willian Friedman9...

4 y 5: Ver Criptosistemas de clave privada, más adelante. 7 Matemático italiano conocido como el padre de la criptografía moderna. 8 Profesor de matemáticas en Cambridge, famoso por haber diseñado máquinas precursoras de los ordenadores actuales 9 Criptoanalista norteamericano que desarrolló el criptoanálisis como disciplina cientifica, y criptoanalizó la máquina criptográfica japonesa “Purple”

8

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

En el siglo XX, Arthur Scherbius fue el inventor de “Enigma”,

máquina criptográfica que utilizaron los nazis durante toda la II Guerra

Mundial, y que creyeron inviolable, sin saber que a partir de 1.942,

significaría su derrota. Los aliados consiguieron descifrar el funcionamiento

de la máquina10, y así consiguieron desvelar los mensajes secretos de los

alemanes.

Máquina criptográfica Enigma, utilizada durante la Segunda Guerra Mundial11

Mientras los alemanes diseñaron Enigma, los estadounidenses

utilizaron un método llamado Sigaba. Este modelo fue el único aparato

criptográfico que conservó intactos todos sus secretos durante la guerra,

aunque después también se ha desentrañado su funcionamiento.

Claude Elwood Shannon12, revolucionó las comunicaciones y con

ellas la criptografía. Se dieron los primeros pasos hacia los sistemas

criptográficos más modernos, mucho más fiables que la sustitución y

10 Fue Marian Rejewski, matemático polaco, el primero que criptoanalizó la maquina Enigma. 11 Imagen de: www.phm.gov.au/universal/img/enigma.jpg 12 Ver Apéndices, Seguridad de Shannon

9

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

transposición clásicas, como el DES13, que combina las posibilidades de

ambos. Actualmente, se utilizan métodos que combinan los elementos del

mensaje con otros, o algoritmos de gran dificultad para los criptoanalistas.

Philip Zimmermann, un criptógrafo aficionado, desarrolló un

sistema criptográfico aparentemente inviolable en 1991, el P.G.P.14 y lo

distribuyó por las redes de comunicación para que cualquiera pudiera

utilizarlo: Ahora es uno de los más comunes en cuestión de correo

electrónico.

Diffie y Hellman15 propusieron utilizar criptosistemas cuyo

cripoanálisis fuese equivalente a la resolución de un problema

computacionalmente difícil, a fin de que a pesar de conocer los algoritmos

para resolverle, no se pueda hacer por no ser factible ejecutarlo en un tiempo

razonable16. Este es el principio de los sistemas de clave pública, como el

RSA, con muchas ventajas sobre los de clave privada.

Hoy en día, lo que se pide a la criptografía es rapidez, sencillez de

cálculo al encriptar-desencriptar, y complejidad total de cálculo para

cualquier criptoanalista, es decir, seguridad para nuestras transmisiones.

13 DES: Data encriptation Standart, encriptación estándar de datos. Es un criptosistema de clave privada 14 El P.G.P. (Pretty Good Privacy, literalmente privacidad bastante buena) combina distintos tipos de sistemas criptográficos: clave privada, R.S.A. para intercambio de claves, funciones HASH, etc. 15 Ver “Criptosistemas de clave Pública”, condiciones de Diffie-Hellman

10

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Criptosistemas

Un criptosistema, o sistema criptográfico, se puede definir como

los fundamentos y procedimientos de operación –algoritmo17– que participan

en el cifrado y descifrado de un mensaje.

Todo sistema criptográfico consta de cinco componentes: M, C, K, E y D.

• M es el conjunto de todos los mensajes a transmitir.

• C es el conjunto de todos los mensajes cifrados.

• K es el conjunto de claves a utilizar.

• E es el conjunto de todos los métodos de cifrado:

{ }KkCMEE k ∈∀→= ,

• D es el conjunto de todos los métodos de descifrado.

{ }KkMCDD k ∈∀→= ,

Cada método de cifrado E está definido mediante un algoritmo, el

cual, es común a todos los métodos y una clave Kk ∈ , la cual distinguirá el

algoritmo correspondiente a cada transformación . kE

Lo mismo ocurre para las transformaciones de descifrado de D.

Para cada clave dada, k, la transformación es la inversa de , y permite

recuperar el mensaje original al aplicarla sobre el cifrado:

kD

kD kE

( ) KkMmmmED kk ∈∀∈∀= ;,)(

Otros elementos que se pueden considerar son el alfabeto de

entrada y el de salida, así como el lenguaje en que esté escrito el mensaje

original.

16 Gilles Brassard decía al respecto que el usuario de un criptosistema no debe esperar que el criptoanalista no tenga información suficiente para romperlo, sino que no tenga tiempo. 17 Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. (Diccionario de la Real Academia Española, 2001)

11

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Todo criptosistema debe cumplir, al menos, tres requisitos básicos18:

1. Todas las transformaciones de cifrado y descifrado, y , han de ser

fácilmente calculables.

kE kD

2. Los algoritmos de las transformaciones y han de ser fácilmente

implementables.

kE kD

3. La seguridad del sistema sólo debe depender del secreto de las claves k y

no de los algoritmos de las transformaciones E y D.

Además, un buen criptosistema ha de tener las siguientes

cualidades: Seguridad, autenticidad y no repudio19.

• Seguridad: es la incapacidad para un criptoanalista de determinar el texto

original, a partir del texto cifrado que haya podido interceptar.

• Autenticidad e integridad: considerada como la incapacidad para un

criptoanalista de improvisar, sustituir o modificar un texto cifrado c por

un c’, sin que el receptor lo detecte.

• No repudio: el emisor, después de haber enviado el mensaje, no puede

afirmar que no es suyo. Esto ha de realizarse por otros medios, como la

firma digital, etc., que se adaptan al criptosistema utilizado.

A lo largo de la historia, se han utilizado cientos de criptosistemas

diferentes, pero, a grandes rasgos, pueden dividirse en dos tipos: sistemas de

clave privada o simétrica, y sistemas de clave pública o antisimétrica.

18 Síntesis de: LL. Huguet, J. Rifá, “Comunicación Digital, (Teoría Matemática de la Información, Codificación Algebraica, Criptología), págs 220-221. Ed. Masson, S.A., Barcelona 1991 19 Síntesis de: J. L. Gómez Pardo, “La Gaceta de la Real Sociedad Matemática Española” Vol. 5, nº 3, Septiembre-Diciembre 2002. Sección “Criptografía y curvas elípticas”, págs 738-739. Ed. Gráficas Juma, Madrid 2002. © R.S.M.E., 2002

12

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Criptosistemas de clave secreta

Los cripstosistemas de clave secreta, privada, o clásicos, se basan

en que el emisor y el receptor comparten una única clave secreta k; de forma

que el proceso de encriptación E es el inverso del de desencriptación D, y el

conocimiento de uno de ellos permite el conocimiento del otro con facilidad.

Por eso también se conocen como sistemas simétricos.

A lo largo de la historia, han sido muchos y muy utilizados, pero

entrañan un problema: la clave utilizada ha de transmitirse en algun

momento entre el emisor y el receptor, por lo que se requiere un canal

seguro, es decir, un canal de comunicación donde no pueda existir ningún

intruso, lo que en la práctica es imposible. La seguridad del sistema depende

del secreto de la clave, y son, generalmente, más fáciles de criptoanalizar

que los de clave pública. Una forma de volverlos más seguros es ampliar el

conjunto de posibles claves a utilizar, lo que dificultaría un ataque de fuerza

bruta20

A continuación, me centraré en dos tipos de criptosistemas de clave

privada: los de sustitución y los de transposición, y pondré como ejemplos

los sistemas del César y el de transposición simple.

20 Ver Apéndice, criptoanálisis.

13

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Sustitución - El sistema del César Fue el utilizado por Julio César y sus generales, y es uno de los

primeros documentados históricamente. Es un sistema de sustitución muy

simple, en el que cada letra del alfabeto se corresponde con la que tiene un

número k de puestos más adelante. El número utilizado es la clave del

sistema (César utilizaba, al parecer, el número 3). Si identificamos cada letra

con un número entero m que indique la posición que ocupa en el alfabeto,

empezando por 0, ( [ ] 27,26 ... 03,02,01,00 ====== ZDCBA ), la

sustitución puede indicarse, en aritmética modular21, por la siguiente

fórmula:

)(mod Nkmc +=

siendo: c la letra ya encriptada, indicada en su número de orden del alfabeto,

m la letra a encriptar, también en número, k la clave, y N el número

de letras que tiene el alfabeto utilizado

21 La aritmética modular se centra en las propiedades de los números enteros respecto a la división. Así, , (leído, a y b son congruentes módulo m), quiere decir que b - a es divisible entre m, y que a y b al dividirlos entre m, tienen el mismo resto. La aritmética modular es muy utilizada en la criptología, y un ejemplo de ello son los sistemas de sustitución simple. (Neal Koblitz, “A Course in Number Theory and Cryptography” (Un curso en Teoría de los Números y Criptografía), págs 17-21. Ed. Springer-Verlag, New York Inc. Nueva York, 1987)

)(modmba ≡

14

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Ejemplo:

Vamos a codificar un pequeño mensaje con este sistema. Tomemos

por ejemplo la frase ATAQUE INMINENTE, y una clave k = 5

Primero, hallamos los números correspondientes a cada letra, según

la siguiente tabla:

A B C D E F G H I J K L M N

00 01 02 03 04 05 06 07 08 09 10 11 12 13

Ñ O P Q R S T U V W X Y Z [ ]

14 15 16 17 18 19 20 21 22 23 24 25 26 27

A T A Q U E [ ] I N M I N E N T E

00 20 00 17 21 04 27 08 13 12 08 13 04 13 20 04

Ahora, movemos cada letra 5 puestos a su derecha, con la fórmula anterior:

etcE 4 );28(mod5274V 22 );28(mod51722Y 25 );28(mod52025F 5 );28(mod505

=+≡=+≡=+≡=+≡

Una vez pasados los números obtenidos a letras, obtenemos este

mensaje codificado: FYFVZIENRQNRIRYI

Actualmente, este sistema ha quedado desfasado, siendo de muy

fácil criptoanálisis: basta con probar las 27 posibles k para dar con el

mensaje original. Además, es susceptible a un ataque estadístico22, ya que

los símbolos que más se repitan serán las letras más utilizadas en el idioma

del mensaje (aquí, la I aparece 3 veces en 15 letras, lo que nos da una pista

de que puede ser la E, la letra más común en el español –y así es).

15

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Transposición - Transposición simple Este sistema se basa en el desorden de los elementos del mensaje,

es decir, la transposición o cambio de orden de las letras que lo componen.

El mensaje m se divide en ciclos de tamaño prefijado n por el

emisor y el receptor, y después se aplica sobre cada ciclo, y de forma

independiente, una permutación p. Este cifrado es, por lo tanto, un ejemplo

de los denominados “cifrados en bloque”23

La clave, por lo tanto, se compone del número n, tamaño del

bloque, y la permutación p:

mcccccD

cmmmmmEKpnk

pdppppn

pdppppn

==

==∈

...)(

...)(),(

321),(

321),(

Siendo: k la clave, formada por n y p; m el mensaje original, c el mensaje

cifrado; E y D las operaciones de cifrado y descifrado, respectivamente

Ejemplo:

Como en el apartado anterior, vamos a hacer una demostración del

sistema para ver su funcionamiento. Vamos a cifrar el mensaje TE VEO EN

EL PARQUE, por ejemplo, utilizando la clave:

k: n = 5,

=

25

35144321

p

Primero, dividimos el mensaje en los bloques de 5 que sean

necesarios, y los espacios vacíos los rellenamos con un guion, por ejemplo.

22 Ver Apéndice, criptoanálisis. 23 Aquel criptosistema que cifra los elementos del mensaje (letras) juntos en bloques de tamaño finito, dividiendo el mensaje dmmmmmmm .....54321= . De esta forma, se ahorran operaciones, y se acelera el proceso. (LL. Huguet, J. Rifá, obra citada, págs 248-249).

16

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Añadimos tantos guiones al final como sea necesario para completar el

último bloque. Después, hacemos la permutación:

T E – V E O – E N – E L – P A R Q U E –

E E V T – – – N O E L A P E – Q – E R U

El mensaje obtenido es irreconocible: EEVT---NOELAPE-Q-ERU.

Como se ha cambiado la posición de las letras, un intento de criptoanálisis

por frecuencias no tiene sentido, ya que las letras utilizadas son las mismas

que en el mensaje original.

Aún así, el sistema no es difícil de criptoanalizar: se puede

simplemente jugar con las letras hasta encontrar un posible patrón, o buscar

relacciones: por ejemplo, en el último fragmento de mensaje, hay una Q y

una U muy juntas: es evidente que han de ir seguidas en el mensaje original,

lo que nos da una gran pista y elimina muchas opciones. También, el que al

principio haya dos E seguidas indica que probablemente no vayan juntas en

el mensaje original, ya que en español las dobles vocales son prácticamente

inexistentes.

***

Los criptosistemas de clave privada tienen un gran riesgo de

criptoanálisis, a no ser que tengan dos cualidades básicas, descritas por

Shannon: confusión y difusión24. Por su cuenta, ni sustitución ni

transposición cumplen ambas, por lo que en la actualidad se utilizan sistemas

como el D.E.S. o sus variantes, que combinan las posibilidades de ambos y

adquieren un gran nivel de seguridad.

24 Ver Apéndices, Seguridad de Shannon

17

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Criptosistemas de clave pública

Los sistemas de clave pública, a diferencia de los de clave privada,

se basan en que cada usuario i posee un par de claves, funciones , la

primera de las cuales se hace pública, y es la que utiliza otro usuario j para

transmitir un mensaje M a i, cifrándolo de la forma C

),( ii dc

)(Mcii = , mientras

que la segunda permanece privada y sólo es conocida por su dueño, permite

recuperar los mensajes cifrados para i, haciendo ))M (( Mcd ii)(Cd ii == .

De esta manera, se puede crear un directorio, con todas las claves públicas

de los usuarios que participan en un sistema determinado.

Dado que , para que exista la seguridad del sistema, es

preciso que venga definida por una función conocida fácil de calcular,

pero que sea computacionalmente imposible

1−= ii cd

ic

id 25 de hallar a partir de ella,

sin la información complementaria que tiene i. Estas normas, junto con otras,

constituyen las condiciones Diffie-Hellman

25 Ver apéndices, Seguridad de Shannon, sobre la seguridad computacional

18

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Condiciones de Diffie-Hellman: Son considerados los iniciadores de la criptografía de clave pública,

a raíz de su artículo de 1976. En él exponen teóricamente los requisitos de

cualquier sistema de este tipo, a pesar de que no utilizan ninguno a modo de

ejemplo:

• El cálculo de claves, pública y privada, debe ser computacionalmente

sencillo, es decir, dado por un algoritmo de complejidad polinómica26.

• El proceso de cifrado debe ser computacionalmente sencillo.

• El proceso de descifrado, conociendo la clave secreta, debe ser también

computacionalmente sencillo.

• La obtención de la clave secreta, a partir de la pública, debe ser un

problema computacionalmente imposible, es decir, dado por un

algoritmo de complejidad exponencial27

• La obtención del mensaje original, conociendo el mensaje cifrado y la

clave pública, debe ser también computacionalmente imposible.

Una función que cumple esta teoría es cualquier función trampa o

de una via, y son las que dan lugar a los sistemas criptográficos de clave

pública.

26 Complejidad polinómica: un algoritmo tiene complejidad polinómica si, teniendo como datos iniciales enteros ni, de longitud ki, existe un polinomio p de s variables tal que el tiempo de ejecución de dicho algoritmo, medido en operaciones bits (una operación bit equivale a la suma binaria (modulo 2) de dos números iguales a 0 ó 1, es decir, bits), sea

). Este tipo de algoritmos se cononcen también como eficientes o bueno, ya que su tiempo de ejecución crece logarítmicamente al crecer los datos, y permite ser resuelto por un ordenador en tiempo razonable. (Carlos Munuera y Juan Tena, “Codificación de la información”, Universidad de Valladolid, 1997, págs 264-266)

),,,(( 2 si kkkpO K

27 Complejidad exponencial: aquella en la que el tiempo de ejecución del algoritmo es exponencial a la longitud de los datos. Dichos algoritmos son conocidos como no eficientes o malos. (Carlos Munuera y Juan Tena, obra citada)

19

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Diferentes sistemas de clave pública

Actualmente, hay varios de estos sistemas funcionando, pero el

más usual es el R.S.A., que analizamos de forma detallada en el siguiente

apartado.

Un sistema muy práctico también, pero que actualmente se ha

podido criptoanalizar en tiempo polinomial es el de Merkle-Hellman, basado

en el método de las mochilas o Knapsack28: consiste en una sucesión de

crecimiento rápido29 ai por cada usuario, los cuales calculan ai’ = s·a(mod r)

(siendo ) y el resultado lo publican

(clave pública), guardando en secreto la sucesión a

1),(...1 ; 1 =<<> ∑ = rs dcr, msar ini

i, y los valores r, s.

Ciertos sistemas, como el de McEliece, utilizan otras áreas de las

matemáticas y de la teoría de la información para codificar los mensajes.

Éste, en concreto, utiliza las teorías de correción de errores, para confundir

aún más al posible criptoanalista con errores falsos, introducidos en el

mensaje conscientemente.30

28 (Carlos Munuera y Juan Tena, obra citada, págs 236-238) 29 Sucesión de crecimiento rápido o supercreciente: aquella que cumple, ordenados sus términos de menor a mayor: j

iji aa ∑> −=11

30 Otros sistemas de clave pública: el del logaritmo, basado en las propiedades casi unidireccionales de algunos logaritmos ( )(log yx α= ), o el sistema de El Gamal, o el de Massey-Omura, que requiere un doble trayecto de ida y de vuelta del mensaje para que su destinatario pueda descifrarlo, en cada uno de los cuales es tratado con diferentes claves para permitir su desencriptación. Ambos son variantes de los logaritmos discretos.

20

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

El R.S.A.

En 1978, R.L. Rivest, A. Shamir y L. Adleman, idearon un sistema

criptográfico que cumplía todas las condiciones de Diffie-Hellman. Este

sistema se conoce por R.S.A., en honor a sus inventores.

Desde entonces, ha mantenido su seguridad, y aún hoy sigue siendo

utilizado: el único cambio realizado es el tamaño de las claves, que han

aumentado considerablemente para impedir el criptoanálisis.

El sistema está basado en la dificultad del problema matemático de

la factorización de un número compuesto, para lo que no existen algoritmos

de tiempo polinomial, y en la facilidad de la operación inversa, multiplicarlo.

Tiene innumerables ventajas sobre los sistemas de clave secreta:

permite el intercambio de claves, la firma matemática, etc., con lo que se

convierte en uno de los sistemas más útiles del momento.

21

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Funcionamiento del sistema:

1. Cada usuario i elige dos numeros primos, p y q, que han de ser

suficientemente grandes (hoy en día todos los ordenadores tienen

métodos para fabricar números primos pseudoaleatorios)31, dependiendo

de la capacidad de computación de los posibles criptoanalistas,

aproximadamente de 150 cifras.

2. Se halla n, como producto n = p · q

3. Se halla z = )1)(1()( −−=Φ qpn , que es la función del indicador de

Euler32

4. Se elige un número d menor que z, tal que mcd( 1), =zd , es decir, d y z

sean primos entre sí, o primos relativos: en la práctica se coge d primo

directamente, y mayor que p y q, (mayor que el mayor de los dos), con lo

que no nos caben dudas de que sean primos entre ellos. Otro método es

el algoritmo de Euclides33, para hallar el mcd, lo que evita factorizar

ambos números.

5. Se obtiene un número e, tal que 1 )(mod1· , zdeze =<< , número34 que

existe y es único.35

31 Los números primos de gran tamaño no son fáciles de hallar. Para comprobar si un número es primo, se utilizan los llamados tests de primalidad. Ninguno asegura la primalidad de un número dado al 100%, pero permite conseguir una gran probabilidad de que lo sea, y combinados entre sí dan buenos resultados. Así, se evita utilizar el algoritmo de tiempo exponecial de dividir el número por todos los primos menores que su raiz cuadrada para comprobarlo. Ejemplos de estos tests son: Test probabilístico de Miller, Test de Solovay-Strassen, Test de Rabin, etc. Los ordenadores calculan números pseudoaleatorios, y luego comprueban su primalidad con este tipo de tests. 32 Se define la función del indicador de Euler como función de variable natural, Φ, de manera que Φ(n) representa la cantidad de naturales menores que n y primos con n:

{ }1),mcd(,1/#)( =≤≤∈= niniin N φ . Para calcularla, siendo

(∏= i

ipn α

ii p aparece que veceslas y i np , factoriza se queen primos losson α ), se utiliza

la fórmula siguiente: )1−()( 1=∏ −ii ppn iαφ . (Ll. Huguet – J Rifá, obra citada, págs:

86-87.) 33 Ver Apéndices, algoritmo de Euclides. 34 a = b mod n, quiere decir que a es el menor valor positivo que es congruente con b mod n (menor resto no negativo)

22

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

6. La clave pública está constituida por P(n, e), la cual es enviada a los

demás usuarios, y la secreta es S(n, d), que ha de ser conservada por i.36

7. Para encriptar, se utiliza la función:C , siendo M el

mensaje original y C el mensaje codificado.

)(mod nM e≡

8. El usuario i puede desencriptar cualquier mensaje que le haya enviado

otro usuario con: ( ) nnMnCM ded modmodmod ==

Para que el sistema sea efectivo, n ha de ser mayor que cualquiera

de los posibles mensajes o bloques de mensajes: si se utilizan caracteres

sueltos, mientras sea mayor de 27 no habrá problema alguno (sin contar con

los caracteres numéricos). Normalmente esto no es ningún problema, dado el

tamaño colosal de p y q.

Para el cálculo de las potencias modulares se utiliza el método de la

exponeniación binaria: se basa en la posiblilidad de expresar el exponente en

su forma binaria, y a partir de ahí multiplicar y potenciar la base según el

número obtenido37

Así, logramos descomponer las grandes potencias en otras más

pequeñas, más manejables. El proceso de desencriptación es el mismo, solo

que se sustituye e por d.

35 En un anillo Z / n, un elemento d∈Z / n tiene un único inverso e∈Z / n tal que

, si y sólo si mcd (d, n) = 1 nde mod1· =36 Una vez que se tienen las claves pública y privada, z, p y q ya no son necesarios: se borran totalmente, pues lo único que podrían causar es que otra persona descubra nuestra clave privada a partir de ellos. 37 Ver apéndices, algoritmos, exponenciación binaria: es una exposición detallada del algoritmo seguido para simplificar estas potencias modulares.

23

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Ejemplo:

Vamos a intentar encriptar un mensaje de ejemplo, LA CASA

GRANDE, con el sistema R.S.A.. Utilizaremos primos muy pequeños: en la

realidad estos números tienen alrededor de 150 cifras.

1. Elegimos los primos p = 17 y q = 2: con ellos calculamos n = p·q = 34

2. Por lo tanto, z = (17 – 1)(2 – 1) = 16

3. Tomamos d = 3, siendo mcd(3, 16) = 1 (d y z son primos relativos).

4. Buscamos e. Para ello podemos utilizar e dzx /)1·( += , siendo x un

número natural, hasta que ocurra que el cociente no tenga resto (e ha de

ser entero). Con este método, hallamos que e = 11

5. Clave secreta: (34, 3) la guarda el usuario A; Clave pública: (34, 11) es

distribuida, y llega hasta el usuario B

Ahora, convertimos el texto letra por letra en números38, basándonos en la

tabla siguiente:

A B C D E F G H I J K L M N

00 01 02 03 04 05 06 07 08 09 10 11 12 13

Ñ O P Q R S T U V W X Y Z [ ]

14 15 16 17 18 19 20 21 22 23 24 25 26 27

38 Obviamente, cuando se utiliza el sistema R.S.A. no se toman letras sueltas al cifrar el mensaje, pues el resultado así obtenido, como hemos visto, es una simple sustitución: cada letra siempre va a dar el mismo texto cifrado, si la clave es la misma. Por eso, se toman las letras en grupos, siempre que sean menores que n, de forma que los posibles bloques a enviar son mucho más numerosos y no se repiten apenas. En ese caso, el criptoanalista sólo puede confiar en que los lenguajes son redundantes y repetitivos, y con mucho texto cifrado habrá bloques que se repitan más que otros, lo que puede permitir un ataque de frecuencias.

24

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

L A [ ] C A S A [ ] G R A N D E

11 00 27 02 00 19 00 27 06 18 00 13 03 04

Ya podemos comenzar a cifrar el mensaje como lo haría el usuario B39:

32102 22·022)1011(11 +++== (método de exponenciación binaria)

{ }

[ ] ( )

( )

( )( )

3034mod419430434mod040734mod17714734mod03

2134mod1·33·1334mod))13)·((13)·(13(34mod131834mod18·18·1834mod))18)·((18)·(18(34mod18

2234mod36279705634mod062534mod1·21·1934mod))19)·((19)·(19(34mod19

0834mod204834mod020334mod33·15·2734mod))27)·((27)·(27(34mod27

0034mod034mod002934mod33·19·11

34mod)34mod)34mod)34mod11)·(((34mod11)·(34mod11(34mod11

11

11

222211

222211

11

222211

11

222211

11

222211

==→

==→

===→

===→

==→

===→

==→

===→

==→

====→

EDNRGSC

A

L

El mensaje cifrado nos queda:

29 00 03 08 00 25 00 03 22 18 00 21 07 30

39 Los módulos los calculamos de la siguiente manera: ))·/((mod nnaentana −= , siendo ent( ) la parte entera del número entre paréntesis. (Utilizamos la calculadora TI 83 Plus Silver Edition, creando en ella un programa para calcular los módulos más cómodamente. Ver Apéndice, programa utilizado para el aritmética modular)

25

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

El usuario A, cuando recibe el mensaje, simplemente tiene que

aplicar su clave secreta (34, 3) sobre éste para recuperar el original:

[ ]

[ ]

EDNARG

ASAC

AL

→=→

→=→

→=→

→→→=→

→=→

→→→→→=→

→→→=→

→=→

→=→

→=→

0434mod30300334mod07 071334mod21 2100 001834mod18 180634mod22 22

27 0300 001934mod25 2500 000234mod08 08

2734mod03 030034mod00 001134mod2929

3

3

3

3

3

3

3

3

3

3

Resultado: LA CASA GRANDE

26

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Firma R.S.A.40

El procedimiento es muy parecido a la encriptación corriente, pero

se añaden algunos pasos:

1. El usuario B, que quiere enviar un mensaje a A, hace un pre-

cifrado del mensaje, con su clave secreta, y luego lo cifra con la

clave pública de A.

2. Cuando A recibe el mensaje, aplica su propia clave secreta, sin

poder recuperar el mensaje todavía. Aplica seguidamente la

clave pública de B, con lo que aparece el mensaje original.

Con esto, A se asegura que el mensaje ha sido enviado por B y sólo

por él, y que no ha sido modificado por un tercero, y B no puede negar

habérselo enviado pues sólo él pudo hacerlo.

Operaciones de B:

21

1

mod3

mod21

CnC

CnMM

Ae

Bd

A

B

=→

=→

Operaciones de A:

MnC

CnC

C

Be

Ad

B

A

=→

=→

mod3

mod2

1

1

12

2

40 Una gran ventaja del R.S.A. cuando se utiliza para firmar mensajes es que permite asegurar las cualidades de No Repudio, Autenticidad e Integridad de los criptositemas, lo que le convierte en un sistema muy completo y uno de los más seguros que existen.

27

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Conclusiones

Hemos estudiado varios sitemas criptográficos de diferentes tipos

desde el punto de vista matemático, y hemos comprendido su

funcionamiento al experimentar con ellos, con lo que hemos descubierto que

ciertos sistemas tienen ventajas sobre otros, son más seguros, o más fáciles

de criptoanalizar.

En concreto, hemos analizado y comprendido con un ejemplo el

algoritmo del R.S.A., un sistema de clave pública complicado, pero que

posee muchas ventajas sobre los demás, tales como la posibilidad de firmar

matemáticamente cada mensaje.

Hemos comprobado el gran valor de la criptografía en la sociedad

actual y en la historia: es una constante en nuestro mundo: internet,

comunicaciones, cuestiones económicas y secretos de Estado dependen de

ella, y ha modificado el curso de nuestra historia en guerras, traiciones,

intrigas políticas...

Vemos que la humanidad ha ido evolucionando hacia

criptosistemas más poderosos, y criptoanálisis más potentes. La criptografía,

toda una ciencia, aprovecha su relación con otras áreas del conocimiento

como las matemáticas, la teoría de la información y de la comunicación, etc.,

para mejorarse a sí misma.

Hemos visto que ningun sistema es seguro al 100 % y que gracias

al criptoanálisis todos se pueden romper, como ha demostrado la historia.

¿Llegará un día en que seamos capaces de crear un sistema que no se pueda

destruir? Parece imposible que los mismos creadores de un sistema sean

vencidos por su propia obra. En mi opinión, eso nunca ocurrirá, pero con la

aplicación de las matemáticas en la criptografía podemos obtener resultados

muy positivos.

***

Nº de palabras: 3.970

28

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Apéndices

29

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Criptoanálisis

Si el propósito de la criptografía es garantizar la seguridad y el

secreto de un mensaje, el criptoanálisis busca por todos los medios descubrir

ese mensaje secreto, o la clave con la que está codificado, lo que permitiría

entender todos los mensajes posteriores.

El primer método en utilizarse fue sin duda el conocido como

fuerza bruta, es decir, ir probando todas las posibles claves hasta dar con la

correcta.

Hay dos tipos de métodos básicos:

1. Activos: el criptoanalista lleva a cabo acciones como hacerse pasar por

un transmisor autorizado, tratar de sustituir o modificar los mensajes

entre dos usuarios, etc.

2. Pasivos: el criptoanalista tan solo intenta recuperar la clave y el mensaje

a partir del texto cifrado C. No participa, por tanto, en la comunicación

entre los usuarios del sistema. Son, a su vez, de cuatro tipos distintos

• Ataques con texto cifrado conocido: si sólo se dispone de

textos cifrados: son los criptoanálisis más duros. Aun así, se

puede realizar un análisis de frecuencias, por ejemplo.

• Ataques con texto claro conocido y su respectivo cifrado: esto

ya es diferente: permite al criptoanalista descubrir relaciones

entre ambos textos, hasta recuperar la clave k.

• Ataques con texto claro elegidos: el criptoanalista tiene tal

acceso al sistema que puede elegir cualquier texto en claro

que él desee y obtener su correspondiente cifrado.

• Ataques con texto cifrado elegido: es lo contrario que lo

anterior: el criptoanalista puede obtener el texto descifrado de

cualquier texto cifrado que él elija. Es el más ventajoso de

todos, permite revelar cualquier mensaje secreto.

30

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Análisis de Frecuencias

Un ataque muy corriente que el criptoanalista puede llevar a cabo

cuando no tiene acceso total es un intento de análisis de frecuencias. Todos

los idiomas son redundantes: se repiten los signos que utilizan, y unos con

mayor frecuencia que otros. Aprovechando esto, el criptoanalista puede

buscar los símbolos más repetidos en el mensaje cifrado, y sustituirlos por

las letras más usuales en el sistema original. Las letras más comunes son las

siguientes, para el inglés y el francés son41:

Frances E S A R N U T L I O Total Frecuencia % 15 8 6 5,5 5,4 4,8 4,7 4,6 4,5 4 54,5%

Ingles E T A O I N S H R Total Frecuencia % 10 8,2 7 6,5 6,4 6,3 6 4 3,6 61,1%

En español, son las letras del abecedario tienen las siguientes frecuencias42:

Altas Medias Bajas Bajas E - 16,78% R - 4,94% Y - 1,54% J - 0,30% A - 11,96% U - 4,80% Q - 1,53% Ñ - 0,29% O - 8,69% I - 4,15% B - 0,92% Z - 0,15% L - 8,37% T - 3,31% H - 0,89% X - 0,06% S - 7,88% C - 2,92% G - 0,73% K - 0,00% N - 7,01% P - 2,776% F - 0,52% W - 0,00%D - 6,87% M - 2,12% V - 0,39%

Vemos que la E es la más común en los tres idiomas, por lo que es

lógico sustituir el símbolo más común por esta letra, si el mensaje está en

uno de estos lenguajes.

41 Datos de: http://rinconquevedo.iespana.es/rinconquevedo/Criptografia/frecuencia.html, tablas de frecuencias para idiomas comunes. 42 Datos de: Enrique Fontanillo “Estudio lexicométrico”, diario El País

31

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Seguridad de Shannon

Shannon, 1916, Michigan. Publica por primera vez su artículo “A

mathematical theory of communication” en 1948. Es considerado el padre de

la teoría de la información, y es uno de los hombres que más han

evolucionado individualmente el concepto de comunicación humana.

Fue Shannon quien describió los requisitos de seguridad de

criptosistemas de una forma explicita: la difusión y la confusión:

• El propósito de la difusión consiste en evitar en lo posible la redundancia

del texto original sobre el texto cifrado, y aumentar el desorden. Para

ello, podemos utilizar la transposición, que evita los criptoanálisis

basados en las frecuencias de las n-palabras. Otra manera de conseguirlo

es hacer que cada letra del texto cifrado dependa de un gran número de

letras del texto base, con lo que además acortaríamos su longitud (cifrado

en bloque).

• La confusión, en cambio, consiste en hacer que la relación entre la clave

y el texto cifrado sea lo más compleja posible, haciendo así que las

estadísticas del texto cifrado no estén muy influidas por las del texto

original. Eso se consigue normalmente con la sustitución.

En solitario, ni confusión ni difusión constituyen buenas técnicas

de cifrado: En cambio, cuando se unen, pueden dar lugar a criptosistemas

muy seguros, como el D.E.S. y sus variantes (triple D.E.S., etc.), que se

utilizan ampliamente en la red. Se basan en una mezcla de transposición y

sustitución, es decir, un criptosistema producto, (aquel que combina dos o

más tipos de sistemas simples) con lo que logran reunir un alto nivel de

confusión y de difusión.

32

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Shannon también aportó los conceptos de seguridad incondicional

y seguridad computacional:

• Seguridad incondicional: Un sistema criptográfico es incondicionalmente

seguro si es irrompible, no importa si el criptoanalista tiene tiempo y

recursos ilimitados

• Seguridad computacional: Un sistema criptográfico es computacional-

mente seguro si es irrompible, suponiendo que el criptoanalista posee

tiempo y recursos limitados.

La seguridad incondicional parece ser inalcanzable: hoy en día lo

único que se ha logrado producir han sido sistemas de tal complejidad

computacional que se supone que los mejores criptoanalistas tardarían años

en romper con los mejores equipos actuales, lo que es suficiente para

mantener la seguridad.

El sistema R.S.A. cumple este requisito de complejidad

computacional: hoy en dia un número de 150 cifras o más es

computacionalmente casi imposible de factorizar, con le que se logra un

grado de seguridad muy alto

33

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Algoritmos

Algoritmo de Euclides 43Es un algoritmo muy antiguo, que permite hallar el mcd (máximo

común divisor) de dos números, a, b, en un tiempo , es decir,

polinómico, sin necesidad de factorizar los números dados.

))((log3 aO

Siendo 0, ≠≥ bba

Z,

, por la regla de la división tenemos que a = b·q

+ r, rqba ∈,,

Se cumple que el máximo común divisor de (a, b) es también el

máximo común divisor de (r, b). Nos basamos en esto durante el algoritmo:

el mcd de dos restos, avanzado el proceso, será el mismo que el de los

números originales.

Como mcd(a, b) = mcd(|a|, |b|), tomamos a ≥ b > 0.

1. Dividimos a entre b, a = bq1 + r1, con 0 ≤ r1< b

2. Si r1 = 0, como a ≤ b, es obvio que b = mcd(a, b), ya que divide a a.

Terminamos el proceso

3. Si r1 ≠ 0, dividimos b entre r1, b = r1q2 + r2, siendo 0 ≤ r2 < b

4. Si r2 = 0, entonces mcd(b, r1) = r1 y mcd(a, b) = r1. Terminamos.

5. Si r2 ≠ 0 continuamos dividiendo r1 por r2, y así sucesivamente, hasta que

6. De este modo obtenemos un conjunto de números r1 > r2 >... , de modo

que llegaremos a un rn = 0 en un número finito de pasos. Entonces:

rn–1 = mcd(rn–2, rn–1) = mcd(rn–3, rn–2) = ... = mcd(b, r1) = mcd(a, b)

43 Fuente orientativa: Carlos Munuera y Juan Tena, obra citada, págs 268-269.

34

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Ejemplo:

02·484:8

43·8288:2881·283628:36281·366436:64

3612·6480464:804642·8041672804:1672

8042·167241481672:4148:)1672 ,4148mcd(

+=→

+=→+=→+=→

+=→+=→+=→

Como 8 : 4 es exacto, concluímos que mcd (8, 4) = 4, lo que implica que mcd (28, 8) = 4, ... , y finalmente: mcd (4148, 1672) = 4

35

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Exponenciación binaria:

44El método surge a partir de una propiedad de la aritmética modular:

( )

( )exxxxsiendo

nnananana

naaaan

mmbmamab

i

xxxx

xxxx

i

i

=++++=

==

=

... :mod)mod·()·mod)·(mod)·(mod(

mod)····(moda

:obtenemos donde De

mod)mod)(mod(mod

321

e

321

321

K

K

El número e puede expresarse en forma binaria, de cifras

, siendo (k es el número

de cifras binarias). Sabemos que en base binaria, los números están

compuestos exclusivamente de unos y ceros, por lo que algunos se

anularán.

1210 ,...,,, −kcccc 11

22

11

00 2...222 −

−++++= kk cccce

ii c2

Sustituyendo estos valores arriba, tenemos que : ii

i cx 2=

( )eccccsiendo

nnananana

kk

cccc kk

=

=

−−

−−

11

22

11

00

2222

2·...·2·2·2 :mod)mod·()·mod)·(mod)·(mod( 1

12

21

10

0

K

Ejemplo:

[ ][ ]{ }[ ][ ]{ }[ ][{ } 5mod)5mod·(5mod)5mod(·5mod)5mod)5mod)5mod)5mod((((5mod

5mod)5mod·(5mod)(·5mod))))((((5mod5mod)5mod·(5mod(·5mod5mod

222)100101(37

1222222237

1222222237

22237

0252

025

aaaaaaaa

aaaa

=

=

=

++==

]

De esta forma somos capaces de calcular grandes potencias

modulares mucho más cómodamente, y dado que muchos factores se repiten,

es suficiente con calcularlos una vez y volverlos a reutilizar cuando sean

necesarios. Es utilizado en el sistema R.S.A.

44 Fuente orientativa: Neal Koblizt, obra citada, págs 22-23.

36

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Programa utilizado

A continuación adjunto el programa que he creado en la

calculadora y que me ha permitido calcular todas esas operaciones con

módulos, en los ejemplos del R.S.A. Es muy simple, pero me ha ahorrado

muchas operaciones repetitivas.

LimpPrinc Limpia la pantalla

Mostrar “aritmética modular” Título

Mostrar “ A^B mod M” Título

Input “Modulo M =”, M El programa pide el valor de M, módulo

Lbl C Etiqueta C

Input “Valor A =”, A El programa pide el valor A

A – (ent /A/M)·M)→ R Halla el módulo y lo guarda en R

Mostrar “Resultado: “, R Muestra R

Goto C Vuelve a C, para continuar con el mismo valor M

37

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

Bibliografía

Libros y Revistas:

[01] J. L. Gómez Pardo, “La Gaceta de la Real Sociedad Matemática Española” Vol. 5, nº 3, Septiembre-Diciembre 2002. Sección “Criptografía y curvas elípticas”, págs 738-777. Ed. Gráficas Juma, Madrid 2002. © R.S.M.E., 2002

[02] Joseph A. Gallian, Solomon Garfunkel, “Las Matemáticas en la vida cotidiana” Capítulo 10, págs 303-331 Ed. Universidad Autónoma de Madrid. Madrid, 1999. ©Addison Wesley Iberoamericana.

[03] Carlos Munuera y Juan Tena, “Codificación de la Información” Ed. Universidad de Valladolid, Valladolid 1997

[04] LL. Huguet, J. Rifá, “Comunicación Digital, (Teoría Matemática de la Información, Codificación Algebraica, Criptología) Ed. Masson, S.A., Barcelona 1991

[05] Neal Koblitz, “A Course in Number Theory and Cryptography” (Un curso en Teoría de los Números y Criptografía), (en ingles). Ed. Springer-Verlag, New York Inc. Nueva York, 1987

[06] Grupo Larousse, “Nueva Enciclopedia Larousse”, Planeta nº 3. Ed. Planeta, Barcelona, 1982

[07] Microsoft Corporation, “Encarta ‘98” (CD-Rom) “Criptografía” Microsoft Encarta, 1993-1997

Páginas Web en Internet:

[01] Rincón Quevedo, Introducción a la Criptografía. A consultar en el World Wide Web: http://rinconquevedo.iespana.es/rinconquevedo/Criptografia/introduccion.html

[02] Criptosistemas. A consultar en el World Wide Web: http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/node306.html#crypsys

38

Una Introducción a la criptografía. El criptosistema R.S.A. Mario Merino Martínez Monografía D 0405 055

39

[03] HTML Seguridad, Criptografía Diffie Hellman. . A consultar en el World Wide Web: http://www.htmlweb.net/seguridad/cripto/cripto9.html

[04] MundoCripto: Números Primos. . A consultar en el World Wide Web: http://webs.ono.com/usr005/jsuarez/primos.htm

[05] RSA. A consultar en el World Wide Web: http://pracgi.ulpgc.es/~a1480/rsa.htm

[06] Matemáticas.net – Criptotaller. A consultar en el World Wide Web: http://www.matematicas.net/paraiso/cripto.php?id=cripto

Herramientas matemáticas utilizadas:

• Calculadora gráfica Texas Instrument TI-83 Plus Silver Edition.

• Programa de cálculo Derive 5, 2002 Texas Instrument. Version 5.06

• Calculadora de Windows ’98, © Microsoft