Pierwszość i złożoność Jarosław Grytczuk (Uniwersytet Jagielloński) Warszawska Wyższa Szkoła Informatyki, 8 maja 2007 Jarosław Grytczuk Pierwszość i złożoność Pierwszość jest łatwa Jarosław Grytczuk Pierwszość i złożoność Pierwszość jest łatwa ”Problem rozpoznawania liczb pierwszych wśród liczb naturalnych, oraz rozkładania liczb naturalnych na czynniki pierwsze jest jednym z najważniejszych i najużyteczniejszych w arytmetyce. Powaga nauki sama w sobie wymaga podjęcia wszelkich możliwych starań w celu znalezienia rozwiązania tego kluczowego problemu”. Jarosław Grytczuk Pierwszość i złożoność Pierwszość jest łatwa ”Problem rozpoznawania liczb pierwszych wśród liczb naturalnych, oraz rozkładania liczb naturalnych na czynniki pierwsze jest jednym z najważniejszych i najużyteczniejszych w arytmetyce. Powaga nauki sama w sobie wymaga podjęcia wszelkich możliwych starań w celu znalezienia rozwiązania tego kluczowego problemu”. — Disquisitiones Arithmeticae (1801), K. F. Gauss Jarosław Grytczuk Pierwszość i złożoność Pierwszość jest łatwa ”Problem rozpoznawania liczb pierwszych wśród liczb naturalnych, oraz rozkładania liczb naturalnych na czynniki pierwsze jest jednym z najważniejszych i najużyteczniejszych w arytmetyce. Powaga nauki sama w sobie wymaga podjęcia wszelkich możliwych starań w celu znalezienia rozwiązania tego kluczowego problemu”. — Disquisitiones Arithmeticae (1801), K. F. Gauss Twierdzenie (Agrawal, Kayal, Saxena, 2004) Istnieje algorytm sprawdzający w czasie wielomianowym czy dana liczba n jest pierwsza. Jarosław Grytczuk Pierwszość i złożoność Diagram Leibniza Jarosław Grytczuk Pierwszość i złożoność Diagram Leibniza • • • • • • • • • • • • • • 0 1 • • 2 • • • • • 3 4 • • 5 • • • • • • 6 7 Jarosław Grytczuk • • • • • • • • • • 8 9 • • • • • • • • • • • 10 11 12 13 Pierwszość i złożoność Ile jest liczb pierwszych? Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze N = p1 · p2 · . . . · pk Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze N = p1 · p2 · . . . · pk Istnieje liczba pierwsza p dzieląca N + 1. Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze N = p1 · p2 · . . . · pk Istnieje liczba pierwsza p dzieląca N + 1. p = pi dla pewnego 1 ¬ i ¬ k Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze N = p1 · p2 · . . . · pk Istnieje liczba pierwsza p dzieląca N + 1. p = pi dla pewnego 1 ¬ i ¬ k p |N i p |N +1 Jarosław Grytczuk Pierwszość i złożoność Ile jest liczb pierwszych? Twierdzenie (Euklides) Liczb pierwszych jest nieskończenie wiele. p1 , p2 , . . . , pk - wszystkie liczby pierwsze N = p1 · p2 · . . . · pk Istnieje liczba pierwsza p dzieląca N + 1. p = pi dla pewnego 1 ¬ i ¬ k p |N i p |N +1 p | (N + 1) − N = 1 (Sprzeczność!) Jarosław Grytczuk Pierwszość i złożoność Rozmieszczenie liczb pierwszych Jarosław Grytczuk Pierwszość i złożoność Rozmieszczenie liczb pierwszych Twierdzenie Istnieją dowlnie długie odstępy pomiędzy kolejnymi liczbami pierwszymi. Jarosław Grytczuk Pierwszość i złożoność Rozmieszczenie liczb pierwszych Twierdzenie Istnieją dowlnie długie odstępy pomiędzy kolejnymi liczbami pierwszymi. n! + 2, n! + 3, . . . , n! + n Jarosław Grytczuk Pierwszość i złożoność Rozmieszczenie liczb pierwszych Twierdzenie Istnieją dowlnie długie odstępy pomiędzy kolejnymi liczbami pierwszymi. n! + 2, n! + 3, . . . , n! + n Twierdzenie (Postulat Bertranda) Dla każdego n ­ 1 istnieje liczba pierwsza między n a 2n. Jarosław Grytczuk Pierwszość i złożoność Rozmieszczenie liczb pierwszych Twierdzenie Istnieją dowlnie długie odstępy pomiędzy kolejnymi liczbami pierwszymi. n! + 2, n! + 3, . . . , n! + n Twierdzenie (Postulat Bertranda) Dla każdego n ­ 1 istnieje liczba pierwsza między n a 2n. 1 2 3 4 5 6 7 8 9 Jarosław Grytczuk 10 11 12 Pierwszość i złożoność 13 14 15 16 Rozmieszczenie liczb pierwszych Twierdzenie Istnieją dowlnie długie odstępy pomiędzy kolejnymi liczbami pierwszymi. n! + 2, n! + 3, . . . , n! + n Twierdzenie (Postulat Bertranda) Dla każdego n ­ 1 istnieje liczba pierwsza między n a 2n. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Hipoteza (Sierpiński) Każdy z n sąsiednich przedziałów długości n początkowych liczb naturalnych zawiera liczbę pierwszą. Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Twierdzenie (Dirichlet) W każdym postępie arytmetycznym ak + b, (a, b) = 1, k = 0, 1, 2, . . ., istnieje nieskończenie wiele liczb pierwszych. Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Twierdzenie (Dirichlet) W każdym postępie arytmetycznym ak + b, (a, b) = 1, k = 0, 1, 2, . . ., istnieje nieskończenie wiele liczb pierwszych. Twierdzenie (Green,Tao, 2004) Istnieją dowolnie długie ciągi arytmetyczne składające się z samych liczb pierwszych. Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Twierdzenie (Dirichlet) W każdym postępie arytmetycznym ak + b, (a, b) = 1, k = 0, 1, 2, . . ., istnieje nieskończenie wiele liczb pierwszych. Twierdzenie (Green,Tao, 2004) Istnieją dowolnie długie ciągi arytmetyczne składające się z samych liczb pierwszych. 56211383760397 + k × 44546738095860 (k = 0, 1, ..., 22) Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Twierdzenie (Dirichlet) W każdym postępie arytmetycznym ak + b, (a, b) = 1, k = 0, 1, 2, . . ., istnieje nieskończenie wiele liczb pierwszych. Twierdzenie (Green,Tao, 2004) Istnieją dowolnie długie ciągi arytmetyczne składające się z samych liczb pierwszych. 56211383760397 + k × 44546738095860 (k = 0, 1, ..., 22) Hipoteza (Goldbach) Każda liczba naturalna większa od 1 jest średnią arytmetyczną dwóch liczb pierwszych. Jarosław Grytczuk Pierwszość i złożoność Postępy arytmetyczne Twierdzenie (Dirichlet) W każdym postępie arytmetycznym ak + b, (a, b) = 1, k = 0, 1, 2, . . ., istnieje nieskończenie wiele liczb pierwszych. Twierdzenie (Green,Tao, 2004) Istnieją dowolnie długie ciągi arytmetyczne składające się z samych liczb pierwszych. 56211383760397 + k × 44546738095860 (k = 0, 1, ..., 22) Hipoteza (Goldbach) Każda liczba naturalna większa od 1 jest średnią arytmetyczną dwóch liczb pierwszych. 1 2 3 4 • 5 6 • 7 8 Jarosław Grytczuk 9 • 10 11 12 13 14 Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych Jarosław Grytczuk Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} Jarosław Grytczuk Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} π(106 ) = 78 498 Jarosław Grytczuk Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} π(106 ) = 78 498 Twierdzenie (o Liczbach Pierwszych I) π(N) ∼ Jarosław Grytczuk N ln N Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} π(106 ) = 78 498 Twierdzenie (o Liczbach Pierwszych I) π(N) ∼ 106 ln 106 N ln N = 72 382 Jarosław Grytczuk Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} π(106 ) = 78 498 Twierdzenie (o Liczbach Pierwszych I) π(N) ∼ 106 ln 106 N ln N = 72 382 Twierdzenie (o Liczbach Pierwszych II) π(N) ∼ ZN dx ln x 2 Jarosław Grytczuk Pierwszość i złożoność Twierdzenie o Liczbach Pierwszych π(N) = #{p ¬ N : p jest liczbą pierwszą} π(106 ) = 78 498 Twierdzenie (o Liczbach Pierwszych I) π(N) ∼ 106 ln 106 N ln N = 72 382 Twierdzenie (o Liczbach Pierwszych II) π(N) ∼ ZN dx ln x 2 6 10 R 2 dx ln x = 78627 Jarosław Grytczuk Pierwszość i złożoność Hipoteza Riemanna 1.000.000$ Jarosław Grytczuk Pierwszość i złożoność Hipoteza Riemanna 1.000.000$ ζ(s) = 1 + 1 2s + 1 3s + ... = ∞ P n=1 Jarosław Grytczuk 1 ns , (s ∈ C) Pierwszość i złożoność Hipoteza Riemanna 1.000.000$ ζ(s) = 1 + 1 2s + 1 3s + ... = ∞ P n=1 1 ns , (s ∈ C) Hipoteza (Riemanna) Wszystkie nietrywialne zera funkcji ζ(s) mają część rzeczywistą 21 . Jarosław Grytczuk Pierwszość i złożoność Hipoteza Riemanna 1.000.000$ ζ(s) = 1 + 1 2s + 1 3s + ... = ∞ P n=1 1 ns , (s ∈ C) Hipoteza (Riemanna) Wszystkie nietrywialne zera funkcji ζ(s) mają część rzeczywistą 21 . ζ(s) = 1 + 1 2s + 1 4s + ... 1 + Jarosław Grytczuk 1 3s + 1 9s + ... 1 + Pierwszość i złożoność 1 5s + ... ... Hipoteza Riemanna 1.000.000$ ζ(s) = 1 + 1 2s + 1 3s + ... = ∞ P n=1 1 ns , (s ∈ C) Hipoteza (Riemanna) Wszystkie nietrywialne zera funkcji ζ(s) mają część rzeczywistą 21 . ζ(s) = 1 + 21s + 41s + . . . 1 + −1 Q ζ(s) = 1 − p1s 1 3s + 1 9s + ... 1 + p Jarosław Grytczuk Pierwszość i złożoność 1 5s + ... ... Hipoteza Riemanna 1.000.000$ ζ(s) = 1 + 1 2s 1 3s + + ... = ∞ P n=1 1 ns , (s ∈ C) Hipoteza (Riemanna) Wszystkie nietrywialne zera funkcji ζ(s) mają część rzeczywistą 21 . ζ(s) = 1 + 21s + 41s + . . . 1 + −1 Q ζ(s) = 1 − p1s 1 3s + 1 9s + ... 1 + p Twierdzenie HR ⇔ π(N) = RN 2 dx ln x + O(N 1/2+ε ) dla każdego ε > 0. Jarosław Grytczuk Pierwszość i złożoność 1 5s + ... ... Funkcja Möbiusa Jarosław Grytczuk Pierwszość i złożoność Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 Jarosław Grytczuk 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 Pierwszość i złożoność Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 µ(n) = 0, jeśli p 2 | n, (µ(1) = 1) Jarosław Grytczuk Pierwszość i złożoność Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 µ(n) = 0, jeśli p 2 | n, (µ(1) = 1) µ(n) = (−1)k , gdy n = p1 p2 . . . pk , pi - różne liczby pierwsze. Jarosław Grytczuk Pierwszość i złożoność Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 µ(n) = 0, jeśli p 2 | n, (µ(1) = 1) µ(n) = (−1)k , gdy n = p1 p2 . . . pk , pi - różne liczby pierwsze. M(x) = x P µ(n) n=1 Jarosław Grytczuk Pierwszość i złożoność Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 µ(n) = 0, jeśli p 2 | n, (µ(1) = 1) µ(n) = (−1)k , gdy n = p1 p2 . . . pk , pi - różne liczby pierwsze. M(x) = x P µ(n) n=1 Twierdzenie TLP ⇔ lim M(x) =0 x Jarosław Grytczuk Pierwszość i złożoność x→∞ Funkcja Möbiusa 1 2 + − 3 − 4 5 0 − 6 7 + − 8 9 0 0 10 11 12 13 14 15 16 17 18 + − 0 − + + 0 − 0 µ(n) = 0, jeśli p 2 | n, (µ(1) = 1) µ(n) = (−1)k , gdy n = p1 p2 . . . pk , pi - różne liczby pierwsze. M(x) = x P µ(n) n=1 Twierdzenie TLP ⇔ lim x→∞ M(x) =0 x Twierdzenie HR ⇔ M(x) = O(x 1/2+ε ) dla każdego ε > 0. Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n σ(6) = 1 + 2 + 3 + 6 = 12 Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n σ(6) = 1 + 2 + 3 + 6 = 12 Hn = 1 + 1 1 1 + + ...+ 2 3 n Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n σ(6) = 1 + 2 + 3 + 6 = 12 Hn = 1 + 1 1 1 + + ...+ 2 3 n Twierdzenie (Lagarias, 2002) HR ⇔ σ(n) ¬ Hn + exp(Hn ) ln(Hn ) dla każdego n ­ 1. Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n σ(6) = 1 + 2 + 3 + 6 = 12 Hn = 1 + 1 1 1 + + ...+ 2 3 n Twierdzenie (Lagarias, 2002) HR ⇔ σ(n) ¬ Hn + exp(Hn ) ln(Hn ) dla każdego n ­ 1. H6 = 49 20 = 2, 45 Jarosław Grytczuk Pierwszość i złożoność Suma dzielników liczby n σ(n) = P d d|n σ(6) = 1 + 2 + 3 + 6 = 12 Hn = 1 + 1 1 1 + + ...+ 2 3 n Twierdzenie (Lagarias, 2002) HR ⇔ σ(n) ¬ Hn + exp(Hn ) ln(Hn ) dla każdego n ­ 1. 49 20 = 2, 45 49 exp( 49 20 ) ln 20 = 10, 384 H6 = Jarosław Grytczuk Pierwszość i złożoność Wyznacznik Leibniza Jarosław Grytczuk Pierwszość i złożoność Wyznacznik Leibniza A(N) = (aij )N×N , aij ∈ {0, 1}, Jarosław Grytczuk Pierwszość i złożoność Wyznacznik Leibniza A(N) = (aij )N×N , aij ∈ {0, 1}, aij = 1 ⇔ j = 1 lub i | j Jarosław Grytczuk Pierwszość i złożoność Wyznacznik Leibniza A(N) = (aij )N×N , aij ∈ {0, 1}, aij = 1 ⇔ j = 1 lub i | j A(6) = 1 1 1 1 1 1 Jarosław Grytczuk 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 Pierwszość i złożoność Wyznacznik Leibniza A(N) = (aij )N×N , aij ∈ {0, 1}, aij = 1 ⇔ j = 1 lub i | j A(6) = 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 Twierdzenie (Redheffer, 1977) HR ⇔ |det A(N)| = O(N 1/2+ε ) dla każdego ε > 0. Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) (n, d) - klucz deszyfrujący (d, p, q, K - tajne!) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) (n, d) - klucz deszyfrujący (d, p, q, K - tajne!) szyfrowanie: W - wiadomość, (W , n) = 1 Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) (n, d) - klucz deszyfrujący (d, p, q, K - tajne!) szyfrowanie: W - wiadomość, (W , n) = 1 W s (modn) - zaszyfrowana wiadomość Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) (n, d) - klucz deszyfrujący (d, p, q, K - tajne!) szyfrowanie: W - wiadomość, (W , n) = 1 W s (modn) - zaszyfrowana wiadomość deszyfrowanie: sd = mK + 1, gdzie K = (p − 1)(q − 1) Jarosław Grytczuk Pierwszość i złożoność Kryptosystem RSA p, q - duże liczby pierwsze (kilkusetcyfrowe) n = pq, K = (p − 1)(q − 1) s, d - liczby całkowite spełniające sd = 1(modK ) (n, s) - klucz szyfrujący (jawny!) (n, d) - klucz deszyfrujący (d, p, q, K - tajne!) szyfrowanie: W - wiadomość, (W , n) = 1 W s (modn) - zaszyfrowana wiadomość deszyfrowanie: sd = mK + 1, gdzie K = (p − 1)(q − 1) (W s )d = W sd = W mK +1 = (W K )m W = W (mod n) Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Wniosek Jeżeli p, q są różnymi liczbami pierwszymi, to a(p−1)(q−1) ≡ 1(modpq). Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Wniosek Jeżeli p, q są różnymi liczbami pierwszymi, to a(p−1)(q−1) ≡ 1(modpq). Trzeba znaleźć d Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Wniosek Jeżeli p, q są różnymi liczbami pierwszymi, to a(p−1)(q−1) ≡ 1(modpq). Trzeba znaleźć d sd = 1(modK ), (s jest jawne!) Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Wniosek Jeżeli p, q są różnymi liczbami pierwszymi, to a(p−1)(q−1) ≡ 1(modpq). Trzeba znaleźć d sd = 1(modK ), (s jest jawne!) Wystarczy zatem obliczyć K = (p − 1)(q − 1), czyli... Jarosław Grytczuk Pierwszość i złożoność Jak złamać RSA? W (p−1)(q−1) = 1(modpq) Twierdzenie (Małe Twierdzenie Fermata) Jeżeli p jest liczbą pierwszą, to ap−1 ≡ 1(modp) dla każdej liczby całkowitej 1 ¬ a ¬ p − 1. Wniosek Jeżeli p, q są różnymi liczbami pierwszymi, to a(p−1)(q−1) ≡ 1(modpq). Trzeba znaleźć d sd = 1(modK ), (s jest jawne!) Wystarczy zatem obliczyć K = (p − 1)(q − 1), czyli... rozłożyć n = pq na czynniki pierwsze (n jest jawne!) Jarosław Grytczuk Pierwszość i złożoność Wyzwanie RSA Jarosław Grytczuk Pierwszość i złożoność Wyzwanie RSA Twierdzenie (Cole, 1903) 267 − 1 = 147 573 952 589 676 412 927 = 193 707 721 × 761 838 257 287 Jarosław Grytczuk Pierwszość i złożoność Wyzwanie RSA Twierdzenie (Cole, 1903) 267 − 1 = 147 573 952 589 676 412 927 = 193 707 721 × 761 838 257 287 RSA-704 = 740375634795617128280467960974295731425931 888892312890849362326389727650340282662768 919964196251178439958943305021275853701189 6809828673317327310893090055250511687706329 9072396380786710086096962537934650563796359 Jarosław Grytczuk Pierwszość i złożoność Wyzwanie RSA Twierdzenie (Cole, 1903) 267 − 1 = 147 573 952 589 676 412 927 = 193 707 721 × 761 838 257 287 RSA-704 = 740375634795617128280467960974295731425931 888892312890849362326389727650340282662768 919964196251178439958943305021275853701189 6809828673317327310893090055250511687706329 9072396380786710086096962537934650563796359 http://www.rsa.com/rsalabs/ Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu A(n) = liczba operacji bitowych algorytmu A wykonywanych na liczbie n Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu A(n) = liczba operacji bitowych algorytmu A wykonywanych na liczbie n e Szybkość mnożenia = O(log n) Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu A(n) = liczba operacji bitowych algorytmu A wykonywanych na liczbie n e Szybkość mnożenia = O(log n) e ) = O(y (log y )k ) O(y Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu A(n) = liczba operacji bitowych algorytmu A wykonywanych na liczbie n e Szybkość mnożenia = O(log n) e ) = O(y (log y )k ) O(y Szybkość rozkładu = O(exp(c(log n)1/3 (log log n)2/3 ), gdzie c < 2 Jarosław Grytczuk Pierwszość i złożoność Szybkość rozkładu A(n) = liczba operacji bitowych algorytmu A wykonywanych na liczbie n e Szybkość mnożenia = O(log n) e ) = O(y (log y )k ) O(y Szybkość rozkładu = O(exp(c(log n)1/3 (log log n)2/3 ), gdzie c < 2 A(n) czas mnożenie 33.056 8 × 10−4 sek. Jarosław Grytczuk rozkładanie 3 × 1031 2, 5 × 1016 lat! Pierwszość i złożoność P=NP? Jarosław Grytczuk Pierwszość i złożoność P=NP? Algorytm A jest szybki jeżeli istnieje k takie, że A(n) = O((log n)k ) Jarosław Grytczuk Pierwszość i złożoność P=NP? Algorytm A jest szybki jeżeli istnieje k takie, że A(n) = O((log n)k ) Problem jest łatwy jeżeli istnieje szybki algorytm rozwiązujący go. Jarosław Grytczuk Pierwszość i złożoność P=NP? Algorytm A jest szybki jeżeli istnieje k takie, że A(n) = O((log n)k ) Problem jest łatwy jeżeli istnieje szybki algorytm rozwiązujący go. P - klasa problemów łatwych (mnożenie liczb, potęgowanie (modn), pierwszość, etc.) Jarosław Grytczuk Pierwszość i złożoność P=NP? Algorytm A jest szybki jeżeli istnieje k takie, że A(n) = O((log n)k ) Problem jest łatwy jeżeli istnieje szybki algorytm rozwiązujący go. P - klasa problemów łatwych (mnożenie liczb, potęgowanie (modn), pierwszość, etc.) NP - klasa problemów, dla których sprawdzenie poprawności podanego rozwiązania jest łatwe (rozkład na czynniki pierwsze, cykl Hamiltona, kolorowalność grafu, etc.). Jarosław Grytczuk Pierwszość i złożoność P=NP? Algorytm A jest szybki jeżeli istnieje k takie, że A(n) = O((log n)k ) Problem jest łatwy jeżeli istnieje szybki algorytm rozwiązujący go. P - klasa problemów łatwych (mnożenie liczb, potęgowanie (modn), pierwszość, etc.) NP - klasa problemów, dla których sprawdzenie poprawności podanego rozwiązania jest łatwe (rozkład na czynniki pierwsze, cykl Hamiltona, kolorowalność grafu, etc.). Hipoteza (1.000.000$) P 6= NP Jarosław Grytczuk Pierwszość i złożoność Test Fermata Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? 2341 = 2(mod341) Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? 2341 = 2(mod341) 3341 = 168(mod341) Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? 2341 = 2(mod341) 3341 = 168(mod341) Czy dla każdej liczby złożonej n istnieje liczba a taka, że an 6= a(modn)? Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? 2341 = 2(mod341) 3341 = 168(mod341) Czy dla każdej liczby złożonej n istnieje liczba a taka, że an 6= a(modn)? a561 = a(mod561) dla każdego a (tzw. liczba Carmichaela) Jarosław Grytczuk Pierwszość i złożoność Test Fermata Twierdzenie Jeżeli an 6= a(modn) dla pewnej liczby a, to n jest liczbą złożoną. 21001 = 123(mod1001) Czy dla każdej liczby złożonej n zachodzi 2n 6= 2(modn)? 2341 = 2(mod341) 3341 = 168(mod341) Czy dla każdej liczby złożonej n istnieje liczba a taka, że an 6= a(modn)? a561 = a(mod561) dla każdego a (tzw. liczba Carmichaela) Twierdzenie (Alford, Granville, Pomerance, 1994) Liczb Carmichaela jest nieskończenie wiele. Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Twierdzenie Jeżeli b 2 = 1(modn) dla pewnej liczby b 6= ±1, to n jest liczbą złożoną. Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Twierdzenie Jeżeli b 2 = 1(modn) dla pewnej liczby b 6= ±1, to n jest liczbą złożoną. 2340 = 1(mod341) Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Twierdzenie Jeżeli b 2 = 1(modn) dla pewnej liczby b 6= ±1, to n jest liczbą złożoną. 2340 = 1(mod341) 2170 = 1(mod341) Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Twierdzenie Jeżeli b 2 = 1(modn) dla pewnej liczby b 6= ±1, to n jest liczbą złożoną. 2340 = 1(mod341) 2170 = 1(mod341) 285 = 32(mod341) Jarosław Grytczuk Pierwszość i złożoność Pierwiastki kwadratowe z 1 Twierdzenie Jeżeli p jest liczbą pierwszą, to równanie x 2 = 1 ma dokładnie dwa rozwiązania (modp), x = ±1. Twierdzenie Jeżeli b 2 = 1(modn) dla pewnej liczby b 6= ±1, to n jest liczbą złożoną. 2340 = 1(mod341) 2170 = 1(mod341) 285 = 32(mod341) Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina n − 1 = 2k m, m = 1(mod2) Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina n − 1 = 2k m, m = 1(mod2) k Aa (n) = (an−1 , a(n−1)/2 , a(n−1)/4 , . . . , a(n−1)/2 ) Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina n − 1 = 2k m, m = 1(mod2) k Aa (n) = (an−1 , a(n−1)/2 , a(n−1)/4 , . . . , a(n−1)/2 ) Twierdzenie Jeżeli n jest liczbą pierwszą, to Aa (n) = (1, 1, . . . , 1) lub Aa (n) = (1, 1, . . . , 1, −1, ∗, . . . , ∗) dla każdej liczby całkowitej a 6= 0(modn). Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina n − 1 = 2k m, m = 1(mod2) k Aa (n) = (an−1 , a(n−1)/2 , a(n−1)/4 , . . . , a(n−1)/2 ) Twierdzenie Jeżeli n jest liczbą pierwszą, to Aa (n) = (1, 1, . . . , 1) lub Aa (n) = (1, 1, . . . , 1, −1, ∗, . . . , ∗) dla każdej liczby całkowitej a 6= 0(modn). Liczba a jest świadkiem złożoności n jeżeli Aa (n) 6= (1, 1, . . . , 1), (1, 1, . . . , 1, −1, ∗, . . . , ∗). Jarosław Grytczuk Pierwszość i złożoność Test Millera-Rabina n − 1 = 2k m, m = 1(mod2) k Aa (n) = (an−1 , a(n−1)/2 , a(n−1)/4 , . . . , a(n−1)/2 ) Twierdzenie Jeżeli n jest liczbą pierwszą, to Aa (n) = (1, 1, . . . , 1) lub Aa (n) = (1, 1, . . . , 1, −1, ∗, . . . , ∗) dla każdej liczby całkowitej a 6= 0(modn). Liczba a jest świadkiem złożoności n jeżeli Aa (n) 6= (1, 1, . . . , 1), (1, 1, . . . , 1, −1, ∗, . . . , ∗). Twierdzenie Jeżeli n jest liczbą złożoną nieparzystą, to istnieje co najmniej n/2 świadków złożoności n w zbiorze {1, 2, . . . , n}. Ponadto, jeżeli prawdziwa jest Uogólniona Hipoteza Riemanna, to istnieje świadek a ¬ 2(log n)2 . Jarosław Grytczuk Pierwszość i złożoność Dwumianowe kryterium pierwszości Jarosław Grytczuk Pierwszość i złożoność Dwumianowe kryterium pierwszości 0 1 2 3 4 5 6 7 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 1 3 1 6 4 1 10 10 5 15 20 15 21 35 35 1 6 1 21 7 Jarosław Grytczuk 1 Pierwszość i złożoność Dwumianowe kryterium pierwszości 0 1 2 3 4 5 6 7 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 1 3 1 6 4 1 10 10 5 15 20 15 21 35 35 1 6 1 21 7 1 Twierdzenie Liczba n jest pierwsza wtedy i tylko wtedy, gdy n | k = 1, 2, . . . , n − 1. Jarosław Grytczuk Pierwszość i złożoność n k dla każdego Dwumianowe kryterium pierwszości 0 1 2 3 4 5 6 7 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 1 3 1 6 4 1 10 10 5 15 20 15 21 35 35 1 6 1 21 7 1 Twierdzenie Liczba n jest pierwsza wtedy i tylko wtedy, gdy n | k = 1, 2, . . . , n − 1. n k dla każdego Wniosek Niech a będzie dowolna liczbą całkowitą. Wówczas liczba n jest pierwsza wtedy i tylko wtedy, gdy (x + a)n = x n + a(modn). Jarosław Grytczuk Pierwszość i złożoność Dowód kryterium dwumianowego Jarosław Grytczuk Pierwszość i złożoność Dowód kryterium dwumianowego n(n − 1)(n − 2) . . . (n − k + 1) n = 1 · 2 ·... ·k k Jarosław Grytczuk Pierwszość i złożoność Dowód kryterium dwumianowego n(n − 1)(n − 2) . . . (n − k + 1) n = 1 · 2 ·... ·k k Niech n = pd i niech h spełnia p h | n i p h+1 - n. Jarosław Grytczuk Pierwszość i złożoność Dowód kryterium dwumianowego n(n − 1)(n − 2) . . . (n − k + 1) n = 1 · 2 ·... ·k k Niech n = pd i niech h spełnia p h | n i p h+1 - n. n = p = pd(n − 1)(n − 2) . . . (n − p + 1) 1 · 2 ·... ·p d(n − 1)(n − 2) . . . (n − p + 1) 1 · 2 · . . . · (p − 1) Jarosław Grytczuk Pierwszość i złożoność Dowód kryterium dwumianowego n(n − 1)(n − 2) . . . (n − k + 1) n = 1 · 2 ·... ·k k Niech n = pd i niech h spełnia p h | n i p h+1 - n. n = p = Zatem p h - n p , stąd n - pd(n − 1)(n − 2) . . . (n − p + 1) 1 · 2 ·... ·p d(n − 1)(n − 2) . . . (n − p + 1) 1 · 2 · . . . · (p − 1) n p . Jarosław Grytczuk Pierwszość i złożoność Twierdzenie AKS Jarosław Grytczuk Pierwszość i złożoność Twierdzenie AKS ord r (n) = min{k ­ 1 : nk = 1(modr )} Jarosław Grytczuk Pierwszość i złożoność Twierdzenie AKS ord r (n) = min{k ­ 1 : nk = 1(modr )} Twierdzenie (Agrawal, Kayal, Saxena, 2004) Dla danej liczby całkowitej n ­ 2, niech r < n będzie liczbą całkowitą taką, że ord r (n) > (log n)2 . Wówczas n jest liczbą pierwszą wtedy i tylko wtedy, gdy n nie jest pełną potęgą, n nie ma dzielnika pierwszego p ¬ r , √ (x + a)n = x n + a(modn, x r − 1), dla wszystkich a, 1 ¬ a ¬ r log n. Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Odpowiedź: ”PIERWSZA” lub ”ZŁOŻONA” Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Odpowiedź: ”PIERWSZA” lub ”ZŁOŻONA” 1 Jeżeli n = ab , a ∈ N i b > 1, odpowiedz ”ZŁOŻONA”. Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Odpowiedź: ”PIERWSZA” lub ”ZŁOŻONA” 1 2 Jeżeli n = ab , a ∈ N i b > 1, odpowiedz ”ZŁOŻONA”. Znajdź r takie, że ord r (n) > (log n)2 . Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Odpowiedź: ”PIERWSZA” lub ”ZŁOŻONA” 1 2 3 Jeżeli n = ab , a ∈ N i b > 1, odpowiedz ”ZŁOŻONA”. Znajdź r takie, że ord r (n) > (log n)2 . Jeżeli (a, n) > 1, dla pewnego a ¬ r , odpowiedz ”ZŁOŻONA”. Jarosław Grytczuk Pierwszość i złożoność Algorytm AKS Dane: liczba naturalna n Odpowiedź: ”PIERWSZA” lub ”ZŁOŻONA” 1 2 3 4 Jeżeli n = ab , a ∈ N i b > 1, odpowiedz ”ZŁOŻONA”. Znajdź r takie, że ord r (n) > (log n)2 . Jeżeli (a, n) > 1, dla pewnego a ¬ r , odpowiedz ”ZŁOŻONA”. Jeżeli (x + a)n = x n + a(modn, x r − 1) √ dla każdego a, 1 ¬ a ¬ r log n, odpowiedz ”PIERWSZA”, w przeciwnym razie odpowiedz ”ZŁOŻONA”. Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r e (arytmetyka na liczbach ¬ m) = O(log m) Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r e (arytmetyka na liczbach ¬ m) = O(log m) (arytmetyka na wielomianach stopnia ¬ d, o współczynnikach ¬ m) e log m) = O(d Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r 1 e (arytmetyka na liczbach ¬ m) = O(log m) (arytmetyka na wielomianach stopnia ¬ d, o współczynnikach ¬ m) e log m) = O(d e (Sprawdzenie czy n jest potęgą) = O((log n)3 ) Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r 1 2 e (arytmetyka na liczbach ¬ m) = O(log m) (arytmetyka na wielomianach stopnia ¬ d, o współczynnikach ¬ m) e log m) = O(d e (Sprawdzenie czy n jest potęgą) = O((log n)3 ) e (log n)2 ) (Sprawdzenie czy nk 6= 1(modr ) dla k ¬ (log n)2 ) = O(r Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r 1 2 3 e (arytmetyka na liczbach ¬ m) = O(log m) (arytmetyka na wielomianach stopnia ¬ d, o współczynnikach ¬ m) e log m) = O(d e (Sprawdzenie czy n jest potęgą) = O((log n)3 ) e (log n)2 ) (Sprawdzenie czy nk 6= 1(modr ) dla k ¬ (log n)2 ) = O(r e log n) (Obliczenie NWD r razy) = O(r Jarosław Grytczuk Pierwszość i złożoność Szybkość algorytmu AKS Twierdzenie e 3/2 (log n)3 ). Szybkość algorytmu AKS wynosi O(r 1 2 3 4 e (arytmetyka na liczbach ¬ m) = O(log m) (arytmetyka na wielomianach stopnia ¬ d, o współczynnikach ¬ m) e log m) = O(d e (Sprawdzenie czy n jest potęgą) = O((log n)3 ) e (log n)2 ) (Sprawdzenie czy nk 6= 1(modr ) dla k ¬ (log n)2 ) = O(r e log n) (Obliczenie NWD r razy) = O(r √ e 3/2 (log n)3 ) (Sprawdzenie r log n równań (modn, x r − 1)) = O(r Jarosław Grytczuk Pierwszość i złożoność Wielkość r Jarosław Grytczuk Pierwszość i złożoność Wielkość r Twierdzenie Dla każdej liczby całkowitej n ­ 6 istnieje liczba pierwsza r taka, że ord r (n) > (log n)2 i (log n)5 ¬ r ¬ 2(log n)5 . Jarosław Grytczuk Pierwszość i złożoność Wielkość r Twierdzenie Dla każdej liczby całkowitej n ­ 6 istnieje liczba pierwsza r taka, że ord r (n) > (log n)2 i (log n)5 ¬ r ¬ 2(log n)5 . Lemat Dla każdego N ­ 1, iloczyn liczb pierwszych z przedziału [N, 2N] wynosi co najmniej 2N . Jarosław Grytczuk Pierwszość i złożoność Wielkość r Twierdzenie Dla każdej liczby całkowitej n ­ 6 istnieje liczba pierwsza r taka, że ord r (n) > (log n)2 i (log n)5 ¬ r ¬ 2(log n)5 . Lemat Dla każdego N ­ 1, iloczyn liczb pierwszych z przedziału [N, 2N] wynosi co najmniej 2N . N = (log n)5 , K = (log n)2 Jarosław Grytczuk Pierwszość i złożoność Wielkość r Twierdzenie Dla każdej liczby całkowitej n ­ 6 istnieje liczba pierwsza r taka, że ord r (n) > (log n)2 i (log n)5 ¬ r ¬ 2(log n)5 . Lemat Dla każdego N ­ 1, iloczyn liczb pierwszych z przedziału [N, 2N] wynosi co najmniej 2N . N = (log n)5 , K = (log n)2 Przypuśćmy, że ord r (n) ¬ K dla każdej liczby pierwszej r ∈ [N, 2N] Jarosław Grytczuk Pierwszość i złożoność Wielkość r Twierdzenie Dla każdej liczby całkowitej n ­ 6 istnieje liczba pierwsza r taka, że ord r (n) > (log n)2 i (log n)5 ¬ r ¬ 2(log n)5 . Lemat Dla każdego N ­ 1, iloczyn liczb pierwszych z przedziału [N, 2N] wynosi co najmniej 2N . N = (log n)5 , K = (log n)2 Przypuśćmy, że ord r (n) ¬ K dla każdej liczby pierwszej r ∈ [N, 2N] 2N ¬ Y N¬p¬2N p¬ Y Y 2 5 (ni − 1) < ni = n1+2+...+K < nK = 2(log n) i ¬I Jarosław Grytczuk i ¬K Pierwszość i złożoność Introspekcja wielomianu Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. p > r , (n, r ) = (p, r ) = 1, ord r (p) > 1 Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. p > r , (n, r ) = (p, r ) = 1, ord r (p) > 1 (x + a)n = x n + a(modp, x r − 1), 1 ¬ a ¬ A Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. p > r , (n, r ) = (p, r ) = 1, ord r (p) > 1 (x + a)n = x n + a(modp, x r − 1), 1 ¬ a ¬ A (x + a)p = x p + a(modp, x r − 1), 1 ¬ a ¬ A Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. p > r , (n, r ) = (p, r ) = 1, ord r (p) > 1 (x + a)n = x n + a(modp, x r − 1), 1 ¬ a ¬ A (x + a)p = x p + a(modp, x r − 1), 1 ¬ a ¬ A (x + a)n/p = x n/p + a(modp, x r − 1), 1 ¬ a ¬ A Jarosław Grytczuk Pierwszość i złożoność Introspekcja wielomianu Niech p będzie dzielnikiem pierwszym liczby n. p > r , (n, r ) = (p, r ) = 1, ord r (p) > 1 (x + a)n = x n + a(modp, x r − 1), 1 ¬ a ¬ A (x + a)p = x p + a(modp, x r − 1), 1 ¬ a ¬ A (x + a)n/p = x n/p + a(modp, x r − 1), 1 ¬ a ¬ A Definicja Mówimy, że liczba m jest introspektywna dla wielomianu f (x) jeżeli f (x)m = f (x m )(modp, x r − 1). Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Lemat Jeżeli m i k są introspektywne dla wielomianu f (x), to iloczyn mk też jest introspektywny dla f (x). Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Lemat Jeżeli m i k są introspektywne dla wielomianu f (x), to iloczyn mk też jest introspektywny dla f (x). Lemat Jeżeli m jest introspektywna dla wielomianów f (x) i g (x), to m jest również introspektywna dla f (x)g (x). Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Lemat Jeżeli m i k są introspektywne dla wielomianu f (x), to iloczyn mk też jest introspektywny dla f (x). Lemat Jeżeli m jest introspektywna dla wielomianów f (x) i g (x), to m jest również introspektywna dla f (x)g (x). n L = {( )i · p j : i, j ­ 0} p Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Lemat Jeżeli m i k są introspektywne dla wielomianu f (x), to iloczyn mk też jest introspektywny dla f (x). Lemat Jeżeli m jest introspektywna dla wielomianów f (x) i g (x), to m jest również introspektywna dla f (x)g (x). n L = {( )i · p j : i, j ­ 0} p P={ A Y (x + a)ea : ea ­ 0} a=0 Jarosław Grytczuk Pierwszość i złożoność Lematy o introspekcji Lemat Jeżeli m i k są introspektywne dla wielomianu f (x), to iloczyn mk też jest introspektywny dla f (x). Lemat Jeżeli m jest introspektywna dla wielomianów f (x) i g (x), to m jest również introspektywna dla f (x)g (x). n L = {( )i · p j : i, j ­ 0} p P={ A Y (x + a)ea : ea ­ 0} a=0 Każda liczba z L jest introspektywna dla każdego wielomianu z P. Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Niech G będzie zbiorem reszt (modr ) elementów zbioru L. Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Niech G będzie zbiorem reszt (modr ) elementów zbioru L. 1 G jest grupą z mnożeniem (modr ). Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Niech G będzie zbiorem reszt (modr ) elementów zbioru L. 1 G jest grupą z mnożeniem (modr ). 2 G jest generowana przez n i p. Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Niech G będzie zbiorem reszt (modr ) elementów zbioru L. 1 G jest grupą z mnożeniem (modr ). 2 G jest generowana przez n i p. G jest podgrupą grupy Z∗r elementów odwracalnych (modr ). 3 Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru L modulo r n L = {( )i · p j : i, j ­ 0} p Niech G będzie zbiorem reszt (modr ) elementów zbioru L. 1 G jest grupą z mnożeniem (modr ). 2 G jest generowana przez n i p. G jest podgrupą grupy Z∗r elementów odwracalnych (modr ). 3 4 |G | = t > (log n)2 , ponieważ ord r (n) > (log n)2 . Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Φ4 (x) = (x − i)(x − i 3 ) = x 2 + 1 Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Φ4 (x) = (x − i)(x − i 3 ) = x 2 + 1 Twierdzenie Dla każdego m ­ 1, wielomian Φm (x) ma współczynniki całkowite i jest nierozkładalny nad Z. Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Φ4 (x) = (x − i)(x − i 3 ) = x 2 + 1 Twierdzenie Dla każdego m ­ 1, wielomian Φm (x) ma współczynniki całkowite i jest nierozkładalny nad Z. x 4 − 1 = (x − 1)(x + 1)(x 2 + 1) Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Φ4 (x) = (x − i)(x − i 3 ) = x 2 + 1 Twierdzenie Dla każdego m ­ 1, wielomian Φm (x) ma współczynniki całkowite i jest nierozkładalny nad Z. x 4 − 1 = (x − 1)(x + 1)(x 2 + 1) Φ1 (x) = x − 1, Φ2 (x) = x + 1 Jarosław Grytczuk Pierwszość i złożoność Wielomiany podziału koła Φm (x) = Q (m,j)=1 j (x − ξm ), (ξm - pierwiastek pierwotny z 1 stopnia m) Φ4 (x) = (x − i)(x − i 3 ) = x 2 + 1 Twierdzenie Dla każdego m ­ 1, wielomian Φm (x) ma współczynniki całkowite i jest nierozkładalny nad Z. x 4 − 1 = (x − 1)(x + 1)(x 2 + 1) Φ1 (x) = x − 1, Φ2 (x) = x + 1 xr − 1 = Jarosław Grytczuk Y Φd (x) d|r Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A F = Zp [x]/(h(x)) - ciało p k -elementowe, k = deg h(x) Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A F = Zp [x]/(h(x)) - ciało p k -elementowe, k = deg h(x) P={ A Y (x + a)ea : ea ­ 0} a=0 Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A F = Zp [x]/(h(x)) - ciało p k -elementowe, k = deg h(x) P={ A Y (x + a)ea : ea ­ 0} a=0 Niech H będzie zbiorem reszt (modp, h(x)) wielomianów z P. Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A F = Zp [x]/(h(x)) - ciało p k -elementowe, k = deg h(x) P={ A Y (x + a)ea : ea ­ 0} a=0 Niech H będzie zbiorem reszt (modp, h(x)) wielomianów z P. 1 H jest podgrupą grupy F∗ . Jarosław Grytczuk Pierwszość i złożoność Redukcja zbioru P modulo p, h(x) h(x) | Φr (x), h(x) - wielomian nierozkładalny stopnia ord r (p) > 1 w Zp [x] (x + a)n = x n + a(modp, h(x)), 1 ¬ a ¬ A F = Zp [x]/(h(x)) - ciało p k -elementowe, k = deg h(x) P={ A Y (x + a)ea : ea ­ 0} a=0 Niech H będzie zbiorem reszt (modp, h(x)) wielomianów z P. 1 H jest podgrupą grupy F∗ . 2 H jest generowana przez wielomiany x, x + 1, x + 2, . . . , x + A Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu grupy H Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Przypuśćmy, że f (x) = g (x) w F i niech m ∈ L. Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Przypuśćmy, że f (x) = g (x) w F i niech m ∈ L. f (x m ) = g (x m ) w F Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Przypuśćmy, że f (x) = g (x) w F i niech m ∈ L. f (x m ) = g (x m ) w F x m jest pierwiastkiem wielomianu Q(y ) = f (y ) − g (y ) dla każdego m ∈ G . Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Przypuśćmy, że f (x) = g (x) w F i niech m ∈ L. f (x m ) = g (x m ) w F x m jest pierwiastkiem wielomianu Q(y ) = f (y ) − g (y ) dla każdego m ∈ G . x jest pierwiastkiem pierwotnym stopnia r w F. Jarosław Grytczuk Pierwszość i złożoność t+A t−1 . Dolne oszacowanie rzędu grupy H Lemat Jeżeli algorytm AKS odpowiedział ”PIERWSZA”, to |H| ­ t+A t−1 . Niech f (x), g (x) ∈ P i niech deg f (x), deg g (x) < t. Przypuśćmy, że f (x) = g (x) w F i niech m ∈ L. f (x m ) = g (x m ) w F x m jest pierwiastkiem wielomianu Q(y ) = f (y ) − g (y ) dla każdego m ∈ G . x jest pierwiastkiem pierwotnym stopnia r w F. Ponieważ (m, r ) = 1, więc x m też jest pierwiastkiem pierwotnym stopnia r w F. Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Ale deg Q(y ) < t. Sprzeczność! Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Ale deg Q(y ) < t. Sprzeczność! Zatem f (x) 6= g (x) w F. Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Ale deg Q(y ) < t. Sprzeczność! Zatem f (x) 6= g (x) w F. p √ √ Ponieważ log n < ord r (n) < r , więc A = r log n < r . Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Ale deg Q(y ) < t. Sprzeczność! Zatem f (x) 6= g (x) w F. p √ √ Ponieważ log n < ord r (n) < r , więc A = r log n < r . Wobec p > r , wielomiany x, x + 1, x + 2, . . . , x + A są różnymi, niezerowymi elementami ciała F. Jarosław Grytczuk Pierwszość i złożoność Dolne oszacowanie rzędu H Zatem Q(y ) ma co najmniej t = |G | różnych pierwiastków w F. Ale deg Q(y ) < t. Sprzeczność! Zatem f (x) 6= g (x) w F. p √ √ Ponieważ log n < ord r (n) < r , więc A = r log n < r . Wobec p > r , wielomiany x, x + 1, x + 2, . . . , x + A są różnymi, niezerowymi elementami ciała F. Skoro istnieje A + 1 różnych wielomianów stopnia 1 w H, więc istnieje co najmniej t+A t−1 różnych wielomianów stopnia < t w H. Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n Jarosław Grytczuk √ t . Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n √ t . n b L = {( )i · p j : 0 ¬ i, j ¬ p Jarosław Grytczuk √ t} Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n √ t . n b L = {( )i · p j : 0 ¬ i, j ¬ p √ t} Jeżeli n 6= p k , to b L > t. Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n √ t . n b L = {( )i · p j : 0 ¬ i, j ¬ p √ t} Jeżeli n 6= p k , to b L > t. Ale |G | = t, więc istnieją liczby m1 , m2 ∈ b L, m1 > m2 , takie, że m1 = m2 (modr ). Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n √ t . n b L = {( )i · p j : 0 ¬ i, j ¬ p √ t} Jeżeli n 6= p k , to b L > t. Ale |G | = t, więc istnieją liczby m1 , m2 ∈ b L, m1 > m2 , takie, że m1 = m2 (modr ). Stąd x m1 = x m2 (modx r − 1). Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Lemat Jeżeli n nie jest potęgą p, to |H| ¬ n √ t . n b L = {( )i · p j : 0 ¬ i, j ¬ p √ t} Jeżeli n 6= p k , to b L > t. Ale |G | = t, więc istnieją liczby m1 , m2 ∈ b L, m1 > m2 , takie, że m1 = m2 (modr ). Stąd x m1 = x m2 (modx r − 1). Niech f (x) ∈ P. Wówczas f (x)m1 = f (x m1 ) = f (x m2 ) = f (x)m2 (modp, x r − 1). Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Zatem f (x)m1 = f (x)m2 , przy czym równość ta zachodzi w ciele F. Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Zatem f (x)m1 = f (x)m2 , przy czym równość ta zachodzi w ciele F. To oznacza, że f (x) jest pierwiastkiem wielomianu Q 0 (y ) = y m1 − y m2 w ciele F. Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Zatem f (x)m1 = f (x)m2 , przy czym równość ta zachodzi w ciele F. To oznacza, że f (x) jest pierwiastkiem wielomianu Q 0 (y ) = y m1 − y m2 w ciele F. Wobec tego wielomian Q 0 (y ) ma co najmniej |H| pierwiastków w F. Jarosław Grytczuk Pierwszość i złożoność Górne oszacowanie rzędu grupy H Zatem f (x)m1 = f (x)m2 , przy czym równość ta zachodzi w ciele F. To oznacza, że f (x) jest pierwiastkiem wielomianu Q 0 (y ) = y m1 − y m2 w ciele F. Wobec tego wielomian Q 0 (y ) ma co najmniej |H| pierwiastków w F. Stąd √ √ n √ |H| ¬ deg Q 0 (y ) = m1 ¬ ( ) t · p t = n t . p Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . Ponieważ t > (log n)2 , więc t > Jarosław Grytczuk √ t log n, czyli t ­ B + 1. Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . √ Ponieważ t > (log n)2 , więc t > t log n, czyli t ­ B + 1. √ √ Ponieważ r > t, więc r log n > t log n , czyli A ­ B. Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . √ Ponieważ t > (log n)2 , więc t > t log n, czyli t ­ B + 1. √ √ Ponieważ r > t, więc r log n > t log n , czyli A ­ B. Zatem √ √ t +A A+B +1 2B + 1 |H| ­ ­ ­ > 2B+1 > 2 t log n = n t . t −1 B B Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . √ Ponieważ t > (log n)2 , więc t > t log n, czyli t ­ B + 1. √ √ Ponieważ r > t, więc r log n > t log n , czyli A ­ B. Zatem √ √ t +A A+B +1 2B + 1 |H| ­ ­ ­ > 2B+1 > 2 t log n = n t . t −1 B B Z poprzedniego lematu wynika, że n = p k , dla pewnego k ­ 1. Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . √ Ponieważ t > (log n)2 , więc t > t log n, czyli t ­ B + 1. √ √ Ponieważ r > t, więc r log n > t log n , czyli A ­ B. Zatem √ √ t +A A+B +1 2B + 1 |H| ­ ­ ­ > 2B+1 > 2 t log n = n t . t −1 B B Z poprzedniego lematu wynika, że n = p k , dla pewnego k ­ 1. Gdyby k > 1, to AKS odpowiedziałby ”ZŁOŻONA” w punkcie 1. Jarosław Grytczuk Pierwszość i złożoność Ostatni lemat Lemat Jeżeli algorytm AKS dał odpowiedź ”PIERWSZA” to liczba n jest pierwsza. Niech B = √ t log n . √ Ponieważ t > (log n)2 , więc t > t log n, czyli t ­ B + 1. √ √ Ponieważ r > t, więc r log n > t log n , czyli A ­ B. Zatem √ √ t +A A+B +1 2B + 1 |H| ­ ­ ­ > 2B+1 > 2 t log n = n t . t −1 B B Z poprzedniego lematu wynika, że n = p k , dla pewnego k ­ 1. Gdyby k > 1, to AKS odpowiedziałby ”ZŁOŻONA” w punkcie 1. Zatem musi być n = p, co kończy dowód. Jarosław Grytczuk Pierwszość i złożoność