Vous êtes sur la page 1sur 8

UNIVERSIDAD NACIONAL DE LOJA

1. TEMA

“ALGORITMO DE CIFRADO RSA”


2. INTEGRANTES

 KARINA VÁSQUEZ
 MILTON VARGAS
 VERÓNICA SOTO
 BELÉN NOVILLO

3. MOTIVACIÓN DEL ALGORITMO

El algoritmo RSA, cuyo nombre viene de las iniciales de los apellidos de sus creadores
Rivest, Shamir y Adleman, es un sistema criptográfico de clave pública creado en 1977.

El algoritmo RSA sufrió su primer crackeo este mismo 2010, cuando el 7 enero lograron
vulnerar su versión del algoritmo de 768 bits. Sin embargo este nuevo crackeo responde a
su versión extendida de 1024 bits, gracias al trabajo de Valeria Bertacco, Todd Austin y
Andrea Pellegrini.

El método que usaron estos investigadores consistió en ir variando los niveles de tensión
enviados al destinatario para generar cifrados defectuoso. Esto les ayudó a recrear la
clave privada mediante la combinación de una serie de fragmentos obtenidos en el
proceso. La operación tomó nada más y nada menos que 100 horas.

Así es como se crackeó un algoritmo que debería resistir ataques de fuerza bruta en
menos de 4 días, lo cual no hace más que asustar a la comunidad web, pues es este
algoritmo el usado para operaciones que requierean conexiones seguras, tales
como transacciones electrónicas e incluso accesos a webmail.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números


muy grandes. Para factorizar un número el sistema más lógico consiste en empezar a
dividir sucesivamente éste entre 2, entre 3, entre 4,..., y así sucesivamente, buscando que
el resultado de la división sea exacto, es decir, de resto 0, con lo que ya tendremos un
divisor del número.
UNIVERSIDAD NACIONAL DE LOJA

Ahora bien, si el número considerado es un número primo (el que sólo es divisible por 1 y
por él mismo), tendremos que para factorizarlo habría que empezar por 1, 2, 3,...........
hasta llegar a él mismo, ya que por ser primo ninguno de los números anteriores es
divisor suyo. Y si el número primo es lo suficientemente grande, el proceso de
factorización es complicado y lleva mucho tiempo.

Basado en la exponenciación modular de exponente y módulo fijos, el sistema RSA crea


sus claves de la siguiente forma:

 Se buscan dos números primos lo suficientemente grandes: p y q (de entre 100 y


300 dígitos).
 Se obtienen los números n = p * q y Ø = (p-1) * (q-1).
 Se busca un número e tal que no tenga múltiplos comunes con Ø.
 Se calcula d = e-1 mod Ø, con mod = resto de la división de números enteros.
Y ya con estos números obtenidos, n es la clave pública y d es la clave privada.
Los números p, q y Ø se destruyen. También se hace público el número e,
necesario para alimentar el algoritmo.

El cálculo de estas claves se realiza en secreto en la máquina en la que se va a guardar


la clave privada, y una vez generada ésta conviene protegerla mediante un algoritmo
criptográfico simétrico.

En cuanto a las longitudes de claves, el sistema RSA permite longitudes variables, siendo
aconsejable actualmente el uso de claves de no menos de 1024 bits (se han roto claves
de hasta 512 bits, aunque se necesitaron más de 5 meses y casi 300 ordenadores
trabajando juntos para hacerlo).

RSA basa su seguridad es ser una función computacionalmente segura, ya que si bien
realizar la exponenciación modular es fácil, su operación inversa, la extracción de raices
de módulo Ø no es factible a menos que se conozca la factorización de e, clave privada
del sistema.

RSA es el más conocido y usado de los sistemas de clave pública, y también el más
rápido de ellos. Presenta todas las ventajas de los sistemas asimétricos, incluyendo la
firma digital, aunque resulta más útil a la hora de implementar la confidencialidad el uso
de sistemas simétricos, por ser más rápidos. Se suele usar también en los sistemas
mixtos para encriptar y enviar la clave simétrica que se usará posteriormente en la
comunicación cifrada.
UNIVERSIDAD NACIONAL DE LOJA

4. DESCRIPCIÓN DE LA SOLUCIÓN

Criptosistemas de clave pública

Como ya se ha visto en el apartado de introducción a la criptografía, los criptosistemas


de clave pública (también llamadoscriptosistemas asimétricos) se caracterizan por utilizar
claves distintas para el cifrado y descifrado de la información. Su principal ventaja es que
facilitan el proceso de distribución e intercambio de claves entre los participantes de la
comunicación segura, que era un problema importante de los criptosistemas simétricos o
de clave privada.

La criptografía basada en criptosistemas de clave pública es relativamente reciente, pues


los primeros algoritmos asimétricos aparecen después de 1975. El criptosistema de esta
clase más importante y extendido hoy en dia es el RSA, que utiliza la exponenciación
modular para cifrar y descifrar y basa su seguridad en la complejidad del problema de la
factorización de enteros grandes.

El criptosistema RSA

De entre todos los algoritmos asimétricos, RSA es el más usado y también quizás el más
sencillo de entender e implementar. Una peculiaridad de este algoritmo es que sus dos
claves sirven indistintamente tanto para cifrar como para autenticar. Debe su nombre a
sus tres inventores: Ronald Rivest, Adi Shamir y Leonard Adleman, que publicaron por
primera vez el método RSA en 1977. Ha estado bajo patente de los Laboratorios RSA
hasta el 20 de septiembre de 2000, por lo que su uso comercial estuvo restringido hasta
esa fecha.

RSA, como ya se ha indicado, se basa en la difcultad que presenta la factorización de


números grandes. Las claves pública yprivada se calculan a partir de un número que se
obtiene como producto de dos primos grandes. Un atacante que quiera recuperar un texto
claro a partir del criptograma y de la clave pública, tiene que enfrentarse a dicho problema
de factorización.

El problema de la factorización de números grandes

Ya conocemos una forma posible de descomponer un número n en sus factores: probar a


dividirlo por todos los números enteros positivos comprendidos entre 2 y la raíz de n. Pero
cuando hablamos de un número de tamaño 1024 bits, este método es
computacionalmente impracticable. Por supuesto, a lo largo del tiempo los matemáticos
han inventado otros métodos de factorización más eficientes, pero ninguno ha conseguido
un algoritmo con un orden de complejidad que permita factorizar en un tiempo razonable
números de tamaños como los empleados en RSA actualmente, aun con la potencia
computacional disponible hoy en día.

De hecho el problema de la factorización de enteros se considera que es un problema


de clase NP, es decir, un problema para el que existe uno o más algoritmos que lo
UNIVERSIDAD NACIONAL DE LOJA
resuelven, pero ninguno de los algoritmos conocidos se ejecutan en un
tiempopolinomial (que pueda ser expresado polinómicamente en función del tamaño de
los datos de entrada), y por lo tanto son ineficientes o intratables para datos de entrada
muy grandes.

Justificación del método

Cd (mod n)= (Me)d (mod n) = M1+k(p-1)(q-1)(mod n) = (M(p-1)(q-1))k.M (mod n) [i]

Si recordamos, la función de Euler φ(n)= (p-1)(q-1), y que en general, salvo azar


improbable, se tendrá que mcd(M,p)=mcd(M,q)=mcd(M,n)=1. Y por tanto según el
teorema de Euler-Fermat, Mφ(n) ≡ 1 (mod n) ⇒ (M(p-1)(q-1))k ≡ 1 (mod n) [ii]

De [i] y [ii] se obtiene que Cd (mod n) = 1.M (mod n) = M, para 0 < M < n

Conmutatividad del cifrado y descifrado en RSA

Por las propiedades de la exponenciación modular, el cifrado y descifrado son


conmutativos:

M = (Me mod n)d mod n = Md.e mod n = (Md mod n)e mod n = M

Esto supone que si cifrando M con la clave pública e y a continuación descifrando el


resultado con la privada d obtenemos de nuevo M, también podemos cifrar M con la clave
privada d y descifrar el resultado con la clave pública e, volviendo a obtener M.

Esta propiedad es importante porque nos permite utilizar RSA no sólo para cifrar un
mensaje, sino también para autenticar el mensaje, como veremos en el tema siguiente.

Criptoanálisis del RSA

Para romper un cifrado RSA, podemos probar varias vías. Aparte de factorizar n, que
ya sabemos que es un problema computacionalemente intratable en un tiempo razonable,
podríamos intentar calcular φ(n) directamente, o probar por un ataque de fuerza bruta
tratando de encontrar la clave privada d, probando sistemáticamente con cada uno de los
números posibles del espacio de claves. Ambos ataques son, para n grandes, incluso aún
más costosos computacionalmente que la propia factorización de n.
UNIVERSIDAD NACIONAL DE LOJA

5. PROTOTIPO DE LA SOLUCIÓN

5.1 Se presenta un Hilo de Ejecución esto es la inicialización del programa

5.2 Luego en la siguiente ventana se coloca los datos a encriptar o desencriptar


UNIVERSIDAD NACIONAL DE LOJA

5.3 Luego haciendo clic sobre el botón RESOLVER se obtendrá la siguiente tabla
con la clave.

5.4 Finalmente cuando escogimos la opción encriptar aparece el código de la


palabra ingresada
UNIVERSIDAD NACIONAL DE LOJA

5.5 Al momento de escoger DESENCRIPTAR aparece en la parte izquierda el


resultado.

5.6 Existen además los botones de Ayuda y Salir


UNIVERSIDAD NACIONAL DE LOJA

6. HERRAMIENTAS INFORMÁTICAS

 Se utilizó el IDE NetBeans para realizar el programa bajo la


plataforma JAVA.

 Desde el internet se pudo documentar acerca del algoritmo utilizado


lo que ayudó para su realización.

7. CONCLUSIONES

 El algoritmo RSA es bastante seguro ya que por medio de la clave se


puede mantener a salvo cualquier tipo de dato que se esté
manipulando.

 Es necesario documentarse bien acerca del contenido y


funcionamiento del tema ya que se lo puede confundir con la
solución de otro algoritmo y esto no puede óptimo.

8. FUTUROS TRABAJOS

 Sería óptimo implementar al algoritmo otros lenguajes de


programación preferentemente libres.
 Es necesario incrementar las actividades de cifrado para otros
trabajos de investigación.

9. FUENTES:

 Fáez, Miguel. Seguridad Informática Disponible en


URL:http://informatica.uv.es/iiguia/MC/Teoria/mc_capitulo12.pdf.[En línea]
Consultado 19/12/2010.
 Juárez, Vicente Algoritmo de cifrado RSA. Disponible en URL:
http://foro.portalhacker.net/index.php/topic,64352.0.html. [En línea] Consultado
19/12/2010.

Vous aimerez peut-être aussi