Skip navigation.
 
mlRe: MD5 [was: [NSPipe pipe] returning nil (running out of filehandles?)]
FROM : Jens Alfke
DATE : Wed Apr 02 22:52:50 2008

On 2 Apr '08, at 9:12 AM, John Stiles wrote:

> And AFAIK nobody is even remotely close to finding a technique which 
> would let you write arbitrary data and then tack on a few bytes to 
> get the signature you want,


From the Wikipedia article:
Because MD5 makes only one pass over the data, if two prefixes with 
the same hash can be constructed, a common suffix can be added to both 
to make the collision more reasonable.
Because the current collision-finding techniques allow the preceding 
hash state to be specified arbitrarily, a collision can be found for 
any desired prefix; that is, for any given string of characters X, two 
colliding files can be determined which both begin with X.
All that is required to generate two colliding files is a template 
file, with a 128-byte block of data aligned on a 64-byte boundary, 
that can be changed freely by the collision-finding algorithm.
Recently, a number of projects have created MD5 "rainbow tables" which 
are easily accessible online, and can be used to reverse many MD5 
hashes into strings that collide with the original input, usually for 
the purposes of password cracking. However, if passwords are combined 
with asalt before the MD5 digest is generated, rainbow tables become 
much less useful.

> and that's what I'd call "fully broken," at least that's what you'd 
> need to find in order to make an exploit.


That depends on what the digest is being used for — different 
cryptographic protocols rely on different features of the underlying 
algorithms. In some circumstances simply finding any hash collision 
could be enough to break security. (Schneier's "Advanced Cryptography" 
has several examples where a seemingly irrelevant weakness in an 
underlying algorithm led to an attack on a higher level protocol that 
used it. I believe the sad case of WEP was one.)

—Jens

Related mailsAuthorDate
ml[NSPipe pipe] returning nil (running out of filehandles?) Martin Redington Apr 2, 01:19
ml[NSPipe pipe] returning nil (running out of filehandles?) Martin Redington Apr 2, 01:20
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jim Correia Apr 2, 01:33
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) stephen joseph but… Apr 2, 01:36
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jean-Daniel Dupas Apr 2, 01:46
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Martin Redington Apr 2, 01:53
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) John Stiles Apr 2, 01:55
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Martin Redington Apr 2, 02:04
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jerry Krinock Apr 2, 02:10
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jens Alfke Apr 2, 07:45
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jean-Daniel Dupas Apr 2, 09:43
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Jean-Daniel Dupas Apr 2, 10:29
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) John Stiles Apr 2, 18:12
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) John Stiles Apr 2, 18:19
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Michael Ash Apr 2, 18:28
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Alastair Houghton Apr 2, 18:50
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) John Stiles Apr 2, 18:52
mlRe: MD5 [was: [NSPipe pipe] returning nil (running out of filehandles?)] Jens Alfke Apr 2, 22:52
mlRe: [NSPipe pipe] returning nil (running out of filehandles?) Martin Redington Apr 3, 19:15