Sie sind auf Seite 1von 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
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:


E = {E k M → C , ∀k ∈ K }

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


D = {Dk C → M , ∀k ∈ 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 k ∈ K , la cual distinguirá el
algoritmo correspondiente a cada transformación E k .

Lo mismo ocurre para las transformaciones de descifrado Dk de D.

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

recuperar el mensaje original al aplicarla sobre el cifrado:

Dk (E k (m) ) = m, ∀m ∈ M ; ∀k ∈ K

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, E k y Dk , han de ser

fácilmente calculables.

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

implementables.

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, ( A = 00, B = 01, C = 02, D = 03 ... Z = 26, [ ] = 27 ), la
sustitución puede indicarse, en aritmética modular21, por la siguiente
fórmula:

c = m + k (mod N )

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í, a ≡ b(mod m) , (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)

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:

5 ≡ 0 + 5(mod 28); 5=F


25 ≡ 20 + 5(mod 28); 25 = Y
22 ≡ 17 + 5(mod 28); 22 = V
4 ≡ 27 + 5(mod 28); 4=E
etc

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:

k ( n, p ) ∈ K
E ( n , p ) (m) = m p1 m p 2 m p 3 ...m pd = c
D( n , p ) (c) = c p1c p 2 c p 3 ...c pd = m

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:

1 2 3 4 5
k: n = 5, p =  
 4 1 5 3 2

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 m = m1 m2 m3 m4 m5 .....md . 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:

TE–VE O–EN– EL–PA RQUE–

EEVT– ––NOE LAPE– Q–ERU

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 (ci , d i ) , 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 i = ci (M ) , mientras

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


recuperar los mensajes cifrados para i, haciendo M = d i (C i ) = d i (ci ( M )) .

De esta manera, se puede crear un directorio, con todas las claves públicas
de los usuarios que participan en un sistema determinado.

−1
Dado que d i = ci , para que exista la seguridad del sistema, es

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

pero que d i sea computacionalmente imposible25 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
O( p (k i , k 2 , K , k s ) ). 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)
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 r > ∑ in=1 a i ; 1 < s < r, m.c.d . ( s, r ) = 1 ) y el resultado lo publican

(clave pública), guardando en secreto la sucesión ai, 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
i −1
términos de menor a mayor: ai > ∑ j =1 aj
30
Otros sistemas de clave pública: el del logaritmo, basado en las propiedades casi
unidireccionales de algunos logaritmos ( x = log α ( y ) ), 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 = Φ(n) = ( p − 1)(q − 1) , que es la función del indicador de


Euler32

4. Se elige un número d menor que z, tal que mcd(d , z ) = 1 , 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 < e < z , e·d = 1(mod z ) , 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:
φ (n) = # {i ∈ N / 1 ≤ i ≤ n, mcd(i, n) = 1}. Para calcularla, siendo n = ∏ piα i
( p i son los primos en que se factoriza n, y α i las veces que aparece p i ), se utiliza
la fórmula siguiente: φ (n) = ∏ p iα −1 ( p i − 1) . (Ll. Huguet – J Rifá, obra citada, págs:
i

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 ≡ M e (mod n) , siendo M el


mensaje original y C el mensaje codificado.

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

otro usuario con: M = C d mod n = (M e mod n ) mod n


d

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
e·d = 1 mod n , si y sólo si mcd (d, n) = 1
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 = ( x· z + 1) / d , 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:

11 = (1011) 2 = 2 0 + 21 + 0·2 2 + 2 3 (método de exponenciación binaria)

{
L → 1111 mod 34 = (11 mod 34)·(112 mod 34)·(((112 mod 34) 2 mod 34) 2 mod 34) mod 34 = }
= 11·19·33 mod 34 = 29
A → 0011 mod 34 = 0 mod 34 = 00
[ ] → 27 11 mod 34 = ((27)·(27 2 )·((27 2 ) 2 ) 2 ) mod 34 = 27·15·33 mod 34 = 03
C → 0211 mod 34 = 2048 mod 34 = 08
( )
S → 1911 mod 34 = (19)·(19 2 )·((19 2 ) 2 ) 2 mod 34 = 19·21·1 mod 34 = 25
G → 0611 mod 34 = 362797056 mod 34 = 22
( )
R → 1811 mod 34 = (18)·(18 2 )·((18 2 ) 2 ) 2 mod 34 = 18·18·18 mod 34 = 18
N → 13 11
mod 34 = ((13)·(13 2 2 2
)·((13 ) ) 2
)mod 34 = 13·33·1 mod 34 = 21
D → 0311 mod 34 = 177147 mod 34 = 07
E → 0411 mod 34 = 4194304 mod 34 = 30

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: a mod n = a − (ent ( a / n)·n) ,
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:

29 → 29 3 mod 34 = 11 → L
00 → 00 3 mod 34 = 00 → A
03 → 03 3 mod 34 = 27 → [ ]
08 → 08 3 mod 34 = 02 → C
00 → 00 → A
25 → 25 3 mod 34 = 19 → S
00 → 00 → A
03 → 27 → [ ]
22 → 22 3 mod 34 = 06 → G
18 → 18 3 mod 34 = 18 → R
00 → 00 → A
21 → 213 mod 34 = 13 → N
07 → 07 3 mod 34 = 03 → D
30 → 30 3 mod 34 = 04 → E

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.

1→ M
Operaciones de B: 2 → M d B mod n B = C1
e
3 → C1 A mod n A = C 2

1 → C2
dA
Operaciones de A: 2 → C 2 mod n A = C1
e
3 → C1 B mod n B = M

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
43
Es un algoritmo muy antiguo, que permite hallar el mcd (máximo
común divisor) de dos números, a, b, en un tiempo O(log 3 (a )) , es decir,
polinómico, sin necesidad de factorizar los números dados.

Siendo a ≥ b, b ≠ 0 , por la regla de la división tenemos que a = b·q


+ r, a, b, q, r ∈ Z

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:
mcd(4148, 1672) :
4148 : 1672 → 4148 = 1672·2 + 804
1672 : 804 → 1672 = 804·2 + 64
804 : 64 → 804 = 64·12 + 36
64 : 36 → 64 = 36·1 + 28
36 : 28 → 36 = 28·1 + 8
28 : 8 → 28 = 8·3 + 4
8 : 4 → 8 = 4·2 + 0

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:

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

ab mod m = ((a mod m)(b mod m) ) mod m

De donde obtenemos :
a e mod n = (a x1 ·a x2 ·a x3 ·K·a xi ) mod n =
(
= (a x1 mod n)·(a x2 mod n)·(a x3 mod n)·K·(a xi mod n) mod n )
siendo : x1 + x 2 + x 3 + ... + x i = e

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


c0 , c1 , c2 ,..., ck −1 , siendo e = 20 c0 + 21 c1 + 2 2 c2 + ... + 2 k −1 ck −1 (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 2i ci se

anularán.

Sustituyendo estos valores arriba, tenemos que xi = 2i ci :

(
= (a 2
0
c0 1
mod n)·(a 2 c1 mod n)·(a 2
2
c2
mod n)·K·(a 2
k −1
ck −1
)
mod n) mod n
siendo : 20 c0 ·21 c1 ·2 2 c2 ·...·2 k −1 ck −1 = e

Ejemplo:

37 = (100101) 2 = 2 5 + 2 2 + 2 0
{[ 5
][ 2
a 37 mod 5 = a 2 mod 5 · (a 2 mod 5 ·(a 2 mod 5) mod 5 ] 0
}
[ 2 2 2 2
][
a mod 5 = {((((a ) ) ) ) mod 5 · (a ) mod 5 ·(a 1 mod 5)}mod 5
37 2 2 2
]
a 37 mod 5 = {[((((a 2
][
mod 5) 2 mod 5) 2 mod 5) 2 mod 5) 2 mod 5 · (a 2 mod 5) 2 mod 5 ·(a 1 mod 5)}mod 5 ]

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

[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

39

Das könnte Ihnen auch gefallen