Badanie pierwszości liczby, klasa NP i test Rabina

Podobne dokumenty
Liczby pierwsze wielomianowo - ekstremalnie trudne?

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Teoretyczne podstawy informatyki

Spis treści. Przedmowa... 9

ZADANIE 1. Ważenie (14 pkt)

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Przykładowe zadania z teorii liczb

Liczby pierwsze na straży tajemnic

Matematyka dyskretna

Matematyka dyskretna

Odwrotne twierdzenie Fermata. Odwrotne twierdzenie Fermata

Elementy teorii liczb. Matematyka dyskretna

TEORETYCZNE PODSTAWY INFORMATYKI

Prawa wielkich liczb, centralne twierdzenia graniczne

Kongruencje twierdzenie Wilsona

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

Matematyka dyskretna

W. Guzicki: Liczby pierwsze 1 LICZBY PIERWSZE. Warszawa, 11 kwietnia 2013 r.

Algorytmy i struktury danych. Wykład 4

Matematyka dyskretna

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Joanna Kluczenko 1. Spotkania z matematyka

Zadanie 1. Suma silni (11 pkt)

Kongruencje pierwsze kroki

Liczby pierwsze. Kacper Żurek, uczeń w Gimnazjum nr 1 im. Jana Pawła II w Giżycku.

Problem P = NP. albo czy informacja może. biec na skróty

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Metody numeryczne w przykładach

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Kongruencje. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

Kongruencje i ich zastosowania

Parametry systemów klucza publicznego

Podstawy programowania. Podstawy C# Przykłady algorytmów

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Kongruencje oraz przykłady ich zastosowań

Tajemnice liczb pierwszych i tych drugich

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

MADE IN CHINA czyli SYSTEM RESZTOWY

Wybrane zagadnienia teorii liczb

Równania wielomianowe

Maciej Grzesiak. Wielomiany

1. Wykład NWD, NWW i algorytm Euklidesa.

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

TEORETYCZNE PODSTAWY INFORMATYKI

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Rachunek prawdopodobieństwa- wykład 2

Zadania do samodzielnego rozwiązania

Sumy kolejnych bikwadratów

Matematyka dyskretna

Teoretyczne podstawy informatyki

Bezpieczeństwo systemów komputerowych

Wokół Problemu Steinhausa z teorii liczb

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Co ma piekarz do matematyki?

Algorytm i złożoność obliczeniowa algorytmu

Pierwiastki pierwotne, logarytmy dyskretne

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

1.1 Rachunek prawdopodobieństwa

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

Kongruencje. Beata Łojan. Koło Naukowe Matematyków Uniwersytetu Śląskiego w Katowicach.

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Algorytmy w teorii liczb

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego

Krzywe Freya i Wielkie Twierdzenie Fermata

Luty 2001 Algorytmy (7) 2000/2001

Matematyka dyskretna

Wykład z równań różnicowych

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

FUNKCJA POTĘGOWA, WYKŁADNICZA I LOGARYTMICZNA

Jednoznaczność rozkładu na czynniki pierwsze I

MODELE MATEMATYCZNE W UBEZPIECZENIACH

Matematyka dyskretna

a)wykaż,żejeżeli2 n 1jestliczbapierwszą,to2 n 1 (2 n 1)jestliczbądoskonałą.

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

Wykład 9: Markov Chain Monte Carlo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Algorytm. a programowanie -

Jarosław Wróblewski Matematyka Elementarna, lato 2014/15

i=0 a ib k i, k {0,..., n+m}. Przypuśćmy, że wielomian

Rozkłady prawdopodobieństwa

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

Prawdopodobieństwo i statystyka

Wykład 4. Plan: 1. Aproksymacja rozkładu dwumianowego rozkładem normalnym. 2. Rozkłady próbkowe. 3. Centralne twierdzenie graniczne

Zaawansowane algorytmy i struktury danych

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

WYRAŻENIA ALGEBRAICZNE

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Transkrypt:

Badanie pierwszości liczby, klasa NP i test Rabina Mateusz Chynowski 11 stycznia 2009 Liczby pierwsze są bardzo istotne zarówno w matematyce, jak i informatyce. W tej drugiej nauce istnieje dość poważny problem niepewnych wyników. Najczęstszymi zagadnieniami dotyczącymi liczb pierwszych są: problem pierwszości odpowiadający na pytanie: Czy dana liczba jest pierwsza? problem złożoności odpowiadający na pytanie: Czy dana liczba jest złożona? W algorytmach zwykłych oba rodzaje problemów nie różnią za bardzo. Rozwiązując jedeno z zagadnień rozwiązujemy tym samym drugie. Inaczej jest z algorytmami niedeterministycznymi, czyli takimi, których działania nie możemy przewidzieć. Zawiera ona najczęściej instrukcję choise. Algorytmy losowe należą do algorytmów niedeterministycznych. Zwykłe algorytmy badające pierwszość są wykładnicze. Najłatwiej przekonać się o tym badając pierwszość z definicjii Definicja 1 Liczba pierwsza liczba naturalna większa od 1, która ma dokładnie dwa dzielniki naturalne: 1 oraz samą siebie. Sprawdzamy zatem, czy dana liczba n nie jest podzielna przez żadną z liczb z przedziału [2;n 1].Dlaliczbyzłożonejzkcyfrton 10 k 1.Badaniewymagałoby10 k 1 2 działań. Jak widzimy liczba dzieleń wzrasta wykładniczo do wzrostu długości liczby n. Warto wspomnieć, że sito Eratostenesa jest jeszcze gorsze. Wykonuje on wykładniczą liczbę operacji, wykorzystuje on także pamięć wykładniczo. Rysunek 1: Vaughan Robert Pratt W 1975 roku Vaughan Robert Pratt stwierdził, że problem pierwszości należy do klasy NP. Klasę NP tłumaczy się efektywniej przez wprowadzenie definicji klasy P. 1

Definicja 2 Klasa P rodzina problemów, których rozwiązanie wyliczamy w czasie wielomianowym. Tym samym Definicja 3 Klasa NP rodzina problemów, których rozwiązanie wyliczane jest algorytmem o czasie wykładniczym, zaś sprawdzenie poprawności wyniku w czasie wielomianowym. Formalna deficicja klasy NP: Jeżeli problem A należy do klasy NP oraz istnieje wielomian ω i wielomianowy problem B takie, że: m A k r(k) ω(r(m)) <m,k> Bgdzier(m) rozmiarliczbym.problemy bardziej skomplikowane nie należą do klasy NP to znaczy te problemy, których rozwiązanie jest bardziej szczegółowe od tak lub nie (np. znalezienie dzielników). Informatycy badają czy klasa problemów P jest równoważna klasie NP. Wystarczyłobywskazaćjedynie,żekażdyproblemzklasyNPdasięrozwikłaćalgorytmemzklasyP. Mimostarańwiększościnformatykówjestzdania,żeP NP. Do dalszych rozważań potrzebować będziemy potrzebowali definicji pierwiastka pierwotnego: Definicja4Pierwiastekpierwotnymodulon liczbazprzedziału<1,n 1>,której potęgimodulondająwszystkieliczbyz<1,n 1>. Przykład 1 Podnieśmy 2 do kolejnych potęg modulo 5: 2 1 (mod5)=2 2 2 (mod5)=4 2 3 (mod5)=3 2 4 (mod5)=1 Liczba 2 jest pierwiastkiem pierwotnym modulo 5. Zaś: Przykład 2 Sprawdźmy czy 2 jest pierwiastkiem pierwotnym modulo 7: 2 1 (mod7)=2 2 2 (mod7)=4 2 3 (mod7)=1 2 4 (mod7)=2 2 5 (mod7)=4 2 6 (mod7)=1... Jak widzimy 2 nie jest już pierwiastekiem pierwotnym modulo 7. 2

Zachodzi Twierdzenie1Liczbanaturalnam>1jestpierwszawtedyitylkowtedy,gdywZ m istnieje pierwiastek pierwotny modulo m. Zatem możemy dość sprawnie decydować czy dana liczba jest pierwsza czy złożona sprawdzając tylko czy istnieje pierwiastek pierwotny. Badaniem czy a jest pierwiastkiem pierwotnym modulo m zajmuje się test Lucasa, który sprawdza: czya m 1 1 (modm)oraz czy q (m 1) q P a m 1 q 1 (modm) Definicja 5 Certyfikatem pierwszości liczby n nazywamy ciąg danych świadczących o pierwszości liczby n. Test Lucassa pokazuje, że certyfikatem liczby n może być ciąg danych złożony z pierwiastka pierwotnego modulo n oraz wszystkich dzielników liczby n 1. Nie jest to jednak najlepszy certyfikat, gdyż powinien on obejmować test pierwszości dzielników. Pratt zauważył, że jeżeli niepełny certyfikat Lucasa uzupełnimy o niepełne certyfikaty pierwszości wymionionych w nim liczb pierwszych, a także o niepełne certyfikaty liczb pierwszych w dołączonych certyfikatach itd., to cerrtyfikat pierwszości stanie się pełny. Rysunek 2: Leonard Adleman Przykład 3 Certyfikatem pierwszości liczby 23 jest: (5,2,11(2,2,5(3,2))),gdyż5jestpierwiastkiempierwotnymmodulo23,22=2 11.2jest liczbąpierwszązdefinicji.2jestpierwiastkiempierwotnymmodulo11oraz10=2 5. Analogicznie3jestpierwiastkiempierwotnymmodulo5,a4=2 2. Inne algorytmy badające pierwszość: 1976 rok Gary Miller przedstawił test pierwszości w oparciu o hipotezę Riemanna, który został odrzucony 1983 rok Adleman, Pomerance, Rumeley 2002 rok Manindra Agraval wraz zuczniami podali I deterministyczny test pierwszości, który nie jest wykładniczy, ale nie jest też jeszcze wielomianowy podali deterministyczny, wielomianowy test pierwszości 3

Rysunek 3: Manindra Aragraval Twierdzenie 2(M. Agravala) Przyjmijmy, że liczby naturalne m i a są względnie pierwsze.liczbamjestpierwszawtedyitylkowtedy,gdywielomian(x a) m owspółczynikachzpierścieniaresztmodulomjestrównywielomianowix m a. Autorom testu kłopty sprawiło wykazanie wielomianowości algorytmu. Ostatecznie pokazali,żedlaliczborozmiarzenalgorytmwykonujeconajwyżejc n 12 operacjidlapewnego c = const. Ciężko jest znaleźć jednak zastosowanie praktyczne wyniku prac Agravala. Wykorzystanie algorytmów probabilistycznych wymaga zupełnie innego sposobu myślenia otrzymujemy odpowiedź nie lub najprawdopodobniej tak. Taka rodzina algorytmów jest bardzo szybka, jednak za cenę możliwliwości popełnienia błędu. Michael Rabin w 1980 roku podał jeden z najbardziej znanych losowych testów pierwości. Rysunek 4: Michael O. Rabin 4

MichealOserRabinurodziłsięw1931rokuwBreslauwNiemczech (dzisiejszy Wrocław). Przed ukończeniem ósmego roku życia przeniósł się do Palestyny. W 1953 roku ukończył studia matematyczne na Uniwersytecie Hebrajskim w Jerozolie. Rabin brał udział w kreowaniu teorii złożoności obliczeniowej. KształtowałpojęcieklasyNP.W1976rokuzostałzatouhonorowanywrazz Dana Scott nagrodą Turinga. Osiągnięcia ma również w kryptografii. Michael Rabin otrzymał tytuł doktor honoris causa na wielu uniwersytetach, także na Uniwersytecie Wrocławskim. Uroczyste nadanie tytułu odbyłosię13lipca2007roku. Rozważmy test Fermata(dla danej liczby m): wylosujmya<misprawdźmyczya m 1 1 (modm) jeśli tak m prawdopodobnie jest liczbą pierwszą, jeślinie mjestliczbązłożoną Algorytm ten jest algorytmem Monte Carlo. Przy wielokrotnym powtarzaniu algorytmu M-C prawdopodobieństwo błędu dąży do 0. Twierdzenie 3 Liczba Carmichaela Liczba naturalna n jest liczbą Carmichaela wtedy i tylko wtedy, gdy: 1. n jest liczbą złożoną, 2. a N 1<a<n a n, liczba(a n 1 1)jestpodzielnaprzezn. Definicja 6 Algorytmy Monte Carlo rodzina algorytów probabilistycznych, których prawdopodobieństwobłędujestmniejszeodc=const,takiejżec<1. RozważmyliczbęCarmichaelam=p q r.istnieje(p 1) (q 1) (r 1)liczbwzględniepierwszychzm,zatemprawdopodobieństwobłęduP (p 1) (q 1) (r 1). Ze wzrostem p q r 1 liczbp,qorazrp 1,zatemtestFermataniejestalgorytmMonteCarlo. Twierdzenie Fermata musimy uzupełnić o informacje o liczbach pierwszych. Gary Miller w algorytmie skorzystł z: Twierdzenie 4 Jeżeli m jest liczbą pierwszą, to każda liczba x, której kwadrat przystaje do1,przystajemodulomdo 1,albodo1. Każdyznatotwierdzeniezrozwiązaniarównaniax 2 =1 x= 1 x=1. W dalszych rozważaniach potrzebne nam będzie: Twierdzenie 5 Jeżeli a 0<a<m a m a m 1 1 (modm),oraz x 2 1 (modm)tylkodlax 1 (modm) x 1 (modm), 5

to m jest liczbą pierwszą. Połączmy to twierdzenie z poprzednim oraz z twierdzeniem Fermata. Liczba a świadczy o pierwszości m, jeżeli: a n 1 (modm),lub a 2i n 1 (modm),i N,i<k. Pojęcie świadczenia o pierwszości pozwala na wprowadzenie twierdzenia: Twierdzenie 6 Liczba m jest pierwsza wtedy i tylko wtedy, gdy każda dodatnia liczba a<mświadczyopierwszościm. Michael Rabin zaproponował na bazie powyższego twierdzenia test pierwszości m: wylosuja N 0<a<misprawdź,czyświadczyopierwszościm, jeżeli świadczy, to przekaż, że m jest prawdopodobnie liczbą pierwszą, w przeciwnym razie przekaż, że m jest liczbą złożoną. AlgorytmRabinapopełniabłądnajwyżejzprawdopodobieństwem 1 2,zatemjesttoalgorytmMonteCarlo.Jeżelimjestliczbązłożonątonajwyżej 1 4 liczbświadczyopierwszości m(oczywiście mniejszych od m). Zatem prawdopodobieństwo błędu spada dwukrotnie. Po t-krotnym powtarzaniu testu Rabina otrzymamy prawdopodobieństwo błędu nie przekroczy 1 4 t. 6