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

0 ... 97 98 99 100 101 102 103 ... 169

Отличие для схемы при Nk>6 состоит в применении SubByte для каждого 4-го байта из Nk.

Цикловая константа независит от Nk и определяется следующим образом:

Rcon[i] = (00 , 00 , 00 ), где

RC[0]=01

RC[i]=xtime(Rcon[i-l])

Выбор циклового ключа

i-ый цикловой ключ получается из слов массива циклового ключа от W[Nb*i] и fl.oW[Nb(i+l)]. Это показано на рисунке 6.

V

к, к.

Рисунок 6. Расширение ключа и выбор циклового ключа для№-1 и Nk-4

Замечание: Алгоритм выработки ключей можно осуществлять и без использования массива W[Nb*(Nr+l)].

Для реализаций, в которых существенно требование к занимаемой памяти, цикловыемогут вычисляться на лету

посредством использования буфера из Nk слов.

302


Шифр

Шифр Rijndael состоит из:

♦начального добавления циклового ключа; Nr-1 циклов;

*заключительного цикла.

На псевдо-Си это выглядит следующим образом: Rijndael (State, CipherKey)

KeyExpansion (CipherKey, ExpandedKey) ; // Расширение ключа

AddRoundKey (State, ExpandedKey);// Добавление

циклового ключа

For ( i-1 ; i<Nr ; i++) Round ( State, ExpandedKey+Nb*i);

// никлы

FinalRound(State,ExpandedKey+Nb*Nr) ;//

заключительный цикл

)

Если предварительно выполнена процедура расширения ключа, то Rijndael будет выглядеть следующим образом:

Rijndael (State, CipherKey)

{

AddRoundKey (State, ExpandedKey) ;

For ( i-1 i<NrRound (State,ExpanaedKey+Nb*i) ;

FinalRound(State,ExpandedKey+Nb*Nr) ;

}

Замечание: Расширенный ключ должен всегда получаться из ключа шифрования и никогда не указывается напрямую. Нет никаких ограничений на выбор ключа шифрования.

Предварительные наброски по доработке LOKI

Эта статья представляет наброски по доработке LOKI — блочного шифра с секретным ключом. В настоящий момент я

303


предлагаю использовать его для 16-битного шифра Фейстеля со 128-битными данными и 256-битным ключевым расписанием, которое может быть получено из 128 , 192 или 256-битных ключей. 16 циклов вычисления данных используют сбалансированную петлю Фейстеля со сложной функцией f, которая объединяет два S-P слоя .256-битный алгоритм выработки ключей использует 33 цикла несбалансированной петли Фейстеля, применяющей ту же сложную функцию f для генерации вспомогательных ключей.

LOKI91 — это 64-битныйсимметричный

блочный шифр с 64-битным пользовательским ключом. Первоначально он был спроектирован L.Brown, J.Pieprzyk и J.Seberry в 1990 [BrPS90] и позже доработан L.Brown, M.Kwan, J.Pieprzyk и J.Seberry [BKPS91] (и переименован в

LOKI91) с улучшенной устойчивостью к разностному анализу.

Первоначальная версия LOKI89 была исследована Bil am и Shamir [BiSh91] и Knudsen [Knud91]. Они определили, что хотя версия LOKI89 с уменьшенным количеством циклов и чувствительна к разностному анализу, но полная 16-цикловая версия — нет.

Последующая доработка LOKI91 по усилению стойкости была

исследована Knudsen[Knud92]. Он определил, что нет характеристик, позволяющих с достаточно высокой вероятностью успешно проводить разностный анализ; что размер отображения f-функции в LOKI91

равен 8/13x2 ; а также что есть атака по выбранному открытому

тексту, которая уменьшает поиск полным перебором ключей в

почти в 4 раза, используя 2j2+2 выбранных открытых текстов. В

последующих статьях Knudsen [Knud94] обсудил концепцию слабых

хэш-ключей в LOKI.

Bihamввел несколько новых типов криптоатак,

которые используют соотношения между вспомогательными ключами. Он применил такую атаку к обеим версиям LOKI. Для LOKI91 сложность подхода порядка 0(261), что быстрее, чем полный

перебор и сравнимо с результатами Knudsen-a.

Tokita, Sorimachi и Matsui [ToSM94] исследовали чувствительность LOKI91 к линейному анализу и выяснили , что версии с 12 и более циклами устойчивы к нему. Впоследствии Knudsen и Robshaw [KnRo96] провели выгодные улучшения по эффективности поиска, используя нелинейную аппроксимацию, но 12 и более циклов

304



0 ... 97 98 99 100 101 102 103 ... 169