
- •Тема 1. Вступ. Основні поняття та визначення. Законодавство України в галузі захисту інформації.
- •Тема 2. Принципи криптографічного захисту інформації. Класичні симетричні криптосистеми.
- •Тема 3. Сучасні симетичні криптосистеми. Алгоритм des.
- •Тема 4. Сучасні симетичні криптосистеми. Алгоритм idea, стандарт шифрування гост 28147–89. Сімейство алгоритмів rc.
- •Тема 5. Принципи асиметричних криптосистем.
- •Тема 6. Криптосистема rsa.
- •Тема 7. Криптосистема Ель–Гамаля.
- •Тема 8. Криптосистема Рабіна.
- •Тема 9. Криптографічні протоколи . Обмін ключем.
- •Тема 10. Проблема ідентифікації та аутентифікації користувача. Електронний цифровий підпис.
- •Тема 11. Парольна та біометрична ідентифікація
- •Тема 12. Особливості фізичного, технічного та програмного захисту інформації.
- •Теми 13, 14. Віруси. Захист інформації від вірусів. Антивірусні програми.
- •Теми 15, 16. Безпека сучасних мережевих технологій, методи і засоби захисту від віддалених атак через Інтернет. Захист інформації в електронних платіжних системах.
Тема 5. Принципи асиметричних криптосистем.
Для будь-якого цілого а і натурального b однозначно визначені цілі числа q і r такі, що а = bq + r і 0 < r < b. Числo q нaзивається часткою, а r – остачею від ділення а на b Наприклад, рівність –20= (–1)67 + 47 означає, що –20 при діленні на 67 дає частку –1 і остачу 47. Для остачі будемо вживати таке позначення r = a mod b. Число r будемо також називати (зведеним) лишком числа a за модулем b. Числа а і b називаються взаємно простими, якщо НСД (а, b) = 1. Алгоритм Евкліда (3 ст. до н.е.) для знаходження НСД двох натуральних чисел а і b грунтується на співвідношеннях
НСД (а, b) = НСД (а, а mod b) для а > b
НСД(а,0) = а
Продемонструємо ідею цього алгоритму на прикладі.
Приклад. Щоб знайти НСД (211, 79), застосовуємо алгоритм Евкліда. Робота алгоритму зводиться до кількаразового ділення з остачею:
211 = 792 + 53
79 = 531 + 26
53 = 262 + 1
26 = 126 + 0
Маємо НСД (211, 79) = НСД (79, 53) = НСД (53, 26) = НСД (26,1) = НСД(1,0) = 1.
Алгоритм Евкліда дає такий наслідок.
Твердження 2.2. Для кожної пари взаємно простих чисел а і b можна знайти такі цілі и і v, що иа + vb = 1.
Приклад. Нехай а = 211, b = 79. Протокол роботи алгоритму Евкліда виписаний у попередньому прикладі. Рухаючись знизу вверх, отримуємо
1 = 1 53 + (-2) 26 = 1 53 + (-2) (79 - 1 53) = (-2) 79 +3 53 = (-2) 79 + 3 (211 - 2 79) = 3 211 + (-8) 79.
Отже, и = 3 і v= – 8.
Елемент, обернений до х за модулем n відносно множення, будемо позначати через х-1 mod n або просто х-1. Це означає, що хх-1mod n =1.
Приклад. Нехай ми хочемо знайти елемент, обернений до 79 за модулем 211. Вище була отримана рівність 1 = 3211 + ( – 879. З неї випливає, що (–8)79 = 1(mod211). Отже, 79-1 mod 211 = (-5) mod 211 = 203.
Функцією Ейлера від числа n є кількість натуральних чисел, взаємно простих з n і позначається (n).
Теорема Ейлера (1763). Для взаємно простих цілого х і натурального п справедлива конгруенція х(n) = 1 (mod n).
Мала теорема Ферма (1640). Якщо ціле х не ділиться на просте р, то хр-1= 1 (mod p).
Китайська теорема про остачі (і ст. до н.е.). Для будь-якої пари взаємно простих натуральних чисел п1 і n2 та для будь-якої пари цілих чисел x1 і x2, можна знайти таке ціле х, що х = х1 (mod n1) і х = x2 (mod n2).
Приклад. Нехай ми хочемо знайти ціле х, яке при діленні на 211 давало б остачу 100, а при діленні на 79 остачу 10. Вище була отримана рівність 1 = 3211 + (-8)79. Отже, в якості х можна взяти: 103211+ 100(-8)79 = -56870. Зрозуміло, що це число можна замінити його остачею від ділення на 21179 = 16669. В результаті отримуємо 9806.
Тема 6. Криптосистема rsa.
Запропонована 1977 року система RSA є чи не найполулярнішою криптосистемою з відкритим ключем. Назва системи утворена з перших літер імен її винахідників — Рональда Райвеста, Алі Шаміра та Леонарда Адлемана.
Генерування ключів. Вибирають два досить великі прості числа р і q. Для їх добутку п= pq значення функції Ейлера дорівнює (n) = (р–1)(q–1) = п–р–q+1. Далі випадковим чином вибирають елемент е, що не перевищує значення ф(п) і взаємно простий з ним. Для е за алгоритмом Евкліда знаходять елемент d, обернений до е за модулем ф(п), тобто ed = 1 (mod ф(п)).
Як результат покладають:
Відкритий ключ: е,п.
Таємний ключ: d.
Шифрування відбувається блоками. Для цього повідомлення записують у цифровій формі і розбивають на блоки так, що кожен блок позначав число, яке не перевищує п. Алгоритм шифрування Е у системі RSA полягає у піднесенні М до степеня е. Записуємо це так: Е(М) = Ме mod n. В результаті отримується блок криптотексту С = Е(М).
Дешифрування. Алгоритм дешифрування D блоку криптотексту С полягає у піднесенні С до степеня d, тобто
D(C) =Cd modn.
Приклад 2.1. Нехай р = 53 і q = 67. Тоді п = 3551 і (п) = 3432. Візьмемо е = 1021 — за допомогою розширеного алгоритму Евкліда легко перевірити, що НСД (1021,3432) = 1. Одночасно обчислюємо d=1021-1 mod 3432 = 1237. Ключі вибрано.
Відкритий ключ е = 1021 і n = 3551 оприлюднюємо. Тепер будь-хто може послати нам зашифроване повідомлення. Припустимо, один із ділових партнерів вирішив послати нам вказівку ПРОДАЙ. Спочатку він перетворює своє повідомлення у цифрову форму, замінюючи кожну літеру її двоцифровим десятковим номером в алфавіті: 1920 1805 0013. Видно, що з нашим модулем п цифрове повідомлення варто розбивати на блоки по 4 цифри, як це і зроблено. При шифруванні перший блок 1920 перетворюється у 19201021 mod 3551 = 2393. Таким же чином шифруються наступні два блоки, і в результаті виходить криптотекст 2393 17S8 2188.
Отримавши цей криптотекст, проводимо дешифрування піднесенням кожного блоку до степеня d = 1237 за модулем п = 3551. Можна переконатись, що 23931237 mod 3551 = 1920 і т.д.