Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Wizualizator krzywych eliptycznych

Zobaczysz wykres punktów krzywej y² = x³ + ax + b (mod p) i policzysz sumę dwóch punktów.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Jak używać: ustaw a, b i liczbę pierwszą p, kliknij Rysuj i wybieraj punkty na wykresie

Wizualizator krzywych eliptycznych pokazuje zbiór punktów spełniających równanie y² = x³ + ax + b (mod p), czyli w arytmetyce reszt z dzielenia przez p. Wszystko, co potrzebne do pracy, masz na jednym ekranie: trzy pola i przycisk „Rysuj”.

  1. Ustaw współczynniki a i b. Domyślnie są to 2 i 3.
  2. Wpisz liczbę pierwszą p z zakresu od 3 do 199. Domyślnie 97.
  3. Kliknij „Rysuj”. Po wczytaniu strony narzędzie wykonuje to samo polecenie automatycznie, więc od razu widzisz wykres dla wartości domyślnych.
  4. Klikaj punkty na wykresie. Pierwszy klik zaznacza punkt P, drugi punkt Q.
  5. Odczytaj wynik z tabeli: pojawi się suma P + Q, a gdy oba kliknięcia dotyczą tego samego punktu — wynik 2P.

Każde kliknięcie punktu go zaznacza. Po dwóch kliknięciach kolejny klik zaczyna wybór od nowa, więc możesz od razu sprawdzić inną parę punktów. Obliczenia wykonują się w Twojej przeglądarce i nigdzie nie są wysyłane.

Jak czytać wzór y² = x³ + ax + b (mod p) i tabelę wyników

Zapis „(mod p)” znaczy, że liczymy reszty z dzielenia przez p. Punkt (x, y) należy do krzywej, gdy reszta z dzielenia y² przez p jest równa reszcie z dzielenia x³ + ax + b przez p. Współrzędne x i y to liczby od 0 do p − 1.

Kwadrat liczby y i kwadrat liczby p − y dają tę samą resztę, dlatego punkty układają się symetrycznie względem poziomej osi. Dla każdego x sprawdzasz więc, czy prawa strona równania jest kwadratem jakiejś reszty modulo p. Jeśli nie jest, przy tym x nie ma żadnego punktu.

Tabela wyników pokazuje dwa wiersze: „Krzywa: y² = x³ + ax + b (mod p)” z aktualnymi wartościami a, b i p oraz „Liczba punktów (z punktem w nieskończoności)”. Ta liczba obejmuje również punkt O, czyli jest o jeden większa niż liczba kropek widocznych na wykresie.

Dla wartości domyślnych: a = 2, b = 3 i p = 97. Krzywa ma postać y² = x³ + 2x + 3 (mod 97), a liczba punktów wynosi 100 razem z punktem w nieskończoności.

Dodawanie punktów na krzywej: cięciwa, podwojenie 2P i punkt w nieskończoności O

Na punktach krzywej określa się dodawanie — nie jest to zwykłe dodawanie współrzędnych.

Geometrycznie dla dwóch różnych punktów P i Q prowadzisz prostą przez nie. Prosta przecina krzywą w trzecim punkcie, a wynik P + Q to odbicie tego punktu względem poziomej osi symetrii. Gdy P = Q, zamiast cięciwy bierzesz styczną w punkcie P; taki wynik oznaczamy 2P.

Algebraicznie, wszystko modulo p. Dla P = (x₁, y₁) i Q = (x₂, y₂), gdzie P ≠ Q, nachylenie λ = (y₂ − y₁) ÷ (x₂ − x₁). Dla podwojenia λ = (3x₁² + a) ÷ (2y₁). Potem x₃ = λ² − x₁ − x₂ (mod p) i y₃ = λ·(x₁ − x₃) − y₁ (mod p), a wynikiem jest punkt (x₃, y₃).

Punkt w nieskończoności O pełni rolę zera: O + Q = Q, P + O = P. Suma punktów o tej samej współrzędnej x, dla których y₁ + y₂ ≡ 0 (mod p), czyli punktów symetrycznych względem poziomej osi, daje O — w tabeli zobaczysz wtedy punkt w nieskończoności zamiast pary liczb.

Przykład dla wartości domyślnych (a = 2, b = 3, p = 97). Na krzywej y² = x³ + 2x + 3 (mod 97) leżą P = (0, 10) i Q = (3, 6). Nachylenie λ = (−4) · 65 ≡ 31 (mod 97), bo 3 · 65 ≡ 1. Wtedy x₃ = 31² − 0 − 3 ≡ 85 i y₃ = 31 · (0 − 85) − 10 ≡ 71, czyli P + Q = (85, 71). Dla tego samego P podwojenie daje 2P = (65, 32).

Dlaczego p musi być pierwsze i krzywa nieosobliwa (4a³ + 27b² ≠ 0 mod p)

Wzory na dodawanie punktów wymagają dzielenia: przez x₂ − x₁ albo przez 2y₁. Dzielenie modulo p to mnożenie przez odwrotność, czyli liczbę, która pomnożona przez dzielnik daje resztę 1. Gdy p jest liczbą pierwszą, każda niezerowa reszta ma odwrotność, więc dzielenie zawsze ma sens. Dla p złożonego część liczb odwrotności nie ma i rachunek się nie domyka.

Warunek 4a³ + 27b² ≢ 0 (mod p) mówi, że krzywa nie jest osobliwa. Gdy to wyrażenie daje resztę 0, równanie opisuje krzywą z ostrzem albo z przecięciem samej siebie. W takim punkcie styczna nie jest jednoznaczna, wzór na 2P przestaje działać, a zbiór punktów nie tworzy poprawnej grupy.

Zakres p od 3 do 199 wynika ze sposobu liczenia punktów: sprawdzane są wszystkie pary x, y od 0 do p − 1. Dzięki temu obraz krzywej jest kompletny i mieści się na jednym wykresie.

Ograniczenia i czego narzędzie nie liczy

Narzędzie jest demonstratorem arytmetyki na małych krzywych. Ogranicza się do liczb pierwszych p nie większych niż 199, bo tylko wtedy pokazuje wszystkie punkty na jednym wykresie i pozwala klikać je pojedynczo. Krzywe kryptograficzne mają p o długości setek cyfr — takich zbiorów nie da się narysować ani przejrzeć wzrokiem.

Czego tu nie znajdziesz:

  • gładkiej linii krzywej — widzisz zbiór punktów, a nie ciągły przebieg równania;
  • rzędu grupy, rzędu pojedynczego punktu ani rzędu podgrupy; tabela podaje tylko łączną liczbę punktów razem z O;
  • generatora grupy i sprawdzenia, czy dany punkt nim jest;
  • mnożenia skalarnego, czyli wielokrotności typu kP — dodajesz dwa punkty naraz;
  • zastosowań kryptograficznych: uzgadniania klucza, podpisu cyfrowego, szyfrowania;
  • oceny, czy krzywa nadaje się do konkretnego zastosowania — to wymaga wiedzy o strukturze grupy.

Trzeci klik na wykresie zaczyna nowy wybór, więc nie zsumujesz trzech punktów w jednym kroku. Chcesz prześledzić dłuższy rachunek? Zapisz wynik pośredni i użyj go jako kolejnego punktu.

Najczęstsze pytania

Czym jest krzywa eliptyczna?

To zbiór punktów (x, y) spełniających równanie y² = x³ + ax + b, powiększony o punkt w nieskończoności. Na takim zbiorze można określić dodawanie punktów, dlatego mówi się o grupie punktów krzywej. W tym narzędziu wszystkie działania liczone są modulo p, czyli na resztach z dzielenia przez liczbę pierwszą p.

Jak dodać dwa punkty na krzywej eliptycznej?

Prowadzisz prostą przez oba punkty, znajdujesz trzeci punkt przecięcia z krzywą i odbijasz go względem poziomej osi symetrii. Rachunkowo sprowadza się to do wzorów na nachylenie, x₃ i y₃, liczonych modulo p. Narzędzie wykonuje ten rachunek, gdy klikniesz dwa punkty na wykresie.

Co to jest punkt w nieskończoności O?

To element neutralny dodawania: O + Q = Q oraz P + O = P. Pojawia się jako wynik dodania dwóch punktów symetrycznych względem poziomej osi, czyli takich, dla których y₁ + y₂ ≡ 0 (mod p). W tabeli wyników zobaczysz go zamiast pary liczb.

Dlaczego p musi być liczbą pierwszą?

Bo we wzorach dzielimy przez różnice współrzędnych. Modulo liczba pierwsza każda niezerowa reszta ma odwrotność, więc dzielenie jest wykonalne. Przy p złożonym część liczb odwrotności nie ma i dodawanie punktów nie jest poprawnie określone.

Ile punktów ma krzywa y² = x³ + 2x + 3 (mod 97)?

Dokładnie 100 punktów razem z punktem w nieskończoności. To wynik dla domyślnych ustawień narzędzia, czyli a = 2, b = 3 i p = 97. Na wykresie widzisz pozostałe 99 punktów.

Do czego używa się krzywych eliptycznych?

Przede wszystkim w kryptografii klucza publicznego, między innymi do uzgadniania klucza i podpisów cyfrowych. W matematyce pojawiają się też przy faktoryzacji i testach pierwszości. Ten wizualizator pokazuje wyłącznie arytmetykę małych krzywych i nie wykonuje żadnych operacji kryptograficznych.

Zobacz też — powiązane narzędzia

Narzędzie liczy wyłącznie lokalnie w przeglądarce na bardzo małych ciałach pierwszych i służy celom dydaktycznym — nie nadaje się do weryfikacji parametrów kryptograficznych ani nie zawiera żadnych opłat (waluta $ nie jest używana).

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!