Interested Article - MESH (шифр)

В криптографии , MESH блочный шифр , являющийся модификацией IDEA . Разработан , Винсентом Рэйменом , Бартом Пренелем и в 2002 году. В отличие от IDEA, MESH имеет более сложную раундовую структуру. Иной алгоритм генерации ключей позволяет MESH избегать проблемы слабых ключей .

Структура шифра

Каждый раунд в IDEA и MESH состоит из операций сложения и умножения. Последовательность таких вычислений в пределах одного раунда образует MA-бокс. Все MA-боксы в MESH используют минимум три чередующихся уровня сложений и умножений (по схеме «зиг-заг»), в то время, как в IDEA таковых только два. Это делает MESH более стойким против дифференциальной и линейной криптоатак. Также, с целью избежать проблемы слабых ключей, в MESH используются два следующих принципа:

  • Каждый подключ зависит от почти всех подключей, более точно — как минимум от шести предыдущих ключей нелинейно
  • Используются фиксированные константы. Без них, например, ключ из всех нулей перешел бы в подключи, каждый из которых равнялся бы нулю в любом раунде

Как и в IDEA, MESH использует следующие операции:

  • умножение по модулю , причем вместо нуля используется ( )
  • циклический сдвиг влево на бит ( )
  • сложение по модулю ( )
  • побитовое исключающее ИЛИ ( )

Операции расположены в порядке уменьшения приоритета. В вычислениях запись обозначает 16-битное слово. Индексы описываются далее.

MESH описывается в трех вариациях по размерам блока: 64, 96, 128 бит. Размер ключа при этом берется вдвое больший .

MESH-64

В данной вариации размер блока составляет 64 бит, ключ — 128 бит. Шифрование проходит в 8,5 раунда. Половина раунда относится к выходным преобразованиям .

Раундовые преобразования

Обозначим входную информацию для -го раунда:

Каждый раунд состоит из двух частей: перемешивание входных данных с подключами и MA-вычисления. На четных и нечетных раундах перемешивание происходит по-разному:

  • Для нечетных раундов:

  • Для четных раундов:

Преобразования, выполняемые MA-боксами, одинаковы для всех раундов. Входные данные для них получаются следующим образом:

МА-вычисления описываются следующими формулами:


Используя результаты, полученные MA-боксами, находим входные данные для следующего раунда:

Согласно схеме, для получения зашифрованного сообщения необходимо после восьмого раунда провести перемешивание по нечетной схеме

Генерация ключей

Для генерации ключей используется 128-битный пользовательский ключ, а также 16-битные константы : , , они вычисляются в Поле Галуа по модулю многочлена . Пользовательский ключ разбивается на 8 16-битных слов .

Вычисление подключей происходит следующим образом :



где .

Расшифровка

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

Тогда подключи расшифровки задаются следующим образом :

  • , - первый раунд расшифровки;
  • , - четный раунд, ;
  • , - нечетный раунд, ;
  • , - выходные преобразования.

MESH-96

В данной вариации размер блока составляет 96 бит, ключ — 192 бит. Шифрование проходит в 10,5 раунда. Половина раунда относится к выходным преобразованиям .

Раундовые преобразования

Обозначим входную информацию для -го раунда:

Каждый раунд состоит из двух частей: перемешивание входных данных с подключами и MA-вычисления. На четных и нечетных раундах перемешивание происходит по-разному:

  • Для нечетных раундов:

  • Для четных раундов:

Преобразования, выполняемые MA-боксами, одинаковы для всех раундов. Входные данные для них получаются следующим образом:

МА-вычисления описываются следующими формулами:



Используя результаты, полученные MA-боксами, находим входные данные для следующего раунда:

Для получения зашифрованного сообщения необходимо после 10-го раунда провести перемешивание по нечетной схеме

Генерация ключей

Для генерации ключей используется 192-битный пользовательский ключ, а также 16-битные константы, такие же, как и для MESH-64.

Вычисление подключей происходит следующим образом :





где .

Расшифровка

Для расшифровки MESH, как и IDEA, использует уже существующую схему, но с измененными раундовыми подключами. Обозначим подключи, использовавшиеся при шифровании, следующим образом:
— подключи полных раундов;
- подключи выходных преобразований.

Тогда подключи расшифровки задаются следующим образом :

  • , — первый раунд расшифровки;
  • , — чётный раунд, ;
  • , — нечётный раунд, ;
  • , — выходные преобразования.

MESH-128

В данной вариации размер блока составляет 128 бит, ключ — 256 бит. Шифрование проходит в 12,5 раунда. Половина раунда относится к выходным преобразованиям .

Раундовые преобразования

Обозначим входную информацию для -го раунда:

Каждый раунд состоит из двух частей: перемешивание входных данных с подключами и MA-вычисления. На чётных и нечётных раундах перемешивание происходит по-разному:

  • Для нечётных раундов:


  • Для чётных раундов:


Преобразования, выполняемые MA-боксами, одинаковы для всех раундов. Входные данные для них получаются следующим образом:

МА-вычисления описываются следующими формулами:







Используя результаты, полученные MA-боксами, находим входные данные для следующего раунда:

Для получения зашифрованного сообщения необходимо после 12-го раунда провести перемешивание по нечетной схеме

Генерация ключей

Для генерации ключей используется 256-битный пользовательский ключ, а также 16-битные константы, такие же, как для MESH-64 и для MESH-96.

Вычисление подключей происходит следующим образом :



где .

Расшифровка

Для расшифровки MESH, как и IDEA, использует уже существующую схему, но с измененными раундовыми подключами. Обозначим подключи, использовавшиеся при шифровании, следующим образом:
— подключи полных раундов;
— подключи выходных преобразований.

Тогда подключи расшифровки задаются следующим образом :

  • , - первый раунд расшифровки;
  • , - чётный раунд, ;
  • , - нечётный раунд, ;
  • , — выходные преобразования.

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

Ниже приводится таблица, содержащая расчетную информацию по возможным криптоатакам. В ней рассматриваются урезанные алгоритмы, количество раундов можно увидеть в соответствующей колонке. За данные принимаются выбранные подобранные открытые тексты , указывается необходимое количество таковых (в блоках). Время оценивается в количестве вычислений. Память отражает количество ячеек памяти, необходимых для хранения каких-либо данных во время криптоатаки. Как видно из таблицы, все варианты MESH более сложны для взлома представленными криптоатаками, чем IDEA, на котором он основан .

Таблица 1. Обобщение сложностей криптоатак на IDEA и MESH
Шифр Криптоанализ Раундов Данные Память Время
IDEA
(8,5 раундов)
Интегральный
MESH-64
(8,5 раундов)
Интегральный
MESH-96
(10,5 раундов)
Интегральный
MESH-128
(12,5 раундов)
Интегральный

Примечания

  1. , p. 1-2.
  2. , p. 124.
  3. , p. 125.
  4. , p. 125-126.
  5. , p. 3.
  6. , p. 4.
  7. , p. 127.
  8. , p. 127-129.
  9. , p. 129.
  10. , p. 129-130.
  11. , p. 130.
  12. , p. 130-132.
  13. , p. 132.
  14. , p. 132-133.
  15. , p. 10-11.
  16. , p. 178-180.
  17. , p. 179.

Литература

  • J. Nakahara, Jr.; V. Rijmen; B. Preneel; J. Vandewalle. (англ.) . — 2002.
  • J. Nakahara, Jr. (англ.) . — 2003. — Июнь. — ISBN 90-5682-407-4 .
Источник —

Same as MESH (шифр)