Está en la página 1de 131

UNIVERSIDAD NACIONAL ABIERTA

VICERRECTORADO ACADEMICO

CENTRO LOCAL NUEVA ESPARTA

AREA DE MATEMATICA

CRIPTOGRAFIA

LICENCIADO:

HUBERT RAFAEL LONGART MARCANO

C.I. 8.395.929

CARRERA: LICENCIATURA EN MATEMATICAS

MENCION ANALISIS NUMERICO (120)

LA ASUNCIÓN, 20 DE FEBRERO DE 2009


AGRADECIMIENTO

A DIOS creador de todo lo visible e invisible ya que “..ni una hoja se mueve sin
su consentimiento…” La Biblia.

A mi madre Rosalía Marcano de Longart..Difícilmente las generaciones futuras


creerán que existió alguien tan desprendida, sabia, trabajadora y amorosa.

A mi padre JOSE LONGART (dif.) quien con su trabajo y sacrificio nos dio la
seguridad económica que nos permitió culminar nuestros estudios.

A mis hermanos Norelis , Jose y Hebert (dif.) Longart

A mi mentor Profesor RAFAEL MALAVE (alias “Guareque “) gracias por


ayudarme a descubrir mi vocación natural.

A mi tutor académico Profesor JOSE GASCON ..gracias por su paciencia ,


tiempo, conocimientos y “don de gente”.

A mis familiares (son tantos que si los menciono a todos me llevaría otro libro)

A mi sobrinita YORGELIS LONGART quien me ayudo a transcribir partes del


presente trabajo con tan solo 13 años.

A mis amigos Gladys Carreño, Jesus Gomez, sensei frankling “YAKI “ cuellar,
Ingeniero Jose Bello, Sra. Gisela, Raquel, profesora Carmen Narvaez, profesor
Geronimo Valerio, Profesora Gladis Sucre de Rigual y Liz Zambrano que
estuvieron conmigo en las buenas y en las malas.

A mis amigos de la lista de Crackslatinos: maestro Ricardo Narvaja ( un titulo


bien merecido ) ,Solid, Red Hawk ,Akira , Coco y otros..Este trabajo resulto
como consecuencia de sus tutoriales…son los mejores.
DEDICATORIA

A DIOS todopoderoso y eterno fuente y origen de todo conocimiento.

A mi madre Rosalía Marcano de Longart ..Nunca la palabra MADRE fue tan bien
merecida.

A mi mentor Profesor RAFAEL MALAVE (alias “Guareque “)…Leonardo Da Vinci


escribió “…si un alumno no supera al maestro…lo defrauda…” maestro no sé si
soy mejor que usted..Solo quiero que sepa que espero no haberlo defraudado.

A mi tutor académico Profesor JOSE GASCON un verdadero ejemplo de lo que


debe ser un profesor universitario, tanto por sus conocimientos, como por su
búsqueda permanente de la perfección. y más aun por su humildad y sentido de la
justicia.

A mis alumnos de los que aspiro que sean mejores que yo.
UNIVERSIDAD NACIONAL ABIERTA

VICERRECTORADO ACADEMICO

CENTRO LOCAL NUEVA ESPARTA

AREA DE MATEMATICA

CRIPTOGRAFIA

Trabajo de grado

Autor: Hubert Longart

Asesor: Jose Gascon

RESUMEN

En este trabajo se abordaron los primeros aspectos relativos al tema de la criptografía


moderna, sus antecedentes históricos, bases y fundamentos matemáticos así como
descripciones de algunos algoritmos aplicados y los ataques a los cuales son vulnerables.
INTRODUCCION

El presente trabajo constituye una introducción a la criptografía y su


aplicación a la seguridad en redes. La información es un elemento valioso en cualquier
cultura y sociedad. El conocimiento con antelación del plan de batalla de nuestro rival,
de determinadas decisiones económicas, de nuevas legislaciones etc. tiene un valor
estratégico, financiero y táctico. El conocimiento tecnológico avanzado determina, en
buena medida, la división entre el primer y tercer mundo. Dentro de ese conocimiento
existen ciertas áreas que son mantenidas en completa reserva, como la energía atómica,
la biotecnología y la nanotecnología. Sin embargo, los científicos de un país o compañía
que trabajan en esas áreas necesitan comunicarse entre ellos. Surge la necesidad de
realizar esta comunicación de manera segura, de forma que solo el emisor y el receptor
del mensaje tengan acceso a la información. La manera de lograrlo es mediante el uso
de técnicas criptográficas. Un ejemplo menos sofisticado son las transacciones que
realizamos todos los días usando Internet, cajeros automáticos, teléfono etc. Vamos a la
Web y a una tienda en particular, nos piden nuestra clave de usuario, nuestro password,
el número de nuestra tarjeta de crédito, etc. Cada uno de estos datos es muy importante
para nosotros y el robo por terceros, de cualquiera de ellos, puede acarrearnos perdidas
materiales y molestias diversas. Sin embargo los mandamos a través de la red con
relativa confianza. ¿Por qué? Por que el mensaje va cifrado o encriptado como también
decimos. Confiamos en la matemática y en la seguridad informática cada vez que
compramos en Internet. En buena medida el trabajo que presentamos explica los
métodos básicos detrás de nuestra confianza.

Por ser nuestro trabajo autocontenido, empezamos en el primer capítulo


con los resultados y definiciones fundamentales de la criptografía y el criptoanálisis.
También damos ejemplos de los mismos para que el lector comprenda las ideas tras
ellos, en particular el sistema de Vi g e n e r e e s e x p l i c a d o y u s a d o p a r a i l u s t r a r
nuestras ideas. Las reglas de Kerckhoffs y el concepto de secreto
perfecto son explicados en detalle.

El capítulo 2 es el más importante desde el punto de vista abstracto para


nuestro trabajo. En el capítulo 2 se examinan varios conceptos derivados de la teoría de
la información, en particular el muy importante concepto de entropía es explicado,
demostrada sus propiedades más importantes e ilustrado con varios ejemplos. También
desarrollamos, en detalle, los elementos de la teoría de números que aparecen en los
métodos criptográficos que estudiaremos en el capítulo 3, en particular para el sistema
RSA. El teorema de Fermat y los problemas asociados con la factorización en primos
grandes son cruciales en la implementación del sistema RSA. Varios ejemplos ilustran
al lector las ideas de la teoría de números que usamos. La noción de curva elíptica se
explica de manera sencilla y será aplicada en el capítulo 3 en el sistema de El Gamal.
El capítulo 3 explica los sistemas de criptografía más empleados en la
Internet. Podemos considerar este capítulo como el centro del trabajo desde el punto de
vista de las aplicaciones. Ilustramos el algoritmo RSA con un ejemplo de corrida a
mano para que el lector vea como pasamos del mensaje original, al cifrado y luego de
vuelta al original. Las ideas de claves públicas son explicadas, así como la aplicación
del teorema del resto chino al descifrado. Otros sistemas de cifrado como el de El
Gamal basado en la idea de curva elíptica y el de Rabin son explicados. Pero el sistema
sobre el que hacemos más énfasis es el RSA, sin duda el más importante desde el punto
de vista teórico y de las aplicaciones.

Por último, no podemos dejar de examinar las posibilidades de ataques


informáticos a nuestros sistemas de cifrado. Las vulnerabilidades de los mismos son
examinadas, muchas de ellas se refieren a la mala escogencia de los primos usados pero
también examinamos las debilidades de los sistemas criptográficos desde un punto de
vista teórico y de rapidez de cómputo. Resulta claro que el concepto de seguridad es
relativo a la infraestructura de hardware empleada.

Esperamos que este trabajo sirva como una introducción a un tema sobre
el cual existe profusa investigación actualmente y sobre el cual se basa la economía
globalizada: la criptografía y su aplicación a las redes.
INDICE GENERAL
CAPITULOS PAG.
1.- Criptografía -
1.1 Introducción 1
1.2 Conceptos básicos 2
1.3 Reglas de Kerchoff 5
1.4 Secreto Perfecto 6
1.5 Distancia de Unicidad 9
2.-Aspectos Matemáticos -
2.1 Teoría de la información 15
2.1.1 Conceptos Básicos 16
2.1.2 Medición de la Cantidad de Información 17
2.1.3 Entropía 20
2.1.3.1 Propiedades de la Entropía 25
2.2 Teoría de Números 37
2.2.1 Propiedades de la Congruencia en Z 37
2.2.2 Algoritmo Extendido de Euclides 49
2.2.2.1 Algoritmo para el Cálculo de Inversos 51
2.2.3 Cálculos en campos de Galois 57
2.2.4 Elementos de GF ( p n ) como polinomios 57
2.3 Curvas Algebraicas 58
2.3.1 Forma Canónica de Weierstrass (caso general) 58
2.3.2 Forma Canónica de Weierstrass (característica 2) 60
2.3.3 Forma Canónica de weirstrass (características 3) 61
2.3.4 El Grupo de Puntos de una Elíptica 62
2.3.5 Interpretación Geométrica 62
2.3.6 Formulas Analíticas 64
3.-Sistemas Criptográficos en la Internet -
3.1 Importancia de la seguridad en Internet 71
3.1.1 Importancia de las Redes 71
3.1.2 Redes Internas 72
3.1.3 Redes Externas 72
3.1.4 Intranets 74
3.1.5 Sistemas de Seguridad en la Red 74
3.2 RSA y Rabin. 75
3.3. Criptosistema RSA 76
3.3.1Uso del Teorema del Resto Chino en RSA 81
3.3.2 Descifrado RSA aplicando el TRC 81
3.3.3 que fortaleza tiene el algoritmo RSA ante ataques? 82
3.4. Criptosistema de El Gamal 83
3.5. Cambio de Clave de Diffie-Hellman 85
3.6 Versión Elíptica de El Gamal y de Hiffie-Miller 87
3.6.1 Cambio de Clave de Diffie-Hellman para Curvas Elípticas 87
3.6.2 Criptosistema de El Gamal para Curvas Elípticas 87
3.6.3 Algoritmo de Rabin 89
4.0 Conclusiones -
4.-Vulnerabilidad de los sistemas criptográficos 91
4.1 Ataque a un sistema criptográfico 92
4.1.1 RSA 92
4.1.2 Tamaño de los parámetros en RSA 95
4.1.3 El problema en la elección del valor de n 95
4.1.4 Elección de los números primos 96
4.1.5 Cálculo de números primos p y q seguros 97
4.1.6 Par de primos seguros pero independientes 97
4.1.7 Claves privadas parejas en RSA 98
4.1.8 Número de claves privadas parejas 98
4.1.9 Minimizando las claves privadas parejas 99
4.1.10 Claves parejas de la clave pública en RSA 101
4.1.11 Comprobación de una firma digital 101
4.1.12 Números no cifrables en RSA 102
4.1.13 Cantidad de números no cifrables 102
4.1.14 Distribución de números no cifrables. 104
4.1.15 Cantidad mínima de números no cifrables 105
4.1.16 Confidencialidad en intercambio de clave 106
4.1.17 Ataque al secreto de N por cifrado cíclico 107
4.1.18 La paradoja del cumpleaños 109
4.1.19 Ataque a la clave por paradoja cumpleaños 109
4.1.20 Ataque que entrega alguna clave pareja 111
4.1.21 Ataque que entrega la clave privada 112
4.2 Ataque a la clave Diffie y Hellman 113
4.2.1 ¿Puede un intruso atacar la clave DH? 113
4.2.2 Seguridad del intercambio de clave de DH 113
4.2.3 ¿Es vulnerable el protocolo de DH? 113
4.2.4 Intercambio de clave DH entre n usuarios 114
4.2.5 Condiciones del intercambio de clave D-H 115
4.2.6 Raíz α incorrecta (falsa) 115
4.2.7 Raíz α correcta 116
4.3. Ataque al Criptosistema de El Gamal 116
4.4 Conclusiones y Recomendaciones 117
4.4.1 Conclusiones 117
4.4.2 Recomendaciones 118
Bibliografía -
Capitulo 1

Criptografía
1.1 INTRODUCCION

Desde los principios de la humanidad esta ha sentido la


necesidad de comunicarse , pero casi simultáneamente ha tenido el
deseo(o la necesidad) de mantener ideas en secreto o solo
compartirlas con un grupo selecto, esto es particularmente patente
en las épocas de guerra donde es indispensable el factor sorpresa
, las primeras civilizaciones desarrollaron técnicas para enviar
mensajes durante las campañas militares de forma que si el
mensajero era interceptado la información que portaba no corriera
el peligro de caer en manos del enemigo.

Posiblemente, el primer criptosistema que se conoce fuera un


sistema de sustitución basado en la posición de las letras en una
tabla también los romanos utilizaron sistemas de sustitución,
siendo el método actualmente conocido como César, porque
supuestamente Julio César lo utilizó en sus campañas, uno de los
más conocidos en la literatura.

“Desde el siglo XIX y hasta la Segunda Guerra Mundial las


figuras más importantes fueron la del holandés Auguste Kerckhoffs
y la del prusiano Friedrich Kasiski. Pero es en el siglo XX cuando
la historia de la criptografía vuelve a presentar importantes
avances.”

“Tras la conclusión de la Segunda Guerra Mundial, la


criptografía tiene un desarrollo teórico importante, siendo Claude
Shannon y sus investigaciones sobre teoría de la información
esenciales hitos en dicho desarrollo...”(1)

En vista de que los avances en computación suponían una


amenaza para los sistemas vigentes para la época es por lo cual la
criptografía moderna nace durante la segunda guerra mundial
inspirada en el trabajo desarrollado por el matemático Alan Turing
el cual se encontraba al servicio del ejército británico tratando de
descifrar los mensajes secretos enviados por el ejército alemán

Los sistemas criptográficos están teniendo un gran auge


últimamente ante la incertidumbre de que una transmisión en
Internet pueda ser interceptada y que ello pueda originar que se
filtre alguna información que no debería. Nos referimos por
ejemplo, a una transacción política o militar importante o a una
información sobre determinados temas empresariales en los cuales
la discreción es vital para llevar a feliz término las operaciones
requeridas

1
(1)Tomado de : http://es.wikipedia.org/wiki/Criptograf

A continuación se darán una serie de conceptos básicos para la


cabal comprensión del presente trabajo:

1.2 CONCEPTOS BASICOS

Definición 1. La Criptologia (del griego criptos = oculto y logos


= tratado, ciencias) es el nombre genérico con el cual se designan
dos disciplinas opuestas y a la vez complementarias: Criptografía
y Criptoanálisis.

Definición 2.La Criptografía se ocupa del diseño de


procedimientos para cifrar, es decir, para enmascarar una
determinada información de carácter confidencial.

Definición 3. El criptoanálisis, por su parte, se ocupa de


romper esos procedimientos de cifrado para así recuperar la
información original.

Shannon, padre de la teoría de la información, en 1949 reconoció


que ambas disciplinas siempre se han desarrollado de forma
paralela pues cualquier método de cifrado lleva siempre
emparejado su Criptoanálisis correspondiente. Desde entonces se
usan su teoría y nomenclatura para el estudio teórico de la
criptografía, aunque ambas ciencias (Criptografía y Teoría de la
información) comparten muchos conceptos y resultados, son
materias esencialmente distintas, ya que la Teoría de la
Información trata de la transmisión clara y segura de la
información a través de un canal ruidoso (es decir que
distorsiona de una manera no intencional la fidelidad de la
información transmitida), mientras que la Criptografía trata de lo
contrario, es decir, hacer el mensaje transmitido incomprensible
para un potencial enemigo.

La protección de la información que se persigue en criptografía se


lleva a cabo variando su forma original.

Definición 4. S e l l a m a C i f r a d o ( o t r a n s f o rm a c i ó n
Criptográfica) a una transformación del texto original
(denominado también texto inicial o texto claro) que lo convierte
en el llamado texto cifrado o criptograma.

2
textooriginal
. T 
k (transformacion..criptografica)
→textocifrado
.
Figura 1

Definición 5. Se llama descifrado a la transformación que


permite recuperar el texto original a partir del texto cifrado.

Definición 6. Un a c l a v e e s e l p a r á m e t r o q u e d e t e r m i n a c a d a u n a
de las transformaciones.

Definición 7. El conjunto de sus posibles valores se denomina


espacio de claves K.

Definición 8. La familia de transformaciones se llama sistema


criptográfico T = {Tk / k ∈ K } , d e n o t á n d o s e m e d i a n t e Tk ( o t a m b i é n
Ek ) a l a o p e r a c i ó n d e c i f r a d o y c o m o Dk a l d e s c i f r a d o c o n c l a v e
k.

El espaci o de mens aj es ori ginal es que const itu ye el conj unto de


partida de los cifrados se denomina M, mientras que el conjunto
imagen formado por los textos cifrados se denota mediante C.
Más adelante veremos un ejemplo que clarifica estas ideas.

Los cifrados se clasifican, según la fuente, en cifrados digitales


o analógicos, pero en el presente texto se trataran los cifrados
di git al es en vist a de que pres ent a ma yor grado de s eguri dad que
el analógico.

Si la fuente es digital, los mensajes están constituidos por


grupos de elementos pertenecientes a una colección finita
denominada alfabeto y es analógica si genera un continuo de
valores.

En los cifrados digitales, tanto el texto original como el cifrado


están formados por letras de un alfabeto. Se consideran, además del
a l f a b e t o A = {a1 , a2 ,....am } l o s a l f a b e t o s f o r m a d o s a p a r t i r d e l a
c o m b i n a c i ó n d e s u s l e t r a s . S u s mn e l e m e n t o s s o n l a s l l a m a d a s n -
pal abras . P or m ot ivos prácti cos se s usti tu yen l as l et ras por
números, usándose entonces como alfabeto el conjunto de enteros
Z m = {0,1,.....m − 1} . A l c o n j u n t o d e n - p a l a b r a s c o r r e s p o n d i e n t e s a e s e
a l f a b e t o s e l e d e n o t a Z m ,n .
3
Principalmente se usan 2 alfabetos numéricos, el alfabeto
d e c i m a l Z10 = {0,1,....,9} y e l a l f a b e t o b i n a r i o Z 2 = {0,1} .

En teoría, el sistema criptográfico se puede escribir como


T = {Tk( n ) :1 ≤ n < ∞} , s i e n d o Tk( n ) ( x) = y d o n d e y e s l a n - p a l a b r a c i f r a d a
que corresponde a la n-palabra original x .

En el presente trabajo se harán las siguientes suposiciones:

1 ) Tk( n ) e s b i y e c t i v a

2) Se usa el mismo alfabeto para ambos textos, original y cifrado.

3) Se define el cifrado de todas las posibles palabras,


independientemente de si existen o no.

4) Cada n-palabra se cifra en una n-palabra, teniéndose así que el


cifrado no cambia la longitud del texto original.

Ejemplo 1

A los fines de clarificar la notación introducida


ejemplificaremos con el siguiente sistema criptográfico,
c o n o c i d o c o m o s i s t e m a d e V I G E N E R E l a s s u s t i t u c i o n e s Tk( n ) s e
definen de conformidad con la siguiente tabla:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3 D E F G H I J K L MN O P Q R S T U V W X Y Z A B C
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Figura 2

E n e s t e c a s o , e l s i s t e m a c r i p t o g r á f i c o Tk v i e n e d a d o p o r l a t a b l a
que permite transformar cada palabra de acuerdo a la permutación
del abecedario correspondiente a cada número y así mismo el
conjunto imagen C viene dado por todas los posibles textos
cifrados que se pueden obtener al aplicar dicho conjunto de
transformaciones

4
Y de acuerdo con este sistema transformaremos la palabra HOLA
según la clave elegida (3 en este caso) según los siguientes pasos
se elige la palabra a sustituir en la primera fila y se busca su
equivalente en la fila correspondiente a la clave elegida:

H → K ,O → R, L → O, A → D

Por tanto la transformación queda:

T3 ( HOLA) = KROD

1 .3 REGLAS DE KERCKHOFFS.

En el siglo XIX Auguste Kerckhoffs en su trabajo titulado “La


Criptografía Militar” estableció las reglas que han sido aceptadas
como norma general en la materia.

Las referidas a reglas militares aceptadas mundialmente son:

1) No debe existir ninguna forma de recuperar el texto


original a partir del criptograma (seguridad ante el
primer ataque).

Esta regla se considera cumplida en la práctica siempre que


la complejidad del proceso de recuperación del texto original
sea suficiente para mantener la seguridad del sistema.

2) Todo sistema criptográfico debe estar compuesto por dos


tipos de información:

a. Pública: se refiere a la familia de algoritmos que


definen el sistema criptográfico.

b. Privada: es conocida sólo por el usuario. La clave de


cifrado de cada usuario en particular.

3) La forma de escoger la clave debe ser fácil de recordar y


modificar.
4) Debe ser posible la comunicación del criptograma con los
medios de transmisión (en adelante Tx) habituales.

5
5) La complejidad del proceso de recuperación del texto
original debe corresponderse con el beneficio obtenido (el
costo es proporcional al secreto que quiere guardar).

El conocido genéricamente como principio de Kerckhoffs dice


que la seguridad de un criptosistema se debe medir suponiendo que
el enemigo conoce completamente ambos procesos de cifrado y
descifrado.

Un criptosistema tiene secreto:

1) Teórico: sí es seguro en contra cualquier enemigo que tenga


recursos y tiempo limitados.

2) Práctico: si es seguro contra aquellos enemigos que tenga


suficiente tiempo o recursos.

3) Probable: cuando no se ha demostrado su seguridad pero por el


momento no han sido roto.

1 .4 SECRETO PERFECTO .

D a d o s i s t e m a c r i p t o g r á f i c o T = {Tk / k ∈ K } e n b a s e a l s e g u n d o
principio de Kerckhoffs se supone que el enemigo conoce las
cuatro características siguientes: el texto cifrado, el sistema
Criptográfico T, el espacio de claves K y la forma en que una clave
K d e t e r m i n a l a t r a n s f o r m a c i ó n C r i p t o g r á f i c a s Tk .

Definición 9. Se habla de criptoanálisis bayesiano cuando el


enemigo conoce una distribución de probabilidad sobre las claves
d a d a s p o r Pk { K } qué sirve de estimulación para hallar la
probabilidad de que el criptógrafo utilice la clave K.

Se da por supuesto que los procesos de elección de la clave y


generación del texto inicial son independientes.

Si se representa como X la n- palabra original se puede


e s q u e m a t i z a r l a s i t u a c i ó n d e l e n e m i g o , d o n d e l a p a l a b r a x*
(producto de la función de decisión aplicada por el enemigo) puede
coincidir o no con X.

Se supone que el enemigo dispone de una distribución a priori


Pf { x} d e l t e x t o o r i g i n a l g e n e r a d o p o r l a f u e n t e .

6
D i c h a s d i s t r i b u c i o n e s , Pf y Pk p e r m i t e n a l e n e m i g o e s t i m a r l a s
s i g u i e n t e s : PC {Y } (probabilidad que la palabra cifrada sea Y ),
Pf , k { x, k} ( p r o b a b i l i d a d d e q u e l a p a l a b r a o r i g i n a l s e h a X y l a c l a v e
e l e g i d a s e a K ) , Pf ,c { x, y} ( p r o b a b i l i d a d d e q u e l a s p a l a b r a s o r i g i n a l y
c i f r a d a s e a n X . e Y ) , Pc ,k { y, k } ( p r o b a b i l i d a d d e q u e l a p a l a b r a c i f r a d a
s e a Y y l a c l a v e u s a d a s e a K ) , Pf / c { x / y} ( p r o b a b i l i d a d d e q u e l a
palabra original sea X suponiendo conocida la palabra cifrada Y),
Pk / c {k / y} ( p r o b a b i l i d a d d e q u e l a c l a v e u s a d a s e a K s a b i e n d o q u e l a
palabra cifrada es Y).

Dado que para una clave K y un criptosistema Y, el descifrado


d e b e s e r ú n i c o e n t o n c e s s e t i e n e q u e { x : Tk ( x) = y} p o s e e s o l o u n
e l e m e n t o x* , y p o r l o t a n t o pc ,k { y, k } = p f { x* } . pk {k} .

A continuación se dan algunas definiciones y resultados


rel aci onados con el cri pt oanál isi s baye s i ano.

Definición 10.Una función de decisión d e t e r mi n i s t i c a


δ = {δ (n)
} es una sucesión de transformaciones de la forma:

δ (n) : Zm,n → Zm,n


y → δ (n) ( y) = x
Se tiene que un decisor acierta con una función de decisión δ si
∀n, x, k , s e c u m p l e q u e δ ( n ) (Tk( n ) ( x)) = x.

D e f i n i c i ó n 1 1 . U n a f u n c i ó n d e d e c i s i ó n δB e s b a y e s i a n a s i l a
probabilidad de acierto del criptoanalista

Pf / c {δB ( y)/ y} = maxx Pf / c { x / y} .

A mayor cantidad de texto cifrado, mayor probabilidad de


recuperar el texto original.

7
Definición 12. La mejor estimación a priori del texto original
que puede hacer un enemigo corresponde a la n palabra que
m a x i m i z a l a p r o b a b i l i d a d Pf {( x0 ,...., xn −1 )} . D e s p u é s d e i n t e r c e p t a r e l
texto cifrado, el enemigo revisa esa estimación usando la nueva
información recibida. Sin embargo puede suceder que cuando el
criptograma no proporcione ninguna información útil sobre el
t e x t o o r i g i n a l . E n e s t e c a s o s e t i e n e q u e Pf / c { x / y} = Pf { x}
∀y : Pc { y} > 0 y s e d i c e q u e e l s i s t e m a c r i p t o g r á f i c o t i e n e s e c r e t o
perfecto.

A continuación se especifican las denominadas condiciones


secreto perfecto.

1) Si existen al menos tantas claves en K como n- palabras de


texto inicial de probabilidad positiva, entonces el sistema
criptográfico tiene secreto perfecto.

2) Dado un criptosistema en el que el número de n- palabras


originales, el número de n- palabras cifradas y el número de claves
coinciden, existe secreto perfecto si y sólo si:

2.1) Existe sólo una clave que transforma cada n- palabra


original en cada n- palabra cifrada.

2.2)Todas las claves son equiprobables.

En resumen la clave debe ser aleatoria, usarse una única vez y


tener al menos la misma longitud que el texto original.

Ejemplo2: (Secreto Perfecto)

Texto original M = Secuencia de bits

Clave para cifrar K = Secuencia aleatoria de bits

Texto cifrado C= M xor K (suma modulo 2)

M: 011 001 001 000 100 010

K: 001 010 001 101 110 101

C: 010 011 000 101 010 111

8
p ( M = 0) = 12 / 18 = 2 / 3; p ( M = 1) = 6 / 18 = 1 / 3 

p  ( M = 0)∩ (C = 0)  
p ( M = 0 / C = 0) = = 6 / 9 = 2 / 3
p (C = 0)

p  ( M = 0)∩ (C = 1)  
p ( M = 0 / C = 1) = = 6 / 9 = 2 / 3 
p (C = 1)  ⇒ p(M ) = p(M / C )

p  ( M = 1)∩ (C = 0) 
p ( M = 1 / C = 0) = = 3 / 9 = 1 / 3 
p (C = 0)

p  ( M = 1)∩ (C = 1)  
p ( M = 1 / C = 1) = = 3 / 9 =1/ 3 
p (C = 1) 

En todos los cas os l o cual consti tu ye secreto perfecto.

1.5 DISTANCIA DE UNICIDAD


Definición 13. La siguiente noción fue introducida por Shannon y
es fundamental en la Teoría de Información dicha aporte fue la
definición de la medida de la información como el mínimo número
de bits necesarios para codificar todos los posibles significados de
mensaje.

Definición 14. Shannon usando la definición 13 definió la


entropía de una distribución discreta de probabilidad con
p = ( p (0),........, p (m − 1)) c o m o : p (t ) ≥ 0 y l = p (0) + .... + p (m − 1)
H ( p) = − ∑ p(t )log p(t ) .
0≤t <m

Definición 15. De manera análoga se define la entropía de una


variable como la entropía de su distribución.

En este caso representa la incertidumbre que existe sobre los


posibles resultados experimentales de dicha variable. También se
puede definir la entropía de una variable aleatoria X de la otra Y
c o m o : H ( X / Y ) = ∑ Px , y ( s, t ) log Px / y ( s / t ) = ∑ H ( X / Y = t ) Py (t ) .
t ,s t

Esta se puede interpretar como incertidumbre que queda sobre la


variable X uno desconocía la variable Y(los conceptos relativos a la
medida de la información y la entropía de una variable, entre otros,
serán explicados en forma más amplia en el segundo capítulo).
9
Este concepto es muy útil en la criptografía tal y como queda de
manifiesto en las siguientes definiciones de equivocación que se
comete cuando se asigna un texto inicial o bien una clave a un
texto cifrado interceptado. Se considera una variable aleatoria K
independiente de la fuente del texto original S y que toma valores
en el espacio de claves.

Definición 16. La equivocación de clave dado un texto cifrado es


la entropía condicional H(K/Y) y mide la incertidumbre que existe
con respecto a clave utilizada una vez conocido un criptograma.

Definición 17. La equivocación del texto original dado un texto


cifrado es la entropía condicional H(X/Y) y mide la incertidumbre
que hay con respecto a mensaje original una vez interceptado un
criptograma.

Definición 18. La razón absoluta del lenguaje R se define como


el número máximo de bits de información que puede ser
codificados en cada carácter suponiendo que toda la secuencia de
caracteres son equiprobables. Así si el lenguaje usa m caracteres,
d i c h a c a n t i d a d v i e n e d a d a p o r R = log 2 m .

Ejemplo3:

la razón absoluta del castellano viene dada por

Rcastellano = log 2 m = log 2 (27) = 4,75(bits / letra )

Definición 19. Se define la razón del lenguaje para n- palabras


como r=H(X)/n este número mide el número medio de bits de
información por carácter.

Como las letras que aparecen en un texto no tienen igual


probabilidad, su frecuencia de aparición es distinta, los lenguajes
está muy estructurados, hay bloques de dos palabras (digramas)
característicos, trigramas, poligramas, etc., y se calcula que oscila
entre 1,2<r<1,5 a este intervalo de valores se llega codificando los
mensajes con monogramas, digramas, trigramas, etc., según el
estudio hecho por Shannon.

10
Ejemplo4: (la razón del lenguaje)

Un sub-alfabeto del castellano módulo 27 consta de 5 caracteres:


A, E, O, S, y T, todos ellos equiprobables. Podemos aceptarlo
como representativo del lenguaje.

Pregunta: ¿Cuántos mensaje de longitud 4 existen y cuántos con


sentido?

Solución:

R = log 2 (5) = 2, 3219 . E n t o n c e s e x i s t i r á n 2 R*4 = 22,3219*4 = 625 = 54 m e n s a j e s


y como 1,2<r<1,5 se puede deducir que existirán x mensajes con
s e n t i d o d e l o n g i t u d 4 c o m p r e n d i d o s e n t r e : 21,2*4 < x < 21,5*4 e s d e c i r
27<x<64.

Buscando en un diccionario encontramos las 45 palabras con


sentido que se indican, y que casualmente es el valor medio
(27 + 64)/2 = 45:

aeta, asas, asea, asee, aseo, ases, asta, atea, atas, ates, ateo, atoa,
atoe, atoo, osas, oses, osos, oste, otea, otee, oteo, easo, esas, eses,
esos, esta, este esto, etas, tasa, tase, taso, teas, tesa, tese, teso,
teta, seas, seso, seta, seto, sosa, sota, sote, soto.

Definición 20. La redundancia de un lenguaje se define mediante


la diferencia D=R-r dada esta definición el conjunto todos los
p o s i b l e s m e n s a j e s , q u e t i e n e c a r d i n a l 2 Rn , s e p u e d e d i v i d i r e n u n
c o n j u n t o d e 2 rn m e n s a j e c o n s i g n i f i c a d o y u n c o n j u n t o d e 2 Rn − 2rn
mensajes sin significado.

Se ha calculado que 3,25<D<3,55 lo cual significa que el


número de bits extras (bits redundantes) necesarios para codificar
un mensaje suponiendo un alfabeto de 27 caracteres (codificación
c o n 5 b i t s p u e s t o q u e 25 = 32 y 24 = 16 ) s e r á a p r o x i m a d a m e n t e i g u a l
a 3,5.

11
D e f i n i c i ó n 2 1 . U n c i f r a d o a l e a to r i o c o n s i s t e e n u n g r u p o d e
sistemas criptográficos con una distribución de probabilidad. Es
decir un cifrado aleatorio es aquel para el cual, para cada clave K y
para cada criptograma Y, el descifrado es una variable aleatoria
independiente y distribuida uniformemente sobre el conjunto de los
2 rn m e n s a j e s c o n s i g n i f i c a d o .

Suponiendo la equiprobabilidad se puede mostrar la equivalencia


entre la anterior definición de distancia de unicidad y la noción de
distancia unicidad de un cifrado aleatorio como la menor cantidad
d e c r i p t o g r a m a t a l q u e K .2− D v a l e 1 . E x i s t e u n a r e l a c i ó n m u y
estrecha entre la distancia unicidad de un sistema y la redundancia
de la fuente utilizada. Cuando la fuente presenta redundancia la
razón entre el número de n-palabras decrece a medida que n crece.
Por lo tanto, para algún valor finito de n esa razón es lo bastante
p e q u e ñ a c o m o p a r a q u e K .2− Dn s e a i g u a l a 1 . D i c h o v a l o r
proporciona la distancia de unicidad n=H(K)/D.

Demostracion:

A medida que se tenga un criptograma más largo, y por tanto


más información, se supone que la tarea de ataque del
criptoanalista se va facilitando.

Se busca el tamaño N de criptograma que permita esperar que la


solución de K sea única. Suponiendo un cifrador aleatorio,
llegamos al modelo siguiente:

Parámetros del modelo aleatorio:

1 ) E x i s t i r á n 2 R* N m e n s a j e s p o s i b l e s d e l o n g i t u d N .

2 ) E x i s t i r á n 2r * N m e n s a j e s p o s i b l e s d e l o n g i t u d N . c o n s e n t i d o

3) El espacio de mensajes de longitud N se dividirá en:

3 . 1 ) E s p a c i o d e l o s m e n s a j e s c o n s e n t i d o : M CS = 2 r*N

3 . 2 ) E s p a c i o d e l o s m e n s a j e s s i n s e n t i d o : M SS = 2 R*N − 2r* N

4 ) L o s 2r * N m e n s a j e s c o n s e n t i d o s e r á n e q u i p r o b a b l e s s i e n d o s u
1
v a l o r p ( M CS ) = r *N = 2 − r *N .
2

12
5 ) E l r e s t o d e m e n s a j e s ( 2 R * N − 2r * N ) c o r r e s p o n d i e n t e s a a q u e l l o s s i n
s e n t i d o t e n d r á n u n a p r o b a b i l i d a d n u l a . p ( M SS ) = 0 , y a q u e n u n c a
serán generados.

6 ) E x i s t i r á n 2H ( K ) c l a v e s e q u i p r o b a b l e s ( E n d o n d e H ( K ) e s l a
entropía de la clave).

7 ) p( K ) = 1 / 2 H ( K ) = 2− H ( K ) C o n e s t a s c l a v e s s e c i f r a r á n t o d o s l o s
m e n s a j e s c o n s e n t i d o d a n d o l u g a r a 2 R* N t e x t o s c i f r a d o s p o s i b l e s d e
longitud N.

A diferencia de los mensajes, como es lógico los criptogramas


obtenidos serán todos equiprobables.

Para cada solución correcta de un texto M cifrado con una clave


K d e l e s p a c i o 2H ( K ) e x i s t i r á n o t r a s ( 2H ( K ) − 1) c l a v e s c o n l a m i s m a
probabilidad de entregar una solución falta SF.

Sea q la probabilidad de obtener un mensaje con sentido:

q = 2 r*N / 2 R*N = 2( r − R )* N = 2− D* N

SF = (2 H ( K ) − 1) * q = (2 H ( K ) − 1) * 2− D*N = 2 H ( K ) − D*N − 2− D*N

⇒ SF ≈ 2 H ( K )− D*N ⇒ log 2 SF = H ( K ) − D * N

La solución SF = 0 es imposible porque sólo se llega a ella de


forma asintótica con un valor de N infinito.

S e acepta entonces que haya como m áxim o una s ola soluci ón


falsa, de ahí su nombre de unicidad, luego:

SF = 2 H ( K ) − D * N

S i h a c e m o s SF = 1 ⇒ H ( K ) − D * N = 0 ⇒ N = H ( K ) / D .

Lqqd.

El valor N s erá el núm ero m íni mo de b yt es o caract eres que


deberá tener el criptograma C para intentar un ataque por
estadísticas del lenguaje. Por lo general el valor real necesario de
N será unas 10 veces superior.

13
Definición 22. Se define la distancia de unicidad como la
menor longitud de criptograma tal que equivocación de clave dado
un texto cifrado H(K/Y) , se acerca a 0. Es decir la distancia de
unicidad representa en muchos casos la cantidad de texto que hay
que interceptar para que no haya incertidumbre sobre la clave
utilizada.

Ejemplo 5 (Calculo de Distancia de Unicidad)

Supongamos que vamos a utilizar un alfabeto de n caracteres como


un espacio de claves k por lo cual tendremos n! claves posibles y
teniendo en cuenta que según la fórmula de Stirling:

n n
n n
n ! ≈ 2π n   ≈  
e e

Entonces la entropía del espacio de claves k seria:

n
n n
H (k ) = log 2 (n !) ≈ log 2   = n log 2  
e e

Por lo que la distancia de unicidad seria:

n
n log 2  
N=
H (K )
≈ e
D D

Aplicando esta fórmula al caso especifico del castellano en la cual


n=27y D=3,4 tenemos que:

 27 
27 *log 2  
N≈  2, 72  ≈ 27, 4
3, 4

Es decir que se necesitarían obtener 27,4 caracteres del


criptograma codificado como mínimo para intentar descifrar un
mensaje encriptado con estas características.

En el capitulo siguiente se hará un uso más práctico de varios de


los conceptos aquí señalados a los fines de mantener la
coherencia en la secuencia lógica del desarrollo del este trabajo,
es por ello que se difiere la ejemplificación practica de dichos
conceptos hasta el capítulo II.

14
Capitulo 2

Aspectos Matemáticos de la Criptografía


2.1 TEORIA DE LA INFORMACION

A partir del aumento de la capacidad técnica así como de la


acelerada difusión y especialización que experimentan los medios
de comunicación durante la primera mitad del siglo XX, surge el
primer modelo científico del proceso de comunicación conocido
como la Teoría de la Información o Teoría Matemática de la
Comunicación. Este modelo, se desarrolla en el área de la
telegrafía donde surge la necesidad de determinar, con precisión,
la capacidad de los diferentes sistemas de comunicación para
transmitir información.

La prim era formul ación de l as l e ye s m at em át icas que gobi ernan


dicho sistema fue realizada por Hartley (1928) y sus ideas son
consideradas actualmente como el origen de la Teoría de la
Información .En los años siguientes, Shannon y Weaver (1949)
desarrollaron los principios definitivos de esta teoría. Su trabajo
estuvo enfocado en algunos de los siguientes problemas que se
originan en los sistemas diseñados para manipular información:
cómo hallar los mejores métodos para utilizar los diversos sistemas
de comunicación; cómo establecer el mejor método para separar las
señales del ruido y cómo determinar los límites posibles de un
canal.

Es importante destacar que la Teoría de la Información se


desarrolla como una solución a los problemas técnicos del proceso
de comunicación, sin embargo sus principios puedan aplicarse en
otros contextos.

En general, la Teoría de la Información trata acerca de la


cantidad de información que se transmite de la fuente al receptor
al enviar un determinado mensaje, sin tomar en consideración el
significado o propósito de dicho mensaje.

15
2 .1 .1 CONCEPT OS BASICOS

A continuación estableceremos una serie de conceptos que nos


serán útiles a lo largo del desarrollo práctico del presente trabajo:

Definición 23. Una Señal es la Manifestación física (en forma de


onda sonora, onda electromagnética, lenguaje escrito etc.)capaz de
propagarse por un medio dado .

Definición 24. Se denomina Mensaje a la Señal que corresponde


a una realización particular del conjunto de señales dadas.

D e f i n i c i ó n 2 5 . l a Fu e n t e S e l e c c i o n a e l m e n s a j e d e s e a d o d e u n
conjunto de mensajes posibles.

D e f i n i c i ó n 2 6 . S e l l a ma Ob s e r v a d o r : a l d e s t i n a t a r i o f i n a l d e l
mensaje.

Definición 27. El Canal es definido como la Totalidad de los


medios destinados a la transmisión de la señal.

Definición 28. S e d e n o mi n a M o d u l a c i ó n a l a T r a n s f o r m a c i ó n
de un mensaje en una señal, con la finalidad de facilitar y
aumentar la eficacia de la transmisión y reducir los errores de la
misma.

Definición 29. La Demulación es la operación inversa de la


modulación.

Definición 30. La Codificación consiste: Transformación de un


mensaje en una señal, cuyo principal objetivo es aumentar la
eficacia de la transmisión.

Definición 31. La Decodificación es la Transformación inversa


de la codificación

16
Definición 32. La Perturbación: Señal que modifica una señal
aleatoria útil, disminuyendo la cantidad de información que
circula por ella.

Ejemplo 1

Un ejemplo práctico que permitirá aclarar los conceptos


mencionados podría ser la comunicación vía teléfonos inalámbricos
entre 2 personas en la cual la persona que llama (fuente) emite las
ondas sonoras(codificación) las cuales mediante la circuitería
interna se transforman en ondas hertzianas (modulación) dichas
ondas viajan atraes del aire (canal) hacia el receptor
(observador)en donde se produce el proceso inverso a la
modulación (demulacion) para volverse nuevamente en ondas
sonoras en donde el receptor interpreta (decodifica) por medio de
un conjunto de reglas previamente establecidas y convenidas por
las partes actuantes (alfabeto).

La Teoría de la Información, conceptualiza el término


información como el grado de libertad de una fuente para elegir un
mensaje de un conjunto de posibles mensajes

2 .1 .2 M E DICION DE L A CANT IDAD DE


INFORMACION .

El concepto de información supone la existencia de duda o


incertidumbre. La incertidumbre implica que existen diferentes
alternativas que deberán ser elegidas, seleccionadas o
discriminadas.

Al medir cuánta información proporciona la fuente al receptor al


enviar un mensaje, se parte del supuesto que cada elección está
asociada a cierta probabilidad, siendo algunos mensajes más
probables que otros. Uno de los objetivos de esta teoría es
determinar la cantidad de información que proporciona un mensaje,
la cual puede ser calculada a partir de su probabilidad de ser
enviada.

El tipo de elección más simple es el que existe entre dos


posibilidades, en que cada una tiene una probabilidad de 1/2 (0,5).
Por ejemplo, al tirar una moneda al aire ambas posibilidades -cara
y sello- tienen la misma probabilidad de salir.

17
A efectos de clarificar estos conceptos pongamos un ejemplo
práctico, definamos las siguientes variables:

Ia = c a n t i d a d d e i n c e r t i d u m b r e a n t e s d e c o n o c e r u n m e n s a j e
Id = c a n t i d a d d e i n c e r t i d u m b r e d e s p u é s d e c o n o c e r e l m e n s a j e
I
ci = g r a d o d e i n c e r t i d u m b r e , ci = log a
Id

Ejemplo 2:

Supongamos que tenemos 3 letras A, B, C y de cada una hay de 2


colores negro y rojo (es decir 6 en total) y hagamos un cuadro
esquemático con todas las combinaciones posibles (tomadas de 3 en
3 sin repetir letras)

1 A B C
2 A B C
3 A B C
4 A B C
5 A B C
6 A B C
7 A B C
8 A B C
:

Como podemos observar tenemos 8 combinaciones posibles todas


igualmente probables de ser elegidas (esto define que la
incertidumbre inicial es igual a 8).

Ahora supongamos que escogemos una combinación y otra


persona debe deducir cual es la combinación correcta (la número 3
en este caso en particular), por lo cual hace algunas preguntas (es
decir obtiene información)

las letras son todas del mismo color? Respuesta: no


Esta información reduce los casos posibles de 8 a 6 ya que se
eliminan los casos 1 y 8.

8
ci1 = log( ) = log8 − log 6
6

18
La letra A es roja? Respuesta: no
Esta información elimina los casos 5 , 6 y 7.

6
ci 2 = log( ) = log 6 − log 3
3

Hay 2 letras consecutivas negras? Respuesta: no


Se elimina el caso 2.

3
ci 2 = log( ) = log 3 − log 2
2

la letra C es roja? Respuesta: no


Se elimina el caso 4 y se elimina la indeterminación

2
ci 4 = log( ) = log 2 − log1
1

Todas las magnitudes se pueden sumar como:

c = ci1 + ci 2 + ci 3 + ci 4 = log8 − log1 = log8

S e a n Ia = c a n t i d a d d e i n c e r t i d u m b r e a n t e s d e c o n o c e r u n m e n s a j e ,
Id = c a n t i d a d de incertidumbre final (después de conocer el
mensaje)

Ia
ci = log( ) = log( I a ) − log( I d ) .
Id

La cantidad de información tiene como unidad de medida la de


un fenómeno de solo 2 estados (es decir es un fenómeno binario)
2
e n t o n c e s : ci = log b ( ) = log b 2 − log b 1 y c o m o log b 2 d e b e s e r i g u a l a 1
1
tenemos que la base b=2 y a esta unidad de información se le
denomina bit (binari digit).

8
P o r l o t a n t o e n e l e j e m p l o a n t e r i o r ci = log 2 ( ) = 3 e s d e c i r q u e l a
1
indeterminación puede ser resuelta en solo 3 pasos (y no en 4 como
lo hicimos originalmente) eliminando el 50% de las posibles caso
en cada proceso de obtener información.

19
Preguntas:

1) Esta la combinación entre los casos 1 al 4? Respuesta: si


(se eliminan los casos del 5 al 8)

2) Está entre los casos 1y 2? Respuesta: no


(se eliminan estos casos)

3) Es el caso 4? Respuesta: no y esto define que el caso elegido es


el 3 eliminando así la incertidumbre.

Definición 33. Por lo tanto se define la cantidad de


información como un suceso A que puede presentarse con una
probabilidad p(A) y que cuando dicho suceso tiene lugar se
1
p r o d u c e u n a c a n t i d a d d e i n f o r m a c i ó n I ( A) = log( ).
p ( A)

Esta variable se mide en: Bit (base 2), Dit (base 10) , Nit (base n).
(Es importante distinguir entre bit como unidad de información y
los símbolos 0 y 1 que representan las señales binarias. Estos
símbolos se suelen llamar impropiamente bits, pero pueden
contener o no un bit de información. Para distinguir, a los símbolos
0 y 1 se les denominan binits).

2 .1 .3 E NT ROPIA

Para una variable aleatoria X ¿Cuánta información encierra la


expresión X=x?, parece lógico suponer que cuanto mayor sea la
posibilidad de que X=x mas informativo sera el mensaje. Por
ejemplo supongamos que X representa la suma de dos dados
lanzados entonces hay más información en decir X=12 que en decir
1
X=7 (ya que en el prim er cas o l a probabil idad es y en el
36
1
segundo caso es es decir, hay un solo caso posible cuando X=12
6
y hay 6 casos posibles cuando X=7) por lo tanto hay más
incertidumbre (casos posibles) en el segundo caso que en el
primero.

20
D e n o t e m o s I ( p) c o m o l a c a n t i d a d d e i n f o r m a c i ó n c o n t e n i d a e n e l
m ens aj e que nos dice que ha ocurri do un evento, cuya probabili dad
e s p ; p a r a d e t e r m i n a r l a e c u a c i ó n d e I ( p) , s e a n X e Y v a r i a b l e s
aleatorias independientes y supongamos q u e P { X = x} = p y que
P {Y = y} = q ¿ C u á n t a i n f o r m a c i ó n c o n t i e n e e l m e n s a j e X = x e Y = y ?
para contestar esa pregunta se debe observar primero que la
c a n t i d a d d e i n f o r m a c i ó n e n l a f r a s e X e s i g u a l a x e s I ( p) . C o m o e l
conocimiento de que X es igual a x no afecta la posibilidad de que
Y sea igual a y (puesto que X e Y son independientes) entonces
tenemos que la cantidad de informaciones la frase Y es igual a y es
i g u a l a I (q) . E n t o n c e s l a c a n t i d a d d e i n f o r m a c i ó n c o n t e n i d a e n e l
m e n s a j e X = x e Y = y e s I ( p) + I (q) s i n e m b a r g o , t e n e m o s q u e :

P { X = x, Y = y} = P { X = x} P {Y = y} = pq

Lo cual implica que la cantidad de información contenida en el


m e n s a j e X = x e Y = y e s I ( pq ) , p o r l o t a n t o t e n e m o s :

I ( pq ) = I ( p ) + I (q )

Y s i d e f i n i m o s u n a f u n c i ó n G ( p ) = I (2− p ) .

(El hecho de que en la formula este presente el número 2 es para


contrarrestar el carácter exponencial de los estados posibles y
hacer más fáciles los cálculos, pero es igualmente valido cualquier
ot ra num ero, ya que s ol o cam bi ari a por una cons t ant e, recordando
log b X
l a f o r m u l a log a X = ).
log b a

De lo anteriormente expuesto tenemos que:

G ( p + q ) = I (2− ( p + q ) ) ⇒ G ( p + q ) = I (2− p 2 − q )

G ( p + q ) = I (2 − p ) + I (2− q ) ⇒ G ( p + q ) = G ( p ) + G (q )

Se puede demostrar que las que las funciones G que satisfacen las
relaciones funcionales anteriores tienen la forma:

21
G ( p ) = cp

Para alguna constante c, por lo que tenemos que:

I (2 − p ) = cp

Y c o n s i d e r a n d o q u e q = 2− p r e s u l t a :

I (q ) = −c log 2 (q )

Para alguna constante c. Es tradicional tomar c=1.

Consideremos ahora una variable aleatoria X, que toma uno de


l o s v a l o r e s x1 , x2 ,...xn c o n p r o b a b i l i d a d e s r e s p e c t i v a s p1 , p2 ,... pn . C o m o
− log( pi ) r e p r e s e n t a l a i n f o r m a c i ó n e n c e r r a d a e n l m e n s a j e X = xi , l a
cantidad esperada de información que será proporcionada cuando
se asigne un valor a X está dada por:

n
H ( X ) = −∑ pi log 2 ( pi )
i =1

Por todo lo anteriormente expuesto podemos decir que:

Definición 34. La Entropía de un mensaje, que se representa


por H(X), es el valor medio ponderado de la cantidad de
información de los diversos estados posibles del mensaje.

Es decir representa una sumatoria de los casos posibles que


generan incertidumbre a la hora de hacer una elección.

También puede definirse como una medida de la incertidumbre


media acerca de una variable aleatoria y del número de bits de
información contenidos en dicho mensaje.

22
E j e mp l o 3 : C ÁL C UL O DE E NT RO PI A

Caso 1

Si tenemos 1 bola negra (N) y 1 bola blanca (B) tenemos:

 1
 N → p ( x1 ) = 2  ⇒ ( ) = −  1 log ( 1 ) + 1 log ( 1 )  = 1
  H x1 2 2 2 2 2 2  Bits
 B → p( x ) = 1  
 2 
2

Caso 2

Si tenemos 9 bolas negras (N) y 1 bola blanca (B) tenemos:

 9
 N → p ( x1 ) = 10  1 1 9 9 
  ⇒ H ( x1 ) = −  log 2 ( ) + log 2 ( )  = 0, 67 Bits
 B → p( x ) = 1  10 10 10 10 
 10 
2

Caso 3

Si tenemos 99 bolas negras (N) y 1 bola blanca (B) tenemos:

 99 
 N → p ( x1 ) = 100   99 99 1 1 
  ⇒ H ( x1 ) = −  log 2 ( )+ log 2 ( ) = 0, 08 Bits
 B → p( x ) = 1  100 100 100 100 
 100 
2

Se puede observar que el primer caso es más incierto que el


segundo y este a su vez mas incierto que el tercero (en donde casi
hay la certeza de obtener una bola negra) de donde podemos
deducir que la entropía aumenta cuando aumenta la incertidumbre.

23
E j e mp l o 4 E N T R O P I A C O N D I C I O N A L

Supongamos, por ejemplo, que tenemos 125 animales (entre


mulas y caballos tanto jóvenes como viejos) distribuidos de la
siguiente manera:

jóvenes viejos totales


caballos 38 10 48
mulas 26 51 77
totales 64 61 125

Si preguntan cuál es la posibilidad de que un animal elegido sea


48
un caballo la respuesta es: p (c ) = = 0, 384 e n c a m b i o , s i s a b e m o s
125
que el animal seleccionado es viejo nos podemos valer de esta
condición para calcular la probabilidad de que sea un caballo.

10
p (c ) = = 0,163 .
(10 + 51)

En lenguaje matemático se expresa la posibilidad de que un


e v e n t o xi s u c e d a c o n d i c i o n a d o a q u e s e d é o t r o s u c e s o y j d e l a
xi p ( xi , y j )
siguiente forma: p( )=
yj p( y j )

En donde:

xi
p( ) = Probabilidad de obtener xi c u a n d o h a o c u r r i d o y j
yj
yj
p( ) = P r o b a b i l i d a d d e o b t e n e r y j c u a n d o h a o c u r r i d o xi
xi
E s d e c i r , q u e l a p r o b a b i l i d a d q u e e x i s t e d e q u e s e t r a n s i t a xi y s e
x
r e c i b a y j e s : p( xi , y j ) = p( y j ) p( i ) ; q u e e s i g u a l a l a p r o b a b i l i d a d d e
yj
que se reciba yj por la probabilidad de que habiendo recibido yj se
h a l l a t r a n s m i t i d o xi .
24
2 . 1 . 3 . 1 P RO PI E D A D E S D E L A E NT RO PI A

TEOREMA 1 (ENTROPIA MAXIMA):

La entropía es máxima cuando todos los mensajes tienen la


misma probabilidad de ocurrencia.

Demostración:

Sea

1
p ( x1 ) = p ( x2 ) = .... = p ( xn ) ⇒ p ( xi ) = ⇒
n
H [ X ] = − p ( x1 ) log ( p ( x1 ) ) − p ( x2 ) log ( p ( x2 ) ) .... − p ( xn ) log ( p ( xn ) ) ⇒
H [ X ] = − p ( x1 ) log ( p ( x1 ) ) − p ( x1 ) log ( p ( x1 ) ) .... − p ( x1 ) log ( p ( x1 ) ) ⇒
1   1 
H [ X ] = − np ( x1 ) log ( p ( x1 ) ) ⇒ H [ X ] = − n   log  p    ⇒
n   n 

H [ X ]Max = Log (n)

Lqqd.

Para cualquier otra distribución de probabilidades, en los


cuales todos los valores de las probabilidades sean iguales, la
entropía es menor.

Para probar este teorema haremos uso de la llamada desigualdad de


j e s s e n l a c u a l e s t a b l e c e q u e : Ln( x) ≤ x − 1 .

pi′  p′  p′
En este caso definimos x = ⇒ Ln  i  ≤ i − 1 c u m p l i é n d o s e l a
pi  pi  pi
 

25
i g u a l d a d e n e l c a s o q u e pi′ = pi , m u l t i p l i c a n d o l o s d o s m i e m b r o s
d e l a d e s i g u a l d a d p o r pi y s u m a n d o p a r a t o d a s l a s i t e n e m o s q u e :

 p′  (
pi pi′ − pi )  p′ 
∑ i  pi  ≤ ∑ pi′ − ∑ pi ⇒
∑ pi Ln  p  ≤ ∑ p
i
⇒ p Ln
  i i  i 

 p′ 
∑ p Ln  p i
 ≤ 0 ⇒ ∑ pi Ln( pi′ ) − ∑ pi Ln( pi ) ≤ 0 ⇒
i

 i 

∑ p Ln( p ′ ) ≤ ∑ p Ln( p )
i i i i

En general

∑ p log p ′ ≤ ∑ p log p
i i i i

1
L a i g u a l d a d s e c u m p l e s i pi′ = pi ; s i pi′ =
, o sea que todos los
n
procesos son igualmente probables tenemos entonces que:

1 1
∑ p log  n  ≤ ∑ p log( p ) ⇒ log  n  ∑ p ≤ ∑ p log( p ) ⇒
i i i i i i

1 1
− log   ∑ pi ≥ −∑ pi log( pi ) ⇒ H [ X ] ≤ − log  
n n

⇒ H [ X ] ≤ log(n)

p e r o H [ X ]Max = log(n) ⇒ H [ X ] ≤ H [ X ]Max

TEOREMA 2 (PROPIEDAD ADITIVA)

Debe cumplirse que:

H [ XY ] = −∑∑ p ( xi y j ) log( p ( xi y j ))

H [ XY ] = H [ X ] + H [Y ]
26
Demostración:

Sean 2 fuentes X e Y de alfabetos

X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]

y sus probabilidades asociadas

p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]

Consideremos la fuente compuesta:

XY = [ x1 y1 , x2 y2 ,....xn ym ]
p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]

Donde si los procesos son estocasticamente independientes la


o c u r r e n c i a d e xi n o a l t e r a l a p r o b a b i l i d a d d e y j , e s d e c i r :

p ( xi y j ) = p ( xi ) p ( y j ) ⇒

H [ XY ] = −∑∑ p ( xi y j ) log( p ( xi y j )) = −∑∑ p ( xi ) p ( y j ) log  p ( xi ) p ( y j ) 

H [ XY ] = −∑∑ p ( xi ) p( y j ) log( p( xi )) − ∑∑ p( xi ) p( y j ) log( p( y j )) ⇒

H [ XY ] = −∑ p( y j )∑ p( xi ) log( p( xi )) − ∑ p( xi )∑ p( y j ) log( p( y j )) ⇒

H [ XY ] = −∑ p( xi ) log( p( xi )) − ∑ p( y j ) log( p ( y j )) ⇒

H [ XY ] = H [ X ] + H [Y ]

Lqqd.

Cuando los mensajes de la fuente son independientes la entropía


de la fuente compuesta es igual a la suma de las entropías de cada
una de las fuentes.
27
TEOREMA 3 (ENTROPIA CONDICIONAL)

La entropía H [X /Y] se llama ambigüedad o equivoco porque nos


da la medida de la incertidumbre sobre el campo de entrada,
cuando se conoce la salida.

L a e n t r o p í a H [Y / X ] s e l l a m a e r r o r m e d i o p o r q u e n o s d a l a m e d i d a
de la incertidumbre sobre el campo de salida cuando se conocen
los símbolos de entrada.

Y debe cumplirse que:

H [ X / Y ] = −∑∑ p ( xi y j ) log ( p ( xi / y j ) )

Así como:

H [Y / X ] = −∑∑ p ( xi y j ) log ( p ( y j / xi ) )

Demostración:

Sean 2 fuentes X e Y de alfabetos

X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]

y sus probabilidades asociadas

p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]

Consideremos la fuente compuesta:

XY = [ x1 y1 , x2 y2 ,....xn ym ]
De probabilidades

p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]

28
Donde si los procesos xi e yj no son estocasticamente
i n d e p e n d i e n t e s e x i s t e u n e n l a c e e s t o c a s t i c o e n t r e xi e y j q u e e s t a
dado por las probabilidades condicionales:

p ( xi , y j )
p ( xi / y j ) =
p( yj )

E s d e c i r q u e l a p r o b a b i l i d a d q u e e x i s t e d e q u e s e t r a n s m i t a xi y s e
x
r e c i b a y j e s : p( xi , y j ) = p( y j ) p( i ) ; q u e e s i g u a l a l a p r o b a b i l i d a d d e
yj
que se reciba yj por la probabilidad de que habiendo recibido yj se
h a l l a t r a n s m i t i d o xi .

Si los acontecimientos a la salida son conocidos existe una cierta


incertidumbre sobre los acontecimientos a la entrada.

El valor medio de esta incertidumbre es lo que se llama la


entropía de la fuente X condicionada por la fuente Y, es decir
H [X /Y] .

Si yj es el símbolo que ha aparecido a la salida de la fuente,


existe una cierta incertidumbre sobre el símbolo emitido que
p u e d e s e r x1 , x2 ,...., xi .

El valor medio de esta incertidumbre sobre los símbolos de


entrada cuando se conoce la salida yj es el valor de la entropía
c o n d i c i o n a l  X / y j  q u e s e g ú n l a d e f i n i c i ó n d e e n t r o p í a v a l d r á :

H  X / y j  = −∑ p ( xi / y j ) log( p ( xi / y j )

El valor medio de esta entropía para todos los posibles valores yj


es:

29
H [ X / Y ] = −∑ p ( y j ) log( H  X / y j 

H [ X / Y ] = −∑∑ p( y j ) p( xi / y j ) log( p( xi / y j ))

P e r o p ( y j ) p ( xi / y j ) = p ( xi , y j ) e n t o n c e s l a e c u a c i ó n a n t e r i o r q u e d a :

H [ X / Y ] = −∑∑ p( xi , y j ) log( p( xi / y j ))

Lqqd.

De la misma forma obtenemos que:

H [Y / X ] = −∑∑ p( xi , y j ) log( p( y j / xi ))

TEOREMA 4 (LEY DE LAS ENTROPIAS TOTALES)

Debe cumplirse que:

H [ XY ] = H [ X ] + H [Y / X ]

Demostración:

Si tenemos la fuente compuesta:

XY = [ x1 y1 , x2 y2 ,....xn ym ]

De probabilidades

p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]

La entropía de la fuente será:

H [ XY ] = −∑∑ p ( xi y j ) log( p ( xi y j )) = −∑∑ p ( xi ) p ( y j / xi ) log  p ( xi ) p ( y j / xi ) 

H [ XY ] = −∑∑ p( xi ) p( y j / xi ) log( xi ) − ∑∑ p ( xi ) p ( y j / xi ) log( p( y j / xi ))

30
Pero,

−∑∑ p ( xi ) p ( y j / xi ) log( xi ) = −∑ p( y j / xi )∑ p( xi ) log( p( xi )) = H [ X ]

Ya que: ∑ p( y j / xi ) = 1

En el segundo sumando de la ecuación tenemos:

−∑∑ p( xi ) p( y j / xi ) log( p( y j / xi )) = −∑∑ p( y j xi ) log( p( y j / xi )) = H [Y / X ]

S ust itu yendo est as ex presi ones fi nalment e t enemos que:

H [ XY ] = H [ X ] + H [Y / X ]

Lqqd.

Teorema 5 (OTRAS PROPIEDADES DE LA ENTROPIA)

La ent ropí a de una fuente X cuyo a l fabeto est á condi ci onado por
e l a l f a b e t o d e u n a f u e n t e Y s i e m p r e e s m e n o r o i g u a l (≤) q u e e l d e
una fuente X, alcanzándose la igualdad en el caso de que los
alfabetos de las fuentes sean independientes, es decir:

H [ X / Y ] ≤ H [ X ] o H [Y / X ] ≤ H [Y ]

La ent ropí a de una fuent e XY cu yo al fabet o s e obti ene com o l as


p o s i b l e s p a r e j a s d e s í m b o l o s d e l a s f u e n t e s X { xi } e Y { y j } e s
siempre menor o igual a la entropía de cada una de las fuentes por
separado:

H [ XY ] ≤ H [ X ] + H [Y ]

31
Demostración:

Sean 2 fuentes X e Y de alfabetos

X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]

y sus probabilidades asociadas

p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]

Consideremos la fuente compuesta:

XY = [ x1 y1 , x2 y2 ,....xn ym ]

De probabilidades

p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]

Igualmente sabemos que:

p ( xi ) = ∑ p ( xi y j )
j

p ( y j ) = ∑ p ( xi y j )
i

Entonces los valores de las entropías de las fuentes X e Y se


pueden escribir así:

H [ X ] = −∑ p( xi ) log( p( xi )) = −∑∑ p( y j xi ) log( p( xi ))

H [Y ] = −∑ p( y j ) log( p( y j )) = −∑∑ p( y j xi ) log( p( y j ))

32
Sumando ambas ecuaciones obtenemos que:

H [ X ] + H [Y ] = −∑∑ p ( y j xi ) log  p ( xi ) p ( y j ) 

Aplicando la desigualdad de jessen al caso de 2 variables

∑∑ p( y x ) log( p′( x y )) ≤ ∑∑ p( y x ) log( p( x y ))


j i i j j i i j

El segundo miembro de la desigualdad anterior es:

∑∑ p( y x ) log( p( x y )) = − H [ XY ]
j i i j

Pero
p′( xi y j ) = p ( xi ) p ( y j )

Ya que esta probabilidad se corresponde cuando los sucesos eran


estocasticamente independientes, entonces el primer miembro de
la desigualdad queda:

∑∑ p( y x ) log( p′( x y )) = ∑∑ p( y x ) log  p( x ) p( y ) 


j i i j j i i j

= ∑∑ p ( y j xi ) log( p ( xi )) + ∑∑ p ( y j xi ) log( p ( y j )) = −  H [ X ] + H [Y ]

S ust itu yendo en l a desi gual dad obt enem os que:

−  H [ X ] + H [Y ] ≤ − H [ XY ]

Cambiando el signo finalmente obtenemos

H [ XY ] ≤ H [ X ] + H [Y ]

Lqqd.

33
Teorema 6 (CANTIDAD DE INFORMACION DE SHANNON)

La obtención de información sobre el resultado de una


experiencia representa una disminución de la incertidumbre
(entropía) asociada a la misma. Dada 2 variables aleatorias X e Y
se llama cantidad de información de Shannon que la variable X
suministra sobre la variable Y a la diferencia

I ( X ,Y ) = H [ X ] − H [ X / Y ]

La información que una variable contiene sobre otra coincide


con la que esta contiene sobre la primera.

Demostración:

H [ XY ] = H [ X ] + H [Y / X ] = H [Y ] + H [ X / Y ] ⇒

H [ X ] − H [ X / Y ] = H [Y ] − H [Y / X ] ⇒

I ( X , Y ) = I (Y , X )

Lqqd.

La cantidad de información que una variable contiene sobre otra


es siempre positiva y es nula si existe independencia estocástica
entre ellas.

S a b e m o s q u e H [Y / X ] < H [Y ] ⇒ I ( X , Y ) = H [Y ] − H [Y / X ] > 0 , c u a n d o
existe independencia estocástica entre las variables

H [Y / X ] = H [Y ] ⇒ I ( X , Y ) = H [Y ] − H [Y ] = 0

La cantidad de información máxima que una variable contiene


sobre otra esta acotada por su entropía y coincide con la
información que la variable contiene sobre sí misma.

34
I ( X , Y ) = H [Y ] − H [Y / X ] < H [Y ]

P o r s e r H [Y / X ] > 0 y c o m o :

H [Y / Y ] = H [Y ] ⇒ I (Y , Y ) = H [Y ]

CANTIDAD DE INFORMACION (en base a la entropía)

Otra forma de expresar la información partiendo de las


propiedades de la entropía es de la siguiente manera:

I ( X , Y ) = H [Y ] − H [Y / X ] ⇒ I ( X , Y ) = H [ X ] + H [Y ] − H [ XY ]

Definicion 35. Codificador Optimo.

Un codificador óptimo es aquel en el cual se usan el menor


número de bits para codificar un mensaje X

Introduciendo el signo negativo dentro del logaritmo en la


expresión de la entropía nos quedaría:

n
1
H ( X ) = ∑ p ( x) log 2 ( )
i =1 p( x)

1
En donde la expresión log 2 ( ) representa el número necesario
p( x)
de bits de información para codificar un mensaje X en un
codificador optimo.

35
E j e mp l o 5

Para que dé un valor exacto, vamos a calcular el número de bits


óptimo de codificación para el mensaje M = LELAELLA de 8
caracteres.

Solución:

p(L) = 0,5; p(E) = 0,25; p(A) = 0,25; y obviamente ∑ p( L, E , A) = 1


1
Para codificar L necesitaremos log 2 ( ) = log 2 (2) = 1 b i t :
0, 5

1
Para codificar E necesitaremos log 2 ( ) = log 2 (4) = 2 b i t
0, 25

1
Para codificar A necesitaremos log 2 ( ) = log 2 (4) = 2 b i t
0, 25

Luego, si L se codifica como 0, E como 10 y A como 11, el


mensaje M se codificará como: 0 10 0 11 10 0 0 11, es decir se
transmiten 12 bits.

Si calcula la entropía de M obtendrá:

H(M) =0,5(1)+0,25(2)+0,25(2)=0,5+0,5+0,5= 1,5

Al mismo valor se llega con el concepto de número medio de bits:


para codificar un mensaje M de 8 elementos, hemos usado 12 bits.
Luego 12/8 = 1,5 bits por elemento.

36
2.2 TEORIA DE NUMEROS .

En vista de que los actuales sistemas criptográficos tienen su


base en algoritmos de tipo aritmético es fundamental hacer una
breve exposición de los principios fundamentales sobre la cual se
sustentas a los fines de poder comprender sus limitaciones y
alcance .Revisaremos resultados básicos de la teoría de números,
como el Teorema de Fermat (pequeño), descomposición en factores
primos, curvas, elípticas etc.

Definición 36. Concepto de Congruencia:

Sean 2 números enteros a y b : se dice que a es congruente con b


en el modulo n si y solo si n divide de forma exacta a la
d i f e r e n c i a ( a − b) .

L o c u a l s e e x p r e s a d e l a s i g u i e n t e f o r m a : a − b = kn ⇒ a ≡ b mod n

Ejemplo 6:

19 es congruent e con 1 modulo 6 ya que 19-1=18=k.6 es decir:

19 ≡ 1(mod 6)

2 . 2 . 1 P RO PI E DA D E S DE L A CO NG R UE N CI A E N Z

1) Propiedad Reflexiva.

a ≡ a mod n, ∀a ∈ Z

Aplicando la definición de congruencia tenemos:

a − a = k *n ⇒ 0 = k *n ⇒ k = o
Lqqd.

37
2) Propiedad Simétrica.

a ≡ b mod n ⇒ b ≡ a mod n, ∀a, b ∈ Z

Como n / ( a − b ) = k ⇒ − n / −( a − b) = k e n t o n c e s t e n e m o s q u e

− n / (b − a ) = k ⇒ b ≡ a mod n

Lqqd.

3) Propiedad Transitiva:

S i a ≡ b mod n y b ≡ c mod n ⇒ a ≡ c mod n, ∀a, b, c ∈ Z

Por la definición de congruencia tenemos que

n / ( a − b) y n / (b − c) ⇒ n / ((a − b) + (b − c)) ⇒ n / (a − c)

⇒ a ≡ c mod n

Lqqd.

Por todas las propiedades anteriores es que la noción de


congruenci a consti tu ye una rel ación de equi val enci a que
particiona Z en clases de equivalencias, n clases en total
correspondientes a los posibles restos que se obtienen al dividir
p o r n q u e e s l o q s e c o n o c e p o r (Zn ) .

Asimismo se definen las operaciones suma y multiplicación mod n


que presentan las siguientes propiedades:

4) Propiedad Asociativa:

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

5) Propiedad Conmutativa:

a + b mod n ≡ b + a mod n
a * b mod n ≡ b * a mod n

38
6) Propiedad Distributiva:

a *(b + c) mod n = ((a * b) + (a * c)) mod n

7) Existencia del elemento Identidad

a + 0 mod n = 0 + a mod n = a mod n = a


a *0 mod n = 0* a mod n = a mod n = a

8) Existencias de Inversos

a + (−a ) mod n = 0

a *(a −1 ) mod n = 1( sia ≠ 0)

Observación: El inverso multiplicativo solo existe si mcd(n,a)=1

9) Reducibilidad

(a + b) mod n = [ (a mod n) + (b mod) ] mod n


(a * b) mod n = [ (a mod n) *(b mod) ] mod n

Definición 37. Grupo

Un conjunto G no vacio con una ley de composición interna *,


decimos que es un grupo respecto a esa ley, si (G,*) verifica las
siguientes propiedades:

1) La ley de composición * es asociativa, es decir:

(x * y) * z =x * (y* z), cualquiera sean x, y, z ∈ G.

2) Existe un elemento neutro e ∈ G. es decir, existe e ∈ G tal


que:

e* x = x * e = x, para todo x ∈ G.

39
3) Para todo x ∈ G, existe elemento simétrico de X, es decir ,
e x i s t e x′ ∈ G t a l q u e :

x * x′ = x′ * x = e .

Si además de las propiedades 1,2 y 3 la ley de composición es


conmutativa se dice que el grupo G es conmutativo o abeliano.

Ejemplo 7

Supongamos que G consiste en los números reales -1 y 1con la


multiplicación entre números reales como operación (G,*) entonces
G es un grupo conmutativo abeliano.

Sea la tabla de multiplicación:

* 1 -1
1 1 -1
-1 -1 1

Aplicando las propiedades anteriores tenemos que:

1) (1*(-1))*(1)=1*((-1)*1)
2) 1*(-1)=(-1)*1
3) (-1)*(-1)=(-1)-(-1)
4) (-1)*1=1*(-1)

Al cumplir estas 4 propiedades se demuestra que (G,*) es un grupo


conmutativo abeliano.

Definición 38.Homomorfismo de Grupo

S e a n (G ,.) y (G ′, ) d o s g r u p o s . U n h o m o m o r f i s m o d e l g r u p o (G ,.) e n
e l g r u p o (G ′, ) e s u n a f u n c i ó n :
h : (G ,.) → (G ′, )
Tal que:
h( x1.x2 ) = h( x1 )  h( x2 )
Cualesquiera sean:

40
x1 , x2 ∈ G

En el campo de los enteros esta definición nos permitirá trabajar


con números muy grandes en vista de que:

(a1opa2 ) mod n = (a1 mod n)op (a2 mod n)

Siendo op. Un operador aritmético; tomemos un ejemplo numérico


a los fines de clarificar los conceptos expuestos:

Ejemplo 8

Supongamos que tenemos una calculadora la cual tiene una


capacidad máxima de 3 dígitos y q tenemos que realizar la
siguiente operación aritmética:

88*93mod13 = 8.184 mod13 = 7

Vemos que el resultado intermedio 8.184 tiene más de 3 dígitos


por lo que no se podría ejecutar en nuestra hipotética
calculadora, no obstante, si aplicamos el homomorfismo de la
congruencia tenemos que:

88*93mod13 = [ (88 mod13) *(93mod13)] mod13

10*2 mod13

20 mod13

Resultado = 7, se llega a lo mismo, pero con la ventaja que, en


este caso, ninguno de los resultados intermedios supero los 3
dígitos y por lo tanto se puede ejecutar con las limitaciones de
cálculo impuestas. Dicha propiedad será útil posteriormente.

41
Definición 39. (Conjunto Reducido de Resto (C.R.R)).

El conjunto reducido de resto, conocido como CRR de n, es el


s u b c o n j u n t o {1...ni ,...n − 1} d e r e s t o s c o n e l g r u p o n .

Si n es primo, todos los restos serán coprimos con él.

Como el cero no es una solución, entonces:

C R R = {1,..., ni ,...n − 1} / m c d (ni , n) = 1

E j e m p l o : C R R m o d 8 = {1,3,5, 7}
C R R m o d 5 = {1, 2,3, 4}

Una propiedad muy importante es que los restos reducidos


forman un grupo multiplicativo de Zn.

(Obs ervación: m cd s e refiere al m ayor núm ero ent ero que puede
dividir en forma exacta a 2 números dados)

En criptografía el conocimiento del CRR permitirá aplicar un


algoritmo para el cálculo del inverso multiplicativo de un numero x
d e n t r o d e u n c u e r p o n a t r a v é s d e l a f u n c i ó n Φ ( n) , d e n o m i n a d a
Función de Euler o Indicador de Euler.

Será importante en todo los sistemas simétricos que trabajan en


un modulo (con excepción de del DES q es un caso muy especial de
cifras no modular) y más aun en los sistemas asimétricos y en
part i cul ar RS A ya que l os cál cul os de cl aves públi ca y pri vadas
s e h a r á n d e n t r o d e l c u e r p o Φ ( n) . E n a m b o s c a s o s l a c i f r a s y l a s
claves estarán relacionadas con el CRR.

D e f i n i c i ó n 4 0 . F u n c i ó n d e E u l e r Φ ( n)

E l I n d i c a d o r o F u n c i ó n d e E u l e r Φ ( n) n o s e n t r e g a r a e l n ú m e r o d e
elementos del CRR.

Podremos representar cualquier número n de estas cuatros


formas:
42
-a) n es numero primo

k
-b) n se representa como n = p con p primo y k entero.

-c) n es el producto n = p*q con p y q primos.

-d) n es numero cualquiera, forma genérica

n = p1e1 * p2e 2 *...* ptet = ∏ti =1 piei

La función de Euler presenta varios casos particulares que


detallaremos a continuación:

A ) F u n c i ó n Φ ( n) d e E u l e r c u a n d o n = p

Caso 1: n es número primo

S i n e s p r i m o , Φ ( n) s e r á i g u a l a C R R m e n o s e l 0 .

Φ ( n) = n – 1 s e u s a r a e n s i s t e m a E L G A M A L

Si n es pri mo, entonces C RR = CRR – 1 ya que t odos l os restos de


n, excepto el cero, serán primos entre sí.

Ejemplo 9

C R R ( 7 ) = {1, 2, 3, 4, 5, 6} s e i s e l e m e n t o s

Φ (7)=n-1=7-1=6

Φ (11) = 11 − 1 = 10; Φ (23) = 23 − 1 = 22

B ) F u n c i ó n Φ( n) d e E u l e r c u a n d o n = p k

C a s o 2 : pk ( c o n p p r i m o y k u n e n t e r o )

Φ ( n ) = Φ ( p k ) = p k − p k −1 Φ ( p k ) = p k −1 ( p − 1)

43
D e l o s pk e l e m e n t o s d e l C R R , r e s t a r e m o s t o d o s l o s m ú l t i p l o s 1 * p ,
2 * p , 3 * p , … ( p k −1 − 1) * p y e l c e r o .

E j e m p l o C R R ( 1 6 ) = {1, 3, 5, 7, 9,11,13,15} o c h o e l e m e n t o s
( )
Φ (16 ) = Φ 24 = 24 −1 ( 2 − 1) = 23 *1 = 8

Φ (125 ) = Φ ( 5 ) = 5 ( 5 − 1) = 5
3 3−1 2
* 4 = 100

C ) F u n c i ó n Φ ( n) d e E u l e r c u a n d o n = p * q

Caso3: n=p*q (con p y q primos)

Φ ( n ) = Φ ( p * q ) = Φ ( p ) * Φ ( q ) = ( p − 1)( q − 1)

De los p*q elementos del CRR, restaremos todos los múltiplos de p


= 1 * p , … ( q − 1) * p , t o d o s l o s m ú l t i p l o s d e q = 1 * q , 2 * q , … y e l c e r o .

Φ ( p * q ) = ( q − 1) * ( p − 1)  = p * q − q − p + 1 = ( p − 1)( q − 1)

E j e mp l o d e Φ(n) c u a n d o n = p * q

Ejemplo 10:

C R R (15 ) = {1, 2,4,7,8,11,13,14} o c h o e l e m e n t o s

Φ (15 ) = Φ ( 3*5) = ( 3 − 1)( 5 − 1) = 2* 4 = 8

Φ (143) = Φ (11*13) = (11 − 1)(13 − 1) = 10* 2 = 120

Esta será una forma de las operaciones más utilizadas en


criptografía.

Es la base del sistema RSA que durante muchos años ha sido un


es tándar y, de hecho, conti núa s i éndol o en el 2005 al m enos a
nivel de uso empresarial.

44
Unos de sus usos más típicos lo encontraremos en las
comunicaciones seguras del entorno internet, tanto para el
intercambio de claves como en los formatos de certificados
digitales X.509 de firmas digitales.

D) Función Φ (n) de Euler para n genérico

C a s o 4 : n = p1el * p2 e 2 *...* pt et ( pi sonprimos )

Φ ( n ) = ∏ti =1 pi ei −1 ( pi − 1)

Ejemplo 11:

C R R ( 20 ) = {1, 3, 7, 9,11,13,17,19} o c h o e l e m e n t o s

Φ ( 20 ) = Φ ( 22 *5 ) = 22 −1 ( 2 − 1) *51−1 ( 5 − 1) = 21 *1*1* 4 = 8
Φ ( 320 ) = Φ ( 23 *32*5 ) = 23−1 ( 2 − 1) *32−1 ( 3 − 1) *51−1 ( 5 − 1) = 96

T e o r e ma 7 ( d e E u l e r . )

Si mcd (a, n) = 1 ⇒ a Φ ( n ) mod n ≡ 1

Demostración:

En vista de que a y n son primos entre si, a multiplicado por


cualquier elemento del conjunto reducido de restos modulo n
{r1...rΦ ( n) } t i e n e q u e s e r t a m b i é n p r i m o c o n n , p o r l o t a n t o e l c o n j u n t o
{ar ...ar } e s
1 Φ (n) igual a una permutación del conjunto anterior, por lo
tanto:

Φ (n)
Φ ( n)  Φ (n)
Φ ( n ) 
∏ ari ≡  ∏ ri  mod n ⇒ a ∏ ri ≡  ∏ ri  mod n ⇒ a Φ ( n ) ≡ 1mod n
Φ(n)

i =1  i =1  i =1  i =1 

Lqqd.

Este teorema es útil para calcular inversos multiplicativos como


veremos a continuación:

45
a * x mod n ≡ 1 y a
Φ(n)
mod n ≡ 1

aΦ(n) * a−1 mod n ≡ x mod n

x ≡ a Φ ( n ) −1 mod n

El valor x será el inverso de a en el cuerpo n.

Nota: observe que se ha dividido por a en el cálculo anterior.


Esto se puedo hacer porque mcd (a, n) =1 y por lo tanto hay un
único valor inverso en el cuerpo n que lo permite.

Ejemplo 12: cálculo de inversos con el Teorema de Euler.

¿Cuál es el inverso de 4 modulo 9? el inverso lo denotaremos por


inv(4,9) .

P r e g u n t a ¿ E x i s t e a * x mod n ≡ 4 * x mod 9 = 1 ? ; c o m o m c d ( 4 , 9 ) = 1 e s t o
implica que si aunque 4 y 9 no sean primos.

Φ(9) = 6 ⇒ x ≡ 46 −1 mod 9 = 7 ⇒ 7 * 4 ≡ 28mod 9 = 1

De donde resulta que: inv (4,9)=7 e inv (7,9)=4

T e o r e ma 8 ( E u l e r p a r a n = p * q )

Si el factor a es primo relativo con n y el valor n es el producto


de 2 primos, seguirá cumpliéndose el Teorema de Euler también en
dichos primos.

Por ejemplo:

Si n = p * q ⇒ Φ(n) = ( p − 1)(q − 1)

∀a / mcd {a, ( p, q )} = 1

46
Se cumple que:

a Φ ( n ) mod p = 1
a Φ ( n ) mod q = 1

En el capítulo dedicado a la cifra con clave publica RSA,


relacionaremos este tema con el teorema del resto chino.

Ejemplo 13: teorema de Euler para n =p*q

Sea n = p*q = 7*11 = 77

Φ (n) = ( p – 1 ) ( q - 1 ) = ( 7 – 1 ) ( 1 1 – 1 ) = 6 * 1 0 = 6 0

Si k =1, 2,3,…

Para a = k*7 a Φ( n ) mod n = k *760 mod 77 = 56

Para a =k*11 a Φ( n ) mod n = k *1160 mod 77 = 22

P a r a ∀a ≠ k *7, k *11 a Φ( n ) mod n = a 60 mod 77 = 1

Y se cumple también que:

P a r a ∀a ≠ k *7, k *11 a Φ ( n ) mod p = a 60 mod 7 = 1

a Φ ( n ) mod q = a 60 mod11 = 1

a Φ ( n ) mod p = 0

En caso contrario: a Φ ( n ) mod q = 0

47
T e o r e ma 9 ( Pe q u e ñ o t e o r e ma d e F e r ma t )

Si trabajamos en el cuerpo Zp donde p es primo tenemos:

mcd (a, p) =1 ; a Φ ( n ) mod p = 1

Demostración:

Consideremos el conjunto {a, 2a,3a...., ( p − 1)a} . N i n g ú n p a r d e


núm eros de est e conj unto s on congruent es m odul o p, ya que si
s u p o n e m o s q u e xa ≡ ya (mod p ) , c o n 1 ≤ x < y ≤ ( p − 1) e n t o n c e s c o m o
m c d ( a , p ) = 1 i m p l i c a r í a q u e x ≡ y (mod p ) l o c u a l e s f a l s o .
E n t o n c e s e s t o s n ú m e r o s s o n c o n g r u e n t e s a {1, 2,3......( p − 1)} e n a l g ú n
orden, en consecuencia, sus productos también son congruentes es
decir:

a.2a.3a...( p − 1)a ≡ 1.2.3...( p − 1) mod p


Luego

a p −1 ( p − 1)! ≡ ( p − 1)!mod p

Y c o m o e l m c d ( p , ( p - 1 ) ) = 1 t e n e m o s q u e ( e n e s t e c a s o Φ ( p ) = p −1 )
y por lo tanto:

a Φ( n ) mod p = 1

l.q.qd.

Tal cual se quería demostrar, ahora se procederá a describir como


obtener el inverso por medio de este teorema.Entonces a * x mod p
= 1 seria la ecuación que debe cumplir x por ser el inverso
multiplicativo de a y p igualmente debe cumplirse que
a Φ( n ) mod p = 1 .

A d e m á s , e n e s t e c a s o Φ ( p ) = p −1 p o r l o q u e i g u a l a n d o l a s d o s
ecuaciones de arriba tenemos:

48
a Φ ( p ) * a −1 mod p ≡ x mod p

x ≡ a p − 2 mod p

Luego x será e inverso de a en el primo p.

C u a n d o n o s e c o n o c e Φ (n) s e d e b e c a l c u l a r a m o d n c u a n d o l o s
i

valores de i y a son grandes, se hace tedioso pues hay que utilizar


la propiedades de la reducibilidad repetidas veces.

S i n o c o n o c e m o s Φ (n) o n o q u e r e m o s u s a r l o s t e o r e m a s d e E u l e r o
Fermat, siempre podremos encontrar el inverso de a en el cuerpo n
usando el algoritmo extendido de Euclides.

Es el método más rápido y practico.

2 . 2 . 2 A L G O RI T M O E X T E NDI D O D E E U CL I D E S AE E

S i m c d ( a , n ) = 1 y a * x mod n = 1 ⇒ x = inv(a, n)

Entonces podemos escribir:

n = C1 * a + r1 a > r1
a = C2 * r1 + r2 r1 > r2
r1 = C3 * r2 + r3 r2 > r3
….. …..
rn − 2 = Cn * rn −1 + 1 rn −1 > 1
rn −1 = Cn +1 *1 + 0

S i v o l v e m o s h a c i a a t r á s d e s d e rn − 2 = Cn * rn −1 + 1 , o b t e n e m o s e l
inverso de a en el cuerpo n. Estos valores se ordenan por restos
desde el valor 1hasta llegar a una expresión del tipo
(k1 * n + k2 * a ) mod n = 1 , e n d o n d e e l i n v e r s o d e a e n n l o d a r á e l
c o e f i c i e n t e k2 p u e s t o q u e k1 * n mod n = 0.

Estos datos se agrupan según la Tabla de restos del AEE.

C1 C2 C3 C4 … Cn −1 Cn Cn +1
n a r1 r2 r3 … rn − 2 rn −1 1

49
Ejemplo 14:

Encuentra el inv. (9,25) por el método de restos de Euclides.

25 = 2*9 +7
7=25 – 2*9
9 = 1*7+2
2=9 – 1*7
7 = 3*2+1
1=7 – 3*2
2 = 2*1+0

Resto

2 1 3 2
25 9 7 2 1 0

7=25 – 2*9

2=9-1*(25-2*9)=3*9-1*25

1=(25-2*9)-3*(3*9-1*25)

1=4*25-11*9 mod 25

El inv (9,25)=-11

-11+25=14

Inv(9,25)=14

50
2.2.2.1 Al g o r i t mo p a r a e l c á l c u l o d e i n v e r s o s

Para encontrar X = inv (A, B)

X= inv (A, B)
Hacer ( )
g o , g1 , uo , u1 v0 , v1i = ( B, A,1, 0, 0,1,1) X=inv (9,25)
M i e n t r a s gi ≠ 0 h a c e r
yi gi ui vi
H a c e r yi +1 = parteentera ( gi −1 / gi ) i
- 25 1 0
H a c e r gi +1 = g i −1 − yi +1* * g i
0
H a c e r ui +1 = ui −1 − yi +1 * ui - 9 0 1
H a c e r vi +1 = vi −1 − yi +1 * vi 1
Hacer i =i+1 2 7 1 -2
2
Si 1 2 -1 3
( vi−1 < 0 ) x = inv ( 9, 25) = −11 + 25 = 14 3
3 1 4 -11
H a c e r vi −1 = vi −1 + B 4
H a c e r x = vi −1 2 0 -9 25
5

Si mcd (a,n) ≠ 1no pueden existir inversos, pero si a * x mod n


= b con b ≠ 1 y mcd (a, n)=m, siendo m divisor de b, habrá m
soluciones validas.

Ejemplo 15:

6*xmod10=4 mcd (6,10)=2

No existe inv (6,10) pero… habrá 2 soluciones validas

x1 = 4 ⇒ 6 * 4 m o d 1 0 = 2 4 m o d 1 0 = 4

x2 = 9 ⇒ 6 * 9 m o d 1 0 = 5 4 m o d 1 0 = 4

51
T e o r e ma 1 0 ( d e l r e s t o c h i n o T RC )

Si n = d1 * d 2 * d 3 *...* d t c o n d1 = pi ei ( p p r i m o )

El sistema de ecuaciones:

x m o d di = xi ( i = 1, 2,3,...t )

T i e n e u n a s o l u c i ó n c o m ú n e n [ o, n − 1]

x = ∑ti =1 ( n / di ) * yi * xi mod n

C o n yi = inv ( n / d i ) , d i 

Demostración:

 n n
Para cada i mcd. di ,  = 1 . P o r l o t a n t o p a r a c a d a debe tener
 di  di
una inversa yi t a l q u e :

n
  yi ≡ 1mod di
 di 

También se cumple que:

n
  yi ≡ 0 mod d j , ∀j ≠ i
 di 

n
Ya que es múltiplo de cada dj
di

S e a x = ∑ti =1 ( n / di ) * yi * xi mod n

Entonces es una solución a:

x m o d di = xi ( i = 1, 2,3,...t )

Ya que:

52
n n
x=∑ yk xk + yi xi = 0 + 1* xi ≡ xi mod di
k ≠i dk di

Lqqd.

Ejemplo 16: aplicación del TRC

Encontrar x de forma que: 12*x mod3.960=36

Tenemos la ecuación genérica: a * xi mod d i = b

n = 3.960 ⇒ n = 23 *32 *5*11 = d1 * d 2 * d 3 * d 4 = 8*9*5*11

a=12

b=36

C o m o n ⇒ d 4 , e x i s t i r á n 4 s o l u c i o n e s d e xi

a * x1 mod d1 = b mod d1 ⇒ 12* x1 mod8 = 36mod8 = 4


a * x2 mod d2 = b mod d2 ⇒ 12* x2 mod9 = 36mod9 = 0
a * x3 mod d3 = b mod d3 ⇒ 12* x3 mod5 = 36mod5 = 1
a * x4 mod d4 = b mod d4 ⇒ 12* x4 mod11 = 36mod11 = 3

Resolviendo para x obtenemos:

12* x1 mod8 = 4 ⇒ 4* x1 mod8 = 4 ⇒ x1 = 1


12* x2 mod 9 = 0 ⇒ 3* x2 mod9 = 0 ⇒ x2 = 0
12* x3 mod 5 = 1 ⇒ 2* x3 mod5 = 1 ⇒ x3 = 3
12* x4 mod11 = 3 ⇒ 1* x4 mod11 = 3 ⇒ x4 = 3

Resolviendo ahora la ecuación auxiliar del Teorema del Resto


C h i n o yi = inv ( n / d i ) , d i 

53
y1 = inv [ (n / d1 ), d1 ] ⇒ y1 = inv [ (3.960 / 8),8] = inv(495,8) = 7
y2 = inv [ (n / d 2 ), d 2 ] ⇒ y2 = inv [ (3.960 / 9),9] = inv(440,9) = 8
y3 = inv [ (n / d 3 ), d 3 ] ⇒ y3 = inv [ (3.960 / 5),5] = inv(792,5) = 3
y4 = inv [ (n / d 4 ), d 4 ] ⇒ y2 = inv [ (3.960 /11),11] = inv(360,11) = 7

Aplicando la ecuación del teorema del resto chino

x = ∑ti =1 ( n / di ) * yi * xi mod n

x = [ (n / d1 ) y1 x1 + (n / d 2 ) y2 x2 + (n / d3 ) y3 x3 + (n / d 4 ) y4 x4 ] mod 3.960

x = [ 495*7 *1 + 440*8*0 + 792*3*3 + 360*7 *3] mod 3.960

x = 2.313

D e f i n i c i ó n 4 1 R a í z p r i mi t i v a o ge n e r a d o r d e u n p r i mo

Un generador o raíz primitiva de un numero primo p es aquel


valor que, elevado a todos los restos del cuerpo reducido modulo
n, genera todo el cuerpo.

Así, g es un generador si: ∀1 ≤ a ≤ p − 1

g a mod p = b ( con1 ≤ b ≤ p − 1, todoslosb ≠ )

Ejemplo 17:

Sea p= 3 ⇒ CRR = {1,2} (el cero no es solución)

k
Resto 1: no generara nada porque 1 mod p = 1

R e s t o 2 : 21 m o d 3 = 2 ; 2 2 m o d 3 = 1

Luego el 2 es un generador del cuerpo n =3

54
Existe muchos números dentro del CRR que son generadores del
cuerpo… pero su búsqueda no es algo fácil… ¿algunas soluciones?

Conociendo la factorización de p-1 ( q q ...; qn )


1, 2 c o n qi l o s f a c t o r e s
∀qi:
primos de p-1, diremos que un numero g será generador en si

g ( p −1) qi mod p ≠ 1

En cambio

Si algún resultado es igual a 1, g no será generador

Ejemplo 18:

B ú s q u e d a d e r a í c e s p r i mi t i v a s e n Ζ13

C o m o p = 13 ⇒ p − 1 = 12 = 22 *3 ⇒ q1 = 2; q2 = 3

2(13−1)/2 mod13 = 26 mod13 = 12 


 ⇒ el resto 2 es generador
2(13−1)/3 mod13 = 24 mod13 = 3 

3(13−1)/2 mod13 = 36 mod13 = 1 


 ⇒ el resto 3 no es generador
3(13−1)/3 mod13 = 34 mod13 = 3

Y así sucesivamente hasta llegar al último resto (12)

O b t e n i é n d o s e q u e l o s g e n e r a d o r e s d e Ζ13 = 2 , 6 , 7 , 1 1

τ = Φ ( p − 1) / ( p − 1) = Φ(13 − 1) / (13 − 1) = 4 /12 = 1 / 3

55
G e n e r a d o r e s e n c u e r p o d e p r i mo s s e g u r o s

Un número primo p se dice que es primo seguro o primo fuerte si:


2 * p, + 1 ( c o n p, t a m b i é n p r i m o ) .

Ejemplo 19:

Si p, = 1 1 , l u e g o p = 2 * 1 1 + 1 = 2 3 ( e s p r i m o y e s s e g u r o )

En este caso la tasa de números generadores del cuerpo del cuerpo


s erá m ayor que en el caso anterior (con p = 13 era del 30%)

τ
Probabilidad: psegro = Φ ( p − 1) / p − 1 ≈ 1/ 2

Casi la mitad de los números del grupo serán generadores en p.

Comprobación de generadores en p = 2 p′ + 1

p , = 11; 2 p , = 22; p = 2 p , + 1 = 23 Primo seguro

C o m o 2 p, = p −1 e x i s t i r á n :

Φ ( p , ) =  p , − 1 elementosdeorden ( p , ) enelCRR

Φ (11) = 10 = {1, 2,3, 4,5,6, 7,8,9,10}

Φ ( 2 p , ) =  p , − 1 elementosdeorden ( p − 1) enelCRR

Φ ( 22 ) = 10 = {1,3,5, 7,9,13,15,17,19, 21}

τ = ( p , − 1) / ( p − 1) = ( p , − 1) / 2 p , ≈ 1 / 2

Usando la ecuación g ( p −1)/ qi mod p , e n e s t e c a s o q1 = 2 y q2 = 11

g (23−1)/2 mod 23 = g 11 mod 23


g (23−1)/11 mod 23 = g 2 mod 23

56
Encontramos los siguientes 10 generadores en p=23
{5,7,10,11,14,15,17,19,20,21} es decir la mitad de los valores de
CRR que en este caso es igual a 23-1=22.

2 .2 .3 CAL CULOS E N CAM POS DE GAL OIS

Cuando trabajamos en un cuerpo k con dos operaciones + y *,


sabemos que todos elemento distintos del cero tiene un único
inverso multiplicativo. Si el cuerpo es infinito, se denomina
t a m b i é n c u e r p o o c a m p o d e G a l o i s y s e d e n o t a p o r GF ( p n ) , d o n d e p
es un primo y n un entero ≥1.

Algunos usos en criptografía:

S i s t e m a s d e c l a v e s p u b l i c a c u a n d o l a o p e r a c i ó n e s C ≡ M e mod p
(cifrador ELGAMAL) o bien RSA usando el Teorema del Resto
Chino para descifrar, como se verá en ese capítulo.

A p l i c a c i o n e s e n GF ( p n ) , p o l i n o m i o s m ó d u l o s p y d e g r a d o s n d e l a
a * x n −1 + an − 2 * x n − 2 + ... + a1 * x + a0
f o r m a a ( x ) = n −1 : se usara en las curvas
elípticas.

2 .2 .4 E LE MENT OS DE GF ( p n ) COM O
POL INOM IOS

Los elementos del cuerpo GF ( p n ) s e p u e d e n r e p r e s e n t a r c o m o


a ∈ Zp
polinomios de grados < n con coeficientes i , es decir, en la
forma:

a ( x) = an −1 * x n −1 + an − 2 * x n − 2 + ... + ai * x + a0

E l c u e r p o GF ( p n ) s e p u e d e c o n s t r u i r e s c o g i e n d o u n p o l i n o m i o
irreducible p(x) de grado n a coeficientes en Zp .entonces cada
e l e m e n t o s a ( x ) d e l c u e r p o GF ( p n ) e s u n r e s t o m o d u l o p ( x ) .

Así, los elementos de GF ( 2 n ) s o n p o l i n o m i o s d e g r a d o < n c o n


coeficientes en {0,1}. De e s t a m a n e r a , GF ( 23 ) t i e n e 8 e l e m e n t o s o

57
r e s t o s p o l i n o m i c o s q u e s o n : 0,1, x, x + 1, x 2 , x 2 + 1; x 2 + x, x 2 + x + 1, l o s 8 d e
un polinomio de grado n-1 (n=3).

2.3 CURVAS ALGEBRAICAS

Definición42. Curvas Elípticas

Se denomina curva elíptica definida sobre un cuerpo K al conjunto


de puntos que verifican:

y 2 + b1 xy + b3 y = x3 + b2 x 2 + b4 x + b6 , bi ∈ K

Mas el punto del infinito O.

2 .3 .1 FORM A CANONICA DE WE IE RSTRASS


(CASO GE NERAL )

Toda curva elíptica viene dado por una ecuación (escrita por
comodidad en forma afín) del tipo:

y 2 + b1 xy + b3 y = x3 + b2 x 2 + b4 x + b6 , bi ∈ K ( a )

Estas curvas poseen únicamente un punto en el infinito, de


coordenadas (0, 1,0) –geométricamente el punto del infinito en la
d i r e c c i ó n d e l e j e y - q u e n o t a r e m o s λ P∞ , q u e s e t o m a
habitualmente como el punto O de la definición de curva elíptica y
como el elemento neutro del grupo que definiremos en la siguiente
sección.

Supongamos que CAR (K) ≠ 2 (CAR (K) designa la características


del cuerpo ) .

x := x, y := y − ( b1 x + b3 ) / 2
(b)

Permite transformar la ecuación anterior a la forma más sencilla:

y 2 = x 3 + a2 x 2 + a4 x + a6 , ai ∈ K (c)

58
Si además la característica de K es diferente de 3, el nuevo cambio
de variable:

x := x − a2 / 3 y := y (d)

Transforma las ecuaciones anteriores en:

y 2 = x 3 + Ax + B A, B ∈ K (e)

Definición 43.

La ecuación (e) se denomina formar canónica de Weierstrass de


la curva elíptica.

En realidad Weierstrass obtuvo la ecuación (e) en el contexto


de funciones de variables complejas asociadas a un retículo, como
ecuación diferente verificada por la función ρ (u) de Weierstrass
de dicho retículo.

Recordamos que, por definición, una curva elíptica no posee


punto singular. En el caso de la ecuación (e) es fácil ver que un tal
punto singular (solución del sistema), deberías estar situado sobre
el eje x, y más precisamente corresponde a una raíz múltiple del
polinomio en su segundo miembro. Es bien conocido que un
polinomio posee raíces múltiples si y solamente si su
discriminantes se anula. En el caso particular del polinomio
x + Ax + B , e l v a l o r d e s u d i s c r i m i n a n t e e s :
3

D = 4 A3 + 27 B 2 (f)

Este valor debe, por consiguiente, ser no nulo para una curva
elíptica.

Un particular los coeficientes A, B no


ser pueden
simultáneamente nulos, por ejemplo la curva de ecuaciones y = x
3 2

no es elíptica (posee un punto singular en el origen)

E n c a m b i o l o s d o s t i p o s d e c u r v a s y = x + Ax, y = x + B s o n
2 3 2 3

siempre elípticas (naturalmente en la hipótesis A, B ≠ 0) y son


casos especialmente interés y bien estudiados .Aludiremos a estos
59
casos particularmente en este mismo capítulo a propósitos de la
determinación del número de puntos de una curva elíptica.

R E P RE S E N T A CI O N G R A FI C A D E UN A C U R VA
ELIPTICA

2 .3 .2 FORM A CANONICA DE WE IE RSTRASS


( CARACT E RISTICA 2 )

Si Car (K) = 2 evidentemente que el cambio de variables 2.4 no


es posible. A partir de la formula 2.3 distinguiremos dos casos:

i ) b1 ≠ 0 . E l c a m b i o d e v a r i a b l e s :

x := b12 x + b3 / b1 , y := b13 y + ( b12b4 + b33 ) / b13

Conduce a la ecuación,

y 2 + xy = x3 + a2 x 2 + a6
(g)
60
Para esta ecuación, el discriminante del segundo miembro viene
d a d o p o r D = a6 , e l c u a l d e b e s e r d i f e r e n t e d e 0 , p a r a a s e g u r a r l a
no singularidad de la curva.

i i ) b1 = 0 . E l c a m b i o d e v a r i a b l e s :

x := x + b2 y: = y

Conduce a la ecuación

y a + a3 y = x3 + a4 x + a6
(h)

4
S i e n d o e n e s t e c a s o e l d i s c r i m i n a n t e D = a3 .

Por analogía con la ecuación (e) del caso clásico, denominaremos


también forma canónica norma de Weierstrass a las ecuaciones (g)
y (h) .

2 .3 .3 FORM A CANONICA DE WE IE RSTRASS


( CARACT E RISTICA 3 )
En este caso es factible el cambio de variables (b), pero no
evidentemente el (d). A partir de la formula (c) distinguiremos dos
casos:

i ) a2 ≠ 0 . E l c a m b i o d e v a r i a b l e s :

x := x − a4 / 2a2 , y: = y

Conduce a la ecuación,

y 2 = x 3 + a2 x 2 + a6 (i)

i i ) a2 = 0 . S e t i e n e l a e c u a c i ó n

y 2 = x3 + a4 x + a 6
(j)

61
Las ecuaciones (i) y (j) son las formas canónicas de Weierstrass
en el caso de características 3.

2 .3 .4 E L GRUPO DE PUNT OS DE UNA E LIPTICA

Lo que confiere interés a las curvas elípticas es la posibilidad de


dotarlas de manera natural – mediante ecuaciones- de una
estructura de grupo abeliano.

De manera más precisa, si E es una curva elíptica definida sobre


K podemos dotar al conjunto E (K) de una ley de grupo tal que las
coordenadas de punto suma de dos dados vienen dadas como
funciones racionales de las coordenadas de estos últimos,
funciones con coeficientes en K, por lo que la restricción de dicha
operaciones de dicha operaciones al subconjunto E (K) dota a este
de estructura de subgrupo.

Las curvas elípticas tienen pues estructuras de variedad


abeliana:
Por una parte son variedad algébrica (de dimensión1) y por otra
parte grupos abelianos. De hecho las curvas elípticas son las
únicas variedades abelianas de dimensión 1.

Existe una forma abstracta de definir dicha ley de grupo basada


en la teoría de divisores y el teorema de riemann-roch.

Puede darse sin embargo una construcción geométrica, que


detallamos a continuación.

2 .3 .5 INTE RPRE TACION GE OME T RICA


Hemos visto que una curva elíptica admite un modulo plano dado
por una ecuación de grado 3 (cubica). Dado dos puntos de la curva,
la recta que los une (la tangente a la curva si ambos puntos son el
mismo) corta a dicha curva en un tercer punto (teorema de bezout).
Esta propiedad es la base de la definición de suma de puntos, la
cual esquematizamos en la figura adjunta, para el caso de la
ecuaci ón (e) y con l a repres entación grafi ca habitual (aunque ya
indicamos que tal represente solo es realmente correcta para el
cuerpo de los números reales). En el caso de caracteristicas2 o 3 la
situación es análoga (ver detalles en la subseccion siguiente, donde
damos las formulas explicitas para cada caso).
62
E l p u n t o d e l i n f i n i t o Ο = p∞ = (0,1, 0) s e r á e l e l e m e n t o n e u t r o d e l
grupo y dado un punto afín p = ( x, y ) s u o p u e s t o e s – p = ( x , - y ) ,
s i m é t r i c o r e s p e c t o d e l e j e x . d a d o s d o s p u n t o s p1 , p2 . S e d e f i n e l a
suma de ambos en la forma siguiente:

a ) S i p2 = − p1. p1 + p2 = p∞ = 0 ( n ó t e s e q u e l a r e c t a q u e u n e a m b o s
puntos es vertical y corta a la en su punto del infinito)

b ) S i p2 ≠ ± p1 , p1 + p2 e s e l s i m é t r i c o r e s p e c t o d e l e j e x d e l t e r c e r
punto de intersección con la cubica de la recta que une ambos
puntos.

c ) S i p2 = p1 , p a r a o b t e n e r p1 + p2 = 2 p1 s e r a z o n a a n á l o g a m e n t e a l
cas o b), s ust itu yé ndolo l a rect a que une am bos puntos por l a
tangente a la curva en dicho punto.

Hemos mencionado anteriormente que las curvas elípticas son


las únicas que admiten una tal estructura de grupo. Aunque no sea
realmente una demostración, una justificación intuitiva es la
siguiente: las curvas elípticas vienen definidas por una ecuación de
grado 3., por lo que una recta la corta en 3 punto. Por el contrario
en este caso de grado 2 (cónicas, curvas de género 0) dado dos
puntos de dicha cónica la recta que los une no corta a la curva en
ningún ot ro punto, m ient ras que si el grado es m ayor que 3 exi sti rá
más de un punto adicional de corte .

63
REPRESENTACION GRAFICA DE LA SUMA DE PUNTOS EN
UNA CURVA ELIPTICA

2 .3 .6 FORM UL AS ANALIT ICAS

La ley de grupo que acabamos de definir se traduce


inmediatamente a formulas analítica. Explicitemos estas para cada
una de las formas canónicas de Weierstrass.

Caso general: ecuaciones (e) correspondiente a Car ( k ) ≠ 2,3 .

S e a n pi = ( xi , yi ) , i = 1, 2 , d o s p u n t o s d e l a c u r v a . S e t i e n e :

p3 = p1 + p2 = ( x3 , y3 ) = ( λ 2 − x1 − x2 , λ ( x1 − x3 ) − y1 )

Donde λ es la pendiendo da la recta que une ambos puntos, es


decir,

λ = ( y2 − y1 ) / ( x2 − x1 ) ⇔ p1 ≠ p2

λ = (3x1 + A) / 2 y1 ⇔ p1 = p2

64
C a s o C a r (k ) = 2

i) Caso de la ecuación (g).

En est e caso el opues to del punto p=(x, y)es el punt o


– p = ( x , x + y ) y d a d o pi = ( xi , yi ); i = 1, 2 s e t i e n e p a r a s u s u m a
p3 :
y + y2 2 y + y2
x3 = ( 1 ) +( 1 ) + x1 + x2 + a2
x1 + x2 x1 + x2

y1 + y2
y3 = ( )( x1 + x3 ) + x3 + y1
x1 + x2
E n e l c a s o p1 ≠ ± p2 m i e n t r a s q u e p a r a p1 = p2 .

x3 = x12 + a6 / x12

y3 = x12 + ( x1 + ( y1 / x1 )) x3 + x3

ii) Caso de la ecuación (h).

En este caso el opuesto del punto p=(x,y)es el punto


– p = ( x , y + a3 ) y d a d o pi = ( xi , yi ); i = 1, 2 s e t i e n e p a r a s u s u m a
p3 :

y1 + y2 2
x3 = ( ) + x1 + x2
x1 + x2

y1 + y2
y3 = ( )( x1 + x3 ) + y1 + a3
x1 + x2

E n e l c a s o p1 ≠ ± p2 m i e n t r a s q u e p a r a p1 = p2 .

x3 = x12 + a 42 / a32

x12 + a4
y3 = ( )( x1 + x3 ) + y1 + a3
a3
65
Caso Car (K) = 3

1) Caso de las ecuaciones (i)

Dados Pi = ( xi , yi ) , i = 1, 2 , s e t i e n e p a r a s u s u m a p3 :

2
y −y 
x3 =  2 1  − x1 − x2 − a2
 x2 − x1 

y −y 
y3 =  2 1  ( x1 − x3 ) − y1
 x2 − x1 

E n e l c a s o P1 ≠ ± P2 , m i e n t r a s q u e p a r a P1 = P2 :

x3 = ( a2 x1 / y1 ) − a2 + x1
2

y3 = ( a2 x1 / y1 )( x1 − x3 ) − y1

iii) Caso de la ecuación (j)

D a t o s p1 = ( x1 , yi ) , i = 1, 2, s e t i e n e p a r a s u s u m a p3 :

2
y −y 
x3 =  2 1  − x1 − x2
 x2 − x1 

y −y 
y3 =  2 1  ( x1 − x3 ) − y1
 x2 − x1 

e n e l c a s o P1 ≠ ± P2 , m i e n t r a s q u e p a r a p1 = p2 :

x3 = ( a4 / y1 ) − x1
2

y3 = ( a4 / y1 )( x1 − x3 ) − y1

66
A un punto que satisface la ecuación
y + b1 xy + b3 y = x + b2 x + b x + b4 x + b6 , bi ∈ K s e l e l l a m a p u n t o r a c i o n a l .
2 3 2 4

Si el campo es finito, entonces el conjunto de puntos (x,y) que


satisfacen la ecuación es finito y es llamado conjunto de puntos
racionales de la curva E sobre el campo F.Al conjunto
de puntos racionales lo podemos representar como:

E: O,P1,P2,P3,...,Pn

Donde E representa la ecuación y O es un punto que no tiene


coordenadas y hace el papel de cero (l lam ado punt o al infini to) ya
que en este conjunto los puntos puede sumarse y tiene las mismas
propiedades que la suma de los números enteros, es decir lo que se
conoce como un grupo abeliano. Dicha suma tiene una explicación
geométrica muy simple, si la grafica representa a todos los puntos
que satisfacen la ecuación de la curva elíptica, y queremos sumar a
P1 y P2:

1º.- Trazamos una línea recta que pase por P1 y p2, la ecuación de
la curva es de grado 3 y la línea de grado 1, entonces existen
siempre tres soluciones, en este caso la tercera solución esta
dibujada como el punto P1+P2=P4.

2º.- Seguidamente se procede a dibujar una línea recta paralela al


eje Y que pase por P3.

3º.- Esta línea vertical intercepta tres veces a la recta, todas las
líneas verticales interceptan al punto especial llamado infinito y
que geométricamente esta en el horizonte del plano, el tercer punto
es por definición P1+P2, como se muestra a continuación:

4º.- A partir de las coordenadas de P y de Q no es complicado


obtener las formulas para calcular las coordenadas del punto
P4=-P3. Si por ejemplo el campo de definición de la curva es un
campo primo Zp, entonces las formulas son las dadas
anteriormente.

67
Ejemplo 20: (Decodificación de un Mensaje usando Curvas
Elípticas)

Para codificar un mensaje m de modo que se obtengan puntos de


una curva elíptica dada, se procede como sigue:

Si cada unidad del mensaje, m, verifica: 0 <m<M, consideramos un


entero h de modo que q<M. h, siendo q un primo o la potencia de
un primo y GF (q) el cuerpo finito sobre el que se llevan a cabo las
operaciones. Los enteros entre 1 y M.h los escribimos en la forma
m. h + j, con j = 1,...; h – 1, y así se obtiene una correspondencia
uno a uno entre estos enteros y elementos x de GF (q). Por lo
t a n t o , d a d o m t e n e m o s u n e l e m e n t o x ∈G F ( q ) c o r r e s p o n d i e n t e a
m. h + j, para cada j = 1,…, h –1. Para ese x calculamos el valor de
x3 + a2 x 2 + a4 x + a6 e n G F ( q ) . b u s c a m o s u n v a l o r e n t e r o p a r a y q u e
verifique la igualdad de la ecuación que define la curva elíptica
(1). Si tal valor de y ex is te, t endrem os ya l as coordenadas del
p u n t o d e l a c u r v a Pm = ( x, y ) q u e s e a s o c i a a l a u n i d a d d e l m e n s a j e
m. si el valor de y que buscamos no existe, se incrementa en 1 el
valor de x y se repite la búsqueda de y.

Para decodificar el mensaje recibido formado por los puntos (x, y),
se calcula para cada uno de los puntos el valor

x∼ − 1
m=
h

D o n d e x∼ e s e l e n t e r o q u e c o r r e s p o n d e a x p o r l a c o r r e s p o n d e n c i a
anterior; es decir, aquel que haces que m tome un valor entero.

E j e m p l o . S u p o n g o q u e l a c u r v a e l í p t i c a e s E : y 2 + y = x3 − x , y q u e
e s t a d e f i n a s o b r e e l c u e r p o ℤ *751 , e n e l q u e t i e n e 7 2 7 p u n t o s .

Para codificar mensajes utilizaremos el alfabeto de los ejemplos


anteriores, pero ahora la codificación se hará para A-Z de 10 a 35.
S u p o n g a m o s q u e q u e r e m o s e n v i a r e l m e n s a j e m = << STOP >> .

68
Ejemplo 21:

C o m o 0 < m ≤ 35 , t o m a m o s M = 3 6 y h = 2 0 . E n t o n c e s q = 7 5 1
>m. h = 720.

Codifiquemos cada una de las unidades del mensaje:

S : 28 → x = 28.20 + 1 = 561 → x 3 − x ≡ 73 ≠ y 2 + y

P a r a y d e ℤ *751 ,

x = 28.20 + 2 = 562 → x3 − x ≡ 410 = y 2 + y

P a r a y = 576 → ps = ( 562,576 ) ,

T : 29 → x = 29.20 + 1 = 581 → x3 − x ≡ 212 = y 2 + y

P a r a y = 395 → PT = ( 581,395 ) ,

O : 24 → x = 24.20 + 1 = 481 → x3 − x ≡ 229 ≠ y 2 + y

P a r a y d e ℤ *751 ,

x = 24.20 + 4 = 484 → x3 − x ≡ 199 = y 2 + y

P a r a y = 214 → Po = ( 484, 214 ) ,

P : 25 → x = 25.20 + 1 = 501 → x3 − x ≡ 556 = y 2 + y

P a r a y = 220 → Pp = ( 501, 220 ) .

69
Por consiguiente, el mensaje codificado es (562,576), (581,395),
(484, 241) y (501, 220).

Para decodificar el mensaje anterior, se llevan a cabo las


siguientes operaciones:

562 − 1 561 − 1
= 28, 05; = 28 → S
20 20

581 − 1
= 29 → T ,
20

484 − 1 483 − 1 481 − 1


= 24,15, = 24,1; = 24 → O,
20 20 20

501 − 1
= 25 → P .
20

70
Capitulo 3

Sistemas Criptográficos en la Internet


3.- SISTEMAS CRIPTOGRAFICOS EN LA
INTERNET

3.1 IMPORTANCIA DE LA SEGURIDAD EN


INTERNET
La rápida expansión y popularización de las redes de comunicación ha convertido a la
seguridad en redes en uno de los temas más importantes de la Informática moderna.
Con este nivel de interconexión, los virus, spamers, troyanos, crackers y los hackers
abundan, aprovechando las debilidades en las medidas de seguridad tomadas.

Las ventajas de las redes de información son evidentes, pero comúnmente se obvian
ciertos riesgos, hecho que pone en peligro la seguridad de los sistemas. En solo unos
años la mayoría de las empresas operaran a través de la Red, y esto solo será posible en
forma segura si los profesionales de la Informática pueden aportar soluciones que
aseguren la confidencialidad de la información.

3.1.1 IMPORTANCIA DE LAS REDES


La Informática es la ciencia del tratamiento automático de la información, pero igual o
más importante que su procesamiento y almacenamiento es la capacidad para poder
transmitirla de forma eficiente. La información tiene cada vez un menor tiempo de vida
y la velocidad con la que pueda viajar es algo muy importante. Los últimos avances en
la informática permiten actualmente transferir grandes cantidades de información a un
ritmo que hace pocos años eran imposibles.

El carácter complejo de las grandes redes así como su carácter público hacen de la
protección física de los canales de comunicación algo tremendamente difícil. Por lo
cual, cada vez más se deberá depositar nuestra confianza en la Criptografía para
garantizar la confidencialidad en las comunicaciones.

El protocolo TCP/IP se ha erigido como estándar en la industria de la Informática


para que computadoras de diferentes tipos pudieran entenderse. En general todas las
redes de computadoras se construyen conceptualmente sobre diferentes capas de
abstracción, las cuales desarrollan tareas distintas y ofrecen un protocolo unificado a las
capas superiores. La Criptografía podrá entonces ser utilizada en diferentes niveles de
abstracción. Por ejemplo, podemos encriptar un fichero antes de enviarlo por la red, lo
cual correspondería al nivel de abstracción mayor, o se podría enviarlo sin modificar,
pero por medio de un protocolo de bajo nivel que cifre cada uno de los paquetes de
información en los que se va a subdividir el fichero en el momento de transmitirlo.

En función del tipo de red con el que se trabaje encontraremos diferentes clases de
riesgos, lo cual conducirá a implementar medidas de diferente naturaleza para
garantizar la seguridad en las comunicaciones. En este capítulo se hará una corta
71
reflexión sobre algunos de los casos que pueden darse, sin intentar de ser exhaustivos
(dada la inmensa cantidad de posibilidades).Por lo que, se aportara una serie de
directrices y medidas que permitan analizar cada situación y definir una adecuada
política de protección de la información.

3.1.2 REDES INTERNAS

El caso más sencillo de red que nos podemos encontrar es local (LAN), con todos los
computadores interconectados por medio de unos cables de los que también se es
propietario. Esta última circunstancia permite ejercer un control total sobre los canales
de comunicaciones, pudiendo protegerlo físicamente, lo cual evita prácticamente
cualquier riesgo de falta de privacidad en la información.

Uno de los riesgos siempre presentes en estos casos son las posibles pérdidas de
información debidas a fallos físicos (fallas en la electricidad por ejemplo), que pueden
(y deben) ser minimizados llevando a cabo una política de copias de respaldo
dependiendo del grado de importancia de la información, las cuales deberán ser
elaboradas periódicamente, almacenadas en un lugar diferente de aquel donde se
encuentra la red, y protegidas adecuadamente contra incendios y accesos no deseados.

Otro riesgo comúnmente subestimado, es el que se origina por el uso inadecuado del
sistema por parte de los usuarios. Ya sea por malas intenciones o descuido, un usuario
con demasiados privilegios puede destruir información importante, por lo que estos
privilegios de sistema deben ser asignados por parte de los administradores del sistema
con mucha precaución. Este factor es muy importante, ya que, sobre todo en pequeñas
empresas, el dueño muchas veces asume que debe conocer la clave del administrador, y
luego es incapaz de resistir la tentación de manipular con ella, poniendo en serio peligro
la integridad del sistema (y de la valiosa información contenida en el) , entorpeciendo el
trabajo del administrador del sistema.

Existen redes internas en las que un control exhaustivo sobre el medio físico de
transmisión es prácticamente imposible. Por ejemplo, en un aula de una universidad,
que posee conexiones ethernet en todas sus aulas. En principio, nada impedirá que una
persona pueda conectar un ordenador portátil a una de esas conexiones para llevar a
cabo un análisis del tráfico de la red sin que dicha actividad sea advertida, o suplantar a
cualquier otro computador. En este tipo de casos será conveniente llevar a cabo algún
medio de control, como la deshabilitación dinámica de las conexiones de red no
utilizadas en cada punto, o la adopción de protocolos de autentificación de las
computadoras dentro de la red.

3.1.3 REDES EXTERNAS

Se considera como una red externa a aquella que en todo o en parte se apoye en un
canal físico de comunicación ajeno. Existen redes externas de muy diferentes tipos, pero
todas ellas tienen en común la característica de que, en algún momento, la información
viaja por canales sobre los que no se tiene ningún tipo de control. Todas las técnicas que

72
permiten llevar a cabo protecciones efectivas de los datos tienen que hacer uso
necesariamente de la Criptografía.

La identificación de los posibles riesgos que presentara una red externa, pasa por
fijarnos en aspectos tan diferentes como el sistema operativo que corre sobre los
ordenadores o el tipo de acceso que los usuarios legales del sistema pueden utilizar.

Una de las más comunes configuraciones consiste en el uso de una red local
conectada al exterior mediante un cortafuego (computadora que filtra el tráfico entre la
red interna y el exterior). Los cortafuegos son herramientas muy poderosas si se
emplean adecuadamente, pero entrañan ciertos riesgos si se usan mal. Por ejemplo,
existen sitios donde el cortafuego está conectado a la red local y esta a su vez a la red
externa. Esta configuración es la más sencilla y barata, en vista de que solo se necesita
una tarjeta de red en el cortafuego, pero no impedirá a un computador situado en el
exterior conectarse directamente a los de la red local, donde la red externa (y todos sus
peligros) está separada físicamente de la red local.

Podemos distinguir dos grandes tipos de peligros potenciales que pueden comprometer
nuestra información desde una red externa:

A) Ataques indiscriminados. Suelen ser los más frecuentes, y también los menos
dañinos. Dentro de esta categoría podemos incluir los troyanos y los virus, programas
diseñados normalmente para introducirse en cualquier sistema y producir efectos muy
diversos. En vista de su carácter general, existen programas específicos que nos
protegen de ellos, como los antivirus. Es conveniente disponer de un buen antivirus y
actualizarlo periódicamente (ello permitirá que el antivirus pueda reconocer con certeza
a qué tipo de virus se enfrenta para tomar la acción más conveniente según su
programación).

B) Ataques a medida. Son menos comunes que los anteriores, y también más
peligrosos, son aquellos que generalmente llevan a cabo los hackers. Las víctimas son
casi siempre grandes corporaciones, y muchas veces la información ni siquiera es
destruida o comprometida, puesto que los hackers solo buscan enfrentarse al reto que
supone para ellos entrar en un sistema grande. El problema es que para borrar sus
huellas y dificultar el rastreo de sus acciones, suelen atacar en primer lugar sistemas
pequeños para desde ellos iniciar el ataque a otro sistema, lo cual convierte a cualquier
sistema en potencial victima de los hackers.

En cuanto a la protección de las comunicaciones, existen protocolos de comunicación


segura de bajo nivel, como el SSL (Secure Sockets Layer), que permiten crear
comunicaciones seguras a través de Internet, haciendo uso de algoritmos simétricos y
asimétricos simultáneamente. Este protocolo es transparente y puede funcionar con
otros protocolos ampliamente conocidos, como POP3, TELNET, FTP, HTTP, etc. Gran
cantidad de aplicaciones emplean protocolos de este tipo en sus comunicaciones. Pero
las leyes norteamericanas se han vuelto restrictivas en cuanto a la exportación de
material criptográfico lo que origina que la gran mayoría de las aplicaciones seguras que

73
se venden fuera de los EE.UU. y Canadá estén en realidad debilitadas, por lo que se ha
de documentarnos muy bien antes de depositar nuestra confianza en ellas.

3.1.4 INTRANETS
El termino intranet se ha popularizado recientemente y se refiere a redes externas que
se comportan en su interfaz con los usuarios como redes privadas internas. Este tipo de
redes se ha de implementar haciendo uso de protocolos criptográficos de autentificación
y codificación de las transmisiones, en vista que el trafico que se aprecia como interno
a nuestra red, en realidad viaja por Internet.

3.1.5 SISTEMA DE SEGURIDAD EN LA RED


El concepto de seguridad en la información es más amplio que la protección de los
datos a nivel lógico. Para proporcionar una seguridad real hay que tomar en
consideración múltiples factores, tanto internos como externos. En primer lugar habrá
que caracterizar el sistema que va a recibir la información para poder identificar las
amenazas, y en este sentido podemos hacer la siguiente división:

1. Sistemas aislados. Son los que no están conectados a ningún tipo de red.
Actualmente se han convertido en minoría, debido a la expansión que ha
experimentado Internet.

2. Sistemas interconectados. En la actualidad casi cualquier ordenador pertenece


a alguna red, enviando y recogiendo información del exterior. Esto implica que las redes
de ordenadores sean cada vez más complejas y constituyan un peligro potencial que no
debe ser ignorado. En relación a los aspectos involucrados con la seguridad que se
habrá de establecer podríamos clasificarlas de la siguiente forma:

A. Seguridad física. Incluiremos dentro de esta categoría a todos los aspectos


relacionados con la custodia de los soportes físicos de la información, más que de la
información propiamente dicha. En este aspecto estarán, entre otras, las medidas contra
incendios y sobrecargas eléctricas, la prevención de ataques terroristas, las políticas de
backup, etc. También hay que tener en cuenta, dentro de este punto, aspectos
relacionados con la restricción de acceso físico a las computadoras únicamente a
personas autorizadas.

B. Seguridad de la información. En este punto se le prestara atención a la


preservación de la información frente a observadores no autorizados. Para ello se podrá
emplear tanto criptografía simétrica como asimétrica, estando la primera únicamente
indicada en sistemas aislados, ya que si la utilizáramos en redes, al tener que transmitir
la clave por el canal de comunicación, se estaría asumiendo un riesgo excesivo.

C. Seguridad del canal de comunicación. Los canales de comunicación rara


vez se consideran seguros. En vista de que, en la mayoría de los casos, escapan a

74
nuestro control, ya que pertenecen a terceros, por lo que resulta imposible asegurarse
totalmente de que no están siendo escuchados o intervenidos.

D. Problemas de autenticación. Debido a los problemas inherentes al canal de


comunicación, es necesario asegurarse de que la información que recibimos en la
computadora viene de quien realmente creemos que viene. Para esto se suele utilizar
criptografía asimétrica en conjunción con funciones resumen.

E. Problemas de suplantación. En las redes se tiene el problema añadido de que


cualquier usuario autorizado puede entrar al sistema desde fuera, por lo que se ha de
confiar en sistemas fiables para garantizar que los usuarios no están siendo suplantados
(clonados) por intrusos. Normalmente se emplean mecanismos basados en password
para conseguir esto.

3.2 RSA Y RABIN


De entre todos los algoritmos asimétricos, quizá RSA sea el más sencillo de
comprender e implementar. Sus pares de claves son duales, por lo que sirve tanto para
codificar como para autentificar. Su nombre proviene de sus tres inventores: Ron
Rivest, Adi Shamir y Leonard Adleman en 1977. Desde su nacimiento nadie ha
conseguido probar o rebatir su seguridad, pero se le tiene como uno de los algoritmos
asimétricos más seguros.

RSA se basa en la dificultad para factorizar grandes números. Las claves pública y
privada se calculan a partir de un número que se obtiene como producto de dos primos
grandes. El atacante se enfrentará, si quiere recuperar un texto plano a partir del
criptograma y la llave pública, a un problema de factorización.

Definición 42.
Para introducir los criptosistemas de clave pública, se define una función
unidireccional (One-Way Function, OWF) f : M → C como una función invertible, de
modo que es << facil >> calcular f ( m ) = c, mientras que es << dificil >> computar
f −1 ( c ) =m.(No se sabe si hay funciones de este tipo, aunque se supone su existencia.)

Una función unidireccional se dice que es una función unidireccional tramposa


(Trapdoor One-way Function, TOF) si se puede ser invertida fácilmente cuando se
conoce alguna información adicional extra. Tal información extra se conoce como
trampa.

75
Definición 43.
Se define un criptosistema de clave pública como una familia de funciones
unidireccionales tramposas, { fk } , para cada clave k de K de modo que la trampa
t ( k ) sea fácil de obtener. Además, para cada k de K se debe poder describir un
algoritmo eficiente que permitir calcular f k , pero de modo que sea intratable la
determinación de k y t (k).

Para implementar un criptosistema de clave pública, dada una familia de funciones


unidireccionales tramposas, cada usuario U elige una clave aleatoria u de k y publica
Eu que permite calcular f u ; Eu es su clave pública, mientras que la trampa t (u),
necesaria para invertir f u , es su clave privada.

Si un usuario A desea enviar un mensaje m a otro usuario B, mira la clave pública


de B, Eb , y transmite fb ( m ) = c a B. como B es el único capaz de invertir f b , es el único
que recuperar el mensaje m : fb−1 ( fb ( m ) ) = m.

Ya hemos dicho que no se ha demostrado aun la existencia de funciones


unidireccionales tramposas; no obstante, hay dos funciones candidatas a serlo. La
primera de ellas es el producto de número enteros primos, cuya inversa es la
factorización del número obtenido, y la segunda es la exponenciación discreta, cuya
inversa es el logaritmo discreto. Las dos funciones son fáciles de computar, mientras
que no lo son sus inversas. Es decir, dado un número n, es difícil determinar su
descomposición en factores primos y, por otra parte, dados a y b, es difícil calcular x de
modo que a x = b. veamos como estas dos funciones permiten implementar dos
criptosistemas diferentes de clave pública.

3.3. CRIPTOSISTEMA RSA


La primera realización del modulo de Diffie-Hellman fue desarrollada por Rivest,
Shamir y Adleman, y se conoce con el nombre de criptosistema RSA. El protocolo
desarrollado por estos autores es el siguiente:

1. Cada usuario U elige dos números primos (actualmente se recomienda que tales
números primos tengas más de 200 dígitos) p y q calcula n= p.q. el grupo a
utilizar por el usuario U es, entonces, ℤ*n . el orden de este grupo es
Φ(n) = Φ ( p.q ) = ( p − 1)( q − 1) . para U es fácil calcular este orden, pues conoce
p y q.

76
2. Después, U selecciona un entero positivo e,1 ≤ e < Φ ( n ) , de modo que sea primo
con el orden del grupo, es decir, de modo que mcd ( e, Φ ( n ) ) = 1.

3. Mediante el algoritmo de Euclides extendido calcula el inverso de e en ℤ Φ( n ) , d;


se tiene entonces e.d ≡ 1 ( mod Φ ( n ) ) , con 1 ≤ d < Φ ( n ) .
4. La clave publica del usuario U es la pareja (n, e), mientras que su clave privada
es el numero d. por supuesto, también deben permanecer secreto los números p,q
y Φ ( n) .

Si un usuario A desea enviar un mensaje m de ℤ n a otro usuario B, utiliza la clave


publica de B ( nb , eb ) , para calcular el valor de meb ( mod nb ) = c, que enviar a B.

Para recuperar el mensaje original, B calcula c db = ( m eb ) = m eb db ≡ m ( mod nb ) .


db

Ejemplo 1. Consideremos una codificación del alfabeto que transforme las letras de la
A a la Z en los números del 0 al 25 (utilizaremos el alfabeto ingles). Deseamos enviar
un mensaje a un usuario B. para ellos veamos cómo este usuario ha elaborado su clave
pública y su clave privada.

El usuario B elige dos números primos: pb =


281 qb = 167,
y calcula

nb = 281.167 = 46927 y considera el grupo ℤ*46927 .

El orden de este grupo es: φ ( 46927 ) = 280.166 = 46480 . B elige el número


eb = 39423 y comprueba que mcd (39423,46480) = 1.

A continuación determina el inverso de 39423 modulo 46480. Este número es


d b = 26767. por lo tanto, la clave pública de B es: ( nb , eb ) = ( 46927,39423) , mientras que
mantiene en secreto los demás valores.

Para enviar un mensaje a B, debemos determinar en primer lugar la longitud del


mismo. Para ello, tendremos en cuenta que vamos a codificar las letras del alfabeto por
medio de número en base 26.

Como el mensaje ha de ser un elemento del grupo con el que estamos trabajando, su
longitud no puede exceder del valor de n = 46927.asi pues, dado que
263 = 17576 < n < 456976 = 26 4 , el mensaje ha de tener un máximo de tres letras. Si se
desea enviar un mensaje más largo, habrá que romper el mensaje el mensaje es mucho
mayor, dado que n es un numero con mucho mas dígitos. Enviaremos, pues, a B el
77
mensaje m = << YES >> .

Vamos a suponer que somos el usuario A cuya clave pública es (na , ea )


= (155011, 2347 ) y cuya clave privada es d a = 151267, con
p a = 409, q a = 379 yφ ( n a ) = 154224.

Para enviar el mensaje m, hemos de codificarlo, es decir, expresarlo en base 26 de modo


que el mensaje sea un elemento del grupo considerado, es decir, pertenezca a ℤ*46927 :

YES = Y .262 + E.26 + S = 24.26 2 + 4.26 + 18 = 16346 = m

Ahora encriptamos m con la clave publica de B:

c = meb ( mod nb ) = 1634639423 ( mod 46927 ) = 21166

Decodificamos el mensaje encriptado:

c = 21166 = 1.263 + 5.262 + 8.26 + 2 = BFIC

Por lo tanto, el mensaje a enviar a B es: << BFIC >>

Para que B pueda recuperar el mensaje, deberá codificar los datos recibidos en base
26 y a continuación realizar las operaciones que hemos indicado anteriormente:

BFIC = 1.263 + 5.262 + 8.26 + 2 = 21166 = c

Ahora recuperara m calculando

m = c db ( mod nb ) = 2116626767 ( mod 46927 ) = 16346

Se decodifica m y se obtiene el texto original

m = 16346 = 24.26 2 + 4.26 + 18 = YES

En la práctica, para agilizar las operaciones del criptosistema RSA se suele elegir
una clave pública pequeña, de modo que quien desee enviar un mensaje lo hago de la
forma más rápida posible .de hecho, es frecuente que muchos usuarios utilicen el mismo
exponente como su clave publica ( los exponentes más comúnmente utilizados son 3 y
216 + 1) . Esta situación no compromete la seguridad del criptosistema y permite que la
encriptación de los mensajes sea mucho más rápida que la descriptacion, así como que
la verificación de un mensaje sea mucho más rápida que la firma digital del mismo.

Desde el punto de vista algorítmico, si k es el numero de bits del modulo n, las


operaciones con la clave publica necesitan O ( k 2 ) pasos, las operaciones con la clave

78
privada necesitan O ( k 3 ) pasos y la generación de clave necesitan O ( k 4 ) pasos.

En la actualidad, el chip más rápido para el RSA tiene una velocidad de proceso
mayor que 600 kbits por segundo con un modulo de 512 bits, lo que supone que puede
ejecutar más de 1.000 operaciones de la clave privada del RSA por segundo. En
comparación, en software, el criptosistema de clave secreta DES es como mínimo 100
veces más rápido que el RSA, y en hardware DES es entre 1.000 y 10.000 veces más
rápido que RSA. No obstante, a pesar de esta diferencia de ejecución, el criptosistema
RSA.

No obstante, a pesar de esta diferencia de ejecución, el criptosistema RSA y otro de


clave pública se utiliza porque permiten firmar digitalmente los mensajes que se envían.

Dado que el criptosistema RSA es bastante lento en su ejecución, generalmente se


utiliza en conjunción con el criptosistema de clave secreta DES del siguiente modo: en
primer lugar, el lugar, el usuario A encripta el mensaje m con el criptosistema DES
mediante una clave aleatoria, y a continuación la clave DES utilizada se encripta con el
criptosistema RSA. Posteriormente, A envía por el canal inseguro la pareja formada por
el mensaje encriptado mediante DES y la clave DES encriptada con RSA. En este
protocolo se conoce como envoltura digital RSA. Para recuperar el mensaje recibido, el
usuario B descripta la clave de DES mediante su clave privada del RSA y luego utiliza
la clave obtenida para desencriptar el mensaje m.

El criptosistema RSA fue patentado en 1983 por Public Key Partners (PKP) en
estados unidos, y la patente no expira hasta el año 2000. PKP permita el uso no
comercial del RSA con fines personales, académicos o intelectuales, mediante la
correspondiente certificación, pero siempre dentro de estados unidos. La Exportación de
este criptosistema es bastante más difícil, aunque hay posibilidades de obtener permiso
del gobierno de los estados unidos para su uso, siempre que se utilice para autenticar
mensajes y no con fines de encriptación, a menos que el tamaño de la clave no exceda
de los 512 bits.

Ejemplo 2 de RSA
Intercambio de clave RSA (B → A) en este ejemplo Benito será el emisor y Adela la
receptora de una clave K .

En el protocolo intercambiaremos una clave K

Sea K = DA9F (16 bits)

Claves Benito 216 < 66.331 < 217 Claves Adela


nB = 65.669 nA = 66.331
Forzaremos cifrar un bloque de 16 bits
eB = 35, d B = 53.771 eA = 25, d A = 18.337

79
K = DA9 F16 = 55.96710
C = K eA mod nA
C = 55.967 25 mod 66.331 = 16.667

Benito envía a Adela C=16.667

En la práctica no habrá que forzar este tamaño ya que la cifra asimétrica se hace en un
cuerpo (más de mil bits mucho mayor que el numero que se cifra (cientos de bits)

Recuperación de la clave K por A

Claves Benito Claves Adela


nB = 65.669 nA = 66.331
eB = 35, d B = 53.771 eA = 25, d A = 18.377

Teníamos que: K = DA9 F16 = 55.96710

C = K eA mod nA C = 55.967 25 mod 66.331 = 16.667

Benito había enviado a Adela C = 16.667

Adela calcula:

C dA mod nA = 16.66718.377 mod 66.331 .=55.967

El intercambio de clave se ha realizado con confidencialidad porque solo Adela ha


podido realizar ese cálculo con su clave privada d A .

Los primos que ha usado Benito son (97,677) y los de Adela (11,587) ha podido realizar
ese cálculo con su clave privada d A .

Descifrando con números grandes

Grupo n = 91 = 7 *13; Φ ( n ) = Φ ( 7 *13) = ( 7 − 1)(13 − 1) = 12 N = 48

Elegimos e = 5 pues mcd ( 5, 72 ) = 1 ∴ d = inv ( 5, 72 ) = 29

Cifrado:

C ≡ N e mod n = 485 mod 91 = 5245.803.968 mod 91 = 55

Descifrado:

N ≡ C d mod n = 5529 mod 91 = 48...5529 ´´ya es numero grande´´

80
5529 Es un número con 51 dígitos…

5529 = 295473131755644748809642476009391248226165771484375

¿Cómo podemos acelerar esta operación?

1a Opción: usar deducibilidad 2 a opción: algoritmo exponenciación rápida

Opción óptima: usar el Teorema del Resto Chino

3.3.1 USO DEL TEOREMA DEL RESTO CHINO EN


RSA
Normalmente la clave pública e de RSA es un valor bastante bajo, por ejemplo 216 + 1
(un valor típico) no tendremos problemas con la velocidad de cifra porque el exponente
e será relativamente bajo, en este caso 17 bits.

Como el cuerpo de trabajo n = p * q es mucho mayor, del orden de 21.024 si hablamos


de clave de 1.024 bits, entonces la clave privada d será por lo general mucho mayor que
e y caerá muy cerca de ese valor de 1.024 bits. Por la tanto, podría ser costoso para el
receptor descifra algo con su clave privada o firmar digitalmente un documento con
dicha clave privada.

La solución está en aplicar el Teorema del Resto Chino: en vez de trabajar en n, lo


haremos en p y q, mucho más rápido que hacerlo en n.

3.3.2 DESCIFRADO RSA APLICANDO EL TRC


N = Cd mod n Aplicando el Teorema del Resto Chino

N = { Ap C p dp ( mod p )  + Aq [C q (mod q )]} mod n


dq

Con: Aq = q inv ( q, p )  = q p −1 mod n

Aq = p inv ( q, p )  = p q −1 mod n

d p = d mod ( p − 1) ; d q = d mod ( q − 1)

C p = C mod p ; Cq = C mod q

Se hacen más operaciones pero el tiempo de cálculo total es menor dado que los
valores d p , d q Ap yAq están pre-calculados. Las operaciones C p y Cq son sencillas y muy
rápidas. El único calculo que consume tiempo será C p dp y Cq dq per ambos se hacen en

81
cuerpo mucho menores que n.

Ejemplo 3. Descifrando RSA usando el TRC

sea: p = 89, q = 31, n = p * q = 89 * 31 = 2.759, Φ ( n ) = 88 * 30 = 2.640

Elegimos e = 29 ⇒ d = inv  e, Φ ( n )  = inv [ 29, 2.640] = 2.459

Si el numero a cifra es N = 1.995, entonces

C = N e mod n = 1.99529 mod 2.759 = 141

N = C d mod n = 1412.549 mod 2.749 = 1.995

Ap = q p −1 mod n = 3188 mod 2.759 = 713 Aq = q q −1 mod n = 8930 mod 2.759 = 2.047
d p = d mod ( p − 1) = 2.549 mod 88 = 85 d q = d mod ( q − 1) = 2.549 mod 30 = 29
C p = C mod p = 141mod 89 = 52d Cq = C mod q = 141mod 31 = 17

{ }
Reemplazado en: N = Ap C p dp ( mod p )  + Aq Cq dq ( mod q )  mod n

{ }
N = 713 5285 mod 89  + 2.047 17 29 mod 31 mod 2.759

N = {713*37 + 2.047 *11} mod 2.759 = ( 26.381 + 22.517 ) mod 2.759 = 1995

3.3.3 QUE FORTALEZA TIENE EL ALGORITMO RSA


ANTE ATAQUES?
El intruso q desee conocer la clave secreta d a partir de los valores n y e se enfrentara
al Problema de la Factorización de Números Grandes (PFNG), puesto que la solución
para conocer esta clave privada es conocer primero el valor del indicador de Euler
Φ ( n) = ( p − 1)( q − 1) para luego poder encontrar d = inv [ e, Φ(n)] pero para ello deberá
encontrar los valores de los números primos p y q.

A título de ejemplo colocamos una tabla de valores que indican los tiempos
aproximados que le tomarían a un procesador de 2 *108 instrucciones por segundo para
poder factorizar n.

82
Nº de bits (n) Nº de dígitos Días Años
60 18 1, 7 *10−8 -
120 36 1, 5*10−5 -
256 77 1,0 -
363 109 9, 2*102 2,5
442 133 9, 4*104 2,5*102
665 200 3,8*108 1, 0 *106

3.4. CRIPTOSISTEMA DE EL GAMAL


ELGAMAL propuso un esquema de clave pública basado en la exponenciación
discreta sobre el grupo multiplicativo de un cuerpo finito ℤ p . no obstante, aquí
presentaremos un protocolo más general al presupuesto por EL GAMAL sobre un
grupo finito G.

Suponemos, en primer lugar, que los mensajes son elementos de G y que el usuario A
desea enviar un mensaje m al usuario B. el protocolo mencionado anteriormente es el
siguiente:

1. Se selecciona un grupo finito G y un elemento α de G.

2. Cada usuario A elige un número aleatorio a, que será su clave privada, y calcula
α a en G, que será su clave pública.

Para que un usuario A envié un mensaje, m, a otro usuario B, suponiendo que los
mensajes son elementos de G, realiza las siguientes operaciones:

1. A genera un numero aleatorio v y calcula α v en G.


2. A mira la clave publica de B, α b , y calcula (α b )v y m. α bv en G.
3. A envía la pareja (α v , m.α bv ) a B.

Para recuperar el mensaje original:

1. B calcula (α v )
b

2. B obtiene m solo con calcular

m.α bv
α vb

83
Por seguridad y eficacia, el grupo G y el elegirse de modo que verificaran con las
siguientes condiciones:

Por eficacia, la operación en G debería ser << facil >> de aplicar.

Por seguridad, el problema del logaritmo discreto en el subgrupo cíclico G generado por
α , < α >, debería ser << dificil >> .

Para simplificar el protocolo anterior, podemos suponer, tal y como fue descrito por EL
GAMAL, que el grupo sobre el que se llevan a cabo las operaciones mencionadas en el
protocolo anterior es el grupo multiplicativo del cuerpo ℤ p ; de esta forma, las potencias
y productos anteriores se efectúan modulo un numero primo p.

Ejemplo 4.

Consideremos el grupo ℤ*15485863 , con p = 15485863 primo y un generador α = 7 .

A y B eligen las siguientes claves: a = 28236, b = 21702, α = 7 28236 ≡ 12506884

( mod15485863) yα b = 721702 ≡ 8890431 ( mod15485863) , Que son las claves privadas


y públicas de A y B, respectivamente.

Supongamos que A quiere mandar a B el mensaje m =<< HIJO >> .

Entonces, codificamos m como en el ejemplo anterior:

m = HIJO = 7.263 + 8.262 + 9.26 + 14 = 128688

A elige el numero v = 480 y calcula α = 7 ≡ 12001315 ( mod15485863) .


v 480

A continuación A calcula el valor de (α b ) = 8890431480 = 9846598 ( mod15485863) ,


v

El de m.α vb = 128688. 9846598 ≡ 8263449 ( mod15485863) , y decodifica el par


formado por: (α v , m.α vb ) = (12001315,8263449 ) , que es el mensaje encriptado:

α v = 12001315 = 1.265 + 0.264 + 6.233 +21.262 + 11.26 + 1


= BAGVLB,
m.α vb = 8263449 = 18.26 4 + 2.263 + 4. 262 + 0.26 + 25
= SCEAZ

84
Por lo tanto, el mensaje a enviar a B es: (BAGVLB, SCEAZ).

Veamos como recupera B codifica en base 26 la pareja recibida:

En primer lugar, B codifica en base 26 la pareja recibida:

BAGVLB = 1.265 + 0.264 + 6 .233 + 21.262 + 11.26 + 1


= 12001315 = α v ,
SCEAZ = 18.264 + 2.263 + 4.26 2 + 0.26 + 25 = 826449
= m.α vb

A continuación B calcula (α v ) = 1200131521702 ≡ 9846598 ( mod15485863) y luego


b

tiene calcular

m.α vb
α vb

Para ellos debe determinar el inverso de α vb modulo 15485863. La determinación de


este inverso se lleva a cabo por medio del algoritmo de Euclides extendido, es decir,
como

−662582.α vb + 421299. p = 1

Resulta que :

1
≡ −662582 ≡ 14823281( mod15485863 )
α vb

Por tanto:

m.α vd 8263449
= ≡ 8263449.14823281 ≡ 128688 = m
α vd
9846598

Y recupera el mensaje original:

m = 128688 = 7.263 + 8.262 + 9.26 + 14 = HIJO

3.5. CAMBIO DE CLAVE DE DIFFIE-HELLMAN


Con objeto de evitar los problemas relacionados con: La distribución de claves,
manejo de claves y falta de firma digital , Diffie y Hellman describieron un protocolo
por medio del cual dos personas pueden intercambiarse pequeñas informaciones
secretas por un canal inseguro. Este protocolo se conoce como el cambio de clave de
Diffie-Hellman, y es el siguiente:

85
1. Los dos usuarios, A y B, seleccionan públicamente un grupo multiplicativo
finito, G, de orden n y un elemento α ∈ G.
2. A genera un numero aleatorio a, calcula α a en G y transmite este elemento a B.
3. B genera un numero aleatorio b, calcula α b en G y transmite este elemento a A.
4. A recibe α b y calcula (α b ) a en G.
5. B recibe α a y calcula (α a ) en G.
b

Ahora A y B poseen un elemento común y secreto del grupo G;. Un escucha (espía), S,
podría conocer G, n, α a y α b y debería poder calcular el elemento α ab , lo que hasta
ahora es un problema intratable. Este problema se conoce como el Problema de Diffie-
Hellman Generalizado (Generalized Diffie-Hellman Problem, GDHP). Si el grupo G es
el grupo multiplicativo de los enteros módulos un numero primo, se le denomina
simplemente Problema de Diffie-Hellman (Diffie-Hellman Problem, DHP).en realidad,
el DHP consiste en hallar un algoritmo computacionalmente eficiente que resuelva esta
cuestión. Cuando se trata de determinar un algoritmo eficiente que permita el cálculo de
a conocidos G, n, α , α a , estamos ante el llamado Problema del Logaritmo Discreto
Generalizado (Generalized discrete Logarithm problema ,GDLP). Si el grupo G es el
grupo multiplicativo de los enteros módulos un numero primo, el problema se conoce
simplemente como Problema del logaritmo Discreto (Dicrete longarithm Problem,
DLP). Resulta claro que si el escucha S pudiera resolver el GDLP. De ahí que se diga
que la seguridad del cambio de clave de Diffie-Hellman está basada en la del logaritmo
discreto. La conjetura generalmente aceptada es que ambos problemas son
computacionalmente equivalentes.

Ejemplo. Sea p el número primo 53. Supongamos que G = ℤ*53 y sea α = 2 un


generador. El protocolo de Diffie-Hellman es el siguiente:

1. A elige a = 29 , calcula α a = 229 ≡ 45 ( mod 53) y envía 45 a B.


2. B elige b = 19 , calcula α b = 219 ≡ 12 ( mod 53) y envía 12 a A.
3. A recibe 12 y calcula 1229 ≡ 21( mod 53)
4. B recibe 45 y calcula 4519 ≡ 21( mod 53)

La clave privada o la información secreta que comparten ahora A y B es 21. Un


escucha, S, conoce del protocolo anterior ℤ*53 , 2, 45 y12 pero que no puede conocer que
la información secreta compartida por A y B es 21.

86
3.6 VERSION ELIPTICA DE EL GAMAL Y DE
HIFFIE-MILLER
3.6.1 CAMBIO DE CLAVE DE DIFFIE-HELLMAN PARA
CURVAS ELIPTICAS
Supongamos que los usuarios A y B quieren ponerse de acuerdo, utilizando una curva
elíptica E, en una clave que posteriormente utilizaran en un determinado criptosistema.
En primer lugar, hacen público un cuerpo finito GF (q) y una curva elíptica sobre él E.
la clave que quieren determinar será construida a partir de un punto P de la curva E por
ejemplo, la coordenada x de tal punto---, pero para ello han de mantener secreto el punto
P elegido. Veamos la forma en que determinan este punto de forma secreta.

A y B eligen públicamente un punto G ∈ E que servirá como base.

Este punto G juega el papel análogo al generador considerado en el cambio de clave


de Diffie-Hhellman, aunque no sea de hecho un generador de la curva E. Este punto
G se debería elegir de modo que su orden fuera grande; es decir, o bien el número de
puntos de la curva elíptica o bien un divisor grande suyo.

Para generar la clave, una vez elegido el punto G.

1. A selecciona un numero aleatorio a de orden de magnitud igual que el de q, que


mantiene secreto.
2. A continuación calcula a.G ∈ E y lo envía a B.
3. De forma analógica, B selecciona un numero aleatorio b, calcula b.G ∈ E y lo
envía a A.
4. A calcula el punto de la de la curva elíptica P = a.b.G.
5. B calcula el punto P = a.b.G.

Un escucha podría conocer los valores de G, a. G, y b. G del protocolo anterior, pero


no tendía forma de saber el valor de P, supuesto intratable el problema del logaritmo
discreto en una curva elíptica.

3.6.2 CRIPTOSISTEMA DE EL GAMAL PARA CURVAS


ELIPTICAS
Veamos cómo puede definirse el criptosistema de El Gamal sobre una curva elíptica,
de modo que sea posible encripta los puntos de dicha curva, Pm , obtenido a partir de un
mensaje m:

1. Se hace público un cuerpo finito GF (q), una curva elíptica sobre el E y un


punto y un punto base de la curva G ∈ E .

87
2. A continuación, cada usuario A elige secretamente un número a (su clave
privada) y hace público el punto C A = a.G, que será su clave pública.

Si el usuario A desea enviar el punto de la curva Pm (que corresponde una parte a una
parte codificada del mensaje) encriptado a B, lleva a cabo las siguientes operaciones:

1. A elige un entero aleatorio k y calcula el punto k. G ∈ E.

2. A examina la clave publica de B, CB = b.G, y calcula entonces


k .Cb = k .b.G ∈ EyPm + k .Cb ∈ E.
3. A envía a B el par de puntos ( k .G, Pm + k .CB ) , donde CB es la clave publica de B.

Para recuperar el mensaje original:

1. B multiplica el primer punto de los dos recibidos por su clave privada, b.

2. B obtiene el punto de la curva que corresponde al mensaje solo con restar el


valor obtenido, b.k .G , del segundo punto recibido:
Pm + k .C B − b.k .G = Pm + k .b.G = Pm.

Ejemplo. Después del ejemplo presentado sobre como codificar el mensaje


m =<< STOP >>, vamos a encriptar el primer de los puntos obtenido en dicha
codificación.

Consideremos la curva elíptica E : y 2 + y = x3 − x sobre el cuerpo ℤ*715 y el punto base


G = ( 361,383) ∈ E. supongamos que el mensaje que A desea enviar a B es
m =<< S >> . Ya hemos visto que el punto de la curva E que correspondiente a este
mensaje es el punto Ps = ( 562,576 ) ∈ E. veamos como encriptar este punto mediante el
criptosistema de El Gamal para la curva elíptica E.

En primer lugar, vamos a ver como B genera su clave privada y su clave pública. B
considera el número b = 7 como su clave privada, y calcula 7G, que será su clave. Para
llevar a cabo el cálculo de 7G, B expresa 7 en base 2 y obtiene: 7 = 2 2 + 2 + 1; por
consiguiente, el cálculo de 7G se lleva a cabo solo con reiterar sucesivamente el cálculo
de 2G.

Una vez efectuado este cálculo, obtiene que su clave pública es CB = 7G = ( 556, 495) .
A continuación, A utiliza la clave pública de B para encriptar el punto PS de las
siguientes maneras:

88
A considera el numero k=3 y envía a B la pareja de puntos ( k .G, PS + k .Cb ) . para ello,
determina 3G= (740,737), 3CB = ( 639,32 ) y PS + 3CB = ( 348, 603) . Así pues, A envía a B
la pareja de puntos ( ( 740, 737 ) , ( 348, 603) ) .
Para recuperar el mensaje original, B multiplica el primero de los puntos recibidos por
su clave privada, esto es, determina el valor de b3G = 7 ( 740,373) = ( 639,32 ) y a
continuación resta el punto obtenido del segundo punto recibido; es decir, determina el
valor de (348,603) – (639, 32) = (562, 576) = Ps . una vez que B conoce cuál es el punto
de la curva elíptica que corresponde al mensaje, procede como ya se ha indicado para
obtener el mensaje m.

3.6.3 ALGORITMO DE RABIN

El sistema de llave asimétrica de Rabin se basa en el problema de calcular raíces


cuadradas modulo un numero compuesto. Este problema se ha demostrado que es
equivalente al de la factorización de dicho número.

En primer lugar escogemos dos números primos, p y q, ambos congruentes con 3


modulo 4 (los dos últimos bits a 1). Estos primos son la clave privada. La clave publica
es su producto, n = pq.

Para codificar un mensaje m, simplemente se calcula:

c ≡ m 2 (mod n)

La decodificación del mensaje se hace calculando lo siguiente:

m1 ≡ c(p+1)/ 4 (mod p)
m 2 ≡ (p -c(p+1)/ 4 ) (mod p)
m 3 ≡ c (q+1)/ 4 (mod q)
m 4 ≡ (q -c(q+1)/4 )(mod q)

89
Luego se escogen a y b tales que: a ≡ q(q −1 (mod p)) y b ≡ p(p −1 (mod q)).

m a ≡ (am1 + bm3 ) (mod n)


m b ≡ (am1 + bm 4 ) (mod n)
m c ≡ (am 2 + bm3 ) (mod n)
m d ≡ (am 2 + bm 4 ) (mod n)

Desgraciadamente, no existe ningún mecanismo para decidir cuál de los cuatro es el


autentico, por lo que el mensaje debería incluir algún tipo de información para que el
receptor pueda distinguirlo de los otros.

90
Capitulo 4

Conclusiones
4.0 CONCLUSIONES

4.VULNERABILIDAD DE LOS SISTEMAS


CRIPTOGRAFICOS

Podemos apreciar que pueden existir sistemas teóricamente seguros, capaces de


resistir cualquier ataque. También se verá que estos sistemas en la práctica carecen de
interés, lo cual implica tener que adoptar un compromiso entre el coste del sistema
tanto computacional como de almacenamiento, e incluso económico frente a su
resistencia a diferentes ataques criptográficos. La información posee un tiempo de vida,
y pierde su valor transcurrido este. Los datos sobre la estrategia de inversiones a largo
plazo de una gran empresa, por ejemplo, tienen un mayor tiempo de validez que la
exclusiva periodística de una sentencia judicial que se va a hacer pública al día
siguiente. Sería suficiente, tener un sistema que garantice que, el tiempo que se puede
tardar en comprometer su seguridad, es mayor que el tiempo de vida útil de la propia
información que este alberga. Esto no suele ser fácil, sobre todo porque no tardaría lo
mismo un oponente que disponga de una única computadora de capacidad modesta,
que otro que emplee una red de supercomputadoras. Por eso también ha de evaluarse si
la información que queremos proteger vale más que el esfuerzo de criptoanálisis que va
a necesitar, porque entonces puede que no esté segura. La seguridad de los
criptosistemas se suele medir en términos del número de computadoras y del tiempo
necesarios para romperlos, y a veces simplemente en función del dinero necesario para
llevar a cabo esta tarea con garantías de éxito.

En cualquier caso hoy por hoy existen sistemas que son muy poco costosos o incluso
gratuitos, como algunas versiones de PGP (Pretty God Privacity sistema de
encriptación aplicado a servicios de mensajería electrónica ), que nos garantizan un
nivel de protección tal que toda la potencia de cálculo que actualmente hay en el planeta
sería insuficiente para romperlos.

Tampoco conviene depositar excesiva confianza en los algoritmos de cifrado, puesto


que en el proceso de protección de la información existen otros puntos débiles que
deben ser tratados con extremo cuidado. Por ejemplo, no tiene sentido emplear
algoritmos con niveles de seguridad extremadamente elevados si luego se escogen
contraseñas (passwords) fáciles de adivinar. Una mala práctica muy extendida es la de
escoger palabras clave que contengan fechas, nombres de familiares, nombres de
personajes o lugares de ficción, etc.

Son las primeras que un atacante inteligente y bien informado probaría. Tampoco es
una práctica recomendable anotarlas o decírselas a nadie, puesto que si la clave cae en
malas manos, todo el sistema queda comprometido, por buenos que sean los algoritmos
empleados.

91
4.1 ATAQUES A SISTEMAS CRIPTOGRAFICOS
4.1.1 RSA

Ya hemos comentado la elaboración de las claves para este criptosistema.


Recordémoslo brevemente.

1. En primer lugar se seleccionan dos números primos grandes: p y q, se calcula


n = p.q y se considera el grupo ℤ n.
2. A continuación se elige un numero aleatorio e menor que Φ ( n ) de modo que sea
primo con el orden del grupo; es decir, de modo que mcd ( e, φ ( n ) ) = 1 .
3. Posteriormente se calcula el inverso de e modulo Φ ( n ) , d.
4. La clave publica del usuario es la pareja (n, e) y se mantienen en secreto el resto
de los números.

El ataque contra este criptosistema consiste en localizar de alguna manera la clave


privada de modo que se pueda, en un tiempo factible, descriptar cualquiera de los
mensaje recibidos por el usuario. Así pues, se trata de determinar el valor de d
conociendo n y e, o cualesquiera otros números que nos permitan localizar el valor de d.

Para romper el protocolo, es necesario conocer Φ ( n ) , pues entonces es sencillo


localizar el valor de d. Ahora bien, conocido n, no es fácil determinar el valor de Φ ( n )
, a no ser que se tenga información adicional. Es sabido que si n es producto de dos
primos (que es el caso del criptosistema RSA), entonces calcular Φ ( n ) es
computacionalmente equivale a factorizar n; es decir, puede calcular en un tiempo
asequible. Por ello se dice que la seguridad del criptosistema RSA está basada en el
problema de la factorización, aunque no se ha demostrado que la única manera de
determinar d a partir de e sea a través de la descomposición de n.

Dado que romper el criptosistema RSA está íntimamente ligado al problema de la


factorización de n, conviene elegir este n de modo que se dificulte al máximo su
posible factorización, supuesto que ya es sabido que es el producto de dos números
primos. Para ello, se eligen aleatoriamente p y q verificando las siguientes condiciones:

92
1. p y q solo deben diferir en unos pocos dígitos, aunque no deben ser demasiado
cercanos.
2. ( p − 1) y ( q − 1) deben contener factores primos grandes.
3. El mcd ( p − 1, q − 1) debe ser pequeño.

Las razones matemáticas para tales condiciones son las siguientes:

1. Si p y q estuvieran demasiado cercanos, con p>q, entonces ( p − q) / 2 es


pequeño y ( p + q ) / 2 es solo ligeramente mayor que n .Además,

( p + q) ( p − q)
2 2

−n =
4 4

Con lo que el primer miembro de la igualdad anterior es un cuadrado perfecto.


Para factorizar n, basta entonces con aplicar el método de Fermat ; Es decir, probar
los enteros x > n hasta que uno de ellos verifique que x 2 − n sea un cuadrado
perfecto, y 2 , con lo que p = x + y y q = x − y.

2. Si los factores primos de p − 1 y de q − 1 fueron pequeños, también lo serian los


de Φ ( n ) . Suponiendo que todos los factores primos r de φ ( n) fueran menores
que un entero k, como log r n  es el exponente de la máxima potencia de r que
posiblemente divida a φ ( n) , es computacionalmente posiblemente construir
todos los candidatos v a ser φ ( n) y chequear el criptograma elevado a la potencia
( v + 1) / e, suponiendo que este valor es entero.

3. Puesto que p-1 y q-1 son pares, resulta que φ ( n) es divisible por 4.Si el mcd
( p − 1, q − 1) tuvieran un valor grande, el mcm ( p − 1, q − 1) = m tendría un valor
pequeño en comparación con φ ( n) . Entonces cualquier inverso de e modulo m
serviría como exponente para descriptar el mensaje.

Una forma de elegir estos dos números podría ser la siguiente: se elige un primo r

grande de modo que p = 2.r + 1 y q = 2. p + 1 sean primos (un número primo, p,

elegido así se llama un primo seguro). De esta forma, se verifican las tres
condiciones enunciadas más arriba. En efecto, p y q solamente diferente en unos
dígitos, p − 1 = 2.r y q − 1 = 2. p tienen factores primos grandes: r y p,
respectivamente, finalmente, mcd ( p − 1, q − 1) = 2 es pequeño.

93
Según acabamos de mencionar, el ataque contra el RSA se basa en la
factorización, pero para ello conviene elegir adecuadamente los números primos p y
q. Nos encontramos entonces con un problema que se agrava si se desea que los dos
primos sean grandes. Por tanto, deberíamos analizar estas dos operaciones:

La primalidad, es decir, la determinación de números que sean primos y la


factorización, esto es, descomponer un numero como producto de factores primos.
Como se puede apreciar, los dos problemas están muy relacionados, pero son dos
problemas completamente distintos.

Otro tipo de ataque a este criptosistema consiste en determinar una técnica que
permita computar raíces e-esimas modulo el numero n. La cuestión es que si el texto
cifrado a partir de un mensaje m es c, con c = m ( mod n ) , entonces la raíz e-esima
e

de c ( mod n ) es el mensaje m. Este ataque permitirá a un escucha recuperar el


mensaje encriptado y falsificar la firma digital sin necesidad de conocer la clave
privada. No se sabe si este ataque es equivalente a factorizar n; en realidad no se
conocen intentos de atacar al RSA por este método.

Debe quedar bien claro que los ataque contra el criptosistema RSA están en la
línea de lo señalado hasta ahora. No puede considerar como tal un ataque contra
RSA que consista en el intento de romper una implementación insegura de este
criptosistema, ni tampoco el hecho de hacer hipótesis sobre cuál puede ser el
mensaje enviado.

Otra cuestión a considerar en los ataques contra este criptosistema es la relativa al


aumento en la potencia de los computadores a medida que pasa el tiempo. Pudiera
pensarse que este factor facilita la labor de los criptoanalistas y por ello hace menos
seguro el RSA.

Sucede, sin embargo, lo contrario. Este aumento de potencia en hardware hace


más seguro el criptosistema RSA. La cuestión estriba en que las mejores hardware
que puedan permitir a un criptoanalista factorizar un numero, producto de dos
primos grandes, permiten a la vez a un usuario de RSA utilizar una clave con
docenas de dígitos mas grande, lo que hace que la factorización sea mucho más
difícil. Baste tener en cuenta que doblar la longitud del modulo incrementa, en
media, el tiempo requerido para las operaciones de la clave pública (encriptado y
verificación de la firma) en un factor de 4, y las operaciones de la clave privada
(descriptado y firma digital) en un factor de 8.

A continuación analizaremos con mayor detalle los dos problemas subyacentes al


criptosistema RSA: la primalidad y la factorización.

94
4.1.2 TAMAÑO DE LOS PARAMETROS EN RSA

Toda la seguridad de RSA está basada en sus parámetros: los primos p y q y los
valores de sus claves de sus claves públicas e y privada d.

El cuerpo de trabajo debe ser al menos de 1.024 bits con primos p y q de al menos 500
bits y que diferencia unos cuantos dígitos.

Aunque la clave pública debe ser pequeña para facilitar así las operaciones, su valor no
puede ser excesivamente bajo. Se usara el número 4 de Fermat

F4 = 2 2 + 1 = 216 + 1 = 65.537.
4

Como ed mod Φ ( n ) = 1, esto hace q la clave privada d sea un número superiores a los
1.000 bits, por lo general cerca de 1.024.

Habrá que prestar también especial atención en la generación de dichos primos y la


posterior comprobación de su primalidad.

4.1.3 EL PROBLEMA EN LA ELECCION DEL VALOR DE


N

Si p y q son muy cercanos, puede ser fácil factorizar n

Si p ≈ q y suponemos que p > q, entonces ( p − q ) / 2 es un entero muy pequeño y por


otra ( p + q ) / 2 será un entero superior a n.

Además se cumplirá que: n = ( p + q ) / 4 − ( p − q ) / 4. Esto lo podemos escribir como


2 2

n = x2 − y2 ⇒ x2 − y 2 − n

Elegimos enteros x > n hasta q ( X − n ) sea cuadrado perfecto. En este caso


2

X = ( p + q ) / 2; y = ( p − q ) / 2. Por lo tanto rompemos el valor n:


p = ( x + y ) ; q = ( x − y ).

95
Ejemplo 1: de mala elección del valor de n

Sea p = 181; q = 251 ⇒ n = 181* 251 = 45.431

Como 45.431 = 213,14 buscaremos valores enteros de x mayores que 213 de forma
que ( X 2 − 45.413) sea un cuadro perfecto ↓

1. X = 214 ⇒ X 2 − 45.413 = 365 ∴ 365 = 19,10


2. X = 215 ⇒ X 2 − 45.431 = 794 ∴ 794 = 28,17
3. X = 216 ⇒ X 2 − 45.431 = 1.225 ∴ 1.225 = 35

Entonces: p = x − y = 216 − 35 = 181

q = x + y = 216 + 35 = 251

Para evitar otros problemas, es recomendable usar los denominados primos seguros.

4.1.4 ELECCION DE LOS NUMEROS PRIMOS


Los valore primos deben elegirse apropiadamente:

Sistema RSA
a) p y q deben diferenciar en unos pocos dígitos.
Recuerde que la relación bit/digito es ≈ 3,3.
b) p y q no deben ser primos muy cercanos.
c) Longitud mínimo de p y q: 500 bits.
d) Valores de ( p − 1) y ( q − 1) del Indicador de Euler con factores primos
grandes.
e) El mcd entre ( p − 1) y ( q − 1) debe ser pequeño.

Esto se cumple con los denominados primos seguros.

96
4.1.5 CALCULO DE NUMEROS PRIMOS p y q
SEGUROS
Se elige r un primo grande de modo que: 2 * r + 1 = p

Se elige un r’ primo algo mayor que r de modo q: 2 * r '+ 1 = q

Ejemplo 2:

Sean r = 1.019 y r ' = 3.863

p = 2*1.019 + 1 = 2.039 (11bits ) Es primo

q = 2*3.863 + 1 = 7.727 (13bits ) Es primo

n = p * q = 15.755.353

Luego: p − 1 = 2.038; q − 1 = 7.726

p − 1 = 2 *1.019; q − 1 = 2 *3.863 ⇒ mcd ( p − 1, q − 1) = 2

Los primos p y q cumplen la condición de primos seguros

Nota: es posible que encuentren algún documento donde proponga elegir un valor r
primo y comprobar luego si p = 2r + 1 y q = 2 p + 1 son primos. En este caso p y q
seguirán siendo primos seguros pero solos de forma independiente. Aquí será muy
fácil atacar el valor n factorizandolo a través de una ecuación de segundo grado.

4.1.6 PAR DE PRIMOS SEGUROS PERO


INDEPENDIENTES
Elegimos r primo. Comprobamos primero que p = 2r + 1 es primo luego que
q = 2 p + 1 también es primo.

Los valores de p y q serán primos seguros pero en el sistema RSA basado en


n = p * q no servirán como pareja dado que:

n = p * q = [ 2r + 1][ 2 p + 1] = [ 2r + 1]  2 ( 2r + 1) + 1 = [ 2r + 1][ 4r + 3]

n = 8r 2 + 10r + 3 ⇒ 8r 2 + 10r + ( 3 − n ) = 0

Luego: r =  −10 ± 100 − 32 ( 3 − n )  / 16 =  −10 ± 4 + 32n  / 16

97
r =  −10 + 4 + 32n  / 16

Conocido el valor de r podemos calcular p y q.

Ejemplo: r = 41, p = 2r + 1 = 83, q = 2 p + 1 = 167, n = 13.861.

r =  −10 + 4 + 32 *13.861 / 16 = [ −10 + 666] / 16 = 41.

4.1.7 CLAVES PRIVADAS PAREJAS EN RSA


Una clave privada pareja CPP d p , permite descifrar criptograma C resultado de una
cifra con la clave pública e. En el sistema RSA habrá como mínimo una clave d p
pareja de la clave privada d.

Esto se debe a que las claves inversas e y d lo serán en Φ ( n ) y en cambio la cifra se


hace en el cuerpo n.

Ejemplo 3:

Si p = 13; q = 19; n = 247, Φ ( n ) = 216 y elegimos e = 41, entonces

d = inv ( 41, 216 ) = 137, que es único. Si ciframos con la clave pública el número

N = 87 obtenemos C ≡ 87 41 mod 247 = 159 .

Luego sabemos que N ≡ C d mod n = 159137 mod 247 = 87

Pero también lo desciframos con d p = 29, 65, 101, 173, 209 y 245.

4.1.8 NUMERO DE CLAVES PRIVADAS PAREJAS


Si γ = mcm ( p − 1) , ( q − 1)  y sea dγ = e−1 mod γ = inv ( e, γ )

La clave pública e tendrá λ claves parejas d i de la forma:

di = dγ + 1γ 1 < di < n

i = 0,1,...λ λ = ( n − dγ ) / γ 

98
En el ejemplo anterior tenemos que:

γ = mcm ( p − 1) , ( q − 1)  = mcm (12,18 ) = 36

Luego: dγ = inv ( 41,36 ) = 29, así d i = dγ + iγ = 29 + i *36

Es decir d i = 29, 65,101,137,173, 209, 245. Observe que en aparece (137) la clave
privada d y comprobemos que:

λ = ( n − dγ ) / γ  = ( 247 − 29 ) / 36  = 60, 05 = 6

Ejemplo 4: Casos extraños de claves privadas parejas

Sea p = 751, q = 1.009; e=13 Sea p = 379, q = 1.783; e=71


Clave privada: d=407.707 Clave privada: d=531.287
Nº De clave privadas parejas: 5 Nº De clave privadas parejas: 53
29.077,155.077,281.077,533.077, 7.379,19.853,32.327,44.801,57.275,
659.077 69.749,82.223,94.697,107.171,
119.645,132.119,144.593,157.067,
Sea p = 751, q = 1.009; e=101 169.541,…506.339,518.813,543.761,
Clave privada: d=553.901 556.235,568.709,581.183,593.657,
Nº De clave privadas parejas: 5 606.131,618.605,631.709,643.553
49.901,301.901,427.901,679.901. 656.027,668.501 …
Y separadas 12.474.
Para otros valores de e, siempre existe
una separación entre las claves privadas Sea p = 379, q = 1.783; e=131
de: 126.000 Ahora las CPP aumentan a: 54

4.1.9 MINIMIZANDO LAS CLAVES PRIVADAS PAREJAS


Para que λ sea lo más pequeño posible ( λ = 1) un primer paso es elegir los primos p y q
como primos seguros.

Ejemplo 5:

Sean r ' = 5, r '' = 23 ⇒ p = 2 *5 + 1 = 11 (es primo)

q = 2 * 23 + 1 = 47 (es primo)

En estas condiciones con n = 517 y Φ ( n ) = 460, sea e = 1

99
Luego γ = mcm (10, 46 ) = 230 y dγ = inv (17, 230 ) = 203

Entonces λ = ( n − dγ ) / γ  = ( 517 − 203 ) / 230  = 1,36 = 1

Así: d i = dγ + iγ = 203 + i * 203 = 203, 433 ⇒ λ = 1

En efecto, d = inv  e, Φ ( n )  = inv (17, 460 ) = 433 y lo cifrado con e = 17 también se


descifra con d p = 203.o

Minimizando no sólo con primos seguros

Para que λ sea igual a la unidad, habrá que elegir además un valor adecuado de clave
pública:

Tomando el mismo ejemplo anterior:

p = 11; q = 47; n = 517 y Φ ( n ) = 460 .

Según el valor que el elijamos de clave pública e, podríamos obtener más de una clave
privada pareja:

Sea: e = 7, d = 263 γ = 230 y dγ = inv ( 7, 230 ) = 33

d i = dγ + iγ = 33 + i * 230 = 33, 263, 493 ⇒ λ = 2

Sea: e = 77, d = 233 γ = 230 y dγ = inv ( 77, 230 ) = 3

d i = dγ + iγ = 3 + i * 230 = 3, 233, 463 ⇒ λ = 2

Con primos seguros, el número de clave parejas será siempre bajo.

Si bien al generar claves RSA con libretas actuales como Crypto++ de Wei Dei (Open
SSI) aparecen claves que no pueden considerarse como óptimas ya que no se controla
este hecho, hay que tener en mente que las claves privadas parejas tendrán siempre
valoradas muy cercanos al cuerpo de Φ ( n ) 2n
es decir un tamaño del orden de bits.

Por lo tanto, independientemente de la distribución, se trata de una búsqueda en un


2n 21024
cuerpo cercano a bits, en la actualidad en bits, es decir un valor más intenso
para la capacidad de cómputo actual, incluso suponiendo un ataque similar al del DES
Challengue III y un cálculo de claves por segundo varios órdenes de magnitud superior.

No obstante, en todos estos temas siempre hay que estar en alerta pues en cualquier
momento puede aparecer algún método óptimo de ataque.

100
4.1.10 CLAVES PAREJAS DE LA CLAVE PUBLICA EN
RSA
Al trabajo en un cuerpo finito y con iguales opciones de cifra con la clave pública e y la
clave privada d, tenemos que las ecuaciones vistas anteriormente son validas en este
entorno, cambiando d por e.

No es un problema puesto que todo el mundo conoce la clave pública y el sistema sigue
siendo igual de seguro.

Se cumple que los valores de dicha clave parejas son similares y equivalentes en ambos
entornos en ambos entornos, el de las claves públicas y el de las claves privadas.

Ejemplo 6: de firma y claves parejas de e

Retomamos el primer ejemplo de clave privadas parejas con:

p = 13; q = 19; n = 247, Φ ( n ) = 216, e = 14, d = 137

Si firmamos N=24 obtenemos C ≡ 24 mod 247 ≡ 215


137

Luego sabemos que N ≡ C mod n ≡ 247 ≡ 24


e

eγ = inv ( d , γ ) = inv (137,36 ) = 5,


Como entonces:

λ = ( n − eγ ) / γ  = ( 247 − 5 ) /36 )  = 6, 72 = 6

ei = eγ + iγ = 5 + i *36 = 5, 41, 77,113,149,185, 221

Y se podrá comprobar el criptograma C de la firma con cualquier de estas claves,


parejas de la clave pública e.

4.1.11 Comprobación de una firma digital

Un usuario firma un hash de un mensaje con su clave privada, la cual envía al destino
junto con el mensaje original. En destino se descifra con clave pública emisor y se
comprarán las dos hash, el de emisión y el recuperado en recepción, para dar validez a
dicha firma.

101
En este escenario, esto significa que se podría dar por valida una firma descifrar el
hash recibido con una clave pública pareja e’ distinta a la inversa de la usada en emisión
y dar valides a dicha firma; es decir usando algunas de las claves publicas parejas.

Esto en si no es un ataque por lo que, al menos en este contexto y en principio no


debería considerarse como una vulnerabilidad. Esto es así porque, además, como se ha
dicho es típico que la clave publica sea el mismo número primo para todos, el valor
e = 65.537 = 216 + 1.

Como es obvio, lo que será distinto para par de claves con p y q.

4.1.12 NUMEROS NO CIFRABLES EN RSA

Si N e mod n = N se dice que N es un número no cifrable, NNC.

En RSA habrá como 9 números no cifrable.

En caso más crítico, todos los números del cuerpo n puede ser no cifrables como
veremos más adelante.

Para conocer estos valores no cifrables, habrá que hacer un ataque de descifrado por
fuerza bruta en p y q, es decir deberemos comprobar que X e mod p = X y
X e mod q = X con 1<X< n – 1.

Ejemplo 7:

Sea el cuerpo n = 35 ( p = 5, q = 7 ) , con Φ ( n ) = 24 y e = 11 .

Dentro de los números posibles {0,1} . El valor n-1 (en este caso 34) será también
siempre no cifrable.

4.1.13 CANTIDAD DE NUMEROS NO CIFRABLES


La cantidad de números no cifrable dentro de un cuerpo n será:

σ n = 1 + mcd ( e − 1, p − 1)  σ n = 1 + mcd ( e − 1, q − 1) 

Los números no cifrables serán:

N =  q {inv ( q, p )} N p + p {inv ( p, q )} N q  mod n

Con: N p las soluciones de N e mod p = N

102
N q las soluciones de N e mod q = N

En el ejemplo anterior se da el caso mínimo

Ejemplo 8: de números no cifrables (1)

Sea p = 13; q = 17; n = p * q = 221

Elegimos e = 7 por lo de d = inv ( 7,192 ) = 55, luego:

σ n = 1 + mcd ( e − 1, p − 1)  1 + mcd ( e − 1, q − 1) 

σ 221 = 1 + mcd ( 6,12 )  1 + mcd ( 6,16 )  = (1 + 6 )(1 + 2 ) = 21

Soluciones de N 7 mod13 = N ⇒ N p = {0,1,3, 4,9,10,12}

Soluciones de N 7 mod17 = N ⇒ N q = {0,1,16}

Los números no cifrable serán:

N =  q {inv ( q, p )} N p + p {inv ( p, q )} N q  mod n


N = 17 {inv (17,13)} N p + 13{inv (13,17 )} N q  mod 221
N = {17 *10} N p + {13* 4} N q  mod 221
N = 170* N p + 52* N q  mod 221

Ejemplo 9: de números no cifrables (2)

Teníamos: N p = {0,1,3, 4,9,10,12} y N q = {0,1,16}

N = 170* N p + 52* N q  mod 221

N = [170*{0, 1,3, 4, 9, 10, 12} + 52* {0, 1,16}] mod 221

N = {0, 170, 510, 680, 1.530, 1.700, 2.040} + {0, 52,832} mod 221

N = [ 0 + 0, 0 + 52, 0 + 832, 170 + 0, 170 + 52, 170 + 832, ...] mod 221

N = [0, 52, 832, 170, 222, 1.002, 510, 562, 1.342, 680,732, 1.512, 1.530, 1.582, 2.362, 1.700, 1.752, 2.531, 2.040, 2.092, 2.872] mod221

103
N = [ 0, 52, 169, 170, 1, 118, 68, 120, 16, 17, 69, 186,204, 35, 152, 153, 205, 101, 51, 103, 220]

Reordenando tenemos:

N = [ 0, 1, 16, 17, 35, 51, 52, 68, 69, 101, 103, 118, 120, 152, 153, 169, 170, 186,204, 205, 220]

Estos son los 21 mensajes de σ 221 .

4.1.14 DISTRIBUCION DE NUMEROS NO CIFRABLES.


Dado que N =[ 0, 1, 16, 17, 35, 51, 52, 68, 69, 101, 103, 118, 120, 152, 153, 169, 170, 186,204, 205, 220]
se observa que excepto el valor 0, los valores de los extremos siempre sumarán el valor
del módulo: 1+220 = 16+205 = 17+204 = 35+186 ... = 221 = n.

No obstante, esto no es una debilidad porque el siguiente valor no cifrable posterior al


1 es aleatorio y también la distribución entre los demás. Es más, en la mayoría de las
claves no se aprecia una secuencia de valores muy clara, aunque sí se observa un
comportamiento y distribución bastante curiosos.

Si no fuera así, el sistema sería muy débil porque podríamos conocer de antemano qué
valores muy pequeños serían no cifrables (además del 0 y el 1) y con esa información
poder deducir si un valor x de centenas de bits (clave) es o no cifrable.

Ejemplo 10: Dos casos de números no cifrables

Sean p = 409, q = 499 Sean p = 241, q = 251


Con e = 31, d = 19.663 Con e = 61, d = 26.281
Total números no cifrables: 49 Total números no cifrables: 671
0, 1, 1.636, 1.637, 23.313, 23.314, 24.949, 0, 1, 231, 250, 251, 364, 400, 482, 522,
24.950, 26.586, 48.263, 49.899, 56.388, 604, 640, 733, 866, 1.004, 1.024, 1.287,
58.024, 72.855, 74.491, 79.701, 81.337, 1.486, 1.506, 1.777, 1.870, 1.988, 2.009,
81.338, 82.973, 82.974, 96.168, 97.804, 2.028, 2.227, 2.259, 2.260, 2.291, 2.510,
97.805, 99.440, 99.441, 104.650, 104.651, ....
106.286, 106.287, 107.923, 121.117, ... 57.981, 58.200, 58.231, 58.232, 58.264,
121.118, 122.753, 122.754, 124.390, 58.463, 58.482, 58.503, 58.621, 58.714,
129.600, 131.236, 146.067, 147.703, 58.985, 59.005, 59.204, 59.467, 59.487,
154.192, 155.828, 177.505, 179.141, 59.625, 59.758, 59.851, 59.887, 59.969,
179.142, 180.777, 180.778, 202.454, 60.009, 60.091, 60.127, 60.240, 60.241,
202.455, 204.090. 60.260, 60.490.

104
4.1.15 CANTIDAD MINIMA DE NUMEROS NO
CIFRABLES
Para que la cantidad de números no cifrables sea la mínima posible, es decir 9,
deberemos elegir la clave pública e de forma que:

mcd ( e − 1, p − 1) = 2 y mcd ( e − 1, q − 1) = 2

σ n = [1 + 2][1 + 2] = 9

Entonces:

Esto se logra usando primos seguros:

p = 2r + 1 y q = 2r’ + 1 con r, r’, p y q primos grandes

Ya que: mcd ( e − 1, p − 1) = mcd ( e − 1, ( 2r + 1) − 1) ⇒ mcd = 2 o bien r

mcd ( e − 1, p − 1) = mcd ( e − 1, ( 2r + 1) − 1) ⇒ mcd = 2 o bien r’

Luego: σ n = {9, 3 ( r + 1) ,3 ( r’ + 1) , ( r + 1)( r’ + 1)}

Hay que comprobar en diseño que no se den valores del mcd igual a r o r’ pues
tendríamos un número muy alto de este tipo de mensajes.

Además, observe que si e = p ⇒ σ n = 3p y si e = q ⇒ σ n = 3q.

Ejemplo 11: Cantidad máxima de números no cifrables

En el peor de los casos, mcd ( e − 1, p − 1) = p − 1 y mcd ( e − 1, q − 1) = q − 1

Entonces: σ n = [1 + mcd ( e − 1, p − 1)][1 + mcd ( e − 1, q − 1)]

σ n = p * q = n ... Todas las cifras quedarían sin cifrar

Por lo tanto, cualquier número en el cuerpo n = 221 será no cifrable para la clave
pública e = 49. Compruebe que en este caso esto se cumple si
e = φ ( n ) / k + 1 ( k = 2 y 4 ) es decir e = 97 y 49.

Nunca podrá usarse e = φ ( n ) / 2 + 1 ya que la clave de descifrado será igual a 1 y


por lo tanto no será cifrable ningún número de n.

105
Ejemplo 12: NNC por mala elección de la clave e =
Sea p = 101, q = 761, n = 76.861. Luego φ ( n ) = 100*760 = 76.000

Algunos valores de e válidos como clave pero relacionados con Φ ( n ) :

e = Φ ( n ) / 2 + 1 = 38.001 ⇒ 76.861 NNC (100 %)

e = Φ ( n ) / 4 + 1 = 19.001 ⇒ 76.861 NNC (100 %)

e = Φ ( n ) / 5 + 1 = 15.201 ⇒ 76.861 NNC (100 %)

e = Φ ( n ) / 8 + 1 = 9.501 ⇒ 38.481 NNC (50 % aprox.)

e = Φ ( n ) /10 + 1 = 7.601 ⇒ 76.861 NNC (100 %)

e = Φ ( n ) /16 + 1 = 4.751 ⇒ 9.741 NNC (12,5 % aprox.)

e = Φ ( n ) /19 + 1 = 4.001 ⇒ 4.141 NNC (5 % aprox.)

e = Φ ( n ) / 20 + 1 = 3.801 ⇒ 76.861 NNC (100 %)

e = Φ ( n ) / 50 + 1 = 1.521 ⇒ 15.981 NNC (20 % aprox.)

e = Φ ( n ) /100 + 1 = 761 ⇒ 15.981 NNC (20 % aprox.)

e = Φ ( n ) /1.000 + 1 = 77 ⇒ 385 NNC (0,5 % aprox.)

4.1.16 CONFIDENCIALIDAD EN INTERCAMBIO DE


CLAVE
A diferencia del número de claves privadas parejas, por lo general un número
relativamente bajo y distribución generalmente en torno a 2n bits, la cantidad de
números no cifrables es mucho mayor y en ciertos casos puede llegar a ser todo el
cuerpo de cifra.

No obstante en este nuevo escenario la utilización actual de este tipo de cifra con
clave pública de destino está en el intercambio de una clave de sesión de corta duración,
por lo que la confidencialidad de dicha clave no está en compromiso en tanto es
computacionalmente imposible un ataque por fuerza bruta a ella durante el corto tiempo
de validez de la misma.

106
El único problema es que sería fácilmente detectable pues si la cifra de K e mod n se
envía en claro, el resultado será un número K de 128 bits en un cuerpo de cifra de 1.024
bits... habrá centenas de ceros.

Firmas digitales no cifrables

¿Hay algún problema con la firma digital no cifrable?

Si la cantidad de números no cifrables con la clave pública (tema confidencialidad) es


alto, también lo será en igual proporción el de números no cifrables con la clave privada
(tema autenticidad).

En este caso, significa que el hash de la firma del mensaje dentro del cuerpo de cifra n
iría en claro. Aunque el hash sea de 128 bits (MD5) ó 160 bits (SHA1) y se cifre con la
clave privada del emisor y luego se reduzca al cuerpo de cifra de 1.024 bits, la cifra irá
en claro por lo que se podría apreciar claramente al tener esa cifra tener sólo una
centena de bits significativos... y muchos ceros a la izquierda.

Como mucho esto puede dar pistas al criptoanalista en cuanto a que la clave del emisor
podría no ser óptima y, por lo tanto, animarle a intentar otros tipos de ataques por la
cifra de otros números en claro.

4.1.17 ATAQUE AL SECRETO DE N POR CIFRADO


CICLICO
Un nuevo problema: se puede encontrar el número en claro N sin necesidad de
conocer d, la clave privada del receptor.

Como C ≡ N e mod n , realizaremos cifrados sucesivos de los criptogramas Ci


resultantes con la misma clave pública hasta obtener nuevamente el cifrado C original.

Ci ≡ Cie−1mod n (i = 1, 2, ...) con Co = C

Si en el cifrado iésimo se encuentra el criptograma C inicial, entonces es obvio que el


cifrado anterior (i-1) será el número buscado. Esto se debe a que RSA es un grupo
mutiplicativo. Para evitarlo hay que usar primos seguros de forma que los subgrupos de
trabajo sean lo suficientemente altos.

Ejemplo 13 : ataque por cifrado cíclico

Sea p = 13, q = 19, n = 247, Φ ( n ) = 216, e = 29 (d = 149, no conocido)

107
El número a cifrar será M = 123 ⇒ C ≡ 12329 mod 247 = 119

I Ci
i=0 Co = 119
i=1 C1 ≡ 11929 mod 247 ≡ 6
i=2 C 2 ≡ 629 mod 247 ≡ 93
i=3 C3 ≡ 9329 mod 247 ≡ 175
i=4 C 4 ≡ 17529 mod 247 ≡ 54
i=5 C5 ≡ 54 29 mod 247 ≡ 123
i=6 C6 ≡ 12329 mod 247 ≡ 119

En este paso aún no lo sabemos.

El ataque ha prosperado muy rápidamente: como hemos obtenido otra vez el


criptograma C = 119, es obvio que el paso anterior con C = 123 se correspondía con el
texto en claro. ¿Y si usamos primos seguros?.

Ejemplo 14 : ataque por cifrado cíclico y primos seguros.

Sea p = 11, q = 23, n = 253, Φ ( n ) = 220, e = 17 (d = 134, no conocido)

El número a cifrar será M = 123 ⇒ C ≡ 12317 mod 253 = 128

I Ci
i=0 C0 = 128
i=1 C1 ≡ 12817 mod 253 ≡ 6
i=2 C 2 ≡ 617 mod 253 ≡ 173
i=3 C3 ≡ 17317 mod 253 ≡ 101
i=4 C 4 ≡ 10117 mod 253 ≡ 95
i=5 C5 ≡ 9517 mod 253 ≡ 39
i=6 C 6 ≡ 3917 mod 253 ≡ 96
i=7 C 7 ≡ 9617 mod 253 ≡ 2
i=8 C8 ≡ 217 mod 253 ≡ 18
i=9 C9 ≡ 1817 mod 253 ≡ 215
i = 10 C10 ≡ 21517 mod 253 ≡ 151
i = 11 C11 ≡ 15117 mod 253 ≡ 167
i = 12 C12 ≡ 16717 mod 253 ≡ 150

108
i = 13 C13 ≡ 15017 mod 253 ≡ 193
i = 14 C14 ≡ 19317 mod 253 ≡ 118
i = 15 C15 ≡ 11817 mod 253 ≡ 200
i = 16 C16 ≡ 20017 mod 253 ≡ 73
i = 17 C17 ≡ 7317 mod 253 ≡ 94
i = 18 C18 ≡ 9417 mod 253 ≡ 41
i = 19 C19 ≡ 4117 mod 253 ≡ 123
i = 20 C 20 ≡ 12317 mod 253 ≡ 128

Para n=253 se ha tenido que recorrer un espacio mucho mayor que en el caso anterior

4.1.18 LA PARADOJA DEL CUMPLEAÑOS.

El próximo ataque a la clave privada estará basado en este problema.

Pregunta: ¿Cuál será la confianza (probabilidad > 50%) de que en un aula con 365
personas -no se tiene en cuenta el día 29/02 de los años bisiestos- dos de ellas al azar
estén de cumpleaños en la misma fecha?

Solución: Se escribe en la pizarra los 365 días del año y las personas entran al aula de
uno en uno, borrando el día de su cumpleaños de la pizarra. Para alcanzar esa confianza
del 50%, basta que entren sólo 23 personas al aula. Este es un valor muy bajo, en
principio inimaginable y de allí el nombre de paradoja, aunque matemáticamente no lo
sea.

Explicación: El primero en entrar tendrá una probabilidad de que su número no esté


borrado igual a n/n = 1, el segundo de (n-1)/n, etc. De esta manera, la probabilidad de
no coincidencia será p nc = n !/ ( n − k ) !nk . Para k = 23 se tiene pnc = 0,493 y así la
probabilidad de coincidencia será igual a pc = (1- pnc ) = 0,507, que es mayor que 0,5.

4.1.19 ATAQUE A LA CLAVE POR PARADOJA DEL


CUMPLEAÑOS
Algoritmo propuesto por Merkle y Hellman en 1981:

El atacante elige dos números aleatorios distintos i, j dentro del cuerpo de cifra n. Lo
interesante es que elige, además, un mensaje o número N cualquiera.

109
Para i = i + 1 y para j = j + 1 calcula N i mod n y Ni mod n.

Cuando encuentra una coincidencia de igual resultado de cifra para una pareja (i, j), será
capaz de encontrar d

Ejemplo 15: de ataque paradoja cumpleaños

Sea p = 7; q = 13, n = 91, e = 11, d = 59.

El atacante sólo conoce n = 91 y e = 11. Partirá con el número N = 20 y elegirá los


valores i = 10 y j = 50.

i Ci
i = 10 C10 ≡ 20 mod 91 ≡ 43
10

i = 11 C11 ≡ 2011 mod 91 ≡ 41


i = 12 C12 ≡ 2012 mod 91 ≡ 1
i = 13 C13 ≡ 2013 mod 91 ≡ 20
i = 14 C14 ≡ 2014 mod 91 ≡ 36
i = 15 C15 ≡ 2015 mod 91 ≡ 83
i = 16 C16 ≡ 2016 mod 91 ≡ 22
i = 17 C17 ≡ 2017 mod 91 ≡ 76

j Ci
j = 50 C50 ≡ 2050 mod 91 ≡ 36
j = 51 C51 ≡ 2051 mod 91 ≡ 83
j = 52 C52 ≡ 2052 mod 91 ≡ 22
j = 53 C53 ≡ 2053 mod 91 ≡ 76
j = 54 C54 ≡ 2054 mod 91 ≡ 64
j = 55 C55 ≡ 2055 mod 91 ≡ 6
j = 56 C56 ≡ 2056 mod 91 ≡ 29
j = 57 C57 ≡ 2057 mod 91 ≡ 34

Hay una colisión en el paso quinto al coincidir el valor C = 36 en el contador i que ya


había aparecido en contador j. Observe los valores repetidos.

Con los valores de i, j y el desplazamiento observado en uno de ellos cuando se


detecta la colisión (i = 14), se establece un conjunto de ecuaciones y, si el ataque
prospera, obtenemos la clave privada, una clave privada pareja, o bien un valor de clave
privada particular que sólo sirve para descifrar el número elegido (aquí el 20) y no un
número genérico. En este caso se hablará de un falso positivo.
110
Resultado del ataque paradoja cumpleaños

La primera coincidencia se encuentra para i = 14; j = 50. Así, el atacante conociendo la


clave pública e = 11, calcula:

w = (14-50) / mcd (11, |14-50|) = -36 / mcd ( 11, 36) = - 36.

Entonces deberán existir valores s, t de forma que se cumpla lo siguiente:

w *s + e* t = 1 ⇒ − 36*s + 11* t = 1

Las posibles soluciones a la ecuación son: w*s mod e = 1; e*t mod w = 1

−36*s = 1 mod11 ⇒ s = inv ( −36,11) = inv ( 8, 11) = 7

11* t = 1 mod36 ⇒ t = inv (11,36 ) = 23

El valor t = 23 será una clave privada pareja de d = 59. Compruebe que se verifica
w*s + e*t = 1 y que las claves parejas son 11, 23, 35, 47, 71 y 83.

Nota: como este algoritmo parte con valores aleatorios de los contadores i, j (i deberá
ser el menor posible y j la mitad del cuerpo de cifra) y del número N (en el ejemplo 20)
no siempre prospera el ataque, es decir será no determinista. En ese caso, es posible que
cambiando el valor de N sí se logre el objetivo buscado.

4.1.20 ATAQUE QUE ENTREGA ALGUNA CLAVE


PAREJA
Normalmente el ataque rompe la clave privada o una clave privada pareja; sin
embargo, se darán situaciones especiales.

Sea p = 11, q = 31, e = 13. Entonces d = 277 y las claves privadas parejas son: 7, 37,
67, 97, 127, 157, 187, 217, 247, 307, 337.

Observe la diferencia constante igual a Φ ( n) / 10 = 30 .

Se realiza el ataque con el software genRSA tomando valores de N desde 2 hasta 50,
partiendo el contador i en 3 y j en n/2.

Para N = 2 encuentra d’ = 157; para N = 3 encuentra d’ = 97; para N = 4 encuentra d’ =


127; para N = 5 encuentra d’ = 127; para N = 6 encuentra d’ = 97;... etc.

Para N = 32 encuentra d’ = 13, una solución falsa.

Para d’ = 13 el programa realiza 2 iteraciones, para d’ = 127 realiza 3, para d’ = 157


realiza 4 y para d’ = 97 realiza 14.

111
4.1.21 ATAQUE QUE ENTREGA LA CLAVE PRIVADA
En función de los parámetros de la clave, a veces se encuentra para muchos valores de
N casi siempre la clave privada d.

Sea p = 191, q = 211, e = 31. Entonces d = 12.871 y hay 9 claves privadas parejas.

Se realiza el ataque con el software genRSA tomando valores de N desde 2 hasta 50,
partiendo el contador i en 3 y j en n/2.

Para casi todos los valores de N encuentra la clave privada d.

Para N = 7, 39, 49 encuentra d’ = 1.951, para N = 14 encuentra d’ = 13.668 y para N =


23 encuentra d’ = 18.191, todas falsas.

Sea ahora p = 241, q = 251, e = 11. Entonces d = 49.091 y hay 9 claves privadas
parejas.

Aunque aquí casi siempre encuentra el valor d’ = 19.091 como clave privada pareja
válida, si usamos N = 36 el programa nos da como solución el valor d’ = 0, obviamente
un falso positivo.

¿Podría darse un ataque distribuido?

El ataque basado en la paradoja del cumpleaños no sería factible realizarlo en un solo


PC por la alta complejidad computacional.

... pero bien podría pensarse en un algoritmo distribuido, de forma que un computador
hiciera las veces de servidor y todos los demás (... tal vez varios cientos de miles)
actuaran como clientes.

El servidor tendría como función distribuir trozos de cifra entre los clientes en
diferentes intervalos de valores i, j como los del ejemplo anterior y, además, recibir los
resultados de los clientes para detectar colisiones. Esta última función será la más
crítica.

Supuestamente este ataque llevaría un tiempo menor que el de factorizar el valor de n,


para así encontrar la clave privada.

Si bien no está demostrado la factibilidad real en tiempo de cómputo de esta opción, el


hecho de que un certificado digital, y por ende la clave privada, tenga una validez de un
año podría ser un motivo de preocupación... siempre sin caer en paranoias.

112
4.2 ATAQUE A LA CLAVE DIFFIE Y HELLMAN

4.2.1 ¿PUEDE UN INTRUSO ATACAR LA CLAVE DH?

Un intruso que conozca las claves públicas p y α e intercepte el valor α a mod p que
ha enviado A y el valor α b mod p que ha enviado B no podrá descubrir los valores de
a, de b y ni menos α ab mod p ...

Salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que, como ya hemos
visto, se vuelve computacionalmente intratable para valores del primo p grandes.

4.2.2 SEGURIDAD DEL INTERCAMBIO DE CLAVE DE


DH
La seguridad del intercambio de clave de Diffie y Hellman radica en la imposibilidad
computacional a la que se enfrentará el criptoanalista al tener que resolver el problema
del logaritmo discreto para encontrar la clave privada que se encuentra en el exponente
de la expresión α i mod p ≡ C.

Como p y α serán públicos, al capturar el valor C el atacante deberá resolver


i = logα C mod p, un problema no polinomial (debido a la operación final dentro del
módulo p) que para valores grandes de p (del orden o superior a los 1.000 bits) resulta
computacionalmente imposible encontrar su solución.

El algoritmo propuesto inicialmente es vulnerable ante un ataque del tipo “man in the
middle” como veremos a continuación. No obstante, esta vulnerabilidad puede evitarse.

4.2.3 ¿ES VULNERABLE EL PROTOCOLO DE DH?


A elige un número a con 1 < a < p-1 y envía a B α a mod p

C intercepta este valor, elige un número c con 1 < c < p-1 y envía a B α c mod p B elige
un número b con 1 < b < p-1 y envía a A α b mod p

C intercepta este valor y envía a A α c mod p (valor anterior)

113
A y B calculan sus claves k A = (α c ) a mod p, k B = (α c )b mod p

C calcula también las claves:

k CA = (α a )c mod p

k CB = (α b )c mod p

Por lo tanto, a partir de ahora C tiene “luz verde” y puede interceptar todos los mensajes
que se intercambian A y B.

4.2.4 INTERCAMBIO DE CLAVE DH ENTRE n


USUARIOS

El protocolo DH se puede generalizar para n usuarios: sea n = 3.

A, B y C seleccionan un grupo p y un generador α

A genera un número aleatorio a y envía α a mod p a B

B genera un número aleatorio b y envía α b mod p a C

C genera un número aleatorio c y envía α c mod p a A

A recibe α c mod p y calcula (α c )a mod p y se lo envía a B

B recibe α a mod p y calcula (α a )b mod p y se lo envía a B

C recibe α b mod p y calcula (α b )c mod p y se lo envía a A

A recibe α bc mod p y calcula (α bc ) a mod p = α bca mod p

B recibe α ca mod p y calcula (α ca )b mod p = α cab mod p

C recibe α ab mod p y calcula (α ab )c mod p = α abc mod p

El secreto compartido por A, B y C es el valor α abc mod p

114
4.2.5 CONDICIONES DEL INTERCAMBIO DE CLAVE
D-H
1) El módulo p debe ser un primo grande, al menos de 1.024 bits.

2) Interesa que el Indicador de Euler Φ ( n ) = p − 1, , además del valor 2, tenga


factores primos grandes.

3) El generador α debe ser una raíz primitiva del módulo p.

Si el módulo es un primo pequeño, se puede hacer un ataque por fuerza bruta dentro de
un tiempo razonable.

Si el generador no es una raíz primitiva del grupo p, entonces la operación


α i mod p (1 ≤ i ≤ p − 1) no genera todos los restos del grupo y esto facilita el ataque
por fuerza bruta.

4.2.6 RAIZ α INCORRECTA (falsa)

MALA ELECCIÓN DE LOS PARÁMETROS:

Sean el grupo de trabajo p = 13 y un valor α = 3 ... entonces

31 mod 13 ≡ 3 32 mod 13 ≡ 9 33 mod 13 ≡ 1

34 mod 13 ≡ 3 35 mod 13 ≡ 9 36 mod 13 ≡ 1

37 mod 13 ≡ 3 38 mod 13 ≡9 39 mod 13 ≡ 1

310 mod 13 ≡ 3 311 mod 13 ≡ 9 312 mod 13 ≡ 1

Se repiten los restos 3, 9 y 1 porque 3 no es un generador de ℤ13 . Observe que:

. 34 mod 13 = (33 ) ( 3) mod 13 = 1* ( 3) mod 13 = 3


1 1

Un ataque por fuerza bruta deberá buscar sólo en una tercera parte del espacio de claves
y, lo que es peor, la probabilidad de éxito de encontrar un valor verdadero
b en α b mod p aumenta de 1/12 a 1/3.

115
4.2.7 RAIZ α CORRECTA
21 mod 13 ≡ 2 2 2 mod 13 ≡ 4 23 mod 13 ≡ 8

2 4 mod 13 ≡ 3 25 mod 13 ≡ 6 2 6 mod 13 ≡ 12

2 7 mod 13 ≡ 11 28 mod 13 ≡ 9 29 mod 13 ≡ 5

210 mod 13 ≡ 10 211 mod 13 ≡ 7 212 mod 13 ≡ 1

Ahora sí están todos los restos multiplicativos del cuerpo ℤ13 porque el resto 2 es un
generador dentro de este cuerpo.

Observe que el valor unidad sólo se obtiene para α p −1 mod p .

Como vimos en el capítulo de Teoría de Números, en p = 13 serán generadores los


valores g = 2, 6, 7, 11.

4.3. ATAQUE AL CRIPTOSISTEMA DE EL


GAMAL
Al presentar el criptosistema de El Gamal, hemos mencionado al forma en que un
usuario elabora su clave secreta y su clave privada.

Un escucha, S, que quisiera romper el protocolo anterior, conocería G, n, α , α , α y


a b v

m. α Y debería calcular m. Este problema se conoce como el problema de El Gamal


vb

(El Gamal Problem, EGP). Es fácil ver que la seguridad de este criptosistema es
equivalente a la del cambio de clave de Diffie-Hellman; por tanto, la seguridad del
criptosistema de El Gamal está basada en la dificultad del logaritmo discreto.

Al analizar los diferentes tiempos de computación para determinados algoritmos,


surge la dificultad de calcular logaritmos discretos en un cuerpo finito . Por ahora baste
decir que el ataque contra el criptosistema de El Gamal, hoy por hoy, se considera
intratable, dado que los mejores tiempos de computación para calcular logaritmos
discretos son de tipo subexponencial .

116
4.4 CONCLUSIONES Y RECOMENDACIONES

4.4.1 CONCLUSIONES

1) A lo largo del desarrollo de la presente se ha podido constatar que la seguridad de la


información cada día más se apoya en métodos numéricos que permitan la transmisión
segura así como la salvaguarda de información sensible.

2) la mayoría de dichos métodos se basan en la aritmética modular y en el problema


computacional que implica la factorización en números primos grandes en tiempo
razonable, dicho problema actualmente genera una especie de carrera entre los sistemas
de cómputo y los algoritmos cuyo objetivo es encriptar la información y aquellos que
por razones obvias desean lo contrario.

3) Esta situación ha generado un sinnúmero de métodos y contra métodos que intentan


dar o quitar seguridad a la información encriptada, no obstante, considero que el
problema de la factorización en números primos grandes no será resuelta en forma
computacional (habida cuenta de que si los crackers logran tener computadoras que
factoricen mas rápido ello implica que quienes encriptan tendrán a su disposición
computadoras que generen números más grandes).

4) Es por ello que una posible solución al problema de factorizar números grandes en
tiempo razonable debería venir por alguna ampliación en el campo de la teoría de
números , tal como por ejemplo, las curvas modulares elípticas las cuales fueron la base
fundamental para lograr resolver el último teorema de Fermat.

5) Debido a que el campo de la criptografía se ha vuelto muy dinámico aquellas


personas que necesiten la aplicación de dichos métodos de encriptación deberán estar
muy al tanto de los últimos avances tanto a nivel de capacidad de cómputo como de los
nuevos descubrimientos en la teoría de números en vista de que cualquier avance en
dichos campos podría dejar obsoleto algún sistema de encriptación considerado seguro
con las consecuencias que dicho desfase de información tendría.

117
4.4.2 RECOMENDACIONES

1) La criptografía y el criptoanálisis han demostrado su utilidad a lo largo de la historia


humana y así seguirá siendo, por lo tanto es importante mantenerse actualizado tanto
como sea posible en dichos campos.

2) En la universidad deberían dictarse talleres y conferencias al respecto con el fin de


incentivar el interés sobre este desafiante campo a la nueva generación de matemáticos
que egresaran de ella.

3) Un sistema de seguridad es tan importante como aquello que salvaguarda por lo que
debe existir un interés especial por este campo en aquellas instituciones que descansan
sobre el secreto en la transmisión o salvaguarda de datos sensibles (como por ejemplo
los bancos y instituciones de tipo militar) las cuales debería prestar su concurso y
medios para desarrollar sistemas de encriptación propios y no utilizar sistemas foráneos
que en caso de conflicto armado serian fácilmente utilizados en su propia contra.

4) En vista de que el tema es muy amplio y abarca el concurso de muchas


especialidades diferentes sería conveniente seleccionar estudiantes aventajados que
formen grupos de estudio e investigación en este campo bajo el auspicio de la
universidad.

5) El presente trabajo no representa un estudio exhaustivo del tema de hecho muchos


métodos y estudios fueron obviados por razones de tiempo y alcance, por lo que sería
conveniente que otros estudiantes del área abarcaran dichos aspectos en sus trabajos de
grado a los fines de complementar y ampliar los primerísimos aspectos de la
criptografía aquí presentados.

118
BIBLIOGRAFIA

AYRES, F.(1991). Álgebra Moderna. McGraw-Hill. México,.

Berry, T.(1992).CODIFICACION Y CRIPTOGRAFIA V escuela venezolana de


matemáticas Caracas Venezuela.

Caballero, P.(2002). INTRODUCCIÓN A LA CRIPTOGRAFÍA. SEGUNDA


EDICIÓN Editorial Ra-Ma, Textos Universitarios, Madrid.

Fúster,A., De la Guía D., Hernández L., Montoya,F.,Muñoz,J.(2004).TÉCNICAS


CRIPTOGRÁFICAS DE PROTECCIÓN DE DATOS. TERCERA EDICIÓN
Editorial Ra-Ma.

Herstein,I.(1990).ALGEBRA MODERNA: GRUPOS, ANILLOS, CAMPOS,


TEORIA DE GALOIS. México Editorial Trillas .

Lucena, J. (1999). CRIPTOGRAFIA Y SEGURIDAD EN COMPUTADORES.


Departamento de Informática Escuela Politécnica Superior Universidad de
Jaén.

Menezes, A., Oorsschof, P., Vanstone, S.(1997).HANDBOOK OF APPLIED


CRYPTOGRAPHY CRC Press Inc. Extraído el 15 de Diciembre de 2007 desde
http://www.cacr.math.uwaterloo.ca/hac/

Ramió, J.(2005). LIBRO ELECTRONICO DE SEGURIDAD INFORMATICA Y


CRIPTOGRAFIA VERSION V 4.0 Universidad Politécnica de Madrid.

Tena,J.(1995).CURVAS ELIPTICAS EN CRIPTOGRAFIA VIII escuela


venezolana de matemáticas Caracas Venezuela.

También podría gustarte