GOST_R_3412-2015
GOST_R_3412-2015
GOST_R_3412-2015
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ГОСТ Р 34.12 <strong>2015</strong><br />
5 Алгоритм блочного шифрования с длиной<br />
блока n = 64 бит<br />
5.1 Значения параметров<br />
5.1.1 Нелинейное биективное преобразование<br />
В качестве нелинейного биективного преобразования выступают подстановки<br />
π i = Vec 4 π i 'Int 4 : V 4 → V 4 , где π i ': Z 2<br />
4 → Z 2<br />
4, i = 0, 1, …, 7. Значения подстановок π i '<br />
записаны ниже в виде массивов π i ' = (π i '(0), π i '(1), …, π i '(15)), i = 0, 1, …, 7:<br />
π 0 ' = (12, 4, 6, 2, 10, 5, 11, 9, 14, 8, 13, 7, 0, 3, 15, 1);<br />
π 1 ' = (6, 8, 2, 3, 9, 10, 5, 12, 1, 14, 4, 7, 11, 13, 0, 15);<br />
π 2 ' = (11, 3, 5, 8, 2, 15, 10, 13, 14, 1, 7, 4, 12, 9, 6, 0);<br />
π 3 ' = (12, 8, 2, 1, 13, 4, 15, 6, 7, 0, 10, 5, 3, 14, 9, 11);<br />
π 4 ' = (7, 15, 5, 10, 8, 1, 6, 13, 0, 9, 3, 14, 11, 4, 2, 12);<br />
π 5 ' = (5, 13, 15, 6, 9, 2, 12, 10, 11, 7, 8, 1, 4, 3, 14, 0);<br />
π 6 ' = (8, 14, 2, 5, 6, 9, 1, 12, 15, 4, 11, 0, 13, 10, 3, 7);<br />
π 7 ' = (1, 7, 14, 13, 0, 5, 8, 3, 4, 15, 10, 6, 9, 12, 11, 2).<br />
5.2 Преобразования<br />
При реализации алгоритмов зашифрования и расшифрования используются<br />
следующие преобразования:<br />
t: V 32 → V 32 t(a) = t(a 7 ||…||a 0 ) = π 7 (a 7 )||…||π 0 (a 0 ),<br />
где a = a 7 ||…||a 0 ∈ V 32 , a i ∈ V 4 , i = 0, 1, …, 7;<br />
g[k]: V 32 → V 32 g[k](a) = (t(Vec 32 (Int 32 (a) ⊞ Int 32 (k)))) ⋘ 11 ,<br />
где k, a ∈ V 32 ;<br />
G[k]: V 32 × V 32 → V 32 × V 32 G[k](a 1 , a 0 ) = (a 0 , g[k](a 0 ) ⊕ a 1 ),<br />
где k, a 0 , a 1 ∈ V 32 ;<br />
G [k]: V 32 × V 32 → V 64 G [k](a 1 , a 0 ) = (g[k](a 0 ) ⊕ a 1 )||a 0 ,<br />
где k, a 0 , a 1 ∈ V 32 .<br />
(14)<br />
(15)<br />
(16)<br />
(17)<br />
5.3 Алгоритм развертывания ключа<br />
Итерационные ключи K i ∈ V 32 , i = 1, 2, …, 32, вырабатываются на основе ключа<br />
K = k 255 ||…||k 0 ∈ V 256 , k i ∈ V 1 , i = 0, 1, …, 255, и определяются равенствами:<br />
K 1 = k 255 ||…||k 224 ;<br />
K 2 = k 223 ||…||k 192 ;<br />
K 3 = k 191 ||…||k 160 ;<br />
K 4 = k 159 ||…||k 128 ;<br />
9