ArticleslgStudy

computer science

MD5CRK

MD5CRK is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand MD5CRK rather than just read about it. In short: In cryptography, MD5CRK was a volunteer computing 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.

MD5CRK — main illustration
MD5CRK — illustration

Key takeaways

  • MD5CRK belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect MD5CRK to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of MD5CRK from memory before moving on to harder problems.

Reference excerpt

In cryptography, MD5CRK was a volunteer computing 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 on August 24, 2004, after researchers independently demonstrated a technique for generating collisions in MD5 using analytical methods by Xiaoyun Wang, Feng, Xuejia Lai, and Yu. CertainKey awarded a 10,000 Canadian Dollar prize to Wang, Feng, Lai and Yu for their discovery.

A technique called Floyd's cycle-finding algorithm was used to try to 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 2 N {\displaystyle 2^{N}} where N {\displaystyle N} is the number of bits in the digest output. It is in fact 2 N ! ( 2 N − K ) ! × 2 N K {\displaystyle 2^{N}! \over {(2^{N}-K)!\times {2^{N}}^{K}}} , where K {\displaystyle K} is the number of function outputs collected. For this project, the probability of success after K {\displaystyle K} MD5 computations can be approximated by: 1 1 − e K × ( 1 − K ) 2 N + 1 {\displaystyle 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 × 2 N / 2 = 1.17741 × 2 64 {\displaystyle {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 maximum performance of 12.25 Teraflops, it would take approximately 2.17 × 10 19 / 12.25 × 10 12 ≈ 1 , 770 , 000 {\displaystyle {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 List of volunteer computing projects Brute force attack

References

Further reading Paul C. van Oorschot; Michael J. Wiener. Parallel Collision Search with Application to Hash Functions and Discrete Logarithms (PDF). ACM Conference on Computer and Communications Security 1994. pp. 210–218.

Illustrations

MD5CRK: Pollard's Rho collision search for a single path
Pollard's Rho collision search for a single path

Worked examples

Example 1 — a first encounter with MD5CRK

Start with the simplest possible case. Write down what MD5CRK claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to MD5CRK before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about MD5CRK ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of MD5CRK

In research
MD5CRK appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses MD5CRK in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
MD5CRK is common in secondary-school and first-year university syllabi. It links to neighbouring topics Cryptographic attacks, Volunteer computing projects, so understanding it makes those chapters shorter.
In everyday life
Look for MD5CRK outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “MD5CRK” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study MD5CRK in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what MD5CRK means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain MD5CRK out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is MD5CRK in simple terms?

In cryptography, MD5CRK was a volunteer computing 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 proj…

Why does MD5CRK matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study MD5CRK?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on MD5CRK.

Tags

  • Cryptographic attacks
  • Volunteer computing projects

Keep exploring