Generating Fast MD5 Collisions With ATI Video Cards
An anonymous reader writes "Yesterday at Black Hat USA 2009, a talk entitled
MD5 Chosen-Prefix Collisions on GPUs
(whitepaper) (Both PDFs)
presented an implementation written in assembly language for ATI video cards that achieves
1.6 billion MD5 hash/sec, or 2.2 billion MD5 hash/sec with reversing,
on an ATI Radeon HD 4850 X2. This is faster than the much-publicized 1.4-1.9 billion hash/sec figure that was
supposedly reached on a PlayStation 3 by Nick Breese at Black Hat Europe 2008 (he
later noticed an error in his benchmarking tool). Compared to the cluster of 215 PlayStation 3s that was used to
create a rogue CA in December 2008,
Marc Bevand claimed a cluster of 12 machines with 24 video cards would be
a bit faster, consume 5 times less power, and be 10 times cheaper."
Generated with the help of an ATI card, I assume.
Slow collisions don't do much damage, but the fast ones can leave an awful scene. At least they're being honest and calling them collisions instead of "accidents". Er, wait, was the headline supposed to read "Generating MD5 Collisions Quickly with ATI Video Cards"?
Yes, 1.6 billion/sec is much faster than 1.9 billion/sec.
If all you want is a signed SSL certificate, I suspect it would be easier to bribe an employee at a CA to skip a few steps when validating you.
Somewhat off-topic, but I guess related all the same...
Nobody should use MD5 for authentication and whatnot... and even as a 'checksum' of sorts you have to be careful (i.e. make sure that the source of the MD5 text/file isn't the very same source as the file it was generated for, as a compromised file probably means the MD5 string would be equally compromised).
But I'm curious.. are any of the attacks capable of injecting new data that..
1. doesn't affect filesize - the wiki mentions that successful attacks can prepend and append, but presuming you'd include the file size with the MD5 string, that would be another parameter to check
2. actually does something.. be it useful or nefarious, rather than just crash the app or insert gibberish in a text document, etc.
e.g. if I took the declaration of independence as a .txt file, are there any attacks that could subtly, or non-subtly, change the wording without increasing or decreasing the size of the file, and still match an original MD5?
--
On-topic: cool; but not particularly new? Most everybody knows that GPUs are great at taking in a tiny bit of data, crunching it, and spitting a result back out. Kudos for actually writing optimized code for the given platform (in this case an AMD/ATi GPU), but it's still the same number crunching instead of an improved method.. correct?
Aren't there already a bunch of tools to do this whit nvidia cards (I remember using one).
There supposed to be faster, right ?
...consume 5 times less power, and be 10 times cheaper
*sigh*
In one machine? Really?
or 2.2 billion MD5 hash/sec with reversing
Keep in mind I have completely no idea what "reversing" means.
consume 5 times less power, and be 10 times cheaper
Actually I'm more concerned about the rise of the eco-cracker. The "green cracker" who wants to have a low carbon footprint and crack into your bank account inexpensively.
Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
So who has been saying all along that GPU compute on ATI cards just isn't up to snuff? I doubt that they picked out an ATI video card to use because it was too difficult, or the programming tools too immature, or the programming interface documentation too incomplete or secret, to provide an effective demonstration? I would expect rather the opposite to be true and that GPU compute on ATI cards already works well and will only get better over time.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
if I took the declaration of independence as a .txt file, are there any attacks that could subtly, or non-subtly, change the wording without increasing or decreasing the size of the file
Just add politicians and wait...
This issue is a bit more complicated than you think.
I am currently interested in collisions in the 128 bit space of MD5 (just for fun). But I couldn't use the billions of hashes/sec, as the limiting factor is the hard drive (I have to compare all hashes to all others, since I am looking for _any_ collision). ;-)
Do not tell me how futile it is to find them. Probability calculations are welcome though
why stop here, put 4 ati 4850 X2 cards in each machine...
As someone who was once just as annoyed by this nonsensical statement, let me give you some advice: Let it go.
...
People are able to grasp the meaning of the statement, and it's in use by so many people now that I've stopped trying to fight it. After trying to explain so many times why "X times less" is wrong, I've given up. I suggest you do, too.
"Enthused" still annoys me, though.
And "I could care less" pisses me off to no end.
It means going backwards, or turning something around.
Random Thoughts From A Diseased Mind (Not For Dummies)
It would be very interesting to see if this class of algorithm ports easily to OpenCL - the GPGPU technology built into the upcoming 10.6 version of Mac OS X:
http://www.apple.com/macosx/technology/#opencl
If so, this kind of attack suddenly becomes very easy to gather the compute power for and a lot easier to code as you don't need to do the low-level stuff yourself.
Specialist Mac support for creative pros, Melbourne
The numbers don't add up no matter how I turn them. He claims to be getting 14% more performance from each graphics card than from each PS3. That means he need 12 machines with 24 graphics cards each to match the speed of a 215 node PS3 cluster. So because he get 14% more performance per node, he only need 34% more nodes to achieve the same performance. That does just not make sense to me. The 24 graphics cards in each machine also sounds unlikely. Maybe it was 24 in total, so 2 per machine. In that case 14% more performance per node means he need 89% fewer nodes. That does not make sense either. So, how are the numbers supposed to be interpreted?
I don't understand why anybody still finds it newsworthy when somebody come up with faster collision attacks against MD5. We already know, that collisions can be generated for MD5, and they can be generated fast enough, that we have to worry about it. It no longer matters exactly how fast they can be generated. If somebody managed to come up with a practical second preimage attack against MD5, then it would be newsworthy.
Do you care about the security of your wireless mouse?
Why is this news? This is worse than distributed.net brute forcing 56bit keys. Yes MD5 is crap, we don't need an example of everytime someone hooks up some new processors to break it.
The numbers don't add up no matter how I turn them. He claims to be getting 14% more performance from each graphics card than from each PS3.
No. He didn't say that.
The performance difference was the cluster of 12 pc's with 24 cards, to the cluster of 215 PS3's
So, how are the numbers supposed to be interpreted?
Why are you interpreting them? They seem pretty clear as written.
I don't understand why anybody still finds it newsworthy when somebody come up with faster collision attacks against MD5.
It was newsworthy in January when it was first presented to the CA's.
It's newsworthy now because it's a significant per processor performance increase.
If you had read the article and not interjected your flawed interpretation, that would be obvious.
We already know, that collisions can be generated for MD5, and they can be generated fast enough, that we have to worry about it. It no longer matters exactly how fast they can be generated. If somebody managed to come up with a practical second preimage attack against MD5, then it would be newsworthy.
It's newsworthy due to the application to certain mathematical processes.
No one said this was "zomg - the internet is falling."
Huh, so that's who bought all those PS3s.
"These people look deep within my soul and assign me a number based on the order in which I joined" --Homer re:
The slashdot summary says that. In the actual slides he claim that the PS3 code is about 20 times slower than the people who wrote it said, and that a single graphics card can achieve the same as 20 PS3s.
What was newsworthy at the time was mostly, that CAs and browsers were still using a flawed algorithm. As far as I know, most browsers will still accept MD5 signatures. There wasn't much news in the attack, it was well known that it would be possible. So really the news was just that the people responsible for the security of the web ignore known flaws until it has publicly been demonstrated that somebody is willing to spend time on actually performing the attack without making a profit from it. Thus the news was about IT security, but it was not news about cryptography.
Assuming the factor of 1.14 from the slashdot summary is incorrect, and the factor of 20 from the slides is correct, then the increase is enough to be newsworthy. In that case the news is, that graphics cards hold an enormous amount of unused processing power. That's interesting news, but doesn't really have anything to do with security.
It's not my interpretation, it is taken directly from the slashdot summary.
Do you care about the security of your wireless mouse?
Back when CPUs didn't include an FPU (aka mathematical co-processor) by default, there used to be different choices by different chipmakers. ... ehm ... secury experiments :-)
It'd be interesting to have a modern days mathematical monster installed in every PC for a number of different tasks, from 3D rendering to
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
The slashdot summary says that. In the actual slides he claim that the PS3 code is about 20 times slower than the people who wrote it said, and that a single graphics card can achieve the same as 20 PS3s.
12 PCs with 24 graphics cards reach about the same amount of MD5 collisions as 215 PS3's do. I think that comes fairly close, yes.
I am not devoid of humor.