Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технології захисту інформації - копия

.pdf
Скачиваний:
258
Добавлен:
17.03.2016
Размер:
6.65 Mб
Скачать

дає 160 бітів невизначеності щодо двох оброблених величин. Інакше кажучи, міркування на базі здогадів про значення цих величин і зворотні розрахунки в пошуках вхідного значення, тобто ключа, ненабагато ефективніше, ніж спроба безпосереднього вгадування ключа.

Великий розмір внутрішнього стану (320 біт) у двотрековому MAC надає алгоритму високий рівень безпеки проти атаки, заснованої на внутрішніх помилках. Якщо позначити вихідну довжину m (значення m перебувають між 32 і 160 бітами із кроком 32), складність загальної атаки в цьому примітиві визначається таким способом:

близько 2159 обчислень MAC і 160/m відомих пар текст-MAC необхідні для повного ключового пошуку.

Імовірність вгадування величини MAC становить 2 – m.

Атака, заснована на внутрішній помилці вимагає близько 2160 відомих пар текст-MAC і близько 2320-m обраних текстів.

Cхема роботи алгоритму Two-Track-MAC наведена на рис. 6.8.

Рис. 6.8. Схема роботи алгоритму Two-Track-MAC

CBC-MAC (ISO/IEC 9797-1), до яких відносяться EMAC та RMAC;

Блоковий шифр E є функцією E : KE 0,1 n 0,1 n , де кожна Е (К, •) = = Ек (•) є перестановкою на {0,1}n, КЕ – це безліч можливих ключів, а n довжина блоку.

CBC MAC найбільш простий і добре відомий алгоритм, щоб зробити MAC з блочного шифру Е. Нехай M = M [1] M [2] … М [m] буде рядком повідомлення, де | М [1] | = | M [2] | = … = | M [m] | = n. Тоді CBCK (M), CBC MAC з М з ключами K, визначається як Y [m], де Y [i] = EK

(M [i] Y[i -1]).

для i = 1,..., m і Y [0] = 0n.

В існуючих реалізаціях МАС-алгоритмів CBC MAC Bellare, Kilian, і Rogaway запропонували EMAC.

191

Алгоритм EMAC

EMAC (також відомий як DMAC) має таку перевагу, що дозволяє повторне використання існуючих блокових шифрів реалізації (у CBCрежимі з додатковим шифруванням у вигляді перетворення на виході). Безпека може бути доведена в припущенні, що основний блоковий шифр є псевдовипадковим. Продуктивність і спритність ключів є розумними (EMAC кращий для коротких повідомлень, оскільки довжина блоку менше порівняно зі схемами, заснованими на геш-функції). NESSIE рекомендує використовувати цю конструкцію з 128-бітним блоковим шифром, включеним в NESSIE. На рис. 6.9 наведена схема роботи алгоритму CBC-MAC.

 

 

 

 

m1

 

 

 

 

 

m2

 

 

 

 

 

 

 

 

mx

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

E

 

k

 

 

E

 

 

 

 

k

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

результат

Рис. 6.9. Cхема роботи алгоритму CBC-MAC

Обчислення EMAC для секретного ключа K і повідомлення X – поділеного (після заповнення) на 128-бітові блоки X1, …, Xt – оброблених таким способом (тут EK позначає шифрування з використанням 128бітового блокового шифру AES на ключі K):

1.Обчисліть H1 = EK1(X1).

2.Для i = 2, …, t: обчисліть H1 = EK1(Xi Hi-1).

3.Обчисліть вихідне перетворення: Hout = EK2(Ht). Ключ K2 може

бути похідним від K1, отриманим в ході такої процедури:

K1 = K1 (f0f0…f0r).

4. Для того, щоб одержати величину m-біт MAC, необхідно вибрати тільки ліві m біти Hout.

RMAC є випадковим варіантом цієї схеми, що забезпечує кращу протидію атаці на основі внутрішніх помилок. Єдина відмінність –

192

у вихідному перетворенні, де можна кодувати на ключі, отриманому порозрядовим доповненням K2 і R:

Hout = EK2 R(Ht).

Для RMAC, ключі K1 і K2 можуть бути незалежними або похідними від одного головного ключа стандартним чином. R – значення, довжиною r біт, повинне бути заповнене 0-бітами, якщо воно менше, ніж K2. П’ять різних наборів параметрів були визначені для розмірів m і r.

Аналіз безпеки. Безпека EMAC може бути доведена на базі припущення, що основний блоковий шифр – псевдовипадковий [25; 27; 50; 61], у такому випадку Rijndael, який було проаналізовано, протягом тривалого часу протягом і після процесу AES реалізує вимоги безпеки.

Необхідно також зазначити, що без додаткового шифрування в остаточному підсумку (або у випадку, якщо K2 повинен бути обраний рівним K1), проста (адаптивно обраний текст) підробка буде можлива для схеми CBC-MAC (через атаку підробки exor). Якщо K1 і K2 повинні бути обрані незалежно, рівень безпеки проти атаки відновлення ключа буде менш імовірним, ніж передбачено за розміром алгоритмів формування ключа (через атаку "розділяй і пануй"). Внутрішня помилка утворює підроблене значення, що вимагає близько 264 відомих пар текст-MAC і 1 обраний текст при вихідній довжині 128 біт. Більша кількість обраних текстів була б потрібна при виключенні виходу MAC, наприклад, при виборі тільки лівих 64 біт, атаці потрібно близько 264 відомих пар і 264 обраних текстів. З іншого боку, це збільшує ймовірність успішної атаки вгадування величини MAC.

Основна перевага випадкового варіанта RMAC – те, що надається краща протидія атаці, заснованій на внутрішніх помилках. Наприклад, якщо обрані параметри m = 128 і r = 128, то така атака вимагає близько 2128 відомих пар і 1 обраний текст. З іншого боку, RMAC необхідні міцні основи для доказу безпеки шифру; наприклад, основний блоковий шифр повинен бути безпечним проти атаки зчепленого ключа. Відомо, що для RMAC із двома незалежними ключами K1 і K2 очікується, що повний пошук ключів зажадає генерації 22k-1 MAC, де k – розмір одного ключа. Проте, це можна зробити значно швидше для параметрів m = 128 і r = 128: при атаці за обраним повідомленням з одним відомим повідомленням і одним обраним повідомленням K2 може бути виявлено в 2k операціях розшифрування, згодом K1 може бути виявлено протягом

193

приблизно того ж часу. Альтернативна атака на RMAC (m = 128, r = 128) вимагає 2123 обраних текстів (при часі виконання 2124) є серйозною атакою на RMAC, що використовує трехключовий Triple-des в основі блокового шифру замість AES (у певних випадках проведення цих атак має складність близько 256 операцій і ймовірність успіху 2-16).

Алгоритм HMAC (ISO/IEC 9797-1)

HMAC має таку перевагу, що дозволяє повторне використання існуючих реалізацій геш-функції. Безпека може бути доведена на таких припущеннях: основна геш-функція стійка до колізій з невідомим початковим значенням; функція стиснення забезпечена ключами на початкове значення безпечного MAC примітиву (для повідомлень з одного блоку); функція стиснення є слабкою псевдовипадковою функцією. Ці припущення слабкіші, ніж припущення, необхідні для TTMAC і EMAC. Продуктивність і спритність ключів є розумними. NESSIE рекомендує використовувати цю конструкцію з колізіонно-стійкою гешфункцією, включеною в NESSIE.

Формування МАС-кодів за допомогою HМАС:

HMAC(К,M) = h((K opad) || h(K ipad) || M),

де h – геш-функція;

К – секретний ключ, доповнений нулями до розміру блоку; M – повідомлення для ідентифікації;

ІІ – конкатенація;

opad – 0x5c5c..5c (довжина дорівнює розміру блока); ipad – 0x3636..36 (довжина дорівнює розміру блока).

Cхему роботи алгоритму HМАС наведено на рис. 6.10.

 

K

opad

 

 

 

 

 

 

 

 

 

HMAC(K, M)

 

 

 

 

h3

 

 

 

h4

 

 

 

 

IV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K ipad

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h1

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6.10. Cхема роботи алгоритму HMAC

Обчислення MAC для секретного ключа K і повідомлення X відбувається таким чином (тут h позначає геш із геш-функцією SHA-1):

1. Обчислити ключову величину K’ довжиною 512 біт. Припустимо, що K має довжину l біт. Якщо l = 512, то установимо K’ = K; якщо l < 512,

194

то одержимо K’, додаючи 512 – l нульових біт до K; якщо l > 512, то одержимо K’, обчислюючи геш h(K) (160 біт довжиною) і додаючи 352 нульових біт до цієї величини геша.

2.Exor K’ З 512-бітовою константою ipad і додаємо до повідом-

лення X: (K’ ipad) || X.

3.Обчислити геш рядок із кроку 2: h((K’ ipad) || X).

4.Exor K’ з 512-бітовою константою opad і додайте 160-бітовий

результат із кроку 3: (K’ opad) || h((K’ ipad) || X).

5.Обчислити геш рядка із кроку 4: h((K’ opad) || h((K’ ipad) || X)).

6.Щоб одержати величину m-біт MAC, необхідно виберати тільки ліві m біт результату кроку 5.

Рядок ipad визначений як 64-кратна конкатенація шістнадцяткової величини "36", і рядок opad – як 64-кратна конкатенація шістнадцяткової величини "5c".

Аналіз безпеки.

Беллейр (Bellare) [36] дає теоретичну основу HMAC, що зв’язує безпеку схеми MAC з безпекою основної геш-функції, і в цьому випадку SHA-1 виступає як досконально вивчений примітив, у якому не знайдені вразливості.

А саме, доведено, що HMAC безпечний, якщо враховувати такі припущення (тут f – функція стиску, яка повторюється геш-функцією для кожного 512-бітового блоку):

геш-функція є постійною помилкою при секретній початковій величині;

функція стиску f за ключем з початковою величиною є досить міцним алгоритмом MAC (означає, що вихід важко передбачити);

величини f(K’ ipad) і f(K’ opad) не відрізняються від дійсно довільних величин. Це означає, що функція стиску f є "слабкою" псевдовипадковою функцією ("слабкою" оскільки криптоаналітик не має прямого доступу до K’).

Зазначимо також, що якщо конструкція HMAC використовується двома незалежними ключами (замість використання K1 = K’ ipad і K2 = K’ opad), рівень безпеки проти атаки відновлення ключа буде менше, ніж дає розмір ключа алгоритму (через атаку "розділяй і пануй"). Внутрішня помилка утворює підроблене значення для HMAC, засноване на SHA-1, якому необхідно близько 280 відомих пар текст-MAC і 1

195

-w+1

обраний текст при вихідній довжині 160 біт. Більша кількість обраних текстів була б потрібна при урізаному виході MAC, наприклад, при виборі самих лівих 80 біт, атака потрібує близько 280 відомих пар і 280 обраних текстів. З іншого боку, це збільшує ймовірність успіху для атаки вгадування величини MAC.

UMAC: розробка корпорації Intel (США), Університету з штату Невада в Рено (США), Науково-Дослідної лабораторії IBM (США), Technion (Ізраїль) і Університету з Каліфорнії в Девісі (США);

Код автентифікації повідомлення UMAC заснований на сімействах універсальних геш-функцій і забезпечує те, що перевіряється безпека в тому розумінні, що є доказові межі помилки геш частини обчислення MAC, так що безпека в підсумку залежить від шифрувального примітива, використаного для кодування залишку. Примітив, установлений у специфікаціях AES (Rijndael) блокового шифру, який аналізувався довгий час протязгом і після процесу AES, реалізує вимоги до безпеки. Існує також додаткова перевага, яка полягає в тому, що шифрування виконується на невеликому залишку.

Ніяких вразливостей не було виявлено в ході доведення безпеки UMAC. Для прошарку, що використовує універсальне сімейство гешфункцій NH, перший доказ безпеки говорить про те, що NH є майже 2-w – універсальним (це означає, що ймовірність зіткнення – не більш 2-w) для рядків рівної довжини, для слів довжиною w біт. Це відповідає використанню NH на одному блоці повідомлення встановленої довжини. Другий доказ безпеки дозволяє поширювати цей результат на NH, що працює з будь-якою парою рядків подібно UMAC. Причина того, що ймовірність помилки після прошарку геша NH у схемі Uhash16 становить 2-15, а не 2-16, у тому, що використовується знакова версія NH. Перший варіант доведення безпеки показує, що знакова версія NH 2 – майже універсальна.

Uhash16 і Uhash32 мають два додаткових прошарки, що використовують RP і універсальні сімейства геш-функцій IP; вони повторюють тришарову схему, відповідно, два й чотири рази. Доведено, що сімейство геша Uhash16 4 має 4 рівні (2-15 + 2-18 + 2-28) і майже універсально, і, що сімейство геша Uhash32 має 2 рівні (2-31 + 2-33) і також майже універсально.

На рис. 6.11 наведено схему роботи алгоритмів UMAC16/32.

196

Секретний ключ К

 

 

 

PDF(K, Nonce, Taglen)

Nonce(128)

 

 

 

 

 

 

 

Повідомлення М(8)

 

Гешоване

 

 

 

 

 

 

 

 

 

 

 

 

Секретний ключ

Hash(K, M, Taglen)

повідомлення(64)

 

XOR

Tag(64)

К(128)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6.11. Схема роботи алгоритму UMAC16/32

Алгоритм дозволяє забезпечити більш високу швидкість (особливо для довгих повідомлень) і підтверджувану безпеку, ціною більшої складності.

Для перевірки автентичності довгого потоку повідомлень UMAC на сьогоднішній день є найшвидшим з MAC примітивів розглянутими NESSIE (за рахунок більшої складності і гіршої спритності ключів порівняно з іншими примітивами). UMAC заснований на універсальному сімействі геш-функцій й доказовою безпекою: розрив примітиву означатиме і розрив блокового шифру, який використовується в схемі як псевдовипадкова функція (поточна специфікація в якості блокового шифру вибирає AES).

Основними характеристиками алгоритмів формування МАС кодів, за якими виконується їх порівняльна оцінка відповідно до рекомендацій проекту NESSIE є:

рівень захищеності МАС кодів від загальних атак; швидкодія алгоритмів формування МАС кодів; статистичні властивості розподілів МАС кодів.

У табл. 6.5 наведено аналіз тестування швидкості роботи алгоритмів гешування.

 

 

 

 

Таблиця 6.5

Аналіз тестування швидкості роботи алгоритмів гешування

 

 

 

 

 

 

Кількість

Мова

Швидкість роботи на

Швидкість роботи на

Функція гешування

Pentium III

циклів

реалізації

Celeron 600 MHz

 

1000 MHz

 

 

 

 

 

 

 

 

 

ГОСТ 34311-95

-

С + ASM

49,408 Мбіт/с

83,056 Мбіт/с

 

 

 

 

 

UMAC

-

С

989,371 Мбіт/с

1648,953 Мбіт/с

С + ASM

3518,900 Мбіт/с

5885,057 Мбіт/с

 

 

 

 

 

 

 

Rijndael CBC–MAC

14

С

139,376 Мбіт/с

231,255 Мбіт/с

 

 

 

 

 

ГОСТ 28147-89

16

С+ ASM

189,559 Мбіт/с

315,270 Мбіт/с

(OFB)

 

 

 

 

 

 

 

 

 

197

Проведений аналіз показав, що найбільш перспективним алгоритмом обробки інформації є UMAC, який забезпечує обробку величезних розмірів даних за секунди (109 біт/с). При додатковому використанні алгоритму AES вірогідність зламу значно зменшується.

Для вирішення завдань забезпечення цілісності спостереження і достовірності інформації за допомогою протоколів автентифікації застосовуються криптографічні контрольні суми. Методи формування криптографічних контрольних сум можна розділити на два класи: на базі симетричних криптографічних перетворень (коди автентифікації повідом-лень (МАС-коди)) і несиметричні перетворення (ЕЦП або електронні цифрові підписи) із застосуванням секретних ключів. Такі функції можуть застосовуватися безпосередньо як криптографічна контрольна сума, так і в інших перетвореннях.

Відомі методи забезпечення автентичності і цілісності даних засновані на внесенні надмірності до оброблюваної послідовності.

При розгляді стандартів ISO 7498-2 і ISO/IEC 10181 визначено, що одним з найнадійніших способів вирішення завдань, пов’язаних з автентифікацією (процедура встановлення достовірності твердження про те, що об’єкт (або суб’єкт) володіють заявленими властивостями) даних і джерел повідомлень, є процедури формування цифрового підпису, побудовані на основі асиметричних криптографічних алгоритмів [50; 52; 60].

Забезпечення цілісності і автентичності інформації полягає у налагодженні процесу автентифікації відправника і контролю цілісності повідомлень за допомогою цифрового підпису.

Зазначимо, що обчислювальна стійкість схем ключового гешування і вірогідність колізії впливає на стійкість цифрового підпису, МАС-кодів і інших механізмів забезпечення безпеки інформації.

За використовуваними внутрішніми перетвореннями функції гешування можна поділити на: функції, що використовують бітові логічні перетворення. Ці функції застосовують до вхідного повідомленням побітові нелінійні операції "І", "АБО", "НЕ", "ВИКЛЮЧАЮЧЕ АБО", різні зрушення і, як правило, є багатоцикловими; функції, що використовують блокові симетричні шифри. Використовуються в основному для реалізації функцій вироблення МАС; функції, що використовують перетворення в групах, полях та кільцях з цілочисленним або поліноміальним базисом; функції, що використовують матричні перетворення.

198

Аналіз умов застосування функцій гешування та їх практичного використання дозволив сформулювати вимоги, які пред’являються до застосовуваних у криптографії безключовим геш-функціям. Вони полягають у такому: стійкість до обчислення; стійкість до обчислення другого; стійкість до колізій.

Вимога стійкості до колізій є більш жорсткою, ніж вимога стійкості до обчислення другого прообразу, оскільки припускає довільний вибір двох прообразів.

На практиці зазвичай використовуються геш-функції, що є одночасно безколізійними і односпрямованими.

Усі атаки на геш-функцiї можна розділити на дві групи: атаки, що базуються на вразливості алгоритму перетворень (аналітичні) і атаки, не залежні від алгоритму.

Атаки, не залежні від алгоритму: атака "грубою силою", атака методом "дня народження", повний перебір ключів. До таких атак уразливі всі алгоритми, єдина можливість їх уникнути – збільшити довжину геш-значення, що виробляється однонаправленою або безколізійною геш-функцiєю, і секретного ключа у функції вироблення MAC-коду.

Аналітичні атаки: атака "зустріч посередині", атака з корекцією блоку, атака з фіксованою точкою, атака на базовий алгоритм шифрування, диференціальний аналіз. Ці атаки ґрунтуються на недоліках внутрішньої структури геш-функцій.

Згідно з проведеними дослідженями найбільш стійкою геш-функцією до різних типів атак є функція вироблення MAC-коду, яка використовується для автентифікації повідомлення.

Слід розрізняти функції вироблення MАС-коду і однонаправлені геш-функцiї з секретним ключем, що є частиною повідомлення, оскільки вони володіють різними властивостями. У функціях вироблення MАСкоду секретний ключ застосовується до кожного блоку повідомлення, а в однонаправлених геш-функціях ключ використовується префіксним (на початку повідомлення), постфіксним (в кінці повідомлення) або комбінованим методом, що знижує стійкість функції. Повідомлення цілісності коду (MDC) відрізняється від MAC в тому, що секретний ключ не використовується в їх діяльності. Хоча ці терміни іноді використовуються як взаємозамінні, MDC завжди повинен бути закодований в ході передачі, якщо він використовуватиметься як надійний гарант цілісності повідомлення. З іншого боку, MAC, який використовує секретний ключ,

199

не обов’язково повинен бути зашифрований щоб забезпечити такий же рівень надійності.

Результати досліджень у галузі захисту інформації, а також аналіз літератури показали [18; 21; 23; 32; 33; 36; 42 – 46], що одним з найбільш перспективних методів забезпечення цілісності та автентичності інформації є введення в інформацію надмірного коду на основі використання кодів автентифікації повідомлень (МАС кодів), що дозволяє із заданою імовірністю встановлювати дійсність переданого повідомлення [23; 43].

Для проведення статистичного дослідження колізійних властивостей формованих елементів введемо методику, в основі якої лежить емпірична оцінка максимумів числа ключів (правил гешування) при яких:

1. Для довільних x1, x2 A , x1 x2 виконується рівність:

 

h(x1) h(x2 ) ;

(6.1)

2.

Для довільних x1 A та y1 B виконується рівність:

 

h(x1) y1 ;

(6.2)

3.

Для довільних x1, x2 A , x1 x2 та y1, y2

B виконується рівність:

 

h(x1) y1,h(x2 ) y2 .

(6.3)

Оцінка за першим критерієм відповідає перевірці здійсненності умови для універсального класу геш-функцій, оцінка за другим і третім критеріями – умов для строго універсального класу геш-функцій.

Введемо такі позначення:

n1(x1, x2 ) h H : h(x1) h(x2 ) , x1, x2 A , x1 x2 ; n2 (x1, y1) h H : h(x1) y1 , x1 A , y1 B;

n3 (x1, x2, y1, y2 ) h H : h(x1) y1,h(x2 ) y2 , x1, x2 A , x1 x2 , y1, y2 B .

Перший показник n1(x1, x2 ) характеризує кількість правил гешування, при яких для заданих x1, x2 A , x1 x2 , виконується рівність (6.1), тобто кількість ключів, при яких існує колізія (збіг геш-кодів) для двох вхідних послідовностей x1 і x2 .

Другий показник n2 (x1, y1) характеризує кількість правил гешування, при яких для заданих x1 A , y1 B, виконується рівність (6.2), тобто скількість ключів, при яких для вхідної послідовності x1 значення гешкоду y1 не змінюється.

200