8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 101 102 103 104 105 106 107 ... 169

Графически это выглядит так :

jSM.

имя

l+o.a-J6

63

63

KP

[nput Л

до I

pi-OI Input В

ДО

В деталях различные составляющие операций таковы: КР()

Очень простая ключевая перестановка, которая разбивает 64-битный вход А на два 32-битных слова и использует нижние (т. е. наиболее значимые) 32 бита входа В, чтобы определить необходимо ли поменять соответствующие пары битов в этих словах (если бит ключа 1), или же нет (если бит ключа 0), похожая на что используется в ICE [Kwan97].

Это может быть вычислено как:

КР( [AlAr],SKr) = И (Al & -SKr) (Ar & SKr)) ( (Ar & -SKr) I (Al & SKr)) ]

EO

Расширяющая функция, похожая на соответствующую в LO.CI91, но измененная в плане более быстрого выполнения, которая разбивает на пересекающиеся группы по 13 или 11 бит (S1 или S2

314


соответственно) так, что по крайней мере несколько бит влияют на два S-блока одновременно, и, с учетом предыдущего сложения, это означает, что все биты имеют некоторое влияние на множество S-блоков. Таким образом, Е распределяет 64 бита входного значения на 96 битов выходного:

[4-0, 63-5658-4852-4 042-3234-24[28-16!18-8 12-0] . Sa(), Sb()

Две колонки S-блоков, выполненных просто конкатенацией блоков S1 и S2 (описанных ниже) так, что

Sa()[S1,S2,S1,S2,S2,S1,S2,S1]и

Sb()=[S2,S2,Sl,Sl,S2,S2,Sl,Sl].

В Sa() входы смешаны (вход + ключ из выхода Е), а в Sb() верхние биты — это только ключевые биты (из нижних, более значимых 32 битов В) .

Р()

перестановка, рассеивающая выходы S-блоков полностью по 64-

битной длине, используя регулярный шаблон латинского квадрата,

похожий на LOKI91, но с такими незначительными изменениями, что один и тот же выход никогда не войдет в соответствующий вход. Р распределяет входные биты [63-0] так:

[56,48,40,32,24,16,08,00,57,49,41,33,25,17,09,01, 58,50, 42,34,26,18,10, 02,59, 51, 43,35,27,19,11, 03, 60,52,44,36,28,20,12,04,61,53,45,37,29,21,13,05, 62,54,46,38,30,22,14,06,63,55,47,39,31,23,15,07]

Я полагаю, что эта функция будет выполнима с 24 табличными заданиями (8 на каждый из Sa, Р и Sb), плюс несколькоог-ов,

хог-ов, сдвигов и сложений на каждый цикл.

Это сделает ее выполнение реально быстрым и эффективным .

315


S-блоки

S-блоки, выбранные для LOKI97 используют возведение в куб в нечетном поле Галуа GF(2n), т. к. оно имеет несколько очень удобных свойств (таких, как сильная нелинейность и относительно однообразный профиль хог). Чтобы количество входов было нечетно, в S1 используется 13 входных битов, а в S2 — 11 битов. Они распределяются так, как описано выше, чтобы объединиться для работы над каждым входным блоком. Входное значение инвертируется (так, что входы О или 1 никогда не дадут выходов 0 или 1), и выходное значение маскируется в выбранные 8 нижних выходных битов. Функции S-блоков таковы:

Sl[x] = Ux хог 1FFF)3 mod 2911) & FF, in GF(213) S2[x] = ( (x xor 7FF)3 mod AA7) & FF, in GF(211)

(Заметим , что все константы приведены в 16-ричнойсист?мс , а все вычисления сделаны как полиномиальные в GF(2n) ).

Контрольная тройка

Сертификационная тройка (пример LOKI97) такова:

LCKI97 key: 000102030405060708090ACBOCODOEOF10111213141516i718191AlBlClDlElF LOKI97 plain: 0 0 0102 03 0 4 05 0 6 0 7 0 8 0 9 0AOBOCODOEOF LOKI97cipher: 75 0 80E3 5 9F10FE640144B3 5C5712 8DAD

Беглый криптоанализ

Мой беглый взгляд на криптоанализ говорит о том, что :

Алгоритм выработки ключей

сильно нелинеен, вспомогательные ключи получены как выход функции f (А, В) и сложно зависят от всех ключевых бит. Я не могу найти какого-либо очевидного способа определения связанных ключей, что достигается прибавлением кратностей Delta в каждом цикле.

316



0 ... 101 102 103 104 105 106 107 ... 169