«Кузнечик» (англ. Kuznyechik [ 1] или англ. Kuznechik [ 2] [ 3] ) — симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа 256 бит, использующий для генерации раундовых ключей SP-сеть .
Данный шифр утверждён (наряду с блочным шифром «Магма» ) в качестве стандарта в ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» приказом от 19 июня 2015 года № 749-ст[ 4] . Стандарт вступил в действие с 1 января 2016 года[ 5] . Шифр разработан Центром защиты информации и специальной связи ФСБ России с участием АО «Информационные технологии и коммуникационные системы» (АО «ИнфоТеКС» ). Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»[ 6] [ 7] .
Протоколом № 54 от 29 ноября 2018 года , на основе ГОСТ Р 34.12-2015 , Межгосударственным советом по метрологии, стандартизации и сертификации был принят межгосударственный стандарт ГОСТ 34.12-2018 . Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 года № 1061-ст стандарт ГОСТ 34.12-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 года .
F
{\displaystyle \mathbb {F} }
— поле Галуа
G
F
(
2
8
)
{\displaystyle GF(2^{8})}
по модулю неприводимого многочлена
x
8
+
x
7
+
x
6
+
x
+
1
{\displaystyle x^{8}+x^{7}+x^{6}+x+1}
.
B
i
n
8
:
Z
p
→
V
8
{\displaystyle Bin_{8}:\mathbb {Z} _{p}\rightarrow V_{8}}
— биективное отображение, ставящее в соответствие элементу кольца
Z
p
{\displaystyle \mathbb {Z} _{p}}
(
p
=
2
8
{\displaystyle p=2^{8}}
) его двоичное представление.
B
i
n
8
−
1
:
V
8
→
Z
p
{\displaystyle {Bin_{8}}^{-1}:V_{8}\rightarrow \mathbb {Z} _{p}}
— отображение, обратное к
B
i
n
8
{\displaystyle Bin_{8}}
.
δ
:
V
8
→
F
{\displaystyle \delta :V_{8}\rightarrow \mathbb {F} }
— биективное отображение, ставящее в соответствие двоичной строке элемент поля
F
{\displaystyle \mathbb {F} }
.
δ
−
1
:
F
→
V
8
{\displaystyle \delta ^{-1}:\mathbb {F} \rightarrow V_{8}}
— отображение, обратное к
δ
{\displaystyle \delta }
Для шифрования, расшифрования и генерации ключа используются следующие функции:
A
d
d
2
[
k
]
(
a
)
=
k
⊕
a
{\displaystyle Add_{2}[k](a)=k\oplus a}
, где
k
{\displaystyle k}
,
a
{\displaystyle a}
— двоичные строки вида
a
=
a
15
|
|
{\displaystyle a=a_{15}||}
…
|
|
a
0
{\displaystyle ||a_{0}}
(
|
|
{\displaystyle ||}
— символ конкатенации строк).
N
(
a
)
=
S
(
a
15
)
|
|
{\displaystyle N(a)=S(a_{15})||}
…
|
|
S
(
a
0
)
.
N
−
1
(
a
)
{\displaystyle ||S(a_{0}).~~N^{-1}(a)}
— обратное к
N
(
a
)
{\displaystyle N(a)}
преобразование.
G
(
a
)
=
γ
(
a
15
,
{\displaystyle G(a)=\gamma (a_{15},}
…
,
a
0
)
|
|
a
15
|
|
{\displaystyle ,a_{0})||a_{15}||}
…
|
|
a
1
.
{\displaystyle ||a_{1}.}
G
−
1
(
a
)
{\displaystyle G^{-1}(a)}
— обратное к
G
(
a
)
{\displaystyle G(a)}
преобразование, причём
G
−
1
(
a
)
=
a
14
|
|
a
13
|
|
{\displaystyle G^{-1}(a)=a_{14}||a_{13}||}
…
|
|
a
0
|
|
γ
(
a
14
,
a
13
,
{\displaystyle ||a_{0}||\gamma (a_{14},a_{13},}
…
,
a
0
,
a
15
)
.
{\displaystyle ,a_{0},a_{15}).}
H
(
a
)
=
G
16
(
a
)
{\displaystyle H(a)=G^{16}(a)}
, где
G
16
{\displaystyle G^{16}}
— композиция преобразований
G
15
{\displaystyle G^{15}}
и
G
{\displaystyle G}
и т. д.
F
[
k
]
(
a
1
,
a
0
)
=
(
H
N
A
d
d
2
[
k
]
(
a
1
)
⊕
a
0
,
a
1
)
.
{\displaystyle F[k](a_{1},a_{0})=(HNAdd_{2}[k](a_{1})\oplus a_{0},a_{1}).}
Нелинейное преобразование задается подстановкой 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
,
{\displaystyle 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
)
.
{\displaystyle 116,210,230,244,180,192,209,102,175,194,57,75,99,182).}
Задаётся отображением
γ
{\displaystyle \gamma }
:
γ
(
a
15
,
{\displaystyle \gamma (a_{15},}
…
,
a
0
)
=
δ
−
1
(
148
∗
δ
(
a
15
)
+
32
∗
δ
(
a
14
)
+
133
∗
δ
(
a
13
)
+
16
∗
δ
(
a
12
)
+
{\displaystyle ,a_{0})=\delta ^{-1}~(148*\delta (a_{15})+32*\delta (a_{14})+133*\delta (a_{13})+16*\delta (a_{12})+}
194
∗
δ
(
a
11
)
+
192
∗
δ
(
a
10
)
+
1
∗
δ
(
a
9
)
+
251
∗
δ
(
a
8
)
+
1
∗
δ
(
a
7
)
+
192
∗
δ
(
a
6
)
+
{\displaystyle 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
∗
δ
(
a
5
)
+
16
∗
δ
(
a
4
)
+
133
∗
δ
(
a
3
)
+
32
∗
δ
(
a
2
)
+
148
∗
δ
(
a
1
)
+
1
∗
δ
(
a
0
)
)
,
{\displaystyle 194*\delta (a_{5})+16*\delta (a_{4})+133*\delta (a_{3})+32*\delta (a_{2})+148*\delta (a_{1})+1*\delta (a_{0})),}
где операции сложения и умножения осуществляются в поле
F
{\displaystyle \mathbb {F} }
.
Алгоритм генерации ключа использует итерационные константы
C
i
=
H
(
B
i
n
128
(
i
)
)
{\displaystyle C_{i}=H(Bin_{128}(i))}
, i=1,2,…32.
Задается общий ключ
K
=
k
255
|
|
{\displaystyle K=k_{255}||}
…
|
|
k
0
{\displaystyle ||k_{0}}
.
Вычисляются итерационные ключи
K
1
=
k
255
|
|
{\displaystyle K_{1}=k_{255}||}
…
|
|
k
128
{\displaystyle ||k_{128}}
K
2
=
k
127
|
|
{\displaystyle K_{2}=k_{127}||}
…
|
|
k
0
{\displaystyle ||k_{0}}
(
K
2
i
+
1
,
K
2
i
+
2
)
=
F
[
C
8
(
i
−
1
)
+
8
]
{\displaystyle (K_{2i+1},K_{2i+2})=F[C_{8(i-1)+8}]}
…
F
[
C
8
(
i
−
1
)
+
1
]
(
K
2
i
−
1
,
K
2
i
)
,
i
=
1
,
2
,
3
,
4.
{\displaystyle F[C_{8(i-1)+1}](K_{2i-1},K_{2i}),i=1,2,3,4.}
E
(
a
)
=
A
d
d
2
[
K
10
]
H
N
A
d
d
2
[
K
9
]
{\displaystyle E(a)=Add_{2}[K_{10}]HNAdd_{2}[K_{9}]}
…
H
N
A
d
d
2
[
K
2
]
H
N
A
d
d
2
[
K
1
]
(
a
)
,
{\displaystyle HNAdd_{2}[K_{2}]HNAdd_{2}[K_{1}](a),}
где a — строка размером 128 бит.
D
(
a
)
=
A
d
d
2
[
K
1
]
N
−
1
H
−
1
A
d
d
2
[
K
2
]
{\displaystyle D(a)=Add_{2}[K_{1}]N^{-1}H^{-1}Add_{2}[K_{2}]}
…
N
−
1
H
−
1
A
d
d
2
[
K
9
]
N
−
1
H
−
1
A
d
d
2
[
K
10
]
(
a
)
.
{\displaystyle N^{-1}H^{-1}Add_{2}[K_{9}]N^{-1}H^{-1}Add_{2}[K_{10}](a).}
Строка «a» задается в шестнадцатеричном виде и имеет размер 16 байт, причём каждый байт задается двумя шестнадцатеричными числами.
Таблица соответствия строк в двоичном и в шестнадцатеричном виде:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
N
(
00112233445566778899
a
a
b
b
c
c
d
d
e
e
f
f
)
=
f
c
7765
a
e
e
a
o
c
9
a
7
e
e
8
d
7387
d
88
d
86
c
b
6
{\displaystyle N(00112233445566778899aabbccddeeff)=fc7765aeeaoc9a7ee8d7387d88d86cb6}
G
(
00000000000000000000000000000100
)
=
94000000000000000000000000000001
{\displaystyle G(00000000000000000000000000000100)=94000000000000000000000000000001}
G
(
94000000000000000000000000000001
)
=
a
5940000000000000000000000000000
{\displaystyle G(94000000000000000000000000000001)=a5940000000000000000000000000000}
G
(
a
5940000000000000000000000000000
)
=
64
a
59400000000000000000000000000
{\displaystyle G(a5940000000000000000000000000000)=64a59400000000000000000000000000}
G
(
64
a
59400000000000000000000000000
)
=
0
d
64
a
594000000000000000000000000
{\displaystyle G(64a59400000000000000000000000000)=0d64a594000000000000000000000000}
H
(
64
a
59400000000000000000000000000
)
=
d
456584
d
d
0
e
3
e
84
c
c
3166
e
4
b
7
f
a
2890
d
{\displaystyle H(64a59400000000000000000000000000)=d456584dd0e3e84cc3166e4b7fa2890d}
K
=
8899
a
a
b
b
c
c
d
d
e
e
f
f
0011223344556677
f
e
d
c
b
a
98765432100123456789
a
b
c
d
e
f
.
{\displaystyle K=8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.}
K
1
=
8899
a
a
b
b
c
c
d
d
e
e
f
f
0011223344556677
,
{\displaystyle K_{1}=8899aabbccddeeff0011223344556677,}
K
2
=
f
e
d
c
b
a
98765432100123456789
a
b
c
d
e
f
.
{\displaystyle K_{2}=fedcba98765432100123456789abcdef.}
C
1
=
6
e
a
276726
c
487
a
b
85
d
27
b
d
10
d
d
849401
,
{\displaystyle C_{1}=6ea276726c487ab85d27bd10dd849401,}
A
d
d
2
[
C
1
]
(
K
1
)
=
e
63
b
d
c
c
9
a
09594475
d
369
f
2399
d
1
f
276
,
{\displaystyle Add_{2}[C_{1}](K_{1})=e63bdcc9a09594475d369f2399d1f276,}
N
A
d
d
2
[
C
1
[
(
K
1
)
=
0998
c
a
37
a
7947
a
a
b
b
78
f
4
a
5
a
e
81
b
748
a
,
{\displaystyle NAdd_{2}[C_{1}[(K_{1})=0998ca37a7947aabb78f4a5ae81b748a,}
H
N
A
d
d
2
[
C
1
]
(
K
1
)
=
3
d
0940999
d
b
75
d
6
a
9257071
d
5
e
6144
a
6
,
{\displaystyle HNAdd_{2}[C_{1}](K_{1})=3d0940999db75d6a9257071d5e6144a6,}
F
[
C
1
]
(
K
1
,
K
2
)
=
(
H
N
A
d
d
2
[
C
1
]
(
K
1
)
⊕
K
2
,
K
1
)
=
(
c
3
d
5
f
a
01
e
b
e
36
f
7
a
9374427
a
d
7
c
a
8949
,
8899
a
a
b
b
c
c
d
d
e
e
f
f
0011223344556677
)
.
{\displaystyle F[C_{1}](K_{1},K_{2})=(HNAdd_{2}[C_{1}](K_{1})\oplus K_{2},K_{1})=(c3d5fa01ebe36f7a9374427ad7ca8949,8899aabbccddeeff0011223344556677).}
C
2
=
d
c
87
e
c
e
4
d
890
f
4
b
3
b
a
4
e
b
92079
c
b
e
b
02
,
{\displaystyle C_{2}=dc87ece4d890f4b3ba4eb92079cbeb02,}
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
37777748
e
56453377
d
5
e
262
d
90903
f
87
,
c
3
d
5
f
a
01
e
b
e
36
f
7
a
9374427
a
d
7
c
a
8949
)
.
{\displaystyle F[C_{2}]F[C_{1}](K_{1},K_{2})=(37777748e56453377d5e262d90903f87,c3d5fa01ebe36f7a9374427ad7ca8949).}
C
3
=
b
2259
a
96
b
4
d
88
e
0
b
e
7690430
a
44
f
7
f
03
,
{\displaystyle C_{3}=b2259a96b4d88e0be7690430a44f7f03,}
F
[
C
3
]
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
f
9
e
a
e
5
f
29
b
2815
e
31
f
11
a
c
5
d
9
c
29
f
b
01
,
37777748
e
56453377
d
5
e
262
d
90903
f
87
)
.
{\displaystyle F[C_{3}]F[C_{2}]F[C_{1}](K_{1},K_{2})=(f9eae5f29b2815e31f11ac5d9c29fb01,37777748e56453377d5e262d90903f87).}
C
4
=
7
b
c
d
1
b
0
b
73
e
32
b
a
5
b
79
c
b
140
f
2551504
,
{\displaystyle C_{4}=7bcd1b0b73e32ba5b79cb140f2551504,}
F
[
C
4
]
F
[
C
3
]
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
e
980089683
d
00
d
4
b
e
37
d
d
3434699
b
98
f
,
f
9
e
a
e
5
f
29
b
2815
e
31
f
11
a
c
5
d
9
c
29
f
b
01
)
.
{\displaystyle F[C_{4}]F[C_{3}]F[C_{2}]F[C_{1}](K_{1},K_{2})=(e980089683d00d4be37dd3434699b98f,f9eae5f29b2815e31f11ac5d9c29fb01).}
C
5
=
156
f
6
d
791
f
a
b
511
d
e
a
b
b
0
c
502
f
d
18105
,
{\displaystyle C_{5}=156f6d791fab511deabb0c502fd18105,}
F
[
C
5
]
F
[
C
4
]
F
[
C
3
]
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
b
7
b
d
70
a
c
e
a
4460714
f
4
e
b
e
13835
c
f
004
,
e
980089683
d
00
d
4
b
e
37
d
d
3434699
b
98
f
)
.
{\displaystyle F[C_{5}]F[C_{4}]F[C_{3}]F[C_{2}]F[C_{1}](K_{1},K_{2})=(b7bd70acea4460714f4ebe13835cf004,e980089683d00d4be37dd3434699b98f).}
C
6
=
a
74
a
f
7
e
f
a
b
73
d
f
160
d
d
208608
b
9
e
f
e
06
,
{\displaystyle C_{6}=a74af7efab73df160dd208608b9efe06,}
F
[
C
6
]
F
[
C
5
]
F
[
C
4
]
F
[
C
3
]
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
1
a
46
e
a
1
c
f
6
c
c
d
236467287
d
f
93
f
d
f
974
,
b
7
b
d
70
a
c
e
a
4460714
f
4
e
b
e
13835
c
f
004
)
.
{\displaystyle F[C_{6}]F[C_{5}]F[C_{4}]F[C_{3}]F[C_{2}]F[C_{1}](K_{1},K_{2})=(1a46ea1cf6ccd236467287df93fdf974,b7bd70acea4460714f4ebe13835cf004).}
C
7
=
c
9
e
8819
d
c
73
b
a
5
a
e
50
f
5
b
570561
a
6
a
07
,
{\displaystyle C_{7}=c9e8819dc73ba5ae50f5b570561a6a07,}
F
[
C
7
]
F
[
C
6
]
F
[
C
5
]
F
[
C
4
]
F
[
C
3
]
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
3
d
4553
d
8
e
9
c
f
e
c
6815
e
b
a
d
c
40
a
9
f
f
d
04
,
1
a
46
e
a
1
c
f
6
c
c
d
236467287
d
f
93
f
d
f
974
)
.
{\displaystyle F[C_{7}]F[C_{6}]F[C_{5}]F[C_{4}]F[C_{3}]F[C_{2}]F[C_{1}](K_{1},K_{2})=(3d4553d8e9cfec6815ebadc40a9ffd04,1a46ea1cf6ccd236467287df93fdf974).}
C
8
=
f
6593616
e
6055689
a
d
f
b
a
18027
a
a
2
a
08
,
{\displaystyle C_{8}=f6593616e6055689adfba18027aa2a08,}
(
K
3
,
K
4
)
=
F
[
C
8
]
F
[
C
7
]
{\displaystyle (K_{3},K_{4})=F[C_{8}]F[C_{7}]}
…
F
[
C
2
]
F
[
C
1
]
(
K
1
,
K
2
)
=
(
d
b
31485315694343228
d
6
a
e
f
8
c
c
78
c
44
,
3
d
4553
d
8
e
9
c
f
e
c
6815
e
b
a
d
c
40
a
9
f
f
d
04
)
.
{\displaystyle F[C_{2}]F[C_{1}](K_{1},K_{2})=(db31485315694343228d6aef8cc78c44,3d4553d8e9cfec6815ebadc40a9ffd04).}
В итоге получаем итерационные ключи:
K
1
=
8899
a
a
b
b
c
c
d
d
e
e
f
f
0011223344556677
,
{\displaystyle K_{1}=8899aabbccddeeff0011223344556677,}
K
2
=
f
e
d
c
b
a
98765432100123456789
a
b
c
d
e
f
,
{\displaystyle K_{2}=fedcba98765432100123456789abcdef,}
K
3
=
d
b
31485315694343228
d
6
a
e
f
8
c
c
78
c
44
,
{\displaystyle K_{3}=db31485315694343228d6aef8cc78c44,}
K
4
=
3
d
4553
d
8
e
9
c
f
e
c
6815
e
b
a
d
c
40
a
9
f
f
d
04
,
{\displaystyle K_{4}=3d4553d8e9cfec6815ebadc40a9ffd04,}
K
5
=
57646468
c
44
a
5
e
28
d
3
e
59246
f
429
f
1
a
c
,
{\displaystyle K_{5}=57646468c44a5e28d3e59246f429f1ac,}
K
6
=
b
d
079435165
c
6432
b
532
e
82834
d
a
581
b
,
{\displaystyle K_{6}=bd079435165c6432b532e82834da581b,}
K
7
=
51
e
640757
e
8745
d
e
705727265
a
0098
b
1
,
{\displaystyle K_{7}=51e640757e8745de705727265a0098b1,}
K
8
=
5
a
7925017
b
9
f
d
d
3
e
d
72
a
91
a
22286
f
984
,
{\displaystyle K_{8}=5a7925017b9fdd3ed72a91a22286f984,}
K
9
=
b
b
44
e
25378
c
73123
a
5
f
32
f
73
c
d
b
6
e
517
,
{\displaystyle K_{9}=bb44e25378c73123a5f32f73cdb6e517,}
K
10
=
72
e
9
d
d
7416
b
c
f
45
b
755
d
b
a
a
88
e
4
a
4043.
{\displaystyle K_{10}=72e9dd7416bcf45b755dbaa88e4a4043.}
Этот раздел статьи
ещё не написан .
Здесь может располагаться отдельный раздел. Помогите Википедии, написав его. (8 января 2018 )
Открытый текст
a
=
1122334455667700
f
f
e
e
d
d
c
c
b
b
a
a
9988
,
{\displaystyle a=1122334455667700ffeeddccbbaa9988,}
Ожидается, что новый блочный шифр «Кузнечик» будет устойчив ко всем видам атак на блочные шифры .
На конференции «CRYPTO 2015» Алекс Бирюков, Лео Перрин и Алексей Удовенко представили доклад, в котором говорится о том, что несмотря на утверждения разработчиков, значения S-блока шифра Кузнечик и хеш-функции Стрибог не являются (псевдо)случайными числами, а сгенерированы на основе скрытого алгоритма, который им удалось восстановить методами обратного проектирования [ 9] . Позднее Лео Перрин и Алексей Удовенко опубликовали два альтернативных алгоритма генерации S-блока и доказали его связь с S-блоком белорусского шифра BelT [ 10] . В этом исследовании авторы также утверждают, что, хотя причины использования такой структуры остаются неясны, использование скрытых алгоритмов для генерации S-блоков противоречит принципу отсутствия козыря в рукаве , который мог бы служить доказательством отсутствия специально заложенных уязвимостей в дизайне алгоритма.
Riham AlTawy и Amr M. Youssef описали атаку «встречи посередине » на 5 раундов шифра Кузнечик, имеющую вычислительную сложность 2140 и требующую 2153 памяти и 2113 данных[ 11] .