Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/7757| Title: | Система криптографічного захисту інформації з обмеженим доступом на основі еліптичних кривих |
| Authors: | Байрак, Анатолій Володимирович Депутат, Валентин Вікторович |
| Keywords: | електронний цифровий підпис;криптографічний захист інформації;ecdsa;еліптичні криві;асиметрична криптографія;криптографічні алгоритми |
| Issue Date: | 2021 |
| Abstract: | Математичний апарат криптоперетворень на базі ЕК та аналіз описаних в відкритій бібліотеці OpenSSL еліптичних кривих та дослідження еліптичних кубічних кривих простих порядків на предмет вироблення рекомендацій їх застосування в реальних криптосистемах захисту інформації від несанкціонованого доступу |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/7757 |
| Appears in Collections: | 125 Кібербезпека та захист інформації (Безпека інформаційних і комунікаційних систем) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_125_Депутат_Байрак.pdf Restricted Access | 1.24 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет електронних технологій і робототехніки
Кафедра робототехнічних і телекомунікаційних систем та кібербезпеки
Пояснювальна записка
до кваліфікаційної роботи
магістра
(освітньо-кваліфікаційний рівень)
на тему: «Система криптографічного захисту інформації з обмеженим
доступом на основі еліптичних кривих»
Виконав: студент 2 курсу, групи БІ–001
Спеціальності 125 – «Кібербезпека» ,
(шифр і назва спеціальності)
освітньої програми «Безпека інформаційних
і комунікаційних систем»
(назва освітньої програми)
Депутат В.В.
(прізвище та ініціали)
Керівник Байрак А.В.
(прізвище та ініціали)
Рецензент Чепинога А.В.
(прізвище та ініціали)
Черкаси 2021 р.
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
(повне найменування вищого навчального закладу)
Факультет електронних технологій і робототехніки _______________________________________
(повна назва)
Кафедра робототехнічних і телекомунікаційних систем та кібербезпеки
(повна назва)
Освітньо-кваліфікаційний рівень магістр
Спеціальність 125 – «Кібербезпека»
Освітня програма Безпека інформаційних і комунікаційних систем
ЗАТВЕРДЖУЮ
Завідувач кафедри д.т.н., проф.
____________ В.В. Палагін
“___” _____________ 2021 року
З А В Д А Н Н Я
НА КВАЛІФІКАЦІЙНУ РОБОТУ МАГІСТРА СТУДЕНТУ
Депутату Валентину Вікторовичу
(прізвище, ім’я, по батькові)
1. Тема роботи «Система криптографічного захисту інформації з обмеженим доступом на основі
еліптичних кривих» ___________________________________________________________________
керівник роботи Байрак Анатолій Володимирович, асистент кафедри_____ ___________________
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом Черкаського державного технологічного університету від
«21» вересня 2021 року №289-1/01.
2. Строк подання студентом роботи «20» грудня 2021 р.
3. Вихідні дані до роботи асиметричний криптоалгоритм електронного цифрового підпису ECDSA
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити)
Вступ, Розділ 1 Криптографічні методи захисту конфіденційної інформації, Розділ 2
криптографічні застосування апарату еліптичних кривих в задачах захисту інформації з
обмеженим доступом, Розділ 3 практичні аспекти застосування еліптичних кривих в алгоритмах
електронного цифрового підпису, Висновок, Список використаних джерел, Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
мультимедійна презентація “Система криптографічного захисту інформації з обмеженим
доступом на основі еліптичних кривих” – 13 слайдів (додається до роботи).
2
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та посада консультанта
завдання видав завдання прийняв
7. Дата видачі завдання __________________
КАЛЕНДАРНИЙ ПЛАН
№ Строк виконання
Назва етапів кваліфікаційної роботи магістра Примітка
з/п етапів роботи
1. П ошук і аналіз інформації по заданій темі 23.09.2021-
27.09.2021
2. Н аписання І розділу “криптографічні методи 01.10.2021-
захисту конфіденційної інформації” 19.10.2021
3. Н аписання ІІ розділу роботи “криптографічні 20.10.2021-
застосування апарату еліптичних кривих в задачах 07.11.2021
захисту інформації з обмеженим доступом”
4. Н аписання ІІІ розділу “практичні аспекти 08.11.2021-
застосування еліптичних кривих в алгоритмах 24.11.2021
електронного цифрового підпису”
5. Н аписання вступу і висновків, складання списку 25.11.2021
літератури
6. О формлення кваліфікаційної роботи магістра 01.12.2021-
12.12.2021
7. П одання роботи в ДЕК 20.12.2021
8. З ахист роботи в ДЕК 23.12.2021
Студент ___________________Депутат В.В.
(підпис) (прізвище та ініціали)
Керівник роботи ____________Байрак А.В.
(підпис) (прізвище та ініціали)
3
ЗМІСТ
Вступ………………………………………………………………………… 6
Розділ 1. Криптографічні методи захисту конфіденційної інформації…... 9
1.1. Засоби та методи захисту конфіденційності інформації, засновані
на математичних криптоалгоритмах………………………………………. 9
1.2. Симетрична криптографія………………………………………….. 10
1.3. Асиметрична криптографія……………………………………….... 12
1.4. Практичні аспекти використання асиметричних
криптоперетворень в практичних криптографічних системах…………… 15
Розділ 2. Криптографічні застосування апарату еліптичних кривих в
задачах захисту інформації з обмеженим доступом………………………. 20
2.1. Математичні основи апарату еліптичних кривих…………………. 20
2.2. Проблема компрометації криптосистем на базі ЕК……………….. 24
Розділ 3. Практичні аспекти застосування еліптичних кривих в
алгоритмах електронного цифрового підпису…………………………….. 29
3.1. Задача знаходження дискретного логарифма для криптосистем на
базі еліптичних кривих……………………………………………………... 29
3.2. Криптоатаки на алгоритми ЕЦП……………………………………. 30
3.3. Реалізація роботи алгоритму електронного цифрового підпису
ECDSA……………………………………………………………………….. 34
3.4. Практичні аспекти реалізації алгоритму ECDSA………………….. 36
3.4.1. Програмна реалізація ЕЦП на базі ЕК secp256k1…………….. 39
Загальні висновки…………………………………………………………… 41
Список використаних джерел………………………………………………. 43
Додаток А……………………………………………………………………. 48
ЧДТУ.21.20104.007 ПЗ
Змн. А рк. № докум. Підпис Дата
Розроб. Депутат В.В. Система криптографічного Літ. Арк. Аркушів
Перевір. Байрак А.В. захисту інформації з 4 47
Реценз. Чепинога А.В. обмеженим доступом на
Н. Конт р. Байрак А.В. основі еліптичних кривих ЧДТУ, БІ-001
Затверд. Палагін В.В.
Додаток Б…………………………………………………………………….. 50
Додаток В……………………………………………………………………. 58
Л ист
ЧДТУ.21.20104.007 ПЗ
5
Змін. Лист № докум. Підпис Дата
ВСТУП
Сьогодні проблема захисту інформації з обмеженим доступом стоїть
дуже гостро. Це пов’язано з декількома причинами, зокрема:
- збільшенням статистики епізодів атак та спроб атак на інформацію з
обмеженим доступом;
- покращення можливостей існуючих методів криптоаналізу (за
рахунок збільшення продуктивності обчислень);
- поява нових методів криптоаналізу та технік проведення атак на
інформацію з обмеженим доступом тощо.
Відомі різні методи для захисту інформації з обмеженим доступом. Але
більшість з них використовують математичний апарат криптоперетворень.
Сучасні криптографічні алгоритми, що використовуються в
криптовалютних додатках, системах ЕЦП і технологіях блокчейн,
використовують математичний апарат на основі еліптичних кривих (ЕК) [1-4].
Проблеми використання еліптичних кривих в алгоритмах і системах
захисту інформації з обмеженим доступом пов’язано з необхідністю
застосовувати тільки коректні ЕК. Вибір довільної ЕК на практиці може
призвести до компрометації результатів застосування даного алгоритму або до
колізії, зниження криптостійкості. З деяких з перерахованих вище
криптографічних задач відомо, що проблема дискретного логарифма
відноситься до «складних» задач [2–3], отже ЕК є перспективним
математичним апаратом в криптографії. Відомо, що існують певні класи EК,
які досить слабкі з точки зору криптографічної стабільності. Існують
спеціальні алгоритми для взяття дискретного логарифма і розв’язування задачі
з пошуку початкових секретних параметри ЕК [7]. Наприклад, усі еліптичні
криві, для яких порядок кінцевого поля дорівнює порядку EК, уразливі до
Smart-атаки, яка може бути використана для розв’язування задачі дискретного
логарифмування за поліноміальний час на класичних комп’ютерах [8, 9].
Лист
ЧДТУ.21.20104.007 ПЗ 6
Змін. Лист № докум. Підпис Дата
У деяких дослідженнях зазначається, що при відомих параметрах
області визначення ЕК, існує ймовірність того, що криптоаналітик виявив
раніше невідомий новий клас слабких ЕК, і, ймовірно, створив «швидкий»
алгоритм обчислення дискретних логарифмів для таких «слабких» кривих [7],
[8–10]. В такому випадку виникає питання: чи зможе криптоаналітик
переконати власника криптосистеми в протилежному, тобто що він нічого не
знає про вразливість даної ЕК. І він може гарантувати, що така крива
«захищена» (криптоаналітик не зможе використовувати її для власних атак).
Актуальність теми пояснюється необхідністю дослідження переваг
застосування криптоалгоритмів на базі еліптичних кривих в системах захисту
інформації від несанкціонованого доступу. Дана технологія сьогодні є більш
продуктивною і перспективною, порівняно з RSA та DSA.
Новизною роботи є детальний розгляд математичного апарату
криптоперетворень на базі ЕК та аналіз описаних в відкритій бібліотеці
OpenSSL еліптичних кривих та дослідження еліптичних кубічних кривих
простих порядків на предмет вироблення рекомендацій їх застосування в
реальних криптосистемах захисту інформації від несанкціонованого доступу.
Для розв’язку даної задачі слід розв’язати наступні питання:
1. Проаналізувати системи криптографічного захисту інформації від
НСД та виділити їх основні типи та методи захисту інформації такими
системами.
2. Визначити особливості систем захисту інформації від НСД з
використанням криптосистем на базі ЕК.
3. Проаналізувати особливості математичного апарату та реалізації
асиметричних криптографічних алгоритмів. Виділити параметри ЕК,
оптимальних для застосування в прикладних криптосистемах.
4. Дослідити на прикладах практичні аспекти застосування ЕК в
алгоритмах ЕЦП.
Лист
ЧДТУ.21.20104.007 ПЗ 7
Змін. Лист № докум. Підпис Дата
Об’єктом дослідження в даній роботі є математичний апарат та
алгоритми використання еліптичних кривих для захисту інформації.
Предметом дослідження є асиметричні системи та алгоритми захисту
інформації від спроб несанкціонованого доступу.
В роботі використані елементи теорії чисел та криптографії,
алгебраїчної геометрії, методи та засоби об’єктно-орієнтованого
програмування.
Лист
ЧДТУ.21.20104.007 ПЗ 8
Змін. Лист № докум. Підпис Дата
РОЗДІЛ 1
КРИПТОГРАФІЧНІ МЕТОДИ ЗАХИСТУ КОНФІДЕНЦІЙНОЇ
ІНФОРМАЦІЇ
Традиційно криптографія поділяється на 2 види криптоперетворень:
- симетричні;
- асиметричні.
Призначення обох видів криптоперетворень однакові – захист
конфіденційності інформації. На відміну від симетричних криптосистем,
асиметричні дозволяють захищати цілісність інформації, а деякі з існуючих
асиметричних алгоритмів мають можливість здійснювати захист обох
властивостей інформації – цілісності і конфіденційності.
Сучасна криптографія базується на тому, що ключ для шифрування
даних може бути відкритим, але ключ для дешифрування бажано залишити в
секреті. Такі системи називають криптографічними системами з відкритим
ключем (public key cryptographic systems). Перша — і найпоширеніша з них —
RSA. Вона названа ініціалами тих, хто вперше описав її алгоритм (Ron Rivest,
Adi Shamir, Leonard Adleman) [11].
В разі застосування для захисту інформації асиметричної криптосистеми
з відкритим ключем потрібен набір алгоритмів, які легко реалізувати в одному
напрямку, але важко у зворотному.
1.1. Засоби та методи захисту конфіденційності інформації,
засновані на математичних криптоалгоритмах
Не всі сучасні криптографічні методи захисту інформації являють собою
системи з відкритим ключем. Доволі популярними, особливо для захисту
Лист
ЧДТУ.21.20104.007 ПЗ 9
Змін. Лист № докум. Підпис Дата
трафіку в комп’ютерних мережах є симетричні криптосистеми (системи з
одним ключем). Наприклад, такі:
- симетричні криптосистеми на базі мереж Фейстеля (DES, 3-DES)
з парним циклом повного криптоперетворення та фіксованим розміром ключа;
- симетричні криптосистеми зі змінними довжинами ключа (AES);
- прості симетричні моно- та поліалфавітні системи (афінні, зсувні,
перестановочні тощо).
1.2. Симетрична криптографія
В цілому симетричним вважається будь-який шифр, який використовує
один і той же секретний ключ для шифрування та дешифрування.
Симетричне шифрування використовується для обміну даними у
багатьох сучасних сервісах, часто у поєднанні з асиметричним шифруванням.
Наприклад, месенджери соціальних мереж захищають за допомогою таких
шифрів листування (при цьому ключ для симетричного шифрування зазвичай
доставляється в асиметрично зашифрованому вигляді), а послуги відеозв'язку
– у вигляді потоків аудіо і відео. У захищеному транспортному протоколі TLS
симетричне шифрування використовується для забезпечення
конфіденційності даних, що передаються.
Зараз існує та практично застосовується в різних сферах захисту
інформації велика кількість симетричних криптографічних алгоритмів
різного, які мають різний ступень криптографічної стійкості та ефективності
застосування. Розглянемо, наприклад, найбільш популярні симетричні
криптоалгоритми, такі, як: DES, 3DES, CAST-128, BLOWFISH, IDEA, AES,
RC5, RC6 за такими характеристиками як безпека, можливість подальшої
модифікації, стійкості до атак, обмеження, які вони накладають.
Лист
ЧДТУ.21.20104.007 ПЗ 10
Змін. Лист № докум. Підпис Дата
Залежно від принципу роботи алгоритми симетричного шифрування
поділяються на два типи:
- блокові;
- потокові.
Блокові симетричні алгоритми шифрують дані блоками фіксованої
довжини (64, 128, 256 – залежності від виду алгоритму). Якщо все
повідомлення або його фінальна частина менша за розмір блоку, система
доповнює його передбаченими алгоритмом символами, які так і називаються
доповненням.
В таблиці 1.1 наведено порівняння найбільш популярних алгоритмів
симетричного шифрування [12-14].
Таблиця 1.1
Порівняння алгоритмів симетричного шифрування
Назва алгоритму Структура Можливість Чутливість до атак
розширення та
модифікації
DES Мережа Фейстеля Ні Атака «грубої
силою»
3-DES Так. Розширення Атака «грубої
ключа від 56 до 168 силою», атака по
біт відомим відкритим
текстам, на основі
підібраного
відкритого тексту
CAST-128 Так. Ключ 128 та Атаки на основі
256 біт підібраного
відкритого тексту
BLOWFISH Так. Довжина Перебір за
ключа: 64-448 біт словником
IDEA SP-мережа Ні Атака по часу, атака
розкладу ключів
Лист
ЧДТУ.21.20104.007 ПЗ 11
Змін. Лист № докум. Підпис Дата
AES Так. Довжина Атака по стороннім
ключа: 128, 192, 256 каналам
біт
RC6 Мережа Фейстеля Так. Довжина Атака «грубою
ключа: 128-2048 біт силою», аналітична
атака
Симетричні алгоритми вимагають менше обчислювальних ресурсів при
роботі та демонструють більшу швидкість шифрування, ніж асиметричні
криптографічні алгоритми. Більшість симетричних шифрів імовірно стійкіші
до атак, що проводяться за допомогою квантових комп'ютерів, які теоретично
представляють загрозу для асиметричних алгоритмів.
Слабким місцем симетричного шифрування є обмін ключами. Оскільки
для роботи алгоритму ключ має бути і у відправника, і в одержувача
повідомлення, його необхідно передати. Але при передачі незахищеними
каналами його можуть перехопити і використовувати сторонні особи або
зловмисники. Насправді у багатьох системах цю проблему вирішується
шифруванням ключа з допомогою асиметричних алгоритмів.
Симетричні алгоритми не можуть застосовуватися для формування
цифрових підписів і сертифікатів, тому що секретний ключ при такому підході
повинен бути відомий усім, хто працює з шифром, що суперечить самій ідеї
електронного цифрового підпису (а саме - можливості перевірки підпису/
автентичності без звернення до власника даних).
1.3 . Асиметрична криптографія
Всього за 30 років асиметрична криптографія перетворилася на один з
основних напрямів криптології і використовується в ІТ так само часто, як і
симетричні криптосистеми. Хоча історично першими і основними засобами
захисту конфіденційності даних були саме симетричні шифри.
Лист
ЧДТУ.21.20104.007 ПЗ 12
Змін. Лист № докум. Підпис Дата
Принципова відмінність асиметричної криптосистеми від
криптосистеми симетричного шифрування полягає в тому, що для
шифрування інформації та її подальшого розшифрування використовуються
різні ключі. Таких ключів в асиметричних криптосистемах завжди є два:
- відкритий ключ - використовується для шифрування інформації. Даний
ключ обчислюється з секретного ключа k;
- секретний ключ k – використовується для розшифрування інформації,
зашифрованої за допомогою парного йому відкритого ключа.
Секретний та відкритий ключі генеруються в парі. Причому, кожному
відкритому ключу відповідає не більше одного парного йому секретного
ключа.
Природньо, що окрім наявності пари ключі, асиметричні криптосистеми
мають свої особливості. Розглянемо характерні особливості асиметричних
криптосистем:
- відкритий ключ Кв та криптограма С можуть бути відправлені
незахищеними каналами
- зловмиснику можуть бути відомі параметри Кв і С – це є
природною функціонування даного алгоритму.
Ці особливості є і перевагами асиметричного шифрування. Адже
зловмисник у відкритому доступу можна отримати тільки один ключ –
відкритий. А параметрів, вказаних в даному ключі недостатньо, аби відновити
по ним секретний ключ. В той же час, у власника закритого ключа немає
потреби передавати його по каналам зв’язку. Адже для перевірки
виправленого абоненту Б повідомлення цілком достатньо одного
оприлюдненого відкритого ключа.
Сам принцип роботи асиметричного криптоалгоритму наведений на
рис. 1.1.
Лист
ЧДТУ.21.20104.007 ПЗ 13
Змін. Лист № докум. Підпис Дата
Рис. 1.1 - принцип роботи асиметричного криптоалгоритму
Діфі та Хелман сформулювали вимоги, виконання яких забезпечує
потрібний рівень безпеки асиметричної криптосистеми наступним чином:
1. Обчислення пари ключів (Кв, kв) одержувачем на основі початкової
умови має бути простим.
2. Відправник А, знаючи відкритий ключ Кв і М, може легко обчислити
криптограму.
3. Одержувач, використовуючи секретний ключ kв і криптограму С,
може легко відновити вихідне повідомлення: M = Dkв (C).
4. Зловмисник, знаючи відкритий ключ Кв, при спробі обчислити
секретний ключ kв наштовхується на непереборну обчислювальну проблему.
5. Зловмисник, знаючи пару (Кв, С), при спробі обчислити вихідне
повідомлення М наштовхується на непереборну обчислювальну проблему.
Концепція асиметричних криптографічних систем з відкритим ключем
ґрунтується на застосуванні односпрямованих функцій. Односпрямованою
називається функція F(X), що задовольняє двом умовам:
1. Існує алгоритм обчислення значень функції У = f(X);
2. Не існує алгоритму оберненого обчислення (інвертування) функції F
(тобто немає рішення рівняння F(X) = У по змінній Х).
Лист
ЧДТУ.21.20104.007 ПЗ 14
Змін. Лист № докум. Підпис Дата
В якості прикладу односпрямованих функцій можна вказати
цілочисельне множення та цілочисельну модульну експоненту.
1.4. Практичні аспекти використання асиметричних
криптоперетворень в практичних криптографічних системах
На практиці більшість з компаній використовують алгоритми DSA або
RSA для систем автентифікації [15]. Так, наприклад, компанія DigiCert стала
першим центром аутентифікації, що пропонує своїм клієнтам SSL-
сертифікати із застосуванням алгоритму цифрового підпису (DSA) [16].
Сертифікат DSA входить у всі сертифікати DigiCert SSL рівня Standard та
Premium. Даний сертифікат аналогічний RSA з точки зору рівня безпеки та
швидкодії, але використовує інший спосіб шифрування та створення
цифрового підпису. Для цього сертифіката потрібно менше циклів обробки на
сервері, що дозволяє встановити більше одночасних з'єднань SSL та
прискорює обробку клієнтських запитів. При цьому пропонується доволі
широкий вибір варіантів шифрування. Наприклад, для посилення захисту веб-
сайту клієнт може встановити тільки RSA, тільки DSA або обидва сертифікати
одночасно.
В якості сервера сьогодні більшість з відомих web-платформ
використовують Apache. Apache HTTP-сервер є відкритим веб-
сервером для UNIX-подібних, Microsoft Windows, Novell NetWare та інших
ОС. За існуючої класифікації даний web-сервер є кросплатформеним [17]. Свої
лідерство на ринку web-серверів Apache утримує з 1996 року, коли він обійшов
по популярності web-сервер NCSA HTTPd. Саме з цього часу він є найбільш
популярним веб-сервером у світі. Станом на червень 2013 року Apache
встановлений на 53.34% (358 974 045 серверів). Для порівняння - на другому
місці Microsoft IIS. Частка серверу від Microsoft складає 17.22% (115 920 681
серверів). На лютий 2019 лідерство даного сервера у підтримці web-платформ
Лист
ЧДТУ.21.20104.007 ПЗ 15
Змін. Лист № докум. Підпис Дата
кількісно суттєво збільшилося, але у відсотковому відношенні зменшилася
(рис. 1.2) [18].
Рис. 1.2 – статистика частки використання web-серверів на лютий 2019
року
В таблиці 1.2 показано статистику розповсюдженості web-серверів по
виробникам.
Таблиця 1.2
Статистика розповсюдженості web-серверів по виробникам
Developer September Percent October 2021 Percent Change
2021
nginx 422,211,703 35.54% 412,222,221 34.95% -0.59
Apache 295,667,361 24.89% 290,462,410 24.63% -0.26
OpenResty 77,052,370 6.49% 76,038,576 6.45% -0.04
Cloudflare 56,362,363 4.74% 57,482,103 4.87% 0.13
Лист
ЧДТУ.21.20104.007 ПЗ 16
Змін. Лист № докум. Підпис Дата
Інші web-сервери так само широко використовують ssl-сертифікати, які
засновані на алгоритмі DSA.
Сервер Apache здатний підтримувати обидва типи сертифікати (RSA і
DSA) на одному веб-сервері. Така підтримка надає більше можливостей та
гнучкості для дотримання державних вимог, які згодом стають все
суворішими. Дуже важливим є те, що така підтримка допомагає максимально
розширити екосистему компаній, включивши до неї всіх співробітників та
партнерів організації. Слід відмітити, що сертифікат DSA схвалений урядом
США (DSA розроблено в NSA у 1991 році і має сертифікати Служби безпеки
Міністерства оборони США та FIPS).
SSL сертифікати від DigiCert пропонують на вибір три різні алгоритми
шифрування, які засновані на різних математичних реалізаціях
криптоперетворень:
- RSA – криптографічний алгоритм з відкритим ключем, що
базується на обчислювальній складності задачі факторизації великих цілих
чисел
- DSA – алгоритм заснований на обчислювальній складності взяття
логарифмів в скінченних полях.
- ECDSA – криптографічний алгоритм з відкритим ключем для
створення електронного цифрового підпису, аналогічний за будовою до
алгоритму DSA, але, на відміну від останнього, не над скінченним числовим
полем, а над групою точок еліптичної кривої.
Хоча всі три криптографічні системи з відкритим ключем є безпечними,
ефективними та комерційно життєздатними, вони різняться математичною
проблемою, на якій вони засновані. Це впливає не тільки на те, наскільки
вразливі ці алгоритми до атак грубої сили (brute force), які часто
використовуються хакерами, але це приводить ще і до відмінності в розмірах
ключів, що генеруються алгоритмом, для забезпечення необхідного рівня
безпеки. Національний інститут стандартів (NIST) надає рекомендації щодо
Лист
ЧДТУ.21.20104.007 ПЗ 17
Змін. Лист № докум. Підпис Дата
мінімальних розмірів різних ключів відповідно до рівня безпеки. Ці
рекомендації наведені в таблиці 1.3.
Таблиця 1.3
Рекомендації NIST по мінімальним розмірам різних ключів у
відповідності з рівнем безпеки
Minimum size (bits) of Public Key Size Ratio Гарантована
Keys безпека, до
Security DSA RSA ЕК ECC до
RSA/DSA
80 1024 1024 160-223 1:6 до 2010
112 2048 2048 224-255 1:9 до 2030
128 3072 3072 256-383 1:12 після 2031
192 7680 7680 384-511 1:20
256 15360 15360 512+ 1:30
З таблиці 1.3 видно, що розмір ключів алгоритмів RSA і DSA зростає
набагато швидше ніж розміри ключів, заснованих на EК. Це пов’язано з тим,
що більший розмір ключа гарантує кращу захищеність інформації. Тобто всі
три існуючих асиметричні криптосистеми з часом стикаються зі схожою
проблемою підвищення безпеки інформації (відповідність захищеності
поточному стану розвитку криптоаналізу). Це важливо, тому що для більш
довгих ключів потрібно більше місця для зберігання, більша пропускна
здатність для передачі і, особливо, більша потужність процесора і зростаюча
тривалість часу для генерації ключів, шифрування та дешифрування на даних
ключах.
DSA – це дискретна логарифмічна система. Вона була розроблена
Агентством національної безпеки в 1991 році в якості альтернативи алгоритму
RSA і наразі є федеральним стандартом цифрового підпису. Алгоритм DSA
забезпечує той самий рівень захисту та продуктивності, що і алгоритм RSA
Лист
ЧДТУ.21.20104.007 ПЗ 18
Змін. Лист № докум. Підпис Дата
для аналогічних розмірів ключів, але використовує інший математичний
алгоритм для підпису, і виявлення будь-якої зміни повідомлення (порушення
цілісності повідомлення), що передається. Хоча розміри ключів і для DSA і
для RSA ідентичні, але процес генерування ключів та цифровий підпис з
використанням DSA реалізується набагато швидше. Перевірка ключа в обох
алгоритмах трохи повільніша за інші операції.
Алгоритм DSA також сумісний з більшістю серверів. Він є федеральним
стандартом США, а використання SSL-сертифіката, що підтримує DSA,
спрощує роботу з підприємствами для задоволення вимог державних
контрактів в даній країні.
Зі статистики спроб атак, несанкціонованого доступу та інших видів
несанкціонованих втручання в роботу інформаційних систем та мереж, вимоги
безпеки зростатимуть, а спроби зловмисників стануть більш витонченими та
потужними, але заходи безпеки покращуватимуться поряд із погрозами.
Агресивність алгоритмів матиме все більше значення для бізнесу, надаючи
власникам та окремим ІТ-структурам гнучкість і масштабованість, необхідні
їм для адаптації до потреб своїх клієнтів та їх бізнесу. DigiCert SSL
сертифікати наразі включають алгоритми DSA або ЕК поряд зі стандартними
алгоритмами RSA. Інтеграція нових алгоритмів у продукти сертифікатів SSL
надає зручний спосіб для бізнесу покращити та підвищити свою онлайн-
безпеку у партнерстві з найбільш довіреним центром сертифікації у світі.
Лист
ЧДТУ.21.20104.007 ПЗ 19
Змін. Лист № докум. Підпис Дата
РОЗДІЛ 2
КРИПТОГРАФІЧНІ ЗАСТОСУВАННЯ АПАРАТУ ЕЛІПТИЧНИХ
КРИВИХ В ЗАДАЧАХ ЗАХИСТУ ІНФОРМАЦІЇ З ОБМЕЖЕНИМ
ДОСТУПОМ
Відомо, що не кожен ЕК, описаний еліптичними функціями, може бути
використаний на практиці. Це пов'язано з вимогами до криптографічної
стабільності. Для алгоритмів криптосистеми на основі EC необхідно
використовувати підгрупи точок вищого порядку. Отже, для кращого
розуміння особливостей прикладного використання ЕК в задачах захисту
інформації з обмеженим доступом, необхідно проаналізувати математичні
особливості роботи еліптичних кривих.
2.1. Математичні основи апарату еліптичних кривих
Еліптична кубічна крива (ЕКК) – це вид еліптичної кривої, розв’язки
якої обмежені простором, типологічно еквівалентним геометричній формі
типу тора [19]. Хоча існує велика кількість криптографічних систем на основі
ЕКК [19-21].
Для практичного застосування можна обмежитися розглядом таких
питань, як:
- еліптичні криві над дійсними числами та груповий закон;
- еліптичні криві над скінченними полями та задача про дискретний
логарифм;
- генерація пари ключів і алгоритм EC – ECDSA.
Практичні криптографічні системи не використовують так звані
«спеціальні» EC (криві, для яких є особливість математичного розмаїття).
Наприклад, на них є точки, де не можна правильно визначити дотичний
Лист
ЧДТУ.21.20104.007 ПЗ 20
Змін. Лист № докум. Підпис Дата
простір до простору різноманіття. До таких кривих належать такі:
- ЕК, що перетинаються;
- криві з поворотними точками тощо.
Одна з таких кривих показана на рис. 2.1. Крива, показана на рис. 2.1 є
еліптичною кривою з поворотними точками.
Таким чином, для прикладних криптографічних застосувань
використовуються еліптичні криві наступного вигляду:
y2 = x3 + ax+b ,
де a, b – коефіцієнти, від яких залежить форма еліптичної кривої [5, 19];
4a3 +27b2 0 - це умова, яка необхідна для виключення «особливих» ЕК,
непридатних для практичних застосувань.
Для використання в прикладних криптосистемах на основі ЕК візьмемо
випадок, коли частина кривої є нескінченно віддаленою точкою (такі точки
відомі, як ідеальні точки). Далі позначимо нескінченно віддалену точку
символом 0 (нуль).
Якщо необхідно явно розглянути точку на нескінченності, то визначення
еліптичної кривої можна записати у вигляді виразу (2.1) [23]:
(x, y)R 2 |y2 = x3 + ax + b, 4a3 + 27b2 00 (2.1)
Як було сказано вище, не всі EC є повними і їх можна практично
використовувати для криптографічних перетворень [5, 19, 23]. Рівняння ЕК у
вигляді y2 = x3 + ax+b називають традиційним формулюванням Вейєрштраса для
EК [23]. Це також поширене формулювання EК. Для використання в
криптосистемах на основі EC візьмемо випадок, коли ця частина кривої є
нескінченно віддаленою точкою (також відома як ідеальна точка). Далі
позначимо нескінченно віддалену точку символом 0 (нуль).
Лист
ЧДТУ.21.20104.007 ПЗ 21
Змін. Лист № докум. Підпис Дата
Слід зазначити, що в криптосистемах на основі EК згідно властивості
додавання вимагається наявність лише трьох точок на одній лінії, а порядок
розташування цих трьох точок не має значення. Це значить, що, якщо три P, Q
і R розташовані на одній лінії, то можна отримати геометричну інтерпретацію
появи нерівності для цих трьох точок рівняння EК у вигляді виразу (2.2):
P+ (Q+R) =Q+ (P+R) = R+ (P+Q) = = 0. (2.2)
Вираз (2.2) має геометричну інтерпретацію, наведену на рис. 2.2,
отриману з використанням он-лайн засобу моделювання, наведеному в
додатку А. Тобто цей оператор має властивості асоціативності та
комутативності (належить до абелевої групи).
Рис. 2.1 - геометрична інтерпретація виразу виду P +Q+ R = 0 для параметрів a =
–10, b = 1
Лист
ЧДТУ.21.20104.007 ПЗ 22
Змін. Лист № докум. Підпис Дата
Таким чином, щоб мати можливість отримати суму двох довільних
розрахунків точок, необхідно розглядати геометричне, а не алгебраїчне
додавання. Геометричний спосіб додавання точок ефективний для обчислення
параметру R, але в літературі розглянуто ряд часткових випадків, у тому числі
в [19], [21], [22].
Теоретично зрозуміло, що параметри a, b, k випадкових ЕК можуть бути
обрані зловмисником довільно. Ці криві, які використовуються для генерації
відкритих і закритих ключів, описані і існують у відкритому доступі. Дані
еліптичні криві описані в відкритих бібліотеках (зокрема, в OpenSSL).
Важливо знати, чи можна на практиці передбачити значення секретного
параметра, які залежать від конкретної еліптичної кривої, для всіх сигнатур
або генераторів випадкових чисел, які використовуються в асиметричних
криптографічних алгоритмах і системах.
З одного боку, криптосистеми на базі EК повинні бути достатньо
криптостійкими, а з іншого боку, не використовувати занадто велику кількість
обчислювальних ресурсів для того, аби могли бути без зайвої адаптації
обчислювальних потужностей бути застосованими на різних комп’ютерних
апаратних платформах.
Наприклад, крім додавання, можна визначити скалярну операцію
множення для точок групи ЕК, яка формується за правилом:
n
nP =P, (2.3)
i=1
де n -натуральне число.
З виразу (2.3) очевидно, що для обчислення добутку n і P – чисел
потрібно n множників. Якщо число n складається з k десяткових цифр, тоді
алгоритм буде мати обчислювальну складність, як O(2k ) , що підвищує
складність обчислень [19]. Однак є набагато швидші алгоритми. Одним з таких
є алгоритм подвоєння-додавання [24]. Принцип його роботи написано нижче.
Лист
ЧДТУ.21.20104.007 ПЗ 23
Змін. Лист № докум. Підпис Дата
Для прикладу демонстрації алгоритму подвійного додавання візьмемо
число n=151. В системі числення за модулем 2 його можна записати у формі:
10010111 . Однак, це ж число можна записати у вигляді поліному – сума степенів
2
числа 2: 151=1*27+0*26+0*25+1*24+0*23+1*22+1*21+1*20. З наведеного
вище справедливо наступний запис: 151*P=27P+24P+22P+21P+20P.
В результаті застосування алгоритму подвійного додавання можна
обчислити 151*P, як результат виконання лише семи подвійних і чотирьох
простих додавань. Якщо дублювання і додавання – це O(l ) операція, тоді
наведений вище алгоритм має складність O(log n) (або O (k ) – з врахуванням
бітової довжини). Відповідно, такий алгоритм має меншу обчислювальну
складність, ніж оригінальний – O(n!) . З врахуванням наведеного вище виникає
проблема вибору оптимальної ЕК для практичного застосування.
2.2. Проблема компрометації криптосистем на базі ЕК
Проблема компрометації криптосистеми на EC заснована на
припущенні, що для заданих чисел n і P існує принаймні один складний
алгоритм обчислення поліномів зі складністю Q = nP . Обернена задача також
побудована на даному припущенні.
Обернена задача (задача обчислення логарифма) формулюється так, як
якщо точки Q і P відомі, то необхідно визначити n [5, 19].
Використання терміну «логарифм» замість терміну «подільність»
використовується для узгодженості з іншими криптосистемами.
Зараз не існує жодного "простого" алгоритму для розв’язку проблеми
дискретного логарифму. Всі вони мають експоненційну складність
обчислення дискретного алгоритму. Але, експериментуючи з множенням,
можна виявити деякі закономірності [19, 21].
Наприклад, візьмемо EК, форма якої описується рівнянням виду
y2 = x3 −3x+1 і точку P = (0;1) . Можна бути впевненим, що якщо число n непарне,
Лист
ЧДТУ.21.20104.007 ПЗ 24
Змін. Лист № докум. Підпис Дата
тоді nP знаходиться на кривій у лівій півплощині, і якщо n непарне число, тоді
nP знаходиться в правій півплощині.
Можна знайти й інші закономірності, які призводять до створення
алгоритму для ефективного обчислення логарифма цієї кривої, тобто до
компрометації криптосистеми на базі EК. Поряд з тим існує варіант
логарифмічної задачі: проблема дискретного логарифму [1], [19]. Як відомо,
область визначення еліптичних кривих зменшується, скалярне множення
залишається «простим», а отримання дискретного логарифма стає «складним»
завданням для компрометації криптоалгоритму [1], [3], [4–6]. Така властивість
є ключовою особливістю криптографії на еліптичних кривих.
Далі дослідимо скінченні поля та задачі дискретної логарифмізації, а
також приклади та інструменти для експериментальної реалізації систем на
ЕК. Відомо, що ЕК, визначена над скінченним полем, має скінченну кількість
точок [25],[26]. Задається тільки кількість точок на цій кривій. Кількість точок
в групі EК називається порядком групи EК.
Перевірка всіх можливих значень для x в діапазоні від 0 до p−1 не є
можливим способом розрахунку точок, оскільки він вимагає O( p) кроків, але,
якщо p є простим числом, то таке завдання вважається обчислювально
«складним». Тому для обчислення порядку групи EК використовується більш
швидкий алгоритм – алгоритм Шуфа [26].
Для дійсних чисел множення можна записати наступний вираз:
n
nP = P ,
i=1 i
де n - натуральне число.
Можна використовувати алгоритм подвоєння-додавання для виконання
множення залежного від часу: O (k ) , де k – кількість бітів n .
Множення точок EК над скінченним полем Fp має одну властивість.
Щоб продемонструвати це, візьмемо форму EКК y2 = x3 + 2x+3(mod 97) з точкою
Лист
ЧДТУ.21.20104.007 ПЗ 25
Змін. Лист № докум. Підпис Дата
P = (3,6) . Далі за допомогою [27] обчислюємо всі величини, кратні P (рис. 2.2),
така EКК має 100 точок. Усі значення кратні P = (3,6) це 5 різних точок:
(0,2P,3P,4P) і повторюється одне за одним. Ця властивість скалярного множення
для EК подібна до скалярного додавання в модульній арифметиці [28].
Відзначимо дві особливості даної ЕК: лише п'ять значень точки P
кратні; точки циклічно повторюються, починаючи з будь-якого цілого числа
k, яке відповідає наступному вигляду:
5kP = 0;(5k +1)P = P;(5k + 2)P = 2P;
(2.4)
(5k + 3)P = 3P;(5k + 4)P = 4P
Вираз (2.4) показує, що 5 точок, взятих на EC, замикаються відповідно
до операції додавання, тобто сума 0,2P, 0,3P або 4P завжди буде координатою
однією із цих 5 точок.
Рис. 2.2 - результати скалярного множення над ЕК виду y2 = x3 + 2x +3
(mod97) для точки P = (3,6)
Лист
ЧДТУ.21.20104.007 ПЗ 26
Змін. Лист № докум. Підпис Дата
Це означає, що всі інші точки даної еліптичної кривої не будуть рішення
системи (2.4). Це твердження можна застосувати і до інших точок ЕК, а не
тільки до точки P = (3,6) .
Можна взяти точку P в наступній формі (2.5):
m
nP +mP = (n +m)P = (n +m)P (2.5)
i
i=1
Вираз (2.5) означає, що коли ми додаємо два значення, кратні до P , ми
отримуємо значення, кратні P (тобто значення, кратні P , закриті відносно
операції додавання).
Цього достатньо, щоб довести, що множина множинних точок зі
значеннями P є циклічною підгрупою групи, утвореною EК. З вищесказаного
можна стверджувати, що:
1) підгрупа — це група, яка є підмножиною іншої групи;
2) циклічна підгрупа — це група, елементи якої циклічно повторюються;
3) точку P називають твірною або базовою точкою циклічної підгрупи.
Циклічні підгрупи є основою для криптосистем на основі еліптичних
кривих. Для визначення порядку підгрупи точок, породжених точкою P ,
неможливо використовувати алгоритм Шуфа, оскільки цей алгоритм працює
лише для цілочисельних еліптичних кривих, але не для підгруп [19], [21], [22].
Щоб визначити порядок підгрупи, необхідно враховувати, що слід
визначати порядок групи точок EК, як кількість точок групи. Однак для
циклічних підгруп порядок P також є мінімальним натуральним цілим числом
n, таким, що nP = 0 .
Наведений вище приклад показує (рис. 2.2), що підгрупа складається з
п’яти точок (умова 5P = 0).
Порядок пов'язаний з порядком EC за теоремою Лагранжа, згідно з якою
порядок підгрупи є дільником початкового порядку групи. Іншими словами,
якщо EC містить точки, а одна з підгруп містить n, то n є дільником.
Лист
ЧДТУ.21.20104.007 ПЗ 27
Змін. Лист № докум. Підпис Дата
Порядок точки P пов'язаний з порядком EК за теоремою Лагранжа,
відповідною до якої порядок підгрупи є дільником початкового порядку
групи. Іншими словами, якщо EК містить N точок, а одна з підгруп містить n,
то n є дільником N .
Два вищенаведені факти дозволяють визначити порядок підгрупи з
базовою точкою P наступним чином:
1) обчислюємо поряд еліптичної кривої N , використовуючи алгоритм
Шуфа;
2) знаходимо всі можливі дільники для N ;
3) для кожного дільника n групи N обраховуємо добуток nP ;
4) найменше n таке, що nP = 0 є порядком підгрупи.
Наприклад, еліптична крива форми y2 = x3 − x+3 (mod97) над полем F має
97
порядок N = 42 . Відповідно, підгрупи такої ЕКК можуть мати порядок n=1, 2,
3, 6, 7, 14, 21 або 42. Якщо підставити точку P = (2,3) в рівняння еліптичної
кривої, тоді отримаємо, що P 0, 2P 0,.., 7P = 0 і порядок підгрупи точки P
ставатиме число n = 7 .
В переважній більшості своїх практичних застосувань криптосистеми
(криптоалгоритми) на базі EКК є асиметричними [3], [4], [19], [21], [29]. Таким
чином, вони мають два типи ключів: приватний (секретний) та відкритий
(публічний).
Якщо закритий (секретний) ключ — це випадкове ціле число d,
генероване з діапазону 1,..,n−1 , де n – EC point subgroup order, то відкритий
ключ – це точка H = d , де G – базова точка підгрупи ЕК.
G
Якщо числа d and G відомі (разом з іншими параметрами діапазону
визначення ЕКК), тоді визначення відкритого ключа H не виявляється
проблемою. Але, якщо відомі тільки значення H і G , тоді пошук або
визначення закритого (секретного) ключа d перетворюється в «складну»
обчислювальну задачу. Розв’язання такої задачі вимагає обчислення
дискретного логарифма.
Лист
ЧДТУ.21.20104.007 ПЗ 28
Змін. Лист № докум. Підпис Дата
РОЗДІЛ 3
ПРАКТИЧНІ АСПЕКТИ ЗАСТОСУВАННЯ ЕЛІПТИЧНИХ КРИВИХ В
АЛГОРИТМАХ ЕЛЕКТРОННОГО ЦИФРОВОГО ПІДПИСУ
3.1. Задача знаходження дискретного логарифма для криптосистем
на базі еліптичних кривих
Для вирішення проблеми дискретного логарифма іноді доводиться
використовувати додатковий параметр області визначення: генерування
значення S (значення для відсіву (seed) випадкового числа) [24], [25], [30]. По
суті, генеруюче значення є випадковим числом, яке використовується для
генерування коефіцієнтів a і b або базової точки G або обох параметрів. Ці
параметри генеруються шляхом обчислення значення хеш-функції S [1, 24].
Як відомо, обчислити хеш-функції не складно, але інвертувати її
результат вже складає серйозну проблему. Простим варіантом є створення
випадкової EК з генерованого значення, в якому значення хеш-функції
випадкового числа використовується для обчислення різних параметрів
еліптичної кривої. Якщо криптоаналітик або зловмисник хоче відновити хеш-
функцію за параметрами її області визначення, необхідно буде вирішити
«важку» проблему – інвертування хеш-функції (рис. 3.1).
Рис. 3.1 - ілюстрація складності проблеми інверсії хеш-функції
Лист
ЧДТУ.21.20104.007 ПЗ 29
Змін. Лист № докум. Підпис Дата
Еліптична крива, створена за деякими згенерованими значенням,
називається випадково перевіреною.
Принцип генерації хешів, описаний, наприклад, у [31], дає певну
гарантію того, що EК спеціально розроблено, щоб мати вразливості, відомі
автору даної кривої.
3.2. Криптоатаки на алгоритми ЕЦП
Одною з розповсюджених атак, які зловмисники використовують,
користуючись вразливостями, наприклад мережевого протоколу arp є атаки
типу «Man-In-The_Middle» (людина посередині). Якщо зловмисник або «особа
по середині» яка використовує криптоалгоритм, надає жертві еліптичну криву
разом із генеруючими значеннями, це означає, що зловмисник або «особа в
криптоалгоритмі» не можуть довільно вибирати параметри a і b для даної ЕК,
і можна бути відносно впевненим, що на алгоритм не можна використовувати
спеціальні атаки даного типу.
Далі розглянемо алгоритм ECDSA (Elliptic Curve Digital Signature
Algorithm), який є різновидом алгоритму DSA. Для генерування пар ключів
цей алгоритм використовує ЕК [6].
В процесі генерації та перевірки практичної реалізації алгоритму EDS
(ECDSA) будемо використовувати програмний код, написаний на мові Python.
Цей код містить деякі частини програмного алгоритму ECDH, зокрема,
параметри області та алгоритм генерації ключової пари – приватний/відкритий
ключ. В якості еліптичної кривої при в тестових прикладах будемо
використовувати еліптична крива secp256k1 від SECG («Стандарти для
ефективної криптографії»)» [31]. Стандартизовані ЕК, а не прості EК,
зосереджений на полі невеликих чисел. В якості такої EК і було обрано ЕКК
Secp256k1 з групи SECG (стандарти для ефективної криптографії, заснований
на Certicom). Він описує ЕК форми, наведеної на рис. 3.2. Цей варіант EК був
Лист
ЧДТУ.21.20104.007 ПЗ 30
Змін. Лист № докум. Підпис Дата
взятий для тестового варіанту у зв’язку з тим, що така ж крива
використовується в криптоалгоритмах з відкритим ключем для Bitcoin [29].
Рис. 3.2 – графічне зображення форми EК secp256k1 криптоалгоритму
відкритого ключа SECG для біткойн
Слід зауважити, що алгоритм ECDSA працює з хешем повідомлення, а
не з самим повідомленням. Вибір хеш-функції є проблемою розробника. У
практичних реалізаціях цього алгоритму вибирається криптографічна хеш-
функція.
Хеш повідомлення має бути обрізаний так, щоб довжина хеша була
такою ж, як і довжина бітів (порядок підгрупи). Усічений хеш — це ціле число,
що позначається n.
Криптосистеми на EC працюють у циклічній підгрупі еліптичної кривої
над скінченним полем. Тому для їх практичної реалізації потрібна наявність
наступних параметрів:
1) просте число P , яке визначає розмір кінцевого поля;
2) коефіцієнти a і b рівняння ЕК;
Лист
ЧДТУ.21.20104.007 ПЗ 31
Змін. Лист № докум. Підпис Дата
3) базова точка G , яка генерує підмножину точок;
4) порядок n підгрупи;
5) кофактор h підгрупи.
Параметри визначення функції EК, що використовуються для реалізації
алгоритму, описаного вище, взяті з вихідного коду криптографічної бібліотеки
OpenSSL [23]. Вони мають такі атрибути:
# Field characteristic: p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
# Curve coefficients: a=0; b=7.
# Base point:
g=(0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,
0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
# Subgroup order:
n=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
# Subgroup cofactor: h=1.
При необхідності можна змінити параметри ЕК у програмі, що реалізує
дане криптографічне перетворення наступним чином:
- характеристика поля;
- коефіцієнти кривих;
- порядок підгруп;
- кофактор підгрупи.
Також можна використовувати інші криві та параметри області
визначення, але для цього потрібно використовувати лише прості числові поля
та традиційне формулювання теореми Вейєрштраса [23]. Інакше програмна
реалізація механізму захисту з використанням такої ЕК працюватиме
некоректно.
ECDSA (Elliptic Curve Digital Signature Algorithm) відомий, як алгоритм
з відкритим ключем. Даний алгоритм використовується для створення
Лист
ЧДТУ.21.20104.007 ПЗ 32
Змін. Лист № докум. Підпис Дата
цифрового підпису і є аналогічний за будовою до алгоритму DSA, але
визначений, на відміну від нього, в ньому використовуються не операції над
кільцем цілих чисел, а криптоперетворення в групі точок еліптичної кривої.
Стійкість алгоритму шифрування полягає в проблемі складності
знаходження дискретного логарифму групи точок ЕК. На відміну від
проблеми знаходження простого дискретного логарифму та проблеми
факторизації цілого числа, не існує алгоритму субекспоненційної
обчислювальної складності, який був би здатний вирішити проблему
обчислення дискретного логарифму в групі точок еліптичної кривої за
прийнятний відрізок часу. Саме через це «сила на один біт ключа» істотно
вища в алгоритмі, який використовує еліптичні криві (в ECDSA) [32].
Раніше Д. Брауном (Daniel R. L. Brown) було доведено, що алгоритм
ECDSA не є більш безпечним, ніж DSA. Ним же було сформульовано
обмеження безпеки для ECDSA, яке призвело до наступного висновку:
"Якщо група еліптичної кривої може бути змодельована основною
групою і її хеш-функція задовольняє певному обґрунтованому припущенню,
то алгоритм ECDSA стійкий до атаки на основі підібраного відкритого тексту
з існуючою фальсифікацією" [33].
Алгоритм цифрового підпису ECDSA був прийнятий в якості стандарт
ANSI у 1999 році, а у 2000 році - як стандарт IEEE та NIST. Також у 1998 р.
алгоритм було прийнято та затверджено в якості стандарту ISO.
Незважаючи на те, що стандарти ЕЦП створені зовсім порівняно
недавно і знаходяться на етапі вдосконалення, одним з найперспективніших
на сьогоднішній день є ANSI X9.62 ECDSA від 1999 — DSA для еліптичних
кривих [33].
Саме через наведені вище факти алгоритм ECDSA обраний в якості
основи для системи криптографічного захисту інформації з обмеженим
доступом.
Лист
ЧДТУ.21.20104.007 ПЗ 33
Змін. Лист № докум. Підпис Дата
3.3. Реалізація роботи алгоритму електронного цифрового підпису
ECDSA
Алгоритм ECDSA є аналогічним за своєю будовою до DSA, але, на
відміну від нього, здійснює криптоперетворення не над кінцевим числовим
полем, а групі точок еліптичної кривої.
Даний алгоритм використовує в роботі 2 ключі (ключову пов’язану
пару).
Алгоритм роботи ECDSA дуже схожий на інші алгоритми систем ЕЦП.
Він полягає в тому, що:
1) Аліса хоче підписати повідомлення своїм приватним ключем ( d );
A
2) Пітер хоче перевірити підпис відкритим ключем Аліси ( H );
A
3) усі, за винятком Аліси, не повинні мати можливість створювати дійсні
підписи;
4) кожен з одержувачів повинен мати можливість перевірити підписи.
Алгоритм для підписувача (Аліси) функціонує наступним чином [6]:
Крок 1. Отримуємо випадкове ціле число k , обране з діапазону 1,..,n−1 ,
where n – порядок групи точки ЕК.
Крок 2. Обчислимо точку P = kG , де G – базова точки підгрупи.
Крок 3. Обчислимо вираз r = x modn , де x – x координата точки P .
P P
Крок 4. Якщо r = 0 , тоді обираємо інше число k і повертаємося до Кроку
2.
Крок 5. Обрахуємо вираз s = k−1 (z + rd )modn , де d - секретний ключ Аліси;
A A
k−1 мультиплікативна інверсія числа k за модулем n .
Крок 6. Якщо s = 0 , тоді обираємо інше число k і повертаємося до Кроку
2. Результат виконання Кроку – ключова пара (r, s) і є ЕЦП.
Щоб перевірити цифровий підпис, особа, яка має намір виконати таку
перевірку, повинна мати відкритий ключ Аліси H , (зменшений) хеш z і
A
цифровий підпис: (r, s) .
Лист
ЧДТУ.21.20104.007 ПЗ 34
Змін. Лист № докум. Підпис Дата
Алгоритм перевірки електронного підпису за допомогою наявного
відкритого ключа виглядає так:
1. Обчислюємо ціле число u1 = s−1mod n (3.1)
2. Обчислюємо інше ціле число u = s−1
2 r mod n (3.2)
3. Обчислюємо точку на ЕК: P = u1G+u H .
2 A
4. ЕЦП буде дійсною за умови: r = xP mod n .
Щоб перевірити правильність алгоритму, можна визначити відкритий
ключ, як H = d G , де d – private key), звідки, враховуючи вирази (3.1) і (3.2)
A A A
отримуємо вираз:
P = u1G+u2HA = u1G+u2dAG = (u1 +u2dA )G (3.3)
Беручи до уваги отриманні значення u1 (3.1) і u (3.2), можна записати
2
визначення точки P так:
P = (u −1
1 + u2dA )G = (s z + s−1rd )G = s−1
A ( z + rdA )G (3.4)
У виразах (3.3) і (3.4) опущено модуль системи числення точки ЕК «mod
n». Це зроблено для того, щоб зменшити математичний запис і для того, щоб
циклічна підгрупа, яка породжена точкою G і має порядок n, усувала б потребу
в частині «mod n» у математичних записах.
Можна відзначити, що s = k−1 (z + rd )modn , тобто параметр r прив’язаний
A
до хеша повідомлення. Помноживши обидві частини цього рівняння на k і
поділивши на s , отримаємо такий вираз (3.5):
k = s−1 (z + rd (3.5)
A )G = kG
Лист
ЧДТУ.21.20104.007 ПЗ 35
Змін. Лист № докум. Підпис Дата
Підставивши отриманий вираз (3.1) у рівняння (3.2) для P, отримаємо
наступний вираз:
P = s−1 (z + rd )G = kG (3.6)
A
Отриманий вираз (3.3) повністю подібний до виразу (3.4) або ж на
параметр P, отриманий на кроці 2 алгоритму генерації ЕЦП. При генеруванні
ЕЦП та їх перевірці, на ЕК обчислюється одна й та ж точка, але за різними
наборами рівнянь. Принцип перевірки ЕЦП даним алгоритмом теж заснований
на цьому ефекті.
3.4. Практичні аспекти реалізації алгоритму ECDSA
Для практичного застосування алгоритму ECDSA існують певні
обмеження на поля, у яких визначено еліптичні криві. Більш того, щоб
уникнути деяких відомих атак, обмеження накладаються і на рівняння, що
задають форму еліптичних кривих, так і на порядок базових точок в групах
ЕК.
Ці обмеження були розглянуті в розділі 2 та визначено той клас ЕКК, які
найбільш придатні для прикладних криптосистем.
При практичній реалізації криптосистем на основі ЕК необхідно
враховувати, що існує стандартизований алгоритм генерації та перевірки
випадкових кривих, який описано в нормативному документі ANSI X9.62 [33].
Або ж це можна роботи на основі криптографічної хеш-функції SHA-1 [34].
Існують описані практичні реалізації даного алгоритму, зокрема в [35].
Наприклад, перевіримо випадкові ЕК на той факт, що зловмисник або
«особа посередині» в криптоалгоритмі не може довільно вибрати параметри a
та b для EК. Для цього скористаємося програмною реалізацією даного
алгоритму з використанням ЕК, описаною в документі ANSI X9.62 на мові
Лист
ЧДТУ.21.20104.007 ПЗ 36
Змін. Лист № докум. Підпис Дата
програмування Python (додаток Б). Отримані еліптичні криві
використовуються для генерації, як публічних, так і секретних ключів.
Необхідні для реалізації EК знаходяться у відкритій бібліотеці OpenSSL [36].
Генерована за допомогою породжувального значення крива називається
випадковою ЕК, що перевіряється. Принцип використання хешей для
генерування параметрів відомий як "nothing up my sleeve" («у рукавах нічого
немає»), і є достатньо поширеним у криптографії [37].
Такий особливій підхід гарантує, що дана ЕК була спеціально створена
в такий спосіб, щоб мати відомі її автору вразливості. Насправді, якщо маємо
ЕК разом із породжуючим значенням, то це означає, що параметри рівняння a
і b, які її описують, не можуть бути обрані довільно. Таким чином, можна бути
відносно певними, що проти алгоритму з даною ЕК не можна буде
використати спеціальні атаки.
На рис. 3.3 наведено результати роботи програми на Python, яка
перевіряє всі випадкові ЕКК, які поставляються з відкритою бібліотекою
розробника OpenSSL. Повний перелік програмного коду з описом констант та
еліптичних кривих відкритої бібліотеки розробника OpenSSL описаний Nils
Larsch та доступний на GitHub за посиланням:
https://github.com/openssl/openssl/blob/81fc390/crypto/ec/ec_curve.c. Він містить
близько 74 різних ЕК, довжиною від 192 до 512 біт.
Як показано на рис. 3.3, деякі EК (prime192v1, prime192v2, prime192v3,
prime192v4) з алгоритму OpenSSL не пройшли перевірку на коректність їх
застосування в ECDSA для задач захисту інформації з використанням ЕЦП.
Лист
ЧДТУ.21.20104.007 ПЗ 37
Змін. Лист № докум. Підпис Дата
Рис. 3.3 - результати перевірки коректності випадково генерованих ЕКК з
відкритої бібліотеки OpenSSL
Так, якщо числа d і G відомі (разом з іншими параметрами області), то
знаходження відкритого ключа – H не становить проблеми. Але, якщо відомі
тільки параметри H і G , тоді знаходження закритого (секретного ключа) d
перетворюється в «складну» обчислювальну задачу, оскільки для її
розв’язання потрібне розв’язати задачу знаходження дискретного логарифму.
Лист
ЧДТУ.21.20104.007 ПЗ 38
Змін. Лист № докум. Підпис Дата
3.4.1. Програмна реалізація ЕЦП на базі ЕК secp256k1
Створена програма, яка є реалізацією алгоритму ECDSA показує процес
генерації та верифікації ЕЦП. Таким чином були сформовані результати
відкритих та закритих ключів для повідомлень: «Діма» та «БІ-55» та
верифіковано ЕЦП (рис. 3.4).
Рис. 3.4 – результати генерування відкритих і закритих ключів для 2-х
повідомлень і перевірки ЕЦП (алгоритм EСDSA)
Як показано на рис. 3.4, спочатку програма підписує видане
повідомлення (байтовий рядок «Resultat») за допомогою перевіреною
(коректної) ЕК, а потім перевіряє отриманий цифровий відбиток (дайджест).
Потім програма перевіряє той самий підпис для іншого повідомлення
("Diploma"). В результаті перевірки ми отримуємо як коректні, так і некоректні
результати порівняння. Далі, якщо ми спробуємо перевірити дайджест ЕЦП
для коректного повідомлення за допомогою іншого випадкового відкритого
ключа, нам знову це не вдається.
Як показано в даному розділі, при генеруванні ЕЦП та їх перевірці
Лист
ЧДТУ.21.20104.007 ПЗ 39
Змін. Лист № докум. Підпис Дата
обчислюється одна і та ж точка Р на ЕК, але з різними наборами рівнянь. Що
дає змогу оцінити характер криптоперетворень алгоритму захисту інформації
на базі ЕК.
На ефекті генерування ЕЦП та їх перевірці на обчисленні однієї і тієї ж
точки Р на ЕК, але з різними наборами рівнянь заснований принцип перевірки
ЕЦП за даним алгоритмом. Для обчислення параметра s обчислюється
величина, обернена k за модулем n. Ця техніка гарантовано спрацює лише в
тому випадку, якщо n є простим числом. Якщо підгрупа непростого порядку,
то алгоритм ECDSA використовувати не можна. Завдяки цьому всі
стандартизовані криві мають простий порядок, а ті EК, які не мають простого
порядку, не застосовуються в алгоритмі ECDSA.
Лист
ЧДТУ.21.20104.007 ПЗ 40
Змін. Лист № докум. Підпис Дата
ЗАГАЛЬНІ ВИСНОВКИ
1. В результаті проведеного аналізу систем криптографічного
захисту інформації від НСД та виділити їх основні типи та методи захисту
інформації такими системами у вигляді симетричних та асиметричних
криптоалгоритмів.
2. Визначено особливості систем захисту інформації від НСД з
використанням криптосистем на базі ЕК. Дані особливості полягають в тому,
що:
- сертифікати ЕЦП наразі включають алгоритми DSA або ЕК поряд
зі стандартними алгоритмами RSA;
- криптостійкість алгоритмів захисту інформації на базі ЕК
обумовлюється складністю розв’язку задачі знаходження дискретного
логарифма для криптосистем на базі еліптичних кривих.
3. В результаті аналізу особливостей математичного апарату та
реалізації асиметричних криптографічних алгоритмів було з’ясовано, що:
- в цілому, актуальність криптосистем ЕЦП на базі еліптичних
кривих обумовлена тим, що сьогодні проблема знаходження дискретного
логарифму для еліптичних кривих є значно складнішою, ніж інші подібні
завдання, що використовуються в криптографії;
- практично всі сучасні асиметричні алгоритми – RSA, DSA, ECDSA
забезпечують співставний рівень крипостійкості, але ECDSA, але при
застосуванні ЕК в складі ECDSA потрібно менше бітів для цілого числа, щоб
отримати той самий рівень захисту, як і в інших криптосистемах;
- не всі описані в бібліотеці OpenSSL еліптичні криві однаково
придатні для практичних криптографічних застосувань;
Тому, подальше дослідження систем захисту інформації з обмеженим
доступом на еліптичних кривих сьогодні вкрай актуальне.
Перед застосуванням в прикладних криптосистемах на базі ЕКК всі
Лист
ЧДТУ.21.20104.007 ПЗ 41
Змін. Лист № докум. Підпис Дата
наведені в бібліотеці OpenSSL криві повинні бути перевірені на коректність
вимогам безпеки.
В задачах захисту інформації та інших відповідальних застосувань
криптографічних алгоритмів на основі EК бажано використовувати такі EК,
які попередньо перевірені алгоритмами, наведеними в ANSI X9.62.
4. При дослідженні на прикладах практичних аспектів застосування
ЕК в алгоритмах ЕЦП відмічено, що:
- так само, як для всіх інших асиметричних алгоритмів при створенні
цифрового підпису за допомогою алгоритму ECDSA, важливо зберігати
закритий ключ k у місці, недоступному для потенційного зловмисника.
- якби в при практичній реалізації параметр k використовувався для всіх
підписів, або генератор випадкових чисел був би певною мірою
передбачуваним, зловмисник міг би ідентифікувати закритий ключ, що
автоматично призвело б до його використання з метою заподіяння шкоди. Такі
випадки траплялися й описувалися. Це призводить до значних репутаційних
втрат, фінансових збитків та порушення циклу роботи бізнесу. Наприклад,
подібну помилку допустила компанія Sony [38].
Лист
ЧДТУ.21.20104.007 ПЗ 42
Змін. Лист № докум. Підпис Дата
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Miller, V. Use of elliptic curves in cryptography. CRYPTO. Lecture
Notes in Computer Science. 85. pp. 417–426, 1985, doi:10.1007/3-540-39799-
X_31.
2. Christof Paar, Jan Pelzl, Bart Preneel. Understanding Cryptography: A
Textbook for Students and Practitioners 1st ed. 2010 Edition, 390 pp.
3. Schneier, Bruce. Applied Cryptography, Second Edition, John Wiley &
Sons, 1996, available at: https://mrajacse.files.wordpress.com/2012/01/applied-
cryptography-2nd-ed-b-schneier.pdf.
4. An Introduction to Bitcoin, Elliptic Curves and the Mathematics of
ECDSA, N.Minstry, B121555, Supervisor Dr. B.Winn, Module Code: Mac200,
21.04.2015, available at:
https://github.com/bellaj/Blockchain/blob/6bffb47afae6a2a70903a26d215484cf8ff
03859/ecdsa_bitcoin.pdf
5. Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. An Introduction to
Mathematical Cryptography. — Springer Science+Business Media New York 2014.
— p. 53, available at https://doi.org/10.1007/978-1-4939-1711-2.
6. Johnson, D., Menezes, A. & Vanstone, S. The Elliptic Curve Digital
Signature Algorithm (ECDSA). IJIS 1, 36–63 (2001), available at
https://doi.org/10.1007/s102070100002.
7. Benger, Naomi; van de Pol, Joop; Smart, Nigel P.; Yarom, Yuval
(2014). Batina, Lejla; Robshaw, Matthew (eds.). "Ooh Aah... Just a Little Bit" : A
Small Amount of Side Channel Can Go a Long Way (PDF). Cryptographic
Hardware and Embedded Systems – CHES 2014. Lecture Notes in Computer
Science. 8731. Springer. pp. 72–95. doi:10.1007/978-3-662-44709-3_5.
8. Nigel P. Smart. Cryptography Made Simple. Springer International
Publishing, 1st Ed: XII, 481 p, 2015, doi:10.1007/978-3-319-21936-3.
Лист
ЧДТУ.21.20104.007 ПЗ 43
Змін. Лист № докум. Підпис Дата
9. Arpita Patra & Nigel P. Smart. Progress in Cryptology – INDOCRYPT,
2017. Springer-Verlag. ISBN 978-3-319-71667-1.
10. Rory Hector, Ramachandran Vaidyanathan, Gokarna Sharma and Jerry
L. Trahan, Optimal Convex Hull Formation on a Grid by Asynchronous Robots with
Lights. Conference: 2020 IEEE International Parallel and Distributed Processing
Symposium (IPDPS), Year: 2020, Page 1051.
DOI: 10.1109/IPDPS47924.2020.00111.
11. Эллиптическая криптография [Електронний ресурс] // TECH-
GEEK.RU. – 2021. – Режим доступу до ресурсу: https://tech-geek.ru/elliptic-
cryptography/.
12. Збірник наукових праць за матеріалами ІV Всеукраїнської
науково-практичної інтернет конференції студентів і аспірантів
«ТЕОРЕТИЧНІ ТА ПРИКЛАДНІ АСПЕКТИ РОЗРОБКИ КОМП’ЮТЕРНИХ
СИСТЕМ ‘2021», 29 квітня 2021 року, НУБіП України, Київ. – 209 с.
(електронне видання)
13. [10 Mandal, A. K., Parakash, C. and Tiwari, A. (2012). Performance
evaluation of cryptographic algorithms: DES and AES. Electrical, Electronics and
Computer Science (SCEECS), 2012 IEEE Students’ Conference on. IEEE, 2012]
14. [Hercigonja Z. Comparative Analysis of Cryptographic Algorithms /
Zoran Hercigonja. – 2016].
15. Difference between RSA algorithm and DSA. [Електронний ресурс]
// @geeksforgeeks – Режим доступу до ресурсу:
https://www.geeksforgeeks.org/difference-between-rsa-algorithm-and-dsa/.
Retrieved 2020-05-22.
16. DigiCert World's. Largest High-Assurance Certificate Authority
[Електронний ресурс] // Netcraft Ltd. – 2021. – Режим доступу до ресурсу:
https://trends.netcraft.com/www.digicert.com#extended-validation.
17. Apache HTTP Server [Електронний ресурс] // wikipedia. – 2021. –
Режим доступу до ресурсу: https://uk.wikipedia.org/wiki/Apache_HTTP_Server.
Лист
ЧДТУ.21.20104.007 ПЗ 44
Змін. Лист № докум. Підпис Дата
18. Web Server Survey [Електронний ресурс] // Netcraft Ltd. – Retrieved
26, July 2021. – Режим доступу до ресурсу:
https://news.netcraft.com/archives/2021/07/26/july-2021-web-server-survey.html.
19. Lawrence C. Washington. Elliptic Curves: Number Theory and
Cryptography, Second Edition (Discrete Mathematics and Its
Applications). Chapman and Hall/CRC; 2 edition, April 3, 2008, 536 p.
20. Hans Knutson. What is the math behind elliptic curve cryptography?
April 6th 2018, available at: https://hackernoon.com/what-is-the-math-behind-
elliptic-curve-cryptography-f61b25253da3.
21. Koblitz, Neal. A Course in Number Theory and Cryptography
(Graduate Texts in Mathematics), Springer; 2nd edition, September 2, 1994, 235 p.
22. Lay, G., Zimmer, H. Constructing elliptic curves with given group order
over large finite fields. Algorithmic Number Theory Symposium. Lecture Notes in
Computer Science. 877. pp. 250–263, 1994, doi:10.1007/3-540-58691-1_64.
23. Alain J. Brizard, Notes on the Weierstrass Elliptic Function,
Department of Physics, Saint Michael’s College, Colchester, VT 05439, USA.
October 13 2015, available at
https://www.researchgate.net/publication/283335205_Notes_on_the_Weierstrass_
Elliptic_Function.
24. Доступно о криптографии на эллиптических кривых [Електронний
ресурс] // company.habr.com. – Retrieved 28 Aug 2017. – Режим доступу до
ресурсу: https://habr.com/ru/post/335906/.
25. R. Schoof. Elliptic Curves over Finite Fields and the Computation of
Square Roots mod p. Math. Comp. T. 44, No. 170, pp. 483–494, 1985.
26. R. Schoof. Counting Points on Elliptic Curves over Finite Fields, J.
Theor. Nombres Bordeaux. No. 7. — pp. 219–254, 1995.
27. Elliptic Curve point addition // cdn.rawgit.com, available at:
https://cdn.rawgit.com/andreacorbellini/ecc/920b29a/interactive/reals-add.html.
Лист
ЧДТУ.21.20104.007 ПЗ 45
Змін. Лист № докум. Підпис Дата
28. S., Dummit, David. Abstract algebra. Foote, Richard M., 1950- (3. ed.).
Hoboken, NJ: WileyOCLC 248917264, 2004.
29. Raval S. Decentralized Applications. Harnessing Bitcoin's Blockchain
Technology, O'Reilly Media; 1st edition, 118 p., (August 16, 2016).
30. Kefa Rabah. Review of Methods for Integer Factorization Applied to
Cryptography. Journal of Applied Sciences, 6: 458–481 2006,
DOI: 10.3923/jas.2006.458.481m, available at
https://scialert.net/abstract/?doi=jas.2006.458.481.
31. Standarts for Efficient Cryptography. SEC 2. Recommended Curve
Domain Parametres. Certicom Research. January 27, 2010, Version 2.0, available at
http://www.secg.org/sec2-v2.pdf.
32. Коржев В. Цифровая подпись. Эллиптические кривые. «Открытые
системы» (8 августа 2002). Дата обращения: 16 ноября 2008.
33. ANSI X9.62 Public Key Cryptography for the Financial Services
Industry: the Elliptic Curve Digital Signature Algorithm (ECDSA). ANSI. 16
November 2005. 163 p.
34. RFC 3174. US Secure Hash Algorithm 1 (SHA1). Network Working
Group. Cisco Systems. September 2001, available at
https://tools.ietf.org/html/rfc3174
35. Sahun, A.V., Lakhno, V.A., Kravchuk, P.Y., Kosenko, S.S., Kisiliuk,
E.M. Elliptic curves in modern cryptographic systems (2020) International Journal
of Advanced Trends in Computer Science and Engineering, 9 (4), статья № 259, pp.
5949- 5955.
36. R. Barnes; M. Thomson; A. Pironti; A. Langley (June 2015).
"Deprecating Secure Sockets Layer Version 3.0", available at:
https://tools.ietf.org/html/rfc7568.
37. https://cryptography.fandom.com/wiki/Nothing_up_my_sleeve_numb
er
Лист
ЧДТУ.21.20104.007 ПЗ 46
Змін. Лист № докум. Підпис Дата
38. Fildes J. iPhone hacker publishes secret Sony PlayStation 3 key / BBC
News. – 2011, available at https://www.bbc.com/news/technology-12116051.
Лист
ЧДТУ.21.20104.007 ПЗ 47
Змін. Лист № докум. Підпис Дата