Capítulo 6: Criptografía de clave pública
-
Upload
juan-manuel-garcia -
Category
Technology
-
view
55 -
download
2
Transcript of Capítulo 6: Criptografía de clave pública
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
CRIPTOGRAFIA DE CLAVE PUBLICA
Juan Manuel Garcıa Garcıa
30 de septiembre de 2010
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Clave publicaConceptos basicosCriptosistemas de clave publica
Protocolo de Diffie-Hellman
Criptosistema RSAGeneracion de clavesCifrado y descifradoEjemplo
Criptosistema de ElGamalGeneracion de clavesCifradoDescifradoEjemplo
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Conceptos basicosCriptosistemas de clave publica
Conceptos basicos
I Clave de cifrado y descifrado son distintas.
I La clave de cifrado es denominada clave publica.
I La clave de descifrado es la clave privada.
I Resuelve el problema de la distribucion de claves.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Conceptos basicosCriptosistemas de clave publica
Criptosistemas de clave publica
Algunos criptosistemas de clave publica son:
I Protocolo de intercambio de claves de Diffie-Hellman
I Criptosistemas RSA
I Criptosistema ElGamal
I Criptosistemas basados en curvas elıpticas
I Criptosistema Paillier
I Criptosistema Cramer-Shoup
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Protocolo de Diffie-Hellman
I Propuesto por Diffie y Hellman fue el inicio de la criptografıade clave publica. Se trata de un protocolo para la distribucionde claves secretas a traves de un canal inseguro.
I Como parametros del sistema se eligen un numero primo p yun entero g , raız primitiva modulo p, comunes a todos losusuarios.
I Como clave privada, cada usuario elige un elemento s ∈ Zp−1.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
I Cuando dos usuarios A y B, con claves privadas sA y sB ,quieren establecer una clave secreta comun, el protocolo es elsiguiente:
1. A calcula kA = g sA (mod p),2. B calcula kB = g sB (mod p),3. A y B se intercambian kA y kB a traves del canal inseguro,4. A calcula k = ksA
B = g sB sA (mod p),5. B calcula k = ksB
A = g sAsA (mod p),
I La clave secreta se obtiene a partir de k.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Generacion de claves RSA
I Sean p y q dos primos diferentes elegidos aleatoriamente y sean = pq. La funcion de Euler de n esta dada por
φ(n) = (p − 1)(q − 1).
I Se elige un numero 1 < e < φ(n) tal que
gcd(e, φ(n)) = 1,
y obteniendo d como
d = e−1 (mod φ(n)).
I Entonces, d es el exponente privado y e es el exponentepublico.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Cifrado y descifrado
I La funcion de cifrado de un mensaje M, donde 0 ≤ M < n, es
E(M) = Me (mod n)
I La funcion de descifrado de un texto cifrado C es
D(C ) = Cd (mod n)
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Ejemplo: Generacion de claves
I Sean p = 23 y q = 67, entonces
n = 23 · 67 = 1541
yφ(n) = 22 · 66 = 1452.
I El exponente publico e es elegido de forma tal que1 < e < φ(n) y
gcd(e, φ(n)) = gcd(e, 1452) = 1
.
I Por ejemplo, e = 7 satisface estas condiciones.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Ejemplo: Generacion de claves
I Entonces, el exponente privado d es calculado como
d = e−1 (mod φ(n))
= 7−1 (mod 1452)
= 415
utilizando el algoritmo extendido de Euclides.
I Entonces la clave publica es el par (e, n) = (7, 1541) y la claveprivada es d = 415.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Ejemplo: Cifrado y descifrado
I Supongamos que el mensaje en plano es M = 25.
I El mensaje cifrado es
C = 257 mod 1541 = 1416
.
I Del mensaje cifrado C = 1416 obtenemos el mensajedescifrado
M = 1416415 mod 1541 = 25.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifrado y descifradoEjemplo
Ejercicios
1. Sean p = 1009 y q = 3001, entonces n = 3028009. Generarun par de claves RSA.
2. Con la clave publica cifrar el mensaje M = 1942.
3. Romper el mensaje C = 769763 si fue cifrado mediante RSAcon la clave publica (e, n) = (263, 2772221), utilizando elmetodo ρ de Pollard.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Generacion de clave
Cada entidad A debe hacer lo siguiente:
1. Generar un primo grande p y un generador g del grupomultiplicativo Z∗
p de los enteros modulo p.
2. Seleccionar un entero aleatorio a, 1 ≤ a ≤ p − 2, y calcularga mod p.
3. La clave publica de A es (p, g , ga); la clave privada es a.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Cifrado
B cifra un mensaje dirigido a A.B hace lo siguiente:
1. Obtener la clave publica (p, g , ga) autentica de A.
2. Representar el mensaje como un entero m en el rango{0, 1, . . . , p − 1}.
3. Seleccionar un entero aleatorio k , 1 ≤ k ≤ p − 2.
4. Calcular γ = gk mod p y δ = m · (ga)k mod p.
5. Enviar el mensaje cifrado c = (γ, δ) a A.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Descifrado
Para recuperar el mensaje en texto plano m de c , A hace losiguiente:
1. Usar la clave privada a para calcular γp−1−amod (Nota:γp−1−a = γ−a = g−ak).
2. Recuperar m = (γ−a) · δ mod p.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Ejemplo: Generacion de claves
1. La entidad A selecciona el primo p = 2357 y un generadorg = 2 de Z∗
2357.
2. A elige la clave privada a = 1751 y calcula
ga mod p = 21751 mod 2357 = 1185.
3. La clave publica de A es (p = 2357, g = 2, ga = 1185).
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Ejemplo: Cifrado
Para cifrar un mensaje m = 2035, B selecciona un entero aleatoriok = 1520 y calcula
γ = 21520 mod 2357 = 1430
yδ = 2035 · 11851520 mod 2357 = 697.
B envıa γ = 1430 y δ = 697 a A.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Ejemplo: Descifrado
Para descifrar, A calcula
γp−1−a = 1430605 mod 2357 = 872,
y recupera m calculando
m = 872 · 697 mod 2357 = 2035.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA
OutlineClave publica
Protocolo de Diffie-HellmanCriptosistema RSA
Criptosistema de ElGamal
Generacion de clavesCifradoDescifradoEjemplo
Ejercicios
1. Si la clave publica de El Gamal de un usuario es(p, g , ga) = (2011, 3, 1415), cifrar el mensaje m = 333.
2. Si el mensaje cifrado c = (243, 1352) lo fue con la clavepublica previa, romper el cifrado utilizando busquedaexhaustiva de logaritmo discreto.
Juan Manuel Garcıa Garcıa CRIPTOGRAFIA DE CLAVE PUBLICA