Criptografía como recurso para el aula de matemáticas. El arte de esconder
RSA: Cifrado de clave pública RSA: Cifrado de clave pública
Los matemáticos se han ocupado desde siempre de estudiar las
propiedades de los números.
Los números primos han sido y son un tema de estudio, por ejemplo
el intento por parte de varias generaciones de matemáticos para
demostrar la Hipótesis de Rieman está dando lugar a nuevos
resultados matemáticos que engrosan la literatura que ya existe
sobre estos números
“Cualquier tonto puede hacer preguntas sobre los números primos
que el más sabio de los hombres no puede contestar”
G.H. Hardy
Se han encontrado números primos muy grandes con propiedades
matemáticas interesantes, por ejemplo se conoce un número primo
con unos 6,3 millones de dígitos6,3 millones de dígitos.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
RSA: Cifrado de clave pública RSA: Cifrado de clave pública
Los sistemas de clave pública permiten un alto grado de seguridad: se
elimina el problema del intercambio de claves para comunicaciones en
forma segura.
Cada usuario puede hacer público el modo de cifrar mensajes, sin que a
partir de esos datos se pueda saber como descifrar.
Los sistemas de clave pública se basan en algún problema matemático
considerado difícil.
El sistema de cifrado de clave pública más extendido es el método RSA:
se basa en la dificultad de hallar los factores primos de un número n
producto de dos primos muy grandes. (sabemos que no existen
algoritmos de tiempo polinomial)
Sin entrar en detalles demasiado técnicos, vemos cómo funciona y por
qué es seguro.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
RSA: Cifrado de clave pública RSA: Cifrado de clave pública
Ronald Lorin Rivest
Nace en 1947
Adir Shamir
Nace en 1952
Leonard Adleman
Nace en 1945
En 1978, Rivest, Shamir y
Adleman, idearon un sistema
criptográfico que se conoce por
R.S.A., en su honor. A diferencia de los sistemas de clave simétrica (el emisor y el receptor tienen que conocer la misma clave),
en RSA es el receptor B quien tiene TODA la clave;
el emisor A conoce la parte pública de la clave, que sirve para cifrar mensaje.
El receptor guarda muy cuidadosamente la parte privada de la clave, que sirve para descifrar.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Esquema a seguir para cifrado de clave Esquema a seguir para cifrado de clave públicapública
Clave pública Clave privada
mensaje que se
quiere enviar:
texto claro
Cifrado
Texto
Cifrado
Descifrado
texto claro
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Esquema para cifrado de clave pública: Esquema para cifrado de clave pública: ejemploejemplo
Clave pública Clave privada
mensaje que se
quiere enviar:
texto claro
Cifrado
Texto
Cifrado
Descifrado
texto claro
hola wqqa hola
P(26, 2) S(26, 5)
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Antes de empezar, juega un pocoAntes de empezar, juega un poco
Piensa dos números que sean primos: a y b
Multiplícalos y llama P al resultado: P = a*b
Resta 1 a los dos números, multiplica los números que obtienes súmales
uno y llama Z al resultado: Z = (a-1)*(b-1) + 1
Piensa un número Q más pequeño que P
Eleva Q a la potencia Z (¿Verdad que el número obtenido es muy grande?)
Divide este gigantesco número entre P y observa el resto de la división
¿A que adivino el número que te ha salido?
No falla, el resto es siempre el número que has pensado Q
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Antes de empezar, juega un pocoAntes de empezar, juega un poco
Clear"Global`"Print"Piensa dos números primos"a Prime23b Prime63P a b;Print"Multiplica los números y llama P al resultado: P ", PZ a 1b 1 1;Print"Resta 1 a los números,los multiplicas y al resultado le sumas 1. Llama Z al resultado: Z ", Z
Q RandomInteger,0, P;Print"Piensa un número más pequeño que el mayor delos números que pensaste " , Q
K Q^Z;Print"eleva este número a la potencia Z ", KPrint"Calcula el resto de la división de K entre P: ", resto ModK, Presto Q
Criptografía como recurso para el aula de matemáticas. El arte de esconder
¿Por qué no se puede descifrar?¿Por qué no se puede descifrar?
Estos sistemas se basan en la posibilidad de representar la misma
información de dos formas diferentes tales que pasar de una forma a la otra
es fácil, pero pasar de la 2ª a la 1ª es prácticamente imposible.
En RSA, en “principio”“principio” es lo mismo tener los números primos 3 y 11 que
tener su producto, 33. (dados dos números es fácil multiplicarlos, y dado un
número es teóricamente posible factorizarlo en producto de números
primos).
Los ordenadores encuentran con rapidez números primos grandes y
también puede multiplicarlos en una milésima de segundo para obtener un
resultado de doscientas cifras.
Esto se hace cada vez que visita una página segura, la web browser genera
sobre la marcha una nueva clave de usar y tirar.
Pero, ¿cuánto cuesta descomponer en factores primos un número con
doscientas cifras?
Esto es lo que garantiza la seguridad del sistema, es prácticamente
imposible.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Clave pública: RSAClave pública: RSA
El criptosistema RSA consta de tres pasos:
1. Generación de las claves
2. Cifrado del mensaje
3. Descifrado del criptograma
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Cifrado clave pública: RSACifrado clave pública: RSA
Vamos a generar las claves de forma parecida al juego de antes
Paso 1: El receptor B elige dos números primos suficientemente grandes, p y q
Paso 2: Halla N = pq
Paso 3: Calcula (N) = (p – 1)(q – 1) que es la función del indicador de Euler
(nos da la cantidad de números primos con N y menores que N).
Paso 4: Elige un número e < (N), tal que mcd(e, (N) ) = 1,
e y z son primos entre sí, o primos relativos (se puede tomar e primo
directamente y mayor que p y q, asi no hay dudas de que sean primos entre
ellos).
Paso 5: Se obtiene un número d, tal que 1 < d < (N) y de forma que
ed 1(mod (N))
Existen resultados matemáticos que garantizan que este número existe y es
único
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Cifrado clave pública: RSACifrado clave pública: RSA
Paso 6. La clave pública está constituida por P(N, e), que es enviada a los
demás usuarios, y la secreta es S(N, d), que la conserva el usuario.
Cifrado del mensaje
Para cifrar, el remitente A realiza los pasos siguientes
Paso 7. Localiza la clave pública del destinatario
Paso 8. Utiliza la función:
C Me(mod N)
siendo M el mensaje original y C el mensaje codificado.
Paso 9: Envía al destinatario el criptograma C
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Cifrado clave pública: RSACifrado clave pública: RSA
Descifrado del mensaje
Paso 10: Para recuperar el mensaje que se le ha enviado, el
destinatario A usa su clave privada para calcular:
M Cd(mod N) =
(Me(mod N))d modN
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Ejemplo de cifrado RSAEjemplo de cifrado RSA
Vamos a cifrar el mensaje: CIFRANDO CON RSA
Utilizaremos primos muy pequeños,
1. Elegimos los primos p = 17 y q = 2
2. Calculamos N = p·q = 34
3. (N) = (17 – 1)(2 – 1) = 16
3. Tomamos d = 3, siendo mcd(3, 16) = 1
4. Buscamos e = 11
5. Clave secreta: S(34, 3) la guarda el usuario A; Clave
pública: P(34, 11) es distribuida, y llega hasta el
usuario B
Podemos usar siendo x
un número natural, hasta que el
cociente no tenga resto (e ha de ser
entero)
Estos números deben ser
tales que N sea mayor
que 10308
d
xze
1
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Ejemplo de cifrado RSA Ejemplo de cifrado RSA
• Expresamos el mensaje en cifras
• Ciframos (letra a letra por comodidad de las operaciones)
0211mod34 = 2048 mod34 = 08
0811mod34 = 8589934592 mod34 = 02
………………………….
Estos cálculos se pueden realizar con ordenador.
En la práctica se usan técnicas matemáticas que permiten calcular estas potencias de forma fácil (aunque se usen ordenadores)
C I F R A N D O C O N R S A2 8 5 18 0 13 3 15 27 2 15 13 27 18 19 0
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Ejemplo de cifrado RSAEjemplo de cifrado RSA
C I F R A N D O C O N R S A
2 8 5 18 0 13 3 15 27 2 15 13 27 18 19 0
8 2 11 18 0 21 7 9 3 8 9 21 3 18 25 0
I B L R A U H J D I J U D R Y a
http://www.apprendre-en-ligne.net/crypto/menu/index.html
Ejemplo de cómo se hace pública la clave de alguien
http://www.youdzone.com/rapelcgvba.html
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Clave pública: RSAClave pública: RSA
La seguridad del sistema está en que nadie conozca los factores del número N =
p.q
Si conozco p y q puedo calcular: (N) = (p - 1).(q – 1)
Con este número y con el algoritmo de Euclides extendido se calcula el inverso d
de e en ZN (recordar que e se conoce ya que forma parte de la clave pública)
Conocido d y con el mensaje cifrado se descifra realizando la operación de antes
Por eso es tan importante asegurarse de que los números p y q son muy grandes
ya que así factorizar N será muy difícil (computacionalmente hablando)
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Factorización de números RSAFactorización de números RSA
El propio Rivest propuso en 1977 que se intentara factorizar un número de
129 dígitos con el fin de comprobar la robustez del sistema.
Predijo que harían falta 4 * 1016 años de computación para lograrlo (con
los medios tecnológicos y los algoritmos de ese momento)
La factorización del famoso número RSA-129
Se logró el 2 de abril de 1994 (SOLO SE NECESITARON 8 MESES DE
TRABAJO GRACIAS A UN METODO DE TRABAJO QUE RECIBE EL NOMBRE
DE LA CRIBA CUADRÁTICA
114 38162 57578 88867 66923 57799 76146 61201 02182 96721 24236
25625 61842 93570 69352 47338 97830 59712 35639 58705 05898
90751 47599 29002 68795 43541
http://www.revistasic.com/revista40/pdf_40/SIC_40_agora.PDF
Criptografía como recurso para el aula de matemáticas. El arte de esconder
En la Universidad de Syracuse (Nueva York) un grupo de investigadores
propusieron repartir el trabajo en Internet entre miles de voluntarios:
Cada persona recibió un programa que aprovechaba los momentos
ociosos de su CPU.
Estos devolvían sus cálculos a la sede central y se almacenaban para
usarlos después
Tras varios meses de cálculos en paralelo se factorizó RSA-129
Y se pudo descifrar el mensaje original de Rivest
114 38162 57578 88867 66923 57799 76146 61201 02182 96721 24236
25625 61842 93570 69352 47338 97830 59712 35639 58705 05898 90751
47599 29002 68795 43541 =349052951084765094914784961990389813341776463849338784399082
0577 ×
32769132993266709549961988190834461413177642967992942539798288533
Factorización de números RSAFactorización de números RSA
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Después se intentó factorizar el número RSA-130 =
18070 82088 68740 48059 51656 16440 59055 66278 10251 67694
01349 17012 70214 50056 66254 02440 48387 34112 75908 12303
37178 18879 66563 18201 32148 80557
Se necesitó otro método de criba llamada criba del cuerpo de números y
con un gasto computacional 1000 MIPS-año el 10 de abril de 1996 se
calcularon los dos factores del número
1 MIP-año es el gasto computacional de una CPU realizando 106
instrucciones por segundo 31´156. 1012 instrucciones de CPU
p = 39685 99945 95974 54290 16112 61628 83786 06757 64491 12810
06483 5551 57243,
q = 45534 49864 67359 72188 40368 68972 74408 86435 63012 63205
06960 9990 44599.
Factorización de números RSAFactorización de números RSA
Criptografía como recurso para el aula de matemáticas. El arte de esconder
El polinomio empleado en esta factorización fue:
P(x) = 57483 02248 7384 05200 x5 + 98822 61917 48228 6102 x4 –
13392 49938 91281 7668 5 x3 + 16875 25245 88776 84989 x2 +
37599 00174 85520 8738 x – 46769 93055 39319 05995
Factorización de números RSAFactorización de números RSA
Criptografía como recurso para el aula de matemáticas. El arte de esconder
OTROS NÚMEROS RSA ROTOSOTROS NÚMEROS RSA ROTOS
El siguiente récord conseguido fue la factorización de un número de 140
dígitos el 2 de febrero de 1999, también mediante la criba del cuerpo de
números:
RSA140 = 21290 24631 82587 57547 49788 20162 71517 49780 67039
63277 21627 82333 83215 38194 99840 56495 91136 65738 53021 91831
67831 07387 99531 72308 89569 23087 34419 36471,
que se puede escribir como el producto de dos primos de 70 dígitos:
p = 33987 17423 02843 85545 30123 62761 38758 35633 98649 59695
97423 49092 93027 71479,
q = 62642 00187 40128 50961 51654 94826 44422 19302 03717 86235
09019 11166 06539 46049.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
OTROS NÚMEROS RSA ROTOSOTROS NÚMEROS RSA ROTOS
El último récord de criptosistema roto ha sido la factorización de un nº
RSA de 155 dígitos (512 bits), producto de dos primos de 78 dígitos:
RSA155 = 10941 73864 15705 27421 80970 73220 40357 61200 37329
45449 20599 09138 42131 47634 99842 88934 78471 79972 57891
26733 24976 25752 89978 18337 97076 53724 40271 46743 53159
33543 33897
= 10263 95928 29741 10577 20541 96573 99167 59007 16567 80803
80668 03341 93352 17907 11307 779 x
10660 34883 80168 45482 09272 20360 01287 86792 07958 57598
92915 22270 60823 71930 62808 643.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
OTROS NÚMEROS RSA ROTOSOTROS NÚMEROS RSA ROTOS
Se hizo en agosto de 1999 por un equipo de la Universidad de San Mateo
(California).
El desafío lo habían lanzado los Laboratorios RSA.
El tiempo para esta factorización ha sido de 5,2 meses, además de otras 9
semanas de cálculos preliminares.
El trabajo es el resultado, otra vez, de una computación masivamente
paralela, vía Internet, en la que han participado 292 ordenadores
personales con un gasto computacional de 8.000 MIPS-año.
El algoritmo utilizado fue la criba del cuerpo de números.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
OTROS NÚMEROS RSA ROTOSOTROS NÚMEROS RSA ROTOS
Hay una lista de nuevos y viejos desafíos propuestos por los laboratorios RSA,
que incluyen números RSA de 10 en 10 dígitos desde un RSA100 hasta un
RSA500.
http://www.rsa.com/rsalabs/node.asp?id=2103
Como ejemplo, el último y mayor de estos números tiene 500 dígitos: RSA500 =
18971 94133 74862 66563 30534 74331 72025 27237 18359 19534 28303
18458 11230 62450 45887 07687 60594 32123 47625 76642 74945 54764
41951 54275 86743 20565 93172 54669 94660 49824 19730 16010 38125
21528 54006 88031 51640 16116 23963 12837 06297 93265 93940 50810
77581 69447 86041 72141 10246 41038 04027 87011 09808 66421 48000
25560 45468 76251 37745 39341 82215 49482 12773 35671 73515 34726
56328 44800 11349 40926 44243 84401 98910 90860 32526 78814 78506
01132 07728 71728 19942 44511 32320 19492 22955 42378 98606 63107
48910 74722 42561 73968 03191 69243 81467 62357 12934 29229 99744
11361.
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Desafíos Desafíos
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Es la propuesta de Shamir para mejorar la factorización de números
grandes: supera en varios órdenes de magnitud la velocidad del método
de la criba del cuerpo de números.
Es un dispositivo capaz de analizar 100 millones de números enteros
grandes y determinar cuáles factorizan completamente sobre una base de
factores formada por los 200.000 primeros números primos, TODO ESTO
EN MENOS DE 10 MILISEGUNDOS.
El coste de este dispositivo se ha establecido en, aproximadamente, el
mismo que el de un potente PC o una estación de trabajo, y es entre 500 y
1.000 veces
más rápido que el método de la criba cuadrática en la etapa de la criba.
Las ventajas de este dispositivo son claras en lo referente a la fase de la
criba, pero eso no supone que la recuperación de la clave sea más sencilla.
EL DISPOSITIVO TWINKLE EL DISPOSITIVO TWINKLE
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Analizando cómo sería un ataque contra el módulo RSA140 con Twinkle,
habría que tener en cuenta que si cada dispositivo Twinkle es capaz de
manejar alrededor de 200.000 primos y un intervalo de criba de alrededor
de 100 millones, harían falta 7 dispositivos para el RSA140.
Este conjunto de dispositivos sería unas 1.000 veces más rápido que un
ordenador convencional, de modo que la fase de criba llevaría alrededor
de 6 días.
Se necesitan además otros 4 días para ser resuelta, así la reducción
pasaría de 33 días a 10.
EL DISPOSITIVO TWINKLE EL DISPOSITIVO TWINKLE
Criptografía como recurso para el aula de matemáticas. El arte de esconder
Para uno de 768 bits harían falta
1.200 dispositivos Twinkle, además, deberían ser rediseñados para
acomodar intervalos de criba mayores, pues Shamir presentó su
dispositivo para atacar la factorización de uno de 512 bits.
La memoria del superordenador para reducir la matriz se elevaría a 64 Gb
y llevaría 24.000 veces más tiempo hacerlo.
En el caso de un módulo de 1024 bits, se necesitaría un tiempo de entre 6
y 7 millones de veces el utilizado con un módulo de 512 bits. El tamaño de
la base de factores (y del tamaño de los intervalos) crecería en un factor
2.500.
Por tanto, harían falta 45.000 dispositivos y 500.000 años para llevar a
cabo la criba. La memoria necesaria sería de entre 5 y 10 Tb, y harían
falta alrededor de 65 millones de veces el
tiempo requerido para factorizar el módulo RSA de 512 bits.
EL DISPOSITIVO TWINKLE EL DISPOSITIVO TWINKLE
Criptografía como recurso para el aula de matemáticas. El arte de esconder
En los años 80, la recomendación habitual era utilizar claves de 512 bits;
hoy se recomienda el uso de claves de 768 bits para usuarios, de 1.024
bits para organismos y empresas y de 2.048 bits para Autoridades de
Certificación.
Ejercicio:
Si p =1511 q = 907, e = 377 ¿Qué dice el mensaje?
0000000 0565269 0565269 0959334 0000000 0000000 0000000
Criptografía como recurso para el aula de matemáticas. El arte de esconder