Варианты реализации алгоритма шифрования:
Номер варианта |
|
|
Функция раунда |
Алгоритм вычисления подключа |
1 |
32 |
64 |
1. блок побитно складывается по модулю 2 с матрицей подключа . 2. к блоку применяется перестановка, заданная матрицей М1 (см. ниже);
|
1. ключ разбивается на две части по 32 бит, каждая из которых организуется в матрицу 4×8;
2. в
каждой части ключа
3. на вход функции раунда подается правая часть ключа, если раунд номер раунда – четное число, иначе подается левая часть ключа; |
2 |
32 |
56 |
|
|
3 |
32 |
64 |
1. блок побитно складывается по модулю 2 с матрицей подключа . 2. к блоку применяется перестановка, заданная матрицей М2 (см. ниже);
|
1. ключ разбивается на две части по 32 бит, каждая из которых организуется в матрицу 4×8; 2. к содержимому левой части ключа прибавляется содержимое правой части ключа с использованием операции XOR; 3. к правой части ключа применяется перестановка, заданная матрицей К2 (см. ниже); 4. на вход функции раунда подается правая часть ключа, если раунд номер раунда – четное число, иначе подается левая часть ключа; |
4 |
32 |
32 |
2. полученный блок побитно складывается по модулю 2 с матрицей подключа . |
1. к матрице ключа применяется подстановка, заданная матрицей К2 (см. ниже); 2. каждая -я строка матрицы циклически сдвигается вправо на 2 бит, . |
Матрицы перестановок для блоков данных
М1
5 |
16 |
22 |
9 |
28 |
6 |
19 |
29 |
30 |
13 |
3 |
20 |
14 |
31 |
8 |
24 |
2 |
26 |
17 |
10 |
15 |
4 |
21 |
7 |
32 |
12 |
11 |
23 |
1 |
25 |
18 |
27 |
М2
21 |
9 |
12 |
27 |
23 |
29 |
5 |
19 |
4 |
18 |
16 |
2 |
26 |
14 |
32 |
30 |
25 |
1 |
22 |
13 |
7 |
28 |
6 |
20 |
11 |
17 |
10 |
24 |
3 |
15 |
31 |
8 |
