a asimetrica I. Funciones unidireccionales.

Anuncio
CRIPTO II – UT II – N° 03
ASIMETRICA I
cripto-scolnik-hecht
UT-2
UNIDAD TEMÁTICA N° 2: Criptografía Asimétrica.
Funciones Unidireccionales. Funciones Trampa.
Historia de la Criptografía Asimétrica. Protocolo
de Diffie y Hellman para el intercambio de claves.
Métodos asimétricos y de clave pública (PohligHellman, RSA, Fiat-Shamir). Ataques a RSA.
Criptosistema de McEliece Criptosistemas
Basados en el Problema de la Mochila: MerkleHellman. Criptosistemas varios. Criptosistemas
Basados en el Problema de logaritmo discreto:
ElGamal, Ataque a El Gamal. Criptosistemas
Basados en Curvas Elípticas.
cripto-scolnik-hecht
CRIPTOGRAFIA ASIMETRICA
LOS
CRIPTOSISTEMAS
ASIMETRICOS
ESTAN
BASADOS EN SISTEMAS REVERSIBLES PERO POR
CAMINOS
DIFERENTES
EN
TERMINOS
DE
COMPLEJIDAD ALGORITMICA PARA QUIEN NO
DISPONGA DE TODA LA INFORMACION NECESARIA
plano
plano
complejidad
complejidad
P
P
complejidad
NP
cifrado
cifrado
´criptosistema simétrico
´criptosistema asimétrico
cripto-scolnik-hecht
CRIPTOGRAFIA ASIMETRICA
CRIPTOGRAFIA
ASIMETRICA
NO
NECESARIAMENTE ES CRIPTOGRAFIA
DE CLAVE PUBLICA.
POR EJEMPLO EL ALGORITMO DE
ENCRIPCION DE POHLIG-HELLMAN ES
ASIMETRICO
PERO
NO
POSEE
INFORMACION PUBLICA.
criptografía asimétrica
criptografía de clave pública
cripto-scolnik-hecht
CRIPTOGRAFIA DE CLAVE PUBLICA
LOS CRIPTOSISTEMAS DE CLAVE PUBLICA SE BASAN
(AL IGUAL QUE EL RESTO DE LA CRIPTOGRAFIA
ASIMETRICA) EN PROBLEMAS COMPUTACIONALMENTE
COMPLEJOS (CLASES NP o NPNP-Completo) Y CUYAS
VIAS INVERSAS SEAN SIMPLES (CLASE P) PERO NO
DEDUCIBLES UNA A PARTIR DE LA OTRA. LAS
FUNCIONES TRAMPA DE UNA VIA PERMITEN
IMPLEMENTAR ESTOS SISTEMAS DE AUTENTICACION,
ENCRIPCION Y FIRMA DIGITAL. LA VIA SIMPLE SE
HACE PUBLICA, LA CLAVE EXTRA DE LA VIA COMPLEJA
SE MANTIENE EN SECRETO Y PERMITE IDENTIFICAR A
QUIEN LA POSEE.
cripto-scolnik-hecht
FUNCIONES ASIMETRICAS
FUNCION DE UNA VIA:
y=f(x) es “computacionalmente fácil” (∈P
P)
pero x=f-1(y) es “computacionalmente difícil”
(∈ NP)
NP
FUNCION TRAMPA DE UNA VIA:
y=f(x) es “computacionalmente fácil” (∈ P)
y x=f-1(y) es “computacionalmente difícil”
(∈ NP),
NP pero contando con una “clave” extra
de información (trapdoor information)
x=f-1(y) se vuelve computable (∈ P)
cripto-scolnik-hecht
FUNCION DE UNA VIA
Tome el
plato
preferido de
su señora y
arrójelo con
fuerza contra
el suelo
vía
P
vía
NP
Comprese “la
gotita” y
reconstruya
cuidadosamente
el plato
cripto-scolnik-hecht
FUNCION DE UNA VIA
FUNCION DIRECTA (∈P
P)
134078079299425970995740249982058461274793658205923933777235614
437217640300735469768018742981669034276900318581864860508537538
82811946569946433649006084171
x
327339060789614187001318969682759915221664204604306478948329136
809613379640467455488327009232590415715088668412756007100921725
6545885393053328527588513
=
438889925503495094660474900094976741605951410874586565608960159
076495790540773835773214055962909023489062778027029768939596654
709019571832257928297343946696576711205193879175320603384442571
957421143180749826560824534764835125246615339407939420184344133
72443658976181837273211017980201029191954963730727723
(t=1 µs)
cripto-scolnik-hecht
FUNCION DE UNA VIA
FUNCION INVERSA (∈ NP)
NP
438889925503495094660474900094976741605951410874586565608960159
076495790540773835773214055962909023489062778027029768939596654
709019571832257928297343946696576711205193879175320603384442571
957421143180749826560824534764835125246615339407939420184344133
72443658976181837273211017980201029191954963730727723
=
134078079299425970995740249982058461274793658205923933777235614
437217640300735469768018742981669034276900318581864860508537538
82811946569946433649006084171
x
327339060789614187001318969682759915221664204604306478948329136
809613379640467455488327009232590415715088668412756007100921725
6545885393053328527588513
(t ≈ 30.000.000 MIPS-años)
cripto-scolnik-hecht
FUNCION TRAMPA DE UNA VIA
TRAPDOOR INFO: un factor es 2512+75
FUNCION INVERSA (NP
NP!P)
438889925503495094660474900094976741605951410874586565608960159
076495790540773835773214055962909023489062778027029768939596654
709019571832257928297343946696576711205193879175320603384442571
957421143180749826560824534764835125246615339407939420184344133
72443658976181837273211017980201029191954963730727723
=
134078079299425970995740249982058461274793658205923933777235614
437217640300735469768018742981669034276900318581864860508537538
82811946569946433649006084171
x
327339060789614187001318969682759915221664204604306478948329136
809613379640467455488327009232590415715088668412756007100921725
6545885393053328527588513
(t= 1 µs)
cripto-scolnik-hecht
QUIERE GANAR U$S 100.000 ?
Encuentre los 2 factores primos que forman
este número:
135066410865995223349603216278805969938881475
605667027524485143851526510604859533833940287
150571909441798207282164471551373680419703964
191743046496589274256239341020864383202110372
958725762358509643110564073501508187510676594
629205563685529475213500852879416377328533906
109750544334999811150056977236890927563
RSA-1024 Prize: $100,000 Status: Not Factored Decimal Digits: 309
http://www.rsasecurity.com/rsalabs/challenges/factoring/numbers.html#RSA1024
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 1
En 1976 Whitfield Diffie y Martín Hellman iniciaron una
revolución en criptografía al publicar dos trabajos:
Multiuser cryptographic techniques, Proceedings of AFIPS National
Computer Conference, (1976), pp.109-112.
New directions in cryptography, IEEE Transactions on Information
Theory, Vol.22, No.6 (1976), pp.644-654.
Distintos libros le atribuyen a un joven estudiante de Berkeley,
R.C.Merkle, el haber descubierto en forma independiente la
criptografía de clave pública a través de los denominados Merkle´s
puzzles. La motivación de todos ellos era la misma: en la clásica
criptografía simétrica el emisor y el receptor comparten una misma
clave que debe cambiarse periódicamente por razones de seguridad.
El problema era entonces: ¿ cómo comunicar a través de canales
inseguros la nueva clave ?
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 2
Merkle publicó su primer trabajo dos años más tarde:
Secure communications over insecure channels, Communications of
the ACM, Vol.21 (1978), pp.294-299.
También obtuvo las patentes U.S.Patent 4.881.264, 14/11/89 ,
5.003.597 del 26/3/91 y 4.309,569 del 5/1/82
De hecho los tres trabajaban en contacto y tenían experiencias
distintas. Martín Hellman había hecho su tesis en Matemática sobre
cadenas de Markov y su motivación era la teoría de la información,
Merkle estudiaba Computación y sus rompecabezas constituían un
protocolo para intercambiar claves, y Diffie le dijo un cierto día a
Helmann : habría que tener una clave privada y una pública.
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 3
Diffie y Hellman pensaban que la idea de Merkle era interesante pero
no muy práctica, pero los hizo pensar en otras formas de lograr
transmitir datos confidenciales sobre canales inseguros.
Reconociendo el trabajo conjunto, los tres obtuvieron la primera
patente de criptografía de clave pública emitida el 29/4/80 con el
número 4.200.770 solicitada el 6/9/77 por los tres a nombre de la
Universidad de Stanford. Sin embargo se la llama la patente de DiffieHellmann porque cubre al protocolo de intercambio de claves que
ellos desarrollaron, aunque también permite identificar identidades
sobre canales inseguros.
Por otra parte Hellmann y Merkle desarrollaron un sistema de clave
pública basado en el problema de la mochila (knapsack subset
problem), y solicitaron la patente el 6/10/77 que tiene el número
4.218.582 que ahora se sabe que no es seguro.
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 4
Más allá del intercambio de claves
Lo anterior tenía como objetivo intercambiar claves en forma segura,
pero la encripción debía realizarse mediante un método simétrico. El
paso siguiente era natural: ¿ cómo encriptar asimétricamente ?
Pohlig y Hellman
asimétricamente:
desarrollaron
un
algoritmo
para
encriptar
S.C.Pohlig and M.E.Hellman, “ An Improved Algorithm for Computing
Logarithms in GF(p) and Its Cryptographic Significance”, IEEE
Transactions on Information Theory, Vol.24, No.1,(1978), pp.106-111.
Pero como es usual el trabajo terminado tardó dos años en
publicarse. Mientras tanto Martín Hellman le mandó el paper a Ron
Rivest , profesor del MIT, quien con Shamir y Adleman redactaron el
algoritmo RSA y lo mandaron a una revista muchos más “rápida”.
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 5
Su artículo era
R.L.Rivest, A.Shamir and L.Adleman, “A method for obtaining digital
signatures and public key cryptosystems”, Communications of the
ACM, Vol.21(1978),pp.120-126.
En dicho artículo ellos no reconocieron en absoluto que
estaba basado en el método de Pohlig-Hellman, y más aún:
cuando lo patentaron plantearon una oposición a la patente
de Pohlig-Hellman. Sin embargo la contribución de RSA es la
de haber transformado a un sistema asimétrico que NO es de
clave pública en uno que si lo es (Pohlig-Hellman usa un
entero n grande y secreto, RSA dice: hagamos que n = p.q
con p y q primos grandes y publiquemos n lo cual sin duda es
una gran idea, pero deberían haber mencionado que su
algoritmo era una mejora de Pohlig-Hellman)
cripto-scolnik-hecht
HISTORIA DE LA
CRIPTOGRAFIA ASIMETRICA - 6
Hugo Scolnik – Martin Hellman (2002)
cripto-scolnik-hecht
Como distribuir las claves secretas
La idea es disponer de un conjunto numerado de
claves y transmitir códigos ininteligibles para un
espía que permiten arribar mediante operaciones
matemáticas al mismo número. Este valor en común
entre los usuarios habilitados será utilizado luego
como llave de un algoritmo simétrico.
cripto-scolnik-hecht
PROTOCOLO DE INTERCAMBIO DE CLAVES
DIFFIE-HELLMAN
Este fue el primer algoritmo de clave pública y es
universalmente utilizado para el intercambio seguro
de claves.
Sea p un primo “grande” y a un entero (2 ≤ a ≤ p2, generador del grupo cíclico Z*p), ambos se dan a
conocer a los usuarios 1 y 2.
Los usuarios 1 y 2 eligen arbitrariamente
exponentes enteros x e y que mantienen
SECRETOS y proceden a calcular y enviarse
recíprocamente lo siguiente:
cripto-scolnik-hecht
PROTOCOLO DE INTERCAMBIO DE CLAVES
DIFFIE-HELLMAN
E l u s u a r io 1 c a lc u la f ( x ) = a x m o d ( p )
E l u s u a r io 2 c a lc u la f ( y ) = a y m o d ( p )
y se los intercambian…
A h o r a , e l u s u a r io 2 c a lc u la
y
K = f ( x ) y m o d ( p ) = [a x m o d ( p ) ] m o d ( p ) =
a
xy
m od( p)
A h o r a , e l u s u a r io 1 c a lc u la
x
K = f ( y ) x m o d ( p ) = [a y m o d ( p ) ] m o d ( p ) =
a
xy
m od( p)
y a s í A M B O S lle g a n a la m is m a c la v e
s e c re ta .
cripto-scolnik-hecht
PROTOCOLO DE INTERCAMBIO DE CLAVES
DIFFIE-HELLMAN
Ejemplo:
Sea p = 23, a = 5, x = 6, y = 10 . Ahora el
usuario 1 calcula:
f ( x ) = a x mod( p) = 56 mod(23) =
15625 mod(23) = 8
y se lo envía al usuario 2.
El usuario 2 calcula
f ( y ) = a y mod( p) = 510 mod(23) =
9765625 mod(23) = 9
y se lo envía al usuario 1.
cripto-scolnik-hecht
PROTOCOLO DE INTERCAMBIO DE CLAVES
DIFFIE-HELLMAN
El usuario 2 recibió el número 8 y
procede a calcular:
K = f ( x ) y mod( p) = 810 mod(23) = 3
El usuario 1 recibió el número 9 y
calcula:
K = f ( y ) x mod( p) = 9 6 mod(23) = 3
Por lo tanto ambos llegaron a la MISMA
clave.
cripto-scolnik-hecht
PROTOCOLO DE INTERCAMBIO DE CLAVES
DIFFIE-HELLMAN
Q u é c o n s ig u e u n e s p ía ? I n te r c e p ta lo s
n ú m e ro s 8 y 9 y a u n q u e c o n o z c a e l
p r im o e le g id o y la b a s e ( o s e a p , a ) , n o
s a b e c u a le s f u e r o n lo s n ú m e r o s
x e y . P a r a e n c o n t r a r la c la v e c o m ú n
t e n d r ía q u e r e s o lv e r e l lla m a d o p r o b le m a
d e l lo g a r it m o d is c r e to , p o r e je m p lo :
5 x m o d (2 3) = 8
C u a n d o lo s n ú m e r o s in v o lu c r a d o s s o n
m u y g r a n d e s , y e s tá n b ie n e le g id o s , e s te
p r o b le m a e s c o m p u ta c io n a lm e n t e
ir r e s o lu b le e n u n t ie m p o r a z o n a b le .
Ejemplo:
p = 1000475149 , a = 876543098 ,
x = 12345678909876543 ,
y = 654375426738848
Los resultados son:
f ( x ) = 993617947 , f ( y ) = 839026926
y la clave común a la que ambos arriban es:
K = 708448295
Obviamente puede usarse esta clave en un
algoritmo simétrico o puede ser una
referencia a un conjunto de claves
numeradas,
cripto-scolnik-hecht
cripto-scolnik-hecht
El espía (si llegó a conocer los
números p, a ) tendría que resolver la
ecuación:
876543098 x mod(1000475149) = 993617947
En la práctica se usan números mucho
mayores, lo que solo es factible con un
software o hardware muy bien
implementado.
cripto-scolnik-hecht
ax (mod p)
ay (mod p)
X
Y
K=axy (mod p)
generación de clave simétrica primaria
cripto-scolnik-hecht
K=axy (mod p)
intercambio de clave simétrica secundaria de encripción
cripto-scolnik-hecht
intercambio de mensajes usando la clave secundaria
cripto-scolnik-hecht
CONCLUSION
Descargar