Алгоритм Akelarre

Алгоритм Akelarre разработан коллективом испанских криптографов. Его отличительной особенностью является то, что структура алгоритма, фактиче­ски, представляет собой комбинацию преобразований, использованных в двух более ранних алгоритмах, хорошо зарекомендовавших себя с точки зрения криптостойкости: IDEA и RC5.

Алгоритм шифрует данные блоками по 128 битов. Как и в алгоритме RC5, часть основных параметров алгоритма являются переменными: может изме­няться количество раундов алгоритма /?, а ключ шифрования может иметь любой размер, кратный 64 битам (оптимальным считается 128-битный ключ).

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

Структура алгоритма (рис. 3.14) [148, 222] весьма похожа на структуру алго­ритма IDEA. Разница, прежде всего, в основных преобразованиях, исполь­зуемых в каждом раунде алгоритма, а также в размере слова: 32 бита вместо 16-битного слова у IDEA — шифруемый 128-битный блок разбивается на 4 субблока Л, В, С и D по 32 бита, над которыми и выполняются крипто­графические преобразования.

Алгоритм состоит из начального преобразования, R раундов и финального преобразования.

clip_image002

Рис. 3.14. Структура алгоритма Akelarre

Начальное преобразование представляет собой наложение фрагментов рас­ширенного ключа К01…К04 на субблоки:

л = Л + Л:01тос1232;

В = В® К02\

с = с0коз;

D = D + K04 mod232. В каждом раунде алгоритма г выполняются следующие преобразования:

1. Субблоки А, В, С, D объединяются в 128-битный блок, над которым вы­полняется циклический сдвиг на переменное число битов, определяемое семью младшими битами фрагмента ключа КЛ (именно применяемые в данном алгоритме операции циклического сдвига на переменное число битов считаются заимствованными у алгоритма RC5).

2. 128-битный блок снова разбивается на 4 фрагмента, после чего вычисля­ются следующие промежуточные величины:

П = Д0С; T2 = B®D.

3. Значения П и 72, а также 12 фрагментов ключей Kr2…Krl3 подаются на вход AR-модуля (addition-rotation structure), выполняющего операции сложения и циклического сдвига на переменное число битов. AR-модуль будет подробно описан далее.

4. Выходные значения раунда формируются следующим образом:

л = Л0Г2′; В = В®ТГ\ С = С0Г2′; D = D07T,

где 7Т и Г2′ — выходные значения AR-модуля.

AR-модуль предполагает выполнение следующих операций (на приме­ре П, аналогичные операции выполняются над 77, см. упрощенную схему на рис. 3.15):

1. 31 старший бит П циклически сдвигается влево на величину, определяе­мую текущим значением 5 младших битов 77.

2. Результат предыдущего шага складывается с фрагментом ключа раун­да Кг8:

Tl = Tl + K* mod232.

clip_image004

Рис. 3.15. AR-модуль

3. 31 младший бит 71 циклически сдвигается влево аналогично шагу 1.

4. 71 складывается с фрагментом ключа раунда Кг9 аналогично шагу 2.

5. 31 старший бит 71 циклически сдвигается влево аналогично шагу 1.

6. 71 складывается с фрагментом ключа раунда Кг]0 аналогично шагу 2.

7. Шаги 3-6 повторяются с использованием KrU и КгП . Затем повторяются шаги 3-5 с использованием фрагмента ключа раунда КгХЪ. Результат по­следнего повторения шага 5 становится выходным значением ТУ .

Аналогичным образом обрабатывается 77, но с использованием фрагментов расширенного ключа Кг2…Кг1 вместо Кг%…Кг]3.

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

А’ = А + A:F2mod232;

В’ = В®КРЪ\

C’ = C®KF4\ D’=D + KF< mod232.

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

Как было сказано выше, алгоритм может использовать ключ любого размера, кратного 64 битам. Однако основной размер ключа— 128 битов, поэтому стоит рассмотреть процедуру расширения именно 128-битного ключа. Дан­ная процедура выполняется следующим образом (рис. 3.16):

clip_image006

Рис. 3.16. Расширение ключа

1. Ключ шифрования разбивается на 8 фрагментов по 16 битов AT/j…АГ/8.

2. Каждый 16-битный фрагмент возводится в квадрат с получением 32-битного значения, которое складывается с константами СО и С1 следую­щим образом:

at] = KI 2 +Clmod232\

КТ(‘= KI2 + C0mod232.

Константы СО и С1 определены так (указаны шестнадцатеричные зна­чения):

C0 = A49ED284; C1 = 735203DE.

3. 8 младших и 8 старших битов временных значений КТ{ и КТ{ формиру­ют фрагменты предварительного расширенного ключа KEV..KE%\ KEi — результат конкатенации следующих величин:

• 8 младших битов КТ(‘;

• 8 старших битов КТ{ \

• 8 младших битов KT(lmod8)+,;

• 8 старших битов AT(/mod8)+1.

4. Средние 16 битов временных значений обрабатываются аналогично К1Х…К1% для получения новых значений фрагментов предварительного расширенного ключа (с незначительными отличиями — см. рис. 3.16).

5. Ключи К…К04, КгХ…КгХЪ (для каждого раунда) и KF]…KF5 заполня­ются поочередно вычисляемыми фрагментами КЕХ…КЕ%.

Процедура расширения ключа выглядит достаточно сложной. Однако данная процедура имеет существенный недостаток— по получаемым в результате криптоаналитических вычислений частям ключей раундов можно восстано­вить соответствующие им биты ключа шифрования; данное свойство экс­плуатируется в описанных далее атаках на алгоритм.

портрет на заказ. портрет с фотографии. шарж

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