Криптографія, як одна з базових технологій безпеки мереж.

ІІІ. Викладення нового матеріалу.

 

Міністерством оборони США розроблена загальна класифікація рівнів безпеки, що застосовується й в усьому світі. Ця класифікація визначає чотири класи безпеки (у порядку зростання):

· D - мінімальний захист:

· C - вибірна захисту (з підкласами C1 і З2; C1 < C2);

· B - обов'язковий захист (з підкласами B1 < B2 < B3);

· A - перевірений захист (з математичним доказом адекватності).

На сьогоднішній день деякі комп'ютерні системи в бізнесі задовольняють вимогам класу B1, однак, більшість комерційних застосувань комп'ютерних систем обмежуються вимогами класу C2.

Основні вимоги класу C2 зводяться до наступним:

· власник ресурсу повинен управляти доступом до ресурсу;

· ОС повинна захищати об'єкти від несанкціонованого використання іншими процесами (у тому числі, і після їхнього видалення);

· перед одержанням доступу до системи кожний користувач повинен ідентифікувати себе, увівши унікальне ім'я входу в систему й пароль; система повинна бути здатної використати цю унікальну інформацію для контролю дій користувача;

· адміністратор системи повинен мати можливість контролю (audit) пов'язаних з безпекою подій, доступ до цих контрольних даних повинен обмежуватися адміністратором;

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

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

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

Шифрування процес зміни цифрового повідомлення з відкритого тексту (plaintext) у шифротекст (ciphertext) таким чином, щоб його могли прочитати тільки ті сторони, для яких він призначений, або для перевірки дійсності відправника (аутентификация), або для гарантії того, що відправник дійсно послав дане повідомлення.

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

У методі шифрування із секретнимабо симетричнимключем є один ключ, що використається як для шифрування, так і для розшифровки повідомлення. Такий ключ потрібно зберігати в секреті. Це утрудняє використання системи шифрування, оскільки ключі повинні регулярно мінятися, для чого потрібно їхнє секретне поширення. Найбільш популярні алгоритми шифрування із секретним ключем: DES, TripleDES, ДЕРЖСТАНДАРТ і ін.

Часто використовується також шифрування за допомогою однобічної функції, називаної також хэш або дайджест функцією. Застосування цієї функції до шифруемым даних дозволяє сформувати невеликий дайджест із декількох байт, по якому неможливо відновити вихідний текст. Одержувач повідомлення може перевірити цілісність даних, порівнюючи отриманий разом з повідомленням дайджест із обчисленим знову, за допомогою тієї ж однобічної функції. Ця техніка активно використається для контролю входу в систему. Наприклад, паролі користувачів зберігаються на диску в зашифрованому однобічною функцією виді. Найбільш популярні хэш-функції: MD4, MD5 і ін.

 

Малюнок 19.1 Шифрування відкритим ключем

 

У системах шифрування з відкритим або асиметричним ключем (public/ assymmetric key) використається два ключі. Один із ключів, називаний відкритим, несекретним використається для шифрування повідомлень, які можуть бути розшифровані тільки за допомогою секретного ключа, наявного в одержувача, для якого призначене повідомлення. Або для шифрування повідомлення може використатися секретний ключ і якщо повідомлення можна розшифрувати за допомогою відкритого ключа, то дійсність відправника буде гарантована (система електронного підпису). Цей принцип винайдений Уітфілдом Діффі (Whitfield Diffie) і Мартіном Хелманом (Martin Hellman) в 1976 р.

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

Серед несиметричних алгоритмів найбільш відомий RSA, запропонований Роном Рівестом (Ron Rivest), Аді Шаміром (Adi Shamir) і Леонардом Эдлманом (Leonard Adleman). Розглянемо його більш докладно.

Шифрування з використанням алгоритму RSA

Завдання, покладене в основу методу полягають у тому, щоб знайти таку функцію y=f(x), щоб одержання зворотної функції x=f-1(y) , було б у загальному випадку дуже складним завданням (NP-повним завданням), однак, якщо знати якусь секретну інформацію, то зробити це істотно простіше. Такі функції також називають однобічними функціями з лазівкою або потайным ходом. Наприклад, одержати добуток двох чисел n=p*q просто, а розкласти n на множники, якщо p і q досить більші прості числа, складно.

1. Першим кроком у використанні алгоритму RSA є генерація ключів. Для цього потрібно:

2. Вибрати два дуже більших простих числа p і q.

3. Обчислити добуток n= p*q.

4. Вибрати велике випадкове число d, що не має загальних співмножників із числом (p-1)*(q-1).

5. Визначити число e, щоб виконувалося (e*d) mod ((p-1)*(q-1))=1.

Тоді відкритим ключем будуть числа e і n, а секретним ключем - числа d і n.

Тепер, щоб зашифрувати дані по відомому ключі {e,n}, необхідно зробити наступне:

· Розбити шифруемый текст на блоки, де i-й блок може бути представлений у вигляді числа m(i)=0,1,2..., n-1. Їх повинне бути не більше n-1.

· Зашифрувати текст, розглянутий як послідовність чисел m(i) по формулі c(i)=(m(i)e)mod n.

Щоб розшифрувати ці дані, використовуючи секретний ключ {d,n}, необхідно обчислити: m(i) = (c(i)d) mod n. У результаті буде отримана безліч чисел m(i), які являють собою частина вихідного тексту.

Наприклад, зашифруємо й розшифруємо повідомлення AБВ, що представимо, як послідовність чисел 123 (у діапазоні 0-32)

· Вибираємо p=5 і q=11 (числа насправді повинні бути більшими).

· Знаходимо n=5*11=55

· Визначаємо (p-1)*(q-1) = 40. Тоді d буде дорівнює, наприклад 7.

· Виберемо e, виходячи з (e*7) mod 40=1. Наприклад, e=3.

Тепер зашифруємо повідомлення, використовуючи відкритий ключ {3,55}

· C1 = (13) mod 55 = 1

· C2 = (23) mod 55 = 8

· C3 = (33) mod 55 = 27

Тепер розшифруємо ці дані, використовуючи закритий ключ {7,55}.

· M1 = (17) mod 55 = 1

· M2 = (87) mod 55 = 2097152mod 55 = 2

· M3 = (277)mod 55 = 10460353203 mod 55 = 3

Таким чином, всі, дані розшифровані.

Отже, ми з'ясували, що сучасна криптографія містить у собі наступні великі розділи:

· Симетричні криптосистемы.

· Криптосистемы з відкритим ключем.

· Системи електронного підпису.

· Керування ключами,

а основні напрямки використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку (наприклад, електронна пошта), установлення дійсності переданих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому виді.