Михайлець М ЛБ3

You might also like

You are on page 1of 31

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

ІКТА
Кафедра БІТ

ЗВІТ
до лабораторної роботи № 3
з курсу: “ Прикладна криптологія”
на тему: “ Вивчити алгоритми ЕЦП на еліптичних кривих ”
Варіант - 14

Виконав:
ст.гр. КБ-48
Михайлець М.В.
Прийняв:
Войтусік С.С.

Львів - 2023
Мета роботи:
Вивчити алгоритми ЕЦП на еліптичних кривих. Виконати генерацію
ключових даних з використанням алгоритму на еліптичних кривих, підпис
документу з використанням алгоритмів на еліптичних кривих, вивчити основи
побудови алгоритмів на еліптичних кривих.
Завдання:
1. Криптографія на еліптичних кривих.
1.1. За формулою (3.6) знайти проміжок в якому знаходиться порядок
точки, згідно з GF(р).
1.2. Перевірити на попадання порядку точки кривої над полем GF(р) до
обчисленого проміжку.
1.3. Для заданого рівняння, виставити p в відповідності до вашого
варіанту згідно таблиці 3.2, виконати скалярне множення, тобто багатократне
додавання однакової точки до знаходження порядку точки. Довільно вибрати 2
точки, знайти їх порядок, порівняти попав чи ні порядок Ваших точок в
знайденому Вами проміжку.
1.4. Змінюючи параметри рівнянь кривої, знайдіть криві, які мають
один, два та три кореня.
1.5. Виконати аналіз форми таких кривих та їх зображення занести до
звіту.
1.6. Побудувати еліптичні криві згідно з даними для Вашого варіанту з
таблиці для a1.
1.7. Для a1 вичислити дискримінант за формулою Δ= -16(4а3+27b2).
Розрахунки занести до звіту.
1.8. Побудувати ЕК для a2 . вичислити дискримінант. Проаналізувати
отримані результати.
1.9. Для обох кривих обрати будь-які дві точки P та Q. Додати точки.
Розрахунки занести до звіту.
1.10. Обрати одну точку для обох кривих, скалярно умножити її ,
получив 5й порядок. Розрахунки занести до звіту.
2. Підписання документи.
2.1. Відкрийте документ, який треба підписати використовуючи меню
«Файл».
2.2. Відкрийте «Цифровий Підпис/ІВК → Демонстрація
підпису(створення підпису)»).
2.3. Натисніть кнопку «Обрати геш-функцію» та оберіть згідно вашого
варіанту геш-функцію
2.4. Створить новий документ Файл→Новий, в вікно, що з’явилося
скопіюйте наступний текст
2.5. Побудуйте графіки залежності часу від розміру файлу, часу від
виду геш функції та часу від алгоритму підпису.
2.6. Увійти до пункту «Цифровий Підпис/ІВК→ Перевірити Підпис».
Оберіть свій ключ підпису, натисніть кнопку «Впізнати ключ».
2.7. Встановити параметр «Відобразити час перевірки підпису» та
«Відобразити проміжні результати». Поступово проходячи усі 10 кроків
перевірки підпису, проаналізуйте отримані результати на кожному кроці.
2.8. Відкриваючи та підписуючи файл перевіряйте підпис з ввімкненою
функцією «Показати час, який затрачено на підпис», при цьому необхідно щоб
функція.
2.9. Побудуйте графіки залежності часу від розміру файлу, часу від
виду геш-функції та часу від алгоритму підпису.
Варіант
Таблиця 1 – Прості числа для побудови поля
Варіант 14
p 29
Таблиця 2– Коефіцієнти рівняння ЕК
Варіант 14
a1 -20
a2 25
b 15
Таблиця 3– Варіанти Геш функцій
Варіант Геш функція
14 MD5
Таблиця 4– Варіанти Геш функцій та алгоритмів підпису
Варіант Геш функція Алгоритм підпису
14 RIPEMD-160 ECSP-NR
Теоретична частина
1. Криптографія на еліптичних кривих
1.1.Основні поняття
Плоска крива визначається як безліч крапок, що задовольняє рівнянню
F (x, y) = 0. Найпростішими плоскими кривими є прямі (ступінь x и y у рівнянні
дорівнює 1) і конічні сектори (другий ступінь х, у). Наступні найпростіші криві
– кубічні (ступеня 3). Плоскі кубічні криві називаються еліптичними, оскільки
історично їхнє вивчення зв'язане з обчисленням окружності еліпса.
У криптографії використовуються еліптичні криві, визначені над
кінцевим полем, тобто коефіцієнти F (x, y) = 0, а також самі х, у – елементи
полючи GF(q). Крапки на еліптичній кривій представляються у формі P=(x,y).
Існує кілька способів завдання еліптичної кривої. Найбільше широко
використовуваними є рівняння Вейерштрасса. Для кривих над двоїчними
полями рівняння Вейерштрасса має такий виляд:

y 2 + xy = x 3 + ax 2 + b, (4.1)

де a, b  GF (2m), b  0.
Інший вид рівняння Вейерштрасса визначає безліч кривих, називаних
суперсингулярними, однак, такі криві є криптографічно слабкими згідно [1].
При заданому рівнянні Вейерштрасса, еліптична крива Е складається з
усіх пар рішень, а також додаткового елемента, називаного крапкою
нескінченності, що позначається О. Крапки, відмінні від Про називаються
кінцевими крапками.
1.2.Операції над еліптичними кривими
На еліптичній кривій визначена операція додавання, що задовольняє
умовам комутативності й асоціативності. Операція додавання може бути
геометрично визначена в такий спосіб:
Визначимо зворотну крапку для крапки P=(x, y):

– P = (x,x+y). (4.3)

Тоді сума P+Q крапок P і Q буде крапка R, така що P, Q і –R лежать на


одній прямій.
Крапка нескінченності є нулем адитивної групи:

P + O = P,
P + (– P) = O (4.4)

Для будь-якої крапки PE.


При реалізації операції додавання варто враховувати, що у випадку, коли
сумуються дві різні крапки, відмінні від О, і в випадку, коли сумуються дві
однакові крапки, застосовуються різні формули.
Операція множення не застосовна до крапок на еліптичній кривій. Однак,
над крапками на ЕК можна здійснювати скалярне множення, тобто
багаторазове додавання однієї і тієї ж крапки. Якщо n – позитивне ціле, P –
крапка на еліптичній кривій, то результат скалярного множення n – додавання n
крапок P один з одним.
Поняття скалярного множення може бути розширене на нуль і негативні
числа в такий спосіб:

0P = O, (–n) P = n (–P). (4.5)


1.3.Криптографія на еліптичних кривих
Найважливішею, з погляду криптографії, властивістю крапки на кривій є
її порядок. Порядком крапки P на еліптичній кривій E називається найменше
ціле позитивне число r, таке, що r = O. Порядок крапки завжди існує і поділяє
порядок кривої #E(GF (q)). Якщо k і l – цілі числа, то k = l тоді і тільки тоді,
коли k  l (mod r).
Важкообернені функції на еліптичних кривих, використовувані в
криптографії, засновані на проблемі так називаного еліптичного дискретного
2
логарифма. Нехай порядок r крапки G на E простий і r не поділяє порядок
кривої #E(GF (q)). Тоді крапка P, що задовольняє умові P = l тоді і тільки тоді,
коли r = O. Коефіцієнт l називається еліптичним дискретним логарифмом P
щодо базової крапки G. Еліптичний дискретний логарифм є цілим числом за
модулем r.
Нехай базова крапка G на Е має порядок r. Визначимо пари ключів у
такий спосіб:
— Секретний ключ s – ціле число за модулем r.
— Відповідний відкритий ключ W – крапка на кривій E обумовлена як
W = s.
Для одержання секретного ключа з відкритого необхідно обчислити
еліптичний дискретний логарифм, таким чином, у даному випадку скалярне
множення – важкообернена функція.
Власне кажучи, звичайний і еліптичний дискретний логарифм являють
собою ту саму абстрактну проблему над двома різними полями. Це дозволяє
провести чітку аналогію між криптографічними примітивами і схемами,
заснованими на цих двох проблемах. Наступна таблиця резюмує дану аналогію:

Таблиця 5 – Аналогія з дискретним логарифмом.


Звичайний дискретний Еліптичний дискретний
логарифм (ДЛ) логарифм (ЭЛ)
Поле GF (q) E над GF (q)
Базова операція Множення в поле GF (q) Додавання крапок
Головна операція Зведення в ступінь Скалярне множення
Базовий елемент Первісний елемент Базова крапка G
(генератор) g
Порядок базового Простої r Простої r
елемента
Звичайний дискретний Еліптичний дискретний
логарифм (ДЛ) логарифм (ЭЛ)
Секретний ключ s (ціле за модулем r) s (ціле за модулем r)
Відкритий ключ w (елемент GF (q)) W (крапка на E)

1.4.Порядок еліптичної кривої


Перебування базової крапки простого порядку є найбільш складною
підзадачею у процесі генерації параметрів криптосистеми на еліптичних
кривих. Для одержання такої крапки необхідне знання порядку кривої n =
#E(GF (q)). Оскільки r поділяє n, те завдання полягає в перебуванні в заданому
полі F=GF(q) кривої над полем F, порядок якої поділяється на досить велике
просте число r. Величина цього числа є визначальною для безпеки системи.
Для порядку еліптичної кривої над полем GF(q) існує таке
співвідношення, називане обмеженням Хасе:

q – 2 q + 1  n  q + 2 q + 1. (3.6)

Отже, порядок кривої над GF (q) – ціле число порядку q. Далі, для q = 2m
нехай n – порядок кривої y 2 + xy = x 3 + ax 2 + b, де a, b не нульові. Тоді для
кожного   0 порядок кривої y 2 + xy = x 3 + (a + ) x 2 + b дорівнює n, якщо слід
 дорівнює 0 і 2m+1 + 2 – n у зворотному випадку. Цією властивістю можна
скористатися для одержання кривої спеціального виду, що дозволяє досягти
деякого виграшу при реалізації арифметики на еліптичних кривих.
Ще одне, зв'язане з попереднім співвідношення – для q = 2m порядок
кривих y 2 + xy = x 3 + ax 2 + b і y 2 + xy = x 3 + a 2 x 2 + b 2 однаковий.
1.5.Представлення крапок на кривій
Найбільш простим і логічним способом представлення кінцевої крапки на
кривій Е є завдання двох елементів x, уGF(q). Ці координати крапки
називаються афінними координатами. Крапка нескінченності не має афінних
координат, і у випадку q = 2m для внутрішніх обчислень крапка нескінченності
представляється парою координат O = (0,0).
Представлення крапки в афінних координатах вимагає 2m біт пам'яті, що
більше, ніж необхідно. Для передачі крапок у каналах комунікації
застосовується стиск координат. Стиснута координата у' задається молодшим
бітом елемента поля y x –1. У випадку, коли х=0 у'=0.
Координата х може бути стиснута тільки у випадку q = 2m і тільки, якщо
крапка є результатом подвоєння іншої крапки на кривій. Це означає, що може
бути стиснута будь-яка крапка простого порядку. Результуюча стиснута
координата х' на один біт коротша афінної координати х.
х' одержують з х шляхом видалення одного з біт у представленні х. У
випадку представлення х нормального базису забирають самий молодший біт,
або якщо m – непарне. Якщо базис поліноміальний і m - парне, то віддаляється
самий молодший біт, що відповідає базовому елементу зі слідом 1.
Оскільки розподіл у поле GF(q) – досить обчислювально складна
операція, вигідно замість виконання операцій розподілу стежити окремо за
чисельником і знаменником. Це дозволяє замінити розподіл на α множенням на
зворотний до  дріб. Використання цього прийому можливо за рахунок
застосування проективних координат X, Y , і Z, обумовлених такими
співвідношеннями:

X Y
x 2
,y 3.
Z Z (3.7)

Проективні координати неоднозначні, для них справедливе таке


співвідношення:
(X, Y, Z) = (l 2X, l 3Y, l Z) (3.8)

для будь-якого l  GF (q) не рівного нулю.


Проективні координати крапки нескінченності (l2, l 3, 0), де l  0.
Вважається, що даний тип проективних координат дозволяє побудувати
найбільш швидку арифметику на еліптичних кривих. Інші типи проективних
координат наведено в [11].
Для перетворення афінних координат у проективні можна скористатися
таким співвідношенням:

X  x, Y  y, Z  1. (3.9)
Використання проективних координат вигідно при виконанні обчислень,
однак, для передачі крапок по каналах комунікації доцільніше використовувати
афінні координати в стиснутому виді.

2. Підписання документи
2.1.Теоретичні положення

Під цифровим підписом (електронним цифровим підписом) розуміється


деякий еквівалент звичайного цифрового підпису (штампу, печатки, водяного
знаку), наявність якого дозволяє з заданою ймовірністю установити цілісність
(Рц), справжність (Рс), підтвердити авторство документа (Рд).
Закон про електронний цифровий підпис:
Електронний підпис – це дані в електронній формі, які додаються до
інших електронних даних або логічно з ними пов’язані і призначені для
ідентифікації підписувача цих даних.
Електронний цифровий підпис (ЕЦП) – вид електронного підпису,
отриманого за результатами криптоперетворень набору електронних даних,
який додається до цих даних або логічно з ними пов’язаний та дає змогу
підтвердити цілісність та ідентифікувати підписувача (встановити авторство).
Вимоги до ЕЦП:
1) відкритість формування підпису;
2) простота підпису;
3) узнаваємість підпису;
4) невідмовність від підпису;
5) секретність підпису, тобто він повинен формуватись на особистому
(таємному) ключі;
6) можливість перевірки підписаного документу, наприклад, з
використанням відкритого ключа підписувача;
7)
8) не вище ніж поліноміальна складність перевірки ЕЦП;
9) чутливість до змін в документі та в ЕЦП;
10) задача визначення повинна бути експоненційно складно обчислена:

11) ЕЦП, що створюється в просторі та часі повинен відрізнятись один від


одного;
12) практично неможливість „приклеювання” підпису одного документа до
іншого;
13) відсутність колізій (дуже мала ймовірність того, що у різних документів
буде один і той же ЕЦП).

Для ЕК складність розв’язання задачі дискретного еліптичного


рівняння, визначається числом операцій додавання в групі точок ЕК:

де – порядок базової точки ЕК.

Важливою характеристикою різних ЕЦП є складність вироблення і


перевірки ЕЦП. Найбільшою складністю володіють алгоритми EC-KCDSA і
Шнора. Це пов'язано з можливістю виносу процедури гешування в алгоритмах
ECDSA, EC-GDSA і ECSS і неможливістю в EC-KCDSA і Шнора.
Для прискорення алгоритмів можна зробити деяку модифікацію. Так в
алгоритмі Шнора можна замінити на , у
EC – KCDSA замінити на , що дозволить
понизити залежність продуктивності ЕЦП від геш-функції.
Другим фактором, що впливає на продуктивність, – є знаходження при
виробленні і перевірці підпису зворотного елемента. В алгоритмі EC-GDSA
вдалося уникнути цієї складної операції, підпису за рахунок особливого

способу обчислення відкритого ключа . Застосування такого способу в


EC-KCDSA дозволяє зменшити складність вироблення і перевірки ЕЦП.
Найменш складним і отже найбільш швидким може бути алгоритм ЕЦП
Шнора, якщо обчислення геш-значення винести за межі алгоритму ЕЦП. Якщо
це не зробити, то мінімальна обчислювальна складність забезпечується в
алгоритмі ECSS.
Можливі загрози на ЕЦП
Екзистенціальна підробка. Цей вид погрози виникає при використанні
геш-функції. У зв'язку з тим, що геш-функція робить відображення на
, де безліч , можливі колізії, при яких для , знаходять
таке, що , . Для захисту від екзистенціальної підробки
на геш-функцію накладається вимога відсутності поліноміального алгоритму
створення колізій.
Звичайно при доказі стійкості ЕЦП передбачається, що геш-функція є
випадковою чорною шухлядою (оракулом), на вхід якого надходять випадкові
запити m0,m1,m2…, а на виході формуються випадкові відповіді h0,h1,h2…. Усі

запити і відповіді оракул запам'ятовує і, якщо на вхід надходить і ,


то він видає раніше обчислену відповідь.
На практиці геш-функція має задовольняти, принаймні, такі вимоги:
 не вище ніж поліноміальна складність обчислення, що дозволяє
ефективно обчислити значення h;
 односпрямованість, при якій забезпечується однобічність перетворень.
Сутність цієї властивості полягає в неможливості обчислення повідомлення m
по відомому h (наприклад, має не нижче ніж експонентну складність);
 захищеність від колізій, при якій практично неможливо знайти m1 і m2
такі, що , тому що побудування m1 і m2 несуть не нижче ніж
експоненційну складність.
Розглянемо необхідність виконання цих умов на прикладі ECDSA. Якщо
геш-функція зворотна, то криптоаналітик B може здійснити ефективну атаку на
ЕЦП у такий спосіб. Він вибирає випадкове число l й обчислює параметр ЕЦП
. Далі B приймає, що , і обчислює e  r  l (modn) . Якщо B

може знайти повідомлення m таке, що , тоді дійсна ЕЦП.


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

легальним користувачем. Потім він приєднує ЕЦП для повідомлення m1 до

повідомлення m2 і відсилає повідомлення . Отримувач при перевірці


ЕЦП не знайде підробки, і йому буде нав'язане помилкове повідомлення m2.
Селективна підробка. Для підпису заздалегідь обраного повідомлення m

при невідомому ключі d необхідно сформувати для повідомлення m підпис


так, щоб перевірка на цілісність і дійсність цього повідомлення m давала
позитивний результат. Розглянемо алгоритм підробки підпису для m:
1. Формується чи вибирається .
2. Обчислюємо .
3. Вибираємо чи підбираємо .
4. Посилаємо помилкове повідомлення з підписом .
Отримувач під час прийому перевіряє цілісність і дійсність повідомлення

. Для цього він виконує таке:


1. Обчислює значення геш-функції .
2. Обчислює значення параметрів , і
.
3. Знаходить точку еліптичної кривої .
4. Перетворює точку еліптичної кривої .
5. Порівнює .
Перевірка на 5-му кроці буде виконана тільки в тому випадку, якщо

. Аналіз цього виразу показує, що імовірність


c
правильного вибору s однозначно визначається імовірністю підбору чи
вгадування ключа d і складає для ECDSS дуже малу величину. Аналогічною
стійкістю проти селективної підробки володіють підписи ECSS, ECCDS,
ECKCDSA і Шнора.
Повне розкриття. Згідно з сучасними поняттями та поглядами стійкість
усіх наведених алгоритмів ЕЦП основана на складності вирішення дискретного
логарифму в мультиплікативній групі точок еліптичної кривої. Для
знаходження секретного ключа необхідно вирішити відносно d рівняння
, (2.39)
(у випадках і );
порівняння
, (2.40)
(у випадках і );
і порівняння
, (2.41)
у випадку алгоритму Шнора. [1,2]

Порядок виконання роботи


1. Криптографія на еліптичних кривих.
1.1. За формулою (3.6) знайшов проміжок в якому знаходиться порядок
точки, згідно з GF(р).
Розв’язок
Формула(3.6 ) p−2 √ p+1 ≤n ≤ p+2 √ p+1
p=29
29−2 √ 29+1 ≤ n ≤29+2 √ 29+1
19 ≤ n≤ 40
1.2. Перевірив на попадання порядку точки кривої над полем GF(р) до
обчисленого проміжку.
Для перевірки, чи належить порядок точки (20,27) яка зображена на
рисунку 1, на еліптичній кривій з параметрами a=11, b=20, і p=29 обчисленому
вами проміжку [19] - [40] згідно з формулою (3.6), вам потрібно обчислити
порядок цієї точки на цій кривій і перевірити, чи він потрапляє в цей проміжок.

Рис. 1. Вибрана точка в cryptool.

----- Calculation in the discrete group Fp with p = 29 -----


Selected curve:
y^2 = x^3 + 11.0x + 20.0
Points: (0|7), (0|22), (3|14), (3|15), (7|11), (7|18), (9|6), (9|23), (10|12), (10|17),
(11|14), (11|15), (12|13), (12|16), (15|14), (15|15), (16|0), (17|4), (17|25), (20|2), (20|
27), (21|0), (22|8), (22|21), (23|12), (23|17), (25|12), (25|17)
З даного калькулятора можна дізнатися що точка (20,27) попадає в цей
проміжок тому, що вона іде 21-шою. Проміжок виглядає так:
19 ≤21 ≤ 40
1.3. Для заданого рівняння, виставив p в відповідності до мого варіанту
згідно таблиці 3.2, виконав скалярне множення, тобто багатократне додавання
однакової точки до знаходження порядку точки. Довільно вибрав 2 точки,
знайти їх порядок, порівняв попав чи ні порядок Ваших точок в знайденому
Вами проміжку.
Ми повинні обчислити порядок точок (15,15) і (0,7) на даній кривій в
заданому проміжку [19, 40].
Для обчислення порядку точок, можна використовувати алгоритм
"піднесення до степеня" (наприклад, алгоритм Якобі). Ось як це можна зробити
для обох точок:
Точка 1 (15,15):
Знайдемо порядок точки (15,15) на еліптичній кривій. Почнемо з n = 1 і
збільшуватимемо n, додавши (15,15) до самої себе n разів, доки не отримаємо
нейтральний елемент (точку "вічності" або "нульову точку"). Порядок точки -
це n, при якому отримується нульова точка. Якщо нульову точку не отримуємо в
межах заданого проміжку, то порядок точки вважається нескінченністю.
Точка 2 (0,7):
Точка (0,7) вже лежить на вертикальній прямій, тобто на одній з точок з
кординатою y = 0. Такі точки завжди мають порядок 1 на еліптичній кривій,
оскільки їхнім дублем є самі вони. Тому порядок точки (0,7) - це 1.
Тепер розглянемо кожну точку окремо:
Для точки (15,15):
Почнемо з n = 1 і будемо обчислювати n * (15,15) на еліптичній кривій (за
модулем p) доти, доки не отримаємо нульову точку або доки n не стане більшим
за 40 (заданий проміжок).
n = 1: 1 * (15,15) = (15,15) ≠ нульова точка
n = 2: 2 * (15,15) = (0,18) ≠ нульова точка
n = 3: 3 * (15,15) = (28,12) ≠ нульова точка
...
n = 13: 13 * (15,15) = (14,20) ≠ нульова точка
n = 14: 14 * (15,15) = (0,7) ≠ нульова точка
n = 15: 15 * (15,15) = (15,15) = нульова точка
Точка (15,15) має порядок 15 на даній еліптичній кривій.
Для точки (0,7):
Точка (0,7) вже має порядок 1, оскільки її дублем є сама вона. Таким
чином, порядок точки (0,7) - це 1.
Тепер, порівняємо отримані порядки з заданим проміжком [19, 40]:
Для точки (15,15):
Порядок точки (15,15) - 15
19 ≤15 ≤ 40 - це теж не входить в заданий проміжок.

Для точки (0,7):


Порядок точки (0,7) - 1
19 ≤1 ≤ 40 - це теж не входить в заданий проміжок.

Отже, обидві точки (15,15) і (0,7) мають порядки, які не входять в заданий
проміжок [19, 40].
1.4. Змінюючи параметри рівнянь кривої, знайшов криві, які мають
один, два та три кореня.
Для знаходження еліптичних кривих, які мають різну кількість коренів,
ми можемо змінювати параметри a і b у рівнянні кривої, при умові, що p
залишається незмінним (p = 29).
Зокрема, кількість коренів залежить від дискримінанта (delta) рівняння:
𝑑𝑒𝑙𝑡𝑎 = 4𝑎3 + 27𝑏2(𝑚𝑜𝑑 𝑝)
3 2
delta=4 a +27 b ( mod p)
Однокоренева крива:
Якщо delta=0(mod p), то крива матиме один корінь.
Змінюємо параметри a і b так, щоб delta=0(mod p):
a=0
b=0
Отже, рівняння кривої виглядає наступним чином:
2 3
y =x (mod 29)
Двокоренева крива:
Якщо delta ≠ 0(mod p), то крива матиме два корені.
Змінюємо параметри a і b так, щоб delta ≠ 0(mod p). Наприклад:
a=1
b=2
Отже, рівняння кривої виглядає наступним чином:
2 3
y =x + x +2(mod 29)
Трикоренева крива:
Трикореневу криву можна знайти шляхом зміни параметрів a і b так, щоб
delta ≠ 0(mod p) і мати три корені. Один з можливих варіантів:
a=1
b=1
Отже, рівняння кривої виглядає наступним чином:
2 3
y =x + x +1(mod 29)
Ці три варіанти представляють криві з одним, двома і трьома коренями
відповідно.
1.5. Виконав аналіз форми таких кривих та їх зображення занести до
звіту, як це зображено на рисунку 2,3,4.

Рис. 2. Однокоренева крива.


Рис. 3. Двокоренева крива.

Рис. 4. Трикоренева крива.


1.6. Побудував еліптичні криві згідно з даними для мого варіанту з
таблиці для a 1, як це зображено на рисунку 5.

Рис. 5. Крива a 1.

1.7. Для a 1 вичислив дискримінант за формулою Δ=−16 (4 а3 +2 7 b2 ).


Розрахунки занести до звіту.
Розв ’ язок
a 1=−20
b=15
Δ a =−16 ×(4 ×(−20) + 27 ×15 ).
3 2
1

Δ a =414800=4,148× 105
1

1.8. Побудував ЕК для a 2, як це зображено на рисунку 6. вичислити


дискримінант. Проаналізувати отримані результати.
Розв ’ язок
a 2=25
b=15
Δ a =−16 ×(4 ×253 +2 7 ×15 2).
2
6
Δ a =−1097200=−1,0972× 10
2

Рис. 6. Крива a 2.

1.9. Для обох кривих обрав будь-які дві точки P та Q. Додати точки, як
це зображено на рисунку 7,8. Розрахунки занести до звіту.
Для кривої a 1:
Точка P(0 , 36 ;−2 ,79)
Точка Q(5 , 73 ; 9 , 4)
a 1=P+Q=( 0 , 36 ;−2 ,79 )+ (5 ,73 ; 9 , 4 )=(−0 , 93 ; 5 ,73)

Для кривої a 2:
Точка P(0 , 25 ;−4 ,61)
Точка Q(0 , 61 ; 5 ,53)
a 2=P+Q=( 0 , 25 ;−4 ,61 ) + ( 0 ,61 ; 5 ,53 )=(776 , 81;−21651 ,19)
Рис. 7. Додавання точок P іQ на кривій a 1.

Рис. 8. Додавання точок P іQ на кривій a 2.


1.10. Обрав одну точку для обох кривих, скалярно умножити її.
Розрахував занести до звіту.
Для кривої a 1:
Точка P1 (4 , 59;−4 , 47)
Для кривої a 2:
Точка P2 (1 , 68 ;−7 , 86)
P1 × P2=( 4 , 59;−4 , 47 ) × (1 , 68 ;−7 , 86 )=4 , 59 ×1 , 68+ (−4 , 47 ) × (−7 , 86 )=7,7112+35,1342=42,8454

2. Підписання документи.
2.1. Відкрив документ, який треба підписати використовуючи меню
«Файл», як це зображено на рисунку 9.

Рис. 9. Відкриття файлу.

2.2. Відкрив «Цифровий Підпис/ІВК → Демонстрація


підпису(створення підпису)»), як це зображено на рисунку 10.
Рис. 10. Демонстрація цифрового підпису.

2.3. Натисну кнопку «Обрати геш-функцію» та обрав згідно мого


варіанту геш-функцію, як зображено на рисунку 11.

Рис. 11. Вибір Геш-функції.


2.4. Створив новий документ Файл→Новий, в вікно, що з’явилося
скопіював заданий текст та підписав його, як це зображено на рисунку 12.

Рис. 12. Підписання файлу.

2.5. Побудував таблицю 6 залежності часу від розміру файлу, часу від
виду геш функції та часу від алгоритму підпису.
Таблиця 6.
Розмір файлу Геш-функція Алгоритм підпису Час підпису, c
Мій файл RIPEMD-160 ECSP-DSA 0,002
SHA-1 ECSP-DSA 0,002
RIPEMD-160 ECSP-NR 0,002
SHA-1 ECSP-NR 0,002
219 КБ RIPEMD-160 ECSP-DSA 0,002
SHA-1 ECSP-DSA 0,002
RIPEMD-160 ECSP-NR 0,002
SHA-1 ECSP-NR 0,002
4,43 МБ RIPEMD-160 ECSP-DSA 0,033
SHA-1 ECSP-DSA 0,026
RIPEMD-160 ECSP-NR 0,035
SHA-1 ECSP-NR 0,027
8,65 МБ RIPEMD-160 ECSP-DSA 0,062
SHA-1 ECSP-DSA 0,049
RIPEMD-160 ECSP-NR 0,062
SHA-1 ECSP-NR 0,049
2.6. Увійшов до пункту «Цифровий Підпис/ІВК→ Перевірити Підпис».
Обрав свій ключ підпису, натисніть кнопку «Впізнати ключ», як це зображено
на рисунку 13.

Рис. 13. Перевірка підпису.

Рис. 14. Нульовий крок.


2.7. Встановив параметр «Відобразити час перевірки підпису» та
«Відобразити проміжні результати». Поступово проходячи усі 10 кроків
перевірив підпис, проаналізував отримані результати на кожному кроці, як це
зображено на рисунку 14-24.

Рис. 15. Перший крок.

Рис. 16. Другий крок.


Рис. 17. Третій крок.

Рис. 18. Четвертий крок.


Рис. 19. П’ятий крок.

Рис. 20. Шостий крок.


Рис. 21. Сьомий крок.

Рис. 22. Восьмий крок.


Рис. 23. Дев’ятий крок.

Рис. 24. Десятий крок.


2.8. Відкриваючи та підписуючи файл перевірив підпис з ввімкненою
функцією «Показати час, який затрачено на підпис», при цьому необхідно щоб
функція, як це зображено на рисунку 25.

Рис. 25. Проходження усіх кроків.

2.9. Побудуйте таблицю 7 залежності часу від розміру файлу, часу від
виду геш-функції та часу від алгоритму підпису.
Таблиця 7.
Розмір файлу Геш-функція Алгоритм підпису Час підпису, c
Мій файл RIPEMD-160 ECSP-DSA 0,002
SHA-1 ECSP-DSA 0,002
RIPEMD-160 ECSP-NR 0,002
SHA-1 ECSP-NR 0,002
219 КБ RIPEMD-160 ECSP-DSA 0,002
SHA-1 ECSP-DSA 0,002
RIPEMD-160 ECSP-NR 0,002
SHA-1 ECSP-NR 0,002
4,43 МБ RIPEMD-160 ECSP-DSA 0,035
SHA-1 ECSP-DSA 0,027
RIPEMD-160 ECSP-NR 0,037
SHA-1 ECSP-NR 0,029
8,65 МБ RIPEMD-160 ECSP-DSA 0,064
SHA-1 ECSP-DSA 0,051
RIPEMD-160 ECSP-NR 0,065
SHA-1 ECSP-NR 0,050

Висновок
Під час виконання цієї лабораторної роботи я вивчав алгоритми
електронного цифрового підпису (ЕЦП) на еліптичних кривих. Робота включала
в себе ряд завдань і етапів, які передбачали вивчення, розрахунки та аналіз.
По-перше, я провів дослідження криптографії на еліптичних кривих,
знаходячи порядок точки згідно з GF(р) та перевіряючи відповідність порядку
точки кривої над полем GF(р) обчисленому проміжку. Далі, виконав скалярне
множення двох обраних точок та порівняв відповідні порядки цих точок у
знайденому проміжку. Також, досліджував різні параметри рівнянь кривої та
знаходив криві з різною кількістю коренів, аналізуючи їх форму та вигляд.
Потім я побудував еліптичні криві згідно з даними для мого варіанту та
обчислив дискримінант. Порівнюючи результати для різних значень параметрів,
я зрозумів їх вплив на властивості кривих.
У наступному етапі, я перейшов до підпису документів за допомогою
цифрового підпису. З використанням відповідного програмного забезпечення я
обрав геш-функцію згідно з варіантом та створив підпис для документа.
Аналізуючи отримані результати, я зрозумів, як вибір геш-функції та алгоритму
підпису впливає на час виконання операцій.
Також, я побудував графіки, які відображають залежність часу від розміру
файлу, виду геш-функції та алгоритму підпису. Це дозволило мені краще
розуміти вплив цих факторів на продуктивність підпису.
На останньому етапі, я виконав перевірку підпису та проаналізував
отримані результати на кожному кроці. Також, побудував графіки, що
відображають залежність часу від розміру файлу, виду геш-функції та
алгоритму підпису під час перевірки підпису.
У результаті цієї лабораторної роботи я отримав важливі навички у галузі
криптографії на еліптичних кривих та цифрового підпису. Виконані завдання
допомогли мені краще зрозуміти та оцінити вплив різних параметрів на
отримані результати, що є важливим для практичних застосувань цих методів.

You might also like