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

 

.

.

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

.