blake2b Algorithm

BLAKE is a cryptographic hash function based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with round constants, is added before each ChaCha round. BLAKE-256 and BLAKE-224 use 32-bit words and produce digest sizes of 256 bits and 224 bits, respectively, while BLAKE-512 and BLAKE-384 use 64-bit words and produce digest sizes of 512 bits and 384 bits, respectively. BLAKE was submitted to the NIST hash function contest by Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and RaphaelBLAKE made it to the final round consisting of five candidates but lost to Keccak in 2012, which was choose for the SHA-3 algorithm. In 2008, there were 51 entry.

blake2b source code, pseudocode and analysis

// step 3 (with input) d ← (d ⊕ a) > > > 8 cThe core operation, equivalent to ChaCha's fourth round, operates on a 4-word column or diagonal a b c d, which is combined with 2 words of message M [ ] and two constant words N [ ].