Você está na página 1de 81

Tcnicas de Codificacin,

Tema 4
Cifrado con clave
pblica
1
Tema 4: Clave pblica - 2
Bibliografa bsica
4 [1] CHARLIE KAUFMAN, RADIA PERLMAN, MIKE
SPECINER: Network Security: Private
Communication in a Public World. Prentice Hall;
Primera edicin (Marzo, 1995). ISBN: 0130614661
[L/S 004.056 KAU]
+ Captulo 2: 2.5 y Captulo 6
4 [2] WILLIAM STALLINGS: Cryptography and
network security. Principles and practice. Cuarta
Edicin. Prentice Hall 2006. ISBN:0131873164
http://williamstallings.com/ [L/S 004.7 TAN]
+ Captulos 8 y 9
Tema 4: Clave pblica - 3
Bibliografa complementaria
4[3] J. MANUEL LUCENA: Criptografa y
seguridad en computadores. Cuarta edicin.
http://wwwdi.ujaen.es/~mlucena/bin/cysec4.zip
+ Captulos 5, 6 y 12
4[4] ALFRED MENEZES: Handbook of applied
cryptography. CRC Press. 1996.
http://www.cacr.math.uwaterloo.ca/hac/
+ Captulos 2 y 8
Tema 4: Clave pblica - 4
Bibliografa especfica para Curvas
Elpticas
4Implementing Elliptic Curve Cryptography
por Michael Rosing
4Guide to Elliptic Curve Cryptography
por Darrel Hankerson
4Elliptic Curves in Cryptography
por Ian Blake
Tema 4: Clave pblica - 5
ndice del tema
4Introduccin a la criptografa asimtrica.
4Base matemtica previa.
+Aritmtica modular
4Algoritmos basados en exponenciacin:
+RSA
+ElGamal
4Criptografa basada en curvas elpticas.
+ElGamal
+Diffie-Hellman
Tema 4: Clave pblica - 6
Introduccin: Criptografa asimtrica
4Los algoritmos de clave pblica fueron introducidos
por Whitfield Diffie y Martin Hellman a mediados de
los aos 70 (1976) y su novedad fundamental con
respecto a la criptografa simtrica es que las claves
no son nicas, sino que forman pares.
4Los algoritmos asimtricos poseen dos claves
diferentes en lugar de una, k
pr
y K
PU
, denominadas
clave privada y clave publica (una de ellas se
emplea para decodificar, mientras que la otra se usa
para codificar).
4La longitud de las claves suele ser mayor que las
usadas en algoritmos simtricos (p.ej. 1024 bits).
Tema 4: Clave pblica - 7
Introduccin: Seguridad
4Para que los criptosistemas basados en clave
pblica sean seguros ha de cumplirse que a
partir de una de las claves resulte
extremadamente difcil (computacionalmente)
calcular la otra.
4Dos de las aplicaciones principales de estos
algoritmos son:
+Cifrar (nos permitir la confidencialidad).
+Autenticar (ser la base para las firmas digitales).
Tema 4: Clave pblica - 8
Cifrado con algoritmos asimtricos
4La siguiente figura recoge el proceso de cifrado:
Tema 4: Clave pblica - 9
Autenticacin con algoritmos asimtricos
4La siguiente figura recoge el proceso de autenticacin:
Tema 4: Clave pblica - 10
Clasificacin de algoritmos asimtricos
4Existen dos familias principales de algoritmos
asimtricos de aplicacin en criptografa en
funcin de las funciones matemticas usadas:
+ Basados en exponenciacin (primera parte del
tema).
+ Basados en curvas elpticas (segunda parte del
tema).
Base matemtica
previa (algoritmos
basados en
exponenciacin)
Aritmtica modular
Tema 4: Clave pblica - 12
No perdamos el norte
4Las bases:
+ Qu queremos hacer? Alguna operacin
criptogrfica como cifrar o firmar (autenticacin).
+ Sobre qu lo queremos hacer? Sobre un mensaje
o documento.
4Pues bien en criptografa asimtrica basada
en exponenciacin tendremos:
+ El mensaje no ser ms que una concatenacin
de nmeros (truncando el mensaje en bloques de
n bits).
+ La criptografa se basar en aplicar operaciones
(basadas en exponenciacin) a cada uno de
estos nmeros
Tema 4: Clave pblica - 13
4Es la base matemtica (matemticas discretas) en la
que se sustentan las operaciones de cifrado
asimtrico basado en exponenciacin.
4Concepto de congruencia:
+ Sean dos nmeros enteros a y b: a es congruente con
b en el mdulo o cuerpo n en Z
n
si y slo si existe
algn entero k que divide de forma exacta la diferencia
(a - b)
a - b = k - n
a
n
b
a b mod n
Necesito un conjunto finito de textos
cifrados Concepto de congruencia
Tema 4: Clave pblica - 14
Para cualquier entero positivo n, el conjunto completo
de restos ser CCR = {0, 1, 2, ... n-1}, es decir:
a e Z - ! r
i
e CCR / a r
i
mod n
Solo una representacin por resto (r
i
)
CCR (11) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
CCR (6) = {0, 1, 2, 3, 4, 5} = {12, 7, 20, 9, 16, 35}
El segundo conjunto es equivalente: 12 0, 7 1...
Conjunto completo de restos (CCR)
Tema 4: Clave pblica - 15
4En criptografa muchas veces nos interesar
encontrar el mximo comn divisor (MCD) entre dos
nmeros a y b.
4Por ejemplo: para la existencia de inversos en un
cuerpo n, (es decir b tal que a - b mod n = 1) la base a y el mdulo
n debern ser primos entre s. MCD (a, n) = 1
Clculo del MCD
Tema 4: Clave pblica - 16
Algoritmo de Euclides
4Si x divide a a y b
+x dividir a a mod b (a - k - b)
+x dividir a b mod a (b - k - a)
4Algoritmo:
+Si a > b r
0
= a y r
1
= b
+calcular r
2
= a mod b, ie: r
2
= r
0
mod r
1
+Iterar r
n
= r
n-2
mod r
n-1
+El ltimo resto antes de llegar a 0 ser el MCD (a, b)
Tema 4: Clave pblica - 17
MCD (148, 40)
148 = 3 - 40 + 28
40 = 1 - 28 + 12
28 = 2 - 12 + 4
12 = 3 - 4 + 0
MCD (148, 40) = 4
mcd (385, 78)
385 = 4 - 78+ 73
78 = 1 - 73 + 5
73 = 14 - 5 + 3
5 = 1- 3 + 2
3 = 1- 2 + 1
2 = 2 - 1 + 0
MCD (385, 78) = 1
148 = 2
2
- 37
40 = 2
3
- 5
385 = 5 - 7 - 11
78 = 2 - 3 - 13
Factor comn
2
2
= 4
No hay
factor comn
Divisibilidad con algoritmo de
Euclides
Ser importante
en criptografa

Tema 4: Clave pblica - 18
Ejercicio 4.1
Calcula el MCD de 191 y 29 utilizando el
algoritmo de Euclides
Tema 4: Clave pblica - 19
4 En criptografa deber estar permitido invertir una operacin
para recuperar un cifrado descifrar.
4 Si bien la cifra es una funcin, en lenguaje coloquial la
operacin de cifrado sera una multiplicacin y la operacin de
descifrado una divisin.
4 La analoga anterior slo ser vlida en el cuerpo de los
enteros Z
n
con inverso.
4 Luego, si en una operacin de cifra la funcin es el valor a
dentro de un cuerpo n, deberemos encontrar el inverso a
-1
mod
n para descifrar; en otras palabras ...
Inversos multiplicativos mod n
Tema 4: Clave pblica - 20
Inversos multiplicativos mod n
4Si a - x mod n = 1
+x ser el inverso multiplicativo (a
-1
) de a en el
mdulo n
4No siempre existen los inversos. En realidad lo
raro es que existan.
4Veamos en la siguiente transparencia cundo
existen inversos.
Tema 4: Clave pblica - 21
- inverso a
-1
en mod n ssi MCD (a, n) = 1
Si MCD (a,n) = 1, el resultado de a-i mod n (para i todos los restos
del CCR(n)) sern valores distintos dentro del cuerpo n.
MCD (a, n) = 1 - x ! 0<x<n / a - x mod n = 1
Sea: a = 4 y n = 9. Valores de i = {1, 2, 3, 4, 5, 6, 7, 8}
4-1 mod 9 = 4 4-2 mod 9 = 8 4-3 mod 9 = 3
4-4 mod 9 = 7 4-5 mod 9 = 2 4-6 mod 9 = 6
4-7 mod 9 = 1 4-8 mod 9 = 5
inv (4, 9) = 7
Existencia del inverso por primalidad

Tema 4: Clave pblica - 22


Si MCD (a, n) = 1
No existe ningn x que 0 < x < n / a - x mod n = 1
Sea: a = 3 y n = 6 Valores de i = {1, 2, 3, 4, 5}
3-1 mod 6 = 3 3-2 mod 6 = 0 3-3 mod 6 = 3
3-4 mod 6 = 0 3-5 mod 6 = 3
No existe el inverso para ningn resto del cuerpo.
Inexistencia de inverso (no primalidad)
Y si no hay primalidad entre a y n?

Tema 4: Clave pblica - 23


Si n=10
4 Cuntos nmeros tendrn inverso multiplicativo?
(A-B) mod 10 = 1
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 0 2 4 6 8
3 3 6 9 2 5 8 1 4 7
4 4 8 2 6 0 4 8 2 6
5 5 0 5 0 5 0 5 0 5
6 6 2 8 4 0 6 2 8 4
7 7 4 1 8 5 2 9 6 3
8 8 6 4 2 0 8 6 4 2
9 9 8 7 6 5 4 3 2 1
10=2*5
# =(2-1)*(5-1)
Tema 4: Clave pblica - 24
4 El conjunto reducido de restos, conocido como CRR
de n, es el subconjunto {0, 1, ... n
i
, ... n-1} de restos
primos con n.
4 Si n es primo, todos los restos sern primos con l.
4 Como el cero no es una solucin, entonces:
CRR = {1, ..., n
i
, ... n-1} / MCD (n
i
, n) = 1
Ejemplo: CRR mod 8 = {1, 3, 5, 7}
CRR mod 5 = {1, 2, 3, 4}
Conjunto reducido de restos CRR (1)
Tema 4: Clave pblica - 25
4Qu utilidad tiene esto en criptografa?
4El conocimiento del CRR permitir aplicar
un algoritmo para el clculo del inverso
multiplicativo de un nmero x dentro de un
cuerpo o grupo n a travs de la funcin
|(n), denominada Funcin de Euler o
Indicador de Euler.
Conjunto reducido de restos CRR (2)
Tema 4: Clave pblica - 26
4Funcin |(n) de Euler
4Devuelve el nmero de elementos del CRR.
4Podremos representar cualquier nmero n de estas
cuatro formas:
Funcin de Euler |(n)
a) n es un nmero primo.
b) n se representa como n = p
k
con p primo y k entero.
c) n es el producto n = p-q con p y q primos.
d) n es un nmero cualquiera (genrico).
t
n = p
1
e1
- p
2
e2
- ... - p
t
et
= H p
i
ei
i=1
Tema 4: Clave pblica - 27
Caso 1: n es un nmero primo
Si n es primo, |(n) ser igual al tamao del CCR menos
el 0.
|(n) = n - 1
ya que todos los restos de n, excepto el cero, sern
primos con n.
CRR(7) = {1,2,3,4,5,6} seis elementos
|(7) = n - 1 = 7-1 = 6
|(11) = 11-1 = 10; |(23) = 23-1 = 22
Ejemplo
Se usar en sistemas ElGamal y DSS
Funcin |(n) de Euler (n = p)
Tema 4: Clave pblica - 28
Caso 2: n = p
k
(con p primo y k un entero)
|(n) = |(p
k
) = p
k
- p
k-1
|(p
k
) = p
k-1
(p-1)
De los p
k
elementos del CCR, restaremos todos los
mltiplos 1-p, 2-p, 3-p, ...(p
k-1
-1)-p y el cero.
CRR(16) = {1,3,5,7,9,11,13,15} ocho elementos
|(16) = |(2
4
) = 2
4-1
(2-1) = 2
3
-1 = 8
|(125) = |(5
3
) = 5
3-1
-(5-1) = 5
2
-4 = 25-4 = 100
Ejemplo
Funcin |(n) de Euler (n = p
k
)
Tema 4: Clave pblica - 29
Caso 3: n = p-q (con p y q primos)
|(n) = |(p-q) = |(p)-|(q) = (p-1)(q-1)
De los p-q elementos del CCR, restaremos todos los
mltiplos de p = 1-p, 2-p, ... (q - 1)-p, todos los
mltiplos de q = 1-q, 2-q, ... (p - 1)-q y el cero.
|(p-q) = p-q - |(q-1) + (p-1) +1| = p-q - q - p + 1
(p-1)(q-1)
Funcin |(n) de Euler (n = p-q)
CRR(15) = {1,2,4,7,8,11,13,14} ocho elementos
|(15) = |(3-5) = (3-1)(5-1) = 2-4 = 8
|(143) = |(11-13) = (11-1)(13-1) = 10-12 = 120
Base de RSA
(de facto estndar)
Tema 4: Clave pblica - 30
Caso 4: n = p
1
e1
-p
2
e2
- ... -p
t
et
(p
i
son primos)
t
|(n) = H p
i
ei-1
(p
i
- 1)
i=1
(demostracin no inmediata)
CRR(20) = {1, 3, 7, 9, 11, 13, 17, 19} ocho elementos
|(20) = |(2
2
-5) = 2
2-1
(2-1)-5
1-1
(5-1) = 2
1
-1-1-4 = 8
|(360) = |(2
3
-3
2
-5) = 2
3-1
(2-1)-3
2-1
(3-1)-5
1-1
(5-1) = 96
Ejemplo
Funcin |(n) de Euler (n = genrico)
Tema 4: Clave pblica - 31
Ejercicio 4.2
Calcula |(667)=
Pista 667 podra utilizase en RSA
667 = 23* 29
|(667)= |(23-29)= (23-1)(29-1)= 616
Tema 4: Clave pblica - 32
Dice que si MCD (a,n) = 1 a
|(n)
mod n = 1
Ahora igualamos 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 (con 0<x<n)
El valor x ser el inverso de a en el cuerpo n
Nota: Observe que se ha dividido por a en el clculo anterior. Esto
se puede hacer porque MCD (a, n) = 1 y por lo tanto hay un nico
valor inverso en el cuerpo n que lo permite.
Teorema de Euler
Tema 4: Clave pblica - 33
Cul es el inverso de 4 en mdulo 9? inv (4, 9)
Pregunta: Existe a - x mod n = 4 - x mod 9 = 1?
Como MCD (4, 9) = 1 S ... aunque 4 y 9 no son primos.
|(9) = 6 x = 4
6-1
mod 9 = 7 7-4 = 28 mod 9 = 1
Resulta obvio que: inv (4, 9) = 7 e inv (7, 9) = 4
Ejemplo
Clculo de inversos con Teorema Euler
Tema 4: Clave pblica - 34
4Si el factor a es primo relativo con n y n es el
producto de dos primos, seguir
cumplindose el Teorema de Euler tambin
en dichos primos.
4Por ejemplo:
+Si n = p-q |(n) = (p-1)(q-1)
+ a / MCD {a, (p,q)} = 1
+se cumple que:
- a
|(n)
mod p = 1
- a
|(n)
mod q = 1
Teorema de Euler para n = p-q
Tema 4: Clave pblica - 35
Ejemplo ilustrativo
4 Sea n = p*q = 7*11 = 77
4|(n) = (p - 1)(q - 1) = (7 - 1)(11 - 1) = 6*10 = 60
4 Si k = 1, 2, 3, ...
4Para a = k*7 a
|(n)
mod n = k*7
60
mod 77 = 56
4Para a = k*11 a
|(n)
mod n = k*11
60
mod 77 = 22
4Para a = k*7,11 a
|(n)
mod n = a
60
mod 77 = 1
4 Y se cumple que:
4Para a = k*7,11 a
|(n)
mod p = a
60
mod 7 = 1
a
|(n)
mod q = a
60
mod 11 = 1
4 En caso contrario: a
|(n)
mod p = 0
a
|(n)
mod q = 0
Ejemplo Teorema de Euler para n = p-q
Tema 4: Clave pblica - 36
Reducibilidad
4Si queremos calcular 81
30
mod 91
+ Cmo lo haremos?
4Directamente con la calculadora (se puede
perder precisin):
+ 1,7970102999144312104131798295096e+57 mod 91
4Aplicando reducibilidad:
+ 81
30
mod 91 = (81
5
mod 91)
6
mod 91 = 9
6
mod 91 = 1
4Curioso?
+ 81
6
mod 91 = 1
Tema 4: Clave pblica - 37
4 Calcular a
|(n)
mod n cuando los valores de |(n) y a
son grandes, se hace tedioso pues hay que utilizar la
propiedad de la reducibilidad repetidas veces.
4 Si no conocemos |(n) o no queremos usar el
teorema de Euler, siempre podremos encontrar el
inverso de a en el cuerpo n usando el
Algoritmo Extendido de Euclides
Es el mtodo ms rpido y prctico
Qu hacemos si no se conoce |(n)?
Tema 4: Clave pblica - 38
Algoritmo extendido de Euclides
4Se basa en el de Euclides pero toma en cuenta los
cocientes adems de los restos en cada iteracin (i.e.
Interesa tanto a mod n como n/a).
4El algoritmo realiza una serie de iteraciones tipo:
4El ltimo g
i
ser el MCD (a,n). Si a y n son primos
entre si se tendr:
Tema 4: Clave pblica - 39
2 1 3 2 1
25 9 7 2 1 0
Encontrar el inv (9, 25) por el mtodo de restos de Euclides.
a) 25 = 2*9 + 7
b) 9 = 1*7 + 2
c) 7 = 3*2 + 1
d) 2 = 2*1 + 0
e) 1 = 1*1 + 0
7 = 25 - 2-9
2 = 9 - 1-7
1 = 7 - 3-2
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
El inv (9,25) = -11
-11 + 25 = 14
inv (9, 25) = 14
restos
Tabla de Cocientes y Restos
Clculo de inversos con el AEE
Tema 4: Clave pblica - 40
Para encontrar x = inv (A, B)
Hacer (g
0
, g
1
, u
0
, u
1
, v
0
, v
1
, i) = (B, A, 1, 0, 0, 1, 1)
Mientras g
i
= 0 hacer
Hacer y
i+1
= parte entera (g
i-1
/g
i
)
Hacer g
i+1
= g
i-1
- y
i+1
* g
i
Hacer u
i+1
= u
i-1
- y
i+1
* u
i
Hacer v
i+1
= v
i-1
- y
i+1
* v
i
Hacer i = i+1
Si (v
i-1
< 0) Hacer
Hacer v
i-1
= v
i-1
+ B
Hacer x = v
i-1
i y
i
g
i
u
i
v
i
0 - 25 1 0
1 - 9 0 1
2 2 7 1 -2
3 1 2 -1 3
4 3 1 4 -11
5 2 0 -9 25
x = inv (A, B)
x = inv (9, 25)
x = inv (9, 25) = -11+25 = 14
Algoritmo para el clculo de inversos
Ejemplo
Tema 4: Clave pblica - 41
Ejercicio 4.3
Calcula el inverso multiplicativo de (5,9)
usando AEE
inv (5,9) = 2
Algoritmos basados en
exponenciacin
Tema 4: Clave pblica - 43
Algoritmos basados en exponenciacin
4Se basan en la peculiaridad que el clculo de
exponenciales es bastante ms rpido que resolver
logaritmos discretos o factorizar grandes nmeros.
4Algunos de los algoritmos ms extendidos son:
+ RSA
+ ElGamal (y su versin generalizada)
+ Rabin
+ McEliece
+ Merkle-Hellman
+ Chor-Rivest
+ Goldwasser-Micali
+ Blum-Goldwasser
Tema 4: Clave pblica - 44
RSA
4 El algoritmo de RSA fue inventado en 1978 por Ron Rivest, Adi
Shamir, y Leonard Adleman.
4 Es uno de los ms sencillos de comprender.
4 Los pares de claves son duales por lo que sirve tanto para
codificar como para autentificar.
4 Se tiene por uno de los algoritmos asimtricos ms seguros
(aunque no se ha demostrado que no pueda romperse).
4 Se basa en la dificultad para factorizar grandes nmeros.
4 Las claves pblica y privada se obtienen a partir de un nmero n
que se calcula como producto de dos grandes nmeros primos
(p y q). La longitud de n es variable (p.ej. 1024/2048 bits).
4 El texto plano debe ser ms pequeo que la clave
+ RSA se usa principalmente para cifrar claves simtricas
Tema 4: Clave pblica - 45
RSA
4 Las matemticas de RSA pueden expresarse:
1. Encuentra dos nmeros primos grandes p and q
4 Ejemplo: Dos nmeros de 1024 bits
2. Calcula el producto n = p-q
3. Elige e tal que:
1. 1 < e < n
2. e y u(n)=(p-1)(q-1) sean primos entre s (caso 3 de Euler)
MCD {e, (p-1)(q-1)} = 1
3. e no tiene que ser primo pero debe ser impar
4. (p-1)(q-1)no tiene que ser primo pero
Sus dos factores (p-1) y (q-1)sern nmero pares
Entonces: e tendr un inverso modulo u(n)=(p-1)(q-1)
4. La clave pblica ser (e,n)
Tema 4: Clave pblica - 46
RSA
5. d se calcula como el inverso multiplicativo de e
modulo u(n) = (p-1)(q-1)
+ Es decir: d*e mod u(n) = 1
6. La clave privada es (d,n)
7. El cifrado se lleva a cabo mediante:
+ C = M
e
(mod n)
8. El descifrado se lleva a cabo con:
+ M = C
d
(mod n)
C => texto cifrado
M => mensaje original
Tema 4: Clave pblica - 47
RSA
4As pues al decodificar obtenemos el mensaje:
4Consideraciones:
+p y q han de tener un nmero grande de bits
+El atacante, si quiere recuperar la clave privada a
partir de la pblica debe conocer los factores p y q
de n (complejo en coste computacional).
M = C
d
(mod n) =(M
e
)
d
(mod n)= M
ed
(mod n)
d=e
((p-1)(q-1))-1
mod ((p-1)(q-1))
Tema 4: Clave pblica - 48
P = 7; q = 13; n = 91
|(n) = |(7-13) = (7-1)(13-1) = 72 M = 48
Elegimos e = 5 pues MCD (5,72) = 1 d = inv(5,72) = 29
CIFRADO:
C = M
e
mod n = 48
5
mod 91 = 5245.803.968 mod 91 = 55
DESCIFRADO:
M = C
d
mod n = 55
29
mod 91 = 48 ... 55
29
ya es nmero grande
55
29
es un nmero con 51 dgitos...
55
29
= 295473131755644748809642476009391248226165771484375
Cmo podemos acelerar esta operacin?
Algo ms ptimo?
Exponenciacin rpida
1 opcin: usar reducibilidad
`
Ejemplo RSA
Tema 4: Clave pblica - 49
En x
y
mod n se representa el exponente y en binario.
Se calculan los productos x
2
j
mod n 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.
Calcular z = 12
37
mod 221 = 207
12
37
es un nmero de 40 dgitos
Ejemplo
Un mtodo de exponenciacin rpida
Tema 4: Clave pblica - 50
Calcular z = 12
37
mod 221 = 207
37
10
= 100101
2
mod 221
j 0 1 2 3 4 5
x = 12
12 144 183 118 1 1
Bits 5 4 3 2 1 0
z = 12-183-1 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% .
12
2
mod 221
144
2
mod 221
x
2
j
Un mtodo de exponenciacin rpida
Tema 4: Clave pblica - 51
La otra historia del algoritmo RSA
4 Rivest, Shamir y Adleman son los autores de RSA pero un
algoritmo de cifra asimtrico basado en la dificultad de factorizar
nmeros grandes como funcin unidireccional fue descubierto
mucho antes...
4 En el ao 1969 el Government Communications Headquarters
(GCHQ) en Gran Bretaa comienza a trabajar en la idea de
poder distribuir claves a travs de una cifra no simtrica. En
1973, el matemtico Clifford Cocks llegar a la misma
conclusin que los creadores de RSA.
4 Desgraciadamente este trabajo fue considerado como alto
secreto por el gobierno britnico por lo que su contenido no se
hace pblico ni se patenta como invento, algo que s hacen Diffie
y Hellman en 1976 con su intercambio de claves y en 1978 otro
tanto los creadores del algoritmo RSA.
Tema 4: Clave pblica - 52
Eleccin de los nmeros primos
4Los valores primos deben elegirse
apropiadamente:
+ a) p y q deben diferir en unos pocos dgitos.
+ b) p y q no deben ser primos muy cercanos.
+ 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.
Tema 4: Clave pblica - 53
Primos seguros: se elige r un primo grande de modo que:
p = 2-r + 1 y q = 2-p + 1 tambin sean primos
EJEMPLO: Si r es el primo de 4 dgitos 1.019:
p = 2-1.019 + 1 = 2.039 Es primo `
q = 2-2.039 + 1 = 4.079 Es primo `
p-1 = 2.038; q-1 = 4.078
p-1 = 2-1.019; q-1 = 2-2.039; `
MCD (p, q) = 2 `
El mdulo ser n = p-q = 8.317.081
Nmeros primos seguros
Tema 4: Clave pblica - 54
Ataque a la clave por factorizacin de n
4 Qu fortaleza tendr este algoritmo ante ataques?
4 El intruso que desee conocer la clave secreta d a
partir de los valores n y e se enfrentar al Problema
de la Factorizacin de Nmeros Grandes (PFNG),
puesto que la solucin para conocer esa clave privada
es conocer primero el valor del Indicador de Euler |(n)
= (p-1)(q-1) para as poder encontrar d = inv [e, |(n)],
pero para ello deber saber los valores de los primos
p y q.
Tema 4: Clave pblica - 55
N de bits (n) N de dgitos Das Aos
60 18 1,7 x 10
-8
-
120 36 1,5 x 10
-5
-
256 77 1,0 -
363 109 9,0 x 10
2
2,5
442 133 9,4 x 10
4
2,5 x 10
2
665 200 3,8 x 10
8
1,0 x 10
6
Para un procesador de 2x10
8
instrucciones por segundo (aos noventa).
Fuente: Criptografa Digital, Jos Pastor. Prensas Univ. de Zaragoza, 1998.
Desafo RSA640 (193 dgitos) roto en noviembre de 2005 en la Universidad de
Bonn. Lo que en 1998 se valoraba en un milln de aos, hoy se ha roto en un
tiempo equivalente a 30 aos con un PC a 2,2 GHz. Y se resolvern nuevos
desafos de nmeros mayores. Por lo tanto, ... deberemos ser siempre muy
cautos.
Tiempo necesario para afrontar el PFNG
Tema 4: Clave pblica - 56
Claves privadas parejas en RSA
4 Una clave privada pareja d
P
, permite descifrar cualquier
criptograma C resultado de una cifra con la clave pblica e sin
que d
P
sea el inverso de la clave pblica e. En el sistema RSA
habr como mnimo una clave d
P
pareja de la clave privada d.
4 Esto se debe a que las claves inversas e y d lo sern en |(n) y en
cambio la cifra se hace en el cuerpo n.
4 Ejemplo:
- 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 pblica
el nmero M = 87 obtenemos C = 87
41
mod 247 = 159.
- Luego sabemos que M = C
d
mod n = 159
137
mod 247 = 87
- Pero tambin lo desciframos con d
P
= 29, 65, 101, 173, 209 y 245.
Tema 4: Clave pblica - 57
Nmero de claves privadas parejas
4 Si = mcm [(p-1),(q-1)] y sea d = inv (e, )
4 La clave pblica e tendr claves parejas di de la forma:
di = d + i 1 < di < n
i = 0, 1, ... = (n - d)/
4 En el ejemplo anterior tenemos que:
= mcm [(p-1),(q-1)] = mcm (12, 18) = 36
4 Luego: d = inv (41, 36) = 29, as di = d + i = 29 + i-36
4 Es decir di = 29, 65, 101, 137, 173, 209, 245. Observe que en
aparece (137) la clave privada d y comprobamos que:
= (n - d)/ = (247 29)/36) = 6,05 => 6
4 MCD(p-1,q-1) pequeo equivale mcm(p-1,q-1) grande lo que
implica un reducido nmero de claves parejas
Tema 4: Clave pblica - 58
Nmeros no cifrables en RSA
4 Si M
e
mod n = M se dice que M es un nmero no cifrable (NNC).
Aunque la clave e sea vlida, el nmero M se enviar en claro .
4 En RSA habr como mnimo 9 nmeros no cifrables.
4 En el caso ms crtico, todos los nmeros del cuerpo n pueden
ser no cifrables.
4 Para conocer estos valores no cifrables, habr que hacer un
ataque de cifrado por fuerza bruta en p y q, es decir deberemos
comprobar que M
e
mod p = M y M
e
mod q = M con 1 < X < n-1 .
4 Ejemplo:
+ Sea el cuerpo n = 35 (p = 5, q = 7), con |(n) = 24 y e = 11.
+ Dentro de los nmeros posibles {0, 34} sern no cifrables: {6, 14,
15, 20, 21, 29, 34} adems de los obvios {0, 1}. El valor n-1 (en este
caso 34) ser tambin siempre no cifrable.
Tema 4: Clave pblica - 59
La paradoja del cumpleaos
4 Podemos idear un ataque a la clave privada basado en este problema.
4 Pregunta: Cuntas personas tiene que haber en un aula para que la
probabilidad de que al menos 2 de ellas cumplan aos el mismo da sea
superior a 0,5?
4 Solucin: Se escribe en la pizarra los 365 das del ao y las personas
entran al aula de uno en uno, borrando el da de su cumpleaos de la
pizarra. Basta que entren slo 23 personas al aula para tener una
probabilidad superior a 0,5. Este es un valor muy bajo, en principio
inimaginable y de all el nombre de paradoja, aunque matemticamente
no lo sea.
4 Explicacin: El primero en entrar tendr una probabilidad de que su
nmero 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)!n
k
.
Para k = 23 se tiene p
NC
= 0,493 y as la probabilidad de coincidencia
ser igual a p
C
= (1- pNC) = 0,507, que es mayor que 0,5.
Tema 4: Clave pblica - 60
Ataque a la clave por paradoja
cumpleaos
4 Algoritmo propuesto por Merkle y Hellman en 1981:
+ El atacante elige dos nmeros aleatorios distintos i, j dentro del
cuerpo de cifra n. Lo interesante es que elige, adems, un
mensaje o nmero M cualquiera.
+ Para i = i+1 y para j = j+1 calcula M
i
mod n y M
j
mod n.
+ Cuando encuentra una coincidencia de igual resultado de cifra
para una pareja (i, j), ser capaz de encontrar d.
+ Un ejemplo para resolver en siguientes diapositivas:
- sea p = 7; q = 13, n = 91, e = 11, d = 59. El atacante slo conoce
n = 91 y e = 11. Partir con el nmero M = 20 y elegir los
valores i = 10 y j = 50.
Tema 4: Clave pblica - 61
i C
i
j C
i
i = 10 C
10
= 20
10
mod 91 = 43 j = 50 C
50
= 20
50
mod 91 = 36
i = 11 C
11
= 20
11
mod 91 = 41 j = 51 C
51
= 20
51
mod 91 = 83
i = 12 C
12
= 20
12
mod 91 = 1 j = 52 C
52
= 20
52
mod 91 = 22
i = 13 C
13
= 20
13
mod 91 = 20 j = 53 C
53
= 20
53
mod 91 = 76
i = 14 C
14
= 20
14
mod 91 = 36 j = 54 C
54
= 20
54
mod 91 = 64
i = 15 C
15
= 20
15
mod 91 = 83 j = 55 C
55
= 20
55
mod 91 = 6
i = 16 C
16
= 20
16
mod 91 = 22 j = 56 C
56
= 20
56
mod 91 = 29
i = 17 C
17
= 20
17
mod 91 = 76 j = 57 C
57
= 20
57
mod 91 = 34
Hay una colisin en el paso quinto al coincidir el valor C = 36 en
contador i que ya haba 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 colisin (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
slo sirve para descifrar el nmero elegido (aqu el 20) y no un
nmero genrico. En este caso se hablar de un falso positivo.
Ejemplo de ataque paradoja cumpleaos
Tema 4: Clave pblica - 62
Resultado del ataque paradoja
cumpleaos
4 La primera coincidencia es en i = 14; j = 50. As, el atacante
conociendo la clave pblica e = 11, calcula: w = (i-j) /MCD (e, |i-j|)
w = (14-50) / MCD (11, |14-50|) = -36 / MCD (11, 36) = - 36.
4 Entonces debern existir valores s, t de forma que se cumpla lo
siguiente:
w-s + e-t = 1 -36-s + 11-t = 1
4 Las posibles soluciones a la ecuacin son: w-s mod e = 1; e-t mod
w = 1
-36-s = 1 mod 11 s = inv (-36, 11) = inv (8, 11) = 7
11-t = 1 mod 36 t = inv (11, 36) = 23
4 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.
Tema 4: Clave pblica - 63
ElGamal
4Fue diseado por Taher ElGamal para producir firmas
digitales pero se extendi tambin para codificar
mensajes.
4Se basa en el problema de la complejidad de resolver
logaritmos discretos.
4Elegimos un nmero primo p y dos nmeros aleatorios
g y x menores que p.
4Se calcula:
+ y = g
x
(mod p)
4La clave pblica es (g,y,p).
4La clave privada es x.
Tema 4: Clave pblica - 64
ElGamal
4Veamos la codificacin con este algoritmo:
+a = g
k
(mod p), k: entero aleatorio
+b = My
k
(mod p)
4El texto codificado ser pues [a,b] (doble
longitud que el mensaje original).
4Para decodificar se har:
+M = ba
p-1-x
(mod p) ba
-x
(mod p)
+ M = My
k
(a
-x
) mod p
+ M = My
k
(g
-kx
) mod p
+ M = Mg
kx
(g
-kx
) mod p = M
Tema 4: Clave pblica - 65
Adelaida enviar a Benito el mensaje M = 10 cifrado
dentro del cuerpo p = 13 que usa Benito.
Claves pblicas de Benito: p = 13, g = 6, y = 2 => (g
x
) mod p = y
Adelaida elige por ejemplo k = 4 y calcula:
a = (g
k
) (mod p) = 6
4
mod 13 = 9
b = M*(y
k
) (mod p) = 10 * 2
4
(mod 13) = 4
Enva a Benito [(g
k
) mod p, M-(y
k
) mod p] = [9, 4]
CIFRADO
Ejemplo de cifrado con ElGamal
Tema 4: Clave pblica - 66
DESCIFRADO
La clave privada de Benito es x = 5
Benito recibe: [a,b] = [(g
k
) mod p, M-(y
k
) mod p] = [9, 4]
Benito calcula:
M = b * a
p-1-x
mod p
M = 4 * 9
13-1-5
mod 13 = 10 (se recupera el mensaje)
Es importante tener en cuenta que el mensaje se recupera sin
conocer el nmero aleatorio k
Ejemplo de descifrado con ElGamal
Tema 4: Clave pblica - 67
Clave pblica {p = 2357; g=2; y=1185}
Clave privada {x= 1751}
Otro ejemplo para ElGamal
a = (g
k
) (mod p) = 2
1520
mod 2357 = 1430 => con k = 1520
b = M*(y
k
) (mod p) = 2035 * 1185
1520
(mod 2357) = 697 => con M = 2035
C = [1430, 697]
CIFRADO
DESCIFRADO
M = b * a
p-1-x
mod p = 697 * 1430
2357-1-1751
mod 2357 = 2035
Tema 4: Clave pblica - 68
Resumen de los sistemas de clave
pblica basados en exponenciacin
4 Emisor y receptor generan un par de claves, pblica y privada,
relacionadas por una funcin con trampa.
4 Emisor y receptor de un mensaje usan claves diferentes para las
operaciones de cifrado, descifrado.
4 La seguridad del sistema va asociada a la resolucin de un
problema matemtico de difcil solucin en el tiempo.
4 Nos permiten firmar digitalmente.
4 Son sistemas de cifra muy lentos.
4 Se usarn para cifrar datos cortos como claves de sesin o para
firmar resmenes de mensajes.
Criptografa asimtrica
basada en curvas elpticas.
Tema 4: Clave pblica - 70
ECC
4 La criptografa basada en curvas elpticas (ECC) fue
introducida por Victor Miller y Neal Koblitz en 1985.
4 Su principal ventaja con la criptografa basada en
exponenciaciones es que requiere claves de menor
tamao para obtener una seguridad similar (coste
computacional para romper el sistema)
+ Claves menores mayor velocidad de clculo y menores
requisitos de almacenamiento
+ Ideal para dispositivos limitados
Tema 4: Clave pblica - 71
Tamaos de claves para obtener la
misma seguridad
Tamao de claves en
Algoritmos basados
en exponenciacin
Tamao de claves en
Algoritmos basados
en curvas elpticas
Ratio tamao de
claves
1024 163 1:6
3072 256 1:12
7680 384 1:20
15360 512 1:30
Tema 4: Clave pblica - 72
Curvas elpticas
4La ecuacin que nos define las curvas es:
+ y
2
[ + xy ] = x
3
+ ax
2
+ b
- [ + xy ]: componente opcional de la ecuacin
- a, b: constantes
- a, b, x, y: nmeros reales
4Para su aplicacin a criptografa:
+ a, b, x, y deben pertenecer a un cuerpo finito.
+ Como el visto en aritmtica modular
4Se usan los cuerpos finitos o cuerpos de Galois (GF)
4No veremos los GF pero un caso particular de ellos
son los generados por la operaciones modulo n si n
es primo (GF(n))
Tema 4: Clave pblica - 73
Curvas elpticas
4 Sea E una curva elptica sobre el espacio finito Fn, entonces
E(Fn) es el conjunto de puntos que satisfacen la ecuacin de la
curva en ese espacio, junto con el punto infinito O.
+E(F)= {(x,y)F|y
2
=x
3
+ax+b} U {O}
y
2
=x
3
-3x+3 y
2
=x
3
-13x-12 y
2
=x
3
+x+1
Ejemplo: Para y
2
=1x
3
+x+1 en el espacio
(modulo 7)
E(F7)= {(0,1),(0,6),(2,2),(2,5),O}
Tema 4: Clave pblica - 74
Procedimiento para sumar usando curvas
elpticas
4 En E(Fn) se puede definir una operacin + mediante el mtodo
de la cuerda y la tangente.
Dos puntos equivalen a P+Q
y
2
=x
3
-13x-12
y
2
=x
3
-3x+5
Si l a r ect a que une a P y Q no cor t a a l a cur va el pt i ca, asumi mos l a cor t a en el i nf i ni t o O
Tema 4: Clave pblica - 75
Operaciones sobre curvas elpticas
4Se definen la operacin de suma de puntos y
producto de un punto por un entero.
4Definimos el producto de un punto de la curva
P por un entero k iterando como:
+2P = P+P
+3P = P+P+P ...
+P+P tangente a la
curva en P
Anlogo a la exponenciacin: x
2
=x*x
Tema 4: Clave pblica - 76
Seguridad de las Curvas elpticas
4La seguridad vendr dada porque existe una
forma de calcular eficientemente:
+ Q=kP
4Si conocemos k y conocemos P podemos
calcular Q
4Si conocemos P y Q no hay un algoritmo
eficiente de conocer k. De esta manera
estamos protegiendo k al enviarla al receptor.
Tema 4: Clave pblica - 77
Complejidad implcita en ECC
4A da de hoy:
+ Si: el orden de P es un nmero primo de n-bits
+ Orden P es tal que *P=O o ( +1)*P=P
+ Entonces: Calcular k conociendo k*P and P
supone aproximadamente 2
n/2
operaciones
4Ejemplo:
+ Orden de P es un nmero primo de 240-bits
+ Por fuerza bruta, el clculo de k llevara 2
120
operaciones
+ Con una mquina de 10.000 millones de
operaciones por segundo:
- ~10
19
aos...
Tema 4: Clave pblica - 78
ElGamal sobre ECC
4Alicia y Bartolo eligen:
+ Un campo de Galois finito (con n primo)
+ Una curva elptica E
+ Un punto fijo en la curva PeE
4Alicia elige:
+ Un nmero aleatorio d clave privada
- Publica el punto Q=dPeE como clave pblica
4Para enviar un mensaje m a Alicia, Bartolo debe:
+ Calcular M (punto en E cuya componente x sea m)
+ Elegir un nmero aleatorio k y enviar a Alicia
+ C1 = kP
+ C2 = M+kQ
4Para leer el mensaje, Alice calcula:
+ M = C2 dC1 = M +kQ d(kP) = M
Tema 4: Clave pblica - 79
Comparacin ElGamal sobre ECC y
basado en exponenciacin
4Decodificacin en ECC:
+ M+kdP dkP
4Decodificacin en Exponenciacin:
+ M(g
x
)
k
/ (g
k
)
x
4Generalizacin para convertir un mtodo de
exponenciacin a ECC:
+ Las exponenciaciones productos
+ La base se convierte en el punto de la curva
+ El exponente se convierte en el escalar
+ Los productos sumas
+ Divisiones restas
Tema 4: Clave pblica - 80
ECC : Ejemplo Diffie-Hellman
4Se publica una determinada curva elptica y de un
punto de esa curva P.
4Cada usuario crear la clave privada eligiendo un
entero aleatorio k.
4La clave pblica consiste en multiplicar P por k.
4Por ejemplo: Alicia tendra:
+ A
p
= k
1
.
+ A
P
= k
1
*P
4Y Bartolo:
+ B
p
= k
2
.
+ B
P
= k
2
*P
Tema 4: Clave pblica - 81
ECC : Ejemplo Diffie-Hellman
4Se puede obtener un secreto comn usando:
+A
p
* B
P
= B
p
* A
P
= k
1
* k
2
* P.
4La seguridad se basa en que resulta muy
complejo calcular k
1
y k
2
a partir de las claves
pblicas.

Você também pode gostar