1. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema 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
2. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Clave p´ublica
Conceptos b´asicos
Criptosistemas de clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
3. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Conceptos b´asicos
Criptosistemas de clave p´ublica
Conceptos b´asicos
Clave de cifrado y descifrado son distintas.
La clave de cifrado es denominada clave p´ublica.
La clave de descifrado es la clave privada.
Resuelve el problema de la distribuci´on de claves.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
4. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Conceptos b´asicos
Criptosistemas de clave p´ublica
Criptosistemas de clave p´ublica
Algunos criptosistemas de clave p´ublica son:
Protocolo de intercambio de claves de Diffie-Hellman
Criptosistemas RSA
Criptosistema ElGamal
Criptosistemas basados en curvas el´ıpticas
Criptosistema Paillier
Criptosistema Cramer-Shoup
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
5. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Protocolo de Diffie-Hellman
Propuesto por Diffie y Hellman fue el inicio de la criptograf´ıa
de clave p´ublica. Se trata de un protocolo para la distribuci´on
de claves secretas a trav´es de un canal inseguro.
Como par´ametros del sistema se eligen un n´umero primo p y
un entero g, ra´ız primitiva m´odulo p, comunes a todos los
usuarios.
Como clave privada, cada usuario elige un elemento s ∈ Zp−1.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
6. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Cuando dos usuarios A y B, con claves privadas sA y sB,
quieren establecer una clave secreta com´un, el protocolo es el
siguiente:
1. A calcula kA = gsA
(m´od p),
2. B calcula kB = gsB
(m´od p),
3. A y B se intercambian kA y kB a trav´es del canal inseguro,
4. A calcula k = ksA
B = gsB sA
(m´od p),
5. B calcula k = ksB
A = gsAsA
(m´od p),
La clave secreta se obtiene a partir de k.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
7. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Generaci´on de claves RSA
Sean p y q dos primos diferentes elegidos aleatoriamente y sea
n = pq. La funci´on de Euler de n est´a dada por
φ(n) = (p − 1)(q − 1).
Se elige un n´umero 1 < e < φ(n) tal que
gcd(e, φ(n)) = 1,
y obteniendo d como
d = e−1
(m´od φ(n)).
Entonces, d es el exponente privado y e es el exponente
p´ublico.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
8. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Cifrado y descifrado
La funci´on de cifrado de un mensaje M, donde 0 ≤ M < n, es
E(M) = Me
(m´od n)
La funci´on de descifrado de un texto cifrado C es
D(C) = Cd
(m´od n)
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
9. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Ejemplo: Generaci´on de claves
Sean p = 23 y q = 67, entonces
n = 23 · 67 = 1541
y
φ(n) = 22 · 66 = 1452.
El exponente p´ublico e es elegido de forma tal que
1 < e < φ(n) y
gcd(e, φ(n)) = gcd(e, 1452) = 1
.
Por ejemplo, e = 7 satisface estas condiciones.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
10. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Ejemplo: Generaci´on de claves
Entonces, el exponente privado d es calculado como
d = e−1
(m´od φ(n))
= 7−1
(m´od 1452)
= 415
utilizando el algoritmo extendido de Euclides.
Entonces la clave p´ublica es el par (e, n) = (7, 1541) y la clave
privada es d = 415.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
11. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Ejemplo: Cifrado y descifrado
Supongamos que el mensaje en plano es M = 25.
El mensaje cifrado es
C = 257
m´od 1541 = 1416
.
Del mensaje cifrado C = 1416 obtenemos el mensaje
descifrado
M = 1416415
m´od 1541 = 25.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
12. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado y descifrado
Ejemplo
Ejercicios
1. Sean p = 1009 y q = 3001, entonces n = 3028009. Generar
un par de claves RSA.
2. Con la clave p´ublica cifrar el mensaje M = 1942.
3. Romper el mensaje C = 769763 si fue cifrado mediante RSA
con la clave p´ublica (e, n) = (263, 2772221), utilizando el
m´etodo ρ de Pollard.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
13. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Generaci´on de clave
Cada entidad A debe hacer lo siguiente:
1. Generar un primo grande p y un generador g del grupo
multiplicativo Z∗
p de los enteros m´odulo p.
2. Seleccionar un entero aleatorio a, 1 ≤ a ≤ p − 2, y calcular
ga m´od p.
3. La clave p´ublica de A es (p, g, ga); la clave privada es a.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
14. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Cifrado
B cifra un mensaje dirigido a A.
B hace lo siguiente:
1. Obtener la clave p´ublica (p, g, ga) aut´entica 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 m´od p y δ = m · (ga)k m´od p.
5. Enviar el mensaje cifrado c = (γ, δ) a A.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
15. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Descifrado
Para recuperar el mensaje en texto plano m de c, A hace lo
siguiente:
1. Usar la clave privada a para calcular γp−1−am´od (Nota:
γp−1−a = γ−a = g−ak).
2. Recuperar m = (γ−a) · δ m´od p.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
16. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Ejemplo: Generaci´on de claves
1. La entidad A selecciona el primo p = 2357 y un generador
g = 2 de Z∗
2357.
2. A elige la clave privada a = 1751 y calcula
ga
m´od p = 21751
m´od 2357 = 1185.
3. La clave p´ublica de A es (p = 2357, g = 2, ga = 1185).
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
17. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Ejemplo: Cifrado
Para cifrar un mensaje m = 2035, B selecciona un entero aleatorio
k = 1520 y calcula
γ = 21520
m´od 2357 = 1430
y
δ = 2035 · 11851520
m´od 2357 = 697.
B env´ıa γ = 1430 y δ = 697 a A.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
18. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Ejemplo: Descifrado
Para descifrar, A calcula
γp−1−a
= 1430605
m´od 2357 = 872,
y recupera m calculando
m = 872 · 697 m´od 2357 = 2035.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA
19. Outline
Clave p´ublica
Protocolo de Diffie-Hellman
Criptosistema RSA
Criptosistema de ElGamal
Generaci´on de claves
Cifrado
Descifrado
Ejemplo
Ejercicios
1. Si la clave p´ublica 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 clave
p´ublica previa, romper el cifrado utilizando b´usqueda
exhaustiva de logaritmo discreto.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA