Critpografía clave pública

Anuncio
Criptografía de clave
pública
Índice
„
Criptografía Clave Pública
… Características
… Comparativa
„
cifrado simétrico vs. asimétrico
RSA
… Operaciones
de Cifrado y Descifrado
… Generación de Claves
„
Firma Digital
… Funciones
Hash
1
Criptografía
Texto
Claro
Cifrado
Simétrico
Clave Compartida
Texto
Claro
Texto Cifrado
Canal
Cifrado
Asimétrico
Criptografía simétrica. Resumen
„
„
„
„
„
La criptografía simétrica usa una única clave
Clave compartida por emisor y por receptor
Si se revela la clave, las comunicaciones o los
mensajes cifrados se verán comprometidos
Se dice simétrica porque las partes son iguales
De ahí que no es posible proteger al emisor de
que el receptor falsifique el mensaje y diga que
fue enviado por el emisor
2
Criptografía asimétrica
„
Dos claves:
… pública
„
„
Conocida por todo el mundo
Usada para cifrar mensajes y verificar la firma de un mensaje
… privada
„
„
„
„
(KUa)
(KRA)
Conocida únicamente por el propietario
U d para descifrar
Usada
d
if mensajes
j y para firmar
fi
mensajes
j
asimétrica: las partes no son iguales
Funcionamiento basado la Teoría de Números
Criptografía asimétrica
„
Desarrollada para tratar dos problemas clave
…
…
„
Firma digital: como verificar que un mensaje llega intacto del
que afirma ser su emisor
Distribución de claves: cómo poder establecer
comunicaciones seguras sin tener que confiar una clave privada
a un Centro de Distribución de Claves
(Key Distribution Center o KDC)
El invento se debe a Whitfield Diffie & Martin Hellman.
Universidad de Stanford. 1976.
3
Criptografía asimétrica
Criptografía asimétrica. Características
„
Características de las claves
…
…
…
…
Es fácil computacionalmente cifrar/descifrar mensajes cuando
se conoce la clave de cifrado/descifrado respectivamente
No es posible computacionalmente encontrar la clave de
descifrado únicamente a partir del algoritmo y la clave de cifrado
Usan las funciones unidireccionales con trampa
Son reversibles. Cualquiera de las dos claves pueden usarse
para cifrar y descifrar. Todo lo que se cifre con la clave pública
puede ser descifrado con la clave privada y viceversa.
M = DKRb [ EKUb ( M )] = DKUb [ EKRb ( M )]
4
Funciones unidireccionales con trampa
„
Funciones matemáticas de un sólo sentido
(one-way functions)
„
Permiten usar la función en sentido directo [cálculo sencillo] para
cifrar y descifrar (usuarios legítimos)
„
Fuerzan el sentido inverso [cálculo complejo] para el ataque o
criptoanálisis de la cifra
f (M) = C es siempre fácil.
f -1(C) = M es difícil salvo que se tenga la trampa.
Funciones con trampa más usadas
„
Problema de la factorización
…
Cálculo directo: producto de dos primos grandes
…
Cálculo inverso: factorización de número grande
„
„
„
p·q = n
n = p·q
Problema del logaritmo discreto
…
Cál l di
Cálculo
directo:
t exponenciación
i ió di
discreta
t
„
…
αx mod n = β
Cálculo inverso: logaritmo discreto
„
x = logαβ mod n
5
Cifrado asimétrico.
Posibilidades de Cifrado
„
Clave pública destino (KUdest
d t – KRdest
d t)
„
Clave pública de origen (KUorig – KRorig)
„
Clave p
privada de origen
g ((KRorig – KUorig)
„
Clave privada de destino (¿?)
Cifrado con clave pública de destino
„
Sólo destinatario p
podrá descifrar el mensaje
j ((KRdest)
„
Proporciona:
…
…
confidencialidad
integridad
„
„
si el mensaje es alterado no se podrá descifrar
No proporciona
p p
…
autenticidad del emisor
…
no repudio
„
„
Cualquiera pudo haber generado el mensaje cifrado
El emisor puede negar que ha sido el quien cifró el mensaje
6
Cifrado con clave pública de destino
„
A puede enviar un mensaje cifrado a B
utilizando la clave pública de B, KUb
…C
„
= EKUb (M)
B puede descifrar el mensaje utilizando su
clave
l
privada,
i d KRb
b
…M
= DKRb (C) = DKRb (EKUb (M))
Cifrado con clave pública de origen
„
Si en vez de utilizar la clave pública de destino, el
emisor usa su propia clave pública, la cifra no tiene
sentido bajo el punto de vista de sistemas de clave
pública ya que sólo él o ella sería capaz de descifrar el
criptograma (deshacer la operación de cifra) con su
propia clave privada.
„
Podría
P
d í usarse para cifrar
if
un mensaje
j que sólo
ól ell propio
i
emisor pueda descifrar. Sin embargo, para este uso es
más adecuado el cifrado simétrico ya que es más
eficiente.
7
Cifrado con clave privada de origen
„
„
„
Cualquier usuario podrá descifrar el mensaje (KUorig)
No proporciona confidencialidad
Sí proporciona:
…
integridad
„
…
„
…
Sólo el emisor puede haber cifrado el mensaje con su clave
privada ya que sólo el tiene esa clave
privada,
no repudio
„
„
si el mensaje es alterado no se podrá descifrar
autenticidad del emisor.
el emisor no puede negar que ha sido el quien cifró el mensaje
¡Es el mecanismo que hace posible la firma digital!
Criptografía asimétrica:
Confidencialidad y autenticación
8
Cifrado con clave privada de origen
„
A puede enviar un mensaje cifrado a B
utilizando la clave su privada, KRa.
…C
„
= EKRa (M)
B puede descifrar el mensaje utilizando la
clave pública de A, KUa
…M
= DKUa (C) = DKUa (EKRa (M))
Criptografía asimétrica:
Confidencialidad y autenticación
9
Criptografía asimétrica. Aplicaciones
„
Aplicaciones principales:
… Cifrado: proporciona confidencialidad
… Firma digital: proporciona autenticación
(además de
integridad y no repudio)
… Intercambio de claves: útil para intercambiar claves
de sesión
„
Al
Algunos
algoritmos
l i
son adecuados
d
d para todos
d
los usos, mientras que otros son específicos de
un uso concreto
Seguridad de los criptosistemas de clave pública
„
„
Ataques de búsqueda exhaustiva por fuerza bruta
posibles
Defensa
…
…
…
„
Longitud de las claves ( >1024 bits)
Funciones trampa: en la enorme diferencia de dificultad entre los
problemas fáciles (cifrar/descifrar) y los difíciles (criptoanálisis)
Normalmente, el problema difícil se conoce, pero es lo
suficientemente complejo como para no ser viable resolverlo
Problemas
…
…
Se necesita usar números muy grandes
Lentitud
10
Comparativa: autenticación
„
Cifrado simétrico
„
… No
permite
autenticación del
emisor
… No permite por lo tanto
no repudio
… Únicamente
Ú
permite
garantizar la integridad
del mensaje
Cifrado asimétrico
… Permite
autenticación
… Permite no repudio del
emisor
… Permite garantizar la
integridad del mensaje
Comparativa: gestión de claves
„
Cifrado simétrico
„
… Para
n participantes,
entran en juego
„
Cifrado asimétrico
… Para
n participantes,
entran en juego
n * (n-1) / 2 claves
„
2 * n claves
EJEMPLO
Para n = 100 (100 participantes)
─ Simétrico: 100x99/2 = 4950 claves.
─ Asimétrico: 2x100 = 200 claves
11
Comparativa
„
Cifrado simétrico
… Espacio
„
„
Cifrado asimétrico
… Espacio
de Claves
„
>= 128 bits
… Vida
„
„
… Vida
de las claves
Muy corta (seg. o min.)
Claves de sesión
„
de Claves
>= 1024 bits
de las Claves
Larga (meses o años)
Comparativa
„
Cifrado simétrico
…
Velocidad de Firma
„
„
„
Cifrado asimétrico
…
Muy alta
Del orden de 100 a 1000
veces más rápidos
Velocidad de Firma
„
„
Muy baja
Usos
…
…
…
Seguridad
„
Reside en la seguridad de la
propia clave
…
claves sesión
firma digital (f. hash)
Seguridad
„
Reside en la dificultad
computacional de encontrar
la clave privada a partir de
la clave pública.
12
Principales algoritmos
„
Diffie-Hellman
… Diffie-Hellman.
„
ElGammal
… T.
„
1976.
ElGammal. 1985.
RSA
… Ronald
Rivest, Adi Shamir y Leonard Adleman.1976
RSA
„
„
„
Diseñado por Rivest, Shamir & Adleman del
Massachusetts Institute of Technology (MIT) en 1977
Es el algoritmo de clave pública más conocido y usado
Basado en exponenciación
…
„
„
La exponenciación conlleva O((log n)3) operaciones (fácil)
Usa enteros grandes (1024 bits)
Seguridad
g
…
…
Basada en el coste de factorizar números grandes
La factorización conlleva O(e log n log log n) operaciones (difícil)
13
RSA
„
Cifrado
…C
„
Descifrado
…M
„
= Me mod n
= Cd mod n = (Me)d mod n = Med mod n
Requisitos
…∃
e, d, n / Med mod n = M ∀ M < n
… (Me mod n) y (Cd mod n) sean fáciles de calcular
… Conocidos e y n sea imposible calcular d
Generación de claves RSA
„
Seleccionar dos números primos grandes: p, q
Calcular módulo de su grupo de trabajo n = p·q
„
Seleccionar clave de cifrado e
„
Obtener clave de descifrado d
„
…
…
…
…
nota ø(n)=(p-1)(q-1)
1<e<ø(n), mcd(e,ø(n))=1
e·d=1 mod ø(n) y 0≤d≤n
Si d es inversa de e entonces e·d = 1+k·ø(n) para algún k
„
Clave Pública
„
Clave Privada
…
…
…
PU={e,n}
PR={d,n}
Guardar en secreto o destruir p, q y ø(n)
14
Generación de claves RSA
Ejemplo
„
Se seleccionan dos primos:
…
p=5 & q=11
„
Se calcula n = p·q
„
Se calcula ø(n)=(p–1)·(q-1)
„
Se selecciona e con la condición de que cumpla mcd(e,40)=1
„
Se determina d a partir de la relación d·e = 1 mod 40 y d < 40
…
…
…
…
n = 5 x 11 = 55
ø(n)= 4 x 10 = 40
se elige e=3
El valor es d=27 ya que 27x3 = 81 = 40x2 + 1
RSA: Cifrado y Descifrado
„
Para cifrar un mensaje M
M, el emisor:
… Obtiene
la clave pública del receptor PU={e,n}
… Calcula: C = Me mod n, dónde 0≤M<n
„
Para descifrar el criptograma C, el propietario:
… Usa
su clave privada PR={d,n}
… Calcula: M = Cd mod n
„
El mensaje M debe ser menor que el módulo n
(se parte en bloques si es necesario)
15
RSA: Cifrado y Descifrado
Ejemplo
„
Dado un mensaje M = 36 (36 < 55)
„
Cifrado:
C = 363 mod 55 = 16
„
Descifrado:
M = 1627 mod 55 = 36
Seguridad en RSA
„
Aproximaciones para atacar el algoritmo RSA:
… Búsqueda
de la clave por fuerza bruta (no es factible
computacionalmente debido al tamaño de los
números)
… Ataques matemáticos (basados en la dificultad de
calcular ø(n), factorizando el módulo n)
… Timing attacks (durante el descifrado)
… Chosen Ciphertext Attack (explotando las
propiedades de RSA)
16
Firma Digital
„
Garantiza que un documento proviene de quién lo ha
firmado
„
Documento se cifra con KRorig
…
…
…
„
Proporciona Autenticación, Integridad y no Repudio
Sólo el poseedor de la clave privada puede haberlo hecho
KUorig permite comprobar la validez del documento
Problema: ineficiencia cifrado
…
…
No se firma el documento completo, sino un resumen
Funciones unidireccionales de resumen : funciones hash
Funciones Hash
„
A partir de un mensaje M, una función hash o resumen
H(M), genera un resumen del mismo.
…
Ejemplo:
„
„
„
„
M = La reunión es a las 20:30
H(M) = 03fgi8
Se puede usar para garantizar la integridad de un
mensaje o archivo.
Su utilidad más extendida es la firma digital
digital.
…
En realidad lo que se firma digitalmente no es el mensaje
completo sino un hash o resumen del mismo.
17
Funciones Hash: Ejemplo
„
Agrupación de texto en bloques
„
Función matemática sobre elementos del bloque
…
…
…
„
Tamaño bloque: 3
(A – B) * C
Primer Bloque: (69 – 110) * 32 = -1312
Valor Hash a partir de valores parciales
…
Ejemplo: suma de todos los resultados intermedios
E
n
u
n
r
i
n
c
ó
n
69 110 32 117 110 32 114 105 110 99 243 110
-1312
1312
224
990
-15840
15840
l
a
32 108 97
-7372
u
y
o
117 121 111
-444
d
e
32 100 101
-6868
6868 -22806
22806
M a
n
c
h
a
77 97 110 99 104 97
-4365
1144
d
e
32 100 101
6500
32
n
o
m b
r
e
32 110 111 109 98 114 101
-8658
1254
n
o
32 110 111
7590
q
32 113
8927
32
c
99
6831
2738
8669
-11399
Funciones Hash: Ejemplo
„
Cualquier
q
cambio mínimo en el texto p
produce un cambio radical en
el resultado de la función Hash
…
E
Así, si cambiamos rincón por rincon, el valor de la función Hash pasa
de -11.399 a 3.121
n
u
n
r
i
n
c
o
n
69 110 32 117 110 32 114 105 110 99 111 110
-1312
224
990
-1320
l
a
32 108 97
-7372
u
y
o
117 121 111
-444
d
e
32 100 101
-6868
M a
n
c
h
a
77 97 110 99 104 97
-4365
1144
d
e
32 100 101
6500
32
n
o
m b
r
e
32 110 111 109 98 114 101
-8658
1254
n
o
32 110 111
7590
q
32 113
8927
32
-8286
c
99
6831
2738
8669
3121
18
F. Hash: Propiedades (I)
„
H(M) será segura si tiene las siguientes características:
Unidireccionalidad: conocido un resumen H(M), debe ser
computacionalmente imposible encontrar M a partir de dicho resumen.
2. Compresión: a partir de un mensaje de cualquier longitud, el resumen
H(M) debe tener una longitud fija. Lo normal es que la longitud de H(M)
sea menor que el mensaje M.
3. Facilidad de cálculo: debe ser fácil calcular H(M) a partir de un
mensaje M.
4. Difusión: el resumen H(M) debe ser una función compleja de todos los
bit del
bits
d l mensaje
j M,
M de
d tal
t l forma
f
que simplemente
i l
t modificando
difi
d un solo
l
bit del mensaje M, el hash H(M) debería cambiar radicalmente (al
menos la mitad de sus bits).
1.
F. Hash: Propiedades (II)
5.
6.
Colisión simple:
p conocido M,, será
computacionalmente imposible encontrar otro M’ tal
que H(M) = H(M’). Esto se conoce como resistencia
débil a las colisiones.
Colisión fuerte: será computacionalmente imposible
encontrar un par (M, M’) de forma que H(M) = H(M’).
Esto se conoce como resistencia fuerte a las
colisiones.
ataque por la paradoja del cumpleaños.
19
F. Hash: Algoritmos comunes
„
„
„
„
„
„
„
„
MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento, pero
con mayor nivel
i ld
de seguridad.
id d G
Genera un resumen d
de 128 bit
bits.
SHA-1: National Institute of Standards and Technology (NIST), 1994.
Similar a MD5, pero con resumen de 160 bits. Existen otras propuestas
conocidas como SHA-256 y SHA-512, posibles estándares.
RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.
N-Hash: Nippon Telephone and Telegraph, 1990. Resumen: 128 bits.
Snefru: Ralph Merkle, 190. Resúmenes entre 128 y 256 bits. Ha sido
criptoanalizado y es lento.
Tiger: Ross Anderson, Eli Biham, 1996, Resúmenes de hasta 192 bits.
Optimizado para máquinas de 64 bits (Alpha)
(Alpha).
Panama: John Daemen, Craig Clapp, 1998. Resúmenes de 256 bits de
longitud. Trabaja en modo función hash o como cifrador de flujo.
Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992. Admite 15
configuraciones diferentes. Hasta 256 bits.
Message Digest 5 (MD5)
„
„
Obsoleto desde mediados de 2005. No obstante, es interesante su
estudio dada la sencillez del algoritmo y su generalidad.
Algoritmo básico de Message Digest 5:
Dado un mensaje M, se convierte en un bloque múltiplo de 512 bits,
añadiendo bits al final si es necesario.
… Existen cuatro vectores iniciales: A, B, C y D, de 32 bits cada uno
(32x4=128 bits). Se realizan diversas operaciones lógicas entre estos
vectores y el primer bloque de 512 bits del mensaje.
… Esta operación da como resultado un nuevo conjunto de vectores A’, B’,
C’ y D’. Se realiza la misma función con el segundo bloque de 512 bits
del mensaje. Al terminar, el algoritmo entrega un resumen que
corresponde a los últimos 128 bits de estas operaciones.
…
20
Herramientas (I)
„
MD5Summer
…
…
…
Disponible en: http://www.md5summer.org/about.html
Windows
Permite calcular o verificar MD5 de un fichero
Herramientas (II)
„
digestIT 2004
…
…
…
…
Disponible en: http://digestit.kennethballard.com/
Windows
Permite calcular o verificar MD5/SHA-1 de un fichero
Integrado con el Explorador de Windows
21
Herramientas (III)
Hyper Hasher
„
…
Disponible en: http://www.cyberdogtech.com/projects/hyper_hasher
…
Windows
…
Permite calcular el valor checksum (o resumen) de cualquier fichero o cadena de caracteres
…
Soporte para una veintena de algoritmos distintos
…
Integrado con el Explorador de Windows
Firma Digital: pasos protocolo
„
„
„
„
„
Generar resumen del documento (método
G
( é
conocido por todos))
Cifrar resumen con clave privada emisor
Enviar documento junto resumen firmado al receptor
Receptor genera un resumen del documento recibido, usando la
misma función unidireccional de resumen. Después descifra con
la clave pública del origen el resumen firmado
Si el resumen firmado coincide con el resumen que él ha
generado la firma es válida
generado,
22
Firma Digital
„
Se ofrecen conjuntamente los servicios de:
No rechazo, ya que nadie excepto A podría haber firmado el documento
Autenticación, ya que si el documento viene firmado por A, podemos estar
seguros de su identidad, dado que sólo él ha podido firmarlo
… Integridad del documento, ya que en caso de ser modificado, resultaría
imposible hacerlo de forma tal que se generase la misma función de resumen
que había sido firmada.
… No privacidad!!!!
…
…
23
Descargar