Алгоритмы SHARK и SHARK*

Как и Square (см. разд. 3.54), алгоритм SHARK разработан Винсентом Рид- жменом и Джоан Деймен — будущими авторами стандарта AES (алгоритма Rijndael — см. разд. 3.3), правда, в соавторстве с еще тремя специалистами, представляющими Католический Университет г. Лювен, Бельгия. Это немногим более ранняя разработка, чем алгоритм Square, — SHARK разработан в 1995 г.

Сходство между SHARK и Square наблюдается, как минимум, в следующем:

? оба алгоритма обрабатывают за один раунд блок целиком, а не половину, как сети Фейстеля;

СГ в раунде алгоритма SHARK используются преобразования, весьма похожие и на Square, и на Rijndael — операция XOR с ключом, табличная замена и умножение на фиксированную матрицу.

Спецификация алгоритма [323] не фиксирует его основные параметры. В частности, блок шифруемых данных имеет переменный размер т * п битов (значение параметров т и п будет ясно из приведенного далее описания раунда алгоритма), а обработка данных выполняется с переменным количеством раундов R.

В каждом раунде алгоритма г выполняются следующие операции (рис. 3.194):

1. Наложение ключа раунда Кг на обрабатываемый блок операцией XOR. Ключ раунда также имеет размер т*п битов; подробнее о вычислении ключей раундов будет сказано далее.

Рис. 3.194. Раунд алгоритма SHARK

2.     Табличная замена, выполняемая следующим образом:

•                 (т * п )-битный блок данных разбивается на п субблоков по т битов;

•                 каждый из них «прогоняется» через одну из таблиц замен S{…Sn ;

•                 результаты замен объединяются в (т * п )-битный блок.

3.     Умножение данных на фиксированную матрицу А размером п*п битов.

Обрабатываемые данные можно представить в виде двумерного байтового массива размером (m/8)*n байтов (аналогично алгоритму Square) или в виде одномерного массива из п m-битных элементов. В последнем случае выполняемые в одном раунде операции можно представить таким образом:

где X{…Xn, Yx…Yn, Krx…Krn — m-битные элементы входного значения, результата и ключа раунда соответственно.

После выполнения г раундов алгоритма выполняется также финальное преобразование, состоящее из наложения ключа дополнительного раунда KR+] и последующего умножения на обратную матрицу.

Расшифровывание производится выполнением обратных операций в обратной последовательности.

Фактически SHARK представляет собой не алгоритм шифрования, а некий шаблон для построения на его основе различных алгоритмов шифрования с описанной выше структурой. Такой вывод можно сделать из-за обилия переменных величин в структуре алгоритма; переменными являются следующие параметры:

?      описанные выше параметры л, т и г;

?     значения таблиц замен; в описании алгоритма приводится пример таблицы замен, согласно которой входное значение х заменяется обратной величиной в поле GF( 2т ):

однако авторы алгоритма предположили, что при использовании такой таблицы замен возможны потенциальные уязвимости, поэтому порекомендовали использовать таблицы с более сложным соотношением входного и выходного значений;

?     значения элементов матрицы А; при этом авторы алгоритма описали ряд критериев, которым должны соответствовать данные элементы для достижения высокой криптостойкости алгоритма;

?     размер ключа шифрования, который может достигать 2*(/? + l)*w*n битов (сумма размеров всех ключей раундов), однако авторы алгоритма посоветовали ограничиться не более, чем 128-битным ключом;

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

Исходные тексты одного из вариантов алгоритма SHARK, разработанные Винсентом Риджменом [322], можно скачать по FTP с сервера ftp.esat.kuleuven.ac.be.

Кроме того, помимо алгоритма SHARK, его авторами был предложен алгоритм SHARK*, отличающийся от SHARK лишь зависимостью таблиц замен от ключа шифрования и также не снабженный исчерпывающим описанием [323].

Видимо, в силу своей неопределенности алгоритмы SHARK и SHARK* не вызвали большого интереса у криптоаналитиков, поэтому какие-либо работы, связанные с анализом криптостойкости или атаками на эти алгоритмы, не получили широкую известность.

Вы можете следить за любыми ответами на эту запись через 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