- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (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. Простий розподіл секретних ключів
Виключно просту схему запропонував Меркле (Merkle) [MERK79], рис. 10.5. Якщо ініціатор А намір обмінятися даними з користувачем В, для цього передбачається наступна процедура.
Рис. 10.5. Просте використання шифрування з відкритим ключем при виборі сеансового ключа
Сторона А генерує пару відкритий / особистий ключі {KUa, KRa} і передає повідомлення стороні В, що містить KU, і код відправника А, IDA.
Одержувач В генерує секретний ключ К. і передає цей ключ інк ціатору повідомлення А зашифрованим з допомогою відкритого ключа інк ціатора А.
Користувач А обчислює DКRa[ЕКUa [Кs]], щоб відновити секретний ключ. Оскільки тільки користувач А може дешифрувати це повідомлення, тільки учасники обміну даними А і В будуть знати значення Кs.
Учасник А викидає ключ KRa, а учасник В - викидає ключ KUa.
Тепер обидві сторони, А і В, можуть використовувати зв'язок, захищену традіцн онним шифруванням з сеансовим ключем Кs. По закінченні обміну даними А і В викидають Кs. Незважаючи на простоту, цей протокол вельми прівлекв телен. Ніяких ключів не існують перед початком зв'язку і ніяких ключі: не залишається після завершення зв'язку. Тому ризик компрометації ключів мінімальний. У той же час зв'язок виявляється захищеним від підслуховування.
Цей протокол вразливий щодо активних атак. Якщо противник Е імее можливість впровадження в канал зв'язку, то він може скомпрометувати зв'язок без того, щоб бути виявленим, таким чином.
Учасник А генерує пару відкритий / особистий ключі {KUa, KRa} і передає повідомлення адресату В, що містить KUa та ідентифікатор учасника А IDА.
Противник Е перехоплює повідомлення, створює власну пару откри тий / особистий ключі {KUe, KRe} і передає повідомлення адресату В, що містить KUe || IDА.
В генерує секретний ключ Кs і передає EKUe[Ks].
Противник Е перехоплює це повідомлення і дізнається Кs, обчислював DKRe [EKUe [Ks]].
Противник Е передає учаснику А повідомлення ЕКUa[Кs].
В результаті обидва учасники, А і В, знатимуть Кs, але не будуть підозрювати що Кs також відомий і противнику Е. Тому сторони А і В можуть почати обмін повідомленнями, використовуючи Кs. Противник Е більше не буде активно втручатися в канал зв'язку, а просто буде перехоплювати повідомлення. Знаючи Кs, він зможе дешифрувати будь-яке повідомлення, а учасники А і В навіть не будуть підозрювати про існування проблеми. Таким чином, цей простий протокол виявляється корисним тільки у випадку, коли єдиною можливою загрозою є пасивний перехоплення повідомлень.
2. Розподіл секретних ключів із забезпеченням конфіденційності і аутентифікації
Схема на рис. 10.6, заснована на підході, запропонованому в [NEED78], забезпечує захист і від активної, і від пасивної форм атаки. В якості вихідних умов припустимо, що А і В вже обмінялися відкритими ключами з однією зі схем, описаних вище. Далі слід виконати наступні дії.
Рис.10.6. Розподіл секретних ключів за допомогою шифрування з відкритим ключем
Сторона А використовує відкритий ключ сторони В, щоб переслати стороні В шифрування повідомлення, що містить ідентифікатор учасника А (IDA) і оказію (N1), використовувану для ідентифікації даної конкретної транзакції.
Користувач В посилає повідомлення користувачу А, зашифроване за допомогою KUa і містить отриману від нього оказію (N1) і нову оказію (N2), згенеровану користувачем В. З огляду на те що тільки учасник В міг дешифрувати повідомлення (1), присутність N1 у повідомленні (2) переконує учасника А в тому, що респондентом є сторона В.
Сторона А повертає N2, шифруючи повідомлення відкритим ключем боку В, щоб гарантувати їй, що його респондентом є сторона А.
Учасник А вибирає секретний ключ Кв і посилає учаснику В повідомлення М = EKUb[EKRa[Ks]]. Шифрування цього повідомлення відкритим ключем сторони В гарантує, що тільки учасник В зможе прочитати його, а шифрування особистим ключем учасника А - що тільки учасник А міг послати його.
Сторона В обчислює DKUa[EKRb[M]], щоб відновити секретний ключ.
Зверніть увагу на те, що перші три дії цієї схеми відповідають останнім трьом діям схеми, показаної на рис. 10.3. В результаті при обміні секретними ключами ця схема гарантує як конфіденційність, так і аутентифікацію.
