PQP+Qy² = x³ + ax + b

Elliptisk-kurve kryptografi

11 min læstKryptografi

ECC er familien af ​​offentlig nøglekryptering, der erstattede RSA i de fleste moderne protokoller. En 256-bit ECC-nøgle er lige så stærk som en 3072-bit RSA-nøgle, kører hurtigere og bruger dramatisk mindre båndbredde. WireGuard, Signal, TLS 1.3, alle moderne SSH-nøgler - alle bruger elliptiske kurver under hætten.

Hele artiklens krop findes på engelsk nedenfor.

Elliptic-curve cryptography (ECC) er en klasse af public-key algoritmer baseret på algebraen af ​​punkter på en elliptisk kurve over et begrænset felt. Matematikken er ukendt i starten, men resultatet er begrebsmæssigt identisk med RSA: en offentlig nøgle, som alle kan bruge, en privat nøgle, som kun ejeren har, og evnen til at beregne ting i én retning, men ikke den omvendte.

Den grundlæggende form

En elliptisk kurve er sættet af punkter (x, y y x7 sat punkter, som f.eks. + økse + b. Over et begrænset felt (f.eks. heltal mod et stort primtal) har kurven et diskret sæt punkter. Du kan definere en speciel "additions"-operation på disse punkter, der adlyder velkendte algebraiske love. At multiplicere et punkt P med et heltal k betyder at lægge P til sig selv k gange, skrevet kP.

Det svære problem: givet et punkt P og produktet kP, find k. Dette kaldes elliptic curve diskrete logaritmeproblem (ECDLP), og der er ingen kendt effektiv algoritme til at løse det.

Hvorfor kurver giver mindre nøgler

Det bedst kendte klassiske angreb mod ECC er generisk roden af ​​tiden, og den kører i kvadratet i rækkefølgen af ​​kurven. For RSA er det bedste angreb (general number field sieve) sub-eksponentiel, men stadig meget hurtigere end RSA's brute-force. Resultatet: en fordobling af RSA's nøglestørrelse bidrager beskedent til sikkerheden; fordobling af ECC's nøglestørrelse fordobler sikkerheden i bits.

XPLZ44 bits
SikkerhedsniveauRSA nøglestørrelseECC nøglestørrelse
128 bit7X309 bit bits256 bits
192 bits7680 bits384 bit
15360 bits512 bits

Båndbreddebesparelserne alene på TLS-håndtryk, multipliceret over internettet, er betydelige.

De navngivne kurver encounter

  • P-256 (NIST P-256, secp256r1) — den mest udbredte kurve. Standardiseret i NIST FIPS 186 og brugt overalt fra TLS til Bitcoin-signering.
  • P-384, P-521 — større NIST-kurver for højere sikkerhedsniveauer.
  • Curve25519XPLZ0's — Daniel J67X0's — Daniel J67X's design fra Bern. for ydeevne og ren konstruktion. Brugt i TLS 1.3 (som X25519), SSH, WireGuard, Signal, Tor.
  • Curve448 — Mike Hamburgs design, parret med Curve25519 for det højeste sikkerhedsniveau i TLS 1.3.
  • secp256k1 — kurven, der bruges af Bitcoin- og Ethereum-signaturer. Forskellig fra secp256r1 på subtile måder.
  • Ed25519 — et signaturskema defineret på Curve25519, meget brugt i moderne protokoller.

De to hovedoperationer: ECDH ECDSA/EdDSA

ECDH (Elliptic Curve Diffie-Hellman): Alice har privat nøgle a og offentlig nøgle aG (hvor G er et fast generatorpunkt). Bob har b og bG. De udveksler offentlige nøgler. Alice beregner a·(bG) = abG; Bob beregner b·(aG) = abG. De deler nu det hemmelige punkt abG. En angriber, der ser aG og bG, kan ikke beregne abG uden at løse ECDLP. Dette er hjertet i TLS nøgleudveksling.

ECDSA og EdDSA er signaturskemaer. ECDSA er den ældre, mere implementerede standard med forskellige implementeringsfaldgruber (den berømte: signering med en genbrugt nonce lækker den private nøgle - lidt af mange mennesker, inklusive Sonys PS3-signeringsnøgle). EdDSA (Ed25519 i særdeleshed) blev designet til at undgå disse fælder med deterministiske nonces og en renere konstruktion.

Performance

For 128-bit sikkerhed:

  • RSA betjening: ~307 m hardware
  • Ed25519 signering: ~0,05 ms pr. operation
  • RSA-3072 verifikation: ~0,5 ms
  • Ed25519 verifikation: ~0,115 msXXPLZ1015 msXXPLZ1072 100× fremskyndelse ved signering er grunden til, at moderne protokoller bruger ECC, selv når båndbredden ikke er flaskehalsen. Servere, der håndterer tusindvis af TLS-håndtryk pr. sekund, ser forskellen direkte i CPU-belastning.

    Hvor ECC ikke er nok

    Quantum-computere, der kører Shor's algoritme, bryder ECC, ligesom de bryder RSA, i polynomisk tid. Postkvantekryptografi erstatter både med gitterbaserede, hash-baserede eller kodebaserede skemaer. NISTs post-kvantestandardisering (Kyber for KEM, Dilithium for signaturer) er nu i implementering sammen med ECC. Moderne TLS-klienter og VPN-protokoller begynder at sende hybride håndtryk, der kombinerer ECDH med en post-kvante KEM, så forbindelsen er sikker, hvis either forbliver ubrudt.

Ofte stillede spørgsmål

Er ECC mere sikker end RSA?
Per bit nøgle, ja - meget mere. ECC-256 ≈ RSA-3072 i klassisk sikkerhed. Men "mere sikker" afhænger af trusselsmodellen. Mod en kvantecomputer fejler begge dele; den relative rækkefølge er uændret. Mod nuværende modstandere er begge dele fine, når de implementeres korrekt; ECC's fordel er ydeevne og nøglestørrelse, ikke rå sikkerhed.
Hvorfor bruger Bitcoin secp256k1 i stedet for secp256r1?
Da Satoshi Nakamoto designede Bitcoin i 2008, var secp256k1 (også kaldet "Koblitz-kurven") mindre standard, men havde strukturelle egenskaber, der gjorde nogle implementeringer hurtigere. Der er ingen almindeligt antaget kryptografisk grund til at foretrække det frem for secp256r1, og begge dele ville have fungeret.
Hvad er forskellen mellem Ed25519 og ECDSA?
Begge er signaturskemaer på elliptiske kurver. ECDSA er ældre, standardiseret i mange specifikationer og har historiske implementeringsfaldgruber (ikke genbrug). Ed25519 er designet af Bernstein for at være mere sikker: deterministiske nonces, renere konstruktion, hurtigere, mindre taster. Nye designs foretrækker Ed25519; legacy interop tvinger ofte ECDSA.
Er NIST-kurver bagdøre?
Der har været langvarige spekulationer om konstanterne i NIST P-256, fordi deres udledning ikke er fuldt ud forklaret. Ingen bagdør er blevet fundet i 20+ års analyser. Nogle kryptografer foretrækker Curve25519, fordi dens konstanter er fuldt ud afledt af åbent valgte parametre. Den almindelige opfattelse: P-256 er sikker i praksis.
Vil ECC være forældet om 10 år?
Delvist. Post-kvante ordninger vil blive implementeret sammen med ECC i hybrid tilstand på mellemlang sigt - begge algoritmer i håndtrykket, sikre, hvis en af ​​dem er ubrudt. Pure-ECC vil forblive almindelig, fordi kvantehardware, der er i stand til at bryde 256-bit ECC, stadig er år ude, men tendensen er klart i retning af hybrid som standard.
Elliptisk kurvekryptering forklaret: Hvorfor mindre nøgler giver stærkere sikkerhed