Professional Documents
Culture Documents
Михайлець М ЛБ3
Михайлець М ЛБ3
Михайлець М ЛБ3
ІКТА
Кафедра БІТ
ЗВІТ
до лабораторної роботи № 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 + O = P,
P + (– P) = O (4.4)
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 x, Y y, Z 1. (3.9)
Використання проективних координат вигідно при виконанні обчислень,
однак, для передачі крапок по каналах комунікації доцільніше використовувати
афінні координати в стиснутому виді.
2. Підписання документи
2.1.Теоретичні положення
Отже, обидві точки (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.
Рис. 5. Крива a 1.
Δ a =414800=4,148× 105
1
Рис. 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.
2. Підписання документи.
2.1. Відкрив документ, який треба підписати використовуючи меню
«Файл», як це зображено на рисунку 9.
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.
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(р) обчисленому проміжку. Далі, виконав скалярне
множення двох обраних точок та порівняв відповідні порядки цих точок у
знайденому проміжку. Також, досліджував різні параметри рівнянь кривої та
знаходив криві з різною кількістю коренів, аналізуючи їх форму та вигляд.
Потім я побудував еліптичні криві згідно з даними для мого варіанту та
обчислив дискримінант. Порівнюючи результати для різних значень параметрів,
я зрозумів їх вплив на властивості кривих.
У наступному етапі, я перейшов до підпису документів за допомогою
цифрового підпису. З використанням відповідного програмного забезпечення я
обрав геш-функцію згідно з варіантом та створив підпис для документа.
Аналізуючи отримані результати, я зрозумів, як вибір геш-функції та алгоритму
підпису впливає на час виконання операцій.
Також, я побудував графіки, які відображають залежність часу від розміру
файлу, виду геш-функції та алгоритму підпису. Це дозволило мені краще
розуміти вплив цих факторів на продуктивність підпису.
На останньому етапі, я виконав перевірку підпису та проаналізував
отримані результати на кожному кроці. Також, побудував графіки, що
відображають залежність часу від розміру файлу, виду геш-функції та
алгоритму підпису під час перевірки підпису.
У результаті цієї лабораторної роботи я отримав важливі навички у галузі
криптографії на еліптичних кривих та цифрового підпису. Виконані завдання
допомогли мені краще зрозуміти та оцінити вплив різних параметрів на
отримані результати, що є важливим для практичних застосувань цих методів.