Processing math: 100%

Twierdzenie Eulera

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)=|{1a<n:NWD (a,n)=1}|.

Obserwacja 11.11

Dla dowolnej liczby pierwszej p zachodzi:

  • φ(p)=p1,
  • φ(pα)=pαpα1=pα(11p).

Dowód

Ponieważ p jest pierwsza, liczby 1,2,,p1 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 mn zachodzi

φ(mn)=φ(m)φ(n).

Dowód

Z Chińskiego Twierdzenia o Resztach wiemy, iż każda liczba z przedziału [0,,mn1] 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 0a<mn takich, że amn jest dokładnie tyle co par (i1,i2) takich, że 0i1<m, 0i2<n oraz i1m, i2n.

Wniosek 11.13

Jeśli n=pα11pα22pαkk jest rozkładem na liczby pierwsze pi, w którym αi1, to:

φ(n)=φ(pα11)φ(pαkk)=pα11(11p1)pα22(11p2)pαkk(11pk)=np|n(11p),

gdzie ostatnim iloczyn przebiega po wszystkich liczbach pierwszych p dzielących n.

Przykład

Policzmy φ(2006):

  • 2006=21759,
  • φ(2006)=2006(112)(1117)(1159)=928.

Oraz φ(1980):

  • 1980=2232511,
  • φ(1980)=1980(112)(113)(115)(1111)=480.

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 1i<jφ(n) i, dla dowodu niewprost, niech

mia nmja.

Wtedy n|(mjmi)a, a ponieważ na, to n|mjmi, co jest niemożliwe wobec 0<mjmi<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=miaqn dla pewnego q, to d|mia. Z drugiej strony d|n, nmi i na, co daje dm i da. A więc d=1, czyli w istocie ain.

Wiemy więc, że liczby a1,,aφ(n) przyjmują wszystkie wartości m1,,mφ(n) i każdą tylko raz. A zatem

m1am2amφ(n)ana1a2aφ(n)=m1m2mφ(n).

Ponieważ liczby m1,,mφ(n) są względnie pierwsze z n możemy zastosować regułę skracania, by dostać

aφ(m) n1.

Zastosowanie Twierdzenia Eulera do szybkiego potęgowania.

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.

  • 1316, czyli możemy skorzystać z Twierdzenia Eulera,
  • φ(16)=8,
  • 101 mod 8=5,
  • 1310116135,
  • 5=(101)2,
  • liczymy wybrane potęgi 13 modulo 16:
    • 1311613,
    • 132161313=169169,
    • 1341699=81161.
  • 1310116135=13413116113=13.

Funkcja Mobiusa

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α22pαkk będzie rozkładem na liczby pierwsze pi, w którym αi1. Zdefiniujmy Ai jako zbiór wielokrotności liczby pi w {1,,n1}. Wtedy φ(n)=n|A1Ak|. Korzystając z Zasady Włączania i Wyłączania otrzymujemy

φ(n)=n|A1Ak|=nα1+α2+(1)kαk,

gdzie αi=1j1<<jik|Aj1Aji|. Zauważmy, że zbiór Aj1Aji składa się z wielokrotności liczby P=pj1pjk, czyli liczb P,2P,,(nP)P. Zatem |Aj1Aji|=nP=npi1pji, skąd

αi=1j1<<jiknpj1pji=n1j1<<jik1pj1pji.

Teraz łatwo już policzyć

φ(n)=nα1+α2α3++(1)kαk=nn(1p1+1p2++1pk)+n(1p1p2+1p1p3+)+n(1)k1p1pk()=n(11p1)(11pk).

Przyjrzyjmy się temu dowodowi trochę dokładniej. Analizując ostatnią sumę dla n=60=2235 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 n2 mamy d|nμ(d)=0.

Dowód

Niech n=pα11pαk. Wtedy każdy dzielnik d liczby n ma rozkład d=pβ11pβ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:NR, 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 nc2. 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.