|
|
Message-ID: <20130518232142.GB31620@openwall.com>
Date: Sun, 19 May 2013 03:21:42 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Incremental mode in 1.7.9.14
On Sun, May 19, 2013 at 02:57:00AM +0400, Solar Designer wrote:
> I've attached the better version of the charset.c patch. Please test.
Here's what I am getting with it, vs. 1.7.9's incremental mode with the
same CHARSET_* settings and the same training and test sets.
For my testing, I ran "shuf" on the full RockYou list (32.6M passwords).
Then I split the resulting shuffled list in two: exactly 1M for test
set, and the rest (about 31.6M) for training set. There's no overlap
between the two, but some of the passwords that occurred in the original
RockYou list more than once also occur in both sets. This simulates
what happens with common passwords across two different yet similar
sites, where cracked (or otherwise known) passwords from one are then
used to attack hashes from the other.
$ shuf r > rs1
$ head -1000000 rs1 > rs1a
$ tail +1000001 rs1 > rs1b
$ wc -l rs1?
1000000 rs1a
31603388 rs1b
32603388 total
$ sed 's/^/:/' < rs1b > john.pot
$ perl -ne 'chomp; print "dummy:", "\$dummy\$", unpack("H*", $_), "\n";' < rs1a > pw1
#define CHARSET_MIN 0x01
#define CHARSET_MAX 0xff
#define CHARSET_LENGTH 24
JtR 1.7.9 took almost 4 minutes to generate a .chr file with these
settings from the .pot file above. The new version with the patch I
posted takes under 50 seconds to do the same (indeed, the .chr file is
different - it's for the new version, too). This is on Xeon E5420
(using one core).
JtR 1.7.9 cracking run with status printed after 1k, 10k, 100k, 1M, 10M,
100M, 1G candidates tested:
guesses: 69 time: 0:00:00:01 c/s: 80604K trying: 123456 - sanie13
guesses: 2072 time: 0:00:00:05 c/s: 1377M trying: momesta1 - 07706101989
guesses: 8402 time: 0:00:00:10 c/s: 6835M trying: bisnon - march
guesses: 27151 time: 0:00:00:16 c/s: 41802M trying: buddelat1 - budante11
guesses: 70436 time: 0:00:00:29 c/s: 218147M trying: mangstienter - mangstearina
guesses: 127439 time: 0:00:01:04 c/s: 915699M trying: 281gg5 - 281gs4
guesses: 207516 time: 0:00:03:39 c/s: 2355G trying: sk09927j - sk09383k
The new version with the patch I posted (for same candidate counts):
117g 0:00:00:00 140.9g/s 204.8p/s 204.8c/s 140815KC/s 123456..102526
2800g 0:00:00:02 1111g/s 3980p/s 3980c/s 3439MC/s sammys..shiess
11628g 0:00:00:05 2165g/s 18646p/s 18646c/s 13619MC/s amerior..amandom
41413g 0:00:00:10 3925g/s 94797p/s 94797c/s 66114MC/s loures..loutty
78550g 0:00:00:19 4024g/s 512299p/s 512299c/s 329525MC/s bbbba04..bbb2567
134074g 0:00:00:38 3467g/s 2585Kp/s 2585Kc/s 1523GC/s 163.180..163.c15
216565g 0:00:01:56 1861g/s 8595Kp/s 8595Kc/s 4388GC/s sedem92..sedee29
Another test, trained on 1000 passwords only:
$ head -1000 rs1b | sed 's/^/:/' > john.pot
yet cracking the same 1M dummy hashes as above.
JtR 1.7.9:
guesses: 30 time: 0:00:00:01 c/s: 91310K trying: 123456 - *
guesses: 488 time: 0:00:00:05 c/s: 1378M trying: 122212 - andrk6
guesses: 2282 time: 0:00:00:08 c/s: 8586M trying: mosbit - motins
guesses: 8269 time: 0:00:00:11 c/s: 62020M trying: cookrso11 - coolekean
guesses: 19663 time: 0:00:00:17 c/s: 396417M trying: 9gce - 9g5k
guesses: 42935 time: 0:00:00:39 c/s: 1677G trying: soerl36 - soel18o
guesses: 106099 time: 0:00:03:01 c/s: 3363G trying: l0lbgnda - l0lbgoc0
New code:
27g 0:00:00:00 168.7g/s 1062p/s 1062c/s 730482KC/s acasandreigabriel..ashcer
931g 0:00:00:00 3210g/s 34586p/s 34586c/s 6890MC/s 10veey..180812
3910g 0:00:00:01 2917g/s 74723p/s 74723c/s 68589MC/s jeam90..jech05
10432g 0:00:00:02 4240g/s 406548p/s 406548c/s 340058MC/s ardr21..ard490
24578g 0:00:00:04 5026g/s 2045Kp/s 2045Kc/s 1674GC/s rpsamaz..rpsasol
53671g 0:00:00:13 3872g/s 7215Kp/s 7215Kc/s 4977GC/s p1rzi2a..p1rzers
114151g 0:00:01:17 1470g/s 12879Kp/s 12879Kc/s 7788GC/s thramne1..thram007
To get these status lines printed at the right times, I use a revision
of the AutoStatus external mode with these two lines added at the end of
its filter():
abort = (interval == 1000000000);
interval *= 10;
Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.