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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Capítulo 6: Criptografía de clave pública

  • 1.
    Outline Clave p´ublica Protocolo deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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 deDiffie-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