Алгоритм Square

интересен, прежде всего, по двум изложенным далее причинам.

П Этот алгоритм разработан теми же специалистами, которые впоследствии разработали алгоритм Rijndael (см. разд. 3.3), т. е. Винсентом Риджменом и Джоан Деймен.

? Мало того, именно структура алгоритма Square легла в основу алгоритма Rijndael. Структура алгоритма являлась весьма нетрадиционной для современных алгоритмов симметричного шифрования данных— это справедливо как для 1997 г., когда был разработан алгоритм Square, так и для 2000 г., когда при подведении итогов конкурса AES эксперты отмечали, что «в основе алгоритма Rijndael лежит нетрадиционная парадигма, поэтому алгоритм может содержать скрытые уязвимости». Это не помешало алгоритму Rijndael стать новым стандартом шифрования США, а та самая нетрадиционная структура сейчас называется «квадрат» (Square) по названию алгоритма, в котором она была впервые применена. Кстати, в конкурсе AES участвовал и еще один алгоритм со Square-подобной структурой— алгоритм Crypton (см. разд. 3.12), разработанный совсем другими авторами.

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

шифрует данные блоками по 128 битов, длина ключа также составляет 128 битов. 128-битный блок данных представляется в виде двумерного байтового массива (таблицы) размером 4×4 — отсюда и название алгоритма. Текущее значение байтов массива в спецификации алгоритма называется состоянием (state). Над состоянием выполняется 8 раундов преобразований, каждый из которых состоит из следующих операций [130]:

1.    Линейное преобразование 0, выполняющееся раздельно над каждой строкой таблицы (рис. 3.204):

где:

•                  atj — текущее значение байта состояния, принадлежащего /-й строке и у-му столбцу;

•                 fyj — новое значение байта состояния;

•                  сп — набор констант, определенных в спецификации алгоритма;

о

•                умножение выполняется по модулю 2 .

2.     Нелинейное преобразование, представляющее собой табличную замену (рис. 3.205):


3.     Байтовая перестановка я, простейшим образом преобразующая строку состояния в столбец (рис. 3.206):

4.      Операция ст, представляющая собой побитовое сложение состояния с ключом раунда (рис. 3.207):

где:

•                 а и Ъ — значение всего массива состояния до и после преобразования соответственно;

•                   Kt — ключ текущего раунда t (процедура формирования ключей раундов описана далее).

Помимо 8 раундов описанных преобразований, перед первым раундом выполняется «нулевой» раунд, состоящий из обратного линейного преобразования О-1 и наложения ключа нулевого раунда К0 операцией а.

Расшифровывание данных выполняется аналогично зашифровыванию, но с использованием обратных операций у-1 и О-1 вместо у и 0 соответственно. И наоборот, в нулевом раунде используется прямое преобразование 0 вместо обратного О-1. Операция у-1 представляет собой обратную замену, а О-1 предполагает использование вместо констант сп набора констант dn, приводящих к обратному результату и также определенных в спецификации алгоритма.

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

Задача процедуры расширения ключа состоит в получении 8 128-битных ключей раундов и ключа К0 из 128-битного ключа шифрования алгоритма. Расширение ключа выполняется следующим простым преобразованием:

Операция \|/ представляет собой набор функций, с помощью которых вычисляются ключи раундов (рис. 3.208):

где:

? knt п-я строка (аналогично состоянию, ключ раунда представляется в виде байтовой таблицы 4×4) ключа /-го раунда Kt;

?       Ct — набор итеративно вычисляемых констант;

?       rotl() — операция циклического сдвига байтовой строки на один байт влево.

В качестве начального значения К0 используется исходный ключ шифрования алгоритма.

Рис. 3.208. Операция \|/

Криптостойкость алгоритма

В спецификации алгоритма Square [130] авторы алгоритма привели также строгое математическое обоснование операций алгоритма, которые выбирались, исходя из требований высокой криптостойкости против линейного и дифференциального криптоанализа. Кроме того, там же приведены и возможные атаки на данный алгоритм, наиболее интересная из которых позволяет вскрыть 6-раундовый вариант алгоритма выполнением 272 операций шифрования при наличии 2 блоков открытого текста и соответствующих им блоков шифртекста.

Все приведенные атаки позволяют вскрыть только «урезанные» (с уменьшенным количеством раундов) варианты алгоритма Square. Авторы алгоритма не обнаружили каких-либо атак на полнораундовый алгоритм. Однако они же предостерегают потенциальных пользователей Square от использования алгоритма, не прошедшего полного изучения специалистами на предмет отсутствия уязвимостей.

Наиболее подробное описание алгоритма Square, а также исходные тексты реализующих его программ можно найти на страничке Винсента Риджмена, которая находится на сайте http://www.esat.kuleuven.ac.be [374].

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