ГОСТ IEC 61142—2011
В.2.1.3 Вычисление индивидуальных ключей К,
Порядок вычисления ключа
К
Каждая итерация i использует 48-бигный ключ К,, полученный из начального 64-битного ключа К. рассчи
танного следующим образом.
Ключ К. выбираемый пользователем, содержит 64 бита
< 8
байтов) с
8
битами четности на позициях
8
. 16,
64 (К=к,. к
2
......
к64). Эти биты четности удаляются, а оставшиеся 56 битов - транспонируются функцией (РС-1).
как показано в таблице В.
6
.
Т аб ли ц а В
. 6
— Перестановка по ключу РС-1
57 49 41 33 25 17 9
1
58 50 42 34 26 18
1 0 2
59 51 43 35 27
19
1 1
3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30
2 2
14
6
61 53 45 37 29
2 1
13 5 28
2 0 1 2
4
Результат РС-1(К) затем делится на два блока (левый С
0
и правый D0) по 28 битов каждый.
Этиблоки Сои D
0
последовательно сдвигаются влево, чтобы на каждой итерации получить индивидуальный
ключ К,:
- если Q и Dj — 28-битные блоки, используемые для получения ключа Kj, получаемые из блоков Со и D0.
тогда:
Q = LS.(C^i) и D = LS(D,_,),
где LS,— левый сдвиг 28 битов в блоке на число битов, зависящих от номера итерации i (см. таблицу В.7).
101