|
Message-ID: <CA+YNibdN5Ky_Ud+gXExyUUhcC2a9hrTmEdO0YGEB6GumKAO_Qg@mail.gmail.com>
Date: Sat, 13 Jul 2013 19:55:29 -0400
From: cc <cc@...heads.com>
To: john-dev@...ts.openwall.com
Cc: Tavis Ormandy <taviso@...xchg8b.com>
Subject: Re: --fork
On Tue, May 7, 2013 at 4:26 PM, Solar Designer <solar@...nwall.com> wrote:
> Hi Tavis,
>
> On Tue, May 07, 2013 at 08:29:48AM -0700, Tavis Ormandy wrote:
>
> > I have an algorithm to skip to an arbitrary state in constant time
> without
> > having to increment it, would you be interested in a patch against core?
>
> I do remember your work on this, thanks! However, your algorithm is
> probably not usable for the new incremental mode as-is (with
> per-position character counts growing separately from each other) - it
> will need slight changes. I actually wanted to look into doing that for
> 1.8, but then decided to leave that for post-1.8 to avoid scope creep
> for 1.8 (it's time to release 1.8 already!)
>
This would be very interesting, and required for large numbers of nodes
where the --node (skip) implementation doesn't work. I'd definitely love
to see a current patch against the current codebase.
I haven't spent any time with JtR in about a year, and was hoping that
'--node --incremental' could help me divide an exhaustive incremental
search across many units of work. Last summer I had used some of Tavis's
concepts and was relatively successful. ('clortho' on the contrib page
resembles this work)
On the plus side, --node distribution covers the entire incremental mode
guess-space without duplicates (unlike markov):
(using 'All4' for time)
$ ./john --incremental=ALL4 --stdout 2>/dev/null |wc -l
82317121
$ for i in $(seq 1 1000) ; do ./john --incremental=ALL4 --node=${i}/1000
--stdout 2>/dev/null |wc -l; done |paste -sd+ |bc
82317121
However, the number of guesses for each node run tend to be quite uneven.
Here's the first 15 counts per node in that example:
$ for i in $(seq 1 15) ; do ./john --incremental=ALL4 --node=${i}/1000
--stdout 2>/dev/null |wc -l; done |paste -sd+
20496+7056+0+884+0+0+0+18144+107310+15876+7225+8245+15876+138350+7396
If I put in parameters closer to what I'd like to do in the real world:
$ for i in $(seq 1 15) ; do ./john --incremental=ASCII --node=${i}/100000
--stdout 2>/dev/null |wc -l; done |paste -sd+
1+0+0+0+0+0+0+0+0+1+1+0+2+1+4
The 100k units are much more uneven - it seems a great number of nodes will
finish in under 100ms on an average modern core, but certain nodes end up
taking a very long time to complete.
Content of type "text/html" skipped
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.