¿Qué es el algoritmo MD5?

MD5 es un algoritmo de función hash criptográfica que toma el mensaje como entrada de cualquier longitud y lo convierte en un mensaje de longitud fija de 16 bytes. El algoritmo MD5 representa el algoritmo de resumen de mensajes . MD5 se desarrolló como una mejora de MD4, con fines de seguridad avanzados. La salida de MD5 (tamaño de resumen) es siempre de 128 bits. MD5 fue desarrollado en 1991 por Ronald Rivest.

Uso del algoritmo MD5:

  • Se utiliza para la autenticación de archivos.
  • En una aplicación web, se utiliza con fines de seguridad. por ejemplo, contraseña segura de usuarios, etc.
  • Usando este algoritmo, podemos almacenar nuestra contraseña en formato de 128 bits. 
Algoritmo MD5

Algoritmo MD5

Funcionamiento del algoritmo MD5:

El algoritmo MD5 sigue los siguientes pasos 

1. Agregar bits de relleno: en el primer paso, agregamos bits de relleno en el mensaje original de tal manera que la longitud total del mensaje sea 64 bits menos que el múltiplo exacto de 512.  

Supongamos que nos dan un mensaje de 1000 bits. Ahora tenemos que agregar bits de relleno al mensaje original. Aquí agregaremos 472 bits de relleno al mensaje original. Después de agregar los bits de relleno, el tamaño del mensaje/salida original del primer paso será 1472, es decir, 64 bits menos que un múltiplo exacto de 512 (es decir, 512*3 = 1536).
Longitud (mensaje original + bits de relleno) = 512 * i – 64 donde i = 1,2,3. . . 
 

2. Agregar bits de longitud: en este paso, agregamos el bit de longitud en la salida del primer paso de tal manera que el número total de bits sea el múltiplo perfecto de 512. Simplemente, aquí agregamos el bit de 64 como un bit de longitud en la salida del primer paso. 
es decir, salida del primer paso = 512 * n – 64 
bits de longitud = 64. 
Después de sumar ambos obtendremos 512 * n, es decir, el múltiplo exacto de 512.
 

3. Inicialice el búfer MD: Aquí, usamos los 4 búferes, es decir, J, K, L y M. El tamaño de cada búfer es de 32 bits.  

    - J = 0x67425301
    - K = 0xEDFCBA45
    - L = 0x98CBADFE
    - M = 0x13DCE476

4. Procesar cada bloque de 512 bits: este es el paso más importante del algoritmo MD5. Aquí, se realizan un total de 64 operaciones en 4 rondas. En la 1ra ronda se realizarán 16 operaciones, en la 2da ronda se realizarán 16 operaciones, en la 3ra ronda se realizarán 16 operaciones, y en la 4ta ronda se realizarán 16 operaciones. Aplicamos una función diferente en cada ronda, es decir, para la primera ronda aplicamos la función F, para la segunda función G, la tercera para la función H y la cuarta para la función I. 
Realizamos OR, AND, XOR y NOT (básicamente, estas son puertas lógicas) para calcular funciones. Usamos 3 buffers para cada función, es decir, K, L, M.

     - F(K,L,M) = (K AND L) OR (NOT K  AND M)
     - G(K,L,M) = (K AND L) OR (L AND NOT M)
     - H(K,L,M) = K XOR L XOR M
     - I(K,L,M) = L XOR (K OR NOT M)

Después de aplicar la función ahora realizamos una operación en cada bloque. Para realizar operaciones necesitamos 

  • añadir módulo 2 32
  • M[i] – mensaje de 32 bits.
  • K[i] – constante de 32 bits.
  • <<<n – Desplazamiento a la izquierda por n bits.

Ahora tome la entrada como el búfer MD de inicialización, es decir, J, K, L, M. La salida de K se alimentará en L, L se alimentará en M y M se alimentará en J. Después de hacer esto, ahora realizamos algunas operaciones para encontrar la salida para J.

  • En el primer paso, se toman las salidas de K, L y M y luego se les aplica la función F. Agregaremos módulo 2 de 32   bits para la salida de este con J.
  • En un segundo paso, agregamos el mensaje de bit M[i] con la salida del primer paso.
  • Luego agregue una constante de 32 bits, es decir, K[i], a la salida del segundo paso. 
  • Por último, hacemos la operación de desplazamiento a la izquierda por n (puede ser cualquier valor de n) y el módulo de adición por 2 32 .

Después de todos los pasos, el resultado de J se introducirá en K. Ahora se utilizarán los mismos pasos para todas las funciones G, H e I. Después de realizar las 64 operaciones, obtendremos el resumen de nuestro mensaje.

Producción:

Después de que se hayan realizado las rondas, el búfer J, K, L y M contiene la salida MD5 que comienza con el bit inferior J y termina con los bits superiores M.

Aplicación del algoritmo MD5:

  • Usamos resumen de mensajes para verificar la integridad de los archivos/autenticar archivos.
  • MD5 se utilizó para la seguridad y el cifrado de datos.
  • Se utiliza para digerir el mensaje de cualquier tamaño y también se utiliza para la verificación de contraseña.
  • Para tableros de juego y gráficos.

Ventajas del algoritmo MD5:

  • MD5 es más rápido y fácil de entender.
  • El algoritmo MD5 genera una contraseña segura en formato de 16 bytes. Todos los desarrolladores, como los desarrolladores web, etc., utilizan el algoritmo MD5 para proteger la contraseña de los usuarios. 
  • Para integrar el algoritmo MD5, se necesita una memoria relativamente baja. 
  • Es muy fácil y rápido generar un mensaje de resumen del mensaje original.

Desventajas del algoritmo MD5:

  • MD5 genera la misma función hash para diferentes entradas. 
  • MD5 proporciona poca seguridad sobre SHA1 .
  • MD5 ha sido considerado un algoritmo inseguro. Entonces ahora estamos usando SHA256 en lugar de MD5  
  • MD5 no es un algoritmo simétrico ni asimétrico.

Publicación traducida automáticamente

Artículo escrito por sachinkumar04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *