Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <a1739247-4c90-d9f1-b2b5-4989363acc7e@openwall.net>
Date: Fri, 3 Feb 2017 10:29:06 -0600
From: jfoug <jfoug@...nwall.net>
To: john-users@...ts.openwall.com
Subject: Re: to Single or not to Single

On 2/3/2017 6:14 AM, Solar Designer wrote:
> One obvious reason for a lower speed is that you're presumably testing
> only 1 password per salt, whereas we're optimizing for many passwords to
> be tested at once.  On a non-OpenMP build with AVX:
>
> $ ./john --list=format-all-details --format=dynamic_25 | fgrep keys
> Min. keys per crypt                  64
> Max. keys per crypt                  1680

For AVX2 you will get 8X*PARA x performance loss (plus much other 
overhead loss due to dyna being very heavy on extraneous CPU usage). 
The 1680 is actually used to absorb and hide some of that additional 
overhead.  The 64 min was due to getting a value that worked for all 
hash types.  It really 'could' be larger, but making that adjustment is 
very tricky, since we have to deal with all possible SIMD coefs, AND 
SIMD para for all different hash types which dyna handles.   But you are 
VERY right, single does have some very huge hits in this type usage 
(which can be an ideal usage), due to the fact that the blocks being 
tested are not being filled up optimally.  Even though min is 64, the 
code will not be forced into doing 64 hashes. It will stop when the 
number of ready to go passwords (rounded up to the next simd*para) is 
enough.  So if there is only 1 password, then only 1 call to the 
simd_crypt() will be done (which on AVX2 is 8x*para)

NOTE, this type run should NEVER be done with OMP, or with fork.  It 
will simply increase the loss.  One thing that 'may' improve the 
throughput is to actually not do the SingleRetestGuessed=Y flag Because 
in that way, the 1 'excellent' candidate will get buffers filled in with 
other cracked data.  If run like this you will certainly want to run 
some smaller 'testing' cases to make sure it does not cause the overall 
run to increase in time much, and actually see if there is a decent 
improvement in final end percentages cracked.  For the AVX2, if you add 
7 more passwords per each crack call (15 more is build is para=2), the 
program will run through the data at exactly the same rate, BUT all 
those other 'possible' passwords will be tested for nearly free.

Jim.

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.