Specifically, there's a 1-in-2^128 chance that any 128-bit input will give itself as the output. Over 2^128 trials the chance that no input answers itself would be:
(1-(2^-128))^(2^128)
...which mAlphaMatica helpfully calculates as...http://www.wolframalpha.com/input/?i=(1-2^-128)^(2^128)
0.367879441171442321595523770
That is, there's about a 63% chance Kember's quest to find an input whose MD5 output is itself will succeed.Or, is there something in MD5's construction making this impossible, making the random-oracle model inapplicable?
(Incidentally, Maple choked when I plugged in (1-2^-128)^(2^128), because it tried to evaluate it as a rational number, the numerator and denominator of which would have well over 2^128 digits.)
The speed with which it can be found: I'm going to wave my hands and claim this is in "Analytic Combinatorics" by Flajolet and Sedgewick. Seriously, though, under the assumptions we've been throwing around here this is a "random mapping" and these are reasonably well-studied objects.
This still doesn't change the huge-normousness of the task, though.