¿Cómo realizar la verificación MD5?
El nombre completo de MD5 es Algoritmo de resumen de mensajes 5, que fue desarrollado por Ronald L. Rivest del Laboratorio de Ciencias de la Computación del MIT y RSA Data Security Company en la década de 1990. Originalmente desarrollado y evolucionado. MD2, MD3 y MD4. Su propósito es "comprimir" una gran cantidad de información en un formato confidencial (es decir, convertir una cadena de bytes de cualquier longitud en un número entero grande de cierta longitud) antes de utilizar el software de firma digital para firmar la clave privada. Ya sea MD2, MD4 o MD5, todos toman un mensaje de longitud aleatoria y producen un resumen de mensaje de 128 bits. Aunque las estructuras de estos algoritmos son muy similares, el diseño de MD2 es completamente diferente de MD4 y MD5 porque MD2 está optimizado para máquinas de 8 bits, mientras que MD4 y MD5 están destinados a máquinas de 32 bits. Internet RFC 1321 (http://www.ietf.org/rfc/rfc1321.txt), que describe estos tres algoritmos en detalle y proporciona el código fuente en C, es el documento más autorizado sobre este tema y fue escrito por Ronald L. Rivest. en Presentado al IEFT en agosto de 1992.
Rivest desarrolló el algoritmo MD2 en 1989. En este algoritmo, la información primero se rellena con datos de modo que la longitud en bytes de la información sea múltiplo de 16. Luego se agrega una suma de verificación de 16 bits al final del mensaje. Luego se calcula un valor hash en función de la información recién generada. Más tarde, Rogier y Chauvaud descubrieron que omitir la suma de comprobación provocaba conflictos MD2. El resultado del cifrado del algoritmo MD2 es único y no tiene duplicaciones.
Para mejorar la seguridad del algoritmo, Rivest desarrolló el algoritmo MD4 en 1990. Este algoritmo también requiere completar información para garantizar que la longitud en bytes de la información pueda ser divisible uniformemente por 512 después de sumar 448. (la palabra de información Longitud de la sección mod 512 = 448). Luego agregue la longitud inicial del mensaje binario de 64 bits. La información se procesa en bloques de 512 bits de iteraciones Damgörd/Merkle, y cada bloque se procesa en tres pasos distintos. Den Boer, Bosselaers y otros descubrieron rápidamente vulnerabilidades que atacaban el primer y tercer paso de la versión MD4. Dobbertin mostró al grupo cómo usar una PC normal para encontrar una versión completa de MD4 en cuestión de minutos (el conflicto era en realidad una vulnerabilidad que podía cifrar contenido diferente pero obtener el mismo resultado de cifrado). No hay duda de que MD4 está obsoleto.
Aunque el algoritmo MD4 tiene vulnerabilidades de seguridad, ha generado una variedad de algoritmos de cifrado de seguridad de la información posteriores. Además del algoritmo MD5, existen algunos algoritmos más conocidos como SHA-1, RIPE-MD y HAVAL.
Un año después, en 1991, Rivest desarrolló el algoritmo MD5, técnicamente más maduro. Añade el concepto de "cinturón de seguridad" basado en MD4. Aunque MD5 es ligeramente más lento que MD4, es más seguro. El algoritmo aparentemente consta de cuatro pasos y está diseñado de forma ligeramente diferente al MD4. En MD5, donde el tamaño del resumen del mensaje y los requisitos de relleno son exactamente los mismos que en MD4, Den Boer y Bosselaers encontraron colisiones espurias en MD5 pero, por lo demás, no encontraron otros resultados posteriores al cifrado.
Van Oorschot y Wiener consideraron el uso de funciones hash de fuerza bruta para buscar colisiones en hashes, y especularon que una máquina diseñada específicamente para buscar colisiones MD5 (cuya construcción costó alrededor de 1 millón de dólares en 1994) En promedio, se detecta una colisión cada 24 días.
Sin embargo, en los 10 años transcurridos entre 1991 y 2001, el algoritmo MD5 no ha sido reemplazado y MD6 no sabe cuál es su nombre. Este hecho en sí muestra que esta falla no tuvo mucho impacto en la seguridad de MD5. Ninguno de los anteriores es lo suficientemente grave como para ser un problema real con MD5. Además, dado que el uso del algoritmo MD5 no requiere el pago de regalías, en casos generales (aplicaciones que no son de alto secreto) esto no es un problema. Pero incluso en aplicaciones ultrasecretas, MD5 es una excelente tecnología intermedia y MD5 debe considerarse muy segura.