The GOST hash function, defined in the standards GOST R 34.11-94 and GOST 34.311-95, is a 256-bit cryptographic hash function. It was initially defined in the Russian national standard GOST R 34.11-94 Information Technology - Cryptographic Information Security - Hash Function. The equivalent standard used by other member-states of the CIS is GOST 34.311-95.
GOST processes a variable-length message into a fixed-length output of 256 bits. The input message is broken up into chunks of 256-bit blocks (eight 32-bit little endian integers); the message is padded by appending as many zeros to it as are required to bring the length of the message up to 256 bits. The remaining bits are filled up with a 256-bit integer arithmetic sum of all previously hashed blocks and then a 256-bit integer representing the length of the original message, in bits.
The algorithm descriptions uses the following notations:
<math>mathcal0mathcal^j</math> — j-bit block filled with zeroes.
<math>mathcalMmathcal</math> — length of the M block in bits modulo 2<sup>256</sup>.
<math>mathcal</math> — concatenation of two blocks.
<math>+</math> — arithmetic sum of two blocks modulo 2<sup>256</sup>
<math>oplus</math> — logical xor of two blocks
Further we consider that the little-order bit is located at the left of a block,... Read More