Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 04 Aug 2012 21:39:46 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: sunmd5

On 2012-08-04 16:47, jfoug wrote:
> From: magnum [mailto:john.magnum@...hmail.com]
>> 
>> I did some profiling:
>> 
>> On a 5-minute run, it spends 76.56% in SSEmd5body() and 23.12% more
>> in other parts of crypt_all(). The modulus stuff is ~5%. I see
>> nothing obvious that can be made better.

> That is very surprising. I expected more of a gain, since we are 
> doing 25 SSEmd5body() calls back to back, with no key setup at all, 
> 1/2 of the time.  I really thought this would get better
> performance. The entire key setup for that 25 block work, was simply
> copying in the first 16 bytes (the prior crypt digest), writing the 1
> to 4 byte 'round' (in text), appending the 0x80, and writing 4 byte
> length. That is pretty trivial on keysetup.

Still, 4.42x speed (my gear) is a new highscore afaik. We usually get
about 3x at best from SSE2.

> Also, each round, there is copying from a flat buffer, back into a 
> MMX_COEF buffer, for each candidate. I would love to avoid this, but 
> since you have no idea if a candidate will use the 1 block, or the
> 25 block crypt on any given round, I do not see any way around that 
> issue.

That sounds expensive. Some cleverness here might be the key.

magnum

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.