SItema 12

También podría gustarte

Está en la página 1de 32

Tema 12

Cifrado Exponencial

Curso de Seguridad Informtica


Ultima actualizacin: 10/02/02
Archivo con 32 diapositivas
Material Docente de
Libre Distribucin

Dr. Jorge Rami Aguirre


Universidad Politcnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informtica y


Criptografa. Se autoriza su uso, reproduccin en computador e impresin en
papel slo para fines docentes, respetando siempre los derechos del autor.
Curso de Seguridad Informtica Jorge Rami Aguirre

Cifrado exponencial con clave del receptor


En el cifrado del mensaje Ee(M) = C y en el descifrado
del criptograma Ed(C) = M, se usa una exponenciacin.
En la operacin de cifrado, el subndice e significa el uso
de la clave pblica del receptor (R) en el extremo emisor
y el subndice d el uso de la clave privada del receptor
(R) en el extremo receptor.
C = EeR(M) = MeR mod nR M = EdR(C) = CdR mod nR

Esta operacin se usar para realizar el intercambio de


una clave de sesin entre un emisor y un receptor.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Cifrado exponencial con clave del emisor


En la operacin de cifrado el subndice d significa el uso
de la clave privada del emisor (E) en el extremo emisor y
el subndice e el uso de la clave pblica del emisor (E)
en el extremo receptor.
C = EdE(M) = MdE mod nE M = EeE(C) = CeE mod nE

Esta operacin se usar para autenticar la identidad de un


usuario mediante una firma digital al igual que la
integridad del mensaje.
En ambos casos, la operacin en emisin como en recepcin se
hace sobre un bloque de unas pocas centenas de bits.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Cifrado exponencial genrico tipo RSA


Sea el grupo de trabajo n = pq (n) = (p-1)(q-1)
Se eligen una clave pblica e y una privada d de forma que:
ed mod (n) = 1 ed = k(p-1)(q-1) + 1.
Si ed = k(n) + 1
Por el Teorema de Euler
se tiene que:

y ...

ssi Med = M mod p


Med = M mod q

Mk(n) mod n = 1
para todo M primo con n

Vlido para cualquier valor M

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Por el Teorema del Resto


Chino se tiene que:
Med = M mod n

Tema 12: Cifra

Comprobacin de recuperacin de texto


Al cifrar el mensaje M con una clave pblica e (en este caso
para intercambio de clave, aunque es igual de vlido con una
clave d en caso de firma digital) tenemos:
Cifrado:

C = Me mod n

Descifrado:

Cd mod n = (Me)d mod n = Med mod n


Cd mod n = Mk(n)+1 mod n = MMk(n) mod n
Cd mod n = M1 mod n = M mod n

Por lo tanto, la operacin Cd mod n recupera el mensaje M.


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Ejemplo de cifrado exponencial genrico


Sea n = pq = 511 = 55

(n) = (5-1)(11-1) = 40

Mensaje M = 50 = 252 (debe ser un elemento de n)


Se elige e = 3

d = inv[e, (n)] = inv (3,40) = 27

ed mod (n) = 327 mod 40 = 81 mod 40 = 1


C = Me mod n = 503 mod 55 = (252)3 mod 55
C = [(2)3 mod 55 (52)3 mod 55] mod 55

- por reducibilidad -

M = Cd mod n = {[(2)3 mod 55 (52)3 mod 55] mod 55}27 mod 55


M = [(2)327 mod 55 (52)327 mod 55] mod 55
M = [22(n)+1 52(n)+1 52(n)+1] mod 55
Por el Teorema de Euler y del Resto Chino = 2 5 5 mod 55 = 50

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Intercambio de claves de Diffie y Hellman


El comienzo de los sistemas de clave pblica se debe al estudio
hecho por Whitfield Diffie y Martin Hellman (1976).
Protocolo de Intercambio de Claves de Diffie y Hellman
A y B seleccionan un grupo multiplicativo (con inverso) p
y un generador de dicho primo, ambos valores pblicos.
A genera un nmero aleatorio a y enva a B a mod p.
B genera un nmero aleatorio b y enva a A b mod p.
B calcula (a)b mod p = ab mod p y luego destruye b.
A calcula (b)a mod p = ba mod p y luego destruye a.
El secreto compartido por A y B es el valor ab mod p.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Intercambio de claves de Diffie y Hellman


Un intruso que conozca las claves pblicas p y e
intercepte el valor a mod p que ha transmitido A y
el valor b mod p transmitido por B no podr
descubrir los valores de a, b ni 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.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

Condiciones intercambio de claves de D-H


CONDICIONES DEL PROTOCOLO:
El mdulo p debe ser un primo grande, al menos 512 bits.
Interesa que el valor (p-1)/2 tambin sea primo.
El generador debe ser una raz primitiva del mdulo p.
Si el mdulo es un primo pequeo, se puede hacer un ataque por
fuerza bruta dentro de un tiempo razonable.
Si el generador no es una raz primitiva del grupo p, entonces la
operacin i mod p (1 i p-1) no genera todos los restos del
grupo y esto facilita el ataque por fuerza bruta.

Ejemplo
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

La necesidad de una raz en el protocolo


MALA ELECCIN DE LOS PARMETROS:
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 Z13.


Un ataque por fuerza bruta deber buscar slo 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.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

10

La necesidad de una raz en el protocolo


Ysisiahora
ahora==22??
Y
Primero intente calcularlo... y luego para comprobar sus resultados, avance.

21 mod 13 = 2

22 mod 13 = 4

23 mod 13 = 8

24 mod 13 = 3

25 mod 13 = 6

26 mod 13 = 12

27 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 estn todos los restos multiplicativos del cuerpo Z13


porque el resto 2 es un generador dentro de este cuerpo.
Adems del 2, qu otros restos
Sern generadores
sern generadores en Z13?
g = 2, 6, 7, 11.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

11

Es vulnerable el protocolo de D- H?

A elige un nmero a con 1 < a < p-1 y enva a B a mod p

C intercepta este valor, elige un nmero c con 1 < c < p-1 y


enva a B c mod p

B elige un nmero b con 1 < b < p-1 y enva a A b mod p

C intercepta este valor y enva a A c mod p (valor anterior)

A y B calculan sus claves kA = (c)a mod p, kB = (c)b mod p

C calcula tambin las claves:

Qu hacer?

kCA = (a)c mod p


kCB = (b)c mod p

La solucin a
este problema
es el sellado
de tiempo

Por lo tanto, a partir de ahora C tiene luz verde y puede


interceptar todos los mensajes que se intercambian A y B.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

12

Algoritmo de cifra RSA


En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman
proponen un algoritmo de cifra de clave pblica: RSA
Algoritmo
1. Cada usuario elige un grupo n = pq. Trabajar por tanto en Zn.
2. Los valores p y q no se hacen pblicos.
3. Cada usuario calcula (n) = (p-1)(q-1).
4. Cada usuario elige una clave pblica e que sea parte del cuerpo n
y que cumpla: mcd [e, (n)] = 1.
5. Cada usuario calcula la clave privada d = inv [e,(n)].
6. Se hace pblico el grupo n y la clave e.
Pueden destruirse
7. Se guarda en secreto la clave d.
ahora p, q y (n).

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

13

Fortaleza del algoritmo RSA


Qu fortaleza tendr este algoritmo ante ataques?
El intruso que desee conocer la clave secreta d a
partir de los valores pblicos n y e se enfrentar al
Problema de la Factorizacin de Nmeros Grandes
(PFNG) puesto que la solucin para conocer esa
clave privada pasa por deducir el valor del Indicador
de Euler (n) = (p-1)(q-1) para as poder encontrar el
inverso de la clave pblica d = inv [e,(n)].
Existen, no obstante, otros tipos de ataques a este
sistema que no pasan por la factorizacin de n.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

14

Ejemplo de cifrado y descifrado con RSA


Grupo n = 91 = 713; (n) = (713) = (7-1)(13-1) = 72 M = 48
Elegimos e = 5 pues mcd (5,72) = 1 d = inv(5,72) = 29
CIFRADO:
C = Me mod n = 485 mod 91 = 5245.803.968 mod 91 = 55
DESCIFRADO:
M = Cd mod n = 5529 mod 91 = 48 ... 5529 ya es nmero grande
5529 es un nmero con 51 dgitos...
5529 = 295473131755644748809642476009391248226165771484375
Cmo podemos acelerar esta operacin?
1 opcin: usar reducibilidad

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Algo ms ptimo?
Exponenciacin rpida

Tema 12: Cifra

15

Un mtodo de exponenciacin rpida


En xy mod n se representa el exponente y en binario.

x2

Se calculan los productos x2 con j = 0 hasta n-1, siendo n


el nmero de bits que representan el valor y en binario.
Slo se toman en cuenta los productos en los que en la
posicin j del valor y en binario aparece un 1.
Ejemplo

Calcular z = 1237 mod 221 = 207


1237 es un nmero de 40 dgitos
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

16

Ejemplo de exponenciacin rpida


122 mod 221
1442 mod 221

Calcular z = 1237 mod 221 = 207

3710 = 1001012

x = 12

interesante
Bits 5 4 3 2 1 0

12 144 183 118


x mod 221
2

z = 121831 mod 221 = 207

En vez de 36 multiplicaciones y sus reducciones mdulo


221 en cada paso ... 72 operaciones...
Hemos realizado cinco multiplicaciones (para j = 0 el valor
es x) con sus reducciones mdulo 221, ms dos al final y su
correspondiente reduccin. Un ahorro superior al 80% .
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

17

Algoritmo de exponenciacin rpida


Hallar x = AB mod n
Obtener representacin
binaria del exponente B
de k bits:
B2 bk-1bk-2...bi...b1b0
Hacer x = 1
Para i = k-1, ..., 0 hacer
x = x2 mod n
Si (bi = 1) entonces
x = xA mod n

Ejemplo: calcule 1983 mod 91 = 24


8310 = 10100112 = b6b5b4b3b2b1b0
x=1
i=6 b6=1 x = 1219 mod 91 = 19

x = 19

i=5 b5=0 x = 192 mod 91

= 88

x = 88

i=4 b4=1 x = 882 19 mod 91 = 80

x = 80

i=3 b3=0 x = 802 mod 91

= 30

x = 30

i=2 b2=0 x = 302 mod 91

= 81

x = 81

i=1 b1=1 x = 812 19 mod 91 = 80

x = 80

i=0 b0=1 x = 802 19 mod 91 = 24

x = 24

1983 = 1,369458509879505101557376746718e+106 (calculadora Windows)

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

18

Algoritmo de cifra de ElGamal


Taher ElGamal propone en 1985 un algoritmo de cifra
que hace uso del Problema del Logaritmo Discreto PLD.

Caractersticas
o Se elige un grupo multiplicativo Zp*, p es primo grande.
o Del grupo p se elige una raz , generador del grupo.
o Cada usuario elige un nmero aleatorio dentro de p.
o Esta ser la clave privada.

o Cada usuario calcula mod p.


o Junto con p es la clave pblica.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Paradescubrir
descubrirlalaclave
claveprivada
privada
Para
atacantedeber
deberenfrentarse
enfrentarse
elelatacante
Problemadel
delLogaritmo
Logaritmo
alalProblema
Discretopara
paraun
unvalor
valorppalto.
alto.
Discreto

Tema 12: Cifra

19

Operacin de cifra con ElGamal


Operacin Cifrado: A cifra un mensaje M que enva a B
El usuario B ha elegido su clave privada b dentro del
cuerpo del nmero primo p que es pblico.
El usuario B ha hecho pblica su clave b mod p.
El emisor A genera un nmero aleatorio de sesin y
calcula mod p.
Con la clave pblica de B (b) el emisor A calcula:
(b) mod p

A enva a B el par:

M(b) mod p
C = [ mod p, M (b) mod p]

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

20

Operacin de descifrado con ElGamal


Operacin Descifrado: B descifra el criptograma C que enva A
El usuario B recibe C = [ mod p, M (b) mod p].
B toma el valor mod p y calcula ()b mod p.
B descifra el criptograma C haciendo la siguiente divisin:
[M (b) mod p ] / [()b mod p]
(b) = ()b
El paso anterior es posible hacerlo porque existir el
inverso de ()b en el grupo p al ser p un primo. Luego:
[M (b) {inv ()b, p}] mod p = M
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

21

Ejemplo de cifrado con ElGamal


Adelaida (A) enviar a Benito (B) el mensaje M = 10 cifrado
dentro del cuerpo p = 13 que usa Benito.
CIFRADO
Claves pblicas de Benito: p = 13, = 6, (b) mod p = 2
Adelaida A elige por ejemplo = 4 y calcula:
() mod p = 64 mod 13 = 9
(b)v mod p = 24 mod 13 = 3
M(b)v mod p = 103 mod 13 = 4
Enva a B () mod p, M(b)v mod p = [9, 4]
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

22

Ejemplo de descifrado con ElGamal


DESCIFRADO
La clave privada de Benito es b = 5
Benito recibe: [() mod p, M(b)v mod p] = [9, 4]
Benito calcula:
()b mod p = 95 mod 13 = 3
[M(b)v] inv[()b, p] = 4 inv (3, 13) = 4 9
M = 4 9 mod 13 = 10 (se recupera el mensaje)
Recuerde que debe ser una raz de p. Como ya hemos
visto, si no es una raz, aunque s puede hacerse la cifra,
se facilitar el ataque al Problema del Logaritmo Discreto.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

23

Consideraciones sobre el bloque


Si el mensaje M es mayor que el mdulo de trabajo
(n = pq para RSA y p para ElGamal)
cmo se generan los bloques del mensaje a cifrar?
El mensaje M se transforma en
nmeros y stos se dividen en bloques
de de g-1 dgitos, siendo g el nmero
de dgitos del mdulo de trabajo: el
valor n para RSA y p para ElGamal.

Ejemplo
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

24

Ejemplo de eleccin del bloque con RSA


Se representar el mensaje en su valor ANSI decimal.
n = pq = 89127 = 11.303

bloques de cuatro dgitos

(n) = 11.088; e = 25; d = inv (25, 11.088) = 10.201


M = Ol = 079 108 233 M = 0791 0823 3
Se recupera el mensaje agrupando en
bloques de 4 dgitos excepto el ltimo

CIFRADO

DESCIFRADO

C1 = 79125 mod 11.303 = 7.853

M1 = 7.85310201 mod 11.303 = 0791

C2 = 82325 mod 11.303 = 2.460

M2 = 2.46010201 mod 11.303 = 0823

C3 =

M3 = 6.97010201 mod 11.303 = 3

325 mod 11.303 = 6.970

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

25

Algoritmo de cifra de Pohlig y Hellman (1)


Stephen Pohlig y Martin Hellman proponen en enero de 1978
(slo un mes antes que el RSA) un algoritmo de cifra de clave
secreta que hace uso del problema del Logaritmo Discreto

Caractersticas
Se elige un grupo multiplicativo Zp*, p es un primo grande.
Cada usuario elige una clave e, que sea primo relativo con el
grupo (p) = p-1 y luego calcula d = inv (e, (p)].
La clave secreta sern los valores e y d.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

26

Algoritmo de cifra de Pohlig y Hellman (2)


CIFRADO

DESCIFRADO

C = Me mod p

M = Cd mod p

Pararomper
romperlalacifra,
cifra,elelatacante
atacantese
seenfrentar
enfrentaralalProblema
Problema
Para
delLogaritmo
LogaritmoDiscreto
DiscretoPLD,
PLD,que
quepara
paraun
unvalor
valorde
deppalto
altoes
es
del
computacionalmenteintratable.
intratable.
computacionalmente
Elalgoritmo
algoritmoes
esanterior
anterioralalRSA
RSApero
peroalalser
serde
declave
clavesecreta,
secreta,
El
carecede
defirma
firmadigital.
digital.Adems,
Adems,no
nopuede
puedecompetir
competiren
en
carece
velocidadcon
conlos
losalgoritmos
algoritmostpicos
tpicosde
declave
clavesecreta
secretacomo
como
velocidad
DES,TDES,
TDES,IDEA,
IDEA,RC2,
RC2,CAST,
CAST,etc.
etc.
DES,

Ejemplo
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

27

Operacin de cifra Pohlig y Hellman


A cifra un mensaje M que enva a B
p = 263 (p) = 262; e = 15 d = inv(15,262) = 35
Sea M = Adis = 65 100 105 243 115
Como se usa el cdigo ANSI, podremos cifrar en bloques
de un carcter pues el mdulo p es algo mayor que 256.

Operacin Cifrado:
C = Me mod p = 6515 mod 263; 10015 mod 263;
10515 mod 263; 24315 mod 263; 11515 mod 263
C = 245; 143; 179; 86; 101
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

28

Operacin de descifrado Pohlig y Hellman


B descifra el criptograma C enviado por A
p = 263; d = inv(15,262) = 35
C = 245; 143; 179; 86; 101

Operacin Descifrado:
M = Cd mod p = 24535 mod 263; 14335 mod 263;
17935 mod 263; 8635 mod 263; 10135 mod 263
M = 065; 100; 105; 243; 115
Convirtindolo al cdigo ANSI: M = Adis
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

29

Fortaleza de la cifra exponencial


El problema de la Factorizacin de Nmeros Grandes PFNG
tiene una complejidad similar al del Logaritmo Discreto PLD:
ambos suponen un tiempo de ejecucin no polinomial.
Nmero de pasos que debe realizar el algoritmo PFNG:
e{ln(n)ln[ln(n)]}
n = 60 dgitos 2,71011 pasos
n = 100 dgitos 2,31015 pasos
n = 200 dgitos 1,21023 pasos

Sistema que consuma


1 seg por paso:

3 das
74 aos
3,8109 aos

El PLD es equivalente: nmero de pasos e{ln(p)ln[ln(p)]}


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

30

Eleccin de los nmeros primos


Los valores primos deben elegirse apropiadamente:
Sistema RSA
a) p y q deben diferir en unos pocos dgitos.
b) p y q no deben ser primos muy cercanos.

Cmo?

c) Longitud mnima de p y q: 250 bits.


d) Valores de (p-1) y (q-1) del Indicador de
Euler deben tener factores primos grandes.
e) El mcd entre p-1 y q-1 debe ser pequeo.
Para el sistema de ElGamal basta elegir un primo muy grande

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 12: Cifra

31

Nmeros primos seguros


Primos seguros: se elige r un primo grande de modo que:
p = 2r + 1

q = 2p + 1

tambin sean primos

EJEMPLO: Si r es el primo de 4 dgitos 1.019:


p = 21.019 + 1 = 2.039
q = 22.039 + 1 = 4.079
p-1 = 2.038; q-1 = 4.078
p-1 = 21.019; q-1 = 22.039

Es primo
Es primo

Cumplen la condicin

El mdulo ser n = pq = 8.317.081


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

mcd (p, q) = 2
Fin del Tema 12

Tema 12: Cifra

32

También podría gustarte