Алгоритм Q

Так же, как и ряд других алгоритмов — участников конкурса NESSIE (см. разд. 2.2), например, Anubis (см. разд. 3.5) и Grand Cru (см. разд. 3.20), алгоритм Q наследует структуру и часть преобразований от алгоритма Rijndael. Соответственно, алгоритм представляет 128-битный блок данных в виде байтового массива 4×4, над которым и выполняются преобразования.

Алгоритм, теоретически, не ограничивает размер используемых ключей шифрования ни сверху, ни снизу. Однако в рамках конкурса NESSIE рассматривалось только три фиксированных размера ключа: 128, 192 и 256 битов.

Автор алгоритма — Лесли МакБрайд (Leslie McBride) из компании Mack One Software (США). На конкурс NESSIE была представлена версия 2.0 алгоритма Q, которая и описана далее.

Стоит отметить, что спецификация алгоритма Q [261], по сравнению с подробнейшими описаниями других участников конкурса NESSIE, например, алгоритмов NUSH (см. разд. 3.39) и SC2000 (см. разд. 3.47), недостаточно детально описывает этот алгоритм. Кроме того, некоторые эксперты (см., например, [193]) отмечают наличие противоречий в данной спецификации. Поэтому далее приведено лишь краткое описание алгоритма Q.

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

В каждом раунде алгоритма выполняются следующие операции [261]:

1.     Первое наложение ключа (операция КА). Выполняется побитовой логической операцией исключающее «или» (XOR), которая применяется к каждому биту обрабатываемого блока и соответствующему биту фрагмента расширенного ключа для данной операции.

2.     Первая табличная замена BS1. Используемая здесь таблица взята в неизменном виде из алгоритма Rijndael, как и таблица замен алгоритма Grand Cru. Эта таблица приведена в разд. 3.3.

3.     Второе наложение ключа (операция KB). Аналогично КА, наложение выполняется с помощью операции XOR.

4.      Вторая табличная замена BS2. Эта операция унаследована от алгоритма Serpent — см. разд. 3.48.

5.    Третье наложение ключа (операция KN). Отличие этой операции от КА и КВ состоит в том, что они используют один и тот же фрагмент расширенного ключа во всех раундах, тогда как подключ, используемый в операции KN, уникален для каждого раунда алгоритма.

6.    Операция CS— побайтный циклический сдвиг каждого (кроме первого) столбца массива данных, у-й столбец массива сдвигается на j битов вверх.

7.    Третья табличная замена BS3. Также унаследована от алгоритма Serpent.

Количество раундов R алгоритма определено в его описании [261] как 8 для обычных применений или 9 в случаях, когда требуется усиленная защита.

Общая структура алгоритма такова:

1.    Сначала выполняется предварительное отбеливание, т. е. наложение на данные фрагмента ключа для предварительного отбеливания, которое выполняется абсолютно аналогично операции КА.

2.    Затем выполняется R описанных выше раундов преобразований.

3.    Наконец, выполняется заключительное преобразование, состоящее из последовательно выполняемых операций КА, BS1 и КВ, после чего выполняется финальное отбеливание. Финальное отбеливание аналогично предварительному, за исключением того, что в нем используется другой фрагмент ключа.

Расшифровывание выполняется практически аналогично зашифровыванию, за исключением следующего:

?     при расшифровывании меняются местами операции KN и CS;

?     используются инверсные таблицы замен;

?     раундовые ключи используются в обратной последовательности.

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

Результаты исследований алгоритма Q в рамках конкурса NESSIE оказались весьма неутешительными: алгоритм подвержен как дифференциальному [65, 72], так и линейному криптоанализу [193]. Поэтому алгоритм Q не был выбран во второй раунд конкурса [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