Алгоритм Noekeon

разработан в 2000 г. коллективом разработчиков из Бельгии; авторы алгоритма:

?     Джоан Деймен, Михаэль Петере (Michael Peeters) и Жиль Ван Аске (Gilles Van Assche) из компании Proton World;

?     Винсент Риджмен из Католического Университета г. Лювен.

И снова вспомним алгоритм Rijndael, поскольку среди авторов алгоритма Noekeon присутствуют оба автора Rijndael — Джоан Деймен и Винсент Рид- жмен. Однако Noekeon несравнимо меньше похож на Rijndael, чем, например, другие участники конкурса NESSIE: Anubis (см. разд. 3.5) и Grand Cru (см. разд. 3.20).

Noekeon шифрует данные 128-битными блоками с использованием 128- битного ключа шифрования. Алгоритм существует в двух режимах: прямом (direct mode) и косвенном (indirect mode), разница между которыми существует лишь в процедуре расширения ключа; оба режима будут рассмотрены далее.

Структура алгоритма

выполняет 16 раундов преобразований. Блок данных представляется в виде массива из четырех 32-битных строк а[0]…а[3]. В каждом раунде алгоритма выполняются следующие действия [131]:

1.    Верхняя строка массива данных складывается с помощью операции XOR с константой С1[г], где г— номер текущего раунда (начиная с 0). Константы С1[0]…С1[15] будут описаны далее.

2.    Линейное преобразование 0 выполняет следующие операции над строками массива данных с участием 128-битного «рабочего ключа» (working key), который также представляется в виде 32-битных строк к[0\…к[3] (рис. 3.144):

Рис. 3.148. Операция у в виде последовательности операций

Эту табличную замену можно представить и в виде следующей последовательности операций над строками массива данных (рис. 3.148):

где ~ х — побитовый комплемент кх.

6. Вращение данных п2 является обратным к щ, т. е. выполняет вращение тех же трех строк массива данных на указанное в описании операции щ число битов вправо.

Помимо описанных выше операций, после 16 раундов выполняется заключительное преобразование, состоящее из двух операций:

?      наложения на а[0] константы С[16] операцией XOR;

?      дополнительной операции 0 над массивом данных.

Расшифровывание

Процедура расшифровывания практически идентична зашифровыванию, за исключением следующих отличий.

?      Как было сказано выше, при расшифровывании константы С1[г] и С2[г] меняются местами.

?      Вместо прямой операции 0 выполняется обратная — в ней используется модифицированный рабочий ключ К’:

где:

•                 К — рабочий ключ;

•                 Null — 32-битный блок, состоящий из нулевых битов.

Модификация рабочего ключа выполняется однократно до начала расшифровывания, после чего К1 используется во всех операциях, где должен использоваться ключ К.

?      Раунды расшифровывания нумеруются в обратном порядке — соответственно, в обратном порядке используются константы С[16]…С[1].

?      Иначе выполняется заключительное преобразование (после выполнения всех раундов расшифровывания): сначала выполняется дополнительная операция 0 (с участием К1), после чего выполняется наложение на a[ 1] константы С[0].

Следует учесть, что для обеспечения вычисления констант С[16]…С[0] «на лету» в процессе расшифровывания данные константы могут вычисляться и в обратном порядке.

Процедура расширения ключа

Расширение ключа алгоритма Noekeon выполняется исключительно просто, как в прямом, так и в косвенном режиме алгоритма.

?      В прямом режиме расширение ключа полностью отсутствует: 128-битный ключ шифрования используется в качестве 128-битного рабочего ключа.

?      В косвенном режиме рабочий ключ получается из ключа шифрования за- шифровыванием алгоритмом Noekeon значения Null на ключе шифрования (который в данном случае используется в качестве рабочего ключа).

Авторы алгоритма рекомендуют использовать прямой режим шифрования только в том случае, когда невозможно выполнение потенциальным злоумышленником атак на связанных ключах.

Криптоанализ алгоритма

На рассмотрение в рамках конкурса NESSDE (см. разд. 2.2) были приняты оба режима алгоритма Noekeon. И оба режима оказались подвержены атаке на основе связанных ключей (в том числе косвенный режим), которую предложили криптологи JIapc Кнудсен и Хавард Раддум (Havard Raddum) в своей работе [220]. Кроме того, ими же было доказано, что критерии создания таблиц замен (используемых в операции у) не способствуют высокой криптостойкости алгоритма: при генерации согласно данным критериям таблицы замен результирующий алгоритм с вероятностью 85 % окажется подвержен линейному и/или дифференциальному криптоанализу [220]. Этих причин оказалось достаточно для невыхода алгоритма Noekeon во второй раунд конкурса [308].

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100