lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 29 Apr 2015 12:15:41 -0700
From: Bill Cox <waywardgeek@...il.com>
To: "discussions@...sword-hashing.net" <discussions@...sword-hashing.net>
Subject: Added multi-threading support to test suite

I've enhanced Milan's PHCtest on my github account to add a -p <threads>
parameter.  I only currently support this flag with argon, argon2d-sse,
lyra2-sse, yescrypt-2pw-sse, and yescrypt-sse.

Here's a summary of the fastest speeds, when run on my Xeon E5-1650 v2 @
3.50GHz.  All hashes were 1GiB:

Algorithm          Speed (in ms)
--------------------------------
Argon2d-sse          151
Yescrypt-2pw-sse     160
Yescrypt-sse         175
Lyra2-sse            258
Argon               1620

All but Argon are memory-bandwidth limiited.  Argon is external cache-miss
penalty limited, and is not well suited as an Scrypt upgrade (it would be a
downgrade, IMO).  However, since the PHC panel has not yet determined
whether to allow Argon2 into the competition, I've included Argon's
performance here.  Hopefully, this adds some support for allowing Argon2.

Argon2d, Yescrypt, and Lyra2 all provide excellent defense, IMO.  I think
the best defensive runs are, in order of defense:

Yescrypt-2pw-sse with 4 threads, hashing 1GiB in 167ms
Yescrypt-sse with 12 threads, hashing 1GiB in 175ms
Argon2d-sse with 8 threads, hashing 1GiB in 155ms
Lyra2-sse with 4 threads, hashing 1GiB in 218ms

If I understand correctly, the 2-round Yescrypt-2pw-sse run is slightly
more compute-time hardened than the 6-round Yescrypt-sse run.  The 6-round
version does make better use of all 6 of my CPU cores, but I do not think
an attacker will be very computation core limited.  I would rather just use
4 cores and get better runtime and compute-time hardening.

I rate Argon2d-sse after Yescrypt-2pw-sse and Yescrypt-sse for poorer
compute-time hardening and GPU defense, and Lyra2-sse after Argon2-sse for
it's longer runtime, since memory*time defense goes as the square of the
memory hashing speed.

All tests run 3 times, and I show best of 3 runs.
The numbers printed are: in out m_cost t_cost time[ms] memory[kb].

Argon-aesni
-----------

$ ./tst-argon-aesni -p1 -m1045000 -t0
8 32 1045000 0 15252 1041416

$ ./tst-argon-aesni -p2 -m1045000 -t0
8 32 1045000 0 7331 1041472

$ ./tst-argon-aesni -p4 -m1045000 -t0
8 32 1045000 0 4096 1041512

$ ./tst-argon-aesni -p8 -m1045000 -t0
8 32 1045000 0 2198 1041900

$ ./tst-argon-aesni -p12 -m1045000 -t0
8 32 1045000 0 1620 1041704

Argon2d-sse
-----------

$ ./tst-argon2d-sse -p1 -m1048000 -t0
8 32 1048000 0 604 1044432

$ ./tst-argon2d-sse -p2 -m1048000 -t0
8 32 1048000 0 328 1044432

$ ./tst-argon2d-sse -p4 -m1048000 -t0
8 32 1048000 0 215 1044440

$ ./tst-argon2d-sse -p8 -m1048000 -t0
8 32 1048000 0 155 1044524

$ ./tst-argon2d-sse -p12 -m1048000 -t0
8 32 1048000 0 151 1044504

Lyra2-sse
---------

$ ./tst-lyra2-sse -p1 -m43700 -t1
8 32 43700 1 680 1044960

$ ./tst-lyra2-sse -p2 -m43700 -t1
8 32 43700 1 345 1044952

$ ./tst-lyra2-sse -p4 -m43700 -t1
8 32 43700 1 218 1045024

$ ./tst-lyra2-sse -p8 -m43700 -t1
8 32 43700 1 235 1045000

$ ./tst-lyra2-sse -p12 -m43700 -t1
8 32 43700 1 258 1044620

Yescrypt-2pw-sse
------------

$ ./tst-yescrypt-2pw-sse -p1 -m17 -t0
8 32 17 0 543 1044416

$ ./tst-yescrypt-2pw-sse -p2 -m17 -t0
8 32 17 0 285 1044444

$ ./tst-yescrypt-2pw-sse -p4 -m17 -t0
8 32 17 0 167 1044656

$ ./tst-yescrypt-2pw-sse -p8 -m17 -t0
8 32 17 0 163 1044660

$ ./tst-yescrypt-2pw-sse -p12 -m17 -t0
8 32 17 0 160 1044512

Yescrypt-sse
------------

$ ./tst-yescrypt-sse -p1 -m17 -t0
8 32 17 0 914 1044420

$ ./tst-yescrypt-sse -p2 -m17 -t0
8 32 17 0 471 1044608

$ ./tst-yescrypt-sse -p4 -m17 -t0
8 32 17 0 369 1044468

$ ./tst-yescrypt-sse -p8 -m17 -t0
8 32 17 0 209 1044560

$ ./tst-yescrypt-sse -p12 -m17 -t0
8 32 17 0 175 1044588

Content of type "text/html" skipped

Powered by blists - more mailing lists