Grasshopper (block cipher)

Grasshopper
GOST R 34.12-2015 [1]
General
Designers InfoTeCS JSC[2]
First published 2015
Certification GOST, and FSS
Cipher detail
Key sizes 256 bits Feistel network
Block sizes 128 bits
Structure Substitution-permutation network
Rounds 10
Best public cryptanalysis
A meet-in-the-middle attack on 5 rounds.[3]

Kuznyechik (Russian: Кузнечик) is a symmetric block cipher. It has a block size of 128 bits and key length of 256 bits. It is defined in the National Standard of the Russian Federation GOST R 34.12-2015[4] and also in RFC 7801.

The name of the cipher can be translated from Russian as Grasshopper, however, the standard explicitly says that the English name for the cipher is Kuznyechik (/kʊznˈɛɪk/). The designers claim that by naming the cipher Kuznyechik they follow the trend of difficult to pronounce algorithm names set up by Rijndael and Keccak.[5]

The standard GOST R 34.12-2015 defines the new cipher in addition to the old GOST block cipher (now called Magma) one and does not declare the old cipher obsolete.[6]

Kuznyechik is based on a substitution-permutation network, though the key schedule employs a Feistel network. The first block cipher with a mixed structure.

Designations

\mathbb FFinite field GF(2^8) x^8 + x^7 + x^6 + x + 1.

Bin_8 : \Z_p \rightarrow V_8\Z_p (p=2^8)

{Bin_8}^{-1}: V_8 \rightarrow \Z_pBin_8.

\delta: V_8 \rightarrow \mathbb F\mathbb F.

\delta^{-1}: \mathbb F \rightarrow V_8\delta

Description

For encryption, decryption and key generation, the following functions:

Add_2[k](a)=k\oplus a, где k, a — двоичные строки вида a=a_{15}||||a_{0} (|| — symbol Concatenation strings).

N(a)=S(a_{15})||||S(a_{0}).~~N^{-1}(a) — обратное к N(a) преобразование.

G(a)=\delta(a_{15},,a_0)||a_{15}||||a_{1}.

G^{-1}(a) — обратное к G(a) преобразование, причём G^{-1}(a)=a_{14}||a_{13}||||a_{0}||\delta(a_{14},a_{13},,a_0,a_{15}).

H(a)=G^{16}(a), где G^{16} — композиция преобразований G^{15} и G и т. д.

F[k](a_1,a_0)=(HNAdd_2[k](a_1)\oplus a_0, a_1).

The nonlinear transformation

Non-linear transformation is given by substituting S = Bin8 S' Bin8−1.

Значения подстановки S' заданы в виде массива S' = (S'(0), S'(1), …, S'(255)):

S' = (252, 238, 221, 17, 207, 110, 49, 22, 251, 196, 250, 218, 35, 197, 4, 77, 233, 119, 240, 219, 147, 46, 153, 186, 23, 54, 241, 187, 20, 205, 95, 193, 249, 24, 101, 90, 226, 92, 239, 33, 129, 28, 60, 66, 139, 1, 142, 79, 5, 132, 2, 174, 227, 106, 143, 160, 6, 11, 237, 152, 127, 212, 211, 31, 235, 52, 44, 81, 234, 200, 72, 171, 242, 42, 104, 162, 253, 58, 206, 204, 181, 112, 14, 86, 8, 12, 118, 18, 191, 114, 19, 71, 156, 183, 93, 135, 21, 161, 150, 41, 16, 123, 154, 199, 243, 145, 120, 111, 157, 158, 178, 177, 50, 117, 25, 61, 255, 53, 138, 126, 109, 84, 198, 128, 195, 189, 13, 87, 223, 245, 36, 169, 62, 168, 67, 201, 215, 121, 214, 246, 124, 34, 185, 3, 224, 15, 236, 222, 122, 148, 176, 188, 220, 232, 40, 80, 78, 51, 10, 74, 167, 151, 96, 115, 30, 0, 98, 68, 26, 184, 56, 130, 100, 159, 38, 65, 173, 69, 70, 146, 39, 94, 85, 47, 140, 163, 165, 125, 105, 213, 149, 59, 7, 88, 179, 64, 134, 172, 29, 247, 48, 55, 107, 228, 136, 217, 231, 137, 225, 27, 131, 73, 76, 63, 248, 254, 141, 83, 170, 144, 202, 216, 133, 97, 32, 113, 103, 164, 45, 43, 9, 91, 203, 155, 37, 208, 190, 229, 108, 82, 89, 166, 116, 210, 230, 244, 180, 192, 209, 102, 175, 194, 57, 75, 99, 182).

Linear transformation

\gamma: \gamma(a_{15}, , a_0) = \delta^{-1}~(148 * \delta(a_{15}) + 32 * \delta(a_{14}) + 133 * \delta(a_{13}) + 16 * \delta(a_{12}) + 194 * \delta(a_{11}) + 192 * \delta(a_{10}) + 1 * \delta(a_9) + 251 * \delta(a_8) + 1 * \delta(a_7) + 192 * \delta(a_6) + 194 * \delta(a_5) + 16 * \delta(a_4) + 133 * \delta(a_3) + 32 * \delta(a_2) + 148 * \delta(a_1) + 1 * \delta(a_0)),

operations of addition and multiplication are carried out in the field \mathbb F.

Key generation

key generation algorithm uses iterative constant C_i=H(Bin_{128}(i)), i=1,2,…32. Sets the shared key K=k_{255}||||k_0.

Iterated keys

K_1=k_{255}||||k_{128}

K_2=k_{127}||||k_{0}

(K_{2i+1}, K_{2i+2})=F[C_{8(i-1)+8}]F[C_{8(i-1)+1}](K_{2i+1}, K_{2i}), i=1, 2, 3, 4.

Encryption algorithm

E(a)=Add_2[K_{10}]HNAdd_2[K_9]HNAdd_2[K_2]HNAdd_2[K_1](a), где a — 128-bit string.

Decryption algorithm

D(a)=Add_2[K_{1}]H^{-1}N^{-1}Add_2[K_2]H^{-1}N^{-1}Add_2[K_9]H^{-1}N^{-1}Add_2[K_{10}](a).

Cryptanalysis

Riham AlTawy and Amr M. Youssef describe a meet-in-the-middle attack on the 5-round reduced Kuznyechik which allows to recover the key with time complexity of 2140, memory complexity of 2153, and data complexity of 2113.[3]

Alex Biryukov, Leo Perrin, and Aleksei Udovenko published a paper in which they show that the S-Boxes of Kuznyechik and Streebog were not created pseudo-randomly but using a hidden algorithm which they were able to reverse engineer.[7]

Riham AlTawy, Onur Duman, and Amr M. Youssef published two fault attacks on Kuznyechik which show the importance of protecting the implementations of the cipher.[8]

References

  1. https://drive.google.com/file/d/0B6BlkqAoxXq1LTgzMFFBekRFQWM/view?pref=2&pli=1
  2. http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip
  3. 1 2 Riham AlTawy and Amr M. Youssef (2015-04-17). "A Meet in the Middle Attack on Reduced Round Kuznyechik" (PDF).
  4. http://tc26.ru/en/standard/gost/GOST_R_34_12_2015_ENG.pdf National Standard of the Russian Federation GOST R 34.12–2015 (English Version)
  5. https://mjos.fi/doc/rus/gh_ctcrypt.pdf Low-Weight and Hi-End: Draft Russian Encryption Standard
  6. http://www.itsec.ru/articles2/crypto/gost-r-chego-ozhidat-ot-novogo-standarta GOST R 34.12–2015: what to expect from a new standard? (Russian only)
  7. Alex Biryukov, Leo Perrin, and Aleksei Udovenko (2016-02-18). "Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 (Full Version)" (PDF).
  8. Riham AlTawy, Onur Duman, and Amr M. Youssef (2015-04-17). "Fault Analysis of Kuznyechik" (PDF).
This article is issued from Wikipedia - version of the Tuesday, April 19, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.