Вы находитесь на странице: 1из 4

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA DE SISTEMAS


CARRERA DE INGENIERIA EN SISTEMAS INFORMTICOS Y DE COMPUTACIN

Laboratorio de: SIC514 Tecnologas de Seguridad


Prctica No.: 3
Tema: RSA
Objetivos:
1. Entender el funcionamiento del algoritmo RSA.
2. Implementar un programa cliente servidor que utilice RSA.
3. Cifrar manualmente un texto, siguiendo el algoritmo RSA.
Marco terico:
RSA hace uso de una expresin con exponenciales. El texto plano se cifra en bloques, cada
bloque tiene un valor binario menor que un nmero n. Es decir, el tamao del bloque debe ser
menor o igual que log2 (n) + 1; En la prctica, el tamao del bloque es i bits, donde 2i < n 2i+1.
La codificacin y desencriptacin son de la siguiente forma, para algunos bloques de texto sin
formato M y un bloque de texto cifrado C.

Tanto el emisor como el receptor deben conocer el valor de n. El remitente conoce el valor de
e, y slo el receptor conoce el valor de d. Por lo tanto, este es un algoritmo de cifrado de clave
pblica con una clave pblica de PU = {e, n} y una clave privada de PR = {d, n}.

Adems n es el producto de dos nmeros primos p y q.

Seguridad de RSA:

Ataques de Fuerza Bruta: Prueba todas las posibles claves privadas, entre ms bits
tenga (d) es mejor, pero si la clave es muy grande el sistema se har muy lento.
Ataques Matemticos: Tratan de factorizar el producto de dos nmeros primos.
Ataques temporales: Dependen del tiempo de ejecucin del algoritmo de descifrado.
Ataques de texto cifrado elegido: Explota las propiedades del algoritmo RSA. [1]

Desarrollo de la prctica:
Para poder realizar la ejecucin del programa rsaprog.c es necesario tener instalado las
siguientes libreras:

Posterior a esto se debe instalar la librera de criptografa:

Para la compilacin del programa se lo realiza de la siguiente manera:


cc o rsaprog rsaprog.c lcrypto

Y para poder ejecucin del programa se lo realiza mediante la siguiente lnea de comando:

./rsaprog 1024 "PLAIN TEXT DE PRUEBA"

En este caso se debe especificar el nmero de bits de la llave y el mensaje el mismo que debe
ser escrito usando la lnea de comandos para ser cifrado y descifrado, y de esta manera el
programa puede generar la llave pblica y privada.

Anlisis de resultados:

Al realizar la ejecucin del programa rsaprog.c podemos observar lo siguiente:


Fragmento de la generacin de modulo:

La generacin del exponente pblico e es el siguiente, el mismo que posteriormente se


utilizara para descifrar el mensaje

La generacin del exponente privado d, es el siguiente:

Para poder hallar el valor de n que resulta de la multiplicacin de dos nmeros primos
diferentes p y q.
Primer nmero primo p:
Segundo numero primo q:

Despus de esto se obtiene la longitud de la llave pblica:

Posterior a esto se puede observar la longitud del archivo plano:

Programa Cliente-Servidor
Al momento de realizar el programa cliente servidor que utilice RSA, en el cliente se debe
definir la direccin IP con la cual se va a conectar (servidor) y el puerto de escucha, adems se
debe verificar que el servidor se encuentre iniciado, se procede al envio del tamao de la llave
y el texto a ser cifrado para que posteriormente pueda ser descifrado en el servidor, adems
se generara las diferentes llaves.
Los resultados que se obtuvieron fueron los siguientes:
Para iniciar el servidor se lo realiza de la siguiente manera:

Para iniciar el Cliente se lo realiza de la siguiente manera:

Servidor ejecutndose:
Se presentaron problemas al momento de realizar la desencriptacion en el servidor, lo que se
logr obtener fue solo la encriptacin en el cliente y el envi al servidor.

Conclusiones y recomendaciones:
Con la realizacin del informe se logr obtener un mayor conocimiento acerca del
funcionamiento del algoritmo RSA, as como tambin de poder entender acerca del
uso correcto de la utilizacin de la clave pblica y privada.
Se presentaron algunas dificultades al momento de utilizar el algoritmo de RSA para
cifrar un texto de forma manual, debido a que no se poda escoger de manera fcil el
nmero n.
Al momento de realizar la ejecucin del programa en el caso que se utilice un nmero
de bits muy alto, se logr observar que el tiempo que se demora para la generacin de
la llave aumenta
Cada vez que se realice la ejecucin del mismo texto plano con el mismo nmero de
bits, se obtiene una nueva clave pblica y una nueva clave privada, adems se obtiene
un nmero n diferente.

Bibliografa:
[1] W. Stallings, Cryptography and Network Security, United States of America: Prentice Hall,
2005.

Вам также может понравиться