Minty
08-13-2004, 03:53 PM
Figured this out yesterday, but thought I'd wait until Friday 13th to spill! Hopefully I've made a mistake in the maths somewhere that someone can point out, although much of this is just running through the website stuff ;).
There are 2^128 (3.4x10^38) possible MD5 values, and by the Birthday attack probability of collision approximation 2.16x10^19 outputs are needed before a collision is likely. Using a distinguished point identification method (similar points) the amount of data needed is 4.29x10^9 less i.e. (2.16x10^19 / 4.29x10^9) = 5.03x10^9 DPs needed. That's more than 5,000,000,000 DPs necessary to crack MD5, and we haven't even reached 10,000,000 yet!
Graphically, even if we take a number of digests with a probability of 0.4 of a collision (2^64) we find that -
2^64 (digests to collision) / 4.294x10^9 (digests per DP) = 4296 million DPs needed (reasonably close to 5000 million as above).
4296 million DPs / 100,000 DPs per day / 365 days a year = 117.7 years! And that's not even a realistic estimate bearing in mind 100,000 DPs a day is an over estimate and a probability of 0.4 is poor (Murphy's Law!).
A more accurate figure would probably be around 235 years :shocked: (and that's 0.85 probability and still 100,000 DPs per day!) Using today's rate for D.Net they'll only take 880 years to check all the keyspace! (what's a few hundred years between friends?!) :rotfl:
I was wondering if someone could pass comment on the figures - I'm right aren't I? Maybe jlcooke could help out on the clarification of things?
There are 2^128 (3.4x10^38) possible MD5 values, and by the Birthday attack probability of collision approximation 2.16x10^19 outputs are needed before a collision is likely. Using a distinguished point identification method (similar points) the amount of data needed is 4.29x10^9 less i.e. (2.16x10^19 / 4.29x10^9) = 5.03x10^9 DPs needed. That's more than 5,000,000,000 DPs necessary to crack MD5, and we haven't even reached 10,000,000 yet!
Graphically, even if we take a number of digests with a probability of 0.4 of a collision (2^64) we find that -
2^64 (digests to collision) / 4.294x10^9 (digests per DP) = 4296 million DPs needed (reasonably close to 5000 million as above).
4296 million DPs / 100,000 DPs per day / 365 days a year = 117.7 years! And that's not even a realistic estimate bearing in mind 100,000 DPs a day is an over estimate and a probability of 0.4 is poor (Murphy's Law!).
A more accurate figure would probably be around 235 years :shocked: (and that's 0.85 probability and still 100,000 DPs per day!) Using today's rate for D.Net they'll only take 880 years to check all the keyspace! (what's a few hundred years between friends?!) :rotfl:
I was wondering if someone could pass comment on the figures - I'm right aren't I? Maybe jlcooke could help out on the clarification of things?