Streebog () is a cryptographic hash function defined in the Russian national standard GOST R 34.11-2012 Information Technology â Cryptographic Information Security â Hash Function. It was created to replace an obsolete GOST hash function defined in the old standard GOST R 34.11-94, and as an asymmetric reply to SHA-3 competition by the US National Institute of Standards and Technology. The function is also described in RFC 6986 and one out of hash functions in ISO/IEC 10118-3:2018.
Streebog operates on 512-bit blocks of the input, using the MerkleâÂÂDamgÃÂ¥rd construction to handle inputs of arbitrary size.
The high-level structure of the new hash function resembles the one from GOST R 34.11-94, however, the compression function was changed significantly. The compression function operates in MiyaguchiâÂÂPreneel mode and employs a 12-round AES-like cipher with a 512-bit block and 512-bit key. (It uses an 8ÃÂ8 matrix of bytes rather than AES's 4ÃÂ4 matrix.)
Streebog-256 uses a different initial state than Streebog-512, and truncates the output hash, but is otherwise identical.
The function was named Streebog after Stribog, the god of rash wind in ancient Slavic mythology, and is often referred by this name, even though it is not explicitly mentioned in the text of the standard.
Hash values of empty string. <span style="color: green;">Streebog-256("")</span> 0x 3f539a213e97c802cc229d474c6aa32a825a360b2a933a949fd925208d9ce1bb <span style="color: green;">Streebog-512("")</span> 0x 8e945da209aa869f0455928529bcae4679e9873ab707b55315f56ceb98bef0a7 \ 362f715528356ee83cda5f2aac4c6ad2ba3a715c1bcd81cb8e9f90bf4c1c1a8a
Even a small change in the message will (with overwhelming probability) result in a mostly different hash, due to the avalanche effect. For example, adding a period to the end of the sentence: <span style="color: green;">Streebog-256("The quick brown fox jumps over the lazy dog")</span> 0x 3e7dea7f2384b6c5a3d0e24aaa29c05e89ddd762145030ec22c71a6db8b2c1f4 <span style="color: green;">Streebog-256("The quick brown fox jumps over the lazy dog.")</span> 0x 36816a824dcbe7d6171aa58500741f2ea2757ae2e1784ab72c5c3c6c198d71da <span style="color: green;">Streebog-512("The quick brown fox jumps over the lazy dog")</span> 0x d2b793a0bb6cb5904828b5b6dcfb443bb8f33efc06ad09368878ae4cdc8245b9 \ 7e60802469bed1e7c21a64ff0b179a6a1e0bb74d92965450a0adab69162c00fe <span style="color: green;">Streebog-512("The quick brown fox jumps over the lazy dog.")</span> 0x fe0c42f267d921f940faa72bd9fcf84f9f1bd7e9d055e9816e4c2ace1ec83be8 \ 2d2957cd59b86e123d8f5adee80b3ca08a017599a9fc1a14d940cf87c77df070
In 2013 the Russian Technical Committee for Standardization "Cryptography and Security Mechanisms" (TC 26) with the participation of Academy of Cryptography of the Russian Federation declared an open competition for cryptanalysis of the Streebog hash function, which attracted international attention to the function.
Ma, et al, describe a preimage attack that takes 2<sup>496</sup> time and 2<sup>64</sup> memory or 2<sup>504</sup> time and 2<sup>11</sup> memory to find a single preimage of GOST-512 reduced to 6 rounds. They also describe a collision attack with 2<sup>181</sup> time complexity and 2<sup>64</sup> memory requirement in the same paper.
Guo, et al, describe a second preimage attack on full Streebog-512 with total time complexity equivalent to 2<sup>266</sup> compression function evaluations, if the message has more than 2<sup>259</sup> blocks.
AlTawy and Youssef published an attack to a modified version of Streebog with different round constants. While this attack may not have a direct impact on the security of the original Streebog hash function, it raised a question about the origin of the used parameters in the function. The designers published a paper explaining that these are pseudorandom constants generated with Streebog-like hash function, provided with 12 different natural language input messages.
AlTawy, et al, found 5-round free-start collision and a 7.75 free-start near collision for the internal cipher with complexities 2<sup>8</sup> and 2<sup>40</sup>, respectively, as well as attacks on the compression function with 7.75 round semi free-start collision with time complexity 2<sup>184</sup> and memory complexity 2<sup>8</sup>, 8.75 and 9.75 round semi free-start near collisions with time complexities 2<sup>120</sup> and 2<sup>196</sup>, respectively.
Wang, et al, describe a collision attack on the compression function reduced to 9.5 rounds with 2<sup>176</sup> time complexity and 2<sup>128</sup> memory complexity.
In 2015 Biryukov, Perrin and Udovenko reverse engineered the unpublished S-box generation structure (which was earlier claimed to be generated randomly) and concluded that the underlying components are cryptographically weak.