MD5

El algoritmo de hash MD5 es una función criptográfica unidireccional que acepta un mensaje de cualquier longitud como entrada y devuelve como salida un valor de resumen de longitud fija que se utilizará para autenticar el mensaje original.

La función hash MD5 fue diseñada originalmente para su uso como algoritmo hash criptográfico seguro para autenticar firmas digitales. MD5 ha quedado obsoleto para usos distintos de una suma de comprobación no criptográfica para verificar la integridad de los datos y detectar daños involuntarios en los datos.

Aunque originalmente se diseñó como un algoritmo de código de autenticación de mensajes criptográficos para su uso en Internet, el hash MD5 ya no se considera confiable para su uso como suma de comprobación criptográfica porque los investigadores han demostrado técnicas capaces de generar fácilmente colisiones MD5 en computadoras comerciales listas para usar.

Ronald Rivest, fundador de RSA Data Security y profesor de instituto en el MIT, diseñó MD5 como una mejora de un algoritmo de resumen de mensajes anterior, MD4. Describiéndolo en el Grupo de Trabajo de Ingeniería de Internet RFC 1321,» El Algoritmo de Resumen de Mensajes MD5″, escribió:

El algoritmo toma como entrada un mensaje de longitud arbitraria y produce como salida una ‘huella digital’ o ‘resumen de mensaje’ de 128 bits de la entrada. Se conjetura que es computacionalmente inviable producir dos mensajes que tengan el mismo resumen de mensaje, o producir cualquier mensaje que tenga un resumen de mensaje de destino especificado previamente. El algoritmo MD5 está diseñado para aplicaciones de firma digital, en las que un archivo grande debe «comprimirse» de manera segura antes de cifrarse con una clave privada (secreta) bajo un criptosistema de clave pública como RSA.

El IETF sugiere que el hash MD5 todavía se puede usar para la protección de la integridad, señalando que «Cuando la suma de comprobación MD5 se usa en línea con el protocolo únicamente para proteger contra errores, una suma de comprobación MD5 sigue siendo un uso aceptable. Sin embargo, agregó que «cualquier aplicación y protocolo que emplee MD5 para cualquier propósito debe indicar claramente los servicios de seguridad esperados de su uso de MD5.»

Función hash MD5

Características del algoritmo de resumen de mensajes

Los resúmenes de mensajes, también conocidos como funciones hash, son funciones unidireccionales; aceptan un mensaje de cualquier tamaño como entrada, y producir como salida un resumen de mensaje de longitud fija.

MD5 es el tercer algoritmo de resumen de mensajes creado por Rivest. Las tres (las otras son MD2 y MD4) tienen estructuras similares, pero MD2 fue optimizado para máquinas de 8 bits, en comparación con las dos fórmulas posteriores, que están optimizadas para máquinas de 32 bits. El algoritmo MD5 es una extensión de MD4, que la revisión crítica encontró que era rápido, pero posiblemente no absolutamente seguro. En comparación, MD5 no es tan rápido como el algoritmo MD4, pero ofrece mucha más seguridad de los datos.

Cómo funciona MD5

El algoritmo de hash de resumen de mensajes MD5 procesa los datos en bloques de 512 bits, divididos en 16 palabras compuestas de 32 bits cada una. La salida de MD5 es un valor de resumen de mensaje de 128 bits.

El cálculo del valor de compendio MD5 se realiza en etapas separadas que procesan cada bloque de datos de 512 bits junto con el valor calculado en la etapa anterior. La primera etapa comienza con los valores del resumen del mensaje inicializados utilizando valores numéricos hexadecimales consecutivos. Cada etapa incluye cuatro pases de resumen de mensajes que manipulan los valores en el bloque de datos actual y los valores procesados desde el bloque anterior. El valor final calculado a partir del último bloque se convierte en el resumen MD5 de ese bloque.

MD5 security

El objetivo de cualquier función de resumen de mensajes es producir resúmenes que parezcan aleatorios. Para ser considerada criptográficamente segura, la función hash debe cumplir dos requisitos: primero, que sea imposible para un atacante generar un mensaje que coincida con un valor hash específico; y segundo, que sea imposible para un atacante crear dos mensajes que produzcan el mismo valor hash.

Los hashes MD5 ya no se consideran criptográficamente seguros y no se deben usar para la autenticación criptográfica.

En 2011, el IETF publicó RFC 6151, «Consideraciones de seguridad actualizadas para el Resumen de mensajes MD5 y los Algoritmos HMAC-MD5», que citó una serie de ataques recientes contra hashes MD5, especialmente uno que generó colisiones hash en un minuto o menos en un portátil estándar y otro que podría generar una colisión en tan solo 10 segundos en un sistema Pentium 4 de 2,66 GHz. Como resultado, la IETF sugirió que los nuevos diseños de protocolos no deberían usar MD5 en absoluto, y que los recientes ataques de investigación contra el algoritmo «han proporcionado razones suficientes para eliminar el uso de MD5 en aplicaciones donde se requiere resistencia a colisiones, como las firmas digitales.»

Deja una respuesta

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