I've looked at this file https://github.com/monero-project/monero/blob/master/src/crypto/slow-hash.c#L543
What does it mean when it says " CryptoNight Step 1: Use Keccak1600 to initialize the 'state' (and 'text') buffers from the data. */?"
Monero Stack Exchange is a question and answer site for developers and users of the secure, private and untraceable cryptocurrency Monero. It only takes a minute to sign up.
Sign up to join this communityI've looked at this file https://github.com/monero-project/monero/blob/master/src/crypto/slow-hash.c#L543
What does it mean when it says " CryptoNight Step 1: Use Keccak1600 to initialize the 'state' (and 'text') buffers from the data. */?"
The Cryptonight description by the Cryptonote team states that
First, the input is hashed using Keccak [KECCAK] with parameters b = 1600 and c = 512.
In the primitive family Keccak, b is the width of bit block of the permutation function.
Given an input bit string N, a padding function pad, a permutation function f that operates on bit blocks of width b, a rate r and an output length d, we have capacity c = b − r and the sponge construction Z = spongef,pad,r, yielding a bit string Z of length d, works as follows
This value of b is also used by SHA-3 for instance.
EDIT
Regarding your question about the location of the value 1600 in the code:
Function keccak1600 is defined as a special case of function keccak with parameter mdlen equal to the size in bits of the type state_t. This type is an array of 25 uint64_t so the total size is 25*64=1600.