Uploaded by Вера Чурай

Сучасний стан та перспективи розвитку систем шифрування на основі ЕК

advertisement
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ХАРКІВСЬКІЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОТЕХНІКИ ТА ЕЛЕКТРОНІКИ
КУРСОВА РОБОТА
СУЧАСНИЙ СТАН ТА ПЕРСПЕКТИВИ РОЗВИТКУ СИСТЕМ
ШИФРУВАННЯ НА ОСНОВІ ЕЛІПТИЧНИХ КРИВИХ.
Виконала:
Перевірив:
студентка групи
викладач
БІКС-мзд-17
кафедри БІТ
Сєдунова В.В.
проф. Голобородько Ю.М.
Харків 2018
Зміст
Вступ......................................................................................................... 3
1. Історія запровадження ЕК у криптографії. ...................................... 4
2. Теоретичні основи еліптичної криптографії .................................... 5
3. Застосування ЕК у криптографії ..................................................... 13
4. Варіанти атак на криптоалгоритми з ЕК ........................................ 15
Висновок ................................................................................................ 17
Список використаних джерел та літератури ...................................... 19
2
Вступ
Криптографія еліптичних кривих (ЕК) все частіше використовується на
практиці для протоколів шифрування з відкритим ключем, наприклад,
цифрових підписів та узгодження ключів. На сьогодні (після понад 25 років з
моменту ведення в криптографію ЕК) практичні переваги їх використання
добре зрозумілі: за менших розмірів ключа та більш ефективної реалізації
вони забезпечують той самий рівень безпеки, як інші широко відомі схеми,
зокрема, RSA. Окрім того, у зв’язку із створенням квантового комп’ютеру і
необхідністю розробки криптосистем, стійких в умовах його існування (так
звана
пост-квантова
криптографія),
криптографія
ЕК
виявляється
перспективною і претендує на повну заміну існуючих криптосистем.
У цій роботі я:
- розглядаю деякі факти з історії впровадження ЕК у криптографію,
- пояснюю теоретичні основи криптографії ЕК
- навожу приклади практичної реалізації практичної криптографічних
схем, що базуються на ЕК
- роблю огляд вразливостей у криптографії ЕК
- розглядаю перспективи подальшого розвитку криптографії ЕК
3
1. Історія запровадження ЕК у криптографії.
Перші роботи, що теоретично обґрунтовували можливість застосування
ЕК для потреб шифрування, з’явились наприкінці 80-х років. Проте, як на
той час, вони виявилися занадто громіздкими і невиправдано ускладненими
порівняно із обчисленнями по модулю. Беручи до уваги можливості
тогочасної комп’ютерної техніки, система RSA надавала цілком задовільний
рівень захисту. Проте і тоді комп’ютерна індустрія стрімко розвивалася, і,
відповідно, велися пошуки і розробки нових, більш потужних систем захисту
інформації. Перші стандарти для криптосистем з ЕК було видано у 2000р; у
2006 NIST (Національний інститут стандартів та технологій США)
стандартизував ECDSA (криптоалгоритм для створення цифрового підпису,
який базується на еліптичних кривих). На сьогодні ЕК застосовуються у
численних системах інформаційної безпеки, зокрема, у криптовалюті біткоїн,
програмі
TOR,
що
забезпечує
анонімність
користувачів
Інтернет,
українському стандарті цифрового підпису ДСТУ 4145-2002, тощо.
Так, станом на
2013 рік (дослідження Microsoft), з 12 мільйонів
сканованих хостів, які підтримують SSH, 10,3% підтримували ECDSA для
автентифікації та 13,8% підтримували форму ECDH для обміну ключами; з
30,2 млн. серверів TLS 7,2% підтримували форму ECDH; у базі даних карт
громадян австрійських громадян 58% з 829 000 використовували ECDSA для
створення цифрових підписів; вся асиметрична криптографія в біткойні
базувалася на ECC. І розвиток криптографії, базованої на ЕК, продовжується.
4
2. Теоретичні основи еліптичної криптографії
Еліптична крива - це набір точок, описуються рівнянням Вейерштраса:
𝑦 2 = 𝑥 3 + 𝑎𝑥 + 𝑏
Типові варіанти графіків еліптичних кривих:
Еліптичні криві, представлені на перших 4-х малюнках називаються
гладкими. У той час як дві нижні криві відносяться до так званих
сингулярних еліптичних кривих.
5
Для гладких еліптичних кривих виконується наступна нерівність:
4𝑎3 + 27𝑏2 ≠ 0
Тоді як для сингулярних кривих ця умова не виконується.
Якщо ви збираєтеся самостійно розробляти криптографічних продукт,
що підтримує ЕК, дуже важливо запам'ятати наступний факт: не можна
використовувати в схемах ЕЦП сингулярні криві. Детально ми ще
торкнемося цієї теми, зараз же просто скажемо, що використовуючи
сингулярні криві ви ризикуєте значно знизити стійкість схеми ЕЦП.
Арифметичні операції в еліптичній криптографії виконуються над
точками кривої. Основною операцією є додавання. Додавання двох точок
легко уявити графічно:
Як видно з малюнка, для того, щоб додати точки P і Q, необхідно
провести між ними пряму лінію, яка обов'язково перетне криву в будь-якій
третій точці R. Точка, симетрична R відносно горизонтальної осі координат і
є сумою P + Q.
Алгебраїчний вираз додавання має наступний вигляд.
Нехай координатами точки P будуть (xP, yP), а координатами точки Q
відповідно (xQ, yQ). Тоді координати точки P + Q дорівнюватимуть:
2
𝑥𝑃+𝑄
𝑦𝑄 − 𝑦𝑃
=(
) − 𝑥𝑄 − 𝑥𝑃 ;
𝑥𝑄 − 𝑥𝑃
6
𝑦𝑄 − 𝑦𝑃
𝑦𝑃+𝑄 = −𝑦𝑃 + (
) (𝑥𝑃 − 𝑥𝑅 ).
𝑥𝑄 − 𝑥𝑃
Залишилося уточнити лише одну деталь. Всі розглянуті вище криві
відносяться до еліптичних кривих над дійсними числами. І це приводить нас
до проблеми округлення. Тобто, використовуючи криві над дійсними
числами, ми не зможемо отримати бієкції між вихідним текстом і
зашифрованими даними. Щоб не морочитися з округленням, в криптографії
використовуються тільки криві над скінченими полями. Це означає, що під
еліптичною кривою розуміється набір точок, чиї координати належать
скінченому полю.
У криптографії розглядається два види еліптичних кривих: над
скінченим полем 𝑍𝑝 (кільце залишків по модулю простого числа p), і над
полем 𝐺𝐹(2𝑛 ) (бінарне скінчене поле). У еліптичних кривих над полем
𝐺𝐹(2𝑛 ) є одна важлива перевага: елементи поля можуть бути легко
представлені у вигляді n-бітових кодових слів, це дозволяє збільшити
швидкість апаратної реалізації еліптичних алгоритмів.
Всі математичні операції на еліптичних кривих над скінченим полем
виконуються за законами кінцевого поля над яким побудована еліптична
крива. Тобто для обчислення, наприклад, суми двох точок кривої E над
кільцем 𝑍𝑝 всі операції проводяться по модулю числа p.
Однак тут є свої тонкощі. Якщо ми складемо два однакових елемента з
бінарного скінченого поля, то отримаємо в результаті 0, тому що складання
відбувається по модулю 2. Це означає, що характеристика такого поля
дорівнює 2. Але еліптична крива виду
𝑦 2 = 𝑥 3 + 𝑎𝑥 + 𝑏,
описана над полем характеристики 2 або 3, стає сингулярною, а, як вже
зауважувалося,
вище,
сингулярні
криві
в
криптографії
краще
застосовувати.
Тому над бінарним скінченим полем використовуються криві виду:
𝑦 2 + 𝑦𝑥 = 𝑥 3 + 𝑎𝑥 2 + 𝑏, 𝑏 ≠ 0.
7
не
Ще одним важливим поняття еліптичної криптографії є порядок
еліптичної кривої, який показує кількість точок кривої над скінченим полем.
Теорема Хассе стверджує, що якщо N - кількість точок кривої,
визначеної над полем Zq з q елементами тоді справедлива рівність:
Оскільки бінарне кінцеве поле складається з 2n елементів ми можемо
сказати, що порядок кривої дорівнює
, де
.
З числом t пов'язано таке визначення:
еліптична
крива
над
бінарним
скінченим
полем
називається
суперсінгулярною, якщо t ділиться на характеристику поля (в разі бінарного
поля характеристика дорівнює 2) без остачі.
Зрозуміло все це я до того, що не можна використовувати в схемах
ЕЦП суперсінгулярні криві. Сувора рекомендація не використовувати
сингулярні і суперсінгулярні криві для цифрового підпису має одну дуже
вагому причину, але про це пізніше.
Криптографія на еліптичних кривих
Точки еліптичної кривої над скінченим полем представляють собою
групу. І як ми зазначали вище для цієї групи визначена операція додавання.
Відповідно ми можемо уявити множення числа k на точку G як G + G +
.. + G з k складовими.
Тепер уявімо, що у нас є повідомлення M представлене у вигляді
цілого числа. Ми можемо зашифрувати його використовуючи вираз
C = M * G.
Питання в тому, наскільки складно відновити M знаючи параметри
кривої E (a, b), шифротекст С і точку G.
Дане завдання називається дискретним логарифмом на еліптичній
кривій і не має швидкого вирішення. Більш того, вважається, що завдання
8
дискретного логарифма на еліптичній кривій є тяжчим для вирішення, ніж
завдання дискретного логарифмування в кінцевих полях.
Найбільш швидкі методи, розроблені для кінцевих полів виявляються
марні в разі еліптичних кривих.
Так для вирішення дискретного логарифма існують досить швидкі
алгоритми
Дане завдання називається дискретним логарифмом на еліптичній
кривій і не має швидкого вирішення. Більш того, вважається, що завдання
дискретного логарифма на еліптичній кривій є тяжчим для вирішення, ніж
завдання дискретного логарифмування в кінцевих полях.
Найбільш швидкі методи, розроблені для кінцевих полів виявляються
марні в разі еліптичних кривих.
Так для вирішення дискретного логарифма існують досить швидкі
алгоритми мають складність, де c і d - деякі константи, а p - розмір поля. Такі
алгоритми називаються субекспоненціальное і дозволяють порівняно легко
розкривати дискретний логарифм в кінцевому полі, якщо розмір поля не
обрана дуже великим, порядку 21024.
У той же час найбільш швидкі методи вирішення дискретного
логарифма на еліптичній кривій мають складність, де q - кількість точок
еліптичної кривої.
Таким чином, для забезпечення рівня стійкості в 280 операцій
необхідно щоб q = 2160. Нагадаю, для того, щоб отримати аналогічний рівень
складності при обчисленні дискретного логарифма в кінцевому полі
необхідно поле порядку q = 21024.
Слід, однак, зауважити, що оскільки потужність обчислювальної
техніки постійно підвищується, значення q буде постійно збільшуватися. Але
так як графіки функцій і різко відрізняються один від одного, в групі точок
9
еліптичної кривої q буде рости набагато повільніше, ніж в довільному
кінцевому полі.
Група раціональних точок складається з усіх рішень (x, y) ∈ F2p до
рівняння кривої разом з точкою на нескінченності, нейтральним елементом.
Кількість Fp -раціональних точок позначається #E (Fp) і головним порядком
підгрупи на n. Фіксований генератор циклічної підгрупи зазвичай називають
базовою точкою і позначається G ∈ E (Fp).
У стандарті FIPS 186-4 [49] NIST рекомендує п'ять еліптичних кривих
для використання в алгоритмі цифрового підпису еліптичної кривої,
орієнтованої на п'ять різних рівнів безпеки. Кожна крива визначається над
простим полем, визначеним узагальненим простим числом Мерсена.
Всі криві мають один і той же коефіцієнт a = -3, нібито вибираються з
міркувань ефективності, і їх групові порядки є простими, тобто n = #E (Fp).
П'ять рекомендованих простих чисел: p192 = 2192 - 264 - 1, p224 = 2224 - 296 + 1,
p256 = 2256 - 2224 + 2192 + 296 - 1, p384 = 2384 - 2128 - 296 + 232 - 1, p521 = 2521 - 1 .
У стандарті ці криві називаються P-192. P-224, P-256, P-384 і P-521, але
на практиці вони також з'являються як nistp192, nistp224 тощо. Ці та інші
криві також рекомендуються Certicom в стандартах для ефективної
криптографії SEC2, в якому криві називаються secp192r1, secp224r1,
secp256r1, secp384r1, secp521r1. Але іноді використовуються інші назви,
наприклад, P-192 і P-256 називаються prime192v1 і prime256v1 у OpenSSL.
Для 256-бітних простих мікросхем, крім кривої NIST, визначеної над
Fp256, SEC2 також пропонує криву з назвою secp256k1, визначену над F p, де
p = 2256 - 232 - 977. Ця крива використовується в біткойні. Він має 256розрядний простий порядок. Цікаво, що цей вибір відхиляється від тих, що
були зроблені в FIPS 186-4, оскільки коефіцієнти кривої є a = 0 і b = 7. Це
означає, що secp256k1 має j-інваріант 0 і, таким чином, має дуже особливу
структуру.
Крива з j-інваріантною 0 має ефективно обчислювані ендоморфізми,
які можуть бути використані для прискорення реалізації, наприклад,
10
використовуючи розкладання GLV для скалярного множення. Оскільки для
secp256k1 p ≡ 1 (mod 6) існує примітивний 6-й корень з одиниці ζ ∈ Fp та
відповідний автоморфізм кривої ψ: E → E, (x, y) 7 → (ζx, -y). Ця функція
дозволяє швидко обчислювати певні множини будь-якої точки P ∈ E (Fp), а
саме ψ (P) = λP для цілого числа λ з λ6 ≡ 1 (mod n). Але ефективні
ендоморфізми
не
тільки
прискорюють
скалярне
множення,
але
й
прискорюють алгоритм Полларда для обчислення дискретних логарифмів,
який ми ще згадаємо далі. Група автоморфізмів E має порядок 6 і генерується
за допомогою відображення ψ, визначеного вище.
На відміну від цього, еліптична крива з j-інваріантністю, відмінною від
0 і 1728, має лише групу автоморфізмів порядку 2, така, що прискорення
алгоритму Полларда є постійним фактором до 3 за такою кривою.
Іншим наслідком більшої групи автоморфізмів є наявність шести
поворотів (включаючи криву і стандартний квадратичний поворот).
Реалізація, що використовує лише арифметику xcoordinate, повинна звернути
увагу на захист закрутки кривої. Це означає, що його квадратичний поворот
повинен
мати
досить
великий
простий
дільник
для
дискретного
логарифмічного завдання на повороті, щоб бути досить важким. Це запобігає
атаці з пошкодженнями, в якій зловмисник отримує кратні з секретними
скалярами точки на квадратному повороті, наприклад через введення
несправностей. Квадратичний поворот secp256k1 має 220-бітний праймфактор і, таким чином, може вважатися захисним поворотом. Нестандартна
реалізація (використовуючи як координати x, так і y) може бути
скомпрометована атакою недійсної кривої, якщо реалізація не перевіряє, чи
точка задовольняє правильному рівнянню кривої. Це може призвести до
більш серйозної атаки на secp256k1, оскільки зловмисник може отримати
скалярні множини з секретними скалярами точки на будь-якій кривій над Fp з
коефіцієнтом a = 0, тобто на будь-якому з витків secp256k1. Найбільші прості
дільники групових замовлень, що залишилися, складаються з 133, 188, 135 і
11
161 біт, відповідно, але існує ще декілька інших дрібних чинників, які
пропонують більший вибір для атаки з пошкодженням.
12
3. Застосування ЕК у криптографії
Еліптичні криві пари
Враховуючи набір параметрів домену, що включають вибір основного
поля prim p, еліптичну криву E / Fp та базову точку G порядку n на E, пар
ключової еліптичної кривої (d, Q) складається з приватного ключа d , який є
випадковим чином виділеним ненульовим цілим числом за модулем групи n і
відкритим ключем Q = dG, d-кратним базової точки G. Отже, точка Q - це
випадкова вибірка точки в групі, породженій G.
Еліптична крива ключова біржа
Існує кілька різних стандартизованих протоколів обміну ключами (див.
[47, 16]), що продовжують базову еліптичну криву протоколу ДіффіХеллмана, який працює таким чином. Щоб погодитись із загальним ключем,
Аліса і Боб окремо генерують парти ключів (da, Qa) і (db, Qb). Потім вони
обмінюються відкритими клавішами Qa і Qb, таким чином, кожен може
обчислити точку P = da Qb = db Qa, використовуючи їх відповідні приватні
ключі. Спільний секретний ключ походить від P за допомогою функції
деривації клавіш, яка зазвичай застосовується до його x-координат.
Еліптичні криві цифрові підписи
Алгоритм цифрового підпису еліптичних кривих (ECDSA) був
стандартизований у FIPS 1864 [49]. Підписувач генерує пару ключових (d,
Q), що складається з приватного ключа підписування d та ключового ключа
Q = dG. Щоб підписати повідомлення m, спочатку підписувач вибирає
довільне ціле число k для кожного повідомлення, яке 1 ≤ k ≤ n - 1, обчислює
точку (x1, y1) = kG, перетворює x1 у ціле число та обчислює r = x1 mod n .
Повідомлення m перемішується до ширини біт довжини не більше, ніж
довжина біта n, яка потім перетворюється на ціле число e. Підпис m являє
собою пару (r, s) цілих чисел за модулем n, де s = k -1 (e + dr) mod n.
Зауважте, що r та s повинні бути відмінними від 0, і k не повинно бути
13
розкрито, і він повинен бути секретним для кожного повідомлення, а це
означає, що його не можна використовувати для кількох повідомлень.
Важливо, щоб секрет K для кожного повідомлення не виявлявся, тому
що інакше ключ секретного підпису d можна обчислити за допомогою d ≡ r-1
(ks-e) (mod n), оскільки r та s задані в сигнаті та e можна обчислити з
підписаного повідомлення. Навіть якщо відомо лише кілька послідовних
бітів секретності для кожного повідомлення для певної кількості підписів,
можна обчислити приватний ключ. Також, якщо одне і те ж значення для k
використовується для підписання двох різних повідомлень m1 та m2,
використовуючи ту ж саму ключ і підпис d і виробляючи підписи (r, s1) і (r,
s2), то k можна легко обчислити як k ≡ (s2 -s1) -1 (e1 -e2) (mod n), який потім
дозволяє відновити секретний ключ.
14
4. Варіанти атак на криптоалгоритми з ЕК
1.
Алгоритм
Поліга-Хеллмана.
Алгоритм
рішення
дискретного
логарифма. Припустимо, що n - кількість точок еліптичної кривої. Нехай
число n розкладається на прості числа p1, p2, .., pn. Суть методу зводиться до
того, щоб знайти дискретні логарифми по модулю числі пі, а потім отримати
спільне рішення за допомогою китайської теореми про залишки. Атака
дозволяє звести проблему дискретного логарифма в великому полі n до тієї ж
задачі, але з набагато меншим полем p. Для того, щоб протистояти атаці
необхідно просто вибирати криві, кількість точок яких ділиться на дуже
велике просте число q≈n.
2. Алгоритм Шенкса, більш відомий як кроки немовляти / кроки
гіганта. Типовий приклад time memory trade off. Для групи розміром n
обчислюється таблиць розміром n1 / 2, потім по цій таблиці відбувається
пошук потрібного елемента. Складність алгоритму.
3. Уразливість сингулярних і суперсингулярних кривих. Я вже
згадував, що для вирішення завдання дискретного логарифма не існує
субекспоненціальних методів вирішення. Насправді є одне застереження, такі
методи
є,
але
тільки
для
певного
роду
кривих:
сингулярних
і
суперсингулярних. Особливі властивості таких кривих дозволяють звести
задачу дискретного логарифма на еліптичній кривій, до задачі дискретного
логарифма в кінцевому полі. Відповідно для такого класу кривих стандартні
ключі розміром в 160-320 біт, будуть фатально уразливі, що дозволить
зловмисникам розкрити секретний ключ, за відносно невеликий час.
4. Уразливість аномальних кривих Нагадаю, що кількість точок
еліптичної кривої обчислюється за формулою
n = q + 1-t, де q - розмір вихідного поля. І що крива називається
суперсінгулярной якщо t ділиться на 2.
Тому, на перший погляд може здатися гарною ідеєю використовувати
криві в яких кількість точок одно q, тобто t = 1.
15
Однак такі криві називаються аномальними і рішення дискретного
логарифма на аномальних еліптичних кривих є ще більш простим завданням,
ніж для суперсингулярних і сингулярних кривих
16
Висновок
На підставі всього вищесказаного випишемо основні переваги та
недоліки еліптичної криптографії:
Отже, основні плюси:
1. Набагато менша довжина ключа в порівнянні до «класичної»
асиметричною криптографією.
2. Швидкість роботи еліптичних алгоритмів набагато вище, ніж у
класичних. Це пояснюється як розмірами поля, так і застосуванням
ближчою для комп'ютерів структури бінарного кінцевого поля.
3. Через маленьку довжини ключа і високій швидкості роботи, алгоритми
асиметричної
криптографії
на
еліптичних
кривих
можуть
використовуватися в смарт-картах та інших пристроях з обмеженими
обчислювальними ресурсами.
Основні мінуси еліптичної криптографії:
Всі мінуси еліптичної криптографії випливають з одного конкретного
факту:
1. Для завдання дискретного логарифмування на еліптичних кривих не
існує субекспоненціальних алгоритмів рішення. Це дозволяє зменшити
довжину ключа і збільшити продуктивність. Однак якщо такі
алгоритми
з'являться,
то
це
буде
означати
крах
еліптичної
криптографії.
2. Еліптична криптографія - це дуже складно. Не те щоб я вважала
звичайну асиметричну криптографію зовсім вже простою штукою. Але
ЕК - це величезна кількість тонкощів, які необхідно врахувати.
Починаючи з вибору еліптичної кривої і закінчуючи генерацією
ключів. При масовому переході на ЕК швидше за все обов'язково буде
17
велика кількість помилок і вразливостей, які вже відпрацьовані для
більш звичних методів.
На підставі всього вищесказаного, можна зробити висновок, що
повсюдний перехід на ЕК не є необхідністю – поки що. Зрештою, поки мирно
співіснують звичайні RSA, DSA з одного боку, і ГОСТ 34.10, ECDSA з
іншого, є нехай і помилкове, але заспокійливе відчуття альтернативи, яке ми
можемо втратити, погнавшись за найсучаснішими криптографічними
методами.
18
Список використаних джерел та літератури
1. https://csre.nist.gov/projects/post-quantum-cryptography
2. Elliptic Curves in Cryptography by I.Blake, G.Seroussi, X.Smart – 1999,
Cambridge University Press
3. https://bitnovosti.com/2014/08/01/bitcoin-nsas-quantum-computer
4. https://habrahabr.ru/post/188958
5. https://hackernoon.com/eliptic-curve-crypto-the-basics-e8eb1e934dc5
6. https://ru.wikipedia.org/wiki/Эллиптическая_криптография
7. Elliptic Curve Cryptography in Practice - Joppe W. Bos1, J. Alex
Halderman, Nadia Heninger, Jonathan Moore, Michael Naehrig, and Eric
Wustrow – 2013y.
8. http://www.computerra.ru/82902/elliptic-crypto/
9. Ж.Земор. «Курс криптографии» - 2008г.
19
Download