- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (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. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
2.3. Атаки, в основі яких лежить парадокс задачі про дні народження
Припустимо, що використовується 64-бітовий хеш-код. Може здатися, що така довжина хеш-коду цілком достатня для безпеки. Наприклад, якщо зашифрований хеш-код С передається разом з відповідним нешифрований повідомленням М (див. рис. 11.5 (6) або 11.5 (B)), ТО противнику потрібно знайти таке М', що Н(М') = Н(М) , щоб замінити вихідне повідомлення іншим і обдурити одержувача. В середньому противнику для цього необхідно перевірити близько 263 повідомлень, щоб знайти одне відповідне хеш-коду перехопленого повідомлення [див. додаток 8А, рівність (11.1)].
Однак противник має можливість застосувати інший вид атаки, заснований на парадоксі задачі про дні народження (див. додаток 8А). В роботі [YUVA79] була запропонована наступна стратегія.
Відправник А готується "підписати" повідомлення за допомогою приєднання до повідомлення відповідного m-бітового значення MAC і шифрування цього значення MAC особистим ключем А (див. рис. 8.5 (B)).
Противник генерує 2m/2 варіантів повідомлення, які всі мають, по суті, один сенс. Крім того, противник готує і стільки ж повідомлень, є варіантами неправдивого повідомлення, яким повинне буде замінено істинне.
Ці два набори повідомлень порівнюються, щоб знайти пару повідомлень, що породжують один і той же хеш-код. Імовірність успіху відповідно до парадоксом задачі про дні народження виявляється більше, ніж 0,5. Якщо підходяще повідомлення не знайдено, генеруються нові істинні і помилкові повідомлення доти, поки не буде отримано збіг.
Противник пропонує варіант істинного повідомлення на підпис користувачеві А. Цей підпис потім може бути доданий до варіанту неправдивого повідомлення для передачі передбачуваному одержувачу. Оскільки обидва варіанти мають один і той же хеш-код, вони породять однакові підписи і противник буде впевнений в успіху, навіть не знаючи ключа шифрування.
Так, у разі використання 64-бітового хеш-коду потрібні зусилля порядку всього 2З2 [див. додаток 8А; рівність (8.7)].
Генерувати багато варіантів повідомлення з однаковим змістом зовсім не важко. Наприклад, противник може вставити в ряд місць документа послідовності типу "пробіл - пробіл - повернення на одну позицію" між словами. Тоді варіації можна буде породжувати, замінюючи зазначені послідовності на "пробіл-повернення на одну позицію-пробіл" в обраних містах. Противник також може просто переписати повідомлення іншими словами, зберігши зміст. Приклад показаний на рис. 8.9, взятому з [DAVI89].
Звідси можна зробити висновок, що довжина хеш-коду може бути істотною.
3. Захист функцій хешування і кодів автентичності повідомлень
Як і у випадку традиційного шифрування і шифрування з відкритим ключем, атаки на функції хешування та коди автентичності повідомлень можна розділити на дві категорії: перебір всіх варіантів і криптоаналіз.
3.1. Атаки з перебором всіх варіантів
Підходи з перебором всіх варіантів для функцій хешування і кодів автентичності повідомлень трохи відрізняються
