Está en la página 1de 52

Introduccin a Criptografa de clave pblica

Pedro Ivan Salas Pea

29 de enero de 2017

Pedro Salas

Intro PKC

29 de enero de 2017

1 / 35

Contenido

Introduccin

Criptografa simtrica vs. Criptografa asimtrica

Aspectos prcticos de la criptografa de clave pblica

Teora de nmeros para los algoritmos de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

2 / 35

Introduccin

Contenido

Introduccin

Criptografa simtrica vs. Criptografa asimtrica

Aspectos prcticos de la criptografa de clave pblica

Teora de nmeros para los algoritmos de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

3 / 35

Introduccin

Introduccin

Como vimos en los temas anteriores, la criptografa de clave simtrica ha sido


usada cerca de 4000 aos.
La criptografa de clave pblica fue presentada pblicamente en 1976 por
Withfield Diffie, Martin Hellman y Ralph Merkle.
En 1997 unos documentos britnicos que hasta ese entonces eran clasificados
revelan que James Ellis, Clifford Cocks y Graham Williamson del (GCHQ)
descubrieron el principio de criptografa de clave pblica en 1972.

Pedro Salas

Intro PKC

29 de enero de 2017

4 / 35

Introduccin

Introduccin I
Bailey Withfield Diffie, es un criptgrafo nacido en 1944 en Washington, es
uno de los pioneros de la criptografa de clave pblica, gano un premio Turing
en 2015 junto con Hellman, ademas es conocido por el protocolo de
intercambio de llaves.

Martin Edward Hellman, es un criptgrafo nacido en 1945 en New York.


Pedro Salas

Intro PKC

29 de enero de 2017

5 / 35

Introduccin

Introduccin II

Ralph C. Merkle, es un cientfico de la computacin nacido en 1952 en


Berkeley, es conocido por ser uno de los inventores de la criptografa de clave
pblica, por los Merkles puzzles y por la construccin de Merkle-Damgard
para funciones hash.

Pedro Salas

Intro PKC

29 de enero de 2017

6 / 35

Introduccin

Introduccin III

Pedro Salas

Intro PKC

29 de enero de 2017

7 / 35

Criptografa simtrica vs. Criptografa asimtrica

Contenido

Introduccin

Criptografa simtrica vs. Criptografa asimtrica

Aspectos prcticos de la criptografa de clave pblica

Teora de nmeros para los algoritmos de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

8 / 35

Criptografa simtrica vs. Criptografa asimtrica

Criptografa simtrica

Se utiliza la misma clave secreta para cifrar y descifrar.


Las funciones de cifrado y descifrado son muy similares.

Pedro Salas

Intro PKC

29 de enero de 2017

9 / 35

Criptografa simtrica vs. Criptografa asimtrica

Limitaciones de la criptografa simtrica

Problema de distribucin de claves.

Pedro Salas

Intro PKC

29 de enero de 2017

10 / 35

Criptografa simtrica vs. Criptografa asimtrica

Limitaciones de la criptografa simtrica

Problema de distribucin de claves.


Numero de claves

n(n1)
2

pares de claves, cada usuario guarda n 1 claves.


Alice
kac

kab

kbc

Bob

Carol

kad

kbd

kcd

Dan

Pedro Salas

Intro PKC

29 de enero de 2017

10 / 35

Criptografa simtrica vs. Criptografa asimtrica

Limitaciones de la criptografa simtrica

Problema de distribucin de claves.


Numero de claves

n(n1)
2

pares de claves, cada usuario guarda n 1 claves.


Alice
kac

kab

kbc

Bob

Carol

kad

kbd

kcd

Dan

No hay proteccin contra estafas por Alice o Bob. (no repudio).

Pedro Salas

Intro PKC

29 de enero de 2017

10 / 35

Criptografa simtrica vs. Criptografa asimtrica

Principios de la criptografa de clave pblica

No es necesario que la clave que posee la persona que cifra sea secreta.
Solo el receptor puede descifrar utilizando una clave secreta.
La clave k consiste de dos partes, una pblica kpub y otra privada kpriv .

Pedro Salas

Intro PKC

29 de enero de 2017

11 / 35

Criptografa simtrica vs. Criptografa asimtrica

Principios de la criptografa de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

12 / 35

Criptografa simtrica vs. Criptografa asimtrica

Funciones de un solo sentido

Definicin
Una funcin f () es de un solo sentido si:
1
2

y = f (x) es computacionalmente fcil y


x = f 1 (y ) es computacionalmente difcil.

Existen dos funciones de un solo sentido populares que son utilizadas en esquemas
de clave pblica.
El problema de la factorizacin de enteros.
El problema del logaritmo discreto.

Pedro Salas

Intro PKC

29 de enero de 2017

13 / 35

Aspectos prcticos de la criptografa de clave pblica

Contenido

Introduccin

Criptografa simtrica vs. Criptografa asimtrica

Aspectos prcticos de la criptografa de clave pblica

Teora de nmeros para los algoritmos de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

14 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

No repudio

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

No repudio
RSA,DSA,ECDSA

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

No repudio
RSA,DSA,ECDSA

Identificacin

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

No repudio
RSA,DSA,ECDSA

Identificacin
Utilizando protocolos de desafi-respuesta junto con firmas digitales

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Mecanismos de seguridad

Establecimiento de claves.
DHKE, RSA

No repudio
RSA,DSA,ECDSA

Identificacin
Utilizando protocolos de desafi-respuesta junto con firmas digitales

Cifrado

Pedro Salas

Intro PKC

29 de enero de 2017

15 / 35

Aspectos prcticos de la criptografa de clave pblica

Protocolos Hbridos

Incorporan algoritmos simtricos y asimtricos.


Ejemplos de estos protocolos:
SSL/TLS
IPsec

Pedro Salas

Intro PKC

29 de enero de 2017

16 / 35

Aspectos prcticos de la criptografa de clave pblica

Autenticidad de claves pblicas


En verdad sabemos que cierta clave pblica pertenece a cierta persona?
En la practica este problema se resuelve utilizando certificados.

Pedro Salas

Intro PKC

29 de enero de 2017

17 / 35

Aspectos prcticos de la criptografa de clave pblica

Algoritmos importantes de clave pblica

Existen solo 3 grandes familias de algoritmos de clave pblica que son de


practica relevancia:
Esquemas de factorizacin de enteros. (RSA)
Esquemas de logaritmo discreto. (DHKE,Elgamal)
Esquemas de curvas elpticas. (ECDH,ECDSA)

Pedro Salas

Intro PKC

29 de enero de 2017

18 / 35

Aspectos prcticos de la criptografa de clave pblica

Algoritmos importantes de clave pblica

Existen solo 3 grandes familias de algoritmos de clave pblica que son de


practica relevancia:
Esquemas de factorizacin de enteros. (RSA)
Esquemas de logaritmo discreto. (DHKE,Elgamal)
Esquemas de curvas elpticas. (ECDH,ECDSA)

Las primeras dos familias son de a mediados de la dcada 1970s y la otra es


de a mediados de la dcada de 1980s.

Pedro Salas

Intro PKC

29 de enero de 2017

18 / 35

Aspectos prcticos de la criptografa de clave pblica

Algoritmos importantes de clave pblica

Existen solo 3 grandes familias de algoritmos de clave pblica que son de


practica relevancia:
Esquemas de factorizacin de enteros. (RSA)
Esquemas de logaritmo discreto. (DHKE,Elgamal)
Esquemas de curvas elpticas. (ECDH,ECDSA)

Las primeras dos familias son de a mediados de la dcada 1970s y la otra es


de a mediados de la dcada de 1980s.
Existen otras propuestas como:
Esquemas
Esquemas
Esquemas
Esquemas

Pedro Salas

de ecuaciones cuadrticas multivariantes (MQ).


de lattices.
de curvas hiperelpticas.
con automatas finitos.

Intro PKC

29 de enero de 2017

18 / 35

Aspectos prcticos de la criptografa de clave pblica

Longitudes de claves y niveles de seguridad

Las 3 familias se basan en funciones de teora de nmeros.


Se dice que un algoritmo tiene un nivel de seguridad de n bit si el mejor
ataque conocido requiere 2n pasos.

Familia

Criptosistema

Factorizacin de enteros
Logaritmo Discreto
Curvas Elpticas
Simtricos

RSA
DH,DSA,Elgamal
ECDH,ECDSA
AES,3DES

Pedro Salas

80
1024 bit
1024 bit
160 bit
80 bit

Intro PKC

Nivel de seguridad (bit)


128
192
256
3072 bit 7680 bit 15360 bit
3072 bit 7680 bit 15360 bit
256 bit
384 bit
512 bit
128 bit
192 bit
256 bit

29 de enero de 2017

19 / 35

Teora de nmeros para los algoritmos de clave pblica

Contenido

Introduccin

Criptografa simtrica vs. Criptografa asimtrica

Aspectos prcticos de la criptografa de clave pblica

Teora de nmeros para los algoritmos de clave pblica

Pedro Salas

Intro PKC

29 de enero de 2017

20 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano

Es usado para calcular el mximo comn divisor de dos nmeros enteros.


El mximo comn divisor de dos enteros positivos r0 y r1 se denota como
mcd(r0 , r1 ) y es el numero positivo mas grande que divide r0 y r1 .
Se basa en la observacin de que mcd(r0 , r1 ) = mcd(r0 r1 , r1 ) donde se
asume que r0 > r1 .
Se sigue inmediatamente
mcd(r0 , r1 ) = mcd(r0 r1 , r1 ) = mcd(r0 2r1 , r1 ) = = mcd(r0 qr1 , r1 )

El algoritmo usa menos pasos si se escoge el mximo valor para q,


mcd(r0 , r1 ) = mcd(r0 m
od r1 , r1 ).
mcd(r0 , r1 ) = = mcd(rl , 0) = rl

Pedro Salas

Intro PKC

29 de enero de 2017

21 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano

Ejemplo

Pedro Salas

Intro PKC

29 de enero de 2017

22 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido


Resulta que encontrar el maximo comun divisor no es la principal aplicacion
de algoritmo euclidiano. Una extension del algoritmo nos permite encontrar
inversos modulares.
El algoritmo extendido computa una combinacion linear de la forma
mcd(r0 , r1 ) = s r0 + t r1
Para lograrlo a cada iteracion del mcd expresamos el residuo ri , como
ri = si r0 + ti r1 asi al terminar rl = mcd(r0 , r1 ) = sl r0 + tl r1 = sr0 + tr1
Ejemplo

Pedro Salas

Intro PKC

29 de enero de 2017

23 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Algoritmo recursivo
s0 = 1, s1 = 0, t0 = 0, t1 = 1
si = si2 qi1 si1
ti = ti2 qi1 ti1

Inverso modular
s r0 + t r1 = 1
s 0 + t r1 1 m
od r0
t r1 1 m
od r0
t r11 m
od r0

si t da como resultado un numero negativo, entonces t = t + r0 .

Pedro Salas

Intro PKC

29 de enero de 2017

24 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Ejemplo
mcd(67, 12) = 1

Pedro Salas

Intro PKC

29 de enero de 2017

25 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Ahora mostraremos como utilizar el algoritmo euclidiano extendido para


computar inversos multiplicativos en campos de Galois.

Pedro Salas

Intro PKC

29 de enero de 2017

26 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Ahora mostraremos como utilizar el algoritmo euclidiano extendido para


computar inversos multiplicativos en campos de Galois.
Si queremos computar el inverso en un campo finito GF (2m ), las entradas
para el algoritmo son el elemento del campo A(x) y el polinomio irreducible
P(x)
s(x)P(x) + t(x)A(x) = mcd(P(x), A(x)) = 1

Pedro Salas

Intro PKC

29 de enero de 2017

26 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Ahora mostraremos como utilizar el algoritmo euclidiano extendido para


computar inversos multiplicativos en campos de Galois.
Si queremos computar el inverso en un campo finito GF (2m ), las entradas
para el algoritmo son el elemento del campo A(x) y el polinomio irreducible
P(x)
s(x)P(x) + t(x)A(x) = mcd(P(x), A(x)) = 1
El inverso del campo:
s(x)0 + t(x)A(x)
t(x)

Pedro Salas

Intro PKC

m
od P(x)

A(x)1

m
od P(x)

29 de enero de 2017

26 / 35

Teora de nmeros para los algoritmos de clave pblica

Algoritmo Euclidiano extendido

Ejemplo
Encontrar el inverso de A(x) = x 2 en el campo finito GF (23 ) con
p(x) = x 3 + x + 1

Pedro Salas

Intro PKC

29 de enero de 2017

27 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler


Definicin
Funcin Phi de Euler
El numero de enteros en Zm que son primos relativos a m es denotado por (m).
Ejemplo
Sea m = 6 , Z6 = {0, 1, 2, 3, 4, 5}
mcd(0, 6) = 6
mcd (1, 6) = 1
mcd(2, 6) = 2
mcd(3, 6) = 3
mcd(4, 6) = 2
mcd (5, 6) = 1
Ya que existen dos nmeros en el conjunto que son primos relativos a 6, la funcin
toma el valor de 2: (6) = 2.
Pedro Salas

Intro PKC

29 de enero de 2017

28 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler

Teorema
Tenga m la siguiente factorizacion canonica
m = p1e1 p2e2 pnen ,
donde los pi son primos distintos y ei son enteros positivos, entonces
(m) =

n
Y
(piei piei 1 ).
i=1

Pedro Salas

Intro PKC

29 de enero de 2017

29 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler

(p) = p 1 si p es primo

Pedro Salas

Intro PKC

29 de enero de 2017

30 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler

(p) = p 1 si p es primo
(p k ) = p k p k1 si p es primo

Pedro Salas

Intro PKC

29 de enero de 2017

30 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler

(p) = p 1 si p es primo
(p k ) = p k p k1 si p es primo
(mn) = (m)(n) si mcd(m, n) = 1 es decir son primos relativos.

Pedro Salas

Intro PKC

29 de enero de 2017

30 / 35

Teora de nmeros para los algoritmos de clave pblica

Funcin Phi de Euler

(p) = p 1 si p es primo
(p k ) = p k p k1 si p es primo
(mn) = (m)(n) si mcd(m, n) = 1 es decir son primos relativos.
Ejemplo
Sea m = 240, la factorizacion canonica es
m = 240 = 16 15 = 24 3 5
la funcion (m) entonce es:
(m) = (24 23 ) (31 30 ) (51 50 ) = 8 2 4 = 64.

Pedro Salas

Intro PKC

29 de enero de 2017

30 / 35

Teora de nmeros para los algoritmos de clave pblica

Pequeo Teorema de Fermat

Este teorema es de gran ayuda para test de primalidad y para muchas otros
aspectos de la criptografia de clave pblica.
Teorema
Sea a un entero y p un numero primo, entonces
ap a

Pedro Salas

m
od p.

Intro PKC

29 de enero de 2017

31 / 35

Teora de nmeros para los algoritmos de clave pblica

Pequeo Teorema de Fermat

Este teorema es de gran ayuda para test de primalidad y para muchas otros
aspectos de la criptografia de clave pblica.
Teorema
Sea a un entero y p un numero primo, entonces
ap a

m
od p.

El teorema puede ser escrito como ap1 1 m


od p.

Pedro Salas

Intro PKC

29 de enero de 2017

31 / 35

Teora de nmeros para los algoritmos de clave pblica

Pequeo Teorema de Fermat

Este teorema es de gran ayuda para test de primalidad y para muchas otros
aspectos de la criptografia de clave pblica.
Teorema
Sea a un entero y p un numero primo, entonces
ap a

m
od p.

El teorema puede ser escrito como ap1 1 m


od p.
p2
Puede ser usado para encontrar inversos a
a1 m
od p.

Pedro Salas

Intro PKC

29 de enero de 2017

31 / 35

Teora de nmeros para los algoritmos de clave pblica

Pequeo Teorema de Fermat


Demostracin.
Asumamos que a es un entero positivo y no es divisible entre p, si escribimos la
secuencia
a, 2a, 3a, . . . , (p 1)a
y reducimos m
od p tendremos la secuencia
1, 2, 3, . . . , (p 1)
con un ordenamiento distinto.
Si multiplicamos cada numero de cada secuencia obtenemos que
a 2a (p 1)a 1 2 (p 1) m
od p.
Ahora si factorizamos a, tenemos que
ap1 (p 1)! (p 1)!

Pedro Salas

Intro PKC

m
od p.

29 de enero de 2017

32 / 35

Teora de nmeros para los algoritmos de clave pblica

Pequeo Teorema de Fermat

Ejemplo
Sea p = 7 y a = 2, podemos computar el inverso de a como:
ap2 = 25 = 32 4

Pedro Salas

Intro PKC

m
od 7.

29 de enero de 2017

33 / 35

Teora de nmeros para los algoritmos de clave pblica

Teorema de Euler

Teorema
Sea a y m enteros con mcd(a, m) = 1, entonces:
a(m) 1

m
od m.

Ejemplo
Sea m = 12 y a = 5 entonces
(12) = (22 3) = (22 21 ) (31 30 ) = 2 2 = 4
ahora utilizando el teorema de Euler tenemos
5(12) = 54 = 252 = 625 1

Pedro Salas

Intro PKC

m
od 12.

29 de enero de 2017

34 / 35

Teora de nmeros para los algoritmos de clave pblica

Referencias

Christof Paar and Jan Pelzl.


Understanding cryptography: a textbook for students and practitioners.
Springer Science & Business Media, 2009.
Joseph H Silverman.
A friendly introduction to number theory.
Pearson Prentice Hall, 2012.

Pedro Salas

Intro PKC

29 de enero de 2017

35 / 35