Moderator: BarsMonster
BarsWF lives here 
...
REV_II(revB,revC,revD,revA,data[ 5],21,0xfc93a039);
REV_II(revC,revD,revA,revB,data[14],15,0xab9423a7);
REV_II(revD,revA,revB,revC,data[ 7],10,0x432aff97);
REV_II(revA,revB,revC,revD, 0, 6,0xf4292244);
revB = ROTATE_RIGHT((revB - revC), 23) - data[2] - 0xc4ac5665;
revC2 = ROTATE_RIGHT((revC - revD), 16) - 0x1fa27cf8;...
HH(b,c,d,a,data[10],23,0xbebfbc70)
HH(a,b,c,d,data[13], 4,0x289b7ec6)
HH(d,a,b,c,data[ 0],11,0xeaa127fa)
HH(c,d,a,b,data[ 3],16,0xd4ef3085)
revA2 = revA - data[0];
revB2 = revB - (revA2 ^ revC ^ revD); // "revC ^ revD" can be precomputed in the reversing code.
if (revC2 - (revA2 ^ revB2 ^ revD) == c)
{
HH(b,c,d,a,data[ 6],23,0x04881d05)
if (revB2 == b)
{
HH(a,b,c,d,data[ 9], 4,0xd9d4d039)
if (revA2 == a)
{
HH(d,a,b,c,data[12],11,0xe6db99e5)
if (revD == d)
{
// MD5 is cracked!
}
}
}
}
BarsWF lives here 
Sc00bz wrote:You forgot that with large lists you'll need to resort every time you reverse.
dzhugashvili wrote:in regards to a crossover point - how could reversal NOT be beneficial? Even if you re-reverse all hashes quite frequently,
wouldn't it still be faster than computing the entire hash algorithm for every plaintext? Re-calculation of the last round of
MD4 every 26^2 tries should still be less expensive than computation of the last round of MD4 every try? Unless each hash re-reversal needs to be computed separately and there are over 26^2 elements in the list. Correct?
Return to BarsWF, Cryptography, Security, GPGPU and supercomputing
Users browsing this forum: No registered users and 1 guest