*edit: more importantly, "Therefore the number of inputs that will map to any given md5 is infinity / 2**128" is incorrect. You're assuming even distribution from the domain to the range. This is not proven (otherwise given any consecutive set of (2**128)-1 elements, they'd cover the range of md5 minus one, and adding one more would cover the range entirely. Not yet proven to be true, and in fact quite unlikely). So division doesn't follow, thus while your conclusion is correct your path to get there isn't.*

I just noticed your edit.

I agree, that there is an implied (or should be) "on average" inserted into that statement.

However, even if the mapping of inputs to outputs is a less than even distribution, and the value "2**128" is less (it cannot be more), you still end up with a sum of `infinity / somenumber`, with the result that (on average) the number of (possible) messages that (would) map to any given md5, is infinity.

Examine what is said, not who speaks.

"Efficiency is intelligent laziness." -David Dunham

"Think for yourself!" - Abigail

"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon

Comment onRe^4: MD5 - what's the alternativeDownloadCode