Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [day] [month] [year] [list]
Date: Fri, 1 Jul 2011 19:59:47 -0500
From: "jfoug" <jfoug@....net>
To: <john-dev@...ts.openwall.com>
Subject: MSCash2 CPU performance improvements

Started out at 72/s or so on my XP-32 work system.  It is now running:

 

$ ../run/john -test=10 -form=mscash2jf -utf8

Benchmarking: M$ Cache Hash 2 (jf) [SSE2 4x] in UTF-8 mode... DONE

Raw:    627 c/s

 

Not a bad improvement.   Also the SSE2i is working, which is required for
any 64bit SSE2 system.   There is still a little work to do, and some
testing, and debugging code removal.  But it should be ready shortly.

 

I had to make some additions to the mmx-sha1.S file.  I had to add a
function (and ended up adding 2 of them).  These functions load the 'state'
from a prior crypt passed in.  So now we have functions that load init
values.  Ones that leave the state of the SHA alone, and ones that reload
the state from an existing state (non byte swapped crypt).  Also, a little
tweaking was done on the intrinsic SHA1 code, that did not impact existing
code, but helped here, since we are working with 2 alternating SHA1
"states". 

 

One 'side' effect to adding these additional functions (which we can also do
on MD4/5), is that SSE is now much easier to use for hashing beyond 55 bytes
of data.  It still is not 'trivial', since there are multiple buffers each
being worked on at the same time, and they 'all' must cross over each
interval of 64 bytes at the same time, and all be the same number of 64 byte
buffers (minus the last buffer being 9 bytes shy of 64 bytes).  It may never
get to the point of a SHA1_CTXSSE, or
SHA1_SSE_Update()/SHA1_SSE_Init()/Final() type interface.  But we may be
able to do something 'along those lines', if it is used 'carefully'.

 

 

It is a holiday weekend for me, so I will try to get this format hammered
out, tested, and ready for 'production'.  I have been asked to change the
format signature from M$salt#hash  to $DCC2$iteration#salt#hash and I think
now is the time to make that change.  If anyone has a ton of these in their
john.pot file, we can easily make a perl script to 'fix' them into the new
layout.

 

Jim.


[ CONTENT OF TYPE text/html SKIPPED ]

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ