В криптографії, 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 раундів) Інтегральний
Примітки
Література