Download Fundamentos Matemáticos del Cifrado Asimétrico

Document related concepts

Orden multiplicativo wikipedia , lookup

RSA wikipedia , lookup

Método de factorización de Fermat wikipedia , lookup

Problema RSA wikipedia , lookup

Martin Gardner wikipedia , lookup

Transcript
Fundamentos Matemáticos del
Cifrado Asimétrico
Banco de Guatemala
Cerradura, s.
Divisa de la
civilización y el
progreso.
-- Ambroce Bierce, “Diccionario del Diablo”
Funcionamiento de una cerradura
Las computadoras trabajan con
números
• Mensaje: M=77 e=101 n=110 s=115 a=97 j=106…
Los multimedios
Rojo=191
Verde=138
Azul=62
Las cerraduras digitales
Llave
Llave
Mensaje
Cifrado
Mensaje
f-1(MC,Ll)
f(M,Ll)
Mensaje
Cifrado
Mensaje
La historia del ajedrez
S=1+2+4+8+16+32+64…
S=18,446,744,073,709,551,615
1000 veces la producción mundial de
arroz del año 2010 = 464,000,000,000
toneladas métricas.
S ≈ 64 bits
El tiempo de rompimiento
Si se tiene una computadora que
pruebe un millón de llaves por
segundo los tiempos medios de
rompimiento serían:
56 bits = 2,285 años
64 bits = 585,000 años
128 bits = 1025 años
*Edad estimada del universo 1010 años
El problema
Eva
Alicia
Bob
Los Visionarios
Ralph Merckle , Martin Hellman, Whitfield Diffie
El doble candado
El doble candado
Se retira un candado
Se retira el segundo candado
La llave simétrica viene dentro de la
caja
Otro ejemplo en el mundo físico
Color base
Mezcla
Color personal
Secreto
Color personal
Secreto
El resultado de las combinaciones
Las Funciones de Trampa
o Humpty Dumpty
5
5
52
√25
f(5) = 25
f-1(25)
Funciones Modulares
x mód 30
x mód 60
x mód 24
x mód 12
x mód 48
x mód 36
•
•
•
•
Integer Overflow
Comair
Y2K
UNIX
El Cálculos de Potencias
•
•
•
•
•
•
•
•
540 mód 7 = ?
51 mód 7 = 5
52 mód 7 = 5*5 mód 7 = 25-(3*7) = 25 - 21 = 4
54 mód 7 = (52 mód 7)2 mód 7 = 16 mód 7 = 2
58 mód 7 = (54)2 mód 7 = 4
516 mód 7 = 2
532 mód 7 = 4
540 mód 7 = 58 mód 7*532 mód 7 = 2
Diffie-Hellman
Se acuerda un número base y uno módulo de conocimiento público, en
este caso 7 y 11.
ALICIA
•Selecciona el 3 como
número secreto
•Calcula 73 mód 11 = 2
BOB
•Selecciona el 6 como
número secreto
•Calcula 76 mód 11 = 4
Se realiza el intercambio de números 2 y 4 sin
temor a que alguien los capture
•Cálcula
43
mód 11 = 9
•Cálcula 26 mód 11 = 9
(73)6 = 73x6 = 718 = 76x3 = (76)3
¿Realmente es seguro?
• Para que el algoritmo sea seguro, los dos números
acordados deben ser grandes, muy grandes mínimo de
512 bits esto es equivalente a 155 dígitos decimales, e
incluso 1024 bits es decir 309 dígitos decimales.
• Ejemplo de un decimal de 512 bits:
– 82410542973692774100821916431873179294153337312
304787210752212996037687716491
• Ejemplo de un decimal de 1024 bits:
– 13269387334363396355070885044457961840043533724
38319831178011938972310859630322098062396030337
54020080479707309940486219892240176599368734776
51534758771529
La Llave Privada y Pública
Bob
Alicia
Carlos
Daniel
RSA: Rivest Shamir Adleman
Ron Rivest, Adi Shamir y Leonard Adleman
Un poco de literatura
Dicho esto, rogó al bachiller que, si
era poeta, le hiciese merced de
componerle unos versos que
tratasen de la despedida que
pensaba hacer de su señora
Dulcinea del Toboso, y que
advirtiese que en el principio de
cada verso había de poner una
letra de su nombre, de manera
que al fin de los versos, juntando
las primeras letras, se leyese:
Dulcinea del Toboso.
--El Quijote, parte 2, capítulo 4
RSA
RSA, la llave pública
• Alicia selecciona dos números primos p y q,
que multiplicados (N=p*q) conforman la llave
pública junto con un número y número base,
e que también se hace público con la llave
• e debe ser co primo del número (p-1)(q-1) y
por lo genera se utilizá 65,537.
RSA: El cifrado
• Bob, Carlos, Daniel…, que tiene N, puede
cifrar un mensaje, operándolo en su valor
numérico agrupando el mensaje en números
más pequeños para poder aplicar la siguiente
fórmula:
Cifrado=Mensajee mód N
RSA: El descifrado
• Alicia necesita una llave privada, un número que
revierta la función anterior. Según la teoría de
números, sí p y q son primos sólo se requiere
resolver con enteros la ecuación:
• ed – (p-1)(q-1)v = 1 para ello se utiliza el
algoritmo de Euclides extendido (el algoritmo de
Euclides sirve para calcular el Máximo Común
Divisor).
• Al hallar d puede descifrar el mensaje aplicando:
Mensaje = Cifradod mód N
Los números primos
En 512 bits hay 10150 números primos. Para
dar una idea de esta cantidad, imagine que
en el universo hay estimados 1084 átomos, si
a cada átomo se le asignara un millardo de
números primos cada microsegundo desde el
inicio del universo, habría al día de hoy 10110
números primos remanentes sin haber sido
asignados.
Los números RSA
Número RSA Bits
RSA-100
330
RSA-110
364
RSA-120
397
RSA-129
426
RSA-130
430
RSA-140
463
RSA-155
512
RSA-576
576
RSA-640
640
RSA-704
704
RSA-768
768
…
…
RSA-896
896
RSA-1024
1024
RSA-1536
1536
RSA-2048
2048
Premio
$1,000 USD
$4,429 USD
$5,898 USD
$100 USD
$14,527 USD
$17,226 USD
$9,383 USD
$10,000 USD
$20,000 USD
$30,000 USD
$50,000 USD
…
$75,000 USD
$100,000 USD
$150,000 USD
$200,000 USD
Factorizado
Abril 1, 1991
Abril 14, 1992
Julio 9, 1993
Abril 26, 1994
Abril 10, 1996
Febrero 2, 1999
Agosto 22, 1999
Diciembre 3, 2003
Noviembre 2, 2005
Julio 2, 2012
Diciembre 12, 2009
No
No
No
No
Ejemplo de Cifrado
•
•
•
•
Mensaje = “ALGO”
Códificación: ‘A’=65 ‘L’=76 ‘G’=71 ‘O’= 79
p = 11 q = 17 y e = 7
N = p*q = 187 … la llave pública junto con 7
–
–
–
–
657 mód 187 = 142 = ‘Ä’
767 mód 187 = 32 = ‘ ‘
717 mód 187 = 113 = ‘q’
797 mód 187 = 139 = ‘ï’
• Mensaje Cifrado: “Ä qï”
Cálculo de la Llave Privada
ed – φ(N)v = 1
ed - (p-1)(q-1)v = 1
7d – (10)(16)v = 1
7d-160v = 1
.. Se resuelve por el algoritmo extendido de Euclides, ya que la
solución debe ser con enteros.
d = 23 … La llave privada
Descifrado
• 14223 mód 187 = 65 = ‘A ’
• 3223 mód 187 = 76 = ‘L’
• 11323 mód 187 = 71 = ‘G’
• 13923 mód 187 = 79 = ‘O’
Invirtiendo el proceso
Bob
Alicia
Carlos
Daniel
La Firma Digital
• El proceso inverso de D(C(m)), C(D(m))
cifrando con la llave privada y descifrando con
la llave pública un resumen matemático del
mensaje:
• El Firmante
– (FunciónHash(Mensaje))d mód N = HashDelMesajeCifrado
• El Receptor
– HashDelMensajeCifradoe mód N = HashDelMensaje
– FunciónHash(Mensaje) = HashDelMensaje
La elección de los números aleatorios
• El caso de Netscape 1.1 implementando SSL.
• El error de Linux Debian.
• Los Alemanes y la máquina cifradora Enigma.
• La reducción del universo de llaves por tiempo
y electricidad.
La Evolución
Rana Dardo Dorado
(Phyllobates Terribilis)
La Revolución
Gracias por su atención.