Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 15 Sep 2015 06:47:04 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Judy array

On Tue, Sep 15, 2015 at 12:32:42AM +0300, Solar Designer wrote:
> Oh, as a minor evolutionary change to what we have now, we should in
> fact decouple the bitmap lookups from actually using those looked up
> values.  Here's how I had it written as an experiment in January 2012:
> 
> 	for (index = 0; index < crk_key_index; index += 2) {
> 		int hash2 = salt->index(index + 1);
> 		int hash1 = salt->index(index);
> 		unsigned int b1 = salt->bitmap[hash1 / (sizeof(*salt->bitmap) * 8)];
> 		unsigned int b2 = salt->bitmap[hash2 / (sizeof(*salt->bitmap) * 8)];
> 		if (b1 & (1U << (hash1 % (sizeof(*salt->bitmap) * 8)))) {
> [...]
> 		}
> 		if (b2 & (1U << (hash2 % (sizeof(*salt->bitmap) * 8)))) {
> [...]
> 		}
> 	}
> 
> and IIRC it actually ran significantly faster, but I never committed
> that code version.

I was testing with LM hashes at the time.  The speedup might have been
in part because the bitslice DES get_hash*() are quite slow (they have
to extract and merge the individual bits).  Also, we didn't have
"--fork" yet, so this change made use of the system's multiple memory
channels - but when I am running "--fork=8" now, I am already using them
in that way.

Whatever the reasons were, I am not seeing a speedup from such changes
for raw-md5 now.  Not even on the same machine I was using back then.

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.