Introducción al algoritmo MD5

Antes de aprender el Algoritmo MD5, es muy importante comprender qué es la criptografía y cómo entró en escena el Algoritmo MD5. En términos simples, la criptografía es una práctica y estudio de técnicas que se utilizan para convertir un texto sin formato en texto ininteligible que solo puede ser entendido por el receptor. Por razones de seguridad, es muy importante encriptar los datos y enviarlos y almacenarlos en un formato particular para que no se puedan filtrar y, por lo tanto, no se usen mal. MD5 es uno de los algoritmos que se utiliza para codificar los datos. Hay tantos algoritmos desarrollados para la transmisión y el almacenamiento seguros de datos que tienen sus propios pros y contras. Estos algoritmos no solo protegen los datos del robo, sino que también proporcionan autenticación de usuario.

Ahora aprendiendo en profundidad sobre el algoritmo MD5, MD5 significa el algoritmo 5 de Message Digest, que es una de las funciones hash criptográficas ampliamente utilizadas que acepta la entrada de longitud arbitraria y produce una salida de valor hash fijo de 128 bits. Se utiliza en una amplia variedad de aplicaciones de seguridad. MD5 es una versión avanzada de MD4 que fue desarrollada por el profesor Ronald Rivest de MIT. MD5 fue desarrollado como un algoritmo criptográfico fuerte para ser utilizado en la autenticación de firmas digitales (un código digital que se adjunta con un documento electrónico para verificar su contenido e identidad de género).

Uso del algoritmo MD5

El algoritmo MD5 se desarrolló con el motivo principal de seguridad, ya que toma una entrada de cualquier tamaño y produce una salida si se trata de un valor hash de 128 bits. Para ser considerado criptográficamente seguro, MD5 debe cumplir dos requisitos:

  1. Es imposible generar dos entradas que no puedan producir la misma función hash.
  2. Es imposible generar un mensaje que tenga el mismo valor hash.

Inicialmente, MD5 se desarrolló para almacenar un hash unidireccional de una contraseña y algunos servidores de archivos también proporcionan la suma de comprobación MD5 precalculada de un archivo para que el usuario pueda comparar la suma de comprobación del archivo descargado. La mayoría de los sistemas operativos basados ​​en Unix incluyen utilidades de suma de comprobación MD5 en sus paquetes de distribución.

¿Cómo funciona el algoritmo MD5?

Como todos sabemos, MD5 produce una salida de valor hash de 128 bits. Este cifrado de la entrada de cualquier tamaño en valores hash se somete a 5 pasos y cada paso tiene una tarea predefinida.

Paso 1: agregar bits de relleno

  • El relleno significa agregar bits adicionales al mensaje original. Por lo tanto, en MD5, el mensaje original se rellena de modo que su longitud en bits sea congruente con 448 módulo 512. El relleno se realiza de modo que los bits totales sean 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 en el extremo que se usa 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 de MD

Se utiliza un búfer de cuatro palabras (A, B, C, D) para calcular los valores para el resumen del mensaje. Aquí A, B, C, D son registros de 32 bits y se inicializan de la siguiente manera

Palabra A01234567
Palabra b89AbDiscos compactosEf
Palabra cFeCorriente continuaLicenciado en Letras98
Palabra d76543210

Paso 4: Procesando el mensaje en un bloque de 16 palabras

MD5 utiliza las funciones auxiliares que toman la entrada como tres números de 32 bits y produce 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
I (X, Y, Z)Y xor (X v no (Z))

El contenido de cuatro buffers se mezcla con la entrada usando este buffer auxiliar y se realizan 16 rondas usando 16 operaciones básicas.

Salida-

Después de todo, las rondas han realizado el buffer A, B, C, D que contiene la salida MD5 que comienza con el bit A más bajo y termina con el bit D más alto.

Ejemplo:

Entrada: este es un artículo sobre el algoritmo de criptografía
Salida: e4d909c290dfb1ca068ffaddd22cbb0

Ventajas y desventajas del algoritmo MD5:

  • Los algoritmos MD5 son útiles porque es más fácil comparar y almacenar estos hashes más pequeños que almacenar un texto grande de longitud variable. El algoritmo MD5 es un algoritmo ampliamente utilizado para los hashes unidireccionales que se utilizan para verificar sin dar necesariamente el valor original. Algoritmo MD5 es utilizado por los sistemas Unix para almacenar las contraseñas del usuario en un formato cifrado de 128 bits. Los algoritmos MD5 se usan ampliamente para verificar la integridad de los archivos.
  • Además, es muy fácil generar un resumen de mensaje del mensaje original usando este algoritmo. El algoritmo MD5 puede realizar el resumen de mensaje de un mensaje que tenga cualquier número de bits, no se limita al mensaje en los múltiplos de 8, a diferencia de MD5sum que está limitado a octetos.
  • Pero desde hace muchos años, MD5 es propenso a la debilidad de colisión de hash, es decir, es posible crear la misma función de hash para dos entradas diferentes. MD5 no proporciona seguridad sobre estos ataques de colisión. En lugar de MD5, SHA (algoritmo de hash seguro, que produce un resumen de mensaje de 160 bits y diseñado por NSA para ser parte del algoritmo de firma digital) ahora es aceptable en el campo criptográfico para generar la función hash, ya que no es fácil producir SHA -I colisión y hasta ahora no se ha producido una colisión todavía.
  • Además, el algoritmo MD5 es bastante lento que el algoritmo SHA optimizado. SHA es mucho más seguro que el algoritmo MD5 y, además, se puede implementar en la tecnología existente con velocidades superiores, a diferencia de MD5. Hoy en día, nuevos algoritmos de hash están surgiendo en el mercado teniendo en cuenta una mayor seguridad de los datos como SHA256 (que genera la firma de 256 bits de un texto).

Conclusión

Hoy en día, con el almacenamiento de todos los datos en la nube e Internet, es muy importante mantener la seguridad de esos datos con la máxima prioridad. Se debe adoptar el algoritmo más seguro para cifrar datos privados. Estudios recientes muestran que el algoritmo SHA debe tener una importancia primordial sobre MD5 ya que MD5 es más vulnerable a los ataques de colisión. Aunque los investigadores proponen nuevos algoritmos que son seguros y menos vulnerables a ataques como SHA256.

Artículos recomendados

Esta ha sido una guía para el algoritmo MD5. Aquí discutimos la introducción, usos, trabajo, ventajas y desventajas del algoritmo MD5. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Algoritmo de cifrado
  2. ¿Qué es el descifrado?
  3. ¿Qué es la criptografía?
  4. Criptografía vs Cifrado