Przeczytaj
W tej lekcji skupimy się na zastosowaniu liczb pierwszych w kryptografii (gałąź wiedzy o szyfrowaniu wiadomości). Omówimy najczęściej dziś stosowany algorytm szyfrowania, jakim jest RSA. Jego nazwa pochodzi od pierwszych liter nazwisk jego twórców, czyli Rona Rivesta, Adiego Shamira oraz Leonarda Adlemana.
Zanim jednak opiszemy działanie algorytmu, wprowadzimy pojęcia matematyczne, które są przydatne do jego dokładnego omówienia.
Kongruencje i arytmetyka modularna
Przypomnijmy sobie dzielenie z resztą i bez reszty w zbiorze liczb naturalnychdzielenie z resztą i bez reszty w zbiorze liczb naturalnych.
Wprowadźmy oznaczenie. Niech będzie liczbą naturalną większą od . Fakt, że liczby naturalne i dają z dzielenia przez tę samą resztę będziemy zapisywać następująco:
Powyższy napis można odczytać jako “ przystaje do modulo ” albo “liczby i przystają modulo ”. Jeżeli któraś spośród liczb i jest mniejsza od liczby , wówczas jest ona równa reszcie z dzielenia każdej z liczb i przez .
Ponieważ liczby i z dzielenia przez dają resztę , więc prawdą jest, że .
Ponieważ liczby i z dzielenia przez dają resztę , więc prawdą jest, że .
Ponieważ liczby i z dzielenia przez dają resztę , więc prawdą jest, że .
Ponieważ liczby i z dzielenia przez dają resztę , więc prawdą jest, że .
Kongruencje (relacja przystawania liczb modulo) mają wiele własności analogicznych do własności relacji równości, ale nie będziemy ich tutaj szczegółowo omawiać.
Rozważmy zbiór wszystkich możliwych reszt z dzielenia przez liczbę naturalną większą od .
W zbiorze tym zdefiniujemy dwa działania:
dodawanie modulo (oznaczane symbolem ),
mnożenie modulo (oznaczane symbolem ).
Niech i będą liczbami ze zbioru . Wówczas sumą modulo liczb i nazywamy resztę z dzielenia liczby przez , zaś iloczynem modulo liczb i nazywamy resztę z dzielenia liczby przez .
Rozważmy zbiór .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
Cała tabliczka dodawania modulo znajduje się poniżej i zawiera wszystkie możliwe sumy dwóch liczb ze zbioru .
Rozważmy zbiór .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
jest równe reszcie z dzielenia liczby przez , czyli .
Cała tabliczka mnożenia modulo znajduje się poniżej i zawiera wszystkie możliwe iloczyny dwóch liczb ze zbioru .
Można udowodnić wiele własności działań modulo w zbiorze analogicznych do własności dodawania i mnożenia w zbiorze liczb całkowitych.
Niektóre można zaobserwować na powyższych przykładach:
zbiór jest zamknięty na dodawanie modulo , co oznacza, że wynik tego działania należy do zbioru ,
zbiór jest zamknięty na mnożenie modulo , co oznacza, że wynik tego działania należy do zbioru ,
jest elementem neutralnym mnożenia modulo ,
jest elementem neutralnym dodawania modulo ,
dodawanie modulo jest działaniem przemiennym,
mnożenie modulo jest działaniem przemiennym.
Ponadto możemy wprowadzić definicje liczb (elementów) przeciwnych i liczb (elementów) odwrotnych.
Mówimy, że liczby i ze zbioru są liczbami przeciwnymi modulo , jeśli ich suma modulo jest równa .
Mówimy, że liczby i ze zbioru są liczbami odwrotnymi modulo , jeśli ich iloczyn modulo jest równy .
W zbiorze parami liczb przeciwnych modulo są: i , i , i , bo , , . Zero jest liczbą przeciwną do samego siebie, bo .
W zbiorze parami liczb odwrotnych modulo są: i , i , bo , .
Jedynka jest liczbą odwrotną do samej siebie, bo . Podobnie liczba jest odwrotna sama do siebie, bo .
Funkcja Eulera
Funkcja przyporządkowuje liczbie naturalnej liczbę liczb względnie pierwszych z , które nie są od niej większe.
oznacza liczbę liczb naturalnych nie większych od , które są z dziesiątką względnie pierwsze.
Są to liczby: , , , i jest ich , zatem .
oznacza liczbę liczb naturalnych nie większych od , które są z jedenastką względnie pierwsze.
Są to liczby: , , , , , , , , , i jest ich , zatem .
Zauważmy, że liczb względnie pierwszych z liczbą jest znacznie więcej, niż liczb względnie pierwszych z liczbą , pomimo że obie liczby różnią się tylko o . Powodem tego jest fakt, że liczba jest liczbą pierwszą, czyli poza jedynką nie ma dzielników mniejszych od siebie.
Ponieważ liczba pierwszaliczba pierwsza nie ma poza jedynką dzielników mniejszych niż , zatem wszystkie liczby naturalne mniejsze niż są z nią względnie pierwsze. Wynika stąd, że dla każdej liczby pierwszej zachodzi
Wyznaczymy .
Zauważmy, że liczba jest kwadratem liczby pierwszej ().
Zatem jedyne liczby nie większe od liczby , które nie są z nią względnie pierwsze to wielokrotności liczby , czyli , , , , , , . Jest ich dokładnie .
Zatem .
Wyznaczymy dla dowolnej liczby pierwszej .
Zauważmy, że jedyne liczby nie większe od , które nie są względnie pierwsze z to wielokrotności liczby , czyli liczby , , , , , , . Jest ich dokładnie .
Zatem możemy otrzymać odejmując od liczby wszystkich liczb naturalnych od do liczbę wielokrotności liczby nie większych od liczby , zatem .
Wyznaczymy dla dowolnych liczby pierwszych i .
Zauważmy, że jedyne liczby nie większe od , które nie są względnie pierwsze z to wielokrotności liczby i wielokrotności liczby , czyli liczby , , , , , , oraz liczby , , , , , , .
Tych pierwszych jest dokładnie , zaś tych drugich dokładnie , ale liczba jest wielokrotnością i liczby , i liczby , co oznacza, że razem tych liczb jest .
Zatem możemy otrzymać odejmując od liczby wszystkich liczb naturalnych od do liczbę wielokrotności liczby nie większych od liczby oraz liczbę wielokrotności liczby mniejszych od .
Zatem .
Wyznaczymy wartość funkcji dla wybranych liczb naturalnych:
– liczby względnie pierwszeliczby względnie pierwsze z liczbą i nie większe od niej to , , , , , , , , zatem
– liczba jest kwadratem liczby , więc możemy wykorzystać zależność z przykładu 7:
– liczba jest iloczynem dwóch liczb pierwszych ( i ), więc możemy skorzystać z zależności z przykładu 8:
Jeśli i są względnie pierwszymi liczbami naturalnymi dodatnimi, to dzieli liczbę
Równoważnie twierdzenie można sformułować następująco:
Jeśli i są względnie pierwszymi liczbami naturalnymi dodatnimi, to
Dowód powyższego twierdzenia pominiemy, ale ma ono zasadnicze znaczenie w algorytmie RSA.
Rozważmy i . Ponieważ i , więc liczby i są względnie pierwsze.
Na mocy twierdzenia Eulera .
Ponieważ , więc , co oznacza, że liczba z dzielenia przez daje resztę .
Szyfrowanie RSA
Opiszemy teraz krok po kroku działanie algorytmu RSA.
Losujemy dwie liczby pierwsze i .
Obliczamy iloczyn liczb i : .
Obliczamy .
Wybieramy liczbę , która spełnia warunki: oraz jest względnie pierwsze z ( nie jest dzielnikiem ).
Szyfrogramem (który zostaje przesłany) liczby jest liczba obliczona ze wzoru .
Obliczamy tak, aby .
Aby odkodować otrzymany szyfrogram , obliczamy resztę z dzielenia liczby przez . Z własności kongruencji wynika, że .
Parę liczb nazywamy kluczem publicznym (jawnym), zaś parę nazywamy kluczem prywatnym (tajnym).
Przyporządkujmy literom alfabetu liczby wg poniższego wzoru:
Zaszyfrujemy słowo “rak”:
Wybieramy liczby pierwsze i .
Obliczamy .
Obliczamy .
Wybieramy większe od i mniejsze od względnie pierwsze z . Niech .
Odczytujemy liczby odpowiadające literom słowa “rak”:
Litera | |||
---|---|---|---|
Liczba odpowiadająca (z tabeli powyżej) | |||
etap szyfrowania – podnoszenie do potęgi | |||
etap szyfrowania – obliczanie reszty z dzielenia przez | |||
Liczby do przesłania |
Zatem szyfrogram do przesłania to .
Chcemy odczytać szyfrogram , znając klucz publiczny .
Osoba, która chce szyfrogramszyfrogram odczytać, potrzebuje klucza prywatnego, czyli takiej liczby , dla której . W naszym przypadku .
Ponieważ , więc .Możemy deszyfrowaćdeszyfrować wiadomość:
Otrzymane liczby | |||
---|---|---|---|
etap szyfrowania – podnoszenie do potęgi | |||
etap szyfrowania – obliczanie reszty z dzielenia przez | |||
Liczby po odszyfrowaniu | |||
Litery odpowiadające odszyfrowanym liczbom |
Otrzymana wiadomość to “” – wstrzymujemy się zatem z działaniem, o którym była mowa z nadawcą szyfrogramu...
W przykładzie , aby odczytać treść szyfrogramu, potrzebowaliśmy wartości . Znając klucz publiczny, mogliśmy ją obliczyć.
Można w takim razie zadać pytanie, na czym polega szyfrowanie, skoro wszystko można obliczyć...
Zwróć uwagę na to, że aby wyznaczyć , potrzebowaliśmy , czyli rozkład liczby na czynniki pierwsze.
Skuteczność algorytmu RSA opiera się na tym, że nawet superkomputery mają problemy z rozkładaniem naprawdę dużych liczb na czynniki pierwsze. Gdy ktoś chce włamać się do jakiejś bazy danych i potrzebuje złamać hasło, musi zrobić to na tyle szybko, aby nikt nie zdążył się zorientować, a rozkładanie liczby na czynniki pierwsze może zająć przynajmniej kilka dni. Z tego też powodu ciągle trwają poszukiwania coraz większych liczb pierwszych – im większe liczby pierwsze i pomnożymy, tym większą liczbę otrzymamy. Zaś im większe , tym trudniej rozłożyć je na czynniki.
Spróbuj rozłożyć na czynniki pierwsze liczby:
a) ,
b) .
Udało się? Ile czasu Ci to zajęło?
Odpowiedzi:
a) ,
b) .
Największa odkryta dotąd (styczeń ) liczba pierwsza to i liczy sobie cyfr w zapisie dziesiętnym. Wyobraź sobie rozkład na czynniki liczb będących iloczynem liczb pierwszych tego rzędu.
Słownik
mówimy, że liczby naturalne i są względnie pierwsze, jeśli ich największym wspólnym dzielnikiem jest
liczba naturalna, która ma dokładnie różne dzielniki: i samą siebie
wiadomość, która została zaszyfrowana
odszyfrowywać wiadomość, która wcześniej została zaszyfrowana