Poznamy teraz uogólnienie Małego Twierdzenia Fermata pochodzące od Eulera. Uogólnienie to leży u podstaw znanego systemu kryptograficznego - RSA. Potrzebne nam będzie funkcja zliczające liczby względnie pierwsze z liczbą n.
Funkcja φ-Eulera to φ:N−{0}⟶N zdefiniowaną poprzez
φ(n)=|{1≤a<n:NWD (a,n)=1}|.
Obserwacja 11.11
Dla dowolnej liczby pierwszej p zachodzi:
Dowód
Ponieważ p jest pierwsza, liczby 1,2,…,p−1 są z nią względnie pierwsze, co dowodzi pierwszego punktu. Dla dowodu punktu drugiego zauważmy najpierw, że jedynie wielokrotności liczby p mają nietrywialny wspólny dzielnik z pα. Wielokrotności tych w przedziale [1,pα] jest dokładnie pα−1, stąd φ(pα)=pα−pα−1.
Obserwacja 11.12
Dla dowolnych m,n>0 takich, że m⊥n zachodzi
φ(mn)=φ(m)φ(n).
Dowód
Z Chińskiego Twierdzenia o Resztach wiemy, iż każda liczba z przedziału [0,…,mn−1] jest jednoznacznie wyznaczona przez jej reszty modulo m i modulo n. Wiemy także, że dla dowolnego a:
NWD (a,mn)=1 wtedy i tylko wtedy, gdy NWD (a,m)=1=NWD (a,n).
To oznacza, iż liczb 0≤a<mn takich, że a⊥mn jest dokładnie tyle co par (i1,i2) takich, że 0≤i1<m, 0≤i2<n oraz i1⊥m, i2⊥n.
Wniosek 11.13
Jeśli n=pα11pα22…pαkk jest rozkładem na liczby pierwsze pi, w którym αi≥1, to:
φ(n)=φ(pα11)…φ(pαkk)=pα11(1−1p1)pα22(1−1p2)…pαkk(1−1pk)=n⋅∏p|n(1−1p),
gdzie ostatnim iloczyn przebiega po wszystkich liczbach pierwszych p dzielących n.
Przykład
Policzmy φ(2006):
Oraz φ(1980):
Twierdzenie 11.14 [Euler 1736]
Dla dowolnych a,n, gdzie NWD (a,n)=1 zachodzi:
aφ(n) ≡n1.
Dowód
Zmodyfikujmy pierwszy z poznanych dowodów Małego Twierdzenia Fermata. Niech m1<m2<…<mφ(n) będą wszystkimi liczbami względnie pierwszymi z n i niewiększymi od n. Rozważmy ciąg
a1,a2,…,aφ(n)
reszt ai=mia mod n liczb mia modulo n. Pokażemy, że żadna wartość w tym ciągu się nie powtarza. Niech 1≤i<j≤φ(n) i, dla dowodu niewprost, niech
mia ≡nmja.
Wtedy n|(mj−mi)a, a ponieważ n⊥a, to n|mj−mi, co jest niemożliwe wobec 0<mj−mi<n.
Ponadto pokażmy, że każde ai jest względnie pierwsze z n. Załóżmy zatem, że d|ai oraz d|n. Ponieważ ai=mia−qn dla pewnego q, to d|mia. Z drugiej strony d|n, n⊥mi i n⊥a, co daje d⊥m i d⊥a. A więc d=1, czyli w istocie ai⊥n.
Wiemy więc, że liczby a1,…,aφ(n) przyjmują wszystkie wartości m1,…,mφ(n) i każdą tylko raz. A zatem
m1a⋅m2a⋅…⋅mφ(n)a≡na1⋅a2…aφ(n)=m1⋅m2⋅…⋅mφ(n).
Ponieważ liczby m1,…,mφ(n) są względnie pierwsze z n możemy zastosować regułę skracania, by dostać
aφ(m) ≡n1.
Twierdzenie Eulera, tak jak uprzednio Twierdzenie Fermata, możemy wykorzystać do przyspieszenia potęgowania modularnego. Wymaga to jednak, by podstawa potęgi była względnie pierwsza z modułem n. Jest to istotnie słabszy warunek, niż ten wymagany przez Małe Twierdzenie Fermata. Zwracamy jednak uwagę, że aby zastosować Twierdzenie Eulera musimy w szczególności znać wartość funkcji φ dla modułu n. Jak się przekonamy podczas poznawania algorytmu RSA, wartość φ(n) jest jednak jest tak trudna do policzenia, jak rozkład n na czynniki pierwsze.
Przykład
Spróbujmy policzyć 13101 mod 16.
Choć Wniosek 11.13 wyprowadziliśmy już bezpośrednio z Obserwacji 11.11 i 11.12, na zakończenie tego wykładu przedstawimy jego alternatywny dowód. Metoda użyta w tym alternatywnym dowodzie będzie przydatna w kilku innych sytuacjach.
Dowód
Niech n=pα11pα22…pαkk będzie rozkładem na liczby pierwsze pi, w którym αi≥1. Zdefiniujmy Ai jako zbiór wielokrotności liczby pi w {1,…,n−1}. Wtedy φ(n)=n−|A1∪…∪Ak|. Korzystając z Zasady Włączania i Wyłączania otrzymujemy
φ(n)=n−|A1∪…∪Ak|=n−α1+α2−…+(−1)kαk,
gdzie αi=∑1≤j1<…<ji≤k|Aj1∩…∩Aji|. Zauważmy, że zbiór Aj1∩…∩Aji składa się z wielokrotności liczby P=pj1⋅…⋅pjk, czyli liczb P,2P,…,(nP)P. Zatem |Aj1∩…∩Aji|=nP=npi1⋅…⋅pji, skąd
αi=∑1≤j1<…<ji≤knpj1⋅…⋅pji=n∑1≤j1<…<ji≤k1pj1⋅…⋅pji.
Teraz łatwo już policzyć
φ(n)=n−α1+α2−α3+…+(−1)kαk=n−n(1p1+1p2+…+1pk)+n(1p1p2+1p1p3+…)−……+n(−1)k1p1⋅…⋅pk(∗)=n(1−1p1)⋅…⋅(1−1pk).
Przyjrzyjmy się temu dowodowi trochę dokładniej. Analizując ostatnią sumę dla n=60=22⋅3⋅5 mamy
φ(60)=601−(602+603+605)+(606+6010+6015)−6030.
Po prawej stronie mamy naprzemienną sumę składników nd, gdzie d przebiega kolejne dzielniki liczby n, będące iloczynem różnych liczb pierwszych. Czynnik jest dodawany, jeśli d jest iloczynem parzystej liczby liczb pierwszych i odejmowany, jeśli d jest iloczynem nieparzystej liczby liczb pierwszych. Zależność tę możemy ogólniej zapisać w postaci
φ(n)=∑d|nμ(d)nd,
gdzie μ(d) zadana jest przez:
μ(d)={1,jeśli d=1,(−1)k,jeśli d jest iloczynem k różnych liczb pierwszych,0,jeśli w rozkładzie d któryś z czynników się powtarza.
Funkcja μ(d) jest znana jako funkcja Mobiusa, na cześć niemieckiego matematyka Augusta Ferdynanda Mobiusa, który jako pierwszy użył jej w 1831 roku. Funkcja Mobiusa pojawia się nieoczekiwanie w wielu rozważaniach Matematyki Dyskretnej. Pojawi się też i u nas w wykładach poświęconych teorii grup i teorii ciał.
Obserwacja 11.15
Dla dowolnego n≥2 mamy ∑d|nμ(d)=0.
Dowód
Niech n=pα11⋅…⋅pαk. Wtedy każdy dzielnik d liczby n ma rozkład d=pβ11⋅…⋅pβkk, gdzie 0≤βi≤αi. Jeśli choć jedno βi>1, to μ(d)=0. Rozważmy więc tylko te dzielniki dla których βi∈{0,1}. Każdy taki dzielnik wyznacza jednoznacznie pewien podzbiór zbioru {1,…,k}, przy czym wartościom d, dla których μ(d)=1 odpowiadają podzbiory o parzystej liczbie elementów, a wartościom d, dla których μ(d)=−1 odpowiadają podzbiory o nieparzystej liczbie elementów. A zatem:
∑d|nμ(d)=1−(k1)+(k2)−…+(−1)k(kk)=0.
Obserwacja 11.16 [wzór inwersyjny Mobiusa]
Dla dowolnych funkcji f,g:N⟶R, jeśli f(n)=∑d|ng(d), to g(n)=∑d|nμ(d)f(nd).
Dowód
Ponieważ
f(n)=∑d|ng(d),
∑d|nμ(d)f(nd)=∑d|nμ(d)∑c|ndg(c)=∑d|n,c|ndμ(d)g(c).
Zauważmy, iż {(c,d):d|n,c|nd}={(c,d):c|n,d|nc}. Zatem
∑d|nμ(d)f(nd)=∑c|n,d|ncμ(d)g(c)=∑c|ng(c)∑d|ncμ(d).
Z Obserwacji 11.15 wiemy, że wewnętrze sumy zerują się dla wszystkich nc≥2. Zatem jedyny interesujący składnik zewnętrznej sumy dostajemy przy c=n:
∑d|nμ(d)f(nd)=∑c|ng(c)∑d|ncμ(d)=g(n)∑d|1μ(d)=g(n)μ(1)=g(n).
Jako ćwiczenie pozostawiamy użycie wzoru inwersyjnego Mobiusa do wyprowadzenia następującego wniosku:
Wniosek 11.17
∑d|nφ(d)=n.