Описание LOKI91

Механизм LOKI91 похож на DES (см. Рис. 13-8). Блок данных делится на левую и правую половины и проходит через 16 этапов, что очень походе на DES. На каждом этапе правая половина сначала подвергается операции XOR с частью ключа, а затем над ней выполняется перестановка с расширением (см. Табл. 13-1).

[image]

Рис. 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 для шифрования и дешифрирования используется один и тот же алгоритм с некоторыми изменениями в использовании подключей.