# Lyra2 sponge construction and random numbers?

I have a Lyra2 project and I still have some problems understanding its principle.

I really found a problem when I read about sponge contruction. I found out that it's composed of 3 steps: absorbing, squeezing and duplexing and then we xor the (password, salt, ... ) with random numbers (state) so finally we get the password encrypted but then my problem is: it's not possible to decrypt it, isn't it? So probably I'll decrypt it using a dictionary but the thing is since I'm xoring with just random numbers then for the same word I'll have different encryption each time, won't I?

• Would you mind editing your question to be more precise in asking then "I don't understand its principle"? What exactly do you understand and what not? The more you give us, the better we can help you. BTW: Welcome to Crypto.SE :) – SEJPM Feb 11 '17 at 13:46
• I'm voting to re-open the question as it's now clear what the OP is asking for: "How does one verify a password hash if random numbers are involved, after all one can't decrypt the hash?" – SEJPM Feb 13 '17 at 12:02

• @goldachin rand is just a name for a temporary variable if I read this right, which gets instantiated and assigned a value in a loop early and then used throughout. – SEJPM Feb 16 '17 at 20:44