• Nie Znaleziono Wyników

Wykładyzmatematykidyskretnejdlainformatykówiteleinformatyków Kongruencje

N/A
N/A
Protected

Academic year: 2021

Share "Wykładyzmatematykidyskretnejdlainformatykówiteleinformatyków Kongruencje"

Copied!
58
0
0

Pełen tekst

(1)

Kongruencje

Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków

UTP Bydgoszcz

10

(2)

KONGRUENCJE

Definicja.

Niech a, b ∈ Z, m ∈ N+. Mówimy, że a przystaje do b modulo m, jeśli m|(a − b). Oznaczamy: a ≡ b (mod m) lub a ≡m b.

Relację przystawania modulo m nazywamy kongruencją.

Przykład.

7 ≡ 2 (mod 5), 11111113 ≡ −11111117 (mod 10),

a kongruencję x ≡ 1 (mod 2) spełniają wszystkie liczby nieparzyste x . Przykład. [budzik]

(23 + 8) ≡ 7 (mod 24), (11 + 8) ≡ 7 (mod 12).

Definicja (równoważna).

Mówimy, że liczby a i b przystają modulo m, gdy mają taką samą resztę z dzielenia przez m, czyli a%m = b%m

(3)

KONGRUENCJE

Uzasadnienie równoważności.

Jeśli m|(a − b), to (a − b) = km (czyli a − b jest wielokrotnością m).

Niech a = k1m + a%m oraz b = k2m + b%m. Wtedy a%m − b%m = (a − b) + (k2− k1)m = (k + k2− k1)m.

Różnica tych reszt jest wielokrotnością m.

Zarówno a%m jak i b%m są liczbami ze zbioru {0, 1, . . . , m − 1}, więc wartość bezwzględna z ich różnicy też jest liczbą z tego zbioru.

Zatem a%m − b%m = 0, czyli a%m = b%m.

Jeśli natomiasta%m = b%m (oznaczmy, tę liczbę przez r ), to a = k1m + r , b = k2m + r , więc a − b = (k1− k2)m, zatem m|(a − b).

(4)

KONGRUENCJE

Fakt. Relacja przystawania modulo m jest relacją równoważności.

Uzasadnienie. Relacja ta jest:

zwrotna, gdyż a ≡ a (mod m) (czyli a%m = a%m);

symetryczna, gdyż jeśli a ≡ b (mod m), to b ≡ a (mod m) (czyli jeśli a%m = b%m, to b%m = a%m);

przechodnia, gdyż jeśli a ≡ b (mod m) (czyli a%m = b%m) i b ≡ c (mod m) (czyli b%m = c%m), to

a ≡ c (mod m) (czyli a%m = c%m).

(5)

m

,

m

Definicja. Dla a, b ∈ Z oraz m ∈ N+ definiujemy operacje:

a ⊕mb = (a + b)%m a mb = (a · b)%m Przykład.

15 ⊕1017 = (15 + 17)%10 = 32%10 = 2 15 ⊕1025 = (15 + 25)%10 = 40%10 = 0 5 107 = (5 · 7)%10 = 35%10 = 5 5 1020 = (5 · 20)%10 = 100%10 = 0

Przykład.

2 0 1

0 0 1

2 0 1

0 0 0

(6)

Grupa

Grupą (G , ⊗) nazywamy zbiór G z określonym w nim działaniem ⊗ (czyli funkcją ⊗ : G × G → G ) spełniającym warunki:

a,b,c∈G (a ⊗ b) ⊗ c = a ⊗ (b ⊗ c) (łączność),

ea∈G a ⊗ e = e ⊗ a = a (istnieje element neutralny)

a∈Gz∈G a ⊗ z = z ⊗ a = e (istnieje element odwrotny) Jeśli dodatkowo:

a,b∈G a ⊗ b = b ⊗ a (przemienność), to grupę nazywamy przemienną.

(7)

Grupa

Fakt. W każdej grupie G istnieje tylko jeden element neutralny.

Uzasadnienie.

Jeśli istnieją dwa elementy neutralne e1 oraz e2, to e1 = e1⊗ e2 = e2. Fakt. W każdej grupie G dla dowolnego elementu a istnieje tylko jeden element odwrotny.

Uzasadnienie.

Jeśli istnieją dwa elementy odwrotne a1 oraz a2, to

a1 = a1⊗ e = a1⊗ (a ⊗ a2) = (a1⊗ a) ⊗ a2 = e ⊗ a2= a2.

Oznaczenie. Skoro element odwrotny do elementu a jest tylko jeden, możemy go oznaczyć. Stosujemy symbol

a−1 (dla działania zapisywanego w sposób multiplikatywny), albo

(8)

Grupa

Przykład.

Zbiór macierzy kwadratowych (tego samego stopnia) o niezerowym wyznaczniku z działaniem mnożenia tworzy grupę (nieprzemienną).

Przykład.

Grupa czwórkowa Kleina to zbiór K4= {a, b, c, d } z działaniem określonym następująco:

a b c d

a a b c d

b b a d c

c c d a b

d d c b a

Elementem neutralnym jest a.

(9)

Zbiór Z

m

= {0, 1, . . . , m − 1} (dla m ∈ N

+

) wraz z działaniem ⊕

m

tworzy grupę

Przykład. Tabela dodawania modulo 8 w zbiorze Z8.

8 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

Elementem neutralnym jest 0. Elementy przeciwne, zaznaczane −a to,

(10)

Grupa

Przykład.

Grupą jest {0, 2, 4, 6} z działaniem ⊕8. Tabela dodawania:

8 0 2 4 6

0 0 2 4 6

2 2 4 6 0

4 4 6 0 2

6 6 0 2 4

Elementem neutralnym jest 0.

Elementy przeciwne, zaznaczane −a to, kolejno:

−0 = 0, −2 = 6,−4 = 4, −6 − 2.

(11)

Grupa z działaniem

m

Zbiór Zm wraz z działaniem m nie tworzy grupy; elementem neutralnym powinna być jedynka, ale 0 nie ma elementu odwrotnego.

Przykład. Grupą jest G0 = {1, 3, 5, 7} z działaniem 8.

8 1 3 5 7

1 1 3 5 7

3 3 1 7 5

5 5 7 1 3

7 7 5 3 1

Elementem neutralnym jest 1. Elementy odwrotne (zaznaczane a−1) to,

(12)

Własności kongruencji

Fakt. Jeśli a ≡ b (mod m) i c ≡ d (mod m), to

1 a + c ≡ b + d (mod m);

2 ac ≡ bd (mod m).

Dowód.

m|(a − b) oraz m|(c − d ), więc istnieją k1 i k2, że mk1=a− b oraz mk2 =c − d . Zatem

1 (a+c) − (b + d ) = b + mk1+ d + mk2− (b + d ) = (k1+ k2)m, czyli m dzieli tę różnicę;

2 ac − bd = ac − bc + bc − bd = c(a − b) + b(c − d ) = cmk1+ bmk2 = m(ck1+ bk2),

czyli m dzieli tę różnicę.

(13)

Własności kongruencji

Wniosek.

Do kongruencji możemy dodać stronami tę samą liczbę

(czyli możemy, jak w przypadku równości, przenosić wyrazy na drugą stronę kongruencji zmieniając znak). Możemy też mnożyć kongruencję obustronnie przez tę samą liczbę całkowitą oraz podnosić obie strony kongruencji do tej samej (naturalnej) potęgi.

Wniosek.

Niech f (x ) = a0+ a1x + ... + anxn, gdzie n ∈ N+, a0, a1, . . . , an∈ Z oraz niech m ∈ Z.

Jeśli a ≡ b (mod m), to f (a) ≡ f (b) (mod m).

(14)

Reguła skracania

Fakt.

Niech m ∈ N+. Jeśli ad ≡mbd oraz NWD(d , m) = 1, to a≡mb.

Dowód. NWD(d , m) = 1, więc (zobacz rozszerzony algorytm Euklidesa) istnieją x oraz y , że dx + my = 1, zatem dx ≡m1. Mnożąc przez x obie strony równania ad ≡mbd otrzymamyadx ≡mbdx. Stąd

a = a ·1≡madx =bdxmb ·1= b.

Przykład.

NWD(5, 7) = 1, więc równanie 45≡710 możemy skrócić przez 5 otrzymując 9≡72.

Przykład.

Równania 10≡46 nie możemy skrócić przez 2;

tu NWD(2, 4) = 2 6= 1.

(15)

Rozwiązywanie modularnych równań liniowych (rozwiązywanie kongruencji)

Zagadnienie.

Dane są liczby a, k ∈ Z oraz d ∈ N+. Znajdź wszystkie liczby x ∈ Zm

takie, że

ax ≡mk.

Uwaga. To nie jest „zwykłe” równanie (to jest kongruencja),

m jest relacją równoważności. Możemy zapisać (równoważnie) (ax )%m = k%m.

(16)

Przykłady

Przykład. Wyznacz wszystkie liczby x ∈ Z9 takie, że 6x ≡93.

Wypiszemy reszty z dzielenia 6x przez 9.

x 0 1 2 3 4 5 6 7 8

(6x )%9 0 6 3 0 6 3 0 6 3

Odpowiedź. Są trzy rozwiązania: x = 2, x = 5, x = 8.

Przykład. Wyznacz wszystkie liczby x ∈ Z9 takie, że 6x ≡96.

Odpowiedź. Są trzy rozwiązania: x = 1, x = 4, x = 7.

Przykład. Wyznacz wszystkie liczby x ∈ Z9 takie, że 6x ≡92.

Odpowiedź. Nie ma rozwiązań.

(17)

Przykłady

Przykład.

Wyznacz wszystkie liczby całkowite x takie, że 6x ≡93 (inaczej mówiąc: rozwiąż tę kongruencję).

Odpowiedź. Są trzy rozwiązania: x = 2, x = 5, x = 8 należące do Z9. Wszystkie rozwiązania to 2 + 9k1, 5 + 9k2, 8 + 9k3 dla dowolnych liczb całkowitych k1, k2, k3.

Mówimy wtedy, że są trzy rozwiązania 2, 5, 8 modulo 9.

Przykład.

Wyznacz wszystkie liczby całkowite x takie, że x ∈ Z9 takie, że 6x ≡92.

Odpowiedź. Nie ma rozwiązań.

(18)

Kongruencje

Twierdzenie.

Kongruencja ax ≡ b (mod m) ma rozwiązanie wtedy i tylko wtedy, gdy NWD(a, m)|b.

Istnieje wtedy NWD(a, m) rozwiązań modulo m tej kongruencji.

Wniosek.

Jeśli NWD(a, m) = 1, to istnieje jedno rozwiązanie modulo m tej kongruencji, czyli wszystkie rozwiązania są postaci

x = x0+ km,

gdzie k ∈ Z, a x0 jest rozwiązaniem należącym do zbioru {0, 1, . . . , m − 1}.

(19)

Algorytm rozwiązywania

Algorytm rozwiązywania kongruencji ax ≡ b (mod m):

oblicz NWD(a, m) = d oraz znajdź y i z takie, że ya + zm = d (rozszerzony algorytm Euklidesa);

jeśli d = 1, to rozwiązaniami jest (są) x0= yb (mod m);

jeśli d > 1 i d - b, to równanie nie ma rozwiązań;

jeśli d > 1 i d |b, to rozwiązaniami są ybd +md · k dla dowolnej liczby całkowitej k;

inaczej mówiąc:

kongruencje ax ≡ b (mod m) oraz dax ≡ db (mod md) są równoważne (mają te same rozwiązania w zbiorze Z).

(20)

Uzasadnienie, ax ≡ b (mod m)

Zauważmy, że a ≡m (a%m) oraz b ≡m(b%m), więc rozwiązania równań ax ≡mb oraz (a%m)x ≡m (b%m) są takie same. Możemy zatem zakładać, że a, b ∈ Zm.

Jeśli d = 1, to istnieją y i z takie, że 1 = ya + zm. Zatem 1 ≡m(ya + zm) ≡mya, czyli ya − 1 jest krotnością m. Jednym z rozwiązań kongruencji jest x0 = yb, gdyż

ax0 = ayb = yab = [(ya − 1)b + b] ≡mb.

Pozostałe dostaniemy dodając do x0= yb krotności m.

Załóżmy, że d > 1.

Pokażemy, że jeśli kongruencja ma rozwiązanie, to d |b. Oznaczać to będzie, że jeśli d - b, to kongruencja nie ma rozwiązania.

Wiemy, że d |a oraz d |m (bo d = NWD(a, m)). Jeśli x0 jest rozwiązaniem, to ax0 m b, więc m|(ax0− b), także d |(ax0− b).

Skoro d |a, zatem d |b.

(21)

Uzasadnienie, ax ≡ b (mod m)

Załóżmy, że d > 1 i d |b.

Pokażemy, że kongruencje ax ≡ b (mod m) oraz dax ≡ db (mod md) są równoważne.

ax ≡ b (mod m)

wtedy i tylko wtedy, gdy istnieje k, że ax − b = km, czyli

a

dx − db = kmd, czyli wtedy i tylko wtedy, gdy a

dx ≡ b

d (mod m d ).

(22)

Przykłady rozwiązywania kongruencji

Przykład.

Znajdź wszystkie liczby całkowite x spełniające równanie (modularne równanie liniowe) 6x ≡133.

NWD(6, 13) = 1. Z rozkładu: 1 = 1 · 13−2· 6 wiemy, że y =−2.

Rozwiązaniami są: x0 =−2·3 modulo 13, czyli zbiór rozwiązań to:

{. . . , −6 − 2 · 13, −6 − 13, −6, −6 + 13, −6 + 2 · 13, . . . } = {. . . , −32, −19, −6, 7, 20, . . . }.

Przykład.

Znajdź wszystkie liczby całkowite x spełniające równanie (modularne równanie liniowe) 6x ≡9 2.

NWD(6, 9) = 3, ale3 - 2, równanie nie ma rozwiązania.

(23)

Przykłady rozwiązywania kongruencji

Przykład.

Znajdź wszystkie liczby całkowite x spełniające równanie 6x ≡93.

NWD(6, 9) =3oraz 3|3. Istnieją trzy rozwiązania modulo 9 tej kongruencji; jak wiemy są to x1= 2, x2 = 5, x3 = 8.

Możemy je uzyskać ze wzoru:

y · b d +m

d · k.

Z rozkładu 3= 2 ·6− 1 ·9 wiemy, że y = −1, ponadto a =6, b =3, d =3, m =9. Rozwiązania są postaci

−1 · 3 3+ 9

3· k = −1 + 3k

(24)

Przykłady rozwiązywania kongruencji

Inny sposób.

Jeśli NWD(a, m) = 1, to, jak wiemy, istnieje dokładnie jedno rozwiązanie w grupie Zm kongruencji ax ≡m b. Mnożąc obie strony przez a−1 otrzymamy a−1 max = a−1 mb, czyli x = a−1 mb.

Przykład.

Znajdź wszystkie liczby całkowite x spełniające równanie 6x ≡133.

NWD(6, 13) = 1, zatem szukamy w Z13 elementu odwrotnego do szóstki.

Jest nim 6−1 = 11, gdyż 6 1311 = 1 (tu: 6 · 11 = 66 = 5 · 13 + 1).

Zatem

x = 6−1 133 = 11 133 = 7 (tu: 11 · 3 = 33 = 2 · 13 + 7).

Rozwiązania są postaci 7 + 13k dla liczb całkowitych k.

(25)

Przykłady rozwiązywania kongruencji

Inny sposób.

Jeśli NWD(a, m) = d > 1, to, jak wiemy, możemy utworzyć kongruencję równoważną („dzieląc” przez d ).

Przykład.

Znajdź wszystkie liczby całkowite x spełniające równanie 6x ≡93.

NWD(6, 9) = 3, „dzielimy” przez 3 otrzymując 2x ≡3 1.

W Z3 elementem odwrotnym do 2 jest 2−1 = 2, gdyż 2 32 = 1 (tu: 2 · 2 = 4 = 1 · 3 + 1).

Rozwiązaniem jest x = 2−1 31 = 2 31 = 2 (tu: 2 · 1 = 2 = 0 · 3 + 2).

Rozwiązania są postaci 2 + 3k dla k będących liczbami całkowitymi

(26)

Chińskie Twierdzenie o Resztach

Twierdzenie.

Jeśli NWD(m, n) = 1, to układ kongruencji ( x ma

x nb ma dokładnie jedno rozwiązanie modulo mn.

Dowód.

Liczby m i n są względnie pierwsze. Z rozszerzonego algorytmu Euklidesa wiemy, że istnieją y oraz z, że ym + zn = 1. Zauważmy, że

(ym) ≡m 0, (ym) ≡n1, (zn) ≡m 1, (zn) ≡n0.

Dlatego też liczba x =bym+azn jest rozwiązaniem układu.

(27)

Chińskie Twierdzenie o Resztach

Dowód, ciąg dalszy.

Pokażemy jeszcze, że każde dwa rozwiązania x+ oraz x naszego układu różnią się o krotność mn.

Ponieważ x+ m a oraz x ma, otrzymamy (x+− x) ≡m 0, czyli m|(x+− x).

Podobnie n|(x+− x).

Liczby m i n są względnie pierwsze, zatem także mn|(x+− x).

(28)

Przykład

Przykład. Rozwiąż układ kongruencji ( x 51

x 62

NWD(5, 6) =1, więc ten układ kongruencji ma dokładnie jedno

rozwiązanie modulo 5 · 6 = 30. W Z30pierwsze równanie spełniają liczby 1, 6, 11, 16, 21, 26, a drugie 2, 8, 14, 20, 26.

Odpowiedź: x = 26 (mod 30).

Inny sposób. Zamiast podawać wszystkie rozwiązania poszczególnych kongruencji mogliśmy rozłożyć

1= 5 ·5− 4 ·6 Rozwiązaniem (w Z30) jest

x =2· 5 ·5+1· (−4 ·6) = 26.

(29)

Przykład

Przykład. Rozwiąż układ kongruencji ( x 51

x 62

Jeszcze inny sposób rozwiązania (NWD(5, 6) = 1):

z pierwszej kongruencji: x = 1 + 5t.

Po podstawieniu do drugiej:

1 + 5t ≡62, czyli 5t ≡61.

(30)

Ogólna postać

Powyższe twierdzenie można uogólnić na większą liczbę kongruencji o parami względnie pierwszych modułach.

Twierdzenie (Chińskie Twierdzenie o Resztach). Jeśli m1, . . . , mk są parami względnie pierwsze, to układ kongruencji

x m1 a1 ...

x mk ak

ma dokładnie jedno rozwiązanie modulo m1· . . . · mk.

(31)

Przykład

Po bitwie, w której brało udział 5000 żołnierzy dowódca ustawia wojsko.

Po ustawieniu w szeregi po 13 oraz po 15 żołnierzy, w ostatnim szeregu było pięciu. Przy ustawieniu po 14 żołnierzy, w ostatnim szeregu było siedmiu. Ilu żołnierzy pozostało po walce?

(32)

Przykład

Rozwiązujemy układ kongruencji

x ≡135 x ≡147 x ≡155

(33)

x ≡

13

5, x ≡

14

7, x ≡

15

5

NWD(13, 14) = 1, NWD(13, 15) = 1, NWD(14, 15) = 1, więc ten układ kongruencji ma dokładnie jedno rozwiązanie modulo 13 · 14 · 15 = 2730.

Z pierwszej kongruencji: x = 5 + 13t.

Po podstawieniu do trzeciej:

5 + 13t ≡155, czyli 13t ≡150.

Stąd t = 15k oraz

x = 5 + 13 · 15k = 5 + 195k, k ∈ Z.

Po podstawieniu do drugiej kongruencji 5 + 195k ≡147, czyli 195k ≡142.

Stąd k = 12 + 14m (mamy 195 · 12 − 2 = 2338 = 167 · 14), więc

x = 5 + 195 · (12 + 14m) = 2345 + 2730m, m ∈ Z.

Po bitwie pozostało 2345 żołnierzy.

(34)

Elementy kryptografii:

antyczny szyfr Cezara

Bardzo prostym szyfrem jest, przypisywany Juliuszowi Cezarowi, szyfr Cezara. Zastępujemy w nim każdą literę przesyłanej wiadomości literą znajdującą się o 3 miejsca dalej w alfabecie, przy czym trzem ostatnim literom alfabetu odpowiadają trzy pierwsze litery.

tekst jawny a b c d e f g h i j k l m

tekst zaszyfrowany d e f g h i j k l m n o p

tekst jawny n o p q r s t u v w x y z

tekst zaszyfrowany q r s t u v w x y z a b c

(35)

Elementy kryptografii:

antyczny szyfr Cezara

Uwaga. Oczywiście możemy każdą literę zastąpić inną oddaloną nie o trzy, ale o, na przykład, 5 albo 8.

System kryptograficzny, w którym każdemu znakowi tekstu jawnego odpowiada jednoznacznie wyznaczony znak tekstu zaszyfrowanego nazywa się monoalfabetycznym.

Przykład.

Zaszyfrowana za pomocą szyfru Cezara wiadomość urpd to roma.

tekst jawny a b c d e f g h i j k l m

tekst zaszyfrowany d e f g h i j k l m n o p

tekst jawny n o p q r s t u v w x y z

tekst zaszyfrowany q r s t u v w x y z a b c

(36)

Elementy kryptografii:

prosty szyfr liczbowy

Taki szyfr możemy utworzyć zastępując kolejne litery alfabetu nie literami, ale liczbami, np. od 0 do 25 (dla alfabetu łacińskiego):

a b c d e f g h i j k l m

0 1 2 3 4 5 6 7 8 9 10 11 12

n o p q r s t u v w x y z

13 14 15 16 17 18 19 20 21 22 23 24 25 i szyfrując tekst jawny P zgodnie z kongruencją C ≡ αP + β (mod 26) (α, β ∈ Z26, gdzie α to element odwracalny). Otrzymamy w ten sposób tekst zaszyfrowany C , który należy przekształcić za pomocą kongruencji P ≡ α−1C − α−1β (mod 26), żeby odszyfrować wiadomość.

(37)

Przykład

C ≡ αP + β (mod 26), P ≡ α−1C − α−1β (mod 26)

Przykład. Niech α = 5, β = 4.

Zaszyfrujemy wiadomość ”nie”, czyli ciąg liczb 13, 8, 4. Mamy:

5 ·13+ 4 = 69 = 2 · 26 + 17 ≡17 (mod 26), 5 ·8+ 4 = 44 = 1 · 26 + 18 ≡18 (mod 26) 5 ·4+ 4 = 24 ≡24 (mod 26).

Zaszyfrowana wiadomość ma więc postać ”rsy”.

Odszyfrowujemy ją: α−1= 5−1= 21, gdyż

α−1· α = 21 · 5 = 105 = 4 · 26 + 1 ≡261 oraz α−1β = 21 · 4 = 84.

Obliczamy zatem

21 ·17− 84 = 273 = 10 · 26 + 13 ≡13 (mod 26), 21 ·18− 84 = 294 = 11 · 26 + 8 ≡8 (mod 26),

(38)

Obserwacja.

Taki szyfr jest prosty do złamania – wystarczy sprawdzić wszystkie możliwości na α i β, żeby sprawdzić, przy jakich parametrach odczytana wiadomość coś oznacza (metoda wyczerpującego przeszukiwania kluczy ).

Inną metodą jest analiza częstościowa, polegająca na badaniu jakie litery pojawiają się najczęściej w zaszyfrowanej wiadomości i porównaniu ich z najczęściej występującymi literami w danym języku.

(39)

Elementy kryptografii:

analiza częściowa, przykład

Przykład. Odszyfrujemy wiadomośćqda. Wiemy, że tekst został napisany w języku angielskim (oczywiście był dłuższy niż te trzy litery).

Sprawdziliśmy, że najczęściej pojawiającymi się literami w zaszyfrowanym tekście były d(przypisaliśmy jej liczbę 3) oraz w(liczba 22).

W języku angielskim najczęściej pojawiającą się literą jest e (częstotliwość 0,127, liczba4), a następniet(częstotliwość 0,09, liczba19).

I sposób: znajdziemy α oraz β i będziemy postępować jak w poprzednim przykładzie. Przyjmujemy, że zaszyfrowana liczba 3(litera d) to 4(e) oraz 22 (w) to19 (t). Rozwiązujemy układ kongruencji

( 3 α ·4+ β (mod 26) 22 ≡ α ·19+ β (mod 26)

Odejmując kongruencje stronami otrzymamy 15α ≡ 19 (mod 26), czyli

(40)

Przykład, α = 3, β = 17, α

−1

= 9, −α

−1

β = −9 · 17.

Zaszyfrowanemu tekstowiqda odpowiadają liczby16,3, 0. Obliczamy:

9 ·16− 9 · 17 = −9 = −26 + 17 ≡17 (mod 26), 9 ·3− 9 · 17 = −126 = −5 · 26 + 4 ≡4 (mod 26), 9 ·0− 9 · 17 = −152 = −6 · 26 + 3 ≡3 (mod 26) Odszyfrowana wiadomość to red.

II sposób: Także przyjmujemy, że zaszyfrowana liczba 3(literad) to4 (e) oraz 22 (w) to 19 (t), ale od razu rozwiązujemy układ kongruencji

( 4 0+ β0 (mod 26) 19 22α0+ β0 (mod 26) ,

gdzie α0 i β0 spełniają kongruencję P ≡ α0C + β0 (mod 26). Odejmując kongruencje stronami otrzymamy 19α0≡ 15 (mod 26), czyli α0= 9, więc β0 = 3. Obliczamy16· 9 + 3 = 147 = 5 · 26 + 17 =17 (mod 26),

3· 9 + 3 = 30 = 26 + 4 =4 (mod 26),0· 9 + 3 =3 (mod 26), więc

(41)

Elementy kryptografii:

bloki, polski alfabet

a ą b c ć d e ę f g h i j k l ł

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

m n o ó p r s ś t u w x y z ź ż

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Każdej literze polskiego alfabetu przyporządkowujemy liczbę (jak w tabeli). Ponadto spacja ma przyporządkowaną liczbę 32.

Przykład. Szyfrujemy wiadomość “w piątek”, ale podzieloną na

bloki dwuliterowe. Możemy użyć następującego sposobu: jeśli literom l1, l2 przyporządkowaliśmy liczby λ(l1), λ(l2), to blokowi l1l2 przypiszemy liczbę 33 · λ(l1) + λ(l2). Blokom “w ”, “pi”, “ąt”, “ek” przypisujemy liczby:

“w “ 7→ 33 · 26 + 32 = 890; “pi” 7→ 33 · 20 + 11 = 671;

“ąt” 7→ 33 · 1 + 24 = 57; “ek” 7→ 33 · 6 + 13 = 211.

(42)

Elementy kryptografii:

bloki, polski alfabet

a ą b c ć d e ę f g h i j k l ł

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

m n o ó p r s ś t u w x y z ź ż

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Przykład. Szyfrujemy wiadomość “w piątek”, ale podzieloną na bloki trzyliterowe. Możemy użyć następującego sposobu: jeśli literom l1, l2, l3 przyporządkowaliśmy liczby λ(l1), λ(l2), λ(l3) to blokowi l1l2l3

przypiszemy liczbę 332· λ(l1) + 33 · λ(l2) + λ(l3).

Blokom “w p”“,iąt”, “ek ” przypisujemy liczby:

“w p“ 7→ 332· 26 + 33 · 32 + 20 = 29390;

“iąt” 7→ 332· 11 + 33 · 1 + 24 = 12036;

“ek ” 7→ 332· 6 + 33 · 13 + 32 = 6995.

Teraz możemy otrzymane liczby zaszyfrować korzystając z kongruencji.

(43)

Szybkie potęgowanie modulo

Jak wiemy, każdą liczbę możemy zapisać (w systemie dwójkowym) jako sumę odpowiednich potęg dwójki.

Przykład 1.

Oblicz 36611 (mod 2491).

Wykładnik 11 możemy zapisać jako 11 = 8 + 2 + 1.

Obliczamy, kolejno,

3662 = 133956 = 53 · 2491 + 1933 ≡ 1933 (mod 2491),

3664 = 36622 ≡ (1933)2= 3736489 = 1499 · 2491 + 2480 ≡ 2480 (mod 2491),

3668 = 36642 ≡ (2480)2= 6150400 = 2469 · 2491 + 121 ≡ 121 (mod 2491).

Zatem 36611= 3668+2+1= 3668· 3662· 3661≡ 121 · 1933 · 366

(44)

Przykład 2. Oblicz 1623

435

(mod 2491).

Wykładnik 435 możemy zapisać jako

435 = 256 + 128 + 32 + 16 + 2 + 1.

Podstawmy A = 1623. Obliczamy, kolejno,

A2= (1623)2= 2634129 = 1057 · 2491 + 1142 ≡ 1142 (mod 2491), A4= A22

≡ (1142)2= 1304164 = 523 · 2491 + 1371 ≡ 1371 (mod 2491), A8= A42

≡ (1371)2= 1879641 = 754 · 2491 + 1427 ≡ 1427 (mod 2491), A16= A82

≡ (1427)2= 2036329 = 817 · 2491 + 1182 ≡ 1182 (mod 2491), A32= A162

≡ (1182)2= 1397124 = 560 · 2491 + 2164 ≡ 2164 (mod 2491), A64= A322

≡ (2164)2= 4282896 = 1879 · 2491 + 2307 ≡ 2307 (mod 2491), A128= A642

≡ (2307)2= 5322249 = 2136 · 2491 + 1473 ≡ 1473 (mod 2491), A256= A1282

≡ (1473)2= 2169729 = 871 · 2491 + 68 ≡ 68 (mod 2491).

A435= A256+128+32+16+2+1= A256· A128· A32· A16· A2· A1.

(45)

Przykład 2. Oblicz 1623

435

(mod 2491)

Szybkie potęgowanie, szybkie mnożenie

.

1623435≡ (68 · 1473 · 2164) · (1182 · 1142 · 1623) (mod 2491) 1623435≡ (216754896) · (2190796812) (mod 2491)

1623435 ≡ (87015 · 2491 + 531) · (879484 · 2491 + 2168) (mod 2491) 1623435≡ (531) · (2168) (mod 2491)

1623435 ≡ 1151208 (mod 2491) 1623435 ≡ 462 · 2491 + 366 (mod 2491)

1623435≡ 366 (mod 2491)

(46)

Funkcja ϕ Eulera.

Definicja.

Funkcja Eulera

ϕ(n) = k{a : 1 ¬ a ¬ n ∧ NWD(a, n) = 1}k.

Fakt.

Gdy n jest liczbą pierwszą, to ϕ(n) = n − 1.

Uzasadnienie.

Liczby 1, 2, . . . , n − 1 są względnie pierwsze z liczbą (pierwszą) n.

(47)

Funkcja ϕ Eulera.

Funkcja Eulera ϕ(n) = k{a : 1 ¬ a ¬ n ∧ NWD(a, n) = 1}k.

Fakt.

Jeśli liczby dodatnie m oraz n są względnie pierwsze (NWD(m, n) = 1), to ϕ(mn) = ϕ(m)ϕ(n).

Uzasadnienie.

Niech k ∈ {0, 1, 2, . . . , mn − 1}. Wtedy

NWD(k, mn) = 1 wtedy i tylko wtedy, gdy NWD(k, m) = 1 i NWD(k, n) = 1.

Z Chińskiego Twierdzenia o Resztach wiemy, że każdemu k odpowiada dokładnie jedna para reszt i na odwrót, czyli każda liczba jest

jednoznacznie wyznaczona przez jej reszty z dzielenia modulo m i n.

Liczb względnie pierwszych z mn jest tyle, ile par (k1, k2), gdzie

(48)

Twierdzenie Eulera.

Twierdzenie Eulera. Jeśli NWD(a, n) = 1, to aϕ(n)n1.

Dowód. Wszystkie liczby względnie pierwsze z n i niewiększe od n (jest ich ϕ(n)) oznaczmy przez m1< m2< · · · < mϕ(n).

Rozważmy reszty z dzielenia:

a1 = m1· a mod n, a2 = m2· a mod n, . . . , aϕ(n)= mϕ(n)· a mod n.

Gdyby jakieś dwie liczby ai oraz aj, dla 0 ¬ i < j ¬ ϕ(n)się powtarzały, to mia ≡ mja (mod n), czyli n by dzieliło (mj− mi)a.

Co oznacza, że n dzieli mj − mi, co jestniemożliwe.

Zatem wszystkie liczby a1, a2, . . . , aϕ(n) są różne.

Pokażemy jeszcze, że są względnie pierwsze z n (będzie to oznaczać, że wśród liczb a1, . . . , aϕ(n) są wszystkie liczby m1, . . . , mϕ(n) i odwrotnie).

Chcemy pokazać, że NWD(ai, n) = 1. Jeśli d |ai oraz d |n (chcemy pokazać, że d = 1), to d |mia (tu: ai = mi · a mod n). Jeśli jednak d |n, NWD(n, mi) = 1, NWD(n, a) = 1, to d = 1.

(49)

Twierdzenie Eulera.

Twierdzenie Eulera.

Jeśli NWD(a, n) = 1, to aϕ(n)n1.

Dowód, ciąg dalszy.

Wśród liczba1, . . . , aϕ(n) są wszystkie liczbym1, . . . , mϕ(n) i odwrotnie.

Zauważmy, że

m1a · m2a · . . . · mϕ(n)a ≡na1· a2· · · aϕ(n)=m1· m2· . . . · mϕ(n). Z reguły skracania otrzymamy

aϕ(n)n1.

(50)

Elementy kryptografii:

klucz tajny, klucz publiczny

W (klasycznych) szyfrach z kluczem tajnym znajomość reguły szyfrowania pozwala łatwo i szybko wyprowadzić regułę deszyfrowania.

Pomysł na systemy z kluczem publicznym pochodzi od Diffiego

i Hellmana (1976r). W takich systemach wyznaczenie reguły deszyfrowania na podstawie znajomości reguły szyfrowania jest obliczeniowo niewykonalne.

Klucz szyfrujący (zwany kluczem publicznym) może być wszystkim znany, a tylko klucz deszyfrujący jest trzymany w tajemnicy.

Najbardziej znane szyfry tego typu to kryptosystem RSA, EIGamal oraz szyfr Rabina. Omówimy tylko ten pierwszy.

(51)

Elementy kryptografii:

szyfr RSA (Rivest, Shamir, Adleman, 1978)

Bezpieczeństo kryptosystemu opiera się na trudności rozkładu dużych liczb na czynniki.

Oczywiście, wraz ze wzrostem mocy obliczeniowej komputerów rosną długości kluczy.

Algorytm generowania kluczy.

Użytkownik systemu:

1 losuje dwie duże różne liczby pierwsze p i q,

2 oblicza n = pq oraz ϕ(n) = (p − 1)(q − 1),

3 losuje liczbę e, 1 < e < ϕ(n) względnie pierwszą z ϕ(n),

4 oblicza d , 1 < d < ϕ(n), takie że ed ≡ 1 (mod ϕ(n)),

5 kluczem publicznym jest para (n, e), kluczem prywatnym (n, d ) (albo samo d , jeśli n jest znane odbiorcy).

Funkcja ϕ(n) to funkcja Eulera. Jak wiemy, jeśli m oraz k są względnie pierwsze, to

(52)

Elementy kryptografii:

szyfry RSA, algorytm

Algorytm szyfrowania i deszyfrowania

Bob, chcąc przesłać wiadomość x Alicji (x < n, NWD(x , n) = 1):

1 pobiera klucz publiczny (n, e) Alicji,

2 przedstawia wiadomość x jako element zbioru Zn,

3 oblicza c = xe mod n,

4 wysyła Alicji szyfrogram c.

Alicja po otrzymaniu zaszyfrowanej wiadomości c:

1 używa klucza prywatnego (n, d ) do obliczenia x = cd mod n.

(53)

Elementy kryptografii:

szyfr RSA

Wykażemy, że ta metoda “działa”, czyli pokażemy, że jeśli NWD(x , n) = 1 (oraz x < n) to

dla c = xe mod n zawsze x = cd mod n.

Skoro ed ≡ 1 (mod ϕ(n)), więc znajdziemy takie j , że ed = 1 + j ϕ(n).

Stąd

cd n xed = xed = x1+j ϕ(n)= x · xj ϕ(n). Z Twierdzenia Eulera wiemy, że xϕ(n)n1, a więc także xj ϕ(n) = xϕ(n)j n1. Zatem

cd nx · xj ϕ(n) nx · 1 = x .

(54)

Szyfr RSA, sposób działania algorytmu,

przykład

Niech p = 3, q = 11.

Wtedy n = pq = 3 · 11 = 33 oraz ϕ(n) = (p − 1)(q − 1) = 2 · 10 = 20.

Wybieramy e = 7

(jest to liczba względnie pierwsza z ϕ(n) = 20).

Znajdujemy d = 3 będące rozwiązaniem kongruencji 7d ≡ 1 (mod 20).

Kluczem publicznym jest (n, e) = (33, 7), prywatnym (n, d ) = (33, 3).

Bob szyfruje wiadomość x = 4 przy pomocy jawnego klucza (n, e) = (33, 7) w następujący sposób

c = c(x ) = xe = 47 = 16384 = 496 · 33 + 16 ≡ 16 (mod 33) i przesyła Alicji zaszyfrowaną wiadomość c = 16.

Alicja używa prywatnego klucza (33, 3) do obliczenia x = cd = 163 = 4096 = 124 · 33 + 4 ≡ 4 (mod 33).

(55)

Elementy kryptografii:

szyfry RSA, przykład

Przykład.

Niech p = 47, q = 53.

Wtedy n = pq = 47 · 53 = 2491 oraz ϕ(n) = (p − 1)(q − 1) = 46 · 52 = 2392.

Wybieramy e = 11 (sprawdzamy, że NWD(11, 2392) = 1).

Znajdujemy d = 435 będące rozwiązaniem kongruencji 11d ≡2392 1 (tu: 11 · 435 = 4785 = 2 · 2392 + 1).

Kluczem publicznym jest (n, e) = (2491, 11), kluczem prywatnym (2491, 435).

Bob chce przesłać wiadomość “o świcie”

w zakodowanej wersji literowej.

(56)

Elementy kryptografii:

bloki, polski alfabet

a ą b c ć d e ę f g h i j k l ł

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

m n o ó p r s ś t u w x y z ź ż

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Bob szyfruje wiadomość “o świcie” podzieloną na bloki dwuliterowe.

Blokom przypisuje liczby:

“o “ 7→ 33 · 18 + 32 = 626;

“św” 7→ 33 · 23 + 26 = 785;

“ic” 7→ 33 · 11 + 3 = 366;

“ie” 7→ 33 · 11 + 6 = 369.

(57)

Elementy kryptografii:

szyfry RSA, przykład

Kluczem publicznym jest (2491, 11), prywatnym d = 435.

Przy podziale na bloki dwuliterowe, wiadomości

“o świcie”odpowiada 626 785 366 369.

Bob szyfruje korzystając z klucza jawnego:

62611≡ 804 (mod 2491), 78511≡ 62 (mod 2491), 36611≡ 1623 (mod 2491), 36911= 1609 (mod 2491).

Niestety 1623 > 33 · 32 + 32 = 1088, Bob nie może więc użyć bloków dwuliterowych. Skorzysta z bloków trzyliterowych:

804 = 332· 0 + 33 · 24 + 12 7→ atj 62 = 332· 0 + 33 · 1 + 29 7→ aąz 1623 = 332· 1 + 33 · 16 + 6 7→ąme 1609 = 332· 1 + 33 · 15 + 25 7→ ąłu

(58)

Elementy kryptografii:

szyfry RSA, przykład

Alicja najpierw zastępuje blok liter “atj” liczbą 804 (“atj” odpowiada 332· 0 + 33 · 24 + 12 = 804), zastępuje blok “aąz” liczbą 62,

blok “ąme” liczbą 1623 oraz blok “ąłu” liczbą 1609.

Następnie, korzystając z prywatnego klucza (2491, 435) oblicza 804435≡ 626 (mod 2491), 62435≡ 785 (mod 2491),

1623435≡ 366 (mod 2491) 1609435≡ 369 (mod 2491).

W końcu zastępuje te liczby blokami dwuliterowymi:

626 = 33 · 18 + 32 7→ o , 785 = 33 · 23 + 26 7→ św, 366 = 33 · 11 + 3 7→ ic, 369 = 33 · 11 + 6 7→ ie i odczytuje hasło “o świcie”.

Cytaty

Powiązane dokumenty

[r]

NAKAZ UŻYWANIA ŁADUNKÓW PROCHOWYCH ZAWIERAJĄCYCH TŁUSZCZ WIEPRZOWY I WOŁOWY CO OBRAŻAŁO WYZNAIE ŻOŁNIERZY – WYZNAWCÓW HINDUIZMU I ISLAMU.. BITWA POD ROKITNĄ 1 PUNKT

dla uczniów klas trzecich gimnazjów oraz klas trzecich oddziałów gimnazjalnych prowadzonych w szkołach innego typu województwa świętokrzyskiego w roku szkolnym 2018 /

[r]

[r]

[r]

[r]

 Jeden z nich znany jest tylko dla systemu generującego klucz (klucz prywatny), drugi klucz jest używany przy wysyłaniu do świata zewnętrznego (klucz publiczny).  Algorytm