PRACTICA
PRACTICA
PRACTICA
UTPL 1
Facultad: Ingeniería
Escuela: Electrónica
Asignatura: Seguridad en redes
Practicas No 2, 3 y 4
Tema: Encriptado, Funciones hash y Firma digital
Nombre: David Luzón
Contenidos
Objetivos Específicos
Observar el comportamiento del algoritmo de funciones hash MD5.
Observar el comportamiento del algoritmo de funciones hash SHA-1.
Identificar las similitudes y diferencias entre las funciones hash MD5 y SHA-1.
Que el estudiante sea capaz de identificar las ventajas que ofrece la firma digital.
Materiales y Equipo
Introducción Teórica
El algoritmo MD5 fue diseñado para ejecutarse muy rápidamente en computadoras personales de 32
bits, además de que no requiere grandes tablas de substitución y puede ser codificado de forma muy
compacta.
Este algoritmo es una extensión del algoritmo para resumir MD4. MD5 es un poco más lento
que MD4 pero se considera más seguro. MD5 se diseñó porque las revisiones críticas existentes
señalaron que, MD4 fue quizás adoptado por su rapidez y no por su seguridad. Debido a que MD4
fue diseñado para ser excepcionalmente rápido, se encuentra “ en el filo" en termino de riesgos de
ataques cripto-analíticos exitosos. MD5 sacrifica un poco de velocidad en su cálculo, por mucha más
seguridad. Incorpora algunas recomendaciones hechas por varios analizadores, y contiene varias
optimizaciones. El Algoritmo MD5 se hace de dominio público para revisiones y posibles
adopciones como un estándar.
MD4 es un algoritmo de resumen del mensaje (el cuarto en la serie) diseñado por el profesor Ronald
Rivest del MIT. Implementa una función criptográfica de hash para el uso en comprobaciones de
integridad de mensajes. La longitud del resumen es de 128 bits.
Firma Digital
La firma digital de un documento es el resultado de aplicar cierto algoritmo matemático,
denominado función hash, al contenido. Esta función asocia un valor dentro de un conjunto
finito (generalmente los números naturales) a su entrada. Cuando la entrada es un documento, el
resultado de la función es un número que identifica casi unívocamente al texto. Si se adjunta este
número al texto, el destinatario puede aplicar de nuevo la función y comprobar su resultado con el
que ha recibido.
Para que sea de utilidad, la función hash debe satisfacer dos importantes requisitos. Primero, debe
ser difícil encontrar dos documentos cuyo valor para la función "hash" sea idéntico. Segundo, dado
uno de estos valores, debería ser difícil recuperar el documento que lo produjo.
Algunos sistemas de cifrado de clave pública se pueden usar para firmar documentos. El
firmante cifra el documento con su clave privada y cualquiera que quiera comprobar la firma y ver el
documento, no tiene más que usar la clave pública del firmante para descifrarla.
Existen funciones "hash" específicamente designadas para satisfacer estas dos importantes
propiedades. SHA y MD5 son dos ejemplos de este tipo de algoritmos. Para usarlos un documento
se firma con una función "hash", cuyo resultado es la firma. Otra persona puede comprobar la firma
aplicando la misma función a su copia del documento y comparando el resultado con el del
documento original. Si concuerdan, es casi seguro que los documentos son idénticos.
3 Seguridad en redes. UTPL 3
PRACTICA No1
Procedimiento
1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos los
programas, hacer clic en la aplicación CriptoRes. Con lo cual iniciará la pantalla que se
observa en la figura 1.
4. Para cada uno de los mensajes introducidos, obtener su función hash haciendo clic en el
botón Transformar y copiar a continuación los valores de dichas funciones.
a. Hash1= E2FC714C4727EE9395F324CD2E7F331F
b. Hash2= 1E0A37636AC1F469DBB6B467D9F23588
c. Hash3= 1DFFABCBAE08AF87B78B86C3A8F4C4CF
Son diferentes debido a que en el mensaje 2 se usa minúsculas y en el mensaje 3 mayúsculas esto
origina que el resumen o valor de hash sea diferente.
7. Hacer un seguimiento del mensaje 3 a nivel de bloques. Guardar el resultado, que se puede
observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado
prac7md5bloques.txt.
4 Seguridad en redes. UTPL 4
8. Hacer un seguimiento del mensaje 3 a nivel de pasos. Guardar el resultado, que se puede
observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado
prac7md5pasos.txt.
5 Seguridad en redes. UTPL 5
En la operación por pasos trabaja con números binarios y compuertas para encontrar la función hash,
en cambio en la operación por bloques trabaja con números hexadecimales y va intercambiado por cada
ronda la posición de estos.
10. Introducir por teclado el siguiente texto y calcular su función hash. Guardar el
resultado en un archivo de texto.
a. Mensaje4 = BEBA COCA COLA
6 Seguridad en redes. UTPL 6
11. A continuación, introducir por teclado el siguiente texto y vuelva a calcular su función
hash. Guardar el resultado en un archivo de texto.
a. Mensaje5 = BEBA BOCA COLA
12. Comparar la función hash de salida de ambos mensajes y comprobar que al cambiar
un solo bit del mensaje (la letra C por la B) cambian más de la mitad de los bits de su
función hash o resumen.
Mensaje 4
11101011110010010111110011010110010001110010101000111111110110111110010100111
011000010011111011011100010101110101000011010000111
Mensaje 5
10010110011110101001100111110101010111001111011001001001011100111100010101010
011001101110100110000001000101001111011110101110010
Si al realizar este cambio de letra más de mitad de los bits cambia en la salida.
13. Haciendo uso de una calculadora científica obtenga el equivalente en binario de la función
hash para realizar esta comprobación.
7 Seguridad en redes 7
14. Calcular la función hash del archivo neruda.txt y del archivo neruda.doc; los cuales se
encuentran en el directorio del instalador de la aplicación.
15. Observe que el contenido de ambos archivos es el mismo. Explique cual es la razón por la
cual sus funciones hash no son idénticas también.
El archivo .doc tiene más bytes que el archivo .txt por esta razón los mensajes no idénticos.
1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos los
programas, hacer clic en la aplicación CriptoRes. Con lo cual iniciará la pantalla que se
observa en la figura 1.
4. Para cada uno de los mensajes introducidos, obtener su función hash haciendo clic en el
botón Transformar y copiar a continuación los valores de dichas funciones.
a. Hash1= 81FE8BFE87576C3ECB22426F8E57847382917ACF
b. Hash2= 8AB47E3EEC51E974DA04497F135904FBBA07A3FC
c. Hash3= B26FBCF8036C702C3E939E5BB1101CF9E0101DD0
5. Hacer un seguimiento del mensaje 3 a nivel de bloques. Guardar el resultado, que se puede
observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7sha-
1bloques.txt.
9 Seguridad en redes 9
6. Hacer un seguimiento del mensaje 3 a nivel de pasos. Guardar el resultado, que se puede
observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7sha-
1pasos.txt.
1 Seguridad en redes 1
0 0
7. Comparar los resultados de los archivos obtenidos en los numerales anteriores con los
obtenidos en los numerales 7 y 8 de la sección 1 haciendo uso del algoritmo
MD5. Completar la siguiente tabla de similitudes y diferencias.
SIMILITUDES DIFERENCIAS
SHA-1 y MD5 operan utilizando cuatro vueltas cada SHA-1 realiza 20 operaciones en cada vuelta, en
uno. cambio MD5 realiza 16 operaciones por vuelta.
SHA-1 y MD5 representan el byte menos significativo a la MD5 representa el byte menos significativo a la derecha al
derecha. inicio para luego operarlo, SHA-1 realiza esa operación al
final.
SHA-1 realiza 20 operaciones en cada vuelta, en cambio MD5 los bits menos significativos los ubica a la derecha al
MD5 realiza 16 operaciones por vuelta. comienzo, SHA-1 no hace eso.
Ambos regresan un número hexadecimal SHA-1 utiliza doble XOR al realizar sus operaciones, en
independientemente de cuál sea la entrada. cambio MD5 utiliza XOR y OR. Son más largas las
operaciones de SHA-1
Las palabras del bloque 1 del mensaje siempre serán 16 (16 Los valores iniciales en MD5 son (A,B,C y D) en SHA-1
Palabra) son (A,B,C,D y E)
8. Introducir por teclado el siguiente texto y calcular su función hash. Guardar el resultado en
un archivo de texto.
a. Mensaje4 = Cuenta atrás: 3210
1 Seguridad en redes 1
1 1
9. A continuación, introducir por teclado el siguiente texto y vuelva a calcular su función
hash. Guardar el resultado en un archivo de texto.
a. Mensaje5 = Cuenta atrás: 3211
Mensaje 5
101101101101100010010000011011010011000101011111100011100100011011001010110000010010
1111111001001101110111001011101100000001101100110110110011011010101010010101
Si al realizar este cambio de caracter más de mitad de los bits cambia en la salida.
1 Seguridad en redes 1
2 2
11. Calcular la función hash del archivo cien.txt y del archivo cien.doc; los cuales se
encuentran en el directorio del instalador de la aplicación.
12. Observe que el contenido de ambos archivos es el mismo. Explique cual es la razón por
la cual sus funciones hash no son idénticas también.
El archivo .doc tiene más bytes que el archivo .txt por esta razón los mensajes no idénticos.
PRACTICA No3
Funcionamiento de la Firma Digital
1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos los
programas, hacer clic en la aplicación ExpoCrip. Con lo cual iniciará la pantalla que se
observa en la figura 4.
2. En la barra de menú de la ventana de trabajo principal, hacer clic en la opción Firmas >
Firma RSA. Con lo cual se nos despliega la ventana que se observa en la figura 5.
3. Introducir los parámetros que se detallan a continuación, en las casillas destinadas para ello
en la aplicación. Estos parámetros son necesarios para el correcto funcionamiento del
algoritmo RSA.
a. p = 266677
1 Seguridad en redes 1
4 4
b. q = 724153 c. e = 617
5. Luego, hacer clic en el botón Realizar Firma. Y anotar la firma de dicho mensaje a continuación
en formato hexadecimal.
Firma=11C543B7A79672DFA6A0C8B215EAD45F9086D930221174F65A691B80E34E19E03E69C
6
7. Modifique un carácter del texto en claro y vuelva a solicitar la comprobación de la firma. ¿Cuál
es el resultado obtenido en esta ocasión y detalle sus conclusiones al
respecto?
La firma es incorrecta debido a que ya se registró la firma y al cambiar un carácter este no será correcto
8. Con los parámetros que se indican a continuación, firmar el archivo hacker.txt que se encuentra
en la carpeta de instalación de la aplicación.
a. p = 15704900959651293774270521395753
b. q = 70180796165277040349245703851057
c. e = 65537
9. Comprobar la firma del apartado anterior. Luego, cambiar una coma por un punto en el texto y
volver a comprobar la firma.
1 Seguridad en redes 1
6 6
GPG es una herramienta de cifrado muy potente y fácil de usar, que en principio, a la mayoría no nos hace
falta, pero puede que se nos presente la necesidad de enviar algo por medio inseguros (porque no haya más
remedio), haciéndolo de esta forma podremos hacerlo sin miedo a que el contenido sea leído y cambiado.
1. Ejecutamos la máquina virtual KALI Linux. Y abrimos una consola. Primero verificamos que esté
instalado la aplicación mediante el siguiente comando: gpg -h. Deberá aparecer una lista de
opciones. Por lo general KALI Linux ya dispone de este programa de cifrado y descifrado.
3. Para descifrar utilizamos el comando gpg -d [archivo] (e introduciendo la clave de alta seguridad,
en este caso qwerty).
4. Cifrado Asimétrico: Para poder cifrar asimétricamente primero tenemos que crear la pareja de
claves (pública y privada) con el comando gpg --gen-key.
5. Se pedirá su nombre ingrese su primer nombra, luego el correo ingrese el correo de la UTPL.
Luego se le pedirá una clave (ingresaremos qwertyutp1). Y empezará a generar las claves. El
proceso tardará algunos minutos. Realice acciones como ingresar aleatoriamente caracteres en el
teclado para ayudar a generar más rápido las claves.
1 Seguridad en redes 1
8 8
6. Una vez que culmine el proceso usamos el comando gpg - - list-secret-key. Se generará la lista de
claves con su ID, que se indica en la figura encerrado en la línea roja. Copiar ese ID.
7. Luego, vamos a exportar la clave pública ingresar el comando gpg –output cpublica.gpg --export
[ID copiado]
8. S
e generará en la carpeta de trabajo (/home) el archivo con la clave pública. Enviar este archivo por
correo electrónico a un compañero que Ud. elija. Luego ese compañero o Ud. con la clave de otro
compañero encriptará un archivo de texto que el creará con un mensaje, de la siguiente manera.
9. Copiará el archivo enviado por correo a su espacio de trabajo en este caso /home. Luego lo
importará desde consola con el siguiente comando gpg --import cpublica.gpg. Se mostrarán la
clave importada. Adjunte capturas de pantalla.
10. Encriptará el mensaje con la clave publica de su compañero con el comando gpg --encrypt --
recipient [ID_clave_importada] [archivo_a_encriptar]. Se le generará un archivo encriptado de
extensión *.gpg. Adjunte capturas de pantalla.
1 Seguridad en redes 1
9 9
11. E
nviar por correo este archivo al compañero que le envió su clave pública. Y cópielo a su especio de
trabajo en este caso /home. Desencripte el mensaje con el comando gpg -d [archivo_encriptado]. Y
verifique que mensaje le envió su compañero. Escríbalo a continuación y compruebe con su
compañero. Adjunte capturas de pantalla.
12. Firmar un documento: Para firmar un documento crearemos un archivo de texto con cualquier
mensaje con el nombre archivosinfirmar.txt. Luego lo firmamos con el comando gpg -u [ID_clave]
--output archivofirmado.gpg --sign archivosinfirmar.txt. Se creará el archivo firmado. Adjunte
capturas de pantalla.
2 Seguridad en redes 2
0 0
13. Verificamos el archivo firmado mediante el comando gpg --verify archivofirmado.gpg. Adjunte
capturas de pantalla.
Investigación Complementaria
Bibliografía