Описание LOKI91
Механизм LOKI91 похож на DES (см. Рис. 13-8). Блок данных делится на левую и правую половины и проходит через 16 этапов, что очень походе на DES. На каждом этапе правая половина сначала подвергается операции XOR с частью ключа, а затем над ней выполняется перестановка с расширением (см. Табл. 13-1).
Рис. 13-8. LOKI91.
Табл. 13-1.
Перестановка с расширением
4, |
3, |
2, |
1, |
32, |
31, |
20, |
29, |
28, |
27, |
26, |
25, |
28, |
27, |
26, |
25, |
24, |
23, |
22, |
21, |
20, |
19, |
18, |
17, |
20, |
19, |
18, |
17, |
16, |
15, |
14, |
13, |
12, |
11, |
10, |
9, |
12, |
11, |
10, |
9, |
8, |
7, |
6, |
5, |
4, |
3, |
2, |
1 |
48-битовый результат делится на четыре 12-битовых блока, для каждого из которых выполняется следующая подстановка с использованием S-блока: берется каждый 12-битовый вход, по 2 крайних левых и крайних правых бита используются для получения номера r, в 8 центральных бит образуют номер c. Результатом S-блока - O - является следующее значение:
O(r,c) = (c + ((r* 17) A 0xff) & 0xff)31 mod Pr
Pr приведено в Табл. 13-2.
Табл. 13-2.
Pr
r: |
1, |
2, |
3, |
4, |
5, |
6, |
7, |
8, |
9, |
10, |
11, |
12, |
13, |
14, |
15, |
16 |
Pr: |
375, |
279, |
391, |
395, |
397, |
415, |
419, |
425, |
433, |
445, |
451, |
463, |
471, |
477, |
487, |
488 |
Затем четыре 8-битовых результата снова объединяются, образуя 32-битовое число, которое подвергается операции перестановки, описанной в Табл. 13-3. Наконец для получения новой левой половины выполняется XOR правой половины с прежней левой половиной, а левая половина становится новой правой половиной. После 16 этапов для получения окончательного шифротекста снова выполняется XOR блока и ключа.
Табл. 13-3.
Перестановка с помощью P-блока
32, |
24, |
16, |
8, |
31, |
23, |
15, |
7, |
30, |
22, |
14, |
6, |
29, |
21, |
13, |
5, |
28, |
20, |
12, |
4, |
27, |
19, |
11, |
3, |
26, |
18, |
10, |
2, |
25, |
17, |
9, |
1 |
Подключи из ключа выделяются достаточно прямолинейно. 64-битовый ключ разбивается на левую и правую половины. На каждом этапе подключом является левая половина. Далее она циклически сдвигается влево на 12 или 13 битов, затем после каждых двух этапов левая и правая половины меняются местами. Как и в DES для шифрования и дешифрирования используется один и тот же алгоритм с некоторыми изменениями в использовании подключей.