Криптографія на основі еліптичних кривих (ECC)
Система криптографії з відкритим ключем, безпека якої ґрунтується на математичній складності задачі дискретного логарифму на еліптичних кривих (ECDLP), забезпечуючи еквівалентну безпеку RSA при значно менших розмірах ключів.
Постквантова міграція: NIST стандартизував ML-KEM (Kyber) та ML-DSA (Dilithium) як замінники ECDH та ECDSA. TLS 1.3 впроваджує гібридний обмін ключами (X25519+Kyber) для захисту від класичних і квантових атак.
graph LR
Center["Криптографія на основі еліптичних кривих (ECC)"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Pre_asymmetric_encryption["asymmetric-encryption"]:::pre --> Center
click Pre_asymmetric_encryption "/terms/asymmetric-encryption"
Rel_private_key["private-key"]:::related -.-> Center
click Rel_private_key "/terms/private-key"
Rel_public_key["public-key"]:::related -.-> Center
click Rel_public_key "/terms/public-key"
Rel_public_key_cryptography["public-key-cryptography"]:::related -.-> Center
click Rel_public_key_cryptography "/terms/public-key-cryptography"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Уявіть магічне множення, яке легко зробити в один бік, але неможливо повернути назад. Ви множите спеціальну точку на кривій на секретне число (приватний ключ) і отримуєте публічну точку (відкритий ключ) дуже швидко. Але якщо хтось знає лише публічну точку і початкову точку, відновити ваше секретне число зайняло б більше часу, ніж вік Всесвіту — навіть із суперкомп'ютером. Саме ця одностороння математика робить ECC настільки потужним.
🤓 Expert Deep Dive
Структура групи еліптичної кривої: y² ≡ x³ + ax + b (mod p). Параметри secp256k1: a=0, b=7, p = 2²⁵⁶ - 2³² - 977. Таблиця еквівалентності ключів (NIST SP 800-57): 256-бітний ECC = 3072-бітний RSA (128-бітний рівень безпеки). Переваги Curve25519: спроектована Деніелом Берштайном для реалізації з постійним часом (без гілкування на секретних даних), стійка до тайминг-атак. X25519 є обов'язковою групою обміну ключами в TLS 1.3. Скандал з Dual_EC_DRBG (2013): документи Сноудена виявили, що NIST RNG з константами ECC, ймовірно, містив бекдор АНБ. NIST відкликала стандарт.
❓ Часті питання
Why is ECC more efficient than RSA?
ECC achieves the same security level as RSA with much smaller key sizes (256-bit ECC ≈ 3072-bit RSA). Smaller keys mean faster signature generation/verification, less bandwidth for certificate transmission, and lower computational overhead — critical for constrained devices like hardware wallets and IoT sensors.
What is the difference between ECC and ECDSA?
ECC is the mathematical framework (the geometry of elliptic curves over finite fields). ECDSA is a specific digital signature algorithm that uses ECC mathematics. Similarly, ECDH is a key agreement protocol built on ECC. ECC is the foundation; ECDSA and ECDH are applications built on top of it.
Why do Bitcoin and Ethereum use secp256k1 instead of the more common P-256 (NIST) curve?
Satoshi Nakamoto chose secp256k1 — a less common curve at the time — partly because P-256 was designed with NSA-selected constants of unclear provenance. secp256k1 parameters are derived transparently from the simple equation y² = x³ + 7, with no arbitrary constants that could hide a backdoor.