Russian Federal standard hash function GOST R 34.11-2012, republished as RFC 6986. A 512-bit state is mixed by twelve rounds of an AES-like substitution-permutation network, with a block counter and a running checksum folded in at the end. This is the 256-bit variant.
| Property | Value |
|---|---|
| Category | Hash Functions |
| Sub-category | GOST |
| Security status | Not classified |
| Complexity | Intermediate |
| Inventor | Center for Information Protection and Special Communications of the FSB of Russia, InfoTeCS JSC |
| Year | 2012 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/hash/streebog.js |
| Parameter | Supported values |
|---|---|
| Output sizes | 32 bytes (256 bits) |
| Hash sizes | 32 bytes (256 bits) |
Status: not classified — treat as unverified.
| Issue | Description | Mitigation |
|---|---|---|
| Unexplained S-box | The origin of the substitution Pi has never been published, which has drawn academic criticism even though no attack on the full function is known. | — |
8 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — RFC 6986 example 1 - M1, 63 bytes
| Field | Value |
|---|---|
input |
30313233343536373839303132333435 36373839303132333435363738393031 32333435363738393031323334353637 383930313233343536373839303132 |
expected |
9d151eefd8590b89daa6ba6cb74af9275dd051026bb149a452fd84e5e57b5500 |
Vector 2 — RFC 6986 example 2 - M2, 72 bytes spanning two blocks
| Field | Value |
|---|---|
input |
d1e520e2e5f2f0e82c20d1f2f0e8e1ee e6e820e2edf3f6e82c20e2e5fef2fa20 f120eceef0ff20f1f2f0e5ebe0ece820 ede020f5f0e0e1f0fbff20efebfaeafb 20c8e3eef0e5e2fb |
expected |
9dd2fe4e90409e5da87f53976d7405b0c0cac628fc669a741d50063c557e8f50 |
Vector 3 — Botan streebog.vec - empty message
| Field | Value |
|---|---|
input |
(empty) |
expected |
3f539a213e97c802cc229d474c6aa32a825a360b2a933a949fd925208d9ce1bb |
Vector 4 — Botan streebog.vec - one byte
| Field | Value |
|---|---|
input |
c6 |
expected |
d907b672d09f48d27ad06c26647921c9e25d063c038eaaefac81e749dc1d98b5 |
Vector 5 — Botan streebog.vec - 64 bytes, exactly the block size, forcing an all-padding block
| Field | Value |
|---|---|
input |
00b7d1c42da82cc055affead5924db66 2e5a080081697f8287c687fe91d32b42 54fbb961725559a32c43c3f8114e05c2 991108228ed83edc476fb9a62874fab1 |
expected |
68367c34ad8441a48ac7fc65657ac73aa51e1a36c5346c0bf011945bcb9ef773 |
Vector 6 — Botan streebog.vec - 65 bytes, one over the block size
| Field | Value |
|---|---|
input |
89e8a4ccd6285add12b0c46506e91c09 a3c2dd30951eb72818b58187f1a608ed ebf569fa81254970ad7f04ae9a25827f a6482829fdc0797a5cff6f7446d14576 d2 |
expected |
64f56da108ea18571aacb6852b5be57999ec5de82a7d1f719fcddfc7ec1b0ad1 |
Vector 7 — Botan streebog.vec - 127 bytes, one under two blocks
| Field | Value |
|---|---|
input |
c1c065c63b1b848430326ded0cd23cff c644296813df0f968275492026737fd8 d26f8690f19512e5a7c936050fc6b011 d0538a6d5c1e75f839af3b0237d4a1ac cb497de6733f9717326260401a77a564 e7bca93ae9fe7d257060e44ea08c350c 9f64a78ce095fe29a7d1fc23de9350a4 7b71eda31514d134d84b5180930e29 |
expected |
1ef768f7ae820c2966b7c60b0cf208ab89c1f7b60f9b2cab61253c38d1f2c987 |
Vector 8 — Botan streebog.vec - 128 bytes, an exact multiple of the block size
| Field | Value |
|---|---|
input |
290f597702e009d86f49d5362346309e 26919eacbcb86165be4906056d43f95a 1e181b2b0c12785c929f17a3d25943f5 313641c915bf5dd38882d587da1da65d 6658f89764e28ee13a24ac9349e68035 79baa17d6ca571793c13f7a0fe46043d eeed08922fb2e2353d8718c5f1c7f1fb a2df54e9cbbad54a750da656863d2843 |
expected |
c9c82e740ccc34fc0c14c61ab4eb037542d77ffda00d484aff97c1144346704f |