Upload
adrian-sanjose
View
238
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Introduccion de Perez
Citation preview
Introdu
ion a la riptografa
Jose Angel de Bustos Perez
Version 1;0
ii
Prefaio
El origen de este doumento fue un trabajo que tuve que entregar para
una asignatura sobre riptografa durante mis ultimos a~nos de arrera. Mi
idea es la de ampliar y/o orregir este doumento, pero debido, fundamen-
talmente, a la falta de tiempo esa labor la ire realizando lentamente.
Este doumento esta orientado a los fundamentos matematios de la rip-
tografa, esto lo orregire en posteriores versiones para ofreer un aspeto mas
pratio sobre la riptografa. Si las demostraiones matematias no te in-
teresan mi onsejo es que te las saltes y uniamente te jes en los resultados
que nos ofreen los teoremas matematios.
Cualquier sugerenia, ritia y/o orre
ion sera bienvenida para la mejo-
ra y ampliaion de este doumento.
Mi dire
ion de orreo eletronio es jadebustosaugyl.org. Sientete
libre de distribuir, siempre y uando sea de forma gratuita y altruista, este
doumento. Queda expresamente prohibida la modiaion o alteraion de
este doumento sin la expresa autorizaion del autor del mismo.
Jose Angel de Bustos Perez, Agosto 2;001.
iii
iv PREFACIO
Indie general
1
2
INDICE GENERAL
Indie de guras
3
4
INDICE DE FIGURAS
Indie de uadros
5
6
INDICE DE CUADROS
Parte I
Introdu
ion a la Criptografa
7
Captulo 1
Introdu
ion
Podemos onsiderar la riptografa omo una tenia para proteger in-
formaion de tal forma que solo pueda ser a
edida por aquellas personas
autorizadas para ello.
La riptografa se utiliza, basiamente, en las transmisiones digitales de
informaion.
1.1. Utilidades de la Criptografa
Mediante la riptografa podemos evitar que un doumento digital que
ha sido transmitido por un anal, sin prote
ion alguna, sea modiado in-
tenionadamente.
1. Podemos garantizar el origen de un doumento, es deir, podemos ve-
riar que el doumento proviene de quien die provenir.
2. Podemos garantizar la autentiidad del doumento, es deir, que no ha
sido modiado por ninguna persona.
3. Podemos veriar que el reeptor es el reeptor adeuado del doumen-
to, es deir, podemos evitar el entregar un doumento a un impostor.
La riptografa nos ofree seguridad en las omuniaiones digitales, siem-
pre que se aplique de una forma orreta.
9
10 CAP
ITULO 1. INTRODUCCI
ON
1.2. Criptografa Clasia
La riptografa es una forma de oultar informaion, es deir una manera
de transmitir informaion de forma ondenial. El hombre, desde los ori-
genes de su existenia, ha tenido la neesidad de poder transmitir mensajes
de una forma segura y ondenial.
Podemos onsiderar las formas mas primitivas
1
de lenguaje esrito omo
tenias riptograas, ya que eran muy poos los apaitados para inter-
pretar los smbolos utilizados. A pesar de esto era neesario enmasarar los
smbolos que formaban los mensajes ya que aunque haba poas personas
apaitadas para entender los mensajes no todas estaban autorizadas para
haerlo.
Una de las primeras formas de enmasarar informaion fue mediante una
tenia onoida omo esteganografa, la ual onsistia en oultar un mensaje
sereto en otro mensaje inteligible. Por ejemplo:
Haer oriios sobre los arateres que omponan el mensaje sereto,
por entre los uales se haan pasar lamentos onstituyendo un tren-
zado que enmasaraba el mensaje original. As pues, para leer diho
mensaje era neesario deshaer la mara~na.
Algunos espas en la Segunda Guerra Mundial esriban mensajes se-
retos on tinta invisible enima de otros mensajes en laro que enmas-
araban a los primeros.
En la riptografa lasia los mensajes se transmitan ifrados on una
lave sereta, de tal forma que el reeptor pudiera desifrarlos utilizando la
lave sereta on la que el emisor los ifro. Este tipo de riptografa tambien
reibe el nombre de riptografa simetria de lase sereta, puesto que emisor
y reeptor deben poseer la misma lave, sereta, para ifrar y desifrar los
mensajes.
Las laves seretas utilizadas en la riptografa lasia deban ser transmi-
tidas a traves de anales seguros, normalmente por orreos personales. Esto
planteaba problemas:
1. Se deba disponer de orreos ables para el transporte de las laves.
2. En el aso de que el orreo no pudiera llegar hasta el reeptor, este
quedaba inomuniado.
1
Por ejemplo las esrituras jeroglas del antiguo Egipto.
1.3. CRIPTOGRAF
IA MODERNA 11
1.3. Criptografa Moderna
El a~no 1;976 fue un a~no lave para la riptografa simetria. En ese a~no un
metodo de ifrado simetrio denominado DES
2
fue adoptado omo estandar
para la riptografa simetria de lave sereta en los Estados Unidos y poste-
riormente en todo el mundo. El metodo fue desarrolado por IBM y refrendado
por la NSA
3
y el NIST
4
. Este proedimiento de ifrado es todava hoy uno
de los mas utilizados, puesto que hasta el momento presente ha resistido to-
dos los ataques onoidos y publiados en el mundo aademio, si bien se
ignora si suede lo mismo on los ataques llevados a abo por las distintas
agenias de inteligenia gubernamentales. Sin embargo, aun en este nuevo
proedimiento de ifrado, exista el problema del interambio y distribuion
de laves seretas entre los omuniantes, atividades que deban llevarse a
abo a traves de anales seguros. Este problema fue resuelto en ese mismo a~no
por W. Die y M. E. Hellman
5
de la Universidad de Stanford en California
mediante un protoolo riptograo que permita distribuir laves seretas a
traves de anales abiertos sin prote
ion. Este invento fue el primer onepto
innovador y revoluionario desde los tiempos de la riptografa lasia.
El proedimiento de interambio de laves seretas de Die y Hellman
estaba basado en funiones matematias uyo alulo direto es fail pero
el inverso tiene tal omplejidad que o bien es imposible realizarlo on los
onoimientos y ordenadores atuales o bien el tiempo neesario para reali-
zarlo es tal que, uando se logra desifrar la informaion on el ifrada diha
informaion no tiene utilidad. Con el metodo de Die y Hellman unia-
mente se podan interambiar, pero predijeron que si se pudiesen enontrar
funiones de una sola dire
ion on trampa, el onoimiento de diha tram-
pa permitira el alulo de la funion inversa on la misma failidad, y por
tanto sera posible no solo transmitir laves seretas a traves de anales abier-
tos, sino tambien realizar operaiones de ifrado y desifrado de mensajes,
as omo produir rmas digitales.
2
Data Enryption Standard.
3
National Seurity Ageny.
4
Naional Institute of Standards and Tehnology.
5
Die, W., Hellman, M. E. \New Diretions in Cryptograhpy", IEEE Transations on
Information Theory, 1;976. IT-22, pp. 644-654.
12 CAP
ITULO 1. INTRODUCCI
ON
En el a~no 1;977 R. Rivest, A. Shamir y L. Adleman del MIT
6
des-
ubrieron una de dihas funiones y rearon en elegante metodo de ifrado
y rma digital denominado RSA
7
. Esta aportaion, junto on el protoolo
de interambio de laves de Die y Hellman fue el origen de la riptografa
moderna o de lave publia.
En la riptografa de lave publia ada individuo posee dos laves, una
sereta y otra publia, de forma que los ifrados realizados on una de las
laves se desifran on la otra, siendo tanto el ifrado omo el desifrado ope-
raiones matematias realizables en tiempo real.
Las laves estan relaionadas matematiamente de tal forma que el o-
noimiento de la lave publia y la matematia que sustenta su relaion on
la sereta no es suiente para el alulo de esta ultima. Para su alulo se
neesita onoer la \trampa", que es sereta. En el aso de no onoer la
\trampa" el alulo de la lave sereta es tan omplejo que no existe apai-
dad de alulo suiente para realizarlo a tiempo de utilizar diha informaion
on beneio.
La \trampa" en el RSA es el onoimiento de la fatorizaion de un
numero ompuesto. Los numeros que se utilizan son del orden de 300 dgitos,
uya fatorizaion requiere ientos de miles de a~nos de CPU de superorde-
nadores.
1.4. Ataques a la Seguridad Criptograa
Como la riptografa surgio para esonder informaion a determinadas
personas u organismos, luego siempre habra alguien interesado en obten-
er una informaion ifrada. Por esta razon existen distintos metodos para
obtener diha informaion, los dos tipos basios son:
Ataques pasivos.
El intruso intenta obtener la informaion sin modiarla. Este tipo de
ataque no puede ser detetado por los interesados, pero la riptografa
ofree prote
ion ontra este tipo de ataques, ya que evita que la infor-
maion optenida mediante la esuha sea inutil al estar ifrada.
6
Massahusetts Institute of Tehnology.
7
Rivest, R., Shamir, A., w,L. \A Method for Obtaining Digital Signatures and Publi-
Key Crytosystems" Communiations of the ACM, 21 (1;978), pp. 120-126.
1.4. ATAQUES A LA SEGURIDAD CRIPTOGR
AFICA 13
Ataques ativos.
El intruso intenta obtener la informaion y modiarla a su onvenien-
ia.
1.4.1. Ataque a partir del ifrado
El ataante solamente tiene a
eso al texto ifrado y a partir de el trata
de enontrar la lave sereta on la que se ifro diho texto.
Un metodo de ifrado que sea vulnerable a este tipo de ataque se on-
sidera absolutamente inseguro. La riptografa lasia fue vtima de estos
ataques mediante el analisis estadstio de freuenias de los smbolos en los
distintos idiomas.
Los siguientes ataques son los mas onoidos:
1.4.2. Ataque a partir del texto en laro
El ataante tiene a
eso a textos en laro y a sus orrespondientes ifrados,
a traves de los uales se intenta averiguar la lave sereta.
1.4.3. Ataque a partir del texto en laro elegido
El ataante tiene la posibilidad de elegir un texto en laro y obtener su
orrespondiente ifrado.
1.4.4. Ataque a partir de texto en laro ondiionado
El ataante puede elegir un texto en laro ondiionado por los ifrados
previamente intereptados.
1.4.5. Ataque a partir de ifrado elegido
El ataante elige un ifrado y obtiene el orrespondiente texto en laro,
es deir, el ataante tiene a
eso al ifrador, pero no a la lave.
1.4.6. Ataque a partir de ifrado ondiionado
Es igual que el anterior, pero on la diferenia de que el ifrado elegido
esta ondiionado por los textos en laro previamente obtenidos.
14 CAP
ITULO 1. INTRODUCCI
ON
1.4.7. Ataque on lave onoida
En este ataque el oponente obtiene algunas laves utilizadas en ifrados
previos e intenta determinar nuevas laves.
1.4.8. Reutilizaion del protoolo
En este aso el oponente realiza el ataque registrando una de las omuni-
aiones, o parte de ella, e intenta utilizarla insertandola en una omuniaion
posterior.
1.4.9. Suplantaion de personalidad
El ataante asume la identidad de uno de los omuniantes registrados
en la red digital de omuniaion.
1.4.10. Compilaion de un di
ionario
Este ataque es tpio de los sistemas que tienen un ontrol de a
eso.
Cuando el usuario introdue su lave de a
eso al sistema es transforma-
da mediante una funion y omparada on las transformadas en la base de
datos del ordenador. Si la funion de transformaion es publia y el ata-
ante tiene a
eso a la lnea de omuniaion por la que se transmiten dihas
transformadas, entones puede almaenarlas en un registro. En estas ondi-
iones, el ataque se lleva a abo generando laves de a
eso aleatorias y
transformandolas hasta que alguna transformada oinida on otra de las
previamente intereptadas.
1.4.11. Busqueda exhaustiva
Este ataque es similar al anterior y se lleva a abo generando aleatoria-
mente todos los valores posibles de las laves de a
eso y transformandolas.
De esta forma se puede elegir la lave de a
eso uya transformada oinida
on la intereptada.
1.4.12. Ataque mediante intromision
El ataante se introdue en la lnea entre dos usuarios registrados, rei-
biendo la informaion de uno de ellos y enviandosela al otro despues de
modiarla.
Captulo 2
Sistemas Criptograos
La idea basia de la riptografa ha permaneido onstante a lo largo del
tiempo, y basiamente es la siguiente:
Codiar un mensaje M en una adena nita de smbolos, donde
ada smbolo pertenee a un alfabeto nito denominado .
Deniion 2.1 (Codiador)
Llamaremos odiador a una apliaion e tal que e(M) = C, donde M es el
mensaje a odiar y C es el mensaje odiado. Tambien es habitual que el
odiador dependa de varios parametros, por ejemplo e(M;K) = C donde
K se denomina lave, C varia segun el valor de K.
Deniion 2.2 (Deodiador)
Llamaremos deodiador a una apliaion d tal que d(C) =M , donde C es
un texto odiado y M es el texto sin odiar. Al igual que en el odiador
tambien es habitual utilizar una lave K, por ejemplo d(C;K) =M .
El textoM se suele denominar texto plano y C se suele denominar ifrado.
Deniion 2.3 (Sistema riptograo)
Llamaremos sistema riptograo a la terna (M;K;C) donde M y C son
adenas de alfabetos nitos
1
y
2
respetivamente y K es un onjunto
nito de laves on la hipotesis de que existan las funiones e y d:
e :M K ! C
d : C K !M
tales que d(e(M;K); K) =M .
15
16 CAP
ITULO 2. SISTEMAS CRIPTOGR
AFICOS
Deniion 2.4 (Sistema riptograo monoalfabetio)
Un sistema riptograo se die monoalfabetio si la odiaion de ada
smbolo es independiente del mensaje que se esta odiando.
Deniion 2.5 (Sistema riptograo polialfabetio)
Un sistema riptograo se die polialfabetio si la odiaion de algun
smbolo depende del mensaje que se esta odiando.
El primer requisito para que un sistema riptograo sea \seguro" es que sea
polialfabetio.
2.1. Algunos Sistemas Criptograos
Veamos algunos de los sistemas riptograos mas simples:
2.1.1. Simple sustituion
Sea el onjunto de los simbolos del lenguaje, por ejemplo el abeedario.
Tomemos omo una permutaion de , es deir una apliaion biyetiva:
:
!
obviamente 6= Id.
Cifrar on este metodo sera sustituir ada palabra del mensaje por su
imagen en la permutaion .
Este sistema es monoalfabetio y es extremadamente vulnerable a ataques
por analsis de freuenias. Este sistema tiene el inonveniente de que si a
lo largo del mensaje M se repite, por ejemplo, la adena el varias vees y
(l) = r y (e) = g entones en el ifrado C se repetira el mismo numero de
vees la adena rg, lo ual nos da un patron de omportamiento del algoritmo
de ifrado.
2.1.2. Transposiion de orden d
Dado un entero positivo d dividimos el mensajeM en bloques de longitud
d. Entones tomanos una permutaion de f1; 2; : : : ; dg y apliamos a ada
bloque. Por ejemplo para d = 5 y la siguiente permutaion:
=
1 2 3 4 5
4 1 3 2 5
2.1. ALGUNOS SISTEMAS CRIPTOGR
AFICOS 17
si tomamos el mensaje M = Un urso de riptografa: para odiarlo
hemos de dividir el mensaje en bloques de longitud 5:
M = Un ujrso dje rijptogrjafa:
y en ada bloque apliamos la permutaion , luego:
C = U nuj rosdjre ijgpotrjaaf: = U nu rosdre igpotraaf:
Para deodiar el mensaje uniamente tendremos que dividir C en bloques
de longitud 5 y apliar a ada bloque la permutaion inversa
1
:
1
=
1 2 3 4 5
2 4 3 1 5
Como C = U nuj rosdjre ijgpotrjaaf: entones:
M = Un ujrso dje rijptogrjafa: = Un urso de riptografa:
Este metodo onserva la freuenia de distribuion de los smbolos, pero des-
truye los patrones de repetiion que onservaba el metodo de simple sustitu-
ion.
2.1.3. Vigenere
En este sistema la lave onsiste en una serie de d letras. Se asignan
numeros a las letras del abeedario, A = 0,. . . ,Z = 25. Se situa debajo del
mensaje el onjunto de d letras de forma repetida y se suman, olvidando los
espaios en blano, modulo 26.
A = 0;B = 1;C = 2;D = 3;E = 4;F = 5;G = 6;H = 7; I = 8
J = 9;K = 10;L = 11;M = 12;N = 13;
~
N = 14;O = 15;P = 16;Q = 17
R = 18; S = 19;T = 20;U = 21;V = 22;X = 23;Y = 24;Z = 25
Para el aso d = 3 y la seuenia AFG la lave sera:
K = AFGAFGAFGAFGAFGAFGAFG
Luego para ifrar el mensaje:
M = UNCURSODECRIPTOGRAFIA
K = AFGAFGAFGAFGAFGAFGAFG
C = URIUXZUIKCX
~
NPZUGXGFNG
18 CAP
ITULO 2. SISTEMAS CRIPTOGR
AFICOS
2.1.4. El ifrador de Cesar
Este sistema de ifrado lo utilizaba Julio Cesar para enviar mensajes
seretos. Es un sistema muy senillo.
1. Asignamos a ada letra un numero entre 0 y 25:
A = 0 B = 1 C = 2 : : : Z = 25
2. A ada letra del mensaje le sumamos 3 mod 26.
Para desifrar el mensaje lo unio que hay que haer es restar 3 a ada letra
del mensaje ifrado.
2.2. Sistemas de Cifrado
A la hora de ifrar un mensaje se puede haer de dos formas:
Cifrando smbolo a smbolo.
Cifrando por bloques de smbolos.
2.2.1. Cifrado en ujo
En este tipo de ifrado el mensaje se ifra smbolo a smbolo. Por ejemplo
el ifrado por simple sustituion
1
es un ifrado en ujo, ya que permuta ada
smbolo, empezando por el primero y terminando por el ultimo, de uno en
uno.
2.2.2. Cifrado en bloque
En este tipo de ifrado se divide el mensaje en bloques de una determinada
longitud d y se va ifrando bloque a bloque. Por ejemplo el ifrado por una
transposiion de orden d, en la pagina ??, es un ifrado en bloque, ya que
divide el mensaje en bloques y ifra bloque a bloque.
1
Apartado ?? en la pagina ??.
2.3. TRANSFORMACIONES LINEALES 19
2.3. Transformaiones Lineales
La idea basia es dividir el mensaje en bloques de longitud d e identiar
ada bloque on un vetor x de enteros on dimension d y multipliar diho
vetor por una matriz no singular
2
U . Este tipo de ifrado es un ifrado en
bloque.
El ifrado se llevara a abo de la siguiente manera:
U x = y
donde y es el texto ifrado. Para desifrar el mensaje y habra que multipliarlo
por U
1
, existe al ser U una matriz no singular:
U
1
y = x
Para asegurarnos que todas las operaiones aritmetias se realizan so-
bre un uerpo haremos los alulos modulo un numero primo. Es deir, si
haemos los alulos modulo el numero primo p, signia que estaremos tra-
bajando en el uerpo nito de p elementos F
q
.
Normalmente onsideraremos dos alfabetos:
Un alfabeto de 29 smbolos
3
donde:
Las letras A-Z estan representadas por los enteros omprendidos
entre 0 y 25, ambos inlusive.
El espaio en blano esta representado por 26.
La oma esta representada por 27.
El punto y nal esta representado por 28.
Un alfabeto alfa-numerio de 37 smbolos
4
donde:
Los enteros 0-9 estan representados por ellos mismos.
El espaio en blano esta representado por 10.
Las letras A-Z estan representadas por los enteros omprendidos
entre 11 y 36, ambos inlusive.
2
No singular en el uerpo en el que estemos trabajando, el ual sera un uerpo nito.
3
En la pagina ??.
4
En la pagina ??.
20 CAP
ITULO 2. SISTEMAS CRIPTOGR
AFICOS
Ejemplo 2.1
Utilizando el alfabeto de 37 letras y on una longitud de bloque d = 3 queremos
ifrar el mensaje \PRUEBA" utilizando omo lave la matriz:
U =
0
5 0 3
11 7 8
4 23 36
1
A
El mensaje sera:
M = PRUEBA = 27 29 32 15 12 11
Luego para odiarlo:
0
5 0 3
11 7 8
4 23 36
1
A
0
27 15
29 12
32 11
1
A
=
0
231 108
756 337
1927 732
1
A
0
9 34
16 4
3 29
1
A
mod 37
de donde tenemos que el mensaje ifrado sera:
C = 9 16 3 34 4 29 = 9F3X4R
Para desifrar el mensaje tendremos que utilizar U
1
, es deir la inversa
de U . Como en este aso estamos utilizando un alfabeto de 37 smbolos su
inversa, en F
37
, sera:
U
1
=
0
32 2 1
5 29 25
21 9 23
1
A
El mensaje desifrado:
0
32 2 1
5 29 25
21 9 23
1
A
0
9 34
16 4
3 29
1
A
=
0
323 1125
584 1011
402 1417
1
A
0
27 15
29 12
32 11
1
A
mod 37
C = 27 29 32 15 12 11 = PRUEBA
Observaion: 2.3.1
En el ejemplo anterior hemos utilizado la matriz:
U =
0
5 0 3
11 7 8
4 23 36
1
A
2.3. TRANSFORMACIONES LINEALES 21
uyos oeientes estan en F
37
, ya que estamos utilizando un alfabeto de 37
smbolos. Su inversa en los numeros reales, R, es:
0
B
B
B
B
B
68
1015
69
1015
3
145
52
145
24
145
1
145
45
203
23
203
1
29
1
C
C
C
C
C
A
Para alular esta matriz en F
37
tendremos que alular los oeientes en
diho uerpo:
68 31 mod 37 69 32 mod 37 3 34 mod 37
52 22 mod 37 24 24 mod 37 1 36 mod 37
45 8 mod 37 23 14 mod 37 1 1 mod 37
1015 16 mod 37 145 34 mod 37 203 18 mod 37
29 29 mod 37
Calulemos los inversos en F
37
:
1015
1
7 en F
37
145
1
12 en F
37
203
1
35 en F
37
29
1
23 en F
37
Los oeientes de U
1
en F
37
son:
68
1015
31 7 en F
37
= 217 32 mod 37
69
1015
32 7 en F
37
= 224 2 mod 37
3
145
34 12 en F
37
= 408 1 mod 37
52
145
22 12 en F
37
= 264 5 mod 37
24
145
24 12 en F
37
= 288 29 mod 37
1
145
36 12 en F
37
= 432 25 mod 37
45
203
8 35 en F
37
= 280 21 mod 37
23
203
14 35 en F
37
= 490 9 mod 37
1
29
1 23 en F
37
= 23 23 mod 37
22 CAP
ITULO 2. SISTEMAS CRIPTOGR
AFICOS
Luego la matriz inversa de U , U
1
, en F
37
es:
U
1
=
0
32 2 1
5 29 25
21 9 23
1
A
2.4. Transformaiones Anes
Este tipo de transformaion es muy similar a la anterior, razon por la
ual no la expliaremos on muho detalle. Se trata de dividir el mensaje en
bloque y ifrarlo on una apliaion del tipo:
T (u) = A u+B
donde A es una matriz, de orden mm, invertible en Z=n, n es la antidad
de smbolos que tiene nuestro alfabeto, y B un vetor de longitud m. En
este aso ifraremos el mensaje en bloques de m letras. Sean fu
i
g el mensaje
dividido en bloques de m letras, entones para enriptar el mensaje haremos:
T (u
i
) = A u
i
+B =
i
donde
i
es el el bloque u
i
enriptado. Para desenriptar
i
bastara on de-
spejar u
i
de la euaion anterior:
u
i
= A
1
(
i
B) = A
1
i
A
1
B
Podemos despejar ya que A es invertible en Z=n.
Captulo 3
Complejidad Computaional
Para ifrar mensajes neesitamos la existenia de una funion e(M;K) la
ual ifrara el mensaje M utilizando la lave K, e(M;K) = C. Una vez ifrado
el mensaje M es neesaria una funion d(C;K) la ual desifrara el mensaje
ifrado C on la lave K, d(C;K) =M .
La existenia de la funion inversa de la funion e, es deir la funion d,
implia que ualquiera que onoza diha funion pueda desifrar los men-
sajes ifrados.
Para que un sistema riptograo sea seguro sera neesario que el alulo
de la funion d sea diil, es deir, que tenga un alto oste omputaional.
Cuanto mas diil sea evaluar la funion d mas seguro sera el sistema rip-
tograo ya que requerira una antidad mayor de tiempo el desifrar un
mensaje ifrado.
Es logio pensar que s evaluar d requiere de un alto oste omputaional
no solo sera un impedimento para aquellas personas ajenas al emisor y re-
eptor del mensaje, sino que tambien lo sera para el reeptor del mensaje, y
en prinipio as es. Este problema lo trataremos mas adelante.
23
24 CAP
ITULO 3. COMPLEJIDAD COMPUTACIONAL
3.1. Como alular el Coste Computaional
Podemos denir el oste omputaional omo el tiempo que se neesita
para realizar alguna tarea en un ordenador. Obviamente este tiempo depen-
dera del ordenador que estemos utilizando y de las operaiones que neesita
haer el ordenador para realizar la tarea. Obviamente en un ordenador no se
tarda el mismo tiempo en sumar dos enteros que en multipliarlos, dividirlos
o realizar una exponeniaion.
El oste omputaional no solo depende del numero de operaiones a rea-
lizar, sino que ademas depende el tiempo neesario para realizar ada una de
ellas.
Entenderemos por oste omputaional:
A una funion que depende del tama~no de la entrada, habitualmente
denotada omo n.
Para un tama~no dado n entenderemos por oste omputaional el peor
de todos los asos posibles.
3.1.1. Operaiones a nivel de \bits"
Cualquier numero on el que opere un ordenador estara en formato bi-
nario, es deir expresado en base dos. Por lo tanto para alular el oste
omputaional de una operaion alularemos el numero de operaiones que
son neesarias, a nivel de \bits", para resolverla.
\Bit" es la abreviatura, en ingles, de \binary digit". Sea n 2 Z un numero,
entones su expresion en binario sera:
a
r
a
r1
: : : a
1
a
0
=
r
X
i=0
a
i
2
i
= n donde los a
i
2 f0; 1g
los a
i
son los bits de n expresado en binario. Tenemos que:
r = [log
2
n + 1 =
h
logn
log 2
i
+ 1
donde [log
2
n es el menor entero mayor que log
2
n.
3.1. COMO CALCULAR EL COSTE COMPUTACIONAL 25
Supongamos que tenemos dos numeros a; b 2 Z y que ambos numeros
tienen k bits de longitud
1
. Sean sus expresiones en binario las siguientes:
a = a
k
a
k1
: : : a
1
a
0
b = b
k
b
k1
: : : b
1
b
0
vamos a determinar el numero de operaiones neesarias para sumar ambos
numeros, para ello veamos un ejemplo de la suma de dos numeros, en binario:
1 1 0 1
+ 1 0 0 1
1 0 1 1 0
Figura 3.1: Suma de dos numeros en binario.
Luego para sumar dos numeros de k bits neesitaremos realizar 2 k opera-
iones.
De igual forma se puede ver que multipliar dos entereros de m y n bits
neesita m n operaiones.
Ejemplo 3.1 (Numero de operaiones para alular n!)
Sea n un numero entero uya expresion en binario requiere k bits, a lo sumo.
Como el numero de bits del produto de dos enteros es menor o igual que la
suma de las longitudes de dihos enteros tendremos entones que el numero
de bits de n! sera menor o igual que k n.
De la deniion de n! se tiene que:
n! = n (n 1) : : : 2
luego sera neesario realizar n 2 produtos para alular n!.
El proedimiento para alular n! sera multipliar j! por j + 1, donde
j = 2; : : : ; n 1.
1
En el aso de no tener la misma longitud bastara on rellenar on eros, por la izquierda
el mas peque~no de ellos.
26 CAP
ITULO 3. COMPLEJIDAD COMPUTACIONAL
Como 2 j n 1 tendremos que j tendra k bits a lo sumo, mientras
que j! tendra n k bits a lo sumo. Como multipliar un numero de k bits
por otro de n k bits requiere n k
2
operaiones tendremos que el alulo de
j! (j+1) requiere n k
2
operaiones, y dado que para alular n! neesitamos
haer n 2 multipliaiones del tipo j! (j + 1) tendremos que el numero de
operaiones sera:
(n 2) n k
2
Como n tiene k bits tendremos que:
k = [log
2
n + 1
Luego el numero de operaiones neesarias para alular n! sera:
(n 2) n ([log
2
n + 1)
2
(3.1)
Podemos suponer que el numero de operaiones es proporional a n
2
[log 2n
2
ya que si desarrollamos (??) vemos que el termino que mas aporta a la suma,
a medida que ree n, es:
n
2
[log 2n
2
diremos entones que el numero de operaiones es del orden de n
2
[log 2n
2
y lo denotaremos omo:
O(n
2
[log 2n
2
)
3.2. Tiempo Polinomial
Sea A un algoritmo. Diremos que tiene una omplejidad de tipo polino-
mial si existe algun polinomio p(x) tal que:
t
A
(n) p(n)
donde t
A
(n) denota el maximo tiempo que neesita el algoritmo A sobre to-
das las entradas de tama~no n.
Diremos que un problema se puede resolver en tiempo polinomial si existe
algun algoritmo que lo resuelve y diho algoritmo tiene una omplejidad de
tipo polinomial, en este aso diremos que es un problema de lase P .
Esta deniion de tiempo polinomial no es muy rigurosa, daremos una
deniion mas rigurosa utilizando maquinas de Turing.
3.2. TIEMPO POLINOMIAL 27
3.2.1. Maquinas de Turing y el problema P
Utilizando las maquinas de Turing podemos dar una deniion mas rig-
urosa del problema P que la que hemos dado anteriormente.
Sea un alfabeto y denotemos por
al onjunto de todas las adenas
nitas sobre el alfabeto .
Sea M una maquina de Turing que para sea ual sea el elemento x 2
que utilizemos omo entrada de diha maquina. Entones el oste omputa-
ional de M vendra dado por la funion:
t
M
: Z
+
! Z
+
denida de la siguiente manera:
t
M
(n) = max
jxj=n
t on x 2
donde t es el tiempo que tardaM en parar utilizando omo entrada x, adena
nita de longitud n.
Diremos que una funion f tiene una omplejidad de tipo polinomial s f
es omputable Turing
2
y existe algun polinomio p(x) tal que t
M
(n) p(n)
para todo n.
3.2.2. Problemas de tipo P
Todos aquellos problemas de tipo P son realizables, por un ordenador, en
tiempo \razonable". Con esto queremos deir que utilizando toda la poten-
ia omputaional disponible en el momento se puede realizar el algoritmo,
aunque el tiempo que nos lleve para ello sea de varios meses o a~nos.
Si el algoritmo para desifrar una lave riptograa es de tiempo poli-
nomial, es un problema de tipo P, diho sistema no sera seguro ya que es
posible romperlo en un tiempo determinado.
Consideraremos que un sistema riptograo es \seguro" si el algoritmo
para romper diho sistema es un algoritmo de tiempo exponenial, es deir,
el tiempo neesario para romperlo aumenta de forma exponenial.
2
Existe una maquina de Turing, M , que realiza f .
28 CAP
ITULO 3. COMPLEJIDAD COMPUTACIONAL
Parte II
Criptografa Clasia
29
Captulo 4
Algoritmos Simetrios
Los algoritmos simetrios son algoritmos de ifrado en los que tanto el
emisor omo el reeptor han de onoer las laves para ifrar y desifrar, es
deir, tanto emisor omo reeptor utilizan la misma lave para ifrar y de-
sifrar. Este metodo posee una desventaja, y es que se deben transmitir las
laves por un anal seguro, algo muy diil de asegurar.
Los algoritmos que hemos visto hasta aqui son todos algoritmos simetrios.
4.1. Sistemas de Enriptaion on Estrutura
de Grupo
Una osa a tener en uenta en los sistemas de enriptaion es si poseen o
no estrutura de grupo.
Deniion 4.1 (Estrutura de grupo para sistemas de Enriptaion)
Se die que un sistema de enriptaion posee estrutura de grupo si se umple
que:
8 K
1
; K
2
9 K
3
tal que E
K
2
(E
K
1
(M)) = E
K
3
(M)
es deir, si haemos dos ifrados enadenados on las laves K
1
y K
2
, existe
una lave K
3
que realiza la misma transformaion.
Es interesante que un algoritmo riptograo, sea simetrio o no, no posea
estrutura de grupo, ya que si iframos un mensaje on una lave K
1
y luego
iframos el resultado on otra lave K
2
, es omo si hubieramos empleado
una lave de longitud doble, aumentando la seguridad del sistema. Si por el
ontrario el sistema riptograo posee estrutura de grupo y realizamos el
mismo proeso no hubieramos adelantado nada, ya que omo posee estrutura
31
32 CAP
ITULO 4. ALGORITMOS SIM
ETRICOS
de grupo lo que hemos heho es equivalente a ifrar el mensaje on una ierta
lave K
3
, una sola vez.
4.2. El Algoritmo DES
El algoritmo DES es al algoritmo simetrio mas utilizado, su nombre
proviene de \Data Enryption Standard". Este algoritmo fue presentado por
IBM en el a~no 1;975 y fue adoptado omo estandar federal en los Estados
Unidos a prinipios de 1;977.
4.3. Desripion del DES
Este sistema ifra bloques de 64 bits on una lave de 64 bits, donde hay
8 bits de paridad, el ultimo bit de ada byte es de paridad, on lo ual al
lave es una lave de 56 bits.
Dado que la lave es de 56 bits tendremos que existen 2
56
posibles laves
para este algoritmo.
De la lave iniial K se extraen 16 sublaves K
i
, de 48 bits ada una.
Tenemos 16 \dispositivos", a los que llamaremos SBB
1
, los uales requieren
omo entrada un bloque de 64 bits y una sublave K
i
de 48 bits, para pro-
duir omo salida un bloque de 64 bits.
El algoritmo es el siguiente:
1. Se aplia una permutaion iniial, IP, a ada bloque de 64 bits. Esto
produe una salida B
j
, donde B
j
es el transformado del j-esimo bloque
de 64 bits por IP, de 64 bits.
2. Pasamos B
j
por el primer SBB, la salida la pasamos por el segundo
SBB y asi suesivamente on los 16 SBB. La lave que utiliza el i-esimo
SBB es la sublave K
i
.
3. A la salida del ultimo SBB le apliamos la permutaion IP
1
. Con lo
ual obtenemos el texto ifrado.
1
Standard Building Blok, onstrutor estandar de bloques.
4.4. ENCRIPTACI
ON CON DES 33
4.4. Enriptaion on DES
El SBB es un \dispositivo" que toma omo entrada dos bloques, uno de
ellos de 64 bits y el otro de 48 bits.
Sea B = (b
63
; : : : ; b
0
) el primer bloque y B
0
= (b
0
63
; : : : ; b
0
0
) la salida pro-
duida por el SBB. Vamos a utilizar la siguiente notaion:
L = (b
63
; : : : ; b
32
)
R = (b
31
; : : : ; b
0
)
L
0
= (b
0
63
; : : : ; b
0
32
)
R
0
= (b
0
31
; : : : ; b
0
0
)
4.4.1. Proedimiento para obtener L
0
El proedimiento para obtener L
0
es muy senillo basta on tomar L
0
= R.
4.4.2. Proedimiento para obtener R
0
El proedimiento para obtener R
0
es algo mas ompliado:
R
0
= L + f(K
i
; R)
donde la \suma" es en F
2
. La funion f(k
i
; R) se dene de la siguiente manera:
1. Se aplia una permutaion de expansion, a la que llamaremos E, al
bloque de 32 bits R para transformarlo en un bloque de 48 bits. De-
notemos a esta operaion omo E(R)
2. A ontinuaion sumamos en binario E(R) on la sublave K
i
:
E(R) +K
i
3. Apliamos la permutaion P , la ual transforma un bloque de 48 bits
en otro de 32 a la suma anterior:
P (E(R) +K
i
)
4. Sumamos, en binario, este resultado on R:
R + P (E(R) +K
i
)
34 CAP
ITULO 4. ALGORITMOS SIM
ETRICOS
Luego tendremos que:
f(K
i
; R) = R + P (E(R) +K
i
)
de donde:
R
0
= L + f(K
i
; R) = L + [R + P (E(R) +K
i
)
En las guras ?? y ?? podemos ver un esquema del dispositivo SBB y del
funionamiento del DES.
K
i
L
32 bits
R
32 bits
L
0
R
0
48 bits
48 bits
32 bits
32 bits
E S P
Figura 4.1: Dispositivo SBB.
64
bits
bits
K
1
32
32
bits
bits
32
32
bits
K
2
SBB
bits
32
32
bits
K
16
64
bits
SBBSBB IP
1
IP
Figura 4.2: Enriptaion on DES.
4.5. DESENCRIPTACI
ON CON DES 35
4.5. Desenriptaion on DES
Una vez tenemos un mensaje enriptado on DES el proedimiento para
desifrarlo se realiza on el mismo algoritmo de enriptaion, pero usando las
llaves en orden inverso.
Supongamos que hemos enriptado un bloque de 64 bits on DES. De-
notemos por:
L = (b
63
; : : : ; b
32
)
R = (b
31
; : : : ; b
0
)
las partes izquierda y dereha del bloque antes de la enriptaion, y por:
L
0
= (b
0
63
; : : : ; b
0
32
)
R
0
= (b
0
31
; : : : ; b
0
0
)
las partes izquierda y dereha del bloque enriptado. Por el proedimiento
de enriptaion sabemos que:
L
0
= R
R
0
= L+ f(K;R)
despejando R y L, que son las partes que forman el mensaje original, tenemos
que:
R = L
0
L = R
0
f(K;R) = R
0
f(K;L
0
)
on lo que obtenemos los bloques del mensaje original.
4.6. Debilidad de las laves en el DES
Este algoritmo presenta algunas laves debiles. En general todos aquellos
valores de la llave que onduen a una seuenia inadeuada de las sublaves
K
i
seran poo reomendables. Podemos distinguir los siguientes asos:
Claves debiles Son aquellas laves K que generan un onjunto de dieiseis
sublaves K
i
iguales entre si y que verian:
E
K
(E
K
(M)) =M
es deir, enriptando un mensaje dos vees on la misma lave obte-
nemos el mensaje original. El proedimiento de enriptaion, on esta
lave, es una involuion.
36 CAP
ITULO 4. ALGORITMOS SIM
ETRICOS
Claves semidebiles Son aquellas laves K que generan dos posibles valores
para las dieiseis sublaves K
i
, repitiendose oho vees ada posible
valor.
El numero de laves de este tipo es tan peque~no, en omparaion on el
numero total de laves para el DES, que este problema no debera suponer
motivo de preoupaion.
4.7. VARIANTES DEL DES 37
4.7. Variantes del DES
A mediados de Julio de 1;998, una empresa sin animo de luro, llamada
EFF
2
, logro onstruir una maquina apaz de desenriptar un mensaje enrip-
tado on DES en menos de tres das. Curiosamente, poas semanas antes,
un alto argo de la NSA haba delarado que diho algoritmo segua siendo
seguro, y que desifrar un mensaje resultaba aun exesivamente ostoso, in-
luso para organizaiones gubernamentales. DES-Craker osto menos de 40
millones de pesetas.
A pesar de este heho, DES sigue siendo ampliamente utilizado en multi-
tud de apliaiones, omo por ejemplo en las transa
iones de los ajeros au-
tomatios. De todas formas, el problema real de DES no radia en su dise~no,
sino en que emplea una lave demasiado orta, 56 bits, lo ual hae que on
el avane atual de los ordenadores los ataques por fuerza bruta omienen
a ser las opiones mas realistas. Muha gente se resiste a abandonar este
algoritmo, preisamente porque ha sido apaz de sobrevivir durante veinte
a~nos sin mostrar ninguna debilidad en su dise~no, y preeren proponer va-
riantes que, de un lado evitaran el riesgo de tener que onar en algoritmos
nuevos, y de otro permitiran aprovehar gran parte de las implementaiones
por hardware existentes de DES.
Algunas de las variantes del DES mas utilizadas son las siguientes:
4.7.1. DES Multiple
Consiste en apliar varias vees el algoritmo DES, on diferentes laves,
al mensaje original. Se puede haer ya que DES no presenta estrutura de
grupo
3
. El mas utilizado es el llamado Triple-DES:
C = E
K
1
(D
K
2
(E
K
1
(M)))
El proedimiento es el siguiente:
1. Enriptamos on la lave K
1
.
2. Desenriptamos on la lave K
2
.
3. Volvemos a enriptar on la lave K
1
.
La lave resultante es la onatenaion de las lavesK
1
yK
2
, on una longitud
total de 112 bits.
2
Eletroni Frontier Foundation.
3
Apartado ?? en la pagina ??.
38 CAP
ITULO 4. ALGORITMOS SIM
ETRICOS
4.7.2. DES on Sublaves Independientes
Consiste en emplear sublaves diferentes para ada una de las dieiseis
rondas de DES. Puesto que estas sublaves son de 48 bits, la lave resultante
tendra 768 bits en total.
Empleando una tenia onoida omo \riptoanalisis diferenial" esta
variante poda ser rota on 2
61
textos planos esogidos, por lo que en la
pratia no presenta un avane sustanial sobre el DES estandar.
4.7.3. DES Generalizado
Esta variante emplea n trozos de 32 bits en ada ronda en lugar de dos, por
lo que aumentamos tanto la longitud de la lave omo el tama~no de mensaje
que se puede odiar, manteniendo sin embargo el orden de omplejidad
del algoritmo. Se ha demostrado sin embargo que no solo se gana poo en
seguridad, sino que en muhos asos inluso se pierde.
Parte III
Breve introdu
ion a la Teora
de Numeros
39
Captulo 5
Los Numeros Primos
La riptografa moderna se apoya en los numeros primos.
Deniion 5.1 (Numeros primos)
Sea a 2 Z diremos que es un numero primo uando no pueda ser dividido,
de forma entera, por ningun otro numero entero salvo por el mismo o por la
unidad.
Dados dos numeros ualesquiera diremos que son primos entre s uando
su M.C.D. sea la unidad.
5.1. Innitud de los Numeros Primos
Las laves para el ifrado mediante metodos riptograos se basan en
la fatorizaion de numeros primos. S la antidad de numeros primos fuera
nita podra suponer un problema a la hora de elegir laves \seguras". La
antidad de numeros primos es innita, es deir, dado un numero primo
ualquiera siempre existira otro numero primo mayor que el, luego siempre
existiran innitos numeros primos mayores que uno dado.
41
42 CAP
ITULO 5. LOS N
UMEROS PRIMOS
Teorema 5.1 (Eulides)
Hay innitos numeros primos.
Demostraion:
Supongamos que existe un numero nito de numeros primos:
p
1
; p
2
; : : : ; p
n
(5.1)
Consideremos el numero natural m = (p
1
p
2
: : : p
n
) + 1. Por el teorema
?? admitira una desomposiion en numeros primos, luego sera multiplo de,
al menos, un numero primo. Este numero primo sera distinto a ualquiera
de los numeros primos de (??) ya que al dividir m por p
i
para i = 1; : : : ; n
el resto es uno. Luego existe, al menos, un numero primo que no esta en (??).
Si a~nadimos este numero primo a la lista de numeros primos y repetimos
el proeso volveremos a enontrar otro numero primo que no habiamos on-
siderado. Podemos repetir este proeso de forma innita y siempre enontrari-
amos un numero primo que no hubieramos onsiderado, lo que demuestra la
innitud de los numeros primos.
La demostraion anterior esta inluida en \Los Elementos" de \Eulides" y
omo se puede apreiar es una demostraion simple e ingeniosa.
5.2. Distribuion de los Numeros Primos
Hemos visto en la se
ion anterior que existen innitos numeros primos,
pero la forma en la que se distribuyen entre los numeros enteros es un mis-
terio.
Un numero es primo uando no es divisible por ningun numero, exepto
por el y la unidad. Cuanto mayor es un numero mas ondiiones tiene que
veriar para ser primo, ya que no puede ser divisible por una mayor anti-
dad de numeros.
Para poder omprender la diultad de estableer una regla en la distribu-
ion de los numeros primos veremos que dado un numero natural ualquiera,
n 2 N , siempre podremos enontrar n numeros onseutivos no primos.
Fijemos un numero ualquiera n 2 N y a ontinuaion onsideremos todos
los numeros enteros omprendidos entre (n + 1)! + 2 y (n + 1)! + (n + 1),
5.2. DISTRIBUCI
ON DE LOS N
UMEROS PRIMOS 43
todos estos numeros son ompuestos, es deir, ninguno de ellos es primo.
Cualquiera de estos numeros es de la forma (n+1)!+ i, donde 2 i n+1.
Tendremos entones que:
(n+ 1)! + i = (n + 1) n (n 1) : : : 3 2 1 + i
y omo 0 i n+1 tendremos que i divide a los dos sumandos de (n+1)!+i
y omo i es distinto de 1 y de (n + 1)! + i tendremos que (n + 1)! + i no es
un numero primo.
Con este metodo podremos enontrar tantos numeros ompuestos onse-
utivos omo queramos, por ejemplo, sabemos que los 100;000;000 de numeros
enteros omprendidos entre 100;000;001!+2 y 100;000;001!+100;000;001 son
ompuestos.
Esto indue a pensar que despues de 100;000;001! + 100;000;001 no exis-
ten numeros primos, pero omo hemos visto en el apartado anterior existen
innitos numeros primos, luego despues de diho numero podemos enontrar
numeros primos.
La busqueda de numeros primos grandes, en la que se basa la riptografa
de lave publia, es un problema de diil soluion, en lo que a oste omputa-
ional se reere, por eso en la pratia se utilizan algoritmos probabilstios
para la busqueda de numeros primos. Este tipo de algoritmos no nos asegu-
ran la primalidad de un determinado numero, uniamente nos aseguran que
un determinado numero es primo on una probabilidad muy alta
1
.
El siguiente teorema nos da una idea de omo estan distribuidos los
numeros primos.
Teorema 5.2 (Teorema de los numeros primos)
Sea la funion (x) = numeros primos menores o iguales que x. Tenemos
que:
(x) '
x
lnx
uando x!1.
1
Aunque la probabilidad es alta existe la posibilidad de que diho numero no sea primo.
44 CAP
ITULO 5. LOS N
UMEROS PRIMOS
5.3. Fatorizaion de Numeros Enteros
Proposiion 5.1
Fijados b; 2 Z existen x
0
; y
0
2 Z tales que:
M:C:D (b; ) = (b; ) = b x
0
+ y
0
Demostraion:
Consideremos el menor entero positivo, l, del siguiente onjunto:
C = f b x+ y on x; y 2 Z g
luego l sera de la forma l = b x
0
+ y
0
.
Si l no divide a b entones existiran q; r tales que:
b = l q + r on 0 < r < l
por el algoritmo de Eulides para la division entera. Luego:
r = b q l = b q (b x
0
+ y
0
) = b (1 q x
0
) + (q y
0
)
de donde se dedue que r 2 C y omo r es positivo y menor que l llegamos
a ontradi
ion, ya que l es el menor entero positivo de C, luego l divide a b.
Por el mismo motivo tendremos que l divide a . Luego l dividira a (b; ).
Por deniion de M.C.D. tendremos que (b; ) divide a b y a , luego en
partiular dividira a b x
0
+ y
0
, lo que demuestra:
l = b x
0
+ y
0
= (b; )
5.3. FACTORIZACI
ON DE N
UMEROS ENTEROS 45
Lema 5.1 (Lema de Eulides)
Si un numero primo divide a un produto de numeros enteros, entones divide
a algun fator.
Demostraion:
Sea p 2 N un numero primo tal que divide, de forma entera, a a n
1
: : : n
s
,
on a; n
1
; : : : ; n
s
2 N . Como n
1
: : :n
s
2 N llamando b = n
1
: : :n
s
tendremos
que p divide a a b, on lo ual reduimos el lema al aso en que un numero
primo divide al produto de dos enteros.
Si p no divide a a entones (p; a) = 1 y por la proposiion ?? tendremos
que existen x
0
; y
0
2 Z tales que:
1 = p x
0
+ a y
0
multipliando por b en esta igualdad tendremos:
b = (b p) x
0
+ (b a) y
0
p divide a (b p) x
0
, y p tambien divide a (b a) y
0
ya que por hipotesis:
a b = p n n 2 Z
luego p divide a b ya que divide a los dos sumandos en los que desompone
b.
46 CAP
ITULO 5. LOS N
UMEROS PRIMOS
Teorema 5.3 (Teorema fundamental de la Aritmetia)
Todo numero natural mayor que la unidad es produto de numeros primos.
Esta desomposiion es unia salvo el orden de los fatores.
Demostraion:
La demostraion la haremos por indu
ion. Para n = 2 el teorema es ierto.
Supongamos ahora el teorema ierto hasta m y veamos que, en efeto, el
teorema se veria para m + 1.
En el aso de que m + 1 sea un numero primo hemos terminado. Supon-
gamos que m + 1 no es un numero primo, en ese aso m + 1 tendra dos
divisores, al menos, distintos de 1 y m+ 1.
m+ 1 = a
1
a
2
1 < a
1
; a
2
< m+ 1 a
1
; a
2
2 N
Por hipotesis de indu
ion tendremos que a
1
y a
2
desomponen en produto
de numeros primos por ser menores que m+ 1:
a
1
= p
n
1
1
: : : p
n
r
r
a
2
= q
l
1
1
: : : q
l
s
s
on fp
1
; : : : ; p
r
; q
1
; : : : ; q
s
g numeros primos y fn
1
; : : : ; n
r
; l
1
; ; l
s
g 2 N . Luego
tendremos:
m+ 1 = a
1
a
2
= p
n
1
1
: : : p
n
r
r
q
l
1
1
: : : q
l
s
s
es deir m+ 1 desompone en produto de numeros primos.
Supongamos que un numero admite dos desomposiiones, distintas, en
produto de numeros primos:
n = p
n
1
1
: : : p
n
r
r
n = q
m
1
1
: : : q
m
s
s
reordenando si hiiera falta podemos suponer que p
1
< p
2
< : : : < p
r
y que
q
1
< q
2
< : : : < q
s
, en estos asos diremos que la desomposiion es normal.
Tendremos que p
i
divide a q
l
1
1
: : : q
l
s
s
y por el Lema de Eulides p
i
divide
a alguno de los q
j
, pero omo los q
j
son primos entones p
i
ha de ser uno de
los q
j
. De la misma forma ada q
j
es uno de los p
i
. Luego r = s y omo las
desomposiiones son normales entones tendremos que p
i
= q
i
para todo i.
Luego tenemos que:
n = p
n
1
1
: : : p
n
r
r
n = p
m
1
1
: : : p
m
s
r
5.4. DIFERENTES CLASES DE N
UMEROS PRIMOS 47
Supongamos que n
i
> m
i
entones tendremos:
n = p
n
1
1
: : : p
n
i1
i1
p
n
i
m
i
i
p
n
i+1
i+1
: : : p
n
r
r
= p
m
1
1
: : : p
m
i1
i1
p
m
i+1
i+1
: : : p
m
r
r
luego p
i
divide a p
m
1
1
: : : p
m
i1
i1
p
m
i+1
i+1
: : : p
m
r
r
, lo ual es imposible al
ser los p
i
numeros primos. Entones ha de ser n
i
m
i
y razonando de la
misma manera obtendremos que n
i
no puede ser menor que m
i
luego la unia
posibilidad es que n
i
= m
i
para todo i.
5.4. Diferentes lases de Numeros Primos
Los numeros primos los podemos lasiar en varios tipos. Algunos de
estos tipos son:
5.4.1. Numeros primos de Fermat
Estos numeros reiben su nombre en honor de \Pierre de Fermat", que
fue su desubridor. Estos numeros primos tienen la propiedad de ser de la
forma:
p = 2
2
n
+ 1 n 2 N
Los unios numeros primos de Fermat onoidos son:
3 = 2
2
0
+ 1 n = 0
5 = 2
2
1
+ 1 n = 1
17 = 2
2
2
+ 1 n = 2
257 = 2
2
3
+ 1 n = 3
65;537 = 2
2
4
+ 1 n = 4
Como uriosidad sobre estos numeros podemos itar que el matematio \Carl
Friedrih Gauss" araterizo los polgonos regulares que podan ser onstrui-
dos usando tan solo regla y ompas. Estos polgonos son aquellos que el
numero de sus lados es una potenia de dos o bien una potenia de dos
multipliada por uno o mas primos de Fermat impares y distintos.
5.4.2. Numeros primos gemelos
Son numeros primos uya diferenia es dos. Los siguientes pares son
numeros primos gemelos:
f3; 5g; f5; 7g; f11; 13g; f17; 19g
48 CAP
ITULO 5. LOS N
UMEROS PRIMOS
5.4.3. Numeros primos de Mersenne
Los numeros de Mersenne son numeros enteros de la forma 2
n
1, on n
un entero positivo. Si el numero 2
n
1 es un numero primo entones n es un
numero primo.
Luego llamaremos numeros primos de Mersenne a todos aquellos numeros
primos que sean de la forma 2
p
1, donde p es un numero primo, y a dihos
numeros los denotaremos omo M
p
. En la atualidad no se sabe si existe o
no una innidad de numeros de Mersenne primos.
5.4.4. Numeros primos fuertes
La riptografa moderna se basa en la fatorizaion de un numero n en
numeros primos. Normalmente n = p q, on p y q numeros primos. Para
poder ifrar y desifrar es neesario onoer la fatorizaion en numeros pri-
mos de n. Dado que n es un numero grande diha fatorizaion es una tarea
ompliada. Podemos imponer una serie de ondiiones adiionales a p y q
para diultar aun mas la fatorizaion de n.
Diremos que dos numeros primos p y q son primos fuertes si:
1. El maximo omun divisor de p 1 y q 1 debe ser peque~no.
2. p 1 y q 1 deben tener algun fator primo grande p
0
y q
0
.
3. Tanto p
0
1 omo q
0
1 deben tener fatores primos grandes.
4. Tanto p
0
+ 1 omo q
0
+ 1 deben tener fatores primos grandes.
Las dos primeras ondiiones se umplen si tanto (p 1)=2 omo (q 1)=2
son numeros primos.
Captulo 6
Fatorizaion y primalidad
La riptografa de lave publia se basa en la fatorizaion de numeros pri-
mos. Para romper un sistema riptograo de este tipo es neesario ser apaz
de enontrar la desomposiion de un numero \grande" en fatores primos.
Los numeros utilizados en estos sistemas suelen ser produto de dos numeros
primos de mas de ien digitos. Enontrar la fatorizaion de numeros de este
tipo es una tarea que requiere muho tiempo. Es por este motivo que este
tipo de sistemas riptograos gozan de \gran" seguridad.
6.1. El Problema de la Fatorizaion
El problema de fatorizar un numero entero en fatores primos es un pro-
blema para el que no se han enontrado, todava, algoritmos eientes. La
fatorizaion de numeros requieren de bastante tiempo de omputo.
Para fatorizar un numero en fatores primos podemos dividir un numero
n por todos los primos anteriores a
p
n, pero para enteros de mas de 15
ifras los resultados son insatisfatorios, desde el punto de vista del tiempo
de omputo.
49
50 CAP
ITULO 6. FACTORIZACI
ON Y PRIMALIDAD
En el a~no 1;975 un ingeniero ingles, \John Pollard" reo un metodo igual
de simple, pero muho mas rapido que permite fatorizar numeros de hasta
25 ifras sin demasiadas diultades. Desgraiadamente este metodo es ine-
iente uando los numeros tienen mas de 30 ifras. Investigaiones posteriores
han dado origen a otros muhos algoritmos (metodo \rho" de Pollard, meto-
do p 1 de Pollard, riba uadratia de Pomerane, metodo de las urvas
elptias de Lenstra, riba algebraia de Pollard
1
). Las tenias son ada vez
mas eaes y permiten fatorizar ada vez numeros mayores, por supuesto
tambien inuye el progreso de los ordenadores.
Las tenias de fatorizaion no han alanzado la eaia que se tiene para
los test de primalidad
2
. En el a~no 1;995 era posible fatorizar un numero de
90 ifras, utilizando solo un potente miroordenador, en unas poas semanas.
En el a~no 1;994, graias a miles de ordenadores interonetados a traves de
internet, un grupo de matematios onsiguio fatorizar un numero de 129
ifras.
Para los expertos en teora de numeros la fatorizaion de numeros \grandes"
onstituye un importante reto de tipo pratio.
6.2. Algoritmos
Los algoritmos que vamos a ver en este apartado son algoritmos muy
basios y no son utilizados en la pratia por ser algoritmos muy lentos, ya
que en la pratia se utilizan numeros primos de mas de 100 ifras y no es
razonable intentar omprobar la primalidad de uno de estos numeros on
los siguientes algoritmos. De todas formas estos algoritmos nos permitiran
omprobar que la busqueda de algoritmos para determinar la primalidad de
numeros \grandes" no es una tarea senilla.
1
Este ultimo es el mas potente de todos.
2
Pruebas para omprobar si un numero es primo o no.
6.2. ALGORITMOS 51
6.2.1. La riba de Erastotenes
Erastotenes fue un sabio Griego que vivio en el siglo III antes de nuestra
era y dio un metodo para el alulo de numeros primos. Diho metodo se
onoe omo la riba de Erastotenes.
La riba de Erastotenes es un metodo elemental para enontrar los numeros
primos que existen hasta un determinado valor entero. Por ejemplo, supon-
gamos que queremos alular todos los numeros primos omprendidos entre
el 2 y el 100. Primero taharemos todos los multiplos de 2, luego taharemos
todos los multiplos del siguiente numero que no este tahado, a ontinuaion
taharemos todos los multiplos del siguiente numero no tahado y as sue-
sivamente. Cuando hayamos terminado on todos los numeros entre el 2 y el
100 los numeros no tahados seran los numeros primos omprendidos entre
el 1 y el 100.
Este metodo es util para enontrar numeros primos peque~nos, pero para
numeros primos grandes es un metodo totalmente ineiente.
6.2.2. Algoritmo de fuerza bruta
Un numero es primo s y solo s los unios numeros que lo dividen son
el mismo y la unidad. Luego dado un numero si lo dividimos entre todos los
numeros menores que el y distintos de la unidad y ninguno de ellos lo divide
diremos que el numero es primo.
Como todos los numeros pares son divisibles por dos tendremos que ningun
numero par, a exepion del dos, es primo. Luego podemos eliminar los
numeros pares y busar numeros primos entre los numeros impares.
Para alular s un numero es primo o no on este metodo tendremos
que dividirlo entre todos los numeros enteros, menores, positivos, no nulos y
distintos de la unidad, omprobar los restos y si ningun resto es ero entones
diho numero es un numero primo.
A este algoritmo nos referiremos omo algoritmo I.
52 CAP
ITULO 6. FACTORIZACI
ON Y PRIMALIDAD
6.2.3. Algoritmo II
Si utilizamos los algoritmos anteriores para alular numeros primos, por
ejemplo los 10;000, 25;000, 100;000, . . . primeros numeros primos veremos
que a medida que aumentamos el numero de primos que queremos alular
el tiempo de omputo se dispara.
Para obtener un nuevo algoritmo de alulo, mas rapido, podemos utilizar
la desomposiion de un numero en numeros primos:
Todo numero entero desompone en produto de numeros primos. Para
todo n 2 N se tiene:
n = p
n
1
1
: : : p
n
r
r
donde n
i
2 N para i = 1; : : : ; r, p
j
2 N son primos para todo j y
1 p
j
n para j = 1; : : : ; r. Esta desomposiion es unia salvo el
orden.
Sea n 2 N un numero ualquiera. Supongamos que queremos ver si es
primo o no. En el aso de que no sea primo tendremos que existe m 2 N tal
que 1 < m < n y veriando n = m d.
Sea n = p
m
1
1
: : :p
m
s
s
, omom divide a n se tiene que ualquier numero que
divida a m dividira a n, en partiular los fatores primos de m fp
1
; : : : ; p
s
g.
Esto se dedue del heho de que al dividir m a n tenemos que n es un multi-
plo de m.
Este heho nos permite simpliar los alulos para determinar s un
numero no es primo, en lugar de dividir un numero por todos los anteriores
tendremos que dividirlo por uniamente por los primos anteriores a el.
Por ejemplo para determinar s 100 es un numero primo:
Dividiendo por todos los anteriores a 100 tendriamos que dividir por
98 numeros.
Dividiendo por los primos anteriores a 100 tendriamos que dividir por
25 numeros.
Realmente no tendriamos que dividir por todos esos numeros, ya que bastara
on enontrar un numero que dividiera a 100, en este aso es fail 2, para
determinar que no es primo.
6.2. ALGORITMOS 53
Para determinar si un numero es primo s que tendriamos que dividir por
todos los numeros anteriores, pero s un numero no es divisible, de forma
entera, por todos los primos anteriores a el podemos armar on toda seguri-
dad que es primo.
Por ejemplo para determinar que 287;117 es primo:
Dividiendo por todos los anteriores a 287;117 tendriamos que dividir
por 287;115 numeros.
Dividiendo por todos los primos anteriores a 287;117 tendriamos que
dividir por 24;999 numeros.
Como se puede ver on este metodo se redue onsiderablemente el tiempo
neesario para determinar s un numero es primo o no.
6.2.4. Comparaion de los algoritmos
Para omparar los diferentes algoritmos se han reado varios programas,
en lenguaje C, que piden al usuario la antidad de numeros primos. El pro-
grama busara los 25;000, por ejemplo, primeros numeros primos. En todos
los algoritmos se busan numeros primos entre los numeros impares, a ex-
epion del numero dos.
Los alulos que muestra la tabla ?? se han realizado en un Pentium 166.
El 10;000 numero primo es: 104;729
El 25;000 numero primo es: 287;117
El 35;000 numero primo es: 414;977
El 45;000 numero primo es: 545;747
El 55;000 numero primo es: 679;277
Cantidad Algoritmo I Algoritmo II
10;000 0 h 2 m 48 s 0 h 0 m 16 s
25;000 0 h 19 m 17 s 0 h 1 m 43 s
35;000 0 h 39 m 4 s 0 h 3 m 24 s
45;000 1 h 6 m 9 s 0 h 5 m 34 s
55;000 1 h 40 m 40 s 0 h 8 m 19 s
Cuadro 6.1: Tiempos de busqueda de numeros primos.
54 CAP
ITULO 6. FACTORIZACI
ON Y PRIMALIDAD
6.3. Algoritmos Probabilstios
Estos algoritmos son utiles para determinar si un numero es primo o
no uando son numeros relativamente peque~nos. Cuando los numeros a de-
terminar si son primos o no son grandes estos algoritmos son totalmente
ineientes, aun utilizando grandes ordenadores.
6.3.1. Segundo teorema de Fermat
El segundo teorema de Fermat es tambien onoido omo \Congruenia
de Fermat", apartado (??) en la pagina ??.
Podemos enuniarlo de la siguiente manera:
Sean p; a 2 Z tales que p sea un numero primo y no divida a a
entones a
p1
1 es divisible por p.
Este teorema no impide la existenia de numeros no primos p que satisfagan
la ondiion dada por el teorema, pero dihos numeros son raros.
Este metodo permite determinar uando un numero grande no es primo,
y es mas eaz que los algoritmos dados en la se
ion (??) para numeros on
ientos de ifras.
Comprobar si a
p1
1 es divisible por p no es una tarea difil, aun uando
p sea un numero enorme.
Un metodo razonable para omprobar el arater primo de un numero
impar n es el siguiente:
1. Comenzamos dividiendo el numero n por los numeros impares 3; 5; 7; : : :
hasta un lmite bastante peque~no. Si n no es divisible por ninguno de
ellos se supone que el numero es primo.
2. Ahora omprobamos la divisibilidad de 2
n1
1 por n. En el aso de
que no sea divisible entones el teorema de Fermat india que n no es
primo, ya que si lo fuera debera dividir a 2
n1
1 para satisfaer el
segundo teorema de Fermat.
En el aso en que 2
n1
1 sea divisible por n no podemos asegurar que n
sea un numero primo, pero es muy probable que lo sea.
6.3. ALGORITMOS PROBABIL
ISTICOS 55
Este metodo es eiente para determinar uando un numero no es primo,
independientemente del numero de ifras que tenga, pero tiene un inonve-
niente y es que no nos permite identiar numeros primos.
6.3.2. Algoritmos APRCL y Atkin-Morain
En el a~no 1;878 el matematio franes \Edouart Luas" hallo un test
pareido al de Fermat, pero valido para los numeros de Mersenne
3
. Este test
fue mejorado en el a~no 1;930 por el norteameriano \Derrik H. Lehmer",
es un algoritmo fail de programar en un ordenador y permite demostrar el
arater primo de numeros gigantesos.
El test de \Luas-Lehmer" se utiliza sistematiamente para omprobar la
abilidad de los superordenadores CRAY. En el a~no 1;994 el mayor numero
primo onoido fue desubierto por dos elebres azadores de numeros pri-
mos \David Slowinski" y \Paul Gage", en Estados Unidos. Diho numero es
2
859;433
1 y tiene 258;716 ifras
4
, el ordenador utilizado para el alulo de
este numero fue un CRAY C-90.
Pero este test posee el inonveniente de que solo es apliable a numeros de
Mersenne. En el a~no 1;980 se logro desarrollar un algoritmo general apaz de
demostrar el arater primo de numeros \grandes". La idea iniial partio de
\Len Adleman", de la universidad de Carolina del sur, \Carl Pomerane" y
\Robert Rumely", de la universidad de Georgia (Estados Unidos), y la ver-
sion pratia es debida a \Hendrik Lensdra", de la universidad de Berkeley,
y \Henri Cohen". Diho test se onoe omo \APRCL", las iniiales de sus
inventores.
En 1;989 \Oliver Atkin", de la universidad de Illinois en Estados Unidos,
y \Franois Morain", de la Esuela Politenia de Palaiseau en Frania,
rearon un algoritmo muy distinto de similar eaia. La ventaja que tiene
este metodo es la de poder omprobar, mediante los instrumentos de alulo
que suministra, la veraidad de que un numero que el metodo arma que es
primo lo es realmente. En el aso del test APRCL, en ambio, el unio medio
de omprobaion onsiste en rehaerlo.
3
Apartado (??) en la pagina ??.
4
Razon por la que no indiamos \exatamente\ diho numero. ;-)
56 CAP
ITULO 6. FACTORIZACI
ON Y PRIMALIDAD
Tanto el metodo APRCL omo el metodo de Atkin-Morain emplean
sostiadas tenias de teora de numeros. El test APRCL utiliza una ge-
neralizaion del menionado teorema de Fermat a los llamados uerpos i-
lotomios. El test de Atkin-Morain reurre a una generalizaion del mismo
teorema a las urvas elptias. En la pratia, estos dos modernos test per-
miten demostrar en poos minutos que un numero de 200 ifras es primo,
lo que basta sobradamente para las neesidades riptograas. Comparando
este resultado on los obtenidos en la tabla ?? y teniendo en uenta que el
primo numero 55;000 es 679;277 y tiene 6 ifras podemos haernos una idea
del tiempo que se tardara en omprobar la primalidad de un numero de 200
ifras on ualquiera de los metodos analizados en diha tabla.
Podemos onsiderar que el problema de la determinaion de la primalidad
de un numero es un problema asequible graias a los algoritmos anteriores y
al ontinuo avane de la tenologa que permite la utilizaion de ordenadores
ada vez mas rapidos y potentes.
6.3.3. Algoritmo de Lehmann
Es uno de los tests mas senillos para saber si un numero p es primo o
no. El algoritmo es el siguiente:
1. Esoger un numero aleatorio a < p.
2. Calulamos:
b = a
p1
2
mod p
3. Si b 6= 1 mod p y b 6= p 1 mod p entones p no es primo.
4. Si b 1 mod p o b p 1 mod p, la probabilidad de que p sea primo
es igual o superior al 50%.
Repitiendo el algoritmo n vees, la probabilidad de que p supere el test y
no sea primo es de 1 ontra 2
n
.
6.3. ALGORITMOS PROBABIL
ISTICOS 57
6.3.4. Algoritmo de Rabin-Miller
Es el algoritmo mas empleado, debido a su failidad de implementaion.
Sea p el numero que queremos saber si es primo. Se alula b, siendo b el
numero de vees que 2 divide a p 1, es deir, 2
b
es la mayor potenia de 2
que divide a p 1. Calulamos entones m, tal que p = 1 + 2
b
m.
1. Esoger un numero aleatorio a < p.
2. Sea j = 0 y z = a
m
mod p.
3. Si z = 1, o z = p 1, entoes p pasa el test y puede ser primo.
4. Si j > 0 y z = 1, p no es primo.
5. Sea j = j + 1. Si j = b y z 6= p 1, p no es primo.
6. Si j < b y z 6= p 1, z = z
2
mod p. Volver al paso (4).
7. Si j < b y z = p 1, entones p pasa el test y puede ser primo.
8. p no es primo.
La probabilidad de que un numero ompuesto pase este algoritmo para
un numero a es del 25%. Esto quiere deir que neesitaremos menos pasos
para llegar al mismo nivel de onanza que el obtenido on el algoritmo de
Lehmann.
6.3.5. En la pratia
Para determinar si un numero es primo o no el algorimo que normalmente
se utiliza es:
1. Se genera un numero aleatorio p de n bits.
2. Se pone a uno el bit mas signiativo para garantizar que el numero
obtenido es de n bits.
3. Se pone a uno el bit menos signiativo para garantizar que el numero
es impar, ya que si fuera par no sera primo
5
.
4. Dividimos p por una tabla de primos prealulados, normalmente se uti-
lizan primos menores que 2;000. Esto elimina gran antidad de numeros
no primos de una forma rapida.
5. Ejeutar el test de Rabin-Miller omo mnimo ino vees.
5
A exepion del 2, pero diho numero no se onsidera.
58 CAP
ITULO 6. FACTORIZACI
ON Y PRIMALIDAD
Captulo 7
La Funion de Euler y
Congruenias Clasias
7.1. La Funion de Euler
Sea (Z;+; ) el anillo de los numeros enteros y n 2 Z un numero ualquiera
de diho anillo. Podemos onsiderar entones el anillo oiente de lases resid-
uales resultante de dividir por n, al ual denotaremos por Z=n.
Z=n =
0; 1; ; n 1
El anillo Z=n no siempre es uerpo, es uerpo uando n es un numero primo.
Denotaremos por (Z=n)
al onjunto de todos los elementos de Z=n que son
invertibles, diho onjunto es un grupo multipliativo.
De la teoria de anillos sabemos que (Z=n)
estara formado por los numeros
enteros, no nulos, menores que n y primos on n.
Deniion 7.1 (Funion de Euler)
Se dene la funion de Euler omo:
: Z ! Z
n ! (n)
donde (n) = j(Z=n)
j.
(n) tambien reibe el nombre de indiador de Euler de n.
59
60CAP
ITULO 7. LA FUNCI
ON DE EULER YCONGRUENCIAS CL
ASICAS
Observaion: 7.1.1
En el aso de que n = p sea un numero primo se tiene que:
(p) = p 1
ya que al ser p un numero primo todos los numeros menores que p son primos
on p. Z=p es uerpo por ser p primo, luego todos sus elementos, no nulos,
son invertibles.
7.1.1. Propiedades de la funion de Euler
Proposiion 7.1 (Propiedades del indiador de Euler)
El indiador de Euler veria:
(p
r
) = p
r1
(p 1) on p un numero primo y r 1.
(n m) = (n) (m) on n y m primos entre s.
Demostraion:
(p
r
) = p
r1
(p 1) on p un numero primo y r 1.
Por deniion tendremos que (p
r
) es el orden del grupo multipliativo
(Z=p
r
)
, y este grupo esta formado por los numeros enteros menores
que p
r
y que son primos on el. Los enteros menores que p
r
y que no
son primos on p
r
son p, 2 p, . . . , p
r1
p. Luego tenemos p
r1
numeros
que no son primos on p
r
y omo jZ=p
r
j = p
r
tendremos que:
(p
r
) = p
r
p
r1
= (p 1) p
r1
(n m) = (n) (m) on n y m primos entre s.
Por el Teorema Chino de los restos tenemos que:
Z=(n m)
=
(Z=n) (Z=m)
indue un isomorsmo de grupos:
Z=(n m)
=
(Z=n)
(Z=m)
de donde se dedue que (n m) = (n) (m).
7.2. CONGRUENCIAS CL
ASICAS 61
7.2. Congruenias Clasias
El onepto de ongruenia fue introduido en Matematias por Gauss
en su obra Disquisitiones Arithmetiae, en el a~no 1;801.
Deniion 7.2 (Numeros ongruentes)
Sean a; b;m 2 Z
+
f0g. Diremos que a y b son ongruentes modulo m si m
divide a (a b) y lo denotaremos omo a b (mod m).
Proposiion 7.2
Sean a; b;m 2 Z
+
f0g.
a b (mod m) () a y b tienen el mismo resto al dividir por m.
Demostraion:
) j Como a b (mod m) se tiene que m divide a (ab) entones tendremos
por el algoritmo de Eulides que:
(a b) = m (7.1)
Por el algoritmo de Eulides tendremos:
a = m
a
+ r
a
b = m
b
+ r
b
de donde se tiene que:
(a b) = (
a
b
) m + (r
a
r
b
) (7.2)
De (??) y (??) se dedue que:
r
a
r
b
= 0 =) r
a
= r
b
( j Sean a; b 2 Z tales que tienen el mismo resto al dividir por m, entones:
a = m
a
+ r
b = m
b
+ r
de donde se tiene que:
a b = m
a
+ r (m
b
+ r) = (
a
b
) m
Luego m divide a (a b), es deir a b (mod m).
62CAP
ITULO 7. LA FUNCI
ON DE EULER YCONGRUENCIAS CL
ASICAS
De esta proposiion se dedue que dos numeros son ongruentes modulo m
s y solo s tienen el mismo resto al dividir por m.
S a b (mod m) y d (mod m) se verian las siguientes propiedades:
1. a+ b+ d (mod m).
2. k a k b (mod m) para todo k 2 Z.
3. a b d (mod m).
4. a
n
b
n
(mod m) para todo n 2 Z
+
.
5. f(a) f(b) (mod m) para todo polinomio on oeientes enteros.
7.2.1. Congruenia de Euler
Proposiion 7.3 (Congruenia de Euler)
S a; b 2 Z son primos entre s entones:
a
(b)
1 (mod b )
Demostraion:
Como a es primo on m entones la lase de a en Z=b es un elemento inver-
tible:
a 2 (Z=b)
y al ser (Z=b)
un grupo multipliativo de orden (b) se tiene que:
1 = a
(b)
= a
(b)
7.2. CONGRUENCIAS CL
ASICAS 63
7.2.2. Conguenia de Fermat
Un aso partiular de la ongruenia de Euler es la ongruenia de Fermat:
Proposiion 7.4 (Congruenia de Fermat)
Sea p 2 Z un numero primo y a 2 Z tal que no sea divisible por p entones:
a
p1
1 (mod p)
Demostraion:
Como p es primo y no divide a a entones a y p son primos entre s y por la
ongruenia de Euler tendremos:
a
(p)
1(mod p)
pero omo p es primo entones (p) = p 1 luego:
a
p1
1(mod p)
64CAP
ITULO 7. LA FUNCI
ON DE EULER YCONGRUENCIAS CL
ASICAS
Captulo 8
El Algoritmo de Eulides
Deniion 8.1 (Anillo ntegro)
Diremos que un anillo A es ntegro uando para ualesquiera a; b 2 A tales
que a b = 0 se tenga que:
a = 0 o b = 0
Deniion 8.2 (Anillo Euldeo)
Diremos que un anillo A es euldeo si es ntegro y se veria el algoritmo
de Eulides para todo elemento del anillo.
Sea A un anillo Euldeo y a; d 2 A entones:
a = d + r (8.1)
donde:
a reibe el nombre de dividendo.
d reibe el nombre de divisor.
reibe el nombre de oiente.
r reibe el nombre de resto.
Donde (??) reibe el nombre de Algoritmo de Eulides. S A = Z diremos
que (??) es el Algoritmo de Eulides para la division entera.
Ejemplo de anillos Euldeos son Z y K [x, donde K [x es el anillo de
polinomios, en la variable x, on oeientes en el uerpo K .
65
66 CAP
ITULO 8. EL ALGORITMO DE EUCLIDES
8.1. Calulo del M.C.D. mediante el Algorit-
mo de Eulides
Proposiion 8.1
Sean a; d; ; r 2 Z tales que a = d + r entones:
M:C:D:(a; d) =M:C:D:(d; r)
Demostraion:
Por deniion de M.C.D. tendremos que:
m
1
=M:C:D:(a; d) () (m
1
) = (a) + (d)
m
2
=M:C:D:(d; r) () (m
2
) = (d) + (r)
m
1
y m
2
existen y son unios. Para demostrar la proposiion veamos que
(m
1
) = (m
2
).
Esto es inmediato ya que:
a = d + r 2 (d) + (r)
r = a d r 2 (a) + (d)
luego (a) + (d) = (d) + (r) luego m
1
= m
2
.
Utilizando la proposiion ?? podemos obtener un algoritmo rapido para de-
terminar el M.C.D. de dos numeros, ya que la fatorizaion en numeros pri-
mos de un numero puede ser una tarea lenta y ostosa, sobre todo s el
numero es grande.
8.2. C
ALCULO DE INVERSOS EN Z/N 67
8.1.1. Algoritmo de alulo
Sean a; b 2 Z, on a > b 6= 0. Por el algoritmo de Eulides tendremos:
a =
1
b+ r
1
b =
2
r
1
+ r
2
r
1
=
3
r
3
+ r
4
: : : : : : : : : : : : : : :
r
n2
=
n
r
n1
+ r
n
r
n1
=
n+1
r
n
+ 0
por la proposiion ?? tendremos:
M:C:D:(a; b) = M:C:D:(b; r
1
) =M:C:D:(r
1
; r
2
) =M:C:D:(r
2
; r
3
) =
= : : : =M:C:D:(r
n2
; r
n1
) =M:C:D:(r
n1
; r
n
) =
= M:C:D:(r
n
; 0) = r
n
8.2. Calulo de Inversos en Z/n
Sea n 2 Z ualquiera, por la teora de anillos sabemos que Z/n no es
uerpo siempre.
Z/n es uerpo () n es primo.
Muhas vees neesitaremos alular el inverso de a 2 Z/n on n no primo.
No todos los elementos de Z/n son invertibles, ya que de serlo Z/n sera
uerpo, on lo ual n forzosamente tendra que ser un numero primo y no lo
es.
Los elementos de Z/n los denotaremos por a. Z/n es el onjunto de restos
posibles al dividir por n luego:
Z=n =
0; 1; : : : ; n 1
68 CAP
ITULO 8. EL ALGORITMO DE EUCLIDES
8.2.1. Caraterizaion de los invertibles de Z/n
Proposiion 8.2
m 2 Z/n es invertible () (m;n) = 1, m y n son primos entre s.
Demostraion:
) j m es invertible, entones existe a 2 Z/n tal que:
a m 1 mod n =) a m 1 0 mod n
de donde se dedue que:
a m n = 1 on 2 Z
y por el ejeriio ??, en la pagina ??, se tiene que 1 = (m;n).
( j Como (m;n) = 1 por el ejeriio ??, en la pagina ??, tendremos que
existen ; 2 Z tales que:
m+ n = 1
de donde se dedue:
m 1 = n() m 1 mod n
luego 2 Z/n es el inverso de m.
Al onjunto de elementos invertibles de Z=n lo denotaremos por (Z=n)
y
estara formado por todos los elementos que son primos on n. Este onjunto
es un grupo multipliativo de orden (n).
8.2. C
ALCULO DE INVERSOS EN Z/N 69
8.2.2. Euaiones diofantias en Z
Deniion 8.3 (Euaion diofantia en Z)
Dados a; b; 2 Z llamaremos euaion diofantia a la siguiente euaion:
a x+ b y =
Diremos que tiene soluion uando existan x; y 2 Z que la veriquen.
El ejeriio ??, en la pagina ??, nos india uando una euaion diofantia
tiene soluion.
Una euaion diofantia, omo la anterior, tiene soluion ()
es multiplo de maximo omun divisor de a y b.
Sea (a; b) = d y = d, tendremos que a = a d y b = b d entones la
siguientes euaion diofantias tendran las mismas soluiones:
a x+ b y = (8.2)
a x+ b y = (8.3)
Dada una euaion diofantia ualquiera, que tenga soluion, omo la (??)
podemos reduirla a otra euaion diofantia que tiene las mismas soluiones
y veriando (a; b) = 1, euaion (??).
Cuando tengamos una euaion diofantia del tipo (??) la reduiremos al
tipo (??) alulando el maximo omun divisor de a y b, mediante el algoritmo
de Eulides por ejemplo, y tendremos que:
a =
a
d
b =
b
d
=
d
Supondremos de ahora en adelante que si a x+ b y = es una euaion
diofantia entones a y b son primos entre s, y diremos que la euaion esta
en forma reduida.
Sea a x+b y = una euaion diofantia en forma reduida, si x
0
; y
0
2 Z
son soluion de diha euaion entones (x
0
+ b; y
0
a) son soluiones
de la euaion para todo 2 Z.
70 CAP
ITULO 8. EL ALGORITMO DE EUCLIDES
Ejemplo 8.1 (Resoluion de una euaion diofantia)
Resolver la euaion diofantia siguiente:
238 x + 165 y = 1
Lo primero que tenemos que ver es si tiene soluion. Calulemos el maximo
omun divisor por el algoritmo de Eulides:
238 = 165 1 + 73 =) 73 = 238 165 1
165 = 73 2 + 19 =) 19 = 165 73 2
73 = 19 3 + 16 =) 16 = 73 19 3
19 = 16 1 + 3 =) 3 = 19 16 1
16 = 3 5 + 1
3 = 1 3
luego (238; 165) = 1 entones son primos entre s, la euaion tiene soluion.
Para enontrar una soluion proederemos de la siguiente manera:
16 = (19 16 1)
| {z }
3
5 + 1 =) 16 6 + 19 (5) = 1
1 = (73 19 3)
| {z }
16
6 + 19 (5) =) 73 6 + 19 (23) = 1
1 = (165 73 2)
| {z }
19
(23) + 73 6 =) 73 52 + 165 (23) = 1
1 = (238 165 1)
| {z }
73
52 + 165 (23) =) 238 52 + 165 (75) = 1
Luego las soluiones de la euaion diofantia son x
0
= 52 e y
0
= 75,
(52;75). Todas las soluiones de la euaion son:
(52 + 165;75 238) on 2 Z
8.2. C
ALCULO DE INVERSOS EN Z/N 71
8.2.3. Calulo de inversos on el algoritmo de Eulides
Sea n;m 2 Z, on n positivo, no nulo y no primo, y que queremos alular
el inverso de m en Z=n, que no es uerpo ya que n no es primo. Podemos
alularlo utilizando el algoritmo de Eulides:
1. Comprobaremos que, efetivamente, m es invertible en Z=n. Es deir
que (m;n) = 1. Una forma de haerlo es la desrita en el apartado (??),
en la pagina ??.
2. En el aso en que m sea invertible tendremos que existira x 2 Z tal
que:
x m = 1 mod n
Que un numero sea ongruente on 1 modulo n signia que:
x m = b n + 1 on b 2 Z
Luego tenemos la siguiente euaion diofantia:
x m+ b n = 1
Resolvemos la euaion diofantia omo hemos visto en el apartado
(??), en la pagina ??, y m
1
= x mod n.
72 CAP
ITULO 8. EL ALGORITMO DE EUCLIDES
Parte IV
Criptografa Moderna
73
Captulo 9
Funiones de un Sentido
Habamos visto en el aptulo ?? que para que un sistema riptogra-
o sea seguro era neesario que la funion d(; ) requiera muho tiempo de
alulo, on lo ual sera difil desifrar un mensaje. Pero esto representa un
problema, y es que no solo sera difil para un intruso, ademas tambien lo
sera para el reeptor del mensaje.
Una soluion a esto la dieron Die y Hellman, onsistia en utilizar fun-
iones matematias tales que el alulo de la funion direta
1
sea fail, pero
el alulo de la funion inversa
2
sea dil, pero que diha funion inversa
tenga una \trampa", y el onoimiento de diha trampa permita un senillo
alulo de la funion inversa. Este tipo de funiones reiben el nombre de
funiones de un sentido o funiones on trampa.
De esta deniion podemos observar que el heho de que una funion sea
de un sentido depende del tiempo de alulo utilizado por un ordenador para
su funion inversa, es deir que depende del ordenador utilizado, ya que no
es lo mismo realizar una operaion en un ordenador personal que en una
estaion de trabajo o un superordenador, omo pudiera ser un CRAY. De
esto tambien se dedue que una funion que hoy en da es onsiderada omo