Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VICERRECTORADO ACADEMICO
AREA DE MATEMATICA
CRIPTOGRAFIA
LICENCIADO:
C.I. 8.395.929
A DIOS creador de todo lo visible e invisible ya que “..ni una hoja se mueve sin
su consentimiento…” La Biblia.
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 familiares (son tantos que si los menciono a todos me llevaría otro libro)
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 mi madre Rosalía Marcano de Longart ..Nunca la palabra MADRE fue tan bien
merecida.
A mis alumnos de los que aspiro que sean mejores que yo.
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADEMICO
AREA DE MATEMATICA
CRIPTOGRAFIA
Trabajo de grado
RESUMEN
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
1
(1)Tomado de : http://es.wikipedia.org/wiki/Criptograf
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 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.
1 ) Tk( n ) e s b i y e c t i v a
Ejemplo 1
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
T3 ( HOLA) = KROD
1 .3 REGLAS DE KERCKHOFFS.
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).
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 .
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).
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
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.
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)
Ejemplo3:
10
Ejemplo4: (la razón del lenguaje)
Solución:
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.
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 .
Demostracion:
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 . 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.
q = 2 r*N / 2 R*N = 2( r − R )* N = 2− D* N
⇒ SF ≈ 2 H ( K )− D*N ⇒ log 2 SF = H ( K ) − D * N
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.
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.
n n
n n
n ! ≈ 2π n ≈
e e
n
n n
H (k ) = log 2 (n !) ≈ log 2 = n log 2
e e
n
n log 2
N=
H (K )
≈ e
D D
27
27 *log 2
N≈ 2, 72 ≈ 27, 4
3, 4
14
Capitulo 2
15
2 .1 .1 CONCEPT OS BASICOS
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 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.
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
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:
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
:
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
3
ci 2 = log( ) = log 3 − log 2
2
2
ci 4 = log( ) = log 2 − log1
1
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
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:
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
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
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 ) .
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
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 )
n
H ( X ) = −∑ pi log 2 ( pi )
i =1
22
E j e mp l o 3 : C ÁL C UL O DE E NT RO PI A
Caso 1
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
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
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
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
10
p (c ) = = 0,163 .
(10 + 51)
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
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
Lqqd.
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)
H [ XY ] = −∑∑ p ( xi y j ) log( p ( xi y j ))
H [ XY ] = H [ X ] + H [Y ]
26
Demostración:
X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]
p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]
XY = [ x1 y1 , x2 y2 ,....xn ym ]
p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]
p ( xi y j ) = p ( xi ) 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.
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.
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:
X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]
p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]
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 .
H X / y j = −∑ p ( xi / y j ) log( p ( xi / y j )
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.
H [Y / X ] = −∑∑ p( xi , y j ) log( p( y j / xi ))
H [ XY ] = H [ X ] + H [Y / X ]
Demostración:
XY = [ x1 y1 , x2 y2 ,....xn ym ]
De probabilidades
p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]
30
Pero,
Ya que: ∑ p( y j / xi ) = 1
H [ XY ] = H [ X ] + H [Y / X ]
Lqqd.
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 ]
H [ XY ] ≤ H [ X ] + H [Y ]
31
Demostración:
X = [ x1 , x2 ....xn ]
Y = [ y1 , y2 .... yn ]
p ( X ) = [ p ( x1 ), p ( x2 ).... p ( xn )]
p (Y ) = [ p ( y1 ), p ( y2 ).... p ( yn )]
XY = [ x1 y1 , x2 y2 ,....xn ym ]
De probabilidades
p( XY ) = [ p( x1 y1 ), p( x2 y2 ),.... p( xn ym ) ]
p ( xi ) = ∑ p ( xi y j )
j
p ( y j ) = ∑ p ( xi y j )
i
32
Sumando ambas ecuaciones obtenemos que:
H [ X ] + H [Y ] = −∑∑ p ( y j xi ) log p ( xi ) p ( y j )
∑∑ p( y x ) log( p( x y )) = − H [ XY ]
j i i j
Pero
p′( xi y j ) = p ( xi ) p ( y j )
− H [ X ] + H [Y ] ≤ − H [ XY ]
H [ XY ] ≤ H [ X ] + H [Y ]
Lqqd.
33
Teorema 6 (CANTIDAD DE INFORMACION DE SHANNON)
I ( X ,Y ) = H [ X ] − H [ X / Y ]
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.
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
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 ]
I ( X , Y ) = H [Y ] − H [Y / X ] ⇒ I ( X , Y ) = H [ X ] + H [Y ] − H [ XY ]
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
Solución:
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
36
2.2 TEORIA DE NUMEROS .
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 ≡ 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
a − a = k *n ⇒ 0 = k *n ⇒ k = o
Lqqd.
37
2) Propiedad Simétrica.
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:
n / ( a − b) y n / (b − c) ⇒ n / ((a − b) + (b − c)) ⇒ n / (a − c)
⇒ a ≡ c mod n
Lqqd.
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:
8) Existencias de Inversos
a + (−a ) mod n = 0
9) Reducibilidad
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 .
Ejemplo 7
* 1 -1
1 1 -1
-1 -1 1
1) (1*(-1))*(1)=1*((-1)*1)
2) 1*(-1)=(-1)*1
3) (-1)*(-1)=(-1)-(-1)
4) (-1)*1=1*(-1)
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
Ejemplo 8
10*2 mod13
20 mod13
41
Definición 39. (Conjunto Reducido de Resto (C.R.R)).
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}
(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)
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.
k
-b) n se representa como n = p con p primo y k entero.
A ) F u n c i ó n Φ ( n) d e E u l e r c u a n d o n = p
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
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
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
Φ ( n ) = Φ ( p * q ) = Φ ( p ) * Φ ( q ) = ( p − 1)( q − 1)
Φ ( 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:
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.
Φ ( 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 . )
Demostración:
Φ (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.
45
a * x mod n ≡ 1 y a
Φ(n)
mod n ≡ 1
x ≡ a Φ ( n ) −1 mod n
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.
T e o r e ma 8 ( E u l e r p a r a n = p * q )
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
Φ (n) = ( p – 1 ) ( q - 1 ) = ( 7 – 1 ) ( 1 1 – 1 ) = 6 * 1 0 = 6 0
Si k =1, 2,3,…
a Φ ( n ) mod q = a 60 mod11 = 1
a Φ ( n ) mod p = 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 )
Demostración:
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.
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
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
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.
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)
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.
C1 C2 C3 C4 … Cn −1 Cn Cn +1
n a r1 r2 r3 … rn − 2 rn −1 1
49
Ejemplo 14:
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
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
Ejemplo 15:
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
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
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.
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
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
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 = 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
Ejemplo 17:
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
54
Existe muchos números dentro del CRR que son generadores del
cuerpo… pero su búsqueda no es algo fácil… ¿algunas soluciones?
g ( p −1) qi mod p ≠ 1
En cambio
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
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
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
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 )
τ
Probabilidad: psegro = Φ ( p − 1) / p − 1 ≈ 1/ 2
Comprobación de generadores en p = 2 p′ + 1
C o m o 2 p, = p −1 e x i s t i r á n :
τ = ( p , − 1) / ( p − 1) = ( p , − 1) / 2 p , ≈ 1 / 2
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.
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
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 ) .
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).
y 2 + b1 xy + b3 y = x3 + b2 x 2 + b4 x + b6 , bi ∈ K
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 )
x := x, y := y − ( b1 x + b3 ) / 2
(b)
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)
y 2 = x 3 + Ax + B A, B ∈ K (e)
Definición 43.
D = 4 A3 + 27 B 2 (f)
Este valor debe, por consiguiente, ser no nulo para una curva
elíptica.
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
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
i ) b1 ≠ 0 . E l c a m b i o d e v a r i a b l e s :
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 .
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.
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.
63
REPRESENTACION GRAFICA DE LA SUMA DE PUNTOS EN
UNA CURVA ELIPTICA
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 )
λ = ( y2 − y1 ) / ( x2 − x1 ) ⇔ p1 ≠ p2
λ = (3x1 + A) / 2 y1 ⇔ p1 = p2
64
C a s o C a r (k ) = 2
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
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
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
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
E: O,P1,P2,P3,...,Pn
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.
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:
67
Ejemplo 20: (Decodificación de un Mensaje usando Curvas
Elípticas)
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 .
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.
S : 28 → x = 28.20 + 1 = 561 → x 3 − x ≡ 73 ≠ y 2 + y
P a r a y d e ℤ *751 ,
P a r a y = 576 → ps = ( 562,576 ) ,
P a r a y = 395 → PT = ( 581,395 ) ,
P a r a y d e ℤ *751 ,
69
Por consiguiente, el mensaje codificado es (562,576), (581,395),
(484, 241) y (501, 220).
562 − 1 561 − 1
= 28, 05; = 28 → S
20 20
581 − 1
= 29 → T ,
20
501 − 1
= 25 → P .
20
70
Capitulo 3
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.
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.
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.
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.
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.
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.
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.
74
nuestro control, ya que pertenecen a terceros, por lo que resulta imposible asegurarse
totalmente de que no están siendo escuchados o intervenidos.
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.)
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).
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.
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.
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 >> .
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:
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.
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.
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 .
79
K = DA9 F16 = 55.96710
C = K eA mod nA
C = 55.967 25 mod 66.331 = 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)
Adela calcula:
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 .
Cifrado:
Descifrado:
80
5529 Es un número con 51 dígitos…
5529 = 295473131755644748809642476009391248226165771484375
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.
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
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
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:
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. B calcula (α v )
b
m.α bv
α vb
83
Por seguridad y eficacia, el grupo G y el elegirse de modo que verificaran con las
siguientes condiciones:
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.
84
Por lo tanto, el mensaje a enviar a B es: (BAGVLB, SCEAZ).
tiene calcular
m.α vb
α vb
−662582.α vb + 421299. p = 1
Resulta que :
1
≡ −662582 ≡ 14823281( mod15485863 )
α vb
Por tanto:
m.α vd 8263449
= ≡ 8263449.14823281 ≡ 128688 = m
α vd
9846598
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.
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.
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:
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.
c ≡ m 2 (mod n)
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)).
90
Capitulo 4
Conclusiones
4.0 CONCLUSIONES
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.
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
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.
( p + q) ( p − q)
2 2
−n =
4 4
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
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:
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
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.
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.
n = x2 − y2 ⇒ x2 − y 2 − n
95
Ejemplo 1: de mala elección del valor de n
Como 45.431 = 213,14 buscaremos valores enteros de x mayores que 213 de forma
que ( X 2 − 45.413) sea un cuadro perfecto ↓
q = x + y = 216 + 35 = 251
Para evitar otros problemas, es recomendable usar los denominados primos seguros.
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.
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
Ejemplo 2:
n = p * q = 15.755.353
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.
n = 8r 2 + 10r + 3 ⇒ 8r 2 + 10r + ( 3 − n ) = 0
97
r = −10 + 4 + 32n / 16
Ejemplo 3:
d = inv ( 41, 216 ) = 137, que es único. Si ciframos con la clave pública el número
Pero también lo desciframos con d p = 29, 65, 101, 173, 209 y 245.
di = dγ + 1γ 1 < di < n
i = 0,1,...λ λ = ( n − dγ ) / γ
98
En el ejemplo anterior tenemos que:
Es decir d i = 29, 65,101,137,173, 209, 245. Observe que en aparece (137) la clave
privada d y comprobemos que:
Ejemplo 5:
q = 2 * 23 + 1 = 47 (es primo)
99
Luego γ = mcm (10, 46 ) = 230 y dγ = inv (17, 230 ) = 203
Para que λ sea igual a la unidad, habrá que elegir además un valor adecuado de clave
pública:
Según el valor que el elijamos de clave pública e, podríamos obtener más de una clave
privada pareja:
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.
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.
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.
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:
Dentro de los números posibles {0,1} . El valor n-1 (en este caso 34) será también
siempre no cifrable.
102
N q las soluciones de N e mod q = N
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]
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.
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:
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.
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.
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
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.
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.
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
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
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.
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
i Ci
i = 10 C10 ≡ 20 mod 91 ≡ 43
10
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
w *s + e* t = 1 ⇒ − 36*s + 11* t = 1
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.
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.
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.
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.
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.
... 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.
112
4.2 ATAQUE A LA CLAVE DIFFIE Y HELLMAN
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.
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.
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
113
A y B calculan sus claves k A = (α c ) a mod p, k B = (α c )b mod p
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.
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.
Si el módulo es un primo pequeño, se puede hacer un ataque por fuerza bruta dentro de
un tiempo razonable.
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
Ahora sí están todos los restos multiplicativos del cuerpo ℤ13 porque el resto 2 es un
generador dentro de este cuerpo.
(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.
116
4.4 CONCLUSIONES Y RECOMENDACIONES
4.4.1 CONCLUSIONES
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.
117
4.4.2 RECOMENDACIONES
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.
118
BIBLIOGRAFIA