Kryptografia Krzywych Eliptycznych (ECC)

System kryptografii klucza publicznego, którego bezpieczeństwo opiera się na matematycznej trudności Problemu Dyskretnego Logarytmu na Krzywej Eliptycznej (ECDLP), zapewniając bezpieczeństwo równoważne RSA przy znacznie mniejszych rozmiarach kluczy.

Migracja postkvantowa: NIST znormalizował ML-KEM (Kyber) i ML-DSA (Dilithium) jako następniki ECDH i ECDSA. TLS 1.3 wdraża hybrydową wymianę kluczy (X25519+Kyber).

        graph LR
  Center["Kryptografia Krzywych Eliptycznych (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;

      

🧒 Wyjaśnij jak 5-latkowi

Wyobraź sobie magiczne mnożenie, które jest łatwe w jedną stronę, ale niemożliwe do odwrócenia. Mnożysz specjalny punkt na krzywej przez tajną liczbę (twój klucz prywatny) i otrzymujesz publiczny punkt (twój klucz publiczny). Ale jeśli ktoś zna tylko punkt publiczny i punkt początkowy, odtworzenie twojej tajnej liczby zajęłoby dłużej niż wiek Wszechświata — nawet z superkomputerem. Ta matematyka jednostronna sprawia, że ECC jest tak potężna.

🤓 Expert Deep Dive

Struktura grupy: y² ≡ x³ + ax + b (mod p). Parametry secp256k1: a=0, b=7, p = 2²⁵⁶ - 2³² - 977. Ekwiwalenty rozmiarów kluczy (NIST SP 800-57): 256-bit ECC = 3072-bit RSA (128-bitowy poziom bezpieczeństwa). Curve25519: zaprojektowana przez Daniela Bernsteina dla implementacji o stałym czasie, odporna na ataki czasowe. X25519 jest wymagana w TLS 1.3. Backdoor Dual_EC_DRBG (2013): dokumenty Snowdena ujawniły domniemany backdoor NSA w generatorze losowym NIST opartym na ECC.

❓ Częste pytania

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.

🔗 Powiązane terminy

📚 Źródła