🔐 Калькулятор еліптичних кривих
Операції з еліптичними кривими над скінченними полями для криптографії (ECC)
📈 Визначення еліптичної кривої
Еліптична крива: y² = x³ + ax + b (mod p)
Еліптична крива (дійсні числа)
Точки на кривій (mod p)
➕ Операції над точками
Скалярне множення
Візуалізація операцій
🔑 Генерація ключів ECC
Перевірка точки на кривій
🤝 ECDH (Diffie-Hellman)
Протокол обміну ключами на основі еліптичних кривих. Дозволяє двом сторонам створити спільний секрет через незахищений канал.
👤 Аліса
👤 Боб
Схема ECDH
✍️ ECDSA (Цифровий підпис)
Підписування
Верифікація
📚 Теорія еліптичних кривих
1. Визначення еліптичної кривої
Еліптична крива — це крива, задана рівнянням Вейєрштраса:
Дискримінант: Δ = -16(4a³ + 27b²) ≠ 0
j-інваріант: j = -1728 × (4a)³ / Δ
Умова Δ ≠ 0 гарантує, що крива не має особливих точок (сингулярностей).
2. Групова структура
Точки еліптичної кривої разом з "точкою на нескінченності" O утворюють абелеву групу.
2.1 Додавання точок (P + Q)
λ = (y₂ - y₁) / (x₂ - x₁)
x₃ = λ² - x₁ - x₂
y₃ = λ(x₁ - x₃) - y₁
R = P + Q = (x₃, y₃)
2.2 Подвоєння точки (2P)
λ = (3x₁² + a) / (2y₁)
x₃ = λ² - 2x₁
y₃ = λ(x₁ - x₃) - y₁
2P = (x₃, y₃)
2.3 Інверсія точки (-P)
-P = (x, -y)
P + (-P) = O (точка на нескінченності)
3. Криві над скінченними полями
Для криптографії використовуються криві над полем F_p (p — просте число):
Всі операції виконуються по модулю p:
- Додавання: (a + b) mod p
- Віднімання: (a - b + p) mod p
- Множення: (a × b) mod p
- Ділення: a × b⁻¹ mod p (через розширений алгоритм Евкліда)
4. Скалярне множення
Ключова операція для криптографії — множення точки на скаляр:
Ефективний алгоритм (подвоєння і додавання):
1. Записати k у двійковій формі: k = (k_{n-1}...k₁k₀)₂
2. Результат = O (точка на нескінченності)
3. Для i від n-1 до 0:
- Результат = 2 × Результат
- Якщо k_i = 1: Результат = Результат + P
5. Проблема дискретного логарифма (ECDLP)
Безпека ECC базується на складності задачі:
Знайти: k
Найкращі відомі алгоритми: O(√n) операцій
(наприклад, алгоритм Полларда ρ)
6. Стандартні криві
secp256k1 (Bitcoin)
p = 2²⁵⁶ - 2³² - 977
n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
G = (79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,
483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)
P-256 (NIST)
p = 2²⁵⁶ - 2²²⁴ + 2¹⁹² + 2⁹⁶ - 1
b = 5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B
7. ECDH (Обмін ключами)
2. Боб: вибирає b, обчислює B = b × G
3. Обмін: Аліса → Боб: A, Боб → Аліса: B
4. Аліса: S = a × B = a × b × G
5. Боб: S = b × A = b × a × G
Спільний секрет S = ab × G
8. ECDSA (Цифровий підпис)
Підписування:
2. Вибрати випадкове k ∈ [1, n-1]
3. (x, y) = k × G
4. r = x mod n
5. s = k⁻¹ × (z + r × d) mod n
Підпис: (r, s)
Верифікація:
2. w = s⁻¹ mod n
3. u₁ = z × w mod n
4. u₂ = r × w mod n
5. (x, y) = u₁ × G + u₂ × Q
6. Підпис валідний, якщо r ≡ x (mod n)
9. Рівні безпеки
| Крива | Біти | Рівень безпеки | RSA еквівалент |
|---|---|---|---|
| P-192 | 192 | 96 біт | ~1536 біт |
| P-256, secp256k1 | 256 | 128 біт | ~3072 біт |
| P-384 | 384 | 192 біт | ~7680 біт |
| P-521 | 521 | 256 біт | ~15360 біт |
10. Застосування
- Bitcoin, Ethereum: secp256k1 для підписів транзакцій
- TLS/SSL: ECDHE для обміну ключами
- SSH: Ed25519, ECDSA
- Смарт-карти: Компактні криптографічні операції
- IoT: Легкі криптографічні протоколи
- Цифрові сертифікати: X.509 з ECC
Практичне значення та контекст
Де застосовується
Інструменти даного типу широко застосовуються у навчальній та дослідницькій діяльності. Вони дозволяють швидко отримувати точні числові результати, перевіряти аналітичні розрахунки та моделювати різноманітні сценарії. Використання онлайн-калькуляторів значно прискорює роботу науковців, інженерів, студентів та спеціалістів-практиків, які щодня стикаються з відповідними обчислювальними задачами.
Часті запитання (FAQ)
📁 Категорія: IT