- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (des). Критерії, що лежать в основі конструкції des. Алгоритми "Подвійний" та "Потрійний" des.
- •Режими роботи блочних шифрів. Проблема та схеми розподілу ключів симетричного шифрування.
- •1. Режим електронної шифрувальної книги
- •2. Режим зчеплення шифрованих блоків
- •3. Режим шифрованого зворотного зв'язку
- •Генерування випадкових чисел. Використання та джерела випадкових чисел. Генератори псевдовипадкових чисел.
- •Криптографія з відкритим ключем. Принципи побудови криптосистем з відкритим ключем.
- •Алгоритм rsa
- •Порівняння основних характеристик симетричних та асиметричних алгориммів
- •Управління ключами і схема Діффі–Хеллмана.
- •1. Публічне оголошення
- •2. Публічно доступний каталог
- •3. Авторитетне джерело відкритих ключів
- •4. Сертифікати відкритих ключів
- •1. Простий розподіл секретних ключів
- •2. Розподіл секретних ключів із забезпеченням конфіденційності і аутентифікації
- •3. Гібридна схема
- •Аутентифікація повідомлень і функції хешування. Вимоги та функції аутентифікації.
- •1.1. Шифрування повідомлення
- •1.1.1. Традиційне шифрування
- •Коди автентичності повідомлень та функції хешування.
- •1. Коди автентичності повідомлень
- •1.1. Необхідні властивості кодів автентичності повідомлень
- •1.2. Коди автентичності повідомлень на основі des
- •2. Функції хешування
- •2.1. Вимоги, що пред'являються до функції хешування
- •2.2. Прості функції хешування
- •2.3. Атаки, в основі яких лежить парадокс задачі про дні народження
- •3. Захист функцій хешування і кодів автентичності повідомлень
- •3.1. Атаки з перебором всіх варіантів
- •3.2. Функції хешування
- •Алгоритми хешування. Алгоритм hmac.
- •1.1. Цілі розробки нмас
- •1.2. Алгоритм нмас
- •1.3. Захищеність нмас
- •Цифрові підписи та протоколи аутентифікації. Вимоги до цифрового підпису. Стандарт цифрового підпису dss.
- •1. Цифрові підписи
- •1.1. Вимоги
- •1.2. Безпосередній цифровий підпис
- •1.3. Арбітражний цифровий підпис
- •Протоколи аутентифікації. Взаємна та одностороння аутентифікація. (прочитати уважно номери малюнків і т.Д.)
- •2. Підходи на основі традиційного шифрування
- •3. Підходи на основі шифрування з відкритим ключем
- •4. Одностороння аутентифікація
- •5. Підхід на основі традиційного шифрування
- •6. Підходи на основі шифрування з відкритим ключем
- •Програмна реалізація криптографічних алгоритмів. Використання криптографічних функцій Microsoft CryptoApi в прикладному пз. Поняття про безпечний цикл розробки пз (sdl).
- •1. Будова і можливості Crypto api
- •2. Криптопровайдери
- •3. Контейнери ключів
- •4. Алгоритми
- •5. Сертифікати
- •6. Базові функції
- •6.1. Шифрування
- •6.2. Експорт сесійних ключів
- •6.3. Імпорт сесійних ключів
- •6.4. Розшифрування
- •6.5. Хешування
- •6.6. Цифровий підпис
- •6.7. Перевірка цифрового підпису
- •Методи і засоби створення захищеного програмного забезпечення.
- •3. Класифікація вразливостей захисту
- •4. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
1.1. Цілі розробки нмас
У RFC 2104 представлений наступний список цілей, переслідуваних при розробці алгоритму НМАС.
Можливість використовувати без модифікацій вже наявні функції хешування, зокрема функції хешування, для яких є добре працюючі, відкриті і широко доступні реалізації у вигляді програм.
Можливість легкої заміни вбудованої функції хешування на більш швидкі або більш захищені функції хешування, якщо такі будуть потрібні або будуть знайдені.
Збереження швидкості роботи алгоритму, близькою до швидкості роботи відповідної функції хешування, без значного погіршення показників швидкості.
Можливість застосування ключів і простота звернення до них.
Простота криптоаналізу стійкості механізму аутентифікації при розумних припущеннях щодо вбудованої функції хешування.
Перші дві цілі є важливими з точки зору прийнятності НМАС. В алгоритмі НМАС функція хешування інтерпретується як "чорний ящик". Це має дві переваги. По-перше, вже існуюча реалізація функції хешування може використовуватися у вигляді модуля в НМАС. Тому при такому підході чимала частина коду НМАС виявляється уже готовою до застосування без яких би то не було модифікацій. По-друге, якщо доведеться коли-небудь заміняти наявну функцію хешування в даній реалізації НМАС, то для цього буде потрібно лише прибрати наявний модуль функції хешування і замінити його новим. Це можна зробити, наприклад, якщо буде знайдена більш швидка функція хешування. Але, що більш важливо, якщо безпека вбудованої функції хешування буде скомпрометована, надійність НМАС може бути відновлена простою заміною вбудованої функції хешування на більш захищену (наприклад, заміною MD5 на RIPEMD-160).
Остання з перерахованих вище цілей проекту фактично забезпечує основну перевагу НМАС в порівнянні з іншими схемами, заснованими на використанні хешування. НМАС забезпечує гарантовану захищеність за умови, що вбудована функція хешування володіє певною криптографічного стійкістю. Ми повернемося до цього питання пізніше, а спочатку розглянемо структуру НМАС.
1.2. Алгоритм нмас
На рис. 13.1 показана загальна схема роботи НМАС. Визначимо елементи схеми.
Н — вбудована функція хешування (наприклад, MD5, SHA-1 або RIPEMD-160),
М — подається на вхід НМАС повідомлення (включаючи біти заповнювача, що вимагаються вбудованою функцією хешування),
Yi —i-й блок M, 0 < i < L - 1,
L — число блоків в М,
b — число бітів в блоці,
n — довжина хеш-коду, породжуваного вбудованою функцією хешування,
К — секретний ключ; якщо довжина ключа більше b, ключ подається на вхід функції хешування, щоб отримати n-бітовий ключ; рекомендується довжина> n,
К+ — ключ К з доданими в початок нулями, щоб у результаті довжина вийшла рівною b біт,
ipad — значення 00110110, повторене b/8 разів,
opad — значення 01011010, повторене b/8 разів.
У цьому випадку алгоритм НМАС можна представити формулою
Детально описати алгоритм можна таким чином.
До значення K зліва додаються нулі, щоб отримати b-бітовий рядок K+ (наприклад, якщо K має довжину 160 бітів і b = 512, то значення K буде доповнено 44 нульовими байтами 0x00).
Значення К+ зв'язується операцією XOR (побітовое виключаюче "АБО") з ipad, в результаті чого виходить b-бітовий блок Si.
До Si приєднується М.
До потоку, отриманого на кроці 3, застосовується функція Н.
Значення К+ зв'язується операцією XOR з opad, в результаті чого виходить b-бітовий блок So.
Результат хешування, отриманий на кроці 4, приєднується до So.
До потоку, отриманого на кроці 6, застосовується функція Н, і результат подається на вихід.
Рис.13.1. Структура HMAC
Зверніть увагу на те, що зв'язування з ipad (крок 3) означає переключення половини бітів К. Точно так само і зв'язування з opad означає переключення половини бітів К, але для іншого набору бітів. Насправді в результаті пропускання Si і So через функцію стиснення алгоритму хешування з К виходить два ключа, згенерованих псевдовипадкових чином.
Для досить довгих повідомлень алгоритм НМАС повинен виконуватися приблизно за той же час, за яке виконується вбудована функція хешування, В НМАС додатково три рази застосовується функція стиснення хешування (для Si, So і блоку, одержуваного при внутрішньому хешування).
Як показано на рис. 13.2, можлива більш ефективна реалізація. У даному випадку заздалегідь обчислюється два значення:
і
де f (cv, блок) позначає функцію стиснення для функції хешування, параметрами якої є n-бітова змінна зчеплення і b-бітовий блок, а на виході виходить n-бітова змінна зчеплення. Ці значення потрібно обчислювати на самому початку і кожного разу, коли змінюється ключ. Заздалегідь обчислювані значення замінюють початкове значення (IV) функції хешування. У цій реалізації має місце тільки одне додаткове застосування функції стиснення в порівнянні із звичайною функцією хешування. Ця більш ефективна реалізація особливо зручна в тих випадках, коли більшість повідомлень, для яких обчислюється значення MAC, виявляються короткими.
Рис. 13.2. Ефективне використання алоритма HMAC
