WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

Podobne dokumenty
ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

Semestr letni 2014/15

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2015/16

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

Ukªady równa«liniowych

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Metody dowodzenia twierdze«

1 Bª dy i arytmetyka zmiennopozycyjna

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

x y x y x y x + y x y

Metodydowodzenia twierdzeń

Wielomiany o wspóªczynnikach rzeczywistych

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

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Materiaªy do Repetytorium z matematyki

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Interpolacja funkcjami sklejanymi

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

ELEMENTY TEORII LICZB. Grzegorz Szkibiel. Jesie«2004/05

Podstawy matematyki dla informatyków

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

ZADANIA. Maciej Zakarczemny

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Funkcje, wielomiany. Informacje pomocnicze

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Twierdzenie Wedderburna Witold Tomaszewski

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Matematyka dyskretna dla informatyków

Wybrane zagadnienia teorii liczb

Informacje pomocnicze

Przekroje Dedekinda 1

Matematyka dyskretna dla informatyków

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Liniowe zadania najmniejszych kwadratów

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Macierze i Wyznaczniki

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

2 Liczby rzeczywiste - cz. 2

ANALIZA MATEMATYCZNA Z ALGEBR

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

O pewnym zadaniu olimpijskim

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

istnienie elementu neutralnego dodawania (zera): 0 K a K a + 0 = a, istnienie elementu neutralnego mno»enia (jedynki): 1 K a K a 1 = a,

Przykładowe zadania z teorii liczb

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

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

1 Metody iteracyjne rozwi zywania równania f(x)=0

Czy funkcja zadana wzorem f(x) = ex e x. 1 + e. = lim. e x + e x lim. lim. 2 dla x = 1 f(x) dla x (0, 1) e e 1 dla x = 1

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

Liczby zmiennoprzecinkowe

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

Wykªad 3. Funkcje skrótu

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

Macierze i Wyznaczniki

Zbiory i odwzorowania

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Ekstremalnie fajne równania

Proste modele o zªo»onej dynamice

Algorytmy i struktury danych. Wykład 4

Lab. 02: Algorytm Schrage

Opis matematyczny ukªadów liniowych

MADE IN CHINA czyli SYSTEM RESZTOWY

Liczby zespolone. dr Krzysztof yjewski Mechatronika; S-I 0.in». 6 pa¹dziernika Oznaczenia. B dziemy u»ywali nast puj cych oznacze«:

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

Kongruencje twierdzenie Wilsona

Statystyka matematyczna - ZSTA LMO

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Zadania do samodzielnego rozwiązania

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

CAŠKOWANIE METODAMI MONTE CARLO Janusz Adamowski

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

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Algorytmy w teorii liczb

1. Rozwiązać układ równań { x 2 = 2y 1

Transkrypt:

WST P DO KRYPTOGRAFII Grzegorz Szkibiel Jesie«2012/13

Spis tre±ci 1 Kryptograa a steganograa 5 1.1 Steganograa........................... 6 1.2 Szyfry przestawieniowe...................... 8 1.3 Systemy kryptograczne..................... 9 2 Klasyczne metody szyfrowania 12 2.1 Szyfry cykliczne.......................... 12 2.2 Monoalfabetyczny szyfr Beauforta................ 13 2.3 Kody aniczne jednowymiarowe................. 14 2.4 Permutacje alfabetu....................... 15 2.5 Analiza cz sto±ci wyst powania liter............... 16 2.6 Homofony i nulle......................... 17 2.7 Jednostki dwuliterowe czyli digramy............... 18 2.8 Szyfr Playfaira.......................... 20 2.9 Podwójny szyfr Playfaira..................... 21 2.10 szyfr Delastelle'a......................... 22 2.11 Jednostki wieloliterowe...................... 23 2.12 Szyfry polialfabetyczne...................... 23 2.13 Ša«cuch szyfrów i DES...................... 28 3 Maszyny szyfruj ce 32 3.1 Zasada dziaªania......................... 32 3.2 Jak zªamano szyfr ENIGMY................... 36 4 Macierze szyfruj ce 41 4.1 Algebra liniowa modulo N.................... 41 4.2 Szyfry Hill'a............................ 44 4.3 Aniczne przeksztaªcenia szyfruj ce............... 48 2

5 Pakowanie plecaka 50 5.1 Postawienie problemu....................... 50 5.2 Szybko rosn ce ci gi....................... 51 5.3 Kryptosystem oparty na problemie pakowania plecaka............. 53 6 Systemy z publicznym kluczem 56 6.1 Numeryczna funkcja jednokierunkowa.............. 57 6.2 Funkcje skrótu.......................... 58 6.3 poufno± i autentyczno±...................... 58 6.4 Wymiana kluczy......................... 60 6.5 2-1 funkcje jednokierunkowe................... 60 7 System RSA 62 7.1 Rozkªad liczb na czynniki.................... 62 7.2 Liczby wybrane losowo...................... 63 7.3 Zasada dziaªania systemu RSA................. 64 7.4 Wpadka systemowa wspólny moduª............... 65 7.5 Wpadka systemowa niski wykªadnik............... 65 8 Teorio-liczbowe podstawy RSA 67 8.1 Systemy pozycyjne........................ 67 8.2 Iterowane podnoszenie do kwadratu............... 69 8.3 Twierdzenie Eulera i Maªe Twierdzenie Fermata.................... 69 8.4 liczby pseudo-pierwsze...................... 71 8.5 Chi«skie twierdzenie o resztach................. 74 8.6 Kongruencje stopnia 2...................... 77 8.7 Gra w orªa i reszk przez telefon................. 80 9 Zastosowania arytmetyki modulo m do rozkªadu liczb 83 9.1 Wzory skróconego mno»enia................... 83 9.2 Metoda ρ rozkªadu na czynniki................. 85 9.3 Metoda faktoryzacji Fermata................... 87 9.4 Bazy rozkªadu........................... 88 3

10 Logarytm dyskretny 92 10.1 Poj cie logarytm dyskretny................... 92 10.2 System DiegoHellmana uzgadniania klucza........................ 93 10.3 System kryptograczny Masseya-Omury............ 95 10.4 System ElGamala......................... 96 11 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 97 11.1 Kolorowanie mapy........................ 97 11.2 Logarytm dyskretny....................... 99 11.3 Przekazy nierozró»nialne..................... 100 11.4 Dowód faktoryzacji........................ 102 4

Rozdziaª 8 Teorio-liczbowe podstawy RSA 8.1 Systemy pozycyjne Stosowany powszechnie system zapisu liczb nazywamy systemem pozycyjnym, poniewa» znaczenie cyfry zale»y od pozycji, na której si owa cyfra znajduje. Poza tym, nasz system liczenia nazywamy dziesi tnym, poniewa» mamy dokªadnie 10 cyfr. Liczba cyfr w systemie pozycyjnym zale»y od podstawy. Dokªadnie, dowoln liczb caªkowit nieujemn n zapisujemy przy podstawie b 2 w postaci (d k 1 d k 2... d 1 d 0 ) b, (8.1) gdzie d k 1, d k 2,..., d 1, d 0 s liczbami caªkowitymi nieujemnymi oraz niewi kszymi od b 1 nazywanymi cyframi. Zapis (8.1) oznacza,»e n = d k 1 b k 1 + + d 1 b + d 0. (8.2) Je»eli n jest liczb ujemn to wyra»enie po prawej stronie równo±ci (8.2) zacz liby±my od znaku. Je»eli d k 1 nie jest zerem, to mówimy,»e n jest liczb k-cyfrow w systemie pozycyjnym o podstawie b. Je»eli b = 10 to nawiasy w (8.1) opuszczamy, gdy» wtedy mamy do czynienia ze zwykªym dziesi tnym systemem pozycyjnym. Podobnie opu±cimy nawiasy gdy wybór podstawy jasno wynika z kontekstu. Zapis (8.2) nazywamy rozwini ciem liczby n przy podstawie b. Je»eli b > 10, to pisownia niektórych cyfr jest uci»liwa (wymaga dodatkowych nawiasów) lub niejasna: (101) b mo»na rozumie na dwa sposoby. 67

Dlatego dla oznaczenia cyfr 10, 11, 12,... u»ywamy liter: A, B, C,... Oczywi±cie mo»na u»ywa liter lub innych znaków dla oznaczenia wszystkich cyfr. Na przykªad dla podstawy 26, która jest u»ywana w kryptograi, cyframi s po prostu litery alfabetu ªaci«skiego. Cz sto zdarza si,»e trzeba przej± od jednej podstawy systemu pozycyjnego do drugiej. Zwykle jest to przej±cie do podstawy 10 lub od podstawy 10. Przechodzenie do podstawy 10 polega na obliczeniu wyra»enia po prawej stronie (8.2). Gorzej jest przej± od podstawy 10 do innej podstawy. Najbardziej naturalnym sposobem jest sekwencyjne dzielenie z reszt, które zademonstrujemy na przykªadzie. 8.1 Przykªad. Zapiszemy liczb 346 w systemie trójkowym, czyli przy podstawie 3. Dzielimy 346 na 3 otrzymuj c 115, reszta 1. Zatem 346 = 115 3+1. Teraz dzielimy 115 na 3 otrzymuj c 38, reszta 1. St d 346 = 38 3 2 +1 3+1. Kontynuuj c ten proces otrzymamy czyli 346 = (110211) 3. 346 = 3 5 + 3 4 + 2 3 2 + 3 1 + 1, Je»eli przechodzimy od podstawy b 1 10 do podstawy b 2 10, to mo»na tu przechodzi po±rednio przez podstaw 10. Czasem jednak bardziej efektywne jest zapisanie b 1 i cyfr w systemie o podstawie b 2 oraz odpowiednie pogrupowanie. Je»eli dodatkowo b 1 jest pot g b 2, to sposób ten jest bardzo szybki. Przykªady 8.2. Zapiszemy (548) 16 w systemie dwójkowym. Poniewa» 16 = 2 4, 5 = 1 2 2 + 1, 4 = 1 2 2 oraz 8 = 1 2 3, mamy (548) 16 = 5 16 2 + 4 16 + 8 = 1 2 10 + 1 2 8 + 1 2 6 + 1 2 3 = (10101001000) 2. 8.3. Zapiszemy n = (212021) 3 w systemie o podstawie 9. Grupujemy cyfry po 2 (bo 9 = 3 2 ) zaczynaj c od prawej strony: 21, 20, 21. (Je±li,,nie starcza cyfr na ostatni grup, dodajemy z przodu odpowiedni liczb zer. Poniewa» (21) 3 = 2 3 + 1 = 7, a (20) 3 = 2 3 = 6, wi c n = (767) 9. Dziaªania arytmetyczne na liczbach w systemie o podstawie b wykonujemy bez anga»owania w to podstawy 10. Dodawanie, odejmowanie i mno»enie pisemne przeprowadzamy tak jak dotychczas, przy czym przy,,po»yczaniu bierzemy nie 10 lecz b. 68

Tak»e uªamki mo»na rozwija przy dowolnej podstawie. Maj one (sko«- czon lub niesko«czon posta (d k 1 d k 2... d 1 d 0, d 1 d 2... ) b. Warto tu zauwa»y,»e przy zmianie podstawy, mog te» zmieni si uªamki okresowe. Na przykªad 0, 33333 = (0, 1) 3, a 0, 5 = (0, 11111... ) 3. 8.2 Iterowane podnoszenie do kwadratu Podnoszenie du»ych liczb do pot g o jeszcze wi kszych wykªadnikach nie jest obliczeniowo trudne, ale gromadzenie du»ych liczb zabiera du»o pami ci. W przypadku zastosowa«w systemach kryptogracznych, mamy zawsze do czynienia z dziaªaniami w sko«czonych strukturach algebraicznych. To znacznie zmniejsza rz d liczb, którymi operujemy. Dla przykªadu obliczymy poteg 348 171 ( mod 1019). W tym celu zapisujemy 348 171 = 348 27 +2 5 +2 3 +2+1 (((348 = ( ) ) ) 2 2 2 2 348 348 ) 2 2 348 2 348. Nasze pot gowanie sprowadza si zatem do podnoszenia do kwadratu lub mno»enia przez 348, przy czym za ka»dym razem wynik redukujemy modulo 1019. Po wykonaniu oblicze«otrzymujemy 127. 8.3 Twierdzenie Eulera i Maªe Twierdzenie Fermata Twierdzenia te mog znacznie uªatwi pot gowanie liczb w arytmetyce modularnej. Uzasadniaj te», dlaczego zaszyfrowany za pomoc RSA szyfr mo»na te» rozszyfrowa. 8.4 Twierdzenie. (Eulera) Je»eli NWD(a, m) = 1, to a ϕ(m) 1 (mod m). Twierdzenie to mo»e by udowodnione za pomoc elementarnych metod, my jednak u»yjemy tu nieco,,ci»szej broni, a mianowicie znanego z teorii grup faktu,»e dowolny element grupy podniesiony do pot gi, której wykªadnikiem jest rz d grupy daje element neutralny. 69

Dowód. W grupie elementów odwracalnych pier±cienia Z m mamy dokªadnie ϕ(m) elementów. Jest to wi c grupa sko«czona rz du ϕ(m). Zatem dowolny jej element podniesiony do pot gi ϕ(m) daje element neutralny, czyli 1. Šatwym wnioskiem z twierdzenia Eulera jest nast puj ce twierdzenie. 8.5 Twierdzenie. (Maªe twierdzenie Fermata) Je»eli p jest liczb pierwsz oraz p a, to a p 1 1 (mod p). Dla dowolnej liczby caªkowitej b zachodzi kongruencja b p b (mod p). Nieco trudniejszy jest dowód poni»szego wniosku. 8.6 Wniosek. Je±li p a i n m (mod p 1), to a n a m (mod p). Dowód. Przypu± my,»e n > m. Poniewa» p 1 n m, wi c mo»emy napisa n = m + c(p 1) dla pewnej liczby naturalnej c. Mno»ymy przez siebie c razy kongruencj a p 1 1 (mod p) aby otrzyma a c(p 1) 1 (mod p). eby otrzyma tez wystarczy pomno»y stronami ostatni kongruencj przez oczywiste przystawanie a m a m (mod p). Podobnie uzasadniamy nast pny wniosek. 8.7 Wniosek. Je»eli liczby a oraz m s wzgl dnie pierwsze oraz zachodzi kongruencja r s (mod ϕ(m)), to a r a s (mod m). Podamy teraz dwa przykªady zastosowa«powy»szych wniosków. Przykªady. 8.7. Znajdziemy ostatni cyfr liczby 2 100000000000 w systemie o podstawie 7. Wykªadnik 100000000000 daje reszt 4 przy dzieleniu przez 7 1 = 6. St d 2 100000000000 2 4 (mod 7). Poniewa» 2 4 = 16, a 16 2 (mod 7), wi c szukan ostatni cyfr jest 2. 8.8. Znajdziemy ostatni cyfr 3 1234 w ukªadzie szestnastkowym. Mamy tu ϕ(16) = 7, a 1234 2 (mod 7). Zatem 3 1234 9 (mod 16) i ostatni cyfr jest 9. Okazuje si,»e najni»sza pot ga a w Twierdzeniu Eulera jest cz sto mniejsza ni» ϕ(m). Wynika to z faktu,»e rz d grupy nie jest, ogólnie rzecz bior c, rz dem elementu, ani nawet wykªadnikiem grupy. Na przykªad ϕ(105) = 48, ale dla a wzgl dnie pierwszych ze 105 mamy a 12 1 (mod 105). Poni»sze twierdzenie pokazuje jak ulepszy pot g a. 70

8.8 Twierdzenie. Przypu± my,»e m = p α 1 1 p α 2 2... p α k ró»ne i p α i i m. Niech n = NWW(ϕ (p α 1 1 ), ϕ (p α 2 2 ),..., ϕ (p α k k, gdzie wszystkie p i s k )). Wtedy mamy a n 1 (mod m) dla ka»dego a wzgl dnie pierwszego z m. Dowód. Z twierdzenia Eulera wynika a ϕ(pα i i ) 1 (mod p α i i ) dla ka»dego i {1, 2,..., k}. Mno» c t kongruencj stronami przez siebie n/p α i i razy otrzymujemy a n 1 (mod p α i i ) dla ka»dego i. St d bezpo±rednio wynika,»e dla dowolnego i mamy p α i i a n 1. Zatem i m a n 1, a to nam daje tez. Wracaj c do uwagi przed powy»szym twierdzeniem, zauwa»my,»e 105 = 3 5 7 i 12 = NWW(ϕ(3), ϕ(5), ϕ(7)) = NWW(2, 4, 6). 8.9 Przykªad. Obliczymy 2 1000000 modulo 77. Mamy tu 77 = 7 11, ϕ(7) = 6, ϕ(11) = 10, NWW(6, 10) = 30. St d 2 30 1 (mod 77). Nast pnie mamy 1000000 = 30 33333 + 10, wi c 2 1000000 2 10 23 (mod 77). 8.4 liczby pseudo-pierwsze Potrzebne s du»e liczb pierwsze i to takie, których generalnie nikt nie zna. Pojawia si zatem potrzeba szybkich algorytmów szukaj cych liczb pierwszych lub testuj cych liczby na pierwszo±. Wi kszo±, a w zasadzie prawie wszystkie takie algorytmy s algorytmami probabilistycznymi, w których prawdopodobie«stwo,»e otrzymamy liczb pierwsz nie jest równe 1. Mo»e si wi c zdarzy,»e otrzymana liczba jest zªo»ona. Warunki równowa»ne pierwszo±ci liczby, jak np. Twierdzenie Wilsona, które mówi,»e liczba n jest pierwsza wtedy i tylko wtedy, gdy (n 1)! 1 (mod n), nie s dobrym kryterium ªatwiej sprawdzi czy n jest liczb pierwsz dziel c j przez kolejne liczby nieparzyste ni» oblicza (n 1)! (nawet modulo n). Dobrym testem pierwszo±ci jest Maªe Twierdzenie Fermata (8.5). Problem w tym, i» nie jest to warunek równowa»ny pierwszo±ci. Na przykªad, 2 340 1 (mod 341), chocia» 341 nie jest liczb pierwsz. Nasze rozwa»ania oprzemy jednak na tym twierdzeniu, badaj c które liczby zªo»one speªniaj tez Maªego Twierdzenia Fermata. Liczb zªo»on n nazywamy pseudopierwsz przy podstawie a (lub a- pseudopierwsz ), je±li a n 1 1 (mod n). (8.3) 71

Piszemy wówczas w skrócie: n jest psp(a). Zauwa»my,»e je»eli NWD(a, n) = 1, to warunek 8.3 jest równowa»ny kongruencji a n 1 1 (mod n). Zauwa»my,»e liczba 341 jest 2-pseudopierwsza. Jak pokazaª Sarrus w 1819 roku, jest to najmniejsza liczba pseudopierwsza przy podstawie 2. Kolejne odkrywane liczby psp(2) byªy nieparzyste. Dopiero w 1950, D.H. Lehmer odkryª pierwsz parzyst liczb 2-pseudopierwsz. Najmniejsz liczb 3-pseudopierwsz jest natomiast 91. Okazuje si, ze liczb pseudopierwszych (o dowolnej podstawie) jest niesko«czenie wiele, ale s one rozmieszczone do±»zadko". Na przykªad mamy tylko 5597 liczb psp(2) mniejszych od miliarda. Tymczasem liczb pierwszych w tym przedziale jest ponad 50 milionów. Zatem, je»eli pewna liczba n mniejsza od miliarda speªnia warunek 8.3 dla a = 2, to prawdopodobie«stwo,»e n jest pierwsza jest wi ksze od 0, 9999. Liczba, która jest psp(2) nie musi by jednocze±nie psp(3). Okazuje si,»e liczb mniejszych od miliarda, które s pseudopierwsze jednocze±nie przy podstawie 2, 3 i 5 jest tylko 685. Mo»na wi c zrobi caªkiem por czn tablic tych liczb, która pozwoli nam odrzuca liczby zªo»one speªniaj ce tez Maªego Twierdzenia Fermata. Wydaje si wi c,»e bior c odpowiednio du»o pocz tkowych liczb pierwszych jako podstawy dojdziemy w ko«cu do sytuacji, w której nie znajdziemy liczb pseudopierwszych mniejszych od okre±lonej liczby. Jak odkryª w 1912 roku R.D. Carmichael, jest to sytuacja niemo»liwa. Liczb zªo»on n nazywamy liczb Carmichaela, je±li n jest psp(a) dla ka»dej liczby a wzgl dnie pierwszej z n. Jak pokazaª w roku 1992 A. Granville, liczb Carmichaela jest niesko«czenie wiele. Podamy przykªad jednej z nich. 8.10 Przykªad. Mamy 561 = 3 11 17. Niech a b dzie liczb wzgl dnie pierwsz z 561. Korzystaj c z Maªego Twierdzenia Fermata, otrzymujemy: a 2 1 (mod 3) a 560 (a 2 ) 280 1 (mod 3) a 10 1 (mod 11) a 560 (a 10 ) 56 1 (mod 11) a 16 1 (mod 17) a 560 (a 16 ) 35 1 (mod 17). Dalej, z chi«skiego twierdzenia o resztach, dostajemy a 560 1 (mod 561), co oznacza,»e 561 jest liczb Carmichaela. Do± du»y post p w skuteczno±ci testów opartych na liczbach pseudopierwszych daje nast puj ca obserwacja. Je±li liczba p jest pierwsza, to kongruencja x 2 1 (mod p) ma dokªadnie 2 rozwi zania: 1 i 1 (twierdzenie Lagrange'a). Z tego samego twierdzenia wynika,»e je»eli x 2 1 (mod n) 72

ma wi cej ni» dwa rozwi zania, to n musi by liczb zªo»on. Zatem problem testowania liczby n na pierwszo± sprowadza si do szukania nietrywialnych pierwiastków stopnia 2 z jedynki modulo n. Z oczywistych wzgl dów, b dziemy dalej rozwa»a tylko liczby nieparzyste n. Skoro n jest nieparzysta, to n 1 mo»na zapisa w postaci 2 r s, gdzie s jest liczb nieparzyst oraz r > 0. Przypu± my,»e liczba n jest pierwsza lub pseudopierwsza przy podstawie a. Wówczas a n 1 1 (mod n). Rozwa»amy po kolei liczby x 0 = a s mod n, x 1 = a 2s mod n,... x r = a 2rs mod n. Zauwa»my,»e aby obliczy warto±ci wszystkich wyrazów ci gu X = (x 0, x 1,..., x r ), wystarczy obliczy x 0, a nast pnie podnosi j sukcesywnie do kwadratu i redukowa modulo n otrzymuj c kolejne wyrazy. Zauwa»my,»e mamy tu 3 mo»liwo±ci: 1. istnieje 0 < t r, takie»e x t = 1 oraz x t 1 = 1, 2. istnieje 0 < t r, takie»e x t = 1, x t 1 ±1, 3. x 0 = 1. Oczywi±cie, je±li x t = 1, to dla i > t mamy x i = 1. Zatem je±li w pewnym momencie konstrukcji ci gu X pojawi si 1, to wszystkie nast pne wyrazy te» s równe 1. Poniewa» x r = a n 1, wi c x r = 1. Je±li speªniony jest warunek 2, to oznacza to,»e kongruencja x 2 1 (mod n) ma wi cej ni» dwa pierwiastki (bo 1, 1 oraz x t 1 ), czyli n na pewno nie jest liczb pierwsz. Pozostaªe przypadki daj nast puj c denicj. Przypu± my,»e n jest nieparzyst psp(a). Mówimy,»e n jest liczb silnie pseudopierwsz, przy podstawie a lub spsp(a), je»eli a s 1 (mod n) lub istnieje 0 < t < r, takie»e a 2ts 1 (mod n), gdzie n 1 = 2 r s, s jest liczb nieparzyst oraz r > 0. W terminologii ci gu X mamy,»e n jest spsp(a), je±li jest speªniony warunek 1 lub 3. 8.11 Przykªad. Rozwa»my najmniejsz psp(2), czyli 341. Mamy 340 = 2 2 85 oraz x 0 = 32, x 1 =1. Oznacza to,»e 341 nie jest spsp(2). Co wi cej, poniewa» x 0 jest nietrywialnym pierwiastkiem kwadratowym z 1 modulo 341, wi c mo»emy znale¹ rozkªad 341 obliczaj c NWD(32 1, 341) = 31 oraz NWD(32 + 1, 341) = 11. 73

8.12 Przykªad. We¹my n = 561. Jest to liczba Carmichaela, czyli jest ona pseudopierwsza przy ka»dej podstawie. Mamy 560 = 2 4 35 i niech a = 2. Wówczas x 0 = 263, x 1 = 166, x 2 = 67, x 3 = 1. Zatem 561 nie jest spsp(2). 8.13 Przykªad. Najmniejsz liczb silnie pseudopierwsz przy podstawie 2 jest 2047 = 23 89. Poka»emy,»e jest to istotnie liczba silnie pseudopierwsza. Mamy 2046 = 2 1023 oraz x 0 = 1. Wszystkich liczb psp(2) mniejszych od dziesi ciu miliardów jest 14884, ale liczb spsp(2) jest ju» tylko 3291. Najmniejsz liczb b d c jednocze±nie spsp(2) oraz spsp(3) jest 1373653 = 829 1657. Nie ma liczby mniejszej od dziesi ciu miliardów, która by byªa jednocze±nie spsp(a) dla 2 a 13. Mimo to liczb silnie pseudopierwszych przy dowolnej podstawie jest niesko«czenie wiele, co udowodnili C. Pomerance, J.L. Selfridge i S.S. Wagsta w 1980 roku. 8.5 Chi«skie twierdzenie o resztach Twierdzenie, które tu przedstawimy zostaªo odkryte i wykorzystywane w ±redniowiecznych Chinach. Przyczyn tego odkrycia byªy trudno±ci z mno»eniem i dodawaniem du»ych liczb ªatwiej jest nauczy si na pami kilku kombinacji, ni» wykonywa dziaªania arytmetyczne w pami ci. A dokªadnie, kiedy dowódca chciaª zliczy swoje wojsko, kazaª ustawi si»oªnierzom w dwu-szeregu, nast pnie w trzy-szeregu, potem w pi cio-szeregu itd. Liczba,,niesparowanych»oªnierzy w ka»dym z tych ustawie«(czyli reszty z dzielenia ogólnej liczby»oªnierzy przez 2, 3, 5,... ) dawaªy liczb wszystkich»oªnierzy. eby skonkretyzowa nasze my±lenie, rozwa»my nast puj cy przykªad. 8.14 Przykªad. Po ustawieniu caªego wojska w 3-, 5- i 7-szeregu dostali±my, odpowiednio 2, 1 oraz 6 niesparowanych»oªnierzy. Jaka jest liczebno± oddziaªu, je»eli wiadomo,»e»oªnierzy jest mniej ni» 100? Formalizuj c zadanie, niech x b dzie liczb»oªnierzy. Zatem reszty z dzielenia x przez 3, 5 oraz 7, to 2, 1 i 6. St d x 2 (mod 3) (8.4) x 1 (mod 5) (8.5) x 6 (mod 7) (8.6) 74

Powy»szy system trzech kongruencji rozwi»emy korzystaj c z dowodu nast pnego twierdzenia. 8.15 Twierdzenie (Chi«skie twierdzenie o resztach). Przypu± my,»e m 1, m 2,..., m r s parami wzgl dnie pierwsze. Wówczas ukªad kongruencji x a 1 (mod m 1 ) x a 2 (mod m 2 ). x a r (mod m r ) (8.7) ma jednoznaczne rozwi zanie modulo m 1 m 2... m r. Dowód. Wprowad¹my nast puj ce oznaczenia: M = m 1 m 2... m r, M i = M m i, x i = M 1 i mod m i dla 1 i r. Rozwa»my teraz liczb x = a 1 M 1 x 1 + a 2 M 2 x 2 + + a r M r x r. Poniewa» dla j i zachodzi M j 0 (mod x i ), wi c x a i M i x i (mod m i ) dla ka»dego i. Ale M i x i 1 (mod m i ), wi c x a i (mod m i ) dla 1 i r. Pozostaje jeszcze udowodni jednoznaczno±. Niech x 1 oraz x 2 b d dwoma rozwi zaniami ukªadu (8.7). Zatem x 1 x 2 (mod m i ) dla 1 i r. St d m i x 1 x 2, a poniewa» m 1, m 2,... m r s wzgl dnie pierwsze, wi c M x 1 x 2. Zatem dwa rozwi zania (8.7) ró»ni si o wielokrotno± M i ukªad ten ma jednoznaczne modulo M rozwi zanie. W odró»nieniu od dowodów wielu innych podobnych twierdze«, dowód chi«skiego twierdzenia o resztach daje wzór na rozwi zanie ukªadu kongruencji. 8.16 Przykªad. Rozwa»my ukªad kongruencji z przykªadu 8.14. Stosuj c oznaczenia dowodu twierdzenia 8.15, mamy M = 105 oraz i m i a i M i x i 1 3 2 35 2 2 5 1 21 1 3 7 6 15 1 75

St d x 2 35 2 + 1 21 1 + 6 15 1 (mod 105) 140 + 21 + 90 (mod 105) 251 (mod 105) 41 (mod 105). Zaªo»enie o kopierwszo±ci moduªów jest do± istotnym ograniczeniem. Na przykªad, ukªadu kongruencji x 3 (mod 8) x 7 (mod 12) (8.8) nie mo»na rozwi za stosuj c twierdzenia 8.15, poniewa» 8 oraz 12 nie s wzgl dnie pierwsze. Nie oznacza to jednak,»e ukªad ten nie ma rozwi zania. Rozwi»emy go w nast pnym przykªadzie. 8.17 Przykªad. Aby rozwi za ukªad kongruencji 8.8 zapiszmy najpierw 12 = 4 3 i rozbijmy drug kongruencj ukªadu na dwie kongruencje x 7 (mod 4) i x 7 (mod 3). Mamy zatem ukªad trzech kongruencji x 3 (mod 8) x 3 (mod 4) x 1 (mod 3). (8.9) Ale rozwi zanie pierwszej kongruencji ukªadu (8.9) speªnia te» drug kongruencj, wi c druga kongruencja jest niepotrzebna. Otrzymujemy wi c równowa»ny (8.8) ukªad kongruencji x 3 (mod 8) x 1 (mod 3). Ostatni ukªad rozwi zujemy stosuj c chi«skie twierdzenie o resztach (8.15), otrzymuj c x 19 (mod 24). 76

8.6 Kongruencje stopnia 2 Rozwa»my nast puj cy przykªad 8.18 Przykªad. Chcemy znale¹ wszystkie liczby n, których ostatnie trzy cyfry s takie same jak w n 2. Od razu zauwa»amy,»e takimi liczbami s 0 oraz 1. Po chwili zauwa»amy te»,»e 1000, 1001 i wszystkie liczby ko«- cz ce si na 000 lub 001 maj wymagan wªasno±. Dochodzimy wi c do kongruencji n n 2 (mod 1000), (8.10) której rozwi zanie da nam wszystkie szukane liczby. Jest to kongruencja drugiego stopnia (f(n) = n n 2 ). Jej rozwi zaniami (modulo 1000) s 0, 1, 376, 625. Gdyby w przykªadzie 8.18 moduª byª maªy, to kongruencj (8.10) rozwi - zaliby±my podstawiaj c za n wszystkie nieujemne liczby caªkowite mniejsze od m. Metoda ta nie pracuje, je±li m jest du» liczb. W rozdziale tym poka»emy,»e kongruencje o moduªach zªo»onych mo»na zredukowa do kongruencji o moduªach pierwszych. To pozwoli nam rozwi za niektóre kongruencje. Nie b dziemy tu wprowadza skomplikowanej teorii pozwalaj cej nam rozwi za ka»d kongruencj. Pierwiastkiem modulo m wielomianu f(x) o wspóªczynnikach caªkowitych nazywamy tak liczb r,»e f(r) 0 (mod m). Je±li r jest pierwiastkiem wielomianu f(x) modulo m oraz r r (mod m), to f(r) f(r ) (mod m), czyli r te» jest pierwiastkiem wielomianu f(x) modulo m. Nasze rozwa»ania na temat pierwiastków b dziemy ogranicza do Z m i mówi c,,rozwi zanie mamy na my±li rozwi zanie modulo m. Przykªady. 8.19. Wielomian x 2 + 2 nie ma pierwiastków modulo 7. Sprawdzamy to podstawiaj c za x kolejne liczby 0, 1, 2, 3, 4, 5, 6. 8.20. Wielomian x 2 2 ma w Z 7 dokªadnie dwa pierwiastki: 3 i 4. Zauwa»my,»e wielomian f(x) z przykªadu 8.18 byª stopnia drugiego i miaª dokªadnie 4 pierwiastki modulo 1000. Jak wiadomo, w ciaªach liczbowych, wielomian nie mo»e mie wi cej pierwiastków ni» jego stopie«. W szczególno±ci, wielomian stopnia 2 nie mo»e mie trzech pierwiastków. 77

8.21. Wielomian x 2 1 ma w Z 12 cztery pierwiastki: 1, 5, 7 oraz 11. Rozwa»ymy teraz metod redukcji moduªu zªo»onego m na moduªy b d ce pot gami liczb pierwszych z rozkªadu m. Je±li m = p α 1 1 p α 2 2... p α k k, to kongruencja f(x) 0 (mod m) implikuje k kongruencji f(x) 0 (mod p α i i ), gdzie 1 i k. Odwrotna implikacja tak»e zachodzi, poniewa» pot gi ró»nych liczb pierwszych s kopierwsze. 8.22 Przykªad. Rozwa»my kongruencj x 2 1 (mod 105). Poniewa» 105 = 3 5 7, wi c nasza kongruencja jest równowa»na ukªadowi trzech kongruencji x 2 1 (mod 3) x 2 1 (mod 5) x 2 1 (mod 7). Ka»d z powy»szych kongruencji rozwi zujemy podstawiaj c kolejne liczby i otrzymujemy w trzech przypadkach po dwa rozwi zania: 1 i 2 modulo 3, 1 i 4 modulo 5 oraz 1 i 6 modulo 7. Dowolna kombinacja tych rozwi za«daje rozwi zanie modulo 105. Oznaczmy przez r pierwiastek wielomianu x 2 1 modulo 105. r jest jednym z rozwi za«o±miu poni»szych ukªadów kongruencji. r 1 (mod 3) r 2 (mod 3) r 1 (mod 3) r 1 (mod 5) r 1 (mod 5) r 4 (mod 5) r 1 (mod 7), r 1 (mod 7), r 1 (mod 7), r 2 (mod 3) r 1 (mod 3) r 4 (mod 5) r 1 (mod 5) r 1 (mod 7), r 6 (mod 7), r 2 (mod 3) r 1 (mod 3) r 2 (mod 3) r 1 (mod 5) r 4 (mod 5) r 4 (mod 5) r 6 (mod 7), r 6 (mod 7), r 6 (mod 7). Rozwi zaniami (modulo 105) tych ukªadów kongruencji s, kolejno, 1, 71, 64, 29, 76, 41, 34 i 104. 78

Wracaj c do przykªadu 8.18, kongruencja 8.10 jest równowa»na ukªadowi kongruencji n n 2 (mod 2 3 ) n n 2 (mod 5 3 (8.11) ). Pierwsz kongruencj z (8.11) mo»emy jeszcze rozwi za podstawiaj c kolejne liczby od 0 do 7. Przy drugiej kongruencji metoda ta zawodzi ze wzgl du na zbyt wiele liczb. Zastosujemy wi c inn metod. Poniewa» kongruencj n n 2 (mod 5) speªniaj dwie liczby (modulo 5) 0 oraz 1, wi c kongruencj n n 2 (mod 5 2 ) (8.12) speªniaj liczby postaci 0 + 5k 1 oraz 1 + 5l 1. Podstawiamy te liczby do (8.12) otrzymuj c 5k 1 0 (mod 5 2 ) oraz 5l 1 10l 1 (mod 5 2 ). St d kongruencje k 1 0 (mod 5) i l 1 2l 1 (mod 5), które daj k 1 = 0 oraz l 1 = 0. Mamy zatem 2 rozwi zania modulo 25: 0 oraz 1. Rozwi zaniami modulo 125 drugiej kongruencji z (8.12) s liczby postaci 5 2 k 2 oraz 1 + 5 2 l 2. Wykonuj c podobne obliczenia jak powy»ej dostajemy dwa rozwi zania: 0 i 1. Aby rozwi za zadanie postawione w przykªadzie 8.18, wystarczy rozwi za cztery ukªady kongruencji r e 1 (mod 2 3 ) r e 2 (mod 5 3 ), gdzie za e 1 oraz e 2 podstawiamy 0 lub 1. Cztery szukane rozwi zania to 0, 1, 376 i 625. 8.23 Przykªad. Rozwi»emy kongruencj x 2 + 4x + 2 0 (mod 49). (8.13) Mamy tutaj f(x) = x 2 +4x+2 oraz 49 = 7 2. Zaczynamy wi c od kongruencji x 2 + 4x + 2 0 (mod 7), dla której znajdujemy rozwi zanie podstawiaj c po kolei wszystkie liczby od 0 do 6. Znajdujemy dwa pierwiastki x 1 = 1 oraz x 2 = 2. Zatem pierwiastki kongruencji (8.13), to 1 + 7k oraz 2 + 7l. Podstawiajac je do (8.13) otrzymujemy co redukuje si do 42k 7 (mod 49) oraz 7l 14 (mod 49), 6k 1 (mod 7) oraz l 2 (mod 7) i ostatecznie daje rozwi zania x 1 = 8 oraz x 2 = 37. 79

8.24 Przykªad. Rozwi»emy kongruencj x 2 + x + 7 0 (mod 9). (8.14) Jedynym pierwiastkiem kongruencji x 2 + x + 7 0 (mod 3) jest x 0 = 1. Ale zapisuj c x = 1 + 3k i podstawiaj c do (8.14), otrzymujemy 0 0 (mod 9), wi c x 1 = 1 + 3 0 = 1, x 2 = 1 + 3 1 = 4 oraz x 3 = 1 + 3 2 = 7 s pierwiastkami (8.14). 8.25 Przykªad. Poszukamy pierwiastków kwadratowych z 1 modulo 16. Rozwa»ymy wi c wielomian f(x) = x 2 1. Modulo 8, ma on 4 pierwiastki: x 01 = 1, x 02 = 3, x 03 = 5 i x 04 = 7. Dalej szukamy k i, gdzie x i = x 0i + 8k i oraz f(x i ) 0 (mod 16) dla i {1, 2, 3, 4}. Otrzymujemy sprzeczno± dla k 2 i k 3 oraz 0 0 (mod 16) dla k 1 i k 2. Zatem pierwiastkami kwadratowymi z jedynki modulo 16 s 1, 9, 7 i 15. Zako«czymy ten podrozdziaª jeszcze jednym przykªadem, który ma du»e znaczenie w kryptograi. 8.26 Przykªad. Przypu± my,»e p i q s ró»nymi liczbami pierwszymi oraz n = pq. Wówczas kongruencja x 2 1 (mod n) ma dokªadnie 4 rozwi zania, poniewa» ka»da z kongruencji x 2 1 (mod p) oraz x 2 1 (mod q) ma dokªadnie dwa rozwi zania. Rozwi zania ±1 nazywamy trywialnymi. Je±li x jest nietrywialnym rozwi zaniem, to NWD(x 1, n) oraz NWD(x + 1, n) s liczbami p i q. Zatem je±li znamy nietrywialne rozwi zanie kongruencji x 2 1 (mod n), to znamy te» rozkªad liczby n. Odwrotnie, je±li znamy rozkªad liczby n, czyli p oraz q, to rozwi zania kongruencji x 2 1 (mod n) mo»emy otrzyma korzystaj c z chi«skiego twierdzenia o resztach dla czterech ukªadów kongruencji: dla e 1, e 2 {0, 1}. x e 1 (mod p), x e 2 (mod q) 8.7 Gra w orªa i reszk przez telefon Wykorzystamy tu stosunkowo maªe liczby,»eby caªy czas kontrolowa przebieg gry. Niech wi c n = 341 = 11 31. Powró my do Alicji i Stefana, którzy si ju» pojawili na tym wykªadzie. Liczby 11 oraz 31 s znane Alicji, a Stefan zna tylko ich iloczyn, tj. 341. 80

1. Stefan wybiera losowo liczb 0 < x 340 i oblicza warto± x 2. Zaªó»my,»e x = 134, wi c x 2 = 224. Alicja otrzymuje tylko liczb 224. 2. Alicja po otrzymaniu y = 224 oraz wiedz c,»e 341 = 11 31, oblicza cztery pierwiastki równania x 2 = 224 modulo 341. Robi to w nast puj cy sposób. Poniewa» x 2 224 (mod 341), wi c x 2 224 4 (mod 11) x 2 224 7 (mod 31) st d mamy jedn z czterech mo»liwo±ci x ± 2 (mod 11) x ± 10 (mod 31) Stosuj c oznaczenia z dowodu chi«skiego twierdzenia o resztach rozwi zujemy powy»szy ukªad nast puj co: a 1 = 2, m 1 = 11, a 2 = 10, m 2 = 31, M = 341. Obliczamy teraz M 1 = 31 oraz M 2 = 11. Stosuj c algorytm Euklidesa lub w inny sposób obliczamy N 1 = 6 i N 2 = 17. Teraz ju» bez trudu otrzymujemy x = 2 31 6 + 10 11 17 = 2242, co modulo 341 daje 196. Alicja mo»e t liczb potraktowa jako swoj szcz ±liw i wysªa j Stefanowi, lub te» obliczy trzy pozostaªe liczby rozwi zuj c nast puj ce ukªady kongruencji x 2 (mod 11); x 2 (mod 11); x 2 (mod 11); x 10 (mod 31); x 10 (mod 31); x 10 (mod 31). Wówczas do dyspozycji b dzie miaªa liczby 196 oraz 134 (tak»e 196 i 134, ale to si nie liczy) i b dzie w prawdziwej rozterce decyduj c, czy ma wysªa x 2 = 196, czy te» x 1 = 134. 3. Je±li wysªaªa x 1 = 134 Stefan ma pecha, poniewa» nie zna on liczby 196, której Alicja natychmiast za» da. 4. Je»eli jednak Alicja wysªaªa x 2 = 196, wygrywa Stefan i na dowód wygranej przesyªa Alicji liczb 134. Zauwa»my,»e mo»emy tu zastosowa ka»d liczb n, która jest iloczynem dwóch liczb pierwszych p i q, przy czym je±li gramy faktycznie o samochód 81

to liczby te musz by na tyle du»e i tak dobrane,»eby nie mo»na byªo zbyt szybko znale¹ rozkªadu liczby n. Liczby p = 11 oraz q = 31 z powy»- szego przykªadu mog co najwy»ej sªu»y do gry o rozbite lusterko boczne. Zauwa»my te»,»e w punkcie 4, Stefan mo»e udowodni swoj wygran znajduj c bez problemu rozkªad liczby n, poniewa» NWD(x 1 x 2, n) jest wi kszy od 1, czyli stanowi nietrywialny dzielnik liczby n. 82