crisptosistema rsa mejorado

31
CRIPTOGRAFÍA CLÁSICA Cifrado Asimétrico: RSA Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Perú

Upload: juan-carlos-broncanotorres

Post on 18-Jul-2015

101 views

Category:

Education


0 download

TRANSCRIPT

CRIPTOGRAFÍA CLÁSICA

Cifrado Asimétrico: RSA

Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Perú

Antecedentes

El concepto de criptosistema de clave pública fue descubierto por James Ellis (Government Communications Head quarters) al final de los años60 (7 años antes que D-H).

Clifford Cocks desarrolló esas ideas y descubrió un criptosistema equivalente a RSA en 1973 (3-4 años antes que Rivest, Shamir y Adleman)

Malcolm Williamson, buscando fallosen el trabajo de Cocks, descubre el Intercambio de claves D-H en 1975 (un año antes que Diffiey Hellman).

CRIPTOGRAFIA ASIMÉTRICA Criptografía Asimétrica NO necesariamente es Criptografía de clave publica. Por ejemplo el algoritmo de encriptación de POHLIG-HELLMAN es asimétrico pero NO posee información pública.

los criptosistemas de clave publica se basan (al igual que el resto de la criptografía asimétrica) en problemas computacionalmente complejos (clases NP o NP-completo) y cuyas vias inversas sean simples (clase P) pero no deducibles una a partir de la otra. las funciones trampa de una vía permiten implementar estos sistemas de autenticación, encripción y firma digital. la vía simple se hace publica, la clave extra de la vía compleja se mantiene en secreto y permite identificar a quien la posee.

Ventajas y desventajas del cifrado asimétrico

La mayor ventaja es que la distribución de claves es más fácil, pero este sistema tiene bastantes desventajas: Para una misma longitud de clave y mensaje se necesita mayor tiempo de

proceso. Las claves deben ser de mayor tamaño que las simétricas. (Generalmente

son cinco o mas veces de mayor tamaño ) El mensaje cifrado ocupa más espacio que el original.

Los nuevos sistemas de clave asimétrica basado en curvas elípticas tienen características menos costosas.

logaritmo discreto

factoreo

knapsack

ALGORITMOS CRIPTOGRAFICOS ASIMÉTRICOS

ALGORTIMO DE CIFRADO POHLIG-HELLMAN

Ejemplo:

Fue el primer algoritmo de encripción asimétrico pero no de clave publica. el RSA fue desarrollado a partir de este.

Aquí ambas claves son secretas

Su seguridad reside en el problema del logaritmo discreto

FUNCIÓN DE UNA VÍA y=f(x) es “computacionalmente fácil” ∈P ; pero x=f-1(y) es “computacionalmente difícil”∈ NP

FUNCIÓN TRAMPA DE UNA VÍA: y=f(x) es “computacionalmente fácil” ∈ P ,y x=f-1(y) es “computacionalmente difícil” ∈ NP, pero contando con una “clave” extra de información (trapdoor information) x=f-1(y) se vuelve computable ∈ P

FUNCION DIRECTA ∈P

Cualquier medio de transmisión es inseguro FUNCION INVERSA ∈ NP

Un ejemplo de una de tales funciones es la conocida como “función exponenciación modular”, la cual se define como sigue:

pgy x mod

donde y p es un número primo lo suficientemente grande con k dígitos. Zxg,

FUNCION TRAMPA DE UNA VIA

TRAPDOOR INFO: un factor es 2512+75

FUNCION INVERSA: NP → P

Mientras, que su función inversa:

pyx g modlog

conocida como “función logaritmo discreto” tiene complejidad de orden exponencial.

El problema de la distribución de claves

Imagine que un banco quiere enviar algunos datos confidenciales a un cliente a través de la línea telefónica, pero le preocupa que pueda haber alguien que intervenga la línea. El banco elige una clave y utiliza un algoritmo para codificar los datos del mensaje. Para descodificar el mensaje, el cliente no sólo necesita tener una copia de dicho algoritmo en su ordenador, sino también saber qué clave ha sido usada para cifrar el mensaje. ¿Cómo informa el banco al cliente acerca de la clave? No puede enviar la clave a través de la línea telefónica, porque sospecha que hay un fisgón en la línea. La única forma verdaderamente segura de enviar la clave es entregarla en persona, lo que obviamente es una tarea que requiere mucho tiempo.

Emisor seguro

Receptor seguro

Linea telefónica Mensaje:clave

Datos Datos

Banco Roberto

Intruso

En 1976 Whitfield Diffie y Martín Hellman iniciaron una revolución en criptografía al publicar dos trabajos: Multiuser cryptographic techniques, Proceedings of AFIPS National Computer Conference, (1976), pp.109-112. New directions in cryptography, IEEE Transactions on Information Theory, Vol.22, No.6 (1976), pp.644-654. Distintos libros le atribuyen a un joven estudiante de Berkeley, R.C.Merkle, el haber descubierto en forma independiente la criptografía de clave pública a través de los denominados Merkles puzzles. La motivación de todos ellos era la misma: en la clásica

criptografía simétrica el emisor y el receptor comparten una misma clave que debe cambiarse periódicamente por razones de seguridad. El problema era entonces: ¿ cómo comunicar a través de canales inseguros la nueva clave ?

Solución del problema de intercambio de claves

Merkle publicó su primer trabajo dos años más tarde: Secure communications over insecure channels, Communications of the ACM, Vol.21 (1978), pp.294-299.

De hecho los tres trabajaban en contacto y tenían experiencias distintas. Martín Hellman había hecho su tesis en Matemática sobre cadenas de Markov y su motivación era la teoría de la información, Merkle estudiaba Computación y sus rompecabezas constituían un protocolo para intercambiar claves, y Diffie le dijo un cierto día a Helmann : habría que tener una clave privada y una pública. Diffie y Hellman pensaban que la idea de Merkle era interesante pero no muy práctica, pero los hizo pensar en otras formas de lograr transmitir datos confidenciales sobre canales inseguros.

Reconociendo el trabajo conjunto, los tres obtuvieron la primera patente de criptografía de clave pública emitida el 29/4/80 con el número 4.200.770 solicitada el 6/9/77 por los tres a nombre de la Universidad de Stanford.

Sin embargo se la llama la patente de Diffie-Hellmann porque cubre al protocolo de intercambio de claves que ellos desarrollaron, aunque también permite identificar identidades sobre canales inseguros.

Por otra parte Hellmann y Merkle desarrollaron un sistema de clave pública basado en el problema de la mochila (knapsack subset problem), y solicitaron la patente el 6/10/77 que tiene el número 4.218.582 que ahora se sabe que no es seguro.

La solución al problema de la distribución de claves

Martin Hellman

Whitfield Diffie Después de dos años concentrándose en la aritmética modular y las funciones de una sola vía, Hellman empezó a producir frutos. En la primavera de 1976 dio con una estrategia para resolver el problema de la distribución de claves.

La idea de Hellman se basaba en una función de una sola vía de la forma:

Explico las acciones de intercambio de claves entre dos personajes que llamaremos Alicia y Benito en las dos columnas de la Tabla siguiente:

Siguiendo las fases de la Tabla anterior se verá que, sin reunirse, Alicia y Benito han acordado la misma clave, que pueden utilizar para codificar un mensaje. Usando la estratagema de Hellman, Alicia y Benito han conseguido acordar una clave, pero no tuvieron que reunirse y susurrarse la clave. El extraordinario logro es que la clave secreta se acordó mediante un intercambio de información en una línea telefónica normal. Pero si Eva intervino esta línea, también sabrá la clave, ¿no?

A

B

C

E

D

El problema del número de claves

kAB

kAC

kBC

kAD

kBD

kCD

kAE

kBE

kCE

kDE

Número Claves: n (n-1) / 2

2 usuarios: N = 1

3 usuarios: N = 3

4 usuarios: N = 6 5 usuarios: N = 10

N = nº de claves

Muy mala gestión de claves: el valor tiende

a n2.

Clave secreta

No es posible el no repudio

Alice y Bob poseen las mismas facultades debido a que tienen la misma clave. Por lo tanto la criptografía simétrica no nos defiende de que Alice o Bob se hagan trampa entre sí. Un ejemplo típico es el caso donde Alice envía una orden de compra a Bob por una cantidad x de cañas de pescar, luego Alice se arrepiente y puede tranquilamente decir

que ella no fue quien emitió esa orden de compra, ya que Bob también pudo haberla generado, dado que él conoce la clave. De esta manera no hay prueba legal con la que se pueda dirimir el conflicto. Por lo tanto, precisamos un mecanismo para identificar por separado a cada uno de los actores comerciales de este caso. La prevención de esta situación se denomina no repudio y se puede conseguir a través de la implementación de la firma digital usando algoritmos de clave asimétrica.

Más allá del intercambio de claves

Lo anterior tenía como objetivo intercambiar claves en forma segura, pero la encripción debía realizarse mediante un método simétrico. El paso siguiente era natural: ¿ cómo encriptar asimétricamente ?

Pohlig y Hellman desarrollaron un algoritmo para encriptar asimétricamente:

S.C.Pohlig and M.E.Hellman, “ An Improved Algorithm for Computing Logarithms in GF(p) and Its Cryptographic Significance”, IEEE Transactions on Information Theory, Vol.24, No.1,(1978), pp.106-111.

Pero como es usual el trabajo terminado tardó dos años en publicarse. Mientras tanto Martín Hellman le mandó el paper a Ron Rivest , profesor del MIT, quien con Shamir y Adleman redactaron el algoritmo RSA y lo mandaron a una revista muchos más “rápida”.

Su artículo era R.L.Rivest, A.Shamir and L.Adleman, “A method for obtaining digital signatures and public key cryptosystems”, Communications of the ACM, Vol.21(1978),pp.120-126.

Criptosistemas Asimétricos de Cifrado

Claves: eB, nB, dB Claves: eA, nA, dA

Bob Alice

eB, nB: públicas dB: privada

eA, nA: públicas dA: privada

ESTOS SERÁN NUESTROS PROTAGONISTAS

Si Bob realiza la operación con las claves públicas de

Alice (eA, nA), la información que se

transmite mantiene la confidencialidad: sólo ella

puede verla.

Origen Destino

El Criptosistema RSA

El algoritmo RSA El proceso completo de cifrado y descifrado de un mensaje consta de los pasos que se enumeran a continuación y que se realizan, como ejemplo con el mensaje ”El codigo”.

Vulnerabilidad de RSA

EL DISPOSITIVO TWINKLE

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

Al número dado, 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. 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.

Competición de factorización RSA La Competición de factorización RSA fue un desafío propuesto por los Laboratorios RSA el 18 de marzo de 1991 para fomentar la investigación en la teoría computacional de números y la dificultad práctica de la factorización de números enteros grandes. Publicaron una lista de semiprimos (números que tienen exactamente dos factores primos) conocida como los números RSA, con un premio en metálico para la factorización con éxito de algunos de ellos. El más pequeño de todos, un número con 100 cifras decimales conocido como RSA-100 fue factorizado en pocos días, pero la mayoría de los números más grandes aún no han sido factorizados y se espera que permanezcan así durante bastante tiempo. La compañía RSA canceló la competición en el año 2007. Este desafío estaba diseñado para seguir el ritmo al estado del

arte en la factorización de enteros.

Los primeros números RSA generados desde RSA-100 hasta RSA-500 fueron etiquetados de acuerdo con su número de cifras decimales; sin embargo, a partir de RSA-576 se cuentan las cifras en el sistema binario. La excepción a esto es el RSA-617, que fue creado antes del cambio del sistema de numeración.

Número RSA Cifras

decimales Cifras binarias

Premio ofrecido

Factorizado en Factorizado

por

RSA-100 100 330 abril de 1991 Arjen K. Lenstra

RSA-110 110 364 abril de 1992 Arjen K.

Lenstray M.S. Manasse

RSA-120 120 397 junio de 1993 T. Denny et al.

RSA-129 129 426 $100 abril de 1994 Arjen K.

Lenstraet al.

RSA-130 130 430 10 de abril de 1996 Arjen K.

Lenstraet al.

RSA-140 140 463 2 de febrero

de 1999 Herman J. J. te

Riele et al.

RSA-1501 150 496 16 de abril de 2004 Kazumaro Aokiet al.

RSA-155 155 512 22 de agosto de

1999 Herman J. J. te

Riele et al.

RSA-160 160 530 1 de abril de 2003 Jens Franke et

al., Universidad de Bonn

RSA-170 170 563 abierto

RSA-576 174 576 $10,000 3 de diciembre

de 2003

Jens Franke et al., Universidad

de Bonn

RSA-180 180 596 abierto

RSA-190 190 629 abierto

RSA-640 193 640 $20,000 2 de noviembre

de 2005

Jens Franke et al., Universidad

de Bonn

RSA-200 200 663 9 de mayo de 2005 Jens Franke et

al., Universidad de Bonn

RSA-210 210 696 26 de septiembre

de 2013 Ryan Propper

RSA-704 212 704 $30,000 abierto

220 220 729 abierto

RSA-230 230 762 abierto

RSA-232 232 768 abierto

RSA-768 232 768 $50,000 12

diciembre de 2009

A six-institution research team led by

T. Kleinjung

RSA-240 240 795 abierto

RSA-250 250 829 abierto

RSA-260 260 862 abierto

RSA-270 270 895 abierto

RSA-896 270 896 $75,000 abierto

RSA-280 280 928 abierto

RSA-290 290 962 abierto

RSA-300 300 995 abierto

RSA-309 309 1024 abierto

RSA-1024 309 1024 $100,000 abierto

RSA-310 310 1028 abierto

RSA-320 320 1061 abierto

RSA-330 330 1094 abierto

RSA-340 340 1128 abierto

RSA-350 350 1161 abierto

RSA-360 360 1194 abierto

RSA-370 370 1227 abierto

RSA-380 380 1261 abierto

RSA-390 390 1294 abierto

RSA-400 400 1327 abierto

RSA-410 410 1360 abierto

RSA-420 420 1393 abierto

RSA-430 430 1427 abierto

RSA-440 440 1460 abierto

RSA-450 450 1493 abierto

RSA-460 460 1526 abierto

RSA-1536 463 1536 $150,000D abierto

NÚMEROS RSA

RSA-470 470 1559 abierto

RSA-480 480 1593 abierto

RSA-490 490 1626 abierto

RSA-500 500 1659 abierto

RSA-617 617 2048 abierto

RSA-2048 617 2048 $200,000 abierto

Las tablas anteriores hacen un recorrido por todos los números RSA. Los números del desafío en líneas rosas son números expresados en base 10, mientras que los de las líneas amarillas son números expresados en base 2, y que tenían un premio asignado.

Ataques al algoritmo RSA