ГОСТ Р 34.12—2015
4.1.2 Линейное преобразование
Линейноепреобразованиезадаетсяотображением t.
v
’B6
— VB,котороеопределяется
следующим образом:
fla,......а0) = 17(148 ■Д(а15) + 32 • Д(з14) ♦ 133 • Д(а13) ♦ 16 Д(а12) +
♦ 194 Д(а„) + 192-Д(а,0)-*-1 -Д(а5) + 251 Д(ав)+1 ■Д(а7) + 192 •Д(ае) ♦(1)
♦ 194 Д(а5) + 16 -Д(а4) ♦ 133 ■Д(а3) + 32 ■Д(а2) + 148 •Д(а,) ♦ 1 •Д(а0))
для любых а.еVB, /’= 0.1
......
15, где операции сложения и умножения осуществляются в полеР, а
константы являются элементами поля в указанном ранее смысле.
4.2 Преобразования
При реализации алгоритмов зашифрования и расшифрования используются следующие
преобразования:
т - v,2B- v128
Х1/с](а) = к® а,
(2)
где к, а е V,28;
S: V12B- V, 28 S(a) = S(a1s||...||a0) = тт(а15)||...||тт(а0),
(3)
где а = а15||...||а0е V128,a,e VB./= 0 .1
......
15;
S’’: ^12a -
vm
S ’(а) = S‘,(a15||...||a0) = тгЧа15)||...||тт’ (а0).
где а = а15||...||а0 е V12a, а,е Vs./= 0.1
......
15.
тг1— подстановка, обратная к подстановке п;
преобразование, обратное к преобразованию S, которое может
(4)
быть вычислено, например, следующим образом:
^ ^128 ~* ^128
R(a) = Я(э15||...||э0) = 1{а.
.......
а0)||аЧ5||...||а1,(5)
где а = а15||...||а0 е У128, а,.е V8,/= 0 ,1
......
15;
L- V128—* ^128
L(a) = R’6(a),
(6)
где а 6 V128;
^128 ~* ^128
Я » = Я - ,(з16||...||а0) =
=аи||а
1
з|| —||ао1МаН* aUi
---1
ао- ais)-
гдеа = а,5||...||э0е 1/,28.а, е V&,i= 0, 1,.... 15;
преобразование, обратное к преобразованию R, которое может
(7)
быть вычислено, например, следующим образом:
L ’: V,2a - Vm
Г 1(а) = (/?’) » .
(8)
где а 6 V128;
F\k\--
V,28*^12.
F[/c](a,. aD) = (LSX[fc](a,) © aD. a,),
(9)
где к, a0. a, GV128.
4.3 Алгоритм развертывания ключа
Алгоритм развертывания ключа использует итерационные константы С, е УД2В, / = 1, 2
......
32,
которые определены следующим образом:
С/ = Z-(Vec12B(/))t / = 1.2
......
32.
ИтерационныеключиК;б V128, / = 1. 2
......
10,вырабатываются
ключа К = = /<255||---11*о 6 У256, к,6 V,, / = 0,1
......
255 и определяются равенствами:
(Ю)
наоснове
К) = ^255Н“ ’11^128’
^2 = к^271|---11^0*(11)
(К *.,. к 2,. 2) = F [С8(,.,) .B)...F[Св(1. 1}. ,](К2,..,,* * )./ = 1,2, 3,4.
4.4 Базовый алгоритм шифрования
4.4.1 Алгоритм зашифрования
Алгоритмзашифрованиявзависимостиотзначенийитерационныхключей
К.е У)28, /= 1. 2......10. реализует подстановку EKlKie, заданную на множестве V12Bв соответствии
с равенством
4