Matematyka dyskretna 2002 06 Teoria liczb

background image

Matematyka Dyskretna

Andrzej Szepietowski

25 czerwca 2002 roku

background image
background image

Rozdział 1

Teoria liczb

1.1

Dzielenie całkowitoliczbowe

Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podziel-
my 1743 przez 12.

1

4

5

1

7

4

3

:

1

2

1

2
5

4

4

8
6

3

6

0
3

W wyniku dzielenia otrzymali´smy iloraz 145 i reszt˛e 3. Liczby te spełniaj ˛

a równanie

i reszta jest mniejsza od dzielnika. Podobnie mo˙zemy post ˛

api ´c dla dowolnych liczb natu-

ralnych

i

pod warunkiem, ˙ze

.

Twierdzenie 1.1 Dla dowolnych liczb naturalnych

oraz

istnieje dokładnie jedna

para liczb naturalnych

i

spełniaj ˛

acych warunki:

!

#"$

nazywa si˛e ilorazem całkowitoliczbowym

przez

, a

nazywa si˛e reszt¸a z dzielenia

Zauwa˙zmy, ˙ze iloraz

jest zaokr¸agleniem w dół normalnego ilorazu

&%

(')+*

. Iloraz

całkowitoliczbowy liczb

i

b¸edziemy oznacza´c przez

-,.

/10(2

43651789

3

background image

4

Rozdział 1. Teoria liczb

a reszt˛e przez

63

9

Przykład 1.2

)

,

!

oraz

)

63

!

, poniewa˙z

-.

oraz

$

"

.

W przypadku, gdy

i

s ˛

a liczbami całkowitymi iloraz i ró˙znice mo˙zna róznie definiowa ´c.

Na przykład w j¸ezyku Pascal iloraz dwóch liczb typu całkowitego oznacza si¸e przez

a div b

i jest to

%

6')+*

— zaokr¸aglenie ilorazu

6')

w dół, gdy

6')

jest dodatnie i

(')

, —

zaokr¸aglenie ilorazu

('

w gór¸e, gdy

(')

jest ujemne. Reszta, któr¸a oznacza si¸e przez

a mod b,

jest okre´slona wzorem:

a mod b = a-(a div b)*b.

Mamy wi¸ec, na przykład:

22 div 4 = 5; (-22)div 4 = -5; 22 div(-4)= -5; (-22)div(-4)= 5;

22 mod 4 = 2; (-22)mod 4 = -2; 22 mod(-4)= 2; (-22)mod(-4)= -2.

1.2

Podzielno´s´c liczb

Mówimy, ˙ze liczba całkowita

dzieli liczb¸e całkowit¸a

, je˙zeli istnieje liczba całko-

wita

, taka ˙ze:

9

B¸edziemy to oznacza´c przez

. Zauwa˙zmy, ˙ze zachodzi wtedy:

63

9

Liczb¸e

nazywamy dzielnikiem liczby

.

Przykład 1.3

,

oraz

.

Lemat 1.4 Je˙zeli

oraz

, to

oraz

Dowód. Je˙zeli

i

, to istniej¸a dwie liczby całkowite

i

, takie ˙ze:

oraz

9

Mamy wi¸ec:

oraz

czyli

dzieli

oraz

.

background image

1.3. Relacja kongruencji

5

1.3

Relacja kongruencji

Niech

b¸edzie dowoln¸a liczb¸a naturaln¸a

. Powiemy, ˙ze dwie liczby całkowite

i

s¸a równowa˙zne (lub przystaj¸a) modulo

, je˙zeli

9

B¸edziemy wtedy pisa´c:

63

9

Przykład 1.5

63

,

63

,

63

,

63

.

Je˙zeli

i

s ˛

a dodatnie, to

63

wtedy i tylko wtedy, gdy

i

maj ˛

a takie

same reszty z dzielenia przez

.

Lemat 1.6 Relacja przystawania modulo jest relacj¸a równowa˙zno´sci, czyli spełnia nast¸epuj¸ace
trzy warunki:

zwrotno´

c, dla ka˙zdego

zachodzi

63

,

symetri¸e, dla ka˙zdego

i

, je˙zeli

63

to

63

,

przechodnio´

c, dla ka˙zdego

,

i

,

je˙zeli

63

i

63

to

63

.

Dowód. Udowodnimy tylko przechodnio´s´c relacji. Je˙zeli

oraz

to

czyli

.

Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mno˙zeniem.

Twierdzenie 1.7 Je˙zeli

3

oraz

3

to:

63

3

63

9

Dowód. Z zało˙zenia mamy:

z tego za´s łatwo wynika, ˙ze

dzieli:

oraz

!

czyli zachodzi teza twierdzenia.

Przykład 1.8 Twierdzenie 1.7 mo˙ze by´c u˙zyte do obliczania reszty z dzielenia Je˙zeli chce-
my policzy´c na przykład

63

background image

6

Rozdział 1. Teoria liczb

to pytamy, która z trzech liczb

przystaje do 1999 modulo 3. Zróbmy najpierw

kilka prostych obserwacji. Po pierwsze:

63

bo

. Z twierdzenia 1.7 wynika, ˙ze ka˙zda pot¸ega liczby dziesi¸e´c przystaje do 1

modulo 3, czyli:

3

dla ka˙zdego

. Mamy teraz:

)8

)84

63

9

Podobnie, dla dowolnej liczby

, je˙zeli zapiszemy

w postaci dziesi¸etnej:

to

63

czyli

ma takie same reszty modulo 3 co suma cyfr w zapisie dziesi¸etnym.

Przykład 1.9 Aby przekona´c si˛e, ˙ze

)8

(

wystarczy zauwa˙zy´c, ˙ze liczba

jest parzysta, wi˛ec tak˙ze wynik mno˙zenia powinien

by˙z parzysty. Mówi ˛

ac inaczej

)

63

oraz

63

, wi˛ec na

podstawie twierdzenia 1.7 mamy

63

, a liczba

(

przystaje

do jedynki modulo 2. Podobnie mo˙zemy si˛e przekona´c, ˙ze

)8

(

wystarczy zauwa˙zy´c, ˙ze w iloczynie

)#

ostatni ˛

a cyfr ˛

a powinno by´c 8 a nie 6.

Inaczej

63

oraz

3

, wi˛ec na podstawie twierdze-

nia 1.7 mamy

.

63

, a liczba

)

przystaje do 6 modulo

10.

1.4

Klasy abstrakcji

Dla relacji przystawania modulo

definiujemy klasy abstrakcji. Dla dowolnej liczby

całkowitej

, klas¸e abstrakcji elementu

definiujemy w nast¸epuj¸acy sposób:

3

9

Innymi słowy, klasa abstrakcji liczby

to zbiór wszystkich liczb z ni¸a równowa˙znych.

Przykład 1.10 Dla

mamy trzy klasy abstrakcji

background image

1.5. Pier´scie´n

7

9

99

9

99

99

9

9

99

99

9

)

9

99

Zauwa˙zmy, ˙ze klasy abstrakcji elementów równowa˙znych pokrywaj¸a si¸e.

Lemat 1.11 Je˙zeli

63

to

.

Dowód. Je˙zeli

to

63

i z przechodnio´sci relacji

63

, czyli:

a wi¸ec pokazali´smy, ˙ze:

9

Identycznie pokazujemy zawieranie odwrotne

.

Nast¸epna wa˙zna własno´s´c klas abstrakcji to ich rozł¸aczno´s´c.

Lemat 1.12 Je˙zeli

to

,

inaczej, dwie klasy abstrakcji

i

albo s¸a identyczne, albo s¸a rozł¸aczne.

Dowód. Przypu´s´cmy, ˙ze klasy

i

maj¸a wspólny element

. Wtedy:

63

63

9

Z przechodnio´sci mamy wtedy

63

, a z lematu 1.11

.

1.5

Pier´scie ´n

Klasy abstrakcji relacji modulo

wygl¸adaj¸a nast¸epuj¸aco:

99

9

9

Dla dowolnego

z przedziału

#

, klasa

jest postaci:

(

oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo

oznacza si¸e przez

.

Poniewa˙z relacja modulo jest zgodna z działaniami dodawania i mno˙zenia, mo˙zemy

zdefiniowa´c dodawanie i mno˙zenie na klasach abstrakcji. Mówi¸ac w skrócie, aby wyko-
na´c działanie na dwóch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych

background image

8

Rozdział 1. Teoria liczb

klas i wykonujemy działania na tych przedstawicielach. Dokładniej, dodawanie klas abs-
trakcji definiujemy nast¸epuj¸aco:

9

Podobnie definiujemy odejmowanie i mno˙zenie:

9

Poni˙zszy lemat pokazuje, ˙ze działania te s¸a dobrze zdefiniowane; ˙ze wynik działania na
dwóch klasach nie zale˙zy od wyboru reprezentantów.

Lemat 1.13 Je˙zeli

oraz

to:

9

Dowód. Z zało˙zenia mamy:

63

63

9

a z twierdzenia 1.7:

oraz

9

Przykład 1.14 Niech

. Dla dowolnych dwóch liczb

i

ich suma

nale˙zy do

a iloczyn do

)

.

Lemat 1.15 Działania na klasach abstrakcji

9

99

spełniaj¸a nast¸epuj¸ace warunki:

dodawanie oraz mno˙zenie s¸a przemienne i ł¸aczne,

klasa

jest elementem neutralnym dodawania, to znaczy dla ka˙zdego

mamy

,

dla ka˙zdej klasy

istnieje klasa do niej przeciwna

8

, taka ˙ze

8

,

klasa

jest elementem neutralnym mno˙zenia, to znaczy dla dowolnego

mamy

,

mno˙zenie jest rozdzielne wzgl¸edem dodawania, czyli dla ka˙zdych trzech klas

,

,

mamy

.

Zbiór z dwoma działaniami spełniaj¸acymi powy˙zsze warunki nazywa si¸e pier´scieniem
przemiennym z jedynk¸a.

background image

1.5. Pier´scie´n

9

Dowód: Udowodnimy tylko rozdzielno´s´c:

9

Skorzystali´smy w tym dowodzie z rozdzielno´sci mno˙zenia wzgl¸edem dodawania dla liczb
całkowitych.

Przykład 1.16 Rozwa˙zmy zbiór reszt modulo 5. Składa si¸e on z pi¸eciu klas:

dla prostoty b¸edziemy dalej opuszcza´c nawiasy. Mamy wi¸ec zbiór:

z dodawaniem i mno˙zeniem okre´slonym nast¸epuj¸acymi tabelami:

+

0

1

2

3

4

0

0

1

2

3

4

1

1

2

3

4

0

2

2

3

4

0

1

3

3

4

0

1

2

4

4

0

1

2

3

0

1

2

3

4

0

0

0

0

0

0

1

0

1

2

3

4

2

0

2

4

1

3

3

0

3

1

4

2

4

0

4

3

2

1

Zauwa˙zmy, ˙ze ka˙zdy element oprócz zera ma w

element odwrotny wzgl¸edem mno˙zenia,

czyli dla ka˙zdego

istnieje

taki ˙ze

:

9

Dlatego

jest ciałem, czyli pier´scieniem przemiennym z jedynk¸a i z odwrotno´sci¸a wzgl¸edem

mno˙zenia.

Przykład 1.17 Rozwa˙zmy teraz pier´scie´n reszt modulo 4:

gdzie dodawanie i mno˙zenie jest okre´slone nast¸epuj¸acymi tabelami:

+

0

1

2

3

0

0

1

2

3

1

1

2

3

0

2

2

3

0

1

3

3

0

1

2

0

1

2

3

0

0

0

0

0

1

0

1

2

3

2

0

2

0

2

3

0

3

2

1

nie jest ciałem, poniewa˙z nie ma w nim elementu odwrotnego do 2. Ponadto w

mamy:

-

czyli zero mo˙zna przedstawi´c jako iloczyn dwóch liczb ró˙znych od zera.

background image

10

Rozdział 1. Teoria liczb

Łatwo zauwa˙zy´c, ˙ze je˙zeli liczba

jest zło˙zona,

dla

"

"

, to w

pier´scieniu

mamy

i ani , ani

nie maj¸a elementów odwrotnych. Przypu´s´cmy

bowiem, ˙ze istnieje

. Mamy wtedy:

czyli

, sprzeczno´s´c. Tak wi¸ec

nie jest ciałem, je˙zeli

jest liczb¸a zło˙zon¸a.

W dalszej cz¸e´sci tego rozdziału zobaczymy, ˙ze je˙zeli

jest liczb¸a pierwsz¸a, to

jest

ciałem.

1.6

Najwi¸ekszy wspólny dzielnik

Dla dwóch liczb całkowitych

i

, ich najwi¸ekszy wspólny dzielnik to po prostu najwi¸eksza

liczba całkowita

, która dzieli

i

. Najwi¸ekszy wspólny dzielnik liczb

i

b¸edziemy

oznacza´c przez

. Na przykład:

,

.

1.7

Algorytm Euklidesa

Najwi¸ekszy wspólny dzielnik dwóch liczb dodatnich mo˙zna obliczy ´c za pomoc¸a algoryt-
mu Euklidesa.

Algorytm Euklidesa. Aby obliczy´c najwi¸ekszy wspólny dzielnik dwóch dodatnich liczb
naturalnych

,

, powtarzamy a˙z do skutku:

je˙zeli

, to koniec,

,

je˙zeli

, to

,

je˙zeli

"

, to

.

Powy˙zszy algorytm odejmuje od wi¸ekszej liczby mniejsz¸a tak długo, a˙z liczby b¸ed¸a rów-
ne. Wtedy wynikiem działania algorytmu jest wspólna warto´s´c tych liczb. W uproszczo-
nej wersji j¸ezyka Pascal algorytm Euklidesa mo˙zna zapisa´c w nast¸epuj¸acy sposób:

p:=a;q:=b;

while p<>q do

if p>q then p:=p-q

else q:=q-p;

NWD(a,b):=p

W poni˙zszej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze

liczb 36 i 15:

background image

1.7. Algorytm Euklidesa

11

36

15

21

15

6

15

6

9

6

3

3

3

Tak wi¸ec 3 jest najwi¸ekszym wspólnym dzielnikiem liczb 15 i 36.

Poprawno´s´c algorytmu Euklidesa wynika z poni˙zszego lematu.

Lemat 1.18 Niech

i

b¸ed¸a dwoma liczbami naturalnymi i niech

"

"

. Wtedy

para

ma taki sam zbiór wspólnych dzielników jak para

,

.

Dowód. Je˙zeli liczba

jest wspólnym dzielnikiem pary

, to

dzieli tak˙ze

, czyli

jest wspólnym dzielnikiem pary

,

.

Na odwrót, je˙zeli liczba

jest wspólnym dzielnikiem pary

,

, to

dzieli tak˙ze

, czyli

jest wspólnym dzielnikiem pary

.

Tak wi¸ec po ka˙zdej iteracji p¸etli

while

para

ma taki sam zbiór wspólnych dziel-

ników, a wi¸ec tak˙ze taki sam najwi¸ekszy wspólny dzielnik. Na ko ´ncu, gdy

, wów-

czas oczywi´scie

.

Nale˙zy jeszcze pokaza´c, ˙ze dla ka˙zdej pary dodatnich liczb naturalnych

i

algorytm

zatrzyma si¸e. Ale to wynika z faktu, ˙ze po ka˙zdej iteracji p¸etli

while

liczba

jest coraz mniejsza, a poniewa˙z jest to zawsze liczba naturalna dodatnia, wi¸ec nie mo˙ze
zmniejsza´c si¸e w niesko ´nczono´s´c. Zauwa˙zmy przy okazji, ˙ze je˙zeli jedna z dwóch liczb,

lub

, jest zerem, to algorytm nie zatrzyma si¸e.

Twierdzenie 1.19 Niech

i

b¸ed¸a dwoma dodatnimi liczbami naturalnymi i niech

. Wtedy istniej¸a liczby całkowite

i

, takie ˙ze:

(

lub mówi¸ac inaczej,

jest kombinacj¸a całkowitoliczbow¸a liczb

i

.

Dowód. Poka˙zmy, ˙ze wszystkie warto´sci, jakie przyjmuj¸a zmienne

i

w trakcie wy-

konywania algorytmu Euklidesa, s¸a całkowitoliczbowymi kombinacjami liczb

i

. Na

pocz¸atku, gdy

i

, mamy:

9

Załó˙zmy teraz, ˙ze po

-tej iteracji p¸etli

$

oraz ˙ze zachodzi:

)

9

Wtedy w

iteracji

b¸edzie pomniejszone o

i b¸edziemy mieli:

9

Z tego wynika, ˙ze tak˙ze ostateczna warto´s´c zmiennej (która jest równa

) jest całkowitoliczbow¸a

kombinacj¸a liczb

i

.

background image

12

Rozdział 1. Teoria liczb

Algorytm Euklidesa mo˙zna tak zmodyfikowa´c, aby oprócz najwi¸ekszego wspólnego

dzielnika

, wyliczał tak˙ze liczby

i

, takie ˙ze:

(

9

Oto ten algorytm w j¸ezyku Pascal:

p:=a;q:=b;

xp:=1;yp:=0;

xq:=0;yq:=1;

while p<>q do

if p>q then

begin

p:=p-q;

xp:=xp-xq;

yp:=yp-yq

end

else

begin

q:=q-p;

xq:=xq-xp;

yq:=yq-yp

end;

NWD(a,b):=p;

x:=xp,y:=yp

W poni˙zszej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Eukli-

desa na parze liczb 36 i 15:

6

36

15

1

0

0

1

21

15

1

-1

0

1

6

15

1

-2

0

1

6

9

1

-2

-1

3

6

3

1

-2

-2

5

3

3

3

-7

-2

5

Tak wi¸ec liczb¸e 3 mo˙zna przedstawi´c jako kombinacj¸e liczb 15 i 36 w nast¸epuj¸acy sposób:

)

9

Zauwa˙zmy, ˙ze je˙zeli jaka´s liczba

dzieli liczby

i

, to dzieli tak˙ze ka˙zd¸a ich kombinacj¸e

całkowit¸a

(

a wi¸ec dzieli tak˙ze najwi¸ekszy wspólny dzielnik

. Udowodnili´smy poni˙zszy

lemat.

background image

1.8. Liczby pierwsze i wzgl¸ednie pierwsze

13

Lemat 1.20

jest podzielny przez ka˙zdy wspólny dzielnik liczb

i

.

Z lematu 1.20 wynika, ˙ze najwi¸ekszy wspólny dzielnik

mo˙ze by ´c rów-

nowa˙znie zdefiniowany jako taki wspólny dzielnik liczb

i

, który jest podzielny przez

ka˙zdy wspólny dzielnik

i

.

Lemat 1.21 Liczba

jest najwi¸ekszym wspólnym dzielnikiem liczb

i

wtedy i tylko

wtedy gdy

b¸edzie wspólnym dzielnikiem

i

oraz istniej¸a liczby całkowite

i

, takie

˙ze

!

(

.

Dowód Je˙zeli

to

,

oraz (z twierdzenia 1.19) istniej¸a liczby całko-

wite

i

, takie ˙ze:

!

(

.

Na odwrót, je˙zeli

dzieli

i

oraz

(

, to ka˙zdy wspólny dzielnik

i

dzieli

, a wi¸ec

jest najwi¸ekszym wspólnym dzielnikiem

i

.

Wniosek 1.22 Je˙zeli istniej¸a liczby całkowite

i

, takie, ˙ze

(

, to

.

Przykład 1.23 Zastanówmy si¸e, ile wynosi

)

. Poniewa˙z:

)

oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wi¸ec

)

.

Zastanówmy si¸e teraz, ile wynosi

))(

. Poniewa˙z:

))

wi¸ec

))

dzieli 2, a poniewa˙z 2 nie dzieli ani 1999, ani 2001, wi¸ec

(

.

1.8

Liczby pierwsze i wzgl¸ednie pierwsze

Dwie liczby naturalne

i

s ˛

a wzgl¸ednie pierwsze, je˙zeli

, a liczba

naturalna

jest pierwsza, je˙zeli

i jedynymi dzielnikami naturalnymi

s¸a jedynka i

samo .

Oto wszystkie liczby pierwsze mniejsze od 50:

)

)

(

)

9

Liczba

, która nie jest pierwsza jest zło˙zona. Istniej ˛

a wtedy dwie liczby

,

"

,

takie, ˙ze

.

1.9

Rozkład liczb na czynniki pierwsze

W tym rozdziale zobaczymy, ˙ze ka˙zd¸a liczb¸e naturaln¸a

mo˙zna rozło˙zy ´c na czynniki

pierwsze i ˙ze taki rozkład jest jednoznaczny z dokładno´sci¸a do kolejno´sci czynników. Na
przykład:

i

)

9

background image

14

Rozdział 1. Teoria liczb

Twierdzenie 1.24 Ka˙zd¸a liczb¸e naturaln¸a

mo˙zna przedstawi´c jako iloczyn liczb

pierwszych (niekoniecznie ró˙znych):

9

Dowód nie wprost. Przypu´s´cmy, ˙ze istnieje liczba naturalna

, której nie mo˙zna przed-

stawi´c jako iloczynu liczb pierwszych i ˙ze

jest najmniejsz¸a tak¸a liczb¸a.

nie mo˙ze by ´c

liczb¸a pierwsz¸a (bo wtedy

), wi¸ec

jest liczb¸a zło˙zon¸a, czyli jest postaci:

dla

"

. Ale poniewa˙z

i

s¸a mniejsze od

, wi¸ec mo˙zna je rozło˙zy ´c na czynniki

pierwsze

ale wtedy, wbrew zało˙zeniu, mamy rozkład liczby

na czynniki pierwsze:

9

Aby pokaza´c, ˙ze rozkład jest jednoznaczny (z dokładno´sci¸a do kolejno´sci czynników),

musimy najpierw udowodni´c dwa lematy.

Lemat 1.25 Niech

i

b¸ed¸a dodatnimi wzgl¸ednie pierwszymi liczbami naturalnymi.

Wtedy dla dowolnej liczby

, je˙zeli

, to

.

Dowód. Z twierdzenia 1.19, istniej¸a dwie liczby całkowite

i

, takie ˙ze:

6

9

Pomnó˙zmy teraz obie strony tego równania przez

:

(

i zauwa˙zmy, ˙ze

dzieli oba składniki po lewej stronie równania, a wi¸ec dzieli praw¸a

stron¸e, czyli

.

Lemat 1.26 Je˙zeli liczba pierwsza

dzieli iloczyn liczb pierwszych

(niekoniecznie ró˙znych), to wtedy

jest równe jednej z liczb

.

Dowód przez indukcj¸e ze wzgl¸edu na

. Dla

mamy

, a poniewa˙z

jest

pierwsza i

, wi¸ec

.

Załó˙zmy teraz, ˙ze teza zachodzi dla

i przypu´s´cmy, ˙ze

dzieli

9

Mamy dwa przypadki: albo

dzieli

, albo nie. W pierwszym przypadku

.

W drugim przypadku mamy

, bo 1 i

to jedyne dzielniki liczby

. Z lematu 1.25 wynika teraz, ˙ze

dzieli

a z zało˙zenia indukcyjnego, ˙ze

dla jakiego´s

4

.

.

background image

1.10. Elementy odwracalne

15

Udowodnimy teraz, ˙ze rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładno´sci¸a
do kolejno´sci czynników.

Twierdzenie 1.27 Ka˙zd¸a liczb¸e naturaln¸a

mo˙zna w dokładnie jeden sposób przed-

stawi´c w postaci iloczynu:

9

99

gdzie

s¸a dodatnimi liczbami naturalnymi,

s¸a liczbami pierwszymi oraz zachodzi

"

"

99

9("

.

Dowód. Twierdzenie 1.24 orzeka, ˙ze liczba ma rozkład na czynniki pierwsze. Trzeba
pokaza´c, ˙ze jest to rozkład jednoznaczny.

jako liczba pierwsza ma jednoznaczny

rozkład. Przypu´s´cmy, ˙ze

jest najmniejsz¸a liczb¸a z dwoma ró˙znymi rozkładami:

999

99

9

9

(1.1)

Wtedy z jednej strony

nie mo˙ze wyst¸epowa´c po prawej stronie równania (1.1), bo

'

byłoby mniejsz¸a liczb¸a z niejednoznacznym rozkładem. Z drugiej strony

dzieli praw¸a

stron¸e, a wi¸ec, z lematu 1.26 wyst¸epuje po prawej stronie. Mamy wi¸ec sprzeczno´s´c.

Lemat 1.28 Je˙zeli

i

s¸a wzgl¸ednie pierwsze, to ich rozkłady s¸a rozł¸aczne, to znaczy

maj¸a rozł¸aczny zbiór liczb pierwszych wyst¸epuj¸acych w ich rozkładach.

1.10

Elementy odwracalne

Definicja 1.29 Element

jest odwracalny, je˙zeli istnieje

, takie, ˙ze

63

9

nazywamy elementem odwrotnym do

i oznaczamy przez

.

Przykład 1.30

jest odwracalna w

bo

3

. Oprócz 3 w

odwra-

calne s ˛

a tak˙ze ,

i

.

Lemat 1.31 Liczba

jest odwracalna wtedy i tylko wtedy, gdy

.

Dowód. Je˙zeli

, to istniej¸a liczby całkowite

i

, takie ˙ze:

a wi¸ec

dzieli

, czyli:

63

9

Teraz wystarczy przyj¸a´c za

tak¸a liczb¸e z przedziału od 1 do

, która przystaje

do

modulo

.

Z drugiej strony je˙zeli istnieje element

odwrotny do

to

63

background image

16

Rozdział 1. Teoria liczb

czyli

dla jakiego´s

. Mamy wi¸ec

czyli

(wniosek 1.22).

Z powy˙zszego dowodu wynika, ˙ze element odwrotny do

mo˙zna wyliczy ´c stosuj¸ac

algorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pier´scieniu

.

Najpierw zastosujemy algorytm Euklidesa, aby obliczy´c

i

, takie ˙ze:

9

Kolejne kroki algorytmu przedstawiono w tabeli:

6

17

12

1

0

0

1

5

12

1

-1

0

1

5

7

1

-1

-1

2

5

2

1

-1

-2

3

3

2

3

-4

-2

3

1

2

5

-7

-2

3

Mamy wi¸ec:

-)

czyli:

63

ale:

3

czyli 10 jest elementem odwrotnym do 12 w pier´scieniu

.

Definicja 1.32 Zbiór elementów odwracalnych w

oznaczamy przez

.

Przykład 1.33

.

Lemat 1.34 Je˙zeli liczba

jest pierwsza, to ka˙zdy element

,

, jest odwra-

calny, czyli pier´scie´n

jest ciałem.

Lemat 1.35 Je˙zeli

to

oraz

.

To oznacza, ˙ze

z mno˙zeniem jest grup¸a.

Dowód: Elementem odwrotnym do iloczynu

6

jest

, a elementem odrotnym do

jest

.

background image

1.11. Funkcja liniowa

17

1.11

Funkcja liniowa

Zastanówmy si¸e jak w pier´scieniu

działa funkcja liniowa

63

9

Rozpatrzmy najpierw przypadek, gdy

i

s¸a wzgl¸ednie pierwsze, czyli gdy

. Dla

i

warto´sci funkcji przedstawia tabela

x

0

1

2

3

4

5

6

7

3x

0

3

6

1

4

7

2

5

W takim przypadku istnieje

element odwrotny do

i funkcja

, która

jest odwrotna do . Rzeczywi´scie

9

Z tego wynika, ˙ze

jest wzajemnie jednoznaczna i "na" oraz, ˙ze dla ka˙zdego

równanie

ma dokładnie jedno rozwi¸azanie w pier´scieniu

, jest ono równe

.

Funkcja

jest permutacj¸a w

i wykorzystuje si¸e j¸a, gdy trzeba wymiesza´c (prze-

permutowa´c) elementy

. Zauwa˙zmy, ˙ze

jest tak˙ze permutacj ˛

a w

. Rzeczywi´scie,

je˙zeli

, to na podstawie lematu 1.35

. Mamy wi¸ec

Lemat 1.36 Je˙zeli

, to funkcja

jest funkcj¸a wzajemnie

jednoznaczn¸a w

i w

.

Rozpatrzmy teraz przypadek, gdy

i

nie s¸a wzgl¸ednie pierwsze, czyli gdy

. Dla

i

warto´sci funkcji przedstawia tabela

x

0

1

2

3

4

5

6

7

6x

0

6

4

2

0

6

4

2

Zauwa˙zmy, ˙ze je˙zeli

jest warto´sci¸a funkcji , czyli gdy

63

to istnieje takie

, ˙ze

a poniewa˙z

dzieli

i

, to

dzieli

, a wi¸ec warto´sciami funkcji

mog¸a by´c tylko

liczby podzielne przez

.

Lemat 1.37 Je˙zeli

oraz

, to równania

63

oraz

('

'

63

'

s¸a równowa˙zne, czyli maj¸a ten sam zbiór rozwi¸aza´n w zbiorze liczb całkowitych.

background image

18

Rozdział 1. Teoria liczb

Dowód

3

wtedy i tylko wtedy, gdy istnieje

takie ˙ze

a to zachodzi wtedy i tylko wtedy, gdy istnieje

takie, ˙ze

('

'

'

czyli wtedy i tylko wtedy, gdy

('

'

63

'

9

Przypu´s´cmy teraz, ˙ze

dzieli

i rozwi¸a˙zmy równanie

(1.2)

w pier´scieniu

, czyli szukamy takich

99

9

, ˙ze

3

(1.3)

Z lematu 1.37, to równanie jest równowa˙zne równaniu

('

'

63

'

(1.4)

Ale teraz

('

'

i równanie (1.4) ma dokładnie jedno rozwi¸azanie

99

9

'

takie ˙ze

('

'

3

'

9

Ale równania (1.4) i (1.3) s¸a spełnione tak˙ze przez liczby

'

.

'

99

9

'

9

S¸a to wszystkie liczby ze zbioru

9

99

spełniaj¸ace równania (1.4) i (1.3), czyli

wszystkie rozwi¸azania równania (1.2) w pier´scieniu

.

Przykład 1.38 Rozwi¸a˙zmy równanie

63

9

(1.5)

Poniewa˙z

, wi¸ec najpierw rozwi¸azujemy równanie

63

W

mamy

wi¸ec rozwi¸azaniem jest

. Tak wi¸ec rozwi¸azaniami

równaia (1.5) w

s¸a liczby

9

background image

1.12. Szyfry liniowe

19

1.12

Szyfry liniowe

Przypu´s´cmy, ˙ze mamy tekst zapisany za pomoc¸a 26 liter alfabetu łaci ´nskiego:

i chcemy ten tekst zaszyfrowa´c. W tym celu uto˙zsamiamy zbiór liter z elementami pier-
´scienia

:

9

99

wybieramy dwie liczby

, takie ˙ze

, i szyfrujemy litera po

literze według wzoru:

3

9

Funkcja deszyfruj¸aca jest okre´slona wzorem:

63

9

Rzeczywi´scie:

9

Z tego wynika, ˙ze funkcja szyfruj¸aca

jest wzajemnie jednoznaczna.

Przykład 1.39 Wybierzmy

i

)

i zaszyfrujmy słowo

6

9

W tym celu musimy zaszyfrowa´c 6 liter:

,

,

, ,

oraz

. Obliczenia przedstawiono w

tabeli:

litera

szyfr

m

12

10

k

a

0

20

u

t

19

15

p

e

4

8

i

y

24

0

a

k

10

16

q

Słowo

6

po zaszyfrowaniu wygl¸ada tak:

9

Je˙zeli za´s zastosujemy ten sam szyfr do pocz¸atkowego zdania z wiersza Lokomotywa Ju-
liana Tuwima:

stoi na stacji lokomotywa,

to otrzymamy:

spewhuspuotwneqekepagu.

background image

20

Rozdział 1. Teoria liczb

A oto program w j¸ezyku Pascal, który szyfruje teksty zapisane za pomoc¸a 26 liter alfabetu
łaci´nskiego:

var

t:string;

a,b,i,m:integer;

begin

writeln(’podaj klucz’);

write(’a=’);

readln(a);

write(’b=’);

readln(b);

writeln(’podaj tekst do zaszyfrowania’);

readln(t);

for i:=1 to length(t) do

begin

m:=((ord(t[i])-97)*a+b)mod(26)+97;

write(chr(m))

end

end.

Komentarz. Zmienna

t

jest typu

string

, czyli ła ´ncuch. Tak¸a zmienn¸a mo˙zna traktowa´c

jak tablic¸e z indeksami od 1 do

length(t)

i z warto´sciami typu

char

(znak). Zmienne

typu

char

s¸a przechowywane w jednym bajcie i mog¸a zawiera ´c jeden znak. List¸e znaków

wraz z odpowiadaj¸acymi im numerami (od 0 do 255) zawiera tak zwany kod ASCII. Małe
litery alfabetu łaci ´nskiego maj¸a tam numery od 97 —

a

, do 122 —

z

.

Instrukcja

readln(t)

czyta z klawiatury tekst do zaszyfrowania i zapisuje go do zmiennej

t

. Elementy tablicy

t[i]

, dla

i

od 1 do

length(t)

, zawieraj¸a poszczególne znaki naszego tekstu.

Funkcja

ord

przypisuje znakom ich numery w kodzie ASCII, a funkcja

chr

działa

na odwrót, przypisuje znak numerowi. P¸etla

for

, dla ka˙zdego znaku tekstu

t

po kolei,

wylicza numer tego znaku po zakodowaniu:

m:=((ord(t[i])-97)*a+b)mod(26)+97,

a nast¸epnie drukuje zakodowany znak na ekranie:

write(chr(m)).

Klucz do kodowania przechowywany jest w postaci dwóch liczb,

a

i

b,

typu integer.

Szyfry liniowe s¸a bardzo starym wynalazkiem. W prostszej wersji z

sto-

sował je ju˙z Juliusz Cezar. Ich wad¸a jest to, ˙ze bardzo łatwo daj¸a si¸e łama ´c. Czasami
wystarcza odgadn¸a´c, jak zaszyfrowano dwie litery. Mo˙zna to zrobi´c analizuj¸ac cz¸esto´sci
wyst¸epowania liter w zaszyfrowanym tek´scie.

Przykład 1.40 (kontynuacja przykładu 1.39) W naszym drugim zaszyfrowanym tek´scie
litera wyst¸epuje cztery razy, a litery i

po trzy razy. Mo˙ze to nam pomóc w odgadni¸eciu,

background image

1.13. Chi ´nskie twierdzenie o resztach

21

˙ze litera

koduje liter¸e

, a litera

koduje liter¸e

. Mamy wi¸ec dwa równania:

63

63

9

Po odj¸eciu tych równa´n stronami mamy:

63

9

Korzystaj¸ac z algorytmu Euklidesa, mo˙zemy teraz wyliczy´c element odwrotny do 5 w pier-
´scieniu

. Jest to 21, poniewa˙z:

.

oraz

(

63

tak wi¸ec:

(

)

(8

63

9

Teraz z drugiego równania mo˙zemy wyliczy´c

:

-

63

9

1.13

Chi ´nskie twierdzenie o resztach

W staro˙zytnych Chinach generałowie u˙zywali pewnego ciekawego sposobu liczenia swo-
ich ˙zołnierzy. Dla kilku niewielkich liczb parami wzgl¸ednie pierwszych, na przykład dla:

obliczano i zapami¸etywano reszty z dzielenia liczby ˙zołnierzy przez te liczby. W celu
obliczenia reszt kazano ˙zołnierzom ustawi´c si¸e trójkami, pi¸atkami i siódemkami. Je˙zeli
przy nast¸epnym apelu wszystkie trzy reszty były takie same, to znaczyło, ˙ze nie brakuje

˙zadnego ˙zołnierza.

Zobaczmy, jak ten sposób działa. We´zmy najpierw dwie liczby:

9

W poni˙zszej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5:

a

63

3

0

0

0

1

1

1

2

0

2

3

1

0

4

0

1

5

1

2

background image

22

Rozdział 1. Teoria liczb

Ka˙zda z liczb od 0 do

.

ma inny zestaw reszt oraz dla ka˙zdej pary reszt

, spełniaj¸acych warunek

"

,

"

, istnieje liczba

, taka ˙ze:

63

63

9

Oczywi´scie 6 ma takie same reszty jak 0:

63

63

i ogólnie, je˙zeli dwie liczby

i

ró˙zni¸a si¸e o wielokrotno´s´c liczby

-

, czyli:

dla jakiego´s całkowitego

, to

63

63

63

63

9

Z tego wida´c, ˙ze sposób chi ´nskich generałów, z liczbami 2 i 3, liczy ˙zołnierzy z dokładno´sci¸a
do pi¸eciu.

Sytuacja jest inna, je˙zeli

i

nie s¸a wzgl¸ednie pierwsze. Je˙zeli, na przykład,

i

, to w´sród liczb od 0 do

)

istniej¸a takie, które maj¸a takie

same reszty, na przykład 1 i 13:

63

3

63

3

9

Ponadto nie istnieje taka liczba

, dla której:

63

63

9

Rzeczywi´scie, z pierwszej równo´sci wynika, ˙ze

powinno by´c nieparzyste, a z drugiej,

˙ze parzyste.

Je˙zeli jednak

i

s¸a wzgl¸ednie pierwsze, to ka˙zda z liczb od 0 do

ma

inny zestaw reszt oraz dla ka˙zdej pary reszt

, spełniaj¸acych warunek

"

,

#

"

, istnieje liczba

, taka ˙ze:

63

63

zachodzi bowiem poni˙zsze twierdzenie.

Twierdzenie 1.41 (chi ´

nskie twierdzenie o resztach) Niech

999

b¸ed¸a dodatnimi liczbami wzgl¸ednie pierwszymi, to znaczy dla ka˙zdej pary

"

mamy

, oraz niech

999

background image

1.13. Chi ´nskie twierdzenie o resztach

23

b¸ed¸a dowolnymi resztami. Wtedy istnieje liczba całkowita

, taka ˙ze:

63

63

(1.6)

9

99

3

9

Ponadto je˙zeli liczby

i

s¸a rozwi¸azaniami układu kongruencji (1.6), to ich ró˙znica

dzieli si¸e przez iloczyn wszystkich liczb

, czyli przez:

9

Dowód. Najpierw udowodnimy drug¸a cz¸e´s´c twierdzenia. Dla ka˙zdego

mamy:

63

3

9

Po odj¸eciu stronami tych dwóch równa ´n mamy:

3

czyli

wi¸ec ka˙zda spo´sród liczb

dzieli

!

, a skoro liczby

99

9

s¸a wzgl¸ednie pierwsze,

wi¸ec tak˙ze ich iloczyn

dzieli

. Rzeczywi´scie, przypu´s´cmy bowiem, ˙ze

ma

rozkład

9

We´zmy teraz dowolne

. Poniewa˙z rozkłady liczb

99

9

s¸a rozł¸aczne, wi¸ec

wyst˛epuje w rozkładzie jakiego´s

, czyli dzieli

oraz

, a wi¸ec w rozkładzie

liczby

, liczba

wyst¸epuje z wykładnikiem

. Dlatego

dzieli

.

Zobaczymy teraz, ˙ze układ (1.6) ma rozwi¸azanie. Niech

'

, czyli:

999

9

Poniewa˙z

i

maj¸a rozł¸aczne rozkłady, wi¸ec

oraz istnieje

,

takie ˙ze:

63

9

We´zmy teraz:

9

Zauwa˙zmy, ˙ze je˙zeli

, to

, oraz:

63

co daje:

3

dla ka˙zdego

, a wi¸ec

jest rozwi¸azaniem układu równa ´n (1.6).

background image

24

Rozdział 1. Teoria liczb

Przykład 1.42 Ka˙zda z liczb od 0 do

!

ma inny zestaw reszt wzgl¸edem

liczb 3, 5 i 7. Tak wi¸ec stosuj¸ac sposób chi´nskich generałów z liczbami 3, 5, 7 mo˙zemy
liczy´c ˙zołnierzy z dokładno´sci¸a do 104.

Ale sposób chi´nskich generałów pozwala tak˙ze stwierdzi´c, o ile zmieniła si¸e liczba

˙zołnierzy. Przypu´s´cmy bowiem, ˙ze na porannym apelu było

˙zołnierzy i uzyskano reszty:

63

63

63

a na apelu wieczornym było

˙zołnierzy i otrzymano reszty:

63

63

63

wtedy ró˙znica

spełnia nast¸epuj¸acy układ kongruencji:

63

63

63

9

Jak wida´c, chi´nskie twierdzenie o resztach pozwala wnioskowa´c o du˙zych liczbach za

pomoc¸a operacji na małych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia.

Przykład 1.43 Zastanówmy si¸e, ile wynosi reszta z dzielenia liczby

przez 15. Łatwo mo˙zna policzy´c, ˙ze:

63

oraz

63

, a wi¸ec:

63

poniewa˙z 4 jest jedyn¸a liczb¸a z przedziału

9

99

, która posiada reszty

63

oraz

63

.

1.14

Pierwiastki kwadratowe

Definicja 1.44 Liczb¸e

nazywamy pierwiastkiem kwadratowym liczby

w pier´scieniu

, je˙zeli

3

9

Przykład 1.45 W

pierwiastkami 4 s¸a 2 i 3, a liczba 2 nie posiada pierwiastka.

Zauwa˙zmy, ˙ze je˙zeli

63

to

63

czyli

63

, te˙z jest pierwiastkiem

.

Lemat 1.46 Je˙zeli

jest liczb¸a pierwsz¸a i

, to

i

s¸a jedynymi pierwiastkami

z

.

background image

1.15. Funkcja Eulera

25

Dowód Je˙zeli

3

, to

dzieli

, a poniewa˙z

jest pierwsze to

dzieli

lub

. W pierwszym przypadku

63

, w

drugim

63

.

Przykład 1.47 Tak nie musi by´c, je˙zeli

nie jest liczb¸a pierwsz¸a. Na przykład w

mamy cztery pierwiastki z , s¸a to ,

,

i

.

Ogólnie rozwa˙zmy liczb¸e

która jest iloczynem dwóch ró˙znych liczb pierwszych

.#

. We´zmy teraz dowoln¸a liczb¸e

, dla której

63

lub

63

oraz

3

lub

63

Wtedy

63

oraz

63

czyli z chi´nskiego twierdzenia o resztach wynika, ˙ze

63

9

Poniewa˙z

, to

3

oraz

63

i mamy wtedy

cztery ró˙zne pierwiastki z 1,

. S¸a to liczby dla których

63

63

63

63

63

63

63

63#

9

Zauwa˙zmy, ˙ze

3

oraz

63

.

1.15

Funkcja Eulera

Definicja 1.48 Funkcja Eulera, jest to funkcja, która liczbie

przypisuje

liczb¸e

elementów odwracalnych w

. Z definicji przyjmujemy

.

Przykład 1.49

, bo w

odwracalne s ˛

a

.

Podobnie

,

,

,

,

.

Lemat 1.50

a) Je˙zeli

jest liczb¸a pierwsz¸a, to dla dowolnego

,

. W szczególno´sci

.

b) Je˙zeli

i

s¸a wzgl¸ednie pierwsze, to

background image

26

Rozdział 1. Teoria liczb

Dowód:

a)

Zauwa˙zmy ˙ze, w´sród liczb

99

9

wzgl¸ednie pierwsze z

nie s¸a te, które s¸a po-

dzielne przez , jest ich

'

, czyli

9

b)

Najpierw zauwa˙zmy, ze dla dowolnej liczby

,

#

"

wtedy i tylko wtedy gdy

oraz

a to zachodzi wtedy i tylko wtedy gdy reszty

3

oraz

3

spełniaj¸a warunki

oraz

(1.7)

Par reszt

spełniaj¸acych warunek (1.7) jest

, a z chi ´nskiego twierdzenia

o resztach ka˙zdej liczbie

,

"

odpowiada dokładnie jedna para reszt, i na

odwrót ka˙zdej parze reszt odpowiada jedna liczba. Tak wi¸ec liczb wzgl¸ednie pierwszych
z

jest

9

1.16

Szybkie pot¸egowanie

Teraz zastanowimy si¸e jak mo˙zna pot¸egowa´c, czyli jak obliczy´c

63

dla

oraz

. Pierwszy nasuwaj¸acy si¸e algorytm pot¸egowania polega na

krotnym mno-

˙zeniu przez

:

y:=1;

for i:=0 to k do y:=y*a mod n

W kryptografii oblicza si¸e pot¸egi z wykładnikami posiadaj¸acymi po kilkaset bitów. Do
takich zastosowa ´n powy˙zszy algorytm jest nieprzydatny (wymaga on

mno˙ze ´n).

Poka˙zemy teraz jak mo˙zna pot¸egowa´c du˙zo szybciej. Zauwa˙zmy, ˙ze

i ogólnie

9

Dlatego, aby obliczy´c pot¸eg¸e o wykładniku, który jest pot¸eg¸a dwójki

nale˙zy

wykona´c

y:=a;

for i:=1 to j do y:=y*y mod n

background image

1.16. Szybkie pot¸egowanie

27

Przykład 1.51 Aby obliczy´c

w

obliczmy

-

3

,

!

3

,

3

,

63

.

Je˙zeli wykładnik jest sum¸a pot¸eg dwójki

, to

9

Przykład 1.52 Aby obliczy´c

63

trzeba wymno˙zy´c

)

63

.

Zauwa˙zmy, ˙ze ka˙zda liczba naturalna

jest sum¸a pot¸eg dwójki

gdzie

to cyfry rozwini¸ecia dwójkowego

.

Powy˙zsze uwagi sugeruj¸a nast¸epuj¸acy algorytm obliczania pot¸egi

.

Algorytm szybkiego pot˛egowania

Dane wej´sciowe: podstawa

a

oraz wykładnik

k=(dj,...,d0)

w postaci binarnej.

x:=a; y:=1

if d0=1 then y:=y*a mod n

for i:=1 to j do

x:=x*x mod n;

if di=1 then y:=y*x mod n

Zmienna

x

zawiera kolejne pot¸egi

o wykładnikach b¸ed¸acych pot¸egami 2. Na pocz¸atku

. Po

tej iteracji p¸etli for

. Je˙zeli

to mno˙zymy

przez

.

Na ko´ncu

8

9

Przykład 1.53 Prze´sled´zmy działanie algorytmu podczas obliczania

63

.

w zapisie dwójkowym ma posta´c

)

)

. Poni˙zsza tabela zawiera warto´sci zmiennej

x

i

y

przed wej´sciem do p˛etli

for i=0

) oraz po ka˙zdej iteracji.

i

x

y

0

2

2

1

4

8

2

3

8

3

9

8

4

3

11

Zauwa˙zmy, ˙ze wyniki po´srednie, i ostateczny, nale˙z ˛

a do

i algorytm nie potrzebuje

zbyt du˙zej pami¸eci. Algorytmu tego nie mo˙zna stosowa´c do obliczania

w liczbach

całkowitych, je˙zeli

jest du˙ze, to wynik ostateczny oraz po´srednie b¸ed ˛

a zbyt du˙ze, ˙zeby

mógł si¸e zmie´sci´c w pami¸eci komputera.

background image

28

Rozdział 1. Teoria liczb

1.17

Małe twierdzenie Fermata

Twierdzenie 1.54 (Fermata) Niech

, wtedy

63

9

Dowód Niech

99

9

to b¸ed¸a wszystkie elementy

. Je˙zeli pomno˙zymy je przez

9

99

to zgodnie z lematem 1.36 otrzymamy te same elementy tylko w innej kolejno´sci.

Wymnó˙zmy teraz elemnty obu ci¸agów

63

9

Po pomno˙zeniu przez odwrotno´s´c

otrzymamy tez¸e twierdzenia.

Wniosek 1.55 Je˙zeli

jest liczb¸a pierwsz¸a, to dla ka˙zdego

wzgl¸ednie pierwszego z

mamy

3

9

1.18

Szyfry RSA

W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowa-
nia jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze do
szyfrowania i deszyfrowania s¸a ró˙zne, ale jaden łatwo mo˙zna wyliczy ´c z drugiego. Takie
szyfry nazywamy symetrycznymi.

Teraz zapoznamy si¸e ze sposobem szyfrowania, w których klucz do szyfrowania mo˙ze

by´c jawny, nawet ogłaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktycz-
nie niemo˙zliwe wyliczenie klucza tajnego z klucza jawnego. Sposób ten zaproponowali
Rivest, Shamir i Adleman. Przypu´s´cmy, ˙ze Alicja chce utworzy´c swój klucz. Bierze w
tym celu dwie du˙ze liczby pierwsze

i

, ka˙zda mo˙ze zawiera´c po kilkaset bitów. Tworzy

ich iloczyn

. Funkcja Eulera

. Nast¸epnie Alicja losuje liczb¸e

, która jest wzgl¸ednie pierwsza z

. Skoro

to istnieje liczba

, taka, ˙ze

3

. Teraz para

jest jawnym kluczem Alicji i mo˙ze

by´c publicznie ogłoszona. Para

jest kluczem prywatnym Alicji, nie powinna go ona

nikomu zdradza´c. Alicja nie powinna te˙z zdradza´c rozkładu liczby

na czynniki. Je˙zeli

kto´s zna

i

, to mo˙ze wyliczy´c

oraz

.

Przypu´s´cmy, ˙ze Bob chce przesła´c Alicji jak¸a´s zaszyfrowan¸a wiadomo´s´c

. Traktuje-

my t¸e wiadomo´s´c jako liczb¸e

"

. (Je˙zeli wiadomo´s´c jest ci¸agiem znaków, to kodujemy

background image

1.19. Testy pierwszo´sci

29

ka˙zdy znak jako 8 bitów i cały ci¸ag mo˙ze by´c traktowany jako liczba w postaci dwójko-
wej.) Bob szyfruje wiadomo´s´c przy pomocy funkcji szyfruj¸acej

63

i przesyła j¸a Alicji. Alicja odszyfrowuje za pomoc¸a funkcji deszyfruj¸acej

63

9

Poka˙zemy teraz, ˙ze je˙zeli

, to

9

Mamy

63

9

Poniewa˙z

!

63

, wi¸ec istnieje

takie, ˙ze

4

, czyli

63

ale je˙zeli

, to

63

. Tak wi¸ec

. Do powy˙zszego potrzebne było zało˙zenie, ˙ze

. Ale gdy kto´s trafi na

wiadomo´s´c

, która nie jest wzgl¸ednie pierwsza z

, to Alicja ma pecha, poniewa˙z wtedy

mo˙zna dokona´c rozkładu liczby

i złama´c jej szyfr.

Łatwo te˙z mo˙zna pokaza´c, ˙ze

.

Niesymetryczne szyfry daj¸a nowe mo˙zliwo´sci. Mo˙zna ich na przykład u˙zywa´c do

podpisu. Aby podpisa´c jak¸a´s wiadomo´s´c

, Alicja szyfruje j¸a swoim szyfrem prywat-

nym

i jest to podpis wiadomo´sci

. Alicja wysyła Bobowi par¸e

.

˙

Zeby sprawdzi´c, ˙ze wszystko si¸e zgadza Bob szyfruje podpis publicznym kluczem Alicji
i sprawdza czy

9

1.19

Testy pierwszo´sci

W tym rozdziale zajmiemy si¸e zagadnieniem jak sprawdzi´c, czy liczba

jest pierwsza.

Mo˙zemy sobie wyobrazi´c, ˙ze

ma kilkaset bitów. Jak wida´c z poprzedniego rozdziału

du˙ze liczby pierwsze mog¸a by´c przydatne.

1.19.1

Test naiwny

Najprostszy sposób to, dzieli´c

przez kolejne liczby (pierwsze) a˙z do

. Jednak ten

test jest zupełnie niepraktyczny, je˙zeli

ma kilkaset bitów.

background image

30

Rozdział 1. Teoria liczb

1.19.2

Test Fermata

Drugi test jest algorytmem probabilistycznym i opiera si¸e na twierdzeniu Fermata 1.54.

Losujemy liczb¸e

"

i najpierw sprawdzamy, czy

. Je˙zeli

i

nie s¸a wzgl¸ednie pierwsze, i

, to

jest dzielnikiem

i

nie jest

pierwsza.

Je˙zeli

, to obliczamy

63

. Je˙zeli

63

, to

mamy pewno´s´c, ˙ze

nie jest liczb¸a pierwsz¸a.

Definicja 1.56 Tak¸a liczb¸e

, dla której

oraz

63

b¸edziemy nazywa´c ´swiadkiem Fermata dla

, poniewa˙z za´swiadcza ona, ˙ze

jest zło˙zona.

Je˙zeli

63

, to orzekamy, ˙ze liczba

jest pierwsza. W tym przypadku

mo˙zemy si¸e pomyli´c. Liczba

mo˙ze by´c zło˙zona a mimo to wylosowali´smy pechowo i

3

. Ale zachodzi nast¸epuj¸acy lemat.

Lemat 1.57 Je˙zeli istnieje takie

, ˙ze

63

, to przynajmniej poło-

wa elementów

jest ´swiadkiem Fermata dla

.

Dowód. Przypu´s´cmy, ˙ze

9

99

s ˛

a to wszystkie elementy

, dla których

3

. Wtedy po pomno˙zeniu

przez

otrzymamy

elementów

6

9

99

6

ró˙znych mi¸edzy sob¸a (lemat 1.36), z których ka˙zdy jest ´swiadkiem Fermata. Rzeczywi-
´scie

63

9

A wi¸ec ´swiadków zło˙zono´sci jest co najmniej połowa.

Je˙zeli

jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze.

Z lematu 1.57 wynika, ˙ze je˙zeli

jest zło˙zona i istnieje ´swiadek Fermata dla

, to takich

´swiadków jest co najmniej połowa, i nasz algorytm pomyli si¸e z prawdopodobie ´nstwem

"

'

. Prawdopodobie ´nsto, to mo˙zna zmniejszy´c poprzez powtórzenie algorytmu

razy,

z ró˙znymi wylosowanymi

.

Istniej¸a jednak liczby zło˙zone

, które nie maj¸a ´swiadków zło˙zono´sci. Na przykład

. Kłopot bierze si¸e st¸ad, ˙ze

!

)

, a

dzieli si¸e przez

,

oraz przez

. Dlatego dla dowolnego

, je˙zeli

, to

jest wzgl¸ednie pierwsze z

,

i

oraz mamy

63

63

63

i z chi´nskiego twierdzenia o resztach wynika, ˙ze

63

Takie liczby nazywaj¸a sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729.
Wyst¸epuj¸a one bardzo rzadko, jest ich tylko 255 w´sród liczb mniejszych od 100 000 000.

background image

1.19. Testy pierwszo´sci

31

1.19.3

Test Millera-Rabina

Zakładamy, ˙ze

jest nieparzyste (2 jest jedyn¸a parzyst¸a liczb¸a pierwsz¸a). Najpierw spraw-

dzamy, czy

jest pot¸eg¸a jakiej´s liczby naturalnej. Dla

od 2 do

/

sprawdzamy czy

, dla jakiego´s

. W rozdziale o arytmetyce opisano jak za pomoc¸a binary search

stwierdzi´c, czy liczba jest pot¸eg¸a innej liczby. Je˙zeli

jest pot¸eg¸a, to jest zło˙zona.

Poniewa˙z

jest nieparzyste, to

mo˙zemy przedstawi´c w postaci

9

dla jakiego´s

nieparzystego.

Losujemy

"

. Sprawdzamy, czy

(je˙zeli

8

, to

jest zło˙zona).

Nast¸epnie obliczamy

63

. Je˙zeli

63

, to koniec, stwierdzamy, ˙ze

jest pierwsza. Je˙zeli

63

, to obliczamy po kolei

3

63

99

9

63

9

Zauwa˙zmy, ˙ze w tym ci¸agu ka˙zda liczba jest kwadratem poprzedniej. Je˙zeli w´sród tych
liczb nie ma jedynki, to z twierdzenia Fermata wynika, ˙ze

jest zło˙zona, bo wtedy

3

9

Je˙zeli w tym ci¸agu jest jedynka, na przykład

3

to patrzymy na poprzedni element

. Je˙zeli

, to znale˙zli´smy nietrywial-

ny pierwiastek z 1. Z twierdzenia 1.46 wynika, ˙ze jest to mo˙zliwe tylko wtedy gdy

nie

jest pierwsze. Je˙zeli

, to orzekamy, ˙ze

jest pierwsze.

Łatwo wi¸ec wida´c, ˙ze je˙zeli

jest pierwsze, to test zawsze odpowie prawidłowo,

niezale˙znie od losowania. Wiadomo te˙z, ˙ze je˙zeli

jest zło˙zona i nie jest pot¸eg¸a licz-

by pierwszej, to z prawdopodobie ´nstwem wi¸ekszym ni˙z

'

wykryjemy to (dowód tego

faktu wybiega poza zakres tej ksi¸a˙zki i pomijamy go).

W praktyce stosujemy wszystkie trzy testy na raz. Maj¸ac nieparzyst¸a liczb¸e

, naj-

pierw sprawdzamy, czy dzieli si¸e ona przez kilka kolejnych liczb pierwszych

9

99

9

Dobór

zale˙zy od tego jak du˙ze liczby sprawdzamy. W ten sposób eliminujemy du˙z¸a

cz¸e´s´c liczb. Zauwa˙zmy, ˙ze obliczaj¸ac iloczyn tych liczb

i sprawdzaj¸ac, czy

&

mo˙zemy za jednym razem sprawdzi´c, czy

dzieli

si¸e przez któr¸a´s z tych liczb.

background image

32

Rozdział 1. Teoria liczb

Po przej´sciu pierwszego testu stosujemy test drugi, a gdy liczba

go przejdzie stosu-

jemy test trzeci.

Poniewa˙z liczby Carmichaela s¸a do´s´c rzadkie, wi¸ec drugi test wyeliminuje wi¸ekszo´s´c

liczb zło˙zonych.

Je˙zeli chcemy wyklosowa´c liczb¸e pierwsz¸a to losujemy nieparzyst¸a liczb¸e, a mast¸epnie

sprawdzamy, czy jest ona pierwsza. Je˙zeli nie, to sprawdzamy nast¸epne liczby

91919

.

1.20

Zadania

1. Dla ka˙zdej z liczb:

,

,

oraz

)

znajd´z liczb˛e

tak ˛

a,

˙ze

63

.

2. W pier´scieniu

wykonaj działania

oraz

.

3. W pier´scieniu

rozwi ˛

a˙z równania: a)

, b)

, c)

8

, d)

8

.

4. W pier´scieniu

rozwi ˛

a˙z równania: a)

, b)

.

5. W pier´scieniu

rozwi ˛

a˙z równania: a)

-

, b)

.

6. Dla liczb

i

)

oblicz

oraz liczby całkowite

i

spełniaj¸ace równanie

6

.

7. Oblicz

(

.

8. W pier´scieniu

rozwi ˛

a˙z równania: a)

3

.

9. W pier´scieniu

rozwi ˛

a˙z równania: a)

, b)

.

10. Znajd´z całkowite rozwi¸azanie

spełniaj¸ace równanie:

.

11. Podaj rozkład na czynniki pierwsze liczb

oraz

)

.

12. Ile dzielników ma liczba

?

13. Podaj tabliczk¸e dodawania i mno˙zenia w ciele

. Podaj elementy odwrotne do 5 i

6 w

.

14. Znajd´z elementy odwrotne do wszystkich elementów dwracalnych w

.

15. Dla jakich par reszt

istniej¸a liczby

spełniaj¸ace układ kongruencji:

63

63

9

16. Niech

i

b¸ed¸a dowolnymi dodatnimi liczbami całkowitymi. Dla jakich par

reszt

istniej¸a liczby

spełniaj¸ace układ kongruencji:

63

63

9

background image

1.21. Problemy

33

1.21

Problemy

1.21.1

Najwi˛ekszy wspólny dzielnik

Udowodnij, ˙ze

jest najmniejsz¸a dodatni¸a liczb¸a

, dla której istnieje

i

całkowite, takie ˙ze

(

.

Udowodnij, ˙ze ka˙zda liczba postaci

(

, dla

i

całkowitych, jest wielokrotno´sci¸a

, i na odwrót, ka˙zda wielokrotno´s´c

jest postaci

(

, dla jaki´s

i

całkowitych.

Udowodnij, ˙ze poni˙zszy algorytm poprawnie oblicza najwi¸ekszy wspólny dzielnik

, je˙zeli

$

:

var a,b,p,q,r,:integer;

begin

readln(a,b);

p:=a;q:=b;

while q >0 do

begin

r:=p mod q;

p:=q; q:=r

end;

writeln(’NWD(’,a,’,’,b,’)=’,p)

end.

Zmodyfikuj powy˙zszy program, tak aby oprócz

, obliczał tak˙ze współ-

czynniki

i

, takie ˙ze

6

.

1.21.2

Najmniejsza wspólna wielokrotno´

c

Niech

oznacza najmniejsz¸a wspóln¸a wielokrotno´s´c liczb

i

.

Udowodnij, ˙ze

dzieli ka˙zd¸a inn¸a wspóln¸a wielokrotno´s´c liczb

i

.

Poka˙z, ˙ze

1.21.3

Liczby wzgl˛ednie pierwsze

Udowodnij, ˙ze je˙zeli

jest wzgl¸ednie pierwsze z

i

, to

jest wzgl¸ednie pierwsze z

iloczynem tych liczb

6

.

Jako wniosek udowodnij, ˙ze je˙zeli

jest wzgl¸ednie pierwsze z ka˙zd¸a z liczb

919

9

,

to

jest wzgl¸ednie pierwsze z iloczynem tych liczb

9

background image

34

Rozdział 1. Teoria liczb

1.21.4

Układ kongruencji

Istnieje inny sposób rozwi¸azywania układu kongruencji. Poka˙zemy go na przykładzie
układu

63

(1.8)

63

Najpierw szukamy dwóch liczb

i

spełniaj¸acych warunki

63

63

63

63

Udowodnij, ˙ze rozwi¸azaniem układu (1.8) jest

63

9

Jak policzy´c

oraz

? Poniewa˙z 3 i 5 s¸a wzgl¸ednie pierwsze, wi¸ec istniej¸a

i

takie,

˙ze

Poka˙z, ˙ze je˙zeli podstawimy

63

oraz

63

, to b¸edzie

dobrze.

1.21.5

Chi ´

nskie twierdzenie o resztach

Z chi´nskiego twierdzenia o resztach wynika, ˙ze je˙zeli

, to funkcja

63

63

stanowi wzajemnie jednoznaczne odwzorowanie pomi¸edzy

a iloczynem kartezja ´n-

skim

.

Na iloczynie kartezja ´nskim

mo˙zemy okre´sli´c działania dodawania i mno˙ze-

nia w nast¸epuj¸acy sposób:

9

Łatwo mo˙zna sprawdzi´c, ˙ze zbiór

z tak okre´slonymi działaniami, jest pier´scie-

niem. Ponadto funkcja

spełnia warunki

oraz

.


Wyszukiwarka

Podobne podstrony:
Matematyka dyskretna 2004 06 Teoria liczb
Matematyka dyskretna 2004 06 Teoria liczb
Matematyka dyskretna 2002 07 Rekurencja
Matematyka dyskretna 2002 04 Rachunek prawdopodobieństwa
Matematyka dyskretna 2002 01 Oznaczenia
Matematyka dyskretna 2002 11 Poprawność programów
Matematyka dyskretna 2002 10 Grafy skierowane
Matematyka dyskretna 2002 04 Rachunek prawdopodobieństwa
Matematyka dyskretna 2002 07 Rekurencja
Matematyka dyskretna 2002 08 Struktury danych
Matematyka dyskretna 2002 01 Oznaczenia
Matematyka dyskretna 2002 03 Kombinatoryka
Matematyka dyskretna 2002 05 Funkcje boolowskie
Matematyka dyskretna 2002 11 Poprawność programów
Matematyka dyskretna 2002 02 Arytmetyka
Matematyka dyskretna cz 1 Teoria liczb
PK-I-06, 1 STUDIA - Informatyka Politechnika Koszalińska, Matematyka dyskretna i TPI, 04-10-2012

więcej podobnych podstron