Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

420 views

Published on

Material del curso de criptografía impartido a alumnos de la carrera de ITC del ITESM Campus Morelia en el 2010.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×