El algoritmo MD5 (Message-Digest Algorithm 5), es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico deMassachusetts) en el año 1991, está basado en dos algoritmos anteriores MD2 y MD4. El MD5 tiene como propósito proporcionar una clave o identificador único de un archivo, con el fin de poder compararlo más adelante para verificar si se trata del mismo archivo.
La seguridad es un tema muy importante y más cuando se trata de información, muchas veces abrimos o instalamos archivos que no proceden de fuentes confiables, arriesgándonos a ingresar software malicioso en nuestros equipos.
Es de esta problemática que nace el algoritmo MD5, este algoritmo nos permite verificar que el archivo que deseamos ingresar en nuestro equipo es el correcto, es decir que no posee alteración de ningún tipo, lo cual nos brinda mayor seguridad.
Algoritmo MD5
Es un algoritmo que se utiliza como una función de codificación o huella digital de un archivo o texto. Este algoritmo está especialmente diseñado para salvaguardar la integridad de una pieza de información y para identificar si hay cambios o alteraciones a cualquier parte de un mensaje.
De esta forma, a la hora de descargar un determinado archivo, el código generado por el algoritmo, también llamado hash, viene “unido” al archivo. Un hash MD5 está compuesto por 32 caracteres hexadecimales y una codificación de 128 bits.
Es importante tomar en cuenta que el código obtenido del MD5 no es reversible, es decir que no es posible descifrarlo, ya que el MD5 no es un algoritmo de cifrado.
¿Qué es un “HASH”?
Es un método para generar claves que representen un documento o un texto, se consiguen crear a partir de una entrada (archivo o texto). Con los datos de esta entrada se crea un código que solo puede volverse a crear con esos mismos datos.
Estas funciones no tienen el mismo propósito que la criptografía simétrica y asimétrica, tiene varios cometidos, entre ellos está asegurar que no se ha modificado un archivo en una transmisión, hacer ilegible una contraseña o firmar digitalmente un documento.
Ejemplo
Al descargar un archivo de la web, como puede ser un instalador, procedemos a generar el hash de este. Posteriormente acudimos a la web del desarrollador del programa del que tenemos el instalador y buscamos el código MD5 de su instalador original. Una vez que tengamos ambos códigos MD5, podremos compararlos y verificar si se trata del mismo archivo.
¿Como funciona?
El algoritmo MD5 posee 5 pasos claves para su generación los cuales son:
Paso 1: agregar bits de relleno
-
Relleno significa agregar bits adicionales al mensaje original. Entonces, en MD5, el mensaje original se rellena de manera que su longitud en bits sea congruente con 448 módulo 512. El relleno se realiza de manera que el total de bits sea 64 menos siendo un múltiplo de 512 bits de longitud.
-
El relleno se realiza incluso si la longitud del mensaje original ya es congruente con 448 módulo 512. En los bits de relleno, el único primer bit es 1 y el resto de los bits son 0.
Paso 2: Agregar longitud
Después del relleno, se insertan 64 bits al final que se utilizan para registrar la longitud de la entrada original. Módulo 2 ^ 64. En este punto, el mensaje resultante tiene una longitud múltiplo de 512 bits.
Paso 3: inicializar el búfer MD
Se utiliza un búfer de cuatro palabras (A, B, C, D) para calcular los valores del resumen del mensaje. Aquí A, B, C, D son registros de 32 bits y se inicializan de la siguiente manera
Palabra A |
01 |
23 |
45 |
67 |
Palabra b |
89 |
Ab |
cd |
Ef |
Palabra C |
Fe |
dc |
ba |
98 |
Palabra D |
76 |
54 |
32 |
10 |
Paso 4: Procesar mensaje en bloque de 16 palabras
MD5 utiliza las funciones auxiliares que toman la entrada como tres números de 32 bits y producen una salida de 32 bits. Estas funciones utilizan operadores lógicos como OR, XOR, NOR.
F (X, Y, Z) |
XY v no (X) Z |
G (X, Y, Z) |
XZ v Y no (Z) |
H (X, Y, Z) |
X xor Y xor Z |
Yo (X, Y, Z) |
Y xor (X v no (Z)) |
El contenido de cuatro búferes se mezcla con la entrada usando este búfer auxiliar y se realizan 16 rondas usando 16 operaciones básicas.
Paso 5: Salida
Después de todo, las rondas han realizado el búfer A, B, C, D contiene la salida MD5 comenzando con el bit A más bajo y terminando con el bit D más alto.
Aplicaciones del cifrado MD5
Algunos de los usos del cifrado MD5 son:
-
Verificar si un instalador es fiable
-
Generar el hash de un archivo propio, para que quien haga uso de él pueda comprobar su integridad.
-
Comprobar que un texto no ha sido modificado a la hora de enviárselo a otra persona y pueda llegar de forma distinta al original.
-
Comprobar si un archivo se descargo completamente, esto puede ser útil si deseamos instalar un firmware.
Referencias
Samal, Suraj. (2018, 22 de diciembre). Generador Hash MD5 / SHA-1 con escalones. Disponible en: https://cse.unl.edu/~ssamal/crypto/genhash.php
Martínez, I., 2019. Qué Es MD5, Cómo Funciona Y Para Qué Se Usa. [online] Rootear. Disponible en: https://rootear.com/seguridad/md5-como-funciona-usos
Nerion.es. 2020. Algoritmo MD5 - ¿Para Qué Se Puede Utilizar?. [online] Disponible en: https://www.nerion.es/blog/cifrado-md5/
Algorithm, M., 2020. MD5 Algorithm | Know Working And Uses Of MD5 Algorithm. [online] EDUCBA. Disponible en: https://www.educba.com/md5-alogrithm/