Chemistry Reference and  Research
           
 
Periodic Table
- standard table
- large table
 
Chemical Elements
- by name
- by symbol
- by atomic number
 
Chemical Properties
 
Chemical Reactions
 
Organic Chemistry
 
Branches of Chemistry
Analytical chemistry
Biochemistry
Computational Chemistry
Electrochemistry
Environmental chemistry
Geochemistry
Inorganic chemistry
Materials science
Medicinal chemistry
Nuclear chemistry
Organic chemistry
Pharmacology
Physical chemistry
Polymer chemistry
Supramolecular Chemistry
Thermochemistry

MD5CRK

In cryptography, MD5CRK was a distributed effort (similar to distributed.net) launched by Jean-Luc Cooke and his company, CertainKey Cryptosystems, to demonstrate that the MD5 message digest algorithm is insecure by finding a collision — two messages that produce the same MD5 hash. The project went live on March 1, 2004. The project ended in August 2004 after a collision for MD5 was discovered using analytical methods.


A technique called Pollard's rho algorithm (a cycle detection algorithm) was used to try and find a collision for MD5. The algorithm can be described by analogy with a random walk. Using the principle that any function with a finite number of possible outputs placed in a feedback loop will cycle, one can use a relatively small amount of memory to store outputs with particular structures and use them as "markers" to better detect when a marker has been "passed" before. These markers are called distinguished points, the point where two inputs produce the same output is called a collision point. MD5CRK considered any point whose first 32 bits were zeroes to be a distinguished point.

Complexity

The expected time to find a collision is not equal to 2N where N is the number of bits in the digest output. It is in fact 2^N! \over {(2^N - K)! \times {2^N}^K}, where K is the number of function outputs collected.

For this project, the probability of success after K MD5 computations can be approximated by: 1 \over { 1 - e^{K \times (1-K) \over 2^{N+1} } }.

The expected number of computations required to produce a collision in the 128-bit MD5 message digest function is thus: {1.17741 \times 2^{N/2}} = {1.17741 \times 2^{64}}

To give some perspective to this, using Virginia Tech's System X with a max performance of 12.25 Teraflops, it would take approximately {2.17 \times 10^{19} / 12.25 \times 10^{12} \approx 1,770,000} seconds or about 3 weeks. Or for commodity processors at 2 gigaflops it would take 6,000 machines approximately the same amount of time.

See also

References

  • Paul C. van Oorschot, Michael J. Wiener: Parallel Collision Search with Application to Hash Functions and Discrete Logarithms. ACM Conference on Computer and Communications Security 1994: pp210–218 Online version (PDF format).
01-04-2007 01:16:19
The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License. How to see transparent copy