Cryptography/MD5
MD5 is a popular Hash Function used by many people around the world. Developed by Professor Ronald L. Rivest of MIT
It has two purposes:
- Verify the integrity of a file after a specified period of time
- Generate Hash values for a certain piece of data ( Ex: file) and store them, for later cross checking if the file has been modified or not (this is in essence the 1st point stated above)
For example, on a system that has a file called "SAMPLE.TXT" the MD5 hash would look like this:
filename | hash value |
---|---|
C:\SAMPLE.TXT | BC8FEFECA210FC0C0F3EBC1614A37889 |
MD5 takes as input a message of arbitrary length and produces as output a 128- bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce any message having a given prespecified target message digest. The MD5 algorithm was intended for digital signature applications, where a large file must be "compressed" in a secure manner before being signed with a private (secret) key under a public-key cryptosystem such as RSA. However, practical attacks on the collision resistance of MD5 exist[1], and it should therefore not be used with digital signatures or any other application requiring collision resistance.
Exact technical information is described in RFC:1321 (as HTML).
References
edit- ↑ [1]Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger: MD5 considered harmful today - Creating a rogue CA certificate http://www.win.tue.nl/hashclash/rogue-ca/