MD5 is a message digest algorithm. MD5 takes a variable length input and produces a 128-bit message digest.
MD5 was designed by Ron Rivest in 1991.
MD5 is officially defined in RFC 1321 – The MD5 Message-Digest Algorithm.
Software Implementations of MD5
The Difficulty of a Brute Force Attack Against MD5
The difficulty of creating two files with the same MD5 hash should be approximately 2^64. The difficulty of creating a file with a specific MD5 hash should be approximately 2^128.
This means that to replace a file with another file having the same MD5 hash using a brute force attack, you might have to make 340,282,366,920,938,463,463,374,607,431,768,211,456 attempts.
MD5’s Predecessors: MD2 and MD4
MD2 and MD4 were earlier algorithms in the RSA Message Digest family. MD2 and MD4 are both currently considered obsolete. Neither have been completely broken, but both have been shown to be potentially weak.
Cryptanalysis of MD5
Cryptanalysis of MD5 continues to be a popular topic among cryptologists.
- Cryptanalysis of MD5 Compress
- Collisions for the Compression Function of MD5
- Parallel Collision Search with Cryptanalytic Applications
MD5CRK is a distributed computing project with the goal of demonstrating that the MD5 message digest algorithm is no longer appropriate for cryptographic applications such as checksums and digital signatures.