МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра БІТ
Звіт
до лабораторної роботи № 3
з курсу «Прикладна криптологія»
на тему: «Шифрування з використанням асиметричних алгоритмів»
Мета роботи: Вивчити особливості шифрування з використанням асиметричних алгоритмів. Дослідження властивостей асиметричних алгоритмів. Порівняльний аналіз асиметричних алгоритмів.
Теоретичні відомості:
Особистий ключ – параметр криптографічного алгоритму формування електронного цифрового підпису, доступний тільки підписувачу.
Відкритий ключ – параметр криптографічного алгоритму електронного цифрового підпису, доступний суб’єктам відносин у сфері використання електронного цифрового підпису.
Генерація ключів (RSA)
Система RSA відноситься до криптосистем з відкритими ключами. В цій системі ключі Еk(Dk, причому один з них має бути особистим, а другий – відкритим. Наприклад, Еk – особистий, а Dk – відкритий, якщо вони використовуються для ЕЦП і навпаки, якщо використовуються для направленого шифрування.
Усі параметри (N,P,Q) також поділяються на 2 класи: N – відкритий, P,Q – конфіденційні (секретні).
Сутність забезпечення моделі взаємної недовіри – кожен користувач генерує ключі сам собі. Особистий ключ залишає в себе і забезпечує його строгу конфіденційність. Відкритий ключ розсилає всім користувачам, з якими він зв'язаний. Користувач також забезпечує цілісність і дійсність відкритих ключів.
Еk, Dk – мають вибиратися з повної множини випадково, порівняно ймовірно і незалежно, мають забезпечувати однозначну оборотність прямого та зворотного перетворення. Відповідним чином засвідчений відкритий ключ є сертифікатом (див. п. 1.1.1).
Значення Еk, Dk для практичних використань мають задовольняти умову
,
де
.
Порівняння (1.54) можна звести до Діафантового рівняння:
ax+by=1. (1.56)
Це діафантове рівняння – нормоване, тому що справа коефіцієнт дорівнює 1; a, b – цілочисельні коефіцієнти, х, у – невідомі. Порівняння (1.54) можна подати у вигляді:
, (1.57)
k – деяке невідоме число.
Діафантове рівняння (1.56) має цілочисельне розв’язання, якщо a і b цілочисленні, і , a і b взаємно прості. Подавши (1.57) у вигляді
, (1.58)
отримаємо а=((N), x=((k), b=Ek, y=Dk .
Якщо Ek сформувати випадково, то а та b – відомі числа, а х та y – невідомі, що підлягають визначенню.
Найбільш швидке розв’язання (1.58) дає застосування ланцюгових дробів, які дозволяють визначити х та у як
, (1.59)
де ( – порядок ланцюгового дробу, a і b – параметри ланцюгового дробу.
Знаходимо параметри:
a/b подається у вигляді ланцюгового дробу
, (1.60)
μ - порядок ланцюгового дробу, перший коефіцієнт, у якого залишок дорівнює 0.
Значення (а0,b0) та (а1,b1) визначаються як
,
.
Значення (а2,b2), (а3,b3) і т.д. визначаються рекурентно відповідно до правил
. (1.61)
Середнє число ітерацій в (1.60), тобто , можна визначити як [16]
.
Завдання:
Занесіть до звіту:
графіки залежностей часу від довжини модуля для різних алгоритмів вироблення ключової пари;
відповіді на питання.
таблицю;
висновок;
Хід роботи:
Результати виконання шифрування
Розмір файлу
Розмір модуля перетворення, біт
Час шифрування ,с
Власний файл
512
0.000
768
0.000
1024
0.000
2048
0.000
219 КБ
512
0.078
768
0.109
1024
0.125
2048
0.256
4,43 МБ
512
1.617
768
2.180
1024
2.653
2048
4.849
8,65 МБ
512
3.015
768
4.215
1024
5.155
2048
9.702
1.Текст для зашифрування.
/
2.Вибираю розмір модуля перетворення (біт).
/
3.Графік
/
Відповіді на контрольні питання
1.Як залежить час вироблення ключової пари від довжини модуля? Алгоритму(проаналізуйте графік)?
Відповідний особистий ключ RSA складається з того ж модуля n і особистої ключової експоненти d, яка залежить від n і відкритої ключової компоненти e. Тому, особистий ключ RSA – це пара значень (n, d), яка використовується для генерації цифрових підписів.
2.Які умови накладаються на вироблення відкритого та особистого ключів в RSA - алгоритмі?
Система RSA відноситься до криптосистем з відкритими ключами. В цій системі ключі Еk¹Dk, причому один з них має бути особистим, а другий – відкритим. Наприклад, Еk– особистий, а Dk – відкритий, якщо вони використовуються для ЕЦП і навпаки, якщо використовуються для направленого шифрування.
3.Наведіть основні вимоги до алгоритмів побудови асиметричних ключових пар.
Створення алгоритмів асиметричного шифрування є найбільшим і, можливо, єдиним революційним досягненням в історії криптографії.
Алгоритми шифрування з відкритим ключем розроблялися для того, щоб вирішити дві найбільш важкі задачі, що виникли при використанні симетричного шифрування.
Діффі й Хеллман описують вимоги, яким повинен задовольняти алгоритм шифрування з відкритим ключем.
Розрахунково легко створювати пари (відкритий ключ KU , закритий ключ KR).
Розрахунково легко, маючи відкритий ключ і незашифроване повідомлення М, створити відповідне зашифроване повідомлення:
С = ЕKU[М]
Розрахунково легко дешифрувати повідомлення, використовуючи закритий ключ:
М = DKR[C] = DKR[EKU[M]]
Розрахунково неможливо, знаючи відкритий ключ KU, визначити закритий ключ KR.
Розрахунково неможливо, знаючи відкритий ключ KU і зашифроване повідомлення С, відновити вихідне повідомлення М.
Можна додати шосту вимогу, хоча воно не виконується для всіх алгоритмів з відкритим ключем:
Функції, що шифрують і дешифрують можуть застосовуватися в будь-якому порядку:
М = ЕKU[DKR[M]]
4.Дайте визначення асиметричного криптоперетворення.
Симетричними називають класичні криптографічні перетворення з секретним ключем, при цьому ключи зашифрування і розшифрування співпадають Ке=Кd, або один з другого може бути досить легко обчислений.
5.Як взаємопов’язані ключі в асиметричній RSA криптосистемі?
При використанні асиметричного методу шифрування генеруються 2 ключа: один з них вважається секретним, а інший відкритим. Обидва ці ключа математично взаємопов'язані, а те, який з них буде секретним, а який відкритим визначається користувачем. При цьому немає ніякої різниці між тим, кому з них дістанеться та чи інша роль. Відмінності з'являються на практиці, і виражені вони повною протилежністю дій, іншими словами, текст, зашифрований відкритим ключем, може бути розшифрований тільки секретним, і навпаки: зашифрувавши секретним ключем, розшифрувати вдасться тільки відкритим.
6.Які вимоги висуваються до модуля криптоперетворення в RSA системі?
Усі параметри (N,P,Q) також поділяються на 2 класи: N – відкритий, P,Q – конфіденційні (секретні).
7.Які вимоги висуваються до простих чисел, що входять співмножниками в модуль перетворення?
Прості числа - це ключ до розв'язання багатьох математичних проблем, вони також відіграють велику роль в криптографії (шифрування), завдяки чому цікавлять не тільки математиків, а й військових, розвідку і контррозвідку. Просте число - те, яке ділиться без залишку тільки на одиницю і на саме себе. Так, до простих числах відносяться 2, 3, 5, 7, 11, 13 і так далі по зростаючій.
8.Які параметри RSA перетворення є конфіденційними, а які відкритими, та чому?
Вхідні дані – відкритий параметр – модуль перетворення Nj = P Q та відкритий ключ (сертифікат) ЦП Di. Конфіденційними параметрами є прості числа P та Q і відповідно значення функції Ойлера:
1. Криптоаналітик відповідним чином отримує дані про RSA криптосистему.
2. Криптоаналітик отримує відповідним чином відкриті параметри та відкритий ключ (сертифікат), тобто вхідні дані, що наведені вище.
3. Здійснюється факторизація модуля перетворення відповідного користувача Ni на два прості числа P та Q. Це найскладніший етап.
4. При відомих простих числа P та Q обчислюється значення функції Ойлера
5. При відомих значеннях та відкритому ключі Di розв’язується порівняння k-користувача відносно особистого ключа Ek
9.Якими властивостями володіють сильні прості числа?
Якщо п - твір двох простих чисел, р і q, то може знадобитися використати в якості р і qсильние прості числа.Такі прості числа володіють рядом властивостей, які ускладнюють розкладання пр про-винищення п певними методами розкладання на множники.
10.Які ключі є ключами-близнюками? Чи можна їх використовувати?
Не можна використовувати ключі-близнюки. Не можна шифрувати не шифруєме повідомлення (ймовірність появи дуже мала)
11.Які вимоги висуваються до довжин простих чисел модулів перетворення?
Модулем числа називається число, яке дорівнює самому числу, якщо воно невід’ємне, і протилежному числу, якщо воно від’ємне. Модуль числа ще називають його абсолютною величиною.
Модуль числа є числом невід’ємним, тобто додатним або нулем. Геометричним представленням модуля числа на координатній прямій є відстань від початку координат до точки, що зображує дане число.
Модуль числа має такі властивості:
Корінь квадратний із квадрата будь-якого числа дорівнює модулю цього числа;
Модуль суми чисел не більший за суму їх модулів;
Модуль різниці двох чисел не менший від різниці модулів зменшуваного і від’ємника;
Модуль добутку чисел дорівнює добутку модулів множників;
Модуль частки двох чисел дорівнює частці їх модулів при умові, що дільник не дорівнює нулю;
Якщо модуль заданого числа менше або дорівнює деякому додатному числу, то задане число більше або дорівнює протилежному числу, але менше або дорівнює самому цьому числу.
Висновок
В даній лабораторній роботі ми вивчили особливості шифрування з використанням асиметричних алгоритмів. Дослідження властивостей асиметричних алгоритмів. Порівняльний аналіз асиметричних алгоритмів.