
- •Загальні вказівки до виконання лабораторних робіт
- •Лабораторна робота №1 основні методи захисту інформації
- •1 Основні теоретичні відомості
- •1.1 Симетричніі криптосистеми
- •1.1.1 Шифри перестановки
- •1.1.2 Шифри простої заміни
- •1.1.3 Шифри складної заміни
- •1.1.4 Шифр багатоалфавітної заміни
- •1.1.5 Гамірування
- •1.2 Асиметричні криптосистеми. Схема шифрування Ель Гамаля
- •1.1 Принципи аутентифікації
- •1.2 Виконання аутентифікації користувачів засобами керування сеансом у рнр
- •1.2.1 Запуск сеансу
- •1.2.2 Реєстрація змінних сеансу
- •1.2.3 Використання змінних сеансу
- •1.2.4 Скасування реєстрації змінних і завершення сеансу
- •1.1 Атаки на пароль
- •1.2 Проблема вибору пароля
- •1.3 Порядок роботи із програмами розкриття паролів.
- •1.4 Робота із програмами злому на прикладі azpr
- •2 Порядок виконання роботи
- •2.1 Проведення атаки перебором (bruteforce attack)
- •2.2 Проведення атаки за словником (dictionary attack)
- •2 Порядок виконання роботи
- •3 Контрольні питання
- •Лабораторна робота № 5 шифр віженера
- •1 Основні теоретичні відомості
- •1.1 Шифр Віженера і його варіанти
- •«Йфрдряйгєня ігсорф».
- •1.2 Криптоаналіз
- •2 Порядок виконання роботи
- •Контрольні запитання
- •Лабораторна робота № 6 блочний шифр tea
- •1 Основні теоретичні відомості
- •1.1 Мережа Фейштеля
- •1.2 Основи алгоритму
- •1.3 Опис схеми алгоритму
- •2 Порядок виконання роботи
- •3 Контрольні питання
- •Лабораторна робота № 7 дослідження криптоалгоритму шифрування rsa
- •1 Основні теоретичні відомості
- •1.1 Алгоритм rsa
- •2 Порядок виконання роботи
- •3 Контрольні питання
- •Лабораторна робота № 8 дослідження електронного цифрового підпису (ецп) rsa
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •2.1 Визначення відкритого «e» і секретного «d» ключів (Дії відправника)
- •2.2 Формування ецп
- •2.3 Аутентифікація повідомлення - перевірка автентичності підпису
- •3 Контрольні запитання
- •Лабораторна робота № 9 вивчення криптоалгоритму шифрування ель гамаля
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •Визначення відкритого “y” і секретного “X” ключів
- •Контрольні запитання
- •Лабораторна робота № 10 вивчення електронного цифрового підпису (ецп) ель гамаля
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •3 Контрольні запитання
- •Перелік рекомендованих джерел
1.1 Алгоритм rsa
Алгоритм RSA стоїть у джерел асиметричної криптографії. Він був запропонований трьома дослідниками-математиками Рональдом Ривестом (R.Rivest) , Аді Шамиром (A.Shamir) і Леонардом Адльманом (L.Adleman) в 1977-78 роках.
Першим етапом будь-якого асиметричного алгоритму є створення пари ключів : відкритого й закритого й поширення відкритого ключа "по усім світі". Для алгоритму RSA етап створення ключів складається з наступних операцій :
Вибираються два простих (!) числа p й q
Обчислюється їхній добуток n=p*q
Вибирається довільне число e (e<n), таке, що НСД (e,(p-1)(q-1))=1, тобто e повинне бути взаємно простим із числом (p-1)(q-1).
Методом Евкліда вирішується в цілих числах (!) рівняння e*d+(p-1)(q-1)*y=1. Тут невідомими є змінні d й y - метод Евкліда саме й знаходить множину пар (d,y), кожна з яких є рішенням рівняння в цілих числах.
Два числа (e,n) - публікуються як відкритий ключ.
Число d зберігається в найсуворішому секреті - це і є закритий ключ, що дозволить читати всі послання, зашифровані за допомогою пари чисел (e, n).
Як же провадиться шифрування за допомогою цих чисел:
Відправник розбиває своє повідомлення на блоки, рівні k=[log2(n)] біт, де квадратні дужки позначають узяття цілої частини від дробового числа.
Подібний блок, як відомо, може бути інтерпретований як число з діапазону (0;2k-1). Для кожного такого числа (назвемо його mi) обчислюється вираз ci=((mi)e)mod n. Блоки ci й є зашифроване повідомлення Їх можна спокійно передавати по відкритому каналі, оскільки.операція піднесення в ступінь по модулю простого числа, є необоротною математичною задачею. Зворотна їй задача зветься "логарифмування в кінцевому полі" й є на кілька порядків більш складною задачею. Тобто навіть якщо зловмисник знає числа e й n, те по ci прочитати вихідні повідомлення mi він не може ніяк, крім як повним перебором mi.
А от на прийомній стороні процес дешифрування все-таки можливий, і допомогає збережене в секреті число d. Досить давно була доведена теорема Ейлера, окремий випадок якої стверджує, що якщо число n представити у вигляді двох простих чисел p й q, те для будь-якого x має місце рівність (x(p-1)(q-1))mod n = 1. Для дешифрування RSA-повідомлень скористаємося цією формулою. Зведемо обидві її частини в ступінь (-y) : (x(-y)(p-1)(q-1))mod n = 1(-y) = 1. Тепер помножимо обидві її частини на x : (x(-y)(p-1)(q-1)+1)mod n = 1*x = x.
А тепер згадаємо як ми створювали відкритий і закритий ключі. Ми підбирали за допомогою алгоритму Евкліда d таке, що e*d+(p-1)(q-1)*y=1, тобто e*d=(-y)(p-1)(q-1)+1. А отже в останньому виразі попереднього абзацу ми можемо замінити показник ступеня на число (e*d). Одержуємо (xe*d)mod n = x. Тобто для того щоб прочитати повідомлення ci=((mi)e)mod n досить звести його в ступінь d по модулю m : ((ci)d)mod n = ((mi)e*d)mod n = mi.
Операції піднесення в ступінь великих чисел досить трудомісткі для сучасних процесорів, навіть якщо вони провадяться за оптимізованим за часом алгоритмам. Тому звичайно весь текст повідомлення кодується звичайним блоковим шифром (набагато більш швидким), але з використанням ключа сеансу, а от сам ключ сеансу шифрується саме асиметричним алгоритмом за допомогою відкритого ключа одержувача й міститься в початку файлу.