Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 17 Apr 2013 12:42:17 -0500
From: "jfoug" <jfoug@....net>
To: <john-dev@...ts.openwall.com>
Subject: Got all dyna formats (except $1$ and $apr1$) working with OMP

(Warning, long email)

-_-  The cliff's notes are: I have been working on OMP in dyna, and have
made some good progress.

 

NOTE, this is not ready to be released yet.  I still need to make sure
things are solid, and I would like to bench a bit more, looking for
additional speed improvements.  I am just posting to inform the list of
progress.  I have put about 100 hours or so on this so far.  That is less
time than I thought it would be, to get to 'almost' working code.  But
certainly NOT trivial.

 

I also have it sped up.  I have a lot more memory buffers used. I do not
(yet) have the memory being dyna allocated, but I really thing that MUST be
done.  The buffers being used are 48x larger than they were, in the non-OMP
build.  I do not know if that is large enough, but it does start to show
some speedup.  Using the size of the original buffers, was causing a
significant slowdown on OMP.

 

Here was one 'good' winner (speed on 32 bit cygwin, which is not great with
OMP).  NOTE, the 4x4x3 is wrong, I think.

 

Benchmarking: dynamic_17: phpass ($P$ or $H$) [128/128 SSE2 intrinsics
96x4x3]... (4xOMP) DONE

Raw:    53344 c/s real, 15280 c/s virtual

 

Benchmarking: dynamic_17: phpass ($P$ or $H$) [128/128 SSE2 4x4x3]... DONE

Raw:    18462 c/s real, 18469 c/s virtual

 

Here are the large format timings:

Benchmarking: dynamic_50: sha224($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    2006K c/s real, 2006K c/s virtual

Benchmarking: dynamic_60: sha256($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    2018K c/s real, 2017K c/s virtual

Benchmarking: dynamic_70: sha384($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    1377K c/s real, 1378K c/s virtual

Benchmarking: dynamic_80: sha512($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    1373K c/s real, 1378K c/s virtual

Benchmarking: dynamic_90: GOST($p) [32/32 128x1 (MD5_Body)]... DONE

Raw:    553979 c/s real, 554345 c/s virtual

Benchmarking: dynamic_100: WHIRLPOOL($p) [32/32 128x1 (MD5_Body)]... DONE

Raw:    1445K c/s real, 1445K c/s virtual

 

Benchmarking: dynamic_50: sha224($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    5687K c/s real, 1567K c/s virtual

Benchmarking: dynamic_60: sha256($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    5729K c/s real, 1595K c/s virtual

Benchmarking: dynamic_70: sha384($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    4162K c/s real, 1188K c/s virtual

Benchmarking: dynamic_80: sha512($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    4099K c/s real, 1120K c/s virtual

Benchmarking: dynamic_90: GOST($p) [32/32 3072x2 (MD5_body)]... (4xOMP) DONE

Raw:    1911K c/s real, 505456 c/s virtual

Benchmarking: dynamic_100: WHIRLPOOL($p) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Raw:    4367K c/s real, 1242K c/s virtual

 

Even dyna0 was sped up (but not huge). Dyna0 is pretty hard to speed up

 

Benchmarking: dynamic_0: md5($p) (raw-md5) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    42228K c/s real, 20007K c/s virtual

 

Benchmarking: dynamic_0: md5($p) (raw-md5) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    27786K c/s real, 27813K c/s virtual

 

I need to work on the strings for the large formats.  They actually are
using the X2 buffers (not that it matters).  However, the key loading used
the X2, so those also had to use the X2 to get the keys, and also output to
the X2 crypt buffers (since pretty much everything uses the 'common' md5
buffers for in/output).  I will work on getting strings 'correct'.  The GOST
and WHIRLPOOL also list MD5_Body, but of course do not use that ;)

 

NOTE, the failures (type 27/28 which are  $1$ and $apr1$).  Those are now
failing on ALL builds, sse/non whether omp or not.  I have not looked into
fixing these yet.

 

Now, what I did was modified all of the primative functions which were void
(*)()  Now they 'may' be void(*)() or may be void(*)(int,int).  The int,int
will be built whenever OMP is defined.  The params are first/last, so that
each function will work on a sliver of the data.  However, each 'sliver' is
handed out properly, so that only 1 thread gets to work with that.  I had to
modify every method, but there was only about 5 'common' ways functions were
modified, and then about a dozen functions left over.

 

Also, I found that using MD5_go or MD5_go2, is NOT thread safe.  I had to
change that.  The MD5_go code is faster than the CTX model (on LE systems),
but uses a global variable for the output.   Also, I got the MD5_X2 code
working (there were some gotcha's).  Within x86.h, MD5_X2 is 1 and MD5_ASM
is 0 (the asm== 0 makes sense, since it is not TS).  But the X2 had some
things I had to work past.

 

NOTE, there are some formats that DO NOT build into an OMP build.  Anything
that swaps back and forth from SSE into x86, or back out, cannot be used.  I
think most of the SHA1 functions will fall into that category :( .  Also,
anything that goes into or comes back out of things like upcase, unicode, is
not handled.  I need to make sure that a format that sets unicode in the
start and stays there works (same for upcase).  There likely will be other
things I will have to look for, and stop the format from working.

 

NOTE, I may also start over, and look at putting OMP only into the low level
crypt functions.  The problem here, is now I have all of those wide
functions.  So now I have about 60 functions or so where I would need to
jump into OMP.  I really think doing it that way will be slower.  Also, the
code will be more problematic, as often there is complex logic already, due
to split of non-sse and SSE. I think jamming OMP on top of that complexity
will not be trivial.  However, in the end, if it works, and I get better
speed from it, then that is the OMP version I will release/maintain.

 

But, it 'looks' like dynamic with OMP is achievable.  It will be a pretty
huge patch (couple thousand lines at least), but if I can get this
stabilized, it will give OMP support within dyna.

 

 

 

Here are the 'raw' timings from cygwin32 builds.  this is a 4 core hyper
machine. OMP defaults to 8, but 4 cores actually runs better for most
formats, and the CPU only is charged with about 40% load (approx).

 

$ OMP_NUM_THREADS=4 ../run/john -test=5 -form=dynamic

Benchmarking: dynamic_0: md5($p) (raw-md5) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    42228K c/s real, 20007K c/s virtual

 

Benchmarking: dynamic_1: md5($p.$s) (joomla) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     20853K c/s real, 5882K c/s virtual

Only one salt:  14611K c/s real, 5254K c/s virtual

 

Benchmarking: dynamic_2: md5(md5($p)) (e107) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    29566K c/s real, 11699K c/s virtual

 

Benchmarking: dynamic_3: md5(md5(md5($p))) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    22778K c/s real, 7797K c/s virtual

 

Benchmarking: dynamic_4: md5($s.$p) (OSC) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     22103K c/s real, 6274K c/s virtual

Only one salt:  14336K c/s real, 5271K c/s virtual

 

Benchmarking: dynamic_5: md5($s.$p.$s) [128/128 SSE2 intrinsics 480x4x3]...
(4xOMP) DONE

Many salts:     17987K c/s real, 5120K c/s virtual

Only one salt:  13572K c/s real, 4775K c/s virtual

 

Benchmarking: dynamic_6: md5(md5($p).$s) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     50124K c/s real, 16545K c/s virtual

Only one salt:  6253K c/s real, 4206K c/s virtual

 

Benchmarking: dynamic_8: md5(md5($s).$p) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     21668K c/s real, 6093K c/s virtual

Only one salt:  15021K c/s real, 5323K c/s virtual

 

Benchmarking: dynamic_9: md5($s.md5($p)) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     38302K c/s real, 11861K c/s virtual

Only one salt:  5963K c/s real, 3957K c/s virtual

 

Benchmarking: dynamic_10: md5($s.md5($s.$p)) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     14143K c/s real, 4010K c/s virtual

Only one salt:  11577K c/s real, 4000K c/s virtual

 

Benchmarking: dynamic_11: md5($s.md5($p.$s)) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     15344K c/s real, 4200K c/s virtual

Only one salt:  11563K c/s real, 4115K c/s virtual

 

Benchmarking: dynamic_14: md5($s.md5($p).$s) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     31304K c/s real, 9088K c/s virtual

Only one salt:  6442K c/s real, 3900K c/s virtual

 

Benchmarking: dynamic_15: md5($u.md5($p).$s) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Many salts:     11690K c/s real, 3103K c/s virtual

Only one salt:  4059K c/s real, 1803K c/s virtual

 

Benchmarking: dynamic_16: md5(md5(md5($p).$s).$s2) [32/32 3072x2
(MD5_body)]... (4xOMP) DONE

Many salts:     8087K c/s real, 2142K c/s virtual

Only one salt:  3606K c/s real, 1379K c/s virtual

 

Benchmarking: dynamic_17: phpass ($P$ or $H$) [128/128 SSE2 intrinsics
96x4x3]... (4xOMP) DONE

Raw:    53344 c/s real, 15280 c/s virtual

 

Benchmarking: dynamic_18: md5($s.Y.$p.0xF7.$s)(Post.Office MD5) [32/32
3072x2 (MD5_body)]... (4xOMP) DONE

Many salts:     10063K c/s real, 2635K c/s virtual

Only one salt:  8479K c/s real, 2546K c/s virtual

 

Benchmarking: dynamic_19: Cisco PIX (MD5) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    16648K c/s real, 6064K c/s virtual

 

Benchmarking: dynamic_20: Cisco ASA (MD5 salted) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Many salts:     21556K c/s real, 6064K c/s virtual

Only one salt:  14996K c/s real, 5258K c/s virtual

 

Benchmarking: dynamic_27: FreeBSD MD5 [128/128 SSE2 intrinsics 4x3]...
(4xOMP) FAILED (get_hash[0](0))

 

Benchmarking: dynamic_28: Apache MD5 [128/128 SSE2 intrinsics 4x3]...
(4xOMP) FAILED (get_hash[0](0))

 

Benchmarking: dynamic_29: md5(unicode($p)) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    15911K c/s real, 5876K c/s virtual

 

Benchmarking: dynamic_30: md4($p) (raw-md4) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    44188K c/s real, 24840K c/s virtual

 

Benchmarking: dynamic_31: md4($s.$p) [128/128 SSE2 intrinsics 480x4x3]...
(4xOMP) DONE

Many salts:     23330K c/s real, 6475K c/s virtual

Only one salt:  15789K c/s real, 5740K c/s virtual

 

Benchmarking: dynamic_32: md4($p.$s) [128/128 SSE2 intrinsics 480x4x3]...
(4xOMP) DONE

Many salts:     23233K c/s real, 6567K c/s virtual

Only one salt:  15608K c/s real, 5755K c/s virtual

 

Benchmarking: dynamic_33: md4(unicode($p)) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    16253K c/s real, 6098K c/s virtual

 

Benchmarking: dynamic_34: md5(md4($p)) [128/128 SSE2 intrinsics 480x4x3]...
(4xOMP) DONE

Raw:    28215K c/s real, 10772K c/s virtual

 

Benchmarking: dynamic_50: sha224($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    5687K c/s real, 1567K c/s virtual

 

Benchmarking: dynamic_51: sha224($s.$p) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     5639K c/s real, 1517K c/s virtual

Only one salt:  5180K c/s real, 1496K c/s virtual

 

Benchmarking: dynamic_52: sha224($p.$s) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     5694K c/s real, 1518K c/s virtual

Only one salt:  5114K c/s real, 1442K c/s virtual

 

Benchmarking: dynamic_60: sha256($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    5729K c/s real, 1595K c/s virtual

 

Benchmarking: dynamic_61: sha256($s.$p) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     5879K c/s real, 1550K c/s virtual

Only one salt:  5173K c/s real, 1498K c/s virtual

 

Benchmarking: dynamic_62: sha256($p.$s) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     5549K c/s real, 1459K c/s virtual

Only one salt:  5090K c/s real, 1499K c/s virtual

 

Benchmarking: dynamic_70: sha384($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    4162K c/s real, 1188K c/s virtual

 

Benchmarking: dynamic_71: sha384($s.$p) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     4295K c/s real, 1143K c/s virtual

Only one salt:  3944K c/s real, 1094K c/s virtual

 

Benchmarking: dynamic_72: sha384($p.$s) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     4139K c/s real, 1118K c/s virtual

Only one salt:  3533K c/s real, 1004K c/s virtual

 

Benchmarking: dynamic_80: sha512($p) [32/32 6144x1 sha2-OpenSSL]... (4xOMP)
DONE

Raw:    4099K c/s real, 1120K c/s virtual

 

Benchmarking: dynamic_81: sha512($s.$p) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     4212K c/s real, 1118K c/s virtual

Only one salt:  3655K c/s real, 1026K c/s virtual

 

Benchmarking: dynamic_82: sha512($p.$s) [32/32 6144x1 sha2-OpenSSL]...
(4xOMP) DONE

Many salts:     4151K c/s real, 1098K c/s virtual

Only one salt:  3731K c/s real, 1058K c/s virtual

 

Benchmarking: dynamic_90: GOST($p) [32/32 3072x2 (MD5_body)]... (4xOMP) DONE

Raw:    1911K c/s real, 505456 c/s virtual

 

Benchmarking: dynamic_91: GOST($s.$p) [32/32 3072x2 (MD5_body)]... (4xOMP)
DONE

Many salts:     1939K c/s real, 505761 c/s virtual

Only one salt:  1882K c/s real, 495206 c/s virtual

 

Benchmarking: dynamic_92: GOST($p.$s) [32/32 3072x2 (MD5_body)]... (4xOMP)
DONE

Many salts:     1955K c/s real, 504483 c/s virtual

Only one salt:  1853K c/s real, 488911 c/s virtual

 

Benchmarking: dynamic_100: WHIRLPOOL($p) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Raw:    4367K c/s real, 1242K c/s virtual

 

Benchmarking: dynamic_101: WHIRLPOOL($s.$p) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Many salts:     4305K c/s real, 1148K c/s virtual

Only one salt:  3972K c/s real, 1136K c/s virtual

 

Benchmarking: dynamic_102: WHIRLPOOL($p.$s) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Many salts:     4498K c/s real, 1163K c/s virtual

Only one salt:  4011K c/s real, 1101K c/s virtual

 

Benchmarking: dynamic_1001 md5(md5(md5(md5($p)))) [128/128 SSE2 intrinsics
480x4x3]... (4xOMP) DONE

Raw:    19100K c/s real, 6046K c/s virtual

 

Benchmarking: dynamic_1002 md5(md5(md5(md5(md5($p))))) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Raw:    14179K c/s real, 4347K c/s virtual

 

Benchmarking: dynamic_1003 md5(md5($p).md5($p)) [32/32 3072x2 (MD5_body)]...
(4xOMP) DONE

Raw:    6518K c/s real, 2122K c/s virtual

 

Benchmarking: dynamic_1004 md5(md5(md5(md5(md5(md5($p)))))) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Raw:    12233K c/s real, 3566K c/s virtual

 

Benchmarking: dynamic_1005 md5(md5(md5(md5(md5(md5(md5($p))))))) [128/128
SSE2 intrinsics 480x4x3]... (4xOMP) DONE

Raw:    10717K c/s real, 3123K c/s virtual

 

Benchmarking: dynamic_1006 md5(md5(md5(md5(md5(md5(md5(md5($p))))))))
[128/128 SSE2 intrinsics 480x4x3]... (4xOMP) DONE

Raw:    9044K c/s real, 2616K c/s virtual

 

Benchmarking: dynamic_1007 md5(md5($p).$s) (vBulletin) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     49684K c/s real, 16450K c/s virtual

Only one salt:  6117K c/s real, 4576K c/s virtual

 

Benchmarking: dynamic_1008 md5($p.$s) (RADIUS User-Password) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     20147K c/s real, 5674K c/s virtual

Only one salt:  13298K c/s real, 5002K c/s virtual

 

Benchmarking: dynamic_1009 md5($s.$p) (RADIUS Responses) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     19420K c/s real, 5807K c/s virtual

Only one salt:  13855K c/s real, 5100K c/s virtual

 

Benchmarking: dynamic_1010 md5($p null_padded_to_len_100) RAdmin v2.x MD5
[32/32 3072x2 (MD5_body)]... (4xOMP) DONE

Raw:    8832K c/s real, 3101K c/s virtual

 

Benchmarking: dynamic_1011 md5($p.md5($s)) (WebEdition CMS) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     15262K c/s real, 4117K c/s virtual

Only one salt:  11217K c/s real, 3768K c/s virtual

 

Benchmarking: dynamic_1012 md5($p.md5($s)) (WebEdition CMS) [128/128 SSE2
intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     21417K c/s real, 5968K c/s virtual

Only one salt:  14894K c/s real, 5323K c/s virtual

 

Benchmarking: dynamic_1013 md5($p.PMD5(username)) (WebEdition CMS) [128/128
SSE2 intrinsics 480x4x3]... (4xOMP) DONE

Many salts:     21842K c/s real, 5999K c/s virtual

Only one salt:  15136K c/s real, 5237K c/s virtual

 

Benchmarking: dynamic_1014 md5($p.$s) (long salt) [32/32 3072x2
(MD5_body)]... (4xOMP) DONE

Many salts:     6629K c/s real, 1736K c/s virtual

Only one salt:  5045K c/s real, 1497K c/s virtual

 

2 out of 58 tests have FAILED

 

 

These timings are from unstable, BUT the speed of dyna on bleed vs unstable
was the same

 

$ ../run/john -test=5 -form=dynamic

Benchmarking: dynamic_0: md5($p) (raw-md5) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    27786K c/s real, 27813K c/s virtual

 

Benchmarking: dynamic_1: md5($p.$s) (joomla) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     16339K c/s real, 16360K c/s virtual

Only one salt:  12268K c/s real, 12256K c/s virtual

 

Benchmarking: dynamic_2: md5(md5($p)) (e107) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    13967K c/s real, 13979K c/s virtual

 

Benchmarking: dynamic_3: md5(md5(md5($p))) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    9316K c/s real, 9313K c/s virtual

 

Benchmarking: dynamic_4: md5($s.$p) (OSC) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     18396K c/s real, 18374K c/s virtual

Only one salt:  12900K c/s real, 12905K c/s virtual

 

Benchmarking: dynamic_5: md5($s.$p.$s) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     14713K c/s real, 14718K c/s virtual

Only one salt:  10851K c/s real, 10841K c/s virtual

 

Benchmarking: dynamic_6: md5(md5($p).$s) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     25448K c/s real, 25443K c/s virtual

Only one salt:  8675K c/s real, 8673K c/s virtual

 

Benchmarking: dynamic_8: md5(md5($s).$p) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     17473K c/s real, 17459K c/s virtual

Only one salt:  12932K c/s real, 12925K c/s virtual

 

Benchmarking: dynamic_9: md5($s.md5($p)) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     17512K c/s real, 17534K c/s virtual

Only one salt:  7550K c/s real, 7552K c/s virtual

 

Benchmarking: dynamic_10: md5($s.md5($s.$p)) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     8831K c/s real, 8825K c/s virtual

Only one salt:  7488K c/s real, 7481K c/s virtual

 

Benchmarking: dynamic_11: md5($s.md5($p.$s)) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     9021K c/s real, 9022K c/s virtual

Only one salt:  7612K c/s real, 7638K c/s virtual

 

Benchmarking: dynamic_12: md5(md5($s).md5($p)) (IPB) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     3696K c/s real, 3706K c/s virtual

Only one salt:  2592K c/s real, 2591K c/s virtual

 

Benchmarking: dynamic_13: md5(md5($p).md5($s)) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     3684K c/s real, 3686K c/s virtual

Only one salt:  2595K c/s real, 2592K c/s virtual

 

Benchmarking: dynamic_14: md5($s.md5($p).$s) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     13940K c/s real, 13954K c/s virtual

Only one salt:  7575K c/s real, 7638K c/s virtual

 

Benchmarking: dynamic_15: md5($u.md5($p).$s) [32/32 128x1 (MD5_Body)]...
DONE

Many salts:     5198K c/s real, 5194K c/s virtual

Only one salt:  2372K c/s real, 2379K c/s virtual

 

Benchmarking: dynamic_16: md5(md5(md5($p).$s).$s2) [32/32 128x1
(MD5_Body)]... DONE

Many salts:     3076K c/s real, 3072K c/s virtual

Only one salt:  1833K c/s real, 1841K c/s virtual

 

Benchmarking: dynamic_17: phpass ($P$ or $H$) [128/128 SSE2 4x4x3]... DONE

Raw:    18462 c/s real, 18469 c/s virtual

 

Benchmarking: dynamic_18: md5($s.Y.$p.0xF7.$s)(Post.Office MD5) [32/32 128x1
(MD5_Body)]... DONE

Many salts:     3622K c/s real, 3633K c/s virtual

Only one salt:  3379K c/s real, 3397K c/s virtual

 

Benchmarking: dynamic_19: Cisco PIX (MD5) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    16154K c/s real, 16196K c/s virtual

 

Benchmarking: dynamic_20: Cisco ASA (MD5 salted) [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     17495K c/s real, 17498K c/s virtual

Only one salt:  12879K c/s real, 12864K c/s virtual

 

Benchmarking: dynamic_21: HTTP Digest Access Auth [128/128 SSE2 intrinsics
10x4x3]... DONE

Many salts:     2001K c/s real, 2008K c/s virtual

Only one salt:  1922K c/s real, 1920K c/s virtual

 

Benchmarking: dynamic_22: md5(sha1($p)) [128/128 SSE2 10x4]... DONE

Raw:    6977K c/s real, 6977K c/s virtual

 

Benchmarking: dynamic_23: sha1(md5($p)) [128/128 SSE2 10x4]... DONE

Raw:    6011K c/s real, 6002K c/s virtual

 

Benchmarking: dynamic_24: sha1($p.$s) [128/128 SSE2 10x4]... DONE

Many salts:     9918K c/s real, 9932K c/s virtual

Only one salt:  8374K c/s real, 8367K c/s virtual

 

Benchmarking: dynamic_25: sha1($s.$p) [128/128 SSE2 10x4]... DONE

Many salts:     9754K c/s real, 9764K c/s virtual

Only one salt:  7948K c/s real, 7954K c/s virtual

 

Benchmarking: dynamic_26: sha1($p) raw-sha1 [128/128 SSE2 4x1]... DONE

Raw:    12390K c/s real, 12432K c/s virtual

 

Benchmarking: dynamic_27: FreeBSD MD5 [128/128 SSE2 4x3]... DONE

Raw:    28157 c/s real, 28193 c/s virtual

 

Benchmarking: dynamic_28: Apache MD5 [128/128 SSE2 4x3]... DONE

Raw:    28691 c/s real, 28704 c/s virtual

 

Benchmarking: dynamic_29: md5(unicode($p)) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    16390K c/s real, 16396K c/s virtual

 

Benchmarking: dynamic_30: md4($p) (raw-md4) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    34431K c/s real, 34468K c/s virtual

 

Benchmarking: dynamic_31: md4($s.$p) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     22485K c/s real, 22469K c/s virtual

Only one salt:  15494K c/s real, 15509K c/s virtual

 

Benchmarking: dynamic_32: md4($p.$s) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Many salts:     20753K c/s real, 20791K c/s virtual

Only one salt:  14602K c/s real, 14665K c/s virtual

 

Benchmarking: dynamic_33: md4(unicode($p)) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    17635K c/s real, 17727K c/s virtual

 

Benchmarking: dynamic_34: md5(md4($p)) [128/128 SSE2 intrinsics 10x4x3]...
DONE

Raw:    14789K c/s real, 14826K c/s virtual

 

Benchmarking: dynamic_35: sha1(uc($u).:.$p) (ManGOS) [128/128 SSE2 10x4]...
DONE

Many salts:     8566K c/s real, 8562K c/s virtual

Only one salt:  7121K c/s real, 7125K c/s virtual

 

Benchmarking: dynamic_36: sha1($u.:.$p) (ManGOS2) [128/128 SSE2 10x4]...
DONE

Many salts:     8775K c/s real, 8767K c/s virtual

Only one salt:  7496K c/s real, 7496K c/s virtual

 

Benchmarking: dynamic_37: sha1(lc($u).$p) (SMF) [128/128 SSE2 10x4]... DONE

Many salts:     9704K c/s real, 9718K c/s virtual

Only one salt:  8341K c/s real, 8331K c/s virtual

 

Benchmarking: dynamic_38: sha1($s.sha1($s.sha1($p))) (Wolt3BB) [32/32
128x1]... DONE

Many salts:     1167K c/s real, 1168K c/s virtual

Only one salt:  1127K c/s real, 1127K c/s virtual

 

Benchmarking: dynamic_50: sha224($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    2006K c/s real, 2006K c/s virtual

 

Benchmarking: dynamic_51: sha224($s.$p) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     2085K c/s real, 2084K c/s virtual

Only one salt:  1985K c/s real, 1984K c/s virtual

 

Benchmarking: dynamic_52: sha224($p.$s) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     2023K c/s real, 2025K c/s virtual

Only one salt:  1893K c/s real, 1896K c/s virtual

 

Benchmarking: dynamic_60: sha256($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    2018K c/s real, 2017K c/s virtual

 

Benchmarking: dynamic_61: sha256($s.$p) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     2089K c/s real, 2092K c/s virtual

Only one salt:  1986K c/s real, 1984K c/s virtual

 

Benchmarking: dynamic_62: sha256($p.$s) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     2030K c/s real, 2029K c/s virtual

Only one salt:  1903K c/s real, 1903K c/s virtual

 

Benchmarking: dynamic_70: sha384($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    1377K c/s real, 1378K c/s virtual

 

Benchmarking: dynamic_71: sha384($s.$p) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     1412K c/s real, 1411K c/s virtual

Only one salt:  1359K c/s real, 1358K c/s virtual

 

Benchmarking: dynamic_72: sha384($p.$s) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     1385K c/s real, 1385K c/s virtual

Only one salt:  1324K c/s real, 1327K c/s virtual

 

Benchmarking: dynamic_80: sha512($p) [32/32 128x1 sha2-OpenSSL]... DONE

Raw:    1373K c/s real, 1378K c/s virtual

 

Benchmarking: dynamic_81: sha512($s.$p) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     1403K c/s real, 1407K c/s virtual

Only one salt:  1357K c/s real, 1358K c/s virtual

 

Benchmarking: dynamic_82: sha512($p.$s) [32/32 128x1 sha2-OpenSSL]... DONE

Many salts:     1383K c/s real, 1382K c/s virtual

Only one salt:  1322K c/s real, 1321K c/s virtual

 

Benchmarking: dynamic_90: GOST($p) [32/32 128x1 (MD5_Body)]... DONE

Raw:    553979 c/s real, 554345 c/s virtual

 

Benchmarking: dynamic_91: GOST($s.$p) [32/32 128x1 (MD5_Body)]... DONE

Many salts:     557365 c/s real, 556625 c/s virtual

Only one salt:  552592 c/s real, 553248 c/s virtual

 

Benchmarking: dynamic_92: GOST($p.$s) [32/32 128x1 (MD5_Body)]... DONE

Many salts:     558255 c/s real, 557736 c/s virtual

Only one salt:  547828 c/s real, 547614 c/s virtual

 

Benchmarking: dynamic_100: WHIRLPOOL($p) [32/32 128x1 (MD5_Body)]... DONE

Raw:    1445K c/s real, 1445K c/s virtual

 

Benchmarking: dynamic_101: WHIRLPOOL($s.$p) [32/32 128x1 (MD5_Body)]... DONE

Many salts:     1481K c/s real, 1481K c/s virtual

Only one salt:  1428K c/s real, 1430K c/s virtual

 

Benchmarking: dynamic_102: WHIRLPOOL($p.$s) [32/32 128x1 (MD5_Body)]... DONE

Many salts:     1455K c/s real, 1453K c/s virtual

Only one salt:  1389K c/s real, 1389K c/s virtual

 

Benchmarking: dynamic_1001 md5(md5(md5(md5($p)))) [128/128 SSE2 intrinsics
10x4x3]... DONE

Raw:    6951K c/s real, 6953K c/s virtual

 

Benchmarking: dynamic_1002 md5(md5(md5(md5(md5($p))))) [128/128 SSE2
intrinsics 10x4x3]... DONE

Raw:    5060K c/s real, 5053K c/s virtual

 

Benchmarking: dynamic_1003 md5(md5($p).md5($p)) [32/32 128x1 (MD5_Body)]...
DONE

Raw:    2345K c/s real, 2348K c/s virtual

 

Benchmarking: dynamic_1004 md5(md5(md5(md5(md5(md5($p)))))) [128/128 SSE2
intrinsics 10x4x3]... DONE

Raw:    4212K c/s real, 4210K c/s virtual

 

Benchmarking: dynamic_1005 md5(md5(md5(md5(md5(md5(md5($p))))))) [128/128
SSE2 intrinsics 10x4x3]... DONE

Raw:    3604K c/s real, 3607K c/s virtual

 

Benchmarking: dynamic_1006 md5(md5(md5(md5(md5(md5(md5(md5($p))))))))
[128/128 SSE2 intrinsics 10x4x3]... DONE

Raw:    3151K c/s real, 3150K c/s virtual

 

Benchmarking: dynamic_1007 md5(md5($p).$s) (vBulletin) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     26302K c/s real, 26274K c/s virtual

Only one salt:  8825K c/s real, 8825K c/s virtual

 

Benchmarking: dynamic_1008 md5($p.$s) (RADIUS User-Password) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     16799K c/s real, 16837K c/s virtual

Only one salt:  12580K c/s real, 12565K c/s virtual

 

Benchmarking: dynamic_1009 md5($s.$p) (RADIUS Responses) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     18769K c/s real, 18800K c/s virtual

Only one salt:  14063K c/s real, 14052K c/s virtual

 

Benchmarking: dynamic_1010 md5($p null_padded_to_len_100) RAdmin v2.x MD5
[32/32 128x1 (MD5_Body)]... DONE

Raw:    3655K c/s real, 3657K c/s virtual

 

Benchmarking: dynamic_1011 md5($p.md5($s)) (WebEdition CMS) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     9167K c/s real, 9165K c/s virtual

Only one salt:  7744K c/s real, 7740K c/s virtual

 

Benchmarking: dynamic_1012 md5($p.md5($s)) (WebEdition CMS) [128/128 SSE2
intrinsics 10x4x3]... DONE

Many salts:     16948K c/s real, 16946K c/s virtual

Only one salt:  12758K c/s real, 12761K c/s virtual

 

Benchmarking: dynamic_1013 md5($p.PMD5(username)) (WebEdition CMS) [128/128
SSE2 intrinsics 10x4x3]... DONE

Many salts:     17672K c/s real, 17650K c/s virtual

Only one salt:  13207K c/s real, 13222K c/s virtual

 

Benchmarking: dynamic_1014 md5($p.$s) (long salt) [32/32 128x1
(MD5_Body)]... DONE

Many salts:     2614K c/s real, 2610K c/s virtual

Only one salt:  2101K c/s real, 2100K c/s virtual

 

All 70 formats passed self-tests!

 

 

Notice that OMP only had 58 formats, non-OMP had 70.  These formats are NOT
build into OMP. These are all 'removed' currently, due to hopping into and
out of SSE.  I will look at changing the scripts for SHA1, when built using
SSE2, so that these formats are not dropped.  I will probably have to add a
new 'large format' method like I did for sha256--sha512, GOST, and WhirlPool
formats, and use those methods for SHA1.  I build those 'large' format
methods after I had put the sha1 into code.  The SHA1 stuff was optimized as
much as I could get it, especially for raw-sha1.  The sha2 (and other wide
crypts) have not up to this point had SSE2, so all of these coding was done
using the CTX model (oSSL).  But since those were done, I think I can get
that model (the wide format primatives), working for both the CTX model, and
any new SSE2 code.  The SHA1, bounces into and out of SSE, and is not thread
safe (yet).

 

dynamic_12: md5(md5($s).md5($p)) (IPB)

dynamic_13: md5(md5($p).md5($s))

dynamic_21: HTTP Digest Access Auth

dynamic_22: md5(sha1($p))

dynamic_23: sha1(md5($p))

dynamic_24: sha1($p.$s)

dynamic_25: sha1($s.$p)

dynamic_26: sha1($p) raw-sha1

dynamic_35: sha1(uc($u).:.$p) (ManGOS)

dynamic_36: sha1($u.:.$p) (ManGOS2)

dynamic_37: sha1(lc($u).$p) (SMF)

dynamic_38: sha1($s.sha1($s.sha1($p))) (Wolt3BB)

 


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.