- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (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. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
3. Гібридна схема
Ще одна схема використання шифрування з відкритим ключем при розподілі секретних ключів являє гібридний підхід, який застосовується на мейнфреймах IBM [LE93]. Ця схема передбачає участь центру розподілу ключів (ЦРК), з яким кожен користувач використовує свій головний секретний ключ, і розподіл секретних сеансових ключів, шіфруемих головним ключем. Схема шифрування з відкритим ключем служить для розподілу головних ключів. В основі такого трирівневого підходу лежить наступна логіка.
Швидкість виконання процедури. Існує багато додатків, особливо орієнтованих на передачу транзакцій, де сеансові ключі повинні змінюватися дуже часто. Розподіл сеансових ключів за допомогою схеми з відкритим ключем могло б зробити продуктивність системи занадто низькою через відносно високих вимог до обчислювальних ресурсів при шифруванні і дешифрування за такою схемою. У разі трирівневої ієрархії шифрування з відкритим ключем застосовується лише іноді, щоб змінити головний ключ, розділяється користувачем і ЦРК.
Зворотна сумісність. Гібридну схему можна легко реалізувати у вигляді розширення вже наявної схеми, яка передбачає використання ЦРК, з мінімальними змінами передбаченої процедури і програмного забезпечення.
Додавання рівня шифрування з відкритим ключем забезпечує захищений і ефективний засіб розподілу головних ключів. Це є перевагою в конфігурації, коли один ЦРК обслуговує велику кількість користувачів, що знаходяться на значній відстані один від одного.
Обмін ключами за схемою Діффі-Хеллмана
Перший з опублікованих алгоритмів на основі відкритих ключів з'явився в роботі Діффі і Хеллмана, в якій було визначено саме поняття криптографії з відкритим ключем [DIFF76b]. Зазвичай цей алгоритм називають обме-ном ключами за схемою Діффі-Хеллмана. Дана технологія обміну ключами реалізована в цілому ряді комерційних продуктів.
Мета схеми - забезпечити двом користувачам захищену можливість повідомити один одного ключ, щоб вони могли вдатися до неї для шифрування наступних повідомлень. Сам по собі алгоритм обмежується процедурою обміну ключами.
Ефективність алгоритму Діффі-Хеллмана спирається на трудність обчислення дискретних логарифмів. Формально дискретний логарифм можна визначити наступним чином. Спочатку визначається первісний корінь простого числа р як число, ступеня якого породжують всі цілі числа від 1 до р - 1. Це означає, що якщо а є первісним коренем простого числа р, то всі числа
повинні бути різними і представляти всі цілі числа від 1 до р - 1 в деякій перестановці.
Для будь-якого цілого числа b і будь-якого первообразного кореня а простого числа р однозначно визначається показник степеня i, при якому
Цей показник ступеня зазвичай називається дискретним логарифмом, або індексом b за основою а, розглянутого по модулю р. Це значення записується у формі inda,p(b).
Тепер ми можемо описати обмін
ключами за схемою Діффі-Хеллмана,
ілюстрацією якої служить рис. 10.7. У цій
схемі є два відкритих для всіх чисел:
просте число q
і ціле число α,
що є первісним коренем q.
Припустимо, користувачі А і Б мають
намір обмінятися ключами. Користувач
А вибирає випадкове ціле число ХА<q
і обчислює YA=
αXA
mod q.
Точно так же користувач В незалежно
вибирає випадкове ціле число ХB<q
і обчислює YB=
αХb
mod q.
Кожна сторона зберігає значення X
в таємниці і робить значення Y
вільно доступним іншій стороні. Користувач
А обчислює ключ за формулою
,
а користувач В - за формулою
.
Ці дві формули обчислення дають однакові
результати, як показано нижче.
(за правилами арифметики в класах вирахувань)
Отже, обидві сторони обмінялися секретним ключем. А оскільки при цьому ХA і ХB були тільки в особистому використанні і тому збереглися в таємниці, противнику доведеться працювати тільки з q, α, YА і YB. Таким чином, йому доведеться обчислювати дискретний логарифм, щоб визначити ключ. Наприклад, щоб визначити ключ користувача В, супротивнику слід обчислити
Після цього він зможе обчислити ключ К точно так само, як це робить користувач В.
Захищеність обміну ключами за схемою Діффі-Хеллмана спирається фактично на те, що в той час, як степені за модулем деякого простого числа обчислюються відносно легко, обчислювати дискретні логарифми виявляється дуже важко. Для великих простих чисел остання вважається задачею практично нерозв'язною.
Ось приклад, взятий з [SEBE89]. Обмін ключами будується на використанні простого числа q = 97 і його первісним коренем α = 5, Користувачі А і В обирають секретні ключі ХА = 36 і Хв = 58 відповідно.
Кожен обчислює свій відкритий ключ:
Після того як користувачі обміняються відкритими ключами, кожен з них може обчислити загальний секретний ключ
Маючи {50, 44}, противнику не вдасться з легкістю обчислити 75.
На рис. 10.8 представлений простий протокол, в якому застосовуються обчислення у відповідності зі схемою Діффі-Хеллмана. Припустимо, що користувач А збирається встановити зв'язок з користувачем В і використовувати секретний ключ, щоб шифрувати повідомлення, що передаються за допомогою такого зв'язку. Користувач А може генерувати одноразове секретне значення ХА, обчислити значення YА і відіслати останнє користувачеві В. У відповідь користувач В генерує секретне значення ХB, обчислює YB і посилає YB користувачеві А. Обидва користувача можуть тепер обчислити загальний ключ. Необхідні відкриті значення q і α мають бути відомі заздалегідь. Користувач А може також вибрати ці значення на свій розсуд і включити їх в перше повідомлення.
Для прикладу іншої можливості використання алгоритму Діффі-Хеллмана розглянемо деяку групу користувачів (наприклад, всіх користувачів локальної мережі) і припустимо, що кожен з цих користувачів повинен згенерувати секретне значення ХА для довгострокового застосування і обчислити відкрите значення YА. Всі отримані таким чином відкриті значення разом із глобальними відкритими значеннями q і α зберігаються централізовано в деякому каталозі. У будь-який момент користувач В може отримати доступ до відкритого значенням користувача А, обчислити секретний ключ і використовувати його для пересилання шифрованого повідомлення користувачу А. Якщо каталог, який зберігається централізовано, є надійним, то ця форма комунікації забезпечує як конфіденційність, так і певну ступінь аутентифікації. Оскільки тільки користувачі А і В можуть визначити ключ, інший користувач не може прочитати повідомлення (конфіденційність). Одержувач А знає, що тільки користувач В міг створити повідомлення, використовуючи цей ключ (аутентифікація). Однак така схема не захищена від атак на основі відтворення повідомлень.
Рис.
10.7. Алгоритм обміну ключами по схемі
Діффі-Хеллмана
Рис. 10.8. Обмін ключами по схемі Діффі-Хеллмана.
