0Pricing
Cryptology Academy · Lekcja

Standardowe krzywe: P-256, Curve25519 i secp256k1

Porównać krzywe NIST, Curve25519 Bernsteina oraz secp256k1 używaną przez Bitcoin

Standardowe krzywe: P-256, Curve25519 i secp256k1 to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Różne krzywe eliptyczne stosuje się do różnych celów. W tej lekcji porównamy trzy najważniejsze: NIST P-256, Curve25519 Bernsteina i secp256k1 używaną przez Bitcoin.

NIST P-256 (secp256r1)

Krzywa NIST P-256 została ustandaryzowana w 1999 roku. Wykorzystuje krzywą w postaci Weierstrassa z a=-3 (szybkie podwajanie punktu). Zapewnia 128-bitowe bezpieczeństwo. Jest wymagana przez rząd USA (FIPS). Dominuje w TLS, JWT i podpisywaniu kodu.

Kontrowersje wokół P-256

Parametry krzywej P-256 wybrano z użyciem niewyjaśnionej wartości ziarna. Proces ten przypominał Dual_EC_DRBG (który zawierał tylną furtkę NSA). Nie udowodniono istnienia tylnej furtki, ale wiele osób nie ufa krzywym NIST.

Curve25519 (X25519 / Ed25519)

Bernstein zaprojektował Curve25519 w 2005 roku, stosując całkowicie przejrzysty i weryfikowalny dobór parametrów. Postać Montgomery’ego: y²=x³+486662x²+x mod (2^255-19). Każdy parametr uzasadnia wydajność, a nie arbitralny wybór.

Właściwości Curve25519

128-bitowe bezpieczeństwo. Kofaktor 8 (uwzględniany przez implementację X25519). Naturalnie stałoczasowe działanie na większości platform. Brak problematycznych punktów brzegowych. Przyjęta przez IETF w RFC 7748 i RFC 8032. WireGuard, Signal i SSH używają jej wyłącznie.

Ed25519: postać Edwardsa

Ed25519 to algorytm podpisu wykorzystujący skręconą postać Edwardsa krzywej Curve25519. Deterministyczny (nie wymaga losowego nonce). Stałoczasowy z założenia. Podpisy mają 64 bajty, a klucze 32 bajty. Zapewnia najszybszą weryfikację spośród wszystkich schematów podpisu.

secp256k1: krzywa Bitcoina

secp256k1 to krzywa Koblitz: y²=x³+7 (a=0, b=7) nad 256-bitowym ciałem pierwszym. Satoshi Nakamoto wybrał ją dla Bitcoina w 2008 roku. Jest również używana przez Ethereum. Krzywe Koblitz mają pewne zalety wydajnościowe w porównaniu z krzywymi NIST.

secp256k1 a P-256

Obie są krzywymi 256-bitowymi i zapewniają około 128-bitowe bezpieczeństwo. secp256k1: a=0 umożliwia wydajny endomorfizm przy szybkim mnożeniu skalarnym. P-256: a=-3 umożliwia szybkie podwajanie. secp256k1 jest szybsza przy podpisywaniu, a P-256 przy weryfikacji.

Curve448

Curve448 (X448) zapewnia 224-bitowe bezpieczeństwo — porównywalne z RSA-8192. Wykorzystuje liczbę pierwszą Goldilocks 2^448-2^224-1. Jest przeznaczona do zastosowań wymagających długoterminowego bezpieczeństwa wyższego niż zapewniane przez P-256. Signal używa jej jako rozwiązania zapasowego obok X25519.

Wybór właściwej krzywej

TLS/zastosowania ogólne: P-256 (FIPS) lub X25519 (wydajność i zaufanie). SSH: Ed25519 (większość nowoczesnych klientów). Bitcoin/Ethereum: secp256k1 (brak wyboru). Wysokie bezpieczeństwo (ponad 20 lat): P-384 lub X448.

Weryfikacja parametrów krzywej

Dla P-256 dokument NIST FIPS 186-5 zawiera wszystkie parametry wraz z ziarnem użytym do ich wygenerowania. Dla Curve25519 artykuł Bernsteina wyjaśnia wybór każdej stałej. Przejrzystość doboru parametrów jest kluczowym kryterium bezpieczeństwa.

Szybkie sprawdzenie

Która krzywa jest używana przez Bitcoin i została wybrana przez Satoshiego Nakamoto?

Podsumowanie

Porównaliśmy standardowe krzywe. Następnie przeanalizujemy kompromisy między ECC a RSA pod względem poziomu bezpieczeństwa, wydajności i rozmiaru kluczy.

Często zadawane pytania

Czy lekcja „Standardowe krzywe: P-256, Curve25519 i secp256k1” jest bezpłatna?

Tak — pełny tekst „Standardowe krzywe: P-256, Curve25519 i secp256k1” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Standardowe krzywe: P-256, Curve25519 i secp256k1”?

Porównać krzywe NIST, Curve25519 Bernsteina oraz secp256k1 używaną przez Bitcoin Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Standardowe krzywe: P-256, Curve25519 i secp256k1”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Prawo grupy krzywej eliptycznej
  2. Mnożenie skalarne i ECDLP
  3. Standardowe krzywe: P-256, Curve25519 i secp256k1
  4. ECC a RSA: kompromisy między bezpieczeństwem a wydajnością
← Powrót do Cryptology Academy