Criptografía de clave privada: Cifrado de Vernam o “one-time pad”
description
Transcript of Criptografía de clave privada: Cifrado de Vernam o “one-time pad”
Criptografía de clave privada: Cifrado de Vernam o “one-time pad”
Mensaje: DEAD 1101 1110 1010 1101
Clave: BEEF 1011 1110 1110 1111
Cifrado: 0110 0000 0100 0010 = 6042
=
Clave: BEEF 1011 1110 1110 1111
Mensaje: 1101 1110 1010 1101 = DEAD
Cifrado: 6042 0110 0000 0100 0010
=
Ejemplo:
Alicia
Bob
6042
Canal
público
Tiempo
Problemas
• El emisor y el receptor necesitan obtener de manera segura copias de la clave y mantenerlas seguras.
• Es seguro sólo si la clave es tan larga como el mensaje que hay que cifrar.
• La clave no puede volver a usarse.
No es práctico para uso general.
“One-time pad” soviético capturado por el MI5
Ejemplo
• Encriptación:– M = mensaje– KU = clave pública del emisor– Cifrado: C = E(M, KU)
• Desencriptación:– C = cifrado– KR = clave (secreta) privada del receptor– Mensaje original: M = D(C, KR)
Criptografía de clave pública
El algoritmo de Rivest, Shamir y Adleman
• Seleciona dos números primos p y q• Calcula n = p q• Calcula (n) = (p-1)(q-1)• Seleciona e tal que 1 < e < (n) y mcd((n), e) = 1• Calcula d tal que d e mod (n) = 1• La clave pública es {e, n}• La clave privada es {d, n}
El algoritmo RSA
• Mensaje: M
• Cifrado: C = Me mod n
• Mensaje: M = Cd mod n
El algoritmo RSA
• Selecciona dos números primos p =7 y q =17• Calcula n = p q = 119• Calcula (n) = (p-1)(q-1) = 96• Selecciona e tal que 1 < e < (n) y mcd((n), e) = 1,
e.g., e = 5• Calcula d tal que d e mod (n) = 1, d = 77• La clave pública es {e, n} = {5, 119}• La clave privada es {d, n} = {77, 119}
El algoritmo RSA (ejemplo)
• Mensaje: M = 19
• Cifrado: C = Me mod n = 195 mod 119 = 66
• Mensaje: M = Cd mod n = 6677 mod 119 = 19
El algoritmo RSA (ejemplo)
• Factoriza n, que es público, y así obtienes p y q• Calcula (n) = (p-1)(q-1)• Calcula d tal que d e mod (n) = 1 (e es público)• La clave privada es KR = {d, n}
Para romper RSA
• Factoriza 119, que es público, y así obtienes 7 y 17 • Calcula (119) = (7-1)(17-1) = 96• Calcula d tal que d 5 mod = 1 (5 es público), d = 77• La clave privada es KR = {77, 119}
Rompiendo RSA (ejemplo)
• 1976 – Propuesta por Diffie y Hellman.
– Se basa en la dificultad de calcular logaritmos discretos (resolver ax = b mod n para x).
• 1977 – Algoritmo RSA desarrollado por Rivest, Shamir y Adleman.
– Se basa en la dificultad de factorizar números grandes.
– RSA129 (129 dígitos) publicado como desafío.
• 1994 – RSA129 roto con 1600 ordenadores en red.
• 1999 – RSA140 roto con 185 ordenadores en red en 8,9 años-CPU.
• 1999 – RSA155 (clave de 512 bits) roto con 300 ordenadores en red.
• 2002 – RSA recomiendan claves de 1024 bits.
Historia (pública) de la criptografía de clave pública