- •Тема 19. Методи забезпечення захисту інформації в мережах.
- •Криптографія, як одна з базових технологій безпеки мереж.
- •Малюнок 19.1 Шифрування відкритим ключем
- •Цифрові підписи
- •Аутентифікація користувачів
- •Аутентификация з використанням паролів
- •Удосконалювання безпеки паролів
- •Аутентифікація з використанням фізичного об'єкта
- •Аутентификація з використанням біометричних даних
- •Аудит, облік використання системи захисту
- •Іv. Узагальнення результатів заняття.
Малюнок 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 досить більші прості числа, складно.
Першим кроком у використанні алгоритму RSA є генерація ключів. Для цього потрібно:
Вибрати два дуже більших простих числа p і q.
Обчислити добуток n= p*q.
Вибрати велике випадкове число d, що не має загальних співмножників із числом (p-1)*(q-1).
Визначити число 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
Таким чином, всі, дані розшифровані.
Отже, ми з'ясували, що сучасна криптографія містить у собі наступні великі розділи:
Симетричні криптосистемы.
Криптосистемы з відкритим ключем.
Системи електронного підпису.
Керування ключами,
а основні напрямки використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку (наприклад, електронна пошта), установлення дійсності переданих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому виді.
