Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 30 Jul 2015 08:16:05 +0300
From: Solar Designer <>
Subject: Re: PHC: Argon2 on CPU

On Mon, Jul 27, 2015 at 05:23:55PM +0200, Agnieszka Bielec wrote:
> hi, should I add function PHS() or Argon2iOpt()/Argon2dOpt() ?

The latter.  It means you should support the "secret", "ad", and "lanes"
inputs.  Treat them as part of salt, as far as JtR is concerned.

Also, the 2i and 2d will soon be merged into one (as Argon2 is being
finalized as the PHC winner), with a parameter to choose which flavor to
invoke (and code duplication reduced).  You may proactively treat them
as one JtR format, with an extra 1-bit parameter (to choose 2i or 2d),
to be included as part of JtR's salt as well.

That said, you will need to run separate benchmarks for 2i and 2d, as
well as for different values of "lanes".  Much like you already did for
some other PHC finalists for different values of their parameters.

When you eventually reach implementing Argon2 on GPU:

2i and 2d also have sufficiently different memory access patterns
(despite of similar code) that you'd likely need to optimize their GPU
implementations separately.  2i should allow for efficient prefetching
(although local or private memory to prefetch to might be too limited),
2d should not.  2i might also slightly benefit from an interleaved
memory layout (with blocks of data from different instances
interleaved), whereas 2d should not.


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.