PQP+Qy² = x³ + ax + b

Kryptografie s eliptickými křivkami

11 min přečtenoKryptografie

ECC je rodina kryptografie s veřejným klíčem, která nahradila RSA ve většině moderních protokolů. 256bitový klíč ECC je stejně silný jako 3072bitový klíč RSA, běží rychleji a využívá výrazně menší šířku pásma. WireGuard, Signal, TLS 1.3, každý moderní klíč SSH – všechny používají pod kapotou eliptické křivky.

Celé tělo článku je uvedeno níže v angličtině.

Kryptografie s eliptickými křivkami (ECC) je třída algoritmů veřejného klíče založených na algebře bodů na eliptické křivce nad konečným polem. Matematika je zpočátku neznámá, ale výsledek je koncepčně identický s RSA: veřejný klíč, který může používat kdokoli, soukromý klíč, který má pouze vlastník, a schopnost počítat věci jedním směrem, ale ne obráceně. b. Přes konečné pole (např. celá čísla mod a velké prvočíslo) má křivka diskrétní sadu bodů. Na těchto bodech můžete definovat speciální operaci "sčítání", která se řídí známými algebraickými zákony. Vynásobení bodu P celým číslem k znamená přičtení P k sobě samému k krát, zapsaným kP.

Těžký problém: je-li daný bod P a součin kP, najděte k. Toto se nazývá problém diskrétního logaritmu eliptické křivky (ECDLP) a není znám žádný účinný algoritmus, který by jej vyřešil.

Proč křivky dávají menší klíče

Nejznámější klasický útok proti ECC je obecný – probíhá v časovém pořadí úměrném křivce. Pro RSA je nejlepší útok (obecné číslo pole síto) sub-exponenciální, ale stále mnohem rychlejší než hrubá síla RSA. Výsledek: zdvojnásobení velikosti klíče RSA mírně zvyšuje bezpečnost; zdvojnásobení velikosti klíče ECC zdvojnásobuje zabezpečení v bitech.

XPLZ27PLZXXPLZX43XX5PLZ44 bits
Úroveň zabezpečeníRSA velikost klíčeECC velikost klíče
12298 bitů bity256 bitů
192 bitů7680 bitů384 bitů
15360 bits512 bitů

Úspora šířky pásma pouze díky handshake TLS, násobená napříč internetem, je významná.

Pojmenované křivky meet

  • P-256 (NIST P-256, secp256r1) — nejrozšířenější křivka. Standardizováno v NIST FIPS 186 a používáno všude od TLS po podepisování bitcoinů.
  • P-384, P-521 — větší křivky NIST pro vyšší úrovně zabezpečení.
  • Curve25519X05stein's vybraný výkon od Daniela 2 pro výkon JPLZ67. čistá konstrukce. Používá se v TLS 1.3 (jako X25519), SSH, WireGuard, Signal, Tor.
  • Curve448 – design Mike Hamburg, spárovaný s Curve25519 pro nejvyšší úroveň zabezpečení v TLS 1.3.
  • secp256k1 — křivka používaná podpisy bitcoinů a etherea. Od secp256r1 se liší v jemných ohledech.
  • Ed25519 — schéma podpisu definované na Curve25519, široce používané v moderních protokolech.

Dvě hlavní operace: ECDSA/EdDSDHZXX (Eliptická křivka Diffie-Hellman): Alice má soukromý klíč a a veřejný klíč aG (kde G je pevný bod generátoru). Bob má b a bG. Vyměňují si veřejné klíče. Alice vypočítá a·(bG) = abG; Bob vypočítá b·(aG) = abG. Nyní sdílejí tajný bod abG. Útočník, který vidí aG a bG, nemůže vypočítat abG bez vyřešení ECDLP. Toto je srdce výměny klíčů TLS.

ECDSA a EdDSA jsou schémata podpisů. ECDSA je starší, více nasazený standard s různými implementačními úskalími (slavný: při podepisování pomocí znovu použitého nonce unikne soukromý klíč – hodně lidí včetně podpisového klíče PS3 od Sony). EdDSA (zejména Ed25519) byl navržen tak, aby se těmto pastím vyhnul deterministickými nonces a čistší konstrukcí.

Výkon

Pro 128bitové zabezpečení:

  • RSA-3072 s moderním podpisem: ~5m podepisování hardwaru
  • Ed25519: ~0,05 ms na operaci
  • RSA-3072 ověření: ~0,5 ms
  • Ed25519 ověření: ~0,15 ms1210XXPL 100× zrychlení při podepisování je důvodem, proč moderní protokoly používají ECC, i když šířka pásma není překážkou. Servery zpracovávající tisíce TLS handshake za sekundu vidí rozdíl přímo v zátěži CPU.

    Tam, kde ECC nestačí

    Kvantové počítače se Shorovým algoritmem přeruší ECC stejně jako RSA, v polynomiálním čase. Postkvantová kryptografie nahrazuje obojí schématy založenými na mřížce, hashování nebo kódování. Postkvantová standardizace NIST (Kyber pro KEM, Dilithium pro podpisy) je nyní nasazena spolu s ECC. Moderní klienti TLS a protokoly VPN začínají dodávat hybridní handshake, které kombinují ECDH s post-kvantovým KEM, takže spojení je bezpečné, pokud either zůstane nepřerušené.

Často kladené otázky

Je ECC bezpečnější než RSA?
Za bit klíče ano – mnohem víc. ECC-256 ≈ RSA-3072 v klasickém zabezpečení. Ale "bezpečnější" závisí na modelu hrozby. Proti kvantovému počítači oba selhávají; relativní řazení se nemění. Proti současným protivníkům je obojí v pořádku, když je správně implementováno; Výhodou ECC je výkon a velikost klíče, nikoli hrubé zabezpečení.
Proč bitcoin používá secp256k1 místo secp256r1?
Když Satoshi Nakamoto v roce 2008 navrhl Bitcoin, byl secp256k1 (také nazývaný „Koblitzova křivka“) méně standardní, ale měl strukturální vlastnosti, díky kterým byly některé implementace rychlejší. Neexistuje žádný široce uznávaný kryptografický důvod, proč jej preferovat před secp256r1, a obojí by fungovalo.
Jaký je rozdíl mezi Ed25519 a ECDSA?
Oba jsou podpisová schémata na eliptických křivkách. ECDSA je starší, standardizovaný v mnoha specifikacích a má historická implementační úskalí (nonce reuse). Ed25519 byl navržen Bernsteinem, aby byl bezpečnější: deterministické nonce, čistší konstrukce, rychlejší, menší klávesy. Nové designy preferují Ed25519; legacy interop často nutí ECDSA.
Jsou křivky NIST backdoored?
O konstantách v NIST P-256 se dlouho spekulovalo, protože jejich odvození není úplně vysvětleno. Za více než 20 let analýzy nebyla nalezena žádná zadní vrátka. Někteří kryptografové preferují Curve25519, protože její konstanty jsou plně odvozeny z otevřeně zvolených parametrů. Pohled hlavního proudu: P-256 je v praxi bezpečný.
Bude ECC za 10 let zastaralé?
Částečně. Post-kvantová schémata budou nasazena spolu s ECC v hybridním režimu ve střednědobém horizontu – oba algoritmy v handshake, bezpečné, pokud je jeden z nich neporušený. Pure-ECC zůstane běžné, protože kvantový hardware schopný prolomit 256bitové ECC je ještě roky pryč, ale trend je ve výchozím nastavení jasně hybridní.
Vysvětlení kryptografie s eliptickými křivkami: Proč menší klíče poskytují silnější zabezpečení