236 6, Krzywe eliptyczne
dzielnikiem pierwszym liczby //. Założymy, że p > 3. Dla dowolnej liczby całkowitej m i dowolnych dwóch liczb wymiernych v, i x2> których mianowniki są względnie pierwsze z ni, piszemy x{ ~ x2 (mod ni), jeśli różnica xi — x2, zapisana w postaci ułamka nicskracalncgo, ma licznik podzielny przez m. Dla dowolnej liczby wymiernej a,, której mianownik jest względnie pierwszy z m, istnieje dokładnie jedna liczba całkowita x2 (nazywana „resztą z dzielenia"), zawarta w przedziale od 0 do m — 1, taka że x{ = x2 (mod m). Czasami tę resztę z. dzielenia będziemy oznaczać symbolem *| mod m.
Przypuśćmy, że mamy dane równanie postaci y2 = x3 + ax + b, gdzie a, /Je Z. oraz. mamy punkt P = (jr, y), którego współrzędne spełniają to równanie. W praktyce krzywa E i punkt P na niej będą generowane w pewien „losowy” sposób, na przykład wybierzemy trzy losowe liczby a, x i y, a następnie obliczymy b -y2 - x3 — ax. Założymy, że wielomian trzeciego stopnia ma różne pierwiastki, tzn. 4a3 + 27b2 0; prawie na pewno tak będzie, jeśli współczynniki zostaną wybrane w opisany losowy sposób. Dla uproszczenia założymy też dalej, że liczba 4a3 + 27 62 nie ma wspólnych dzielników z n\ inaczej mówiąc, wielomian x2 + ax + b nie ma pierwiastków wielokrotnych modulo p dla dowolnego dzielnika pierwszego p liczby n. W praktyce możemy to sprawdzić po wybraniu a i b, obliczając NWD(4a3 + 27ó2, n). Jeśli ten największy wspólny dzielnik jest większy od jedności, to albo n|4a3 + 27ó2 (i wtedy musimy wybrać inne a i b), albo otrzymamy nietrywialny dzielnik liczby n (co było naszym celem). Możemy zatem założyć, że NWD(4a3 + 27ó2, n) = l.
Przypuśćmy teraz, że chcemy znaleźć wielokrotność kP za pomocą metody iterowanego podwajania, opisanej w podrozdziale 6.2. Można to zrobić w 0(logk) krokach, przy czym każdy taki krok polega na podwojeniu punktu lub dodaniu dwóch różnych punktów. Można to zrobić na wiele sposobów. Można na przykład przedstawić liczbę k w postaci jej rozwinięcia dwójkowego a0 + Aj • 2 + ... + flm_ j • 2m" \ a następnie podwajać punkt P, dodając 2JP do sumy częściowej, gdy tylko odpowiadający bit aj jest równy 1. Inaczej, można rozłożyć k na czynniki pierwsze lj} a następnie obliczać kolejno ly (P), /2ft(P)) itd., gdzie /lf /2, ... są liczbami pierwszymi występującymi w rozkładzie (np. w kolejności niemalęjącej). Wtedy każda wielokrotność IjPj, gdzie Pj = lj_ j lj_ 2... /jP, jest obliczana metodą iterowanego podwajania, po przedstawieniu każdej liczby pierwszej lj w postaci rozwinięcia dwójkowego.
Przyjmiemy, że została wybrana jakaś tego typu metoda obliczania wielokrotności kP.
Będziemy zajmować się wszystkimi wielokrotnościami punktu P modulo n. Oznacza to, że definiujemy P mod n = (x mod n, y mod n) i za każdym razem, gdy wyznaczamy jakąś wielokrotność kP, naprawdę obliczamy tylko reszty z dzielenia współrzędnych przez n. Abyśmy jednak mogli wykonywać działania modulo n, podwajanie punktu lub dodawanie dwóch różnych punktów, musi być spełniony pewien nietrywialny warunek. Mianowicie wszystkie mianowniki muszą być względnie pierwsze z n.
Twierdzenie 6.4.1. Niech E będzie krzywą eliptyczną opisaną równaniem y1 = x3 + ax -\- b, gdzie a, be'Z oraz NWDióa3 -f 2762, n) = 1. A/fec/i Pt i P2 będą dwoma punktami na krzywej E, których współrzędne mają mianowniki względnie pierwsze z n oraz niech P, ź -P2 Wtedy punkt P, + P2eE ma współrzędne, których mianowniki są względnie pierwsze z n wtedy i tylko wtedy, gdy nie istnieje liczba pierwsza p\n o następującej własności: suma punktów p, mod p i P2 mod p na krzywej E mod p jest punktem w nieskończoności O mod peE mod p. E mod p oznacza tu krzywą eliptyczną nad ciałem Fp otrzymaną przez zredukowanie modulo p współczynników równania y1 = jc3 + | ax + b.
Dowód. Załóżmy najpierw, że wszystkie współrzędne punktów Px = (#„ yx), P2 = (jc2, y2) oraz Px+ P2eEmają mianowniki względnie pierwsze z n. Niech p będzie dowolnym dzielnikiem pierwszym liczby n. Musimy pokazać, że Px mod p + P2 mod p ź O mod p. Jeśli xx $x2 (mod p), to z definicji dodawania punktów na krzywej E mod p natychmiast wnioskujemy, że punkt ?! mod p + P2 mod p nie może być punktem w nieskończoności na krzywej E mod p. Przypuśćmy teraz, żexl = x2 (mod p). Po pierwsze, jeśli Px - P2, to współrzędne punktu Px + P2 = 2 Px są dane wzorem (5) z podrozdziału 6.1, a współrzędne punktu 2PX mod p można obliczyć według tego samego wzoru, z tym tylko, że każdą liczbę zastępujemy jej resztą z dzielenia przez p. Musimy pokazać, że mianownik 2yx nie jest podzielny przez p. Gdyby był podzielny przez p, to ponieważ mianownik współrzędnej x punktu 2Px nie dzieli się przez p, licznik 3 xf + a musiałby dzielić się przez p. Ale to oznaczałoby, że xx jest pierwiastkiem modulo p wielomianu x3 + ax + b i jego pochodnej, co przeczy założeniu, że ten wielomian nic ma pierwiastków wielokrotnych modulo p. Przypuśćmy teraz, że Px ± P2. Ponieważ x2 = xx (mod p) oraz x2 ± xx, więc możemy przedstawić x2 w postaci x2 = xx + prx, gdzie liczba r ^ 1 jest dobrana tak, by ani licznik, ani mianownik x nie były podzielne przez p. Ponieważ założyliśmy, że współrzędne punktu Px + P2 mają mianowniki niepodzielne przez p, możemy skorzystać ze wzoru (4) z podrozdziału 6.1, by stwierdzić, że y2 jest postaci yx + pry. Natomiast
y\ = (*i + prx)2 + a(xx + prx) + b =
= x3 + axx + b + pTx(3x% + a) = yx+ pTx(3x\ + a) (mod pr+1). (!)
Ale ponieważ x2 = xx (mod p) i y2 = yx (mod p), więc Px mod p = P2 mod p. Zatem suma Px mod p + P2 mod p-2Px mod p jest punktem w nieskończoności O mod p wtedy i tylko wtedy, gdy yx = y2 s 0 (mod p). Gdyby jednak ta ostatnia kongruencja była prawdziwa, to liczba y2 — y\ = = (y2 - yx)(y2 + yx) byłaby podzielna przez pr+1 (tzn. jej licznik byłby podzielny), a więc z kongruencji (1) wynikałoby, że 3x? + a = 0 (mod p). To jednak jest niemożliwe, bowiem wielomian x3 + ax + b nie ma pierwiastków wielokrotnych modulo p, a więc .v, nie może być zarówno pierwiastkiem tego