Educational implementation of the Soviet/Russian GOST 28147-89 block cipher (Magma). 64-bit Feistel network with 256-bit keys using the TestParam S-box set.
| Property | Value |
|---|---|
| Category | Block Ciphers |
| Sub-category | Block Cipher |
| Security status | 🎓 Educational Only |
| Complexity | Intermediate |
| Inventor | Soviet Union cryptographers |
| Year | 1989 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/block/gost.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 32 bytes (256 bits) |
| Block sizes | 8 bytes (64 bits) |
Status: 🎓 Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| Weak key classes | Some keys may exhibit weak differential properties and reduced cycle lengths. | Use uniformly random keys and avoid structured key material. |
| S-box dependency | Security depends heavily on the selected S-box set. | Use standardized or audited S-box collections (e.g., TestParam, CryptoPro). |
3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Crypto++ validation vector 1 (TestParam S-box)
| Field | Value |
|---|---|
key |
be5ec2006cff9dcf52354959f1ff0cbfe95061b5a648c10387069c25997c0672 |
input |
0df82802b741a292 |
expected |
07f9027df7f7df89 |
Vector 2 — Crypto++ validation vector 4 (TestParam S-box)
| Field | Value |
|---|---|
key |
728fee32f04b4c654ad7f607d71c660c2c2670d7c999713233149a1c0c17a1f0 |
input |
d4c05323a4f7a7b5 |
expected |
4d1f2e6b0d9de2ce |
Vector 3 — Crypto++ validation vector 9 (TestParam S-box)
| Field | Value |
|---|---|
key |
620153ee18096e622b6bfe4ff26bd6c4a3c8f4ed705feb5943cc3b5ab93fc11c |
input |
40140a581d78bb49 |
expected |
d48adce9ae2df9a7 |