Hamsi is a family of cryptographic hash functions. The design is influenced by Grindahl and Serpent but it uses novel ideas as well. It is submitted to the Hash Function Competition of NIST and has been selected for the Second Round. It is not covered by any patents.
The Iteration Mode
The iteration mode of Hamsi is based on the `Concatenate-Permute-Truncate` design strategy. In addition to this approach, it uses a message expansion and a feedforward of the chaining value in each iteration. The non-linear permutation required for the design uses the linear transformation and one of the Sbox of the block cipher Serpent.
At the core of Hamsi are the expansion function and round transformations. Round transformation operates on a state matrix of 4 rows. The number of columns is 4 for Hamsi-256, 8 for Hamsi-512. Any entry in the matrix is a word of 32 bits.
In every round, 4 operations change the matrix. The first is a constant xor into the whole matrix. The second is a simple xor of round number into the LSB bits of s. The third is an Sbox substitution, and the fourth is a diffusion operation on the matrix. The substitution layer uses a simple Sbox to operate on groups of 4 bits taken from the same bit position in each 4 rows of the state matrix. The result is written back into the same bits. The diffusion layer operates on 4 words from different positions in the matrix, and the result is written back to those positions.
- Third (final) Round Candidates
- Second Round Candidates of the SHA-3 Competition
- The First Sha-3 Candidate Conference
- The Second Sha-3 Candidate Conference