. . . . . .. . . .
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
Top Related