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-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 16 Apr 2015 08:53:00 +0200
From: Milan Broz <gmazyland@...il.com>
To: discussions@...sword-hashing.net
Subject: Re: [PHC] Updated tests document

On 04/06/2015 11:17 PM, Solar Designer wrote:
> On Mon, Apr 06, 2015 at 11:10:27PM +0200, Milan Broz wrote:
>> It would be very nice to test also parallel attribute but then functions should
>> export some unified interface.
>> If it is not too late, maybe addinng m_parallel to PHS() as a tweak...
> 
> I know it's not right for your use case, but for password hashing on a
> server the parallelism would be external to PHS(), so maybe you can
> simply have your own wrapper start multiple independent threads, for
> independent password hashes computed with their own PHS() calls?  And
> provide a chart showing throughput in requests/second vs. memory usage
> (e.g. 128 KB to 128 MB), at the lowest supported t_cost and the maximum
> number of concurrent threads supported in hardware (e.g. 8 on a
> currently typical quad-core CPU).  I'd find such results helpful.

Hi,

I tried to hack something, it is not perfect but it could provide some overview,
but please take it with a grain of (non-crypto) salt :-)

- using memory table from Steve (128k/1M/16M/128M)

- test forks N processes, parent waits 60 seconds (in this tests) and then
*waits* for all children to finish the last hash (this time is measured).
I am using SHM quite stupid way here to sync it, but it works it this case.
(Pufferfish and Argon1 on 100MiB run time exceeds 60 seconds, so measurement
is really not reliable here.)

(Moreover, all hashes all the same but this should not be a problem.)

- config is here Lenovo x230, dual-core with hyperthreading enabled
https://raw.githubusercontent.com/mbroz/PHCtest/master/output/round2_Lenovo_X230_i5_16G/lscpu

- it increases # processes up to 8, > 4 cpu it should not add anything.

Output looks like this:

128kiB
https://raw.githubusercontent.com/mbroz/PHCtest/master/output/round2_Lenovo_X230_i5_16G/r_parallel_0/parallel_threads_0.png

1MiB
https://raw.githubusercontent.com/mbroz/PHCtest/master/output/round2_Lenovo_X230_i5_16G/r_parallel_1/parallel_threads_1.png

16MiB
https://raw.githubusercontent.com/mbroz/PHCtest/master/output/round2_Lenovo_X230_i5_16G/r_parallel_2/parallel_threads_2.png

128MiB
https://raw.githubusercontent.com/mbroz/PHCtest/master/output/round2_Lenovo_X230_i5_16G/r_parallel_3/parallel_threads_3.png

NOTE: yescrypt is here updated to yescrypt-opt, reference implementation is no longer used.
Catena is updated as well (but this is not performance related).

I guess there are some bugs, pls let me know if you spot something apparently wrong there,
I partially hacked it during a meeting with many distractions:-)

I'll update other test run & report later, need to run everything again and it will take several hours.

I also added yescrypt with reduced 2 PWXrounds to repo, but I guess it makes sense only
for "normalized" test chart...

Thanks,
Milan

Powered by blists - more mailing lists