MESH (шифр)
В криптографії, MESH — блочний шифр, що є модифікацією IDEA. Розроблений Жоржем Накахара, Вінсентом Рейменом, Бартом Пренелем і Джусом Вандевалле в 2002 році. На відміну від IDEA, MESH має більш складну раундову структуру. Інший алгоритм генерації ключів дозволяє MESH уникати проблеми слабких ключів [1].
Алгоритм блокового шифрування | |
---|---|
Назва: | MESH |
Розробник: | Накахара, Реймен, Пренель, Вандевалле |
Створений: | заснований на IDEA, модифікації Мережі Фейстеля |
Опублікований: | 2002 |
Розмір ключа: | 128, 192, 256 біт |
Розмір блоку: | 64, 96, 128 біт |
Число раундів: | 8.5, 10.5, 12.5 |
Тип: | Підстановлювально-переустановлена мережа |
Структура шифру
Кожен раунд в IDEA і MESH складається з операцій додавання та множення. Послідовність таких обчислень в межах одного раунду утворює MA-бокс. Всі MA-бокси в MESH використовують мінімум три чергових рівнів додавань і множень (за схемою «зигзаг»), в той час, як в IDEA таких тільки два. Це робить MESH більш стійким проти диференціальної і лінійної криптоатак. Також, з метою уникнення проблеми слабких ключів, в MESH використовуються два наступних принципи:
- Кожне підключення залежить від багатьох подключень, точнішео — як мінімум від шести попередніх ключів нелінійно.
- Використовуються фіксовані константи. Без них, наприклад, ключ з усіх нулів перейшов би в підключі, кожна з яких дорівнювала б нулю в будь-якому раунді.
Як і в IDEA, MESH використовує такі операції:
- Множення по модулю , при чому замість нуля використовується ()
- Бітовий зсув вліво на бит ()
- Складання по модулю ()
- Побітова Виключна диз'юнкція ()
Операції розташовані в порядку зменшення пріоритету. В обчисленнях запис позначає 16-ти бітове слово. Індекси описуються далі.
MESH описується в трьох варіаціях за розмірами блоку: 64, 96, 128 біт. Розмір ключа при цьому береться вдвічі більший [2].
MESH-64
У даній варіації розмір блоку становить 64 біт, ключ — 128 біт. Шифрування проходить в 8.5 раундів. Половина раунду відноситься до вихідних перетворень [3].
Раундові перетворення
Позначимо вхідну інформацію для -го раунду:
Кожен раунд складається з двох частин: перемішування вхідних даних з підключами і MA-обчислення. На парних і непарних раундах перемішування відбувається по-різному:
- Для непарних раундів:
.
- Для парних раундів:
.
Перетворення, що виконуються MA-боксами, однакові для всіх раундів. Вхідні дані для них виходять наступним чином:
МА-обчислення описуються наступними формулами:
Використовуючи результати, отримані MA-боксами, знаходимо вхідні дані для наступного раунду:
Згідно зі схемою, для отримання зашифрованого повідомлення, необхідно після восьмого раунду провести перемішування по непарній схемі [4]
Генерація ключів
Для генерації ключів використовується 128-бітний, призначений для користувача ключ, а також 16-бітові константи : , , вони обчислюються в Полі Галуа по модулю багаточлена . Призначений для користувача ключ, розбивається на 8 16-бітових слів .
Обчислення підключів відбувається наступним чином: [5]:
где .
Розшифровка
Для розшифровки MESH, як і IDEA, використовують вже існуючу схему, але зі зміненими раундовими підключами. Позначимо підключі, що використовувалися при шифруванні, в такий спосіб:
— підключі повних раундів;
— підключі вихідних перетворень.
Тоді підключі розшифровки задаються наступним чином [6]: [6]:
- , — первий раунд розшифровки;
- , — -й парний раунд, ;
- , — -й непарний раунд, ;
- , — вихідні перетворення.
MESH-96
У даній варіації розмір блоку становить 96 біт, ключ — 192 біт. Шифрування проходить в 10.5 раундів. Половина раунду відноситься до вихідних перетворень [7].
Раундові перетворення
Позначимо вхідну інформацію для -го раунду:
Кожен раунд складається з двох частин: перемішування вхідних даних із підключами і MA-обчислення. На парних і непарних раундах перемішування відбувається по-різному:
- Для непарних раундів:
- Для парних раундів:
Перетворення, що виконуються MA-боксами, однакові для всіх раундів. Вхідні дані для них виходять наступним чином:
МА-обчислення описуються наступними формулами:
Використовуючи результати, отримані MA-боксами, знаходимо вхідні дані для наступного раунду:
Для отримання зашифрованого повідомлення, необхідно після 10-го раунду провести перемішування за непарною схемою [8]
Генерація ключів
Для генерації ключів використовується 192-бітний, призначений для користувача, ключ, а також 16-бітові константи, такі ж, як і для MESH-64.
Обчислення подключів відбувається наступним чином: [9]:
где .
Розшифровка
Для розшифровки MESH, як і IDEA, використовує вже існуючу схему, але зі зміненими раундовими підключами. Позначимо підключі, що використовувалися при шифруванні, в такий спосіб:
— підключі повних раундів;
— підключі вихідних перетворень.
Тоді підключі розшифровки задаються наступним чином [10]:
- , — перший раунд розшифровки;
- , — -й парний раунд, ;
- , — -й непарний раунд, ;
- , — вихідні перетворення.
MESH-128
У даній варіації розмір блоку становить 128 біт, ключ — 256 біт. Шифрування проходить в 12.5 раундів. Половина раунду відноситься до вихідних перетворень [11].
Ранундові перетворення
Позначимо вхідну інформацію для -го раунду:
Кожен раунд складається з двох частин: перемішування вхідних даних із підключами і MA-обчислення. На парних і непарних раундах перемішування відбувається по-різному:
- Для непарних раундів:
- Для парних раундів:
Перетворення, що виконуються MA-боксами, однакові для всіх раундів. Вхідні дані для них виходять наступним чином:
.
МА-обчислення описуються наступними формулами:
Використовуючи результати, отримані MA-боксами, знаходимо вхідні дані для наступного раунду:
Для отримання зашифрованого повідомлення необхідно після 12-го раунду провести перемішування за непарною схемою [12]
Генерація ключів
Для генерації ключів використовується 256-бітний, призначений для користувача, ключ, а також 16-бітові константи, такі ж, як для MESH-64 і для MESH-96.
Обчислення подключів відбувається наступним чином: [13]:
где .
Розшифровка
Для розшифровки MESH, як і IDEA, використовує вже існуючу схему, але зі зміненими раундовими підключами. Позначимо підключі, що використовувалися при шифруванні, в такий спосіб:
— підключі повних раундів;
— підключі вихідних перетворень.
[14]:
- , — перший раунд розшифровки;
- , — -й парний раунд, ;
- , — -й непарний раунд, ;
- , — вихідні перетворення.
Криптоаналіз
Нижче наводиться таблиця, яка містить розрахункову інформацію щодо можливих криптоатак. У ній розглядаються урізані алгоритми, кількість раундів можна побачити у відповідній колонці. За дані приймаються вибрані підібрані відкриті тексти, вказується необхідна кількість таких (в блоках). Час оцінюється в кількості обчислень. Пам'ять відображає кількість елементів пам'яті, необхідних для зберігання будь-яких даних під час криптоатаки. Як видно з таблиці, всі варіанти MESH більш складні для злому представленими криптоатаками, ніж IDEA, на якому він базується [15] [16].
Шифр | Криптоаналіз | #Раундів | Дані | Пам'ять | Час |
---|---|---|---|---|---|
IDEA (8.5 раундів) | Інтегральний | ||||
Усічений диф. | |||||
Неможливий диф. | |||||
Неможливий диф. | |||||
MESH-64 (8.5 раундів) | Інтегральний | ||||
Усічений диф. | |||||
Неможливий диф. | |||||
Неможливий диф. | |||||
MESH-96 (10.5 раундів) | Інтегральний | ||||
Усічений диф. | |||||
Неможливий диф. | |||||
Неможливий диф. | |||||
MESH-128 (12.5 раундів) | Інтегральний | ||||
Усічений диф. | |||||
Неможливий диф. | |||||
Неможливий диф. |
Примітки
- The MESH Block Ciphers, 2002, с. 1-2.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 124.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 125.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 125-126.
- The MESH Block Ciphers, 2002, с. 3.
- The MESH Block Ciphers, 2002, с. 4.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 127.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 127-129.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 129.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 129-130.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 130.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 130-132.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 132.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 132-133.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 10-11.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 178-180.
- Cryptanalysis And Design Of Block Ciphers, 2003, с. 179.
Література
- J. Nakahara, Jr; V. Rijmen; B. Preneel; J. Vandewalle. The MESH Block Ciphers. — 2002.
- J. Nakahara, Jr. Cryptanalysis And Design Of Block Ciphers. — 2003. — Помилка: неправильний час. — ISBN 90-5682-407-4.