MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

Podobné dokumenty
Jak funguje asymetrické šifrování?

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

Úvod. Karel Klouda c KTI, FIT, ČVUT v Praze 18. dubna, letní semestr 2010/2011

Hlubší věty o počítání modulo

Hlubší věty o počítání modulo

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Trocha teorie Ošklivé lemátko První generace Druhá generace Třetí generace Čtvrtá generace O OŠKLIVÉM LEMÁTKU PAVEL JAHODA

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

MPI - 5. přednáška. 1.1 Eliptické křivky

Historie matematiky a informatiky Cvičení 2

Základy elementární teorie čísel

Základy elementární teorie čísel

Věta o dělení polynomů se zbytkem

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

Pokročilá kryptologie

Charakteristika tělesa

Čínská věta o zbytcích RSA

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Diskrétní matematika 1. týden

RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.

Šifrová ochrana informací věk počítačů PS5-2

RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.

Lineární algebra : Lineární prostor

Zbytky a nezbytky Vazební věznice Orličky Kondr (Brkos 2010) Zbytky a nezbytky / 22

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

MFF UK Praha, 22. duben 2008

21ˆx 0 mod 112, 21x p 35 mod 112. x p mod 16. x 3 mod 17. α 1 mod 13 α 0 mod 17. β 0 mod 13 β 1 mod 17.

Y36BEZ Bezpečnost přenosu a zpracování dat. Úvod. Róbert Lórencz. lorencz@fel.cvut.cz

Lineární algebra : Polynomy

Univerzita Karlova v Praze Pedagogická fakulta

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Kritéria dělitelnosti Divisibility Criterions

Modulární aritmetika, Malá Fermatova věta.

ALGEBRA. Téma 4: Grupy, okruhy a pole

4 Počítání modulo polynom

Pomocný text. Polynomy

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

0.1 Úvod do lineární algebry

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Eliptické křivky a RSA

Kongruence na množině celých čísel

Řetězové zlomky. již čtenář obeznámen. Důraz bude kladen na implementační stránku, protože ta je ve

Operace s maticemi. 19. února 2018

Historie matematiky a informatiky 2 7. přednáška

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

1 Linearní prostory nad komplexními čísly

Úvod do informatiky. Miroslav Kolařík

0.1 Úvod do lineární algebry

Historie matematiky a informatiky Cvičení 1

Modulární aritmetika, Malá Fermatova věta.

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Lineární algebra : Lineární zobrazení

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Lineární algebra : Polynomy

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Těleso racionálních funkcí

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V.

Úvod do informatiky. Miroslav Kolařík

Šifrová ochrana informací věk počítačů PS5-2

)(x 2 + 3x + 4),

1 Mnohočleny a algebraické rovnice

V: Pro nulový prvek o lineárního prostoru L platí vlastnosti:

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Operace s maticemi

Zavedení a vlastnosti reálných čísel

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Úvod do lineární algebry

Matematika IV - 2. přednáška Základy teorie grup

Lineární algebra : Báze a dimenze

Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA MATEMATIKY, FYZIKY A TECHNICKÉ VÝCHOVY

Základy maticového počtu Matice, determinant, definitnost

PŘEDNÁŠKA 2 POSLOUPNOSTI

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Lineární algebra Kapitola 1 - Základní matematické pojmy

Diskrétní logaritmus

1 Mnohočleny a algebraické rovnice

Cyklické grupy a grupy permutací

online prostředí, Operační program Praha Adaptabilita, registrační číslo CZ.2.17/3.1.00/31165.

Lineární algebra : Metrická geometrie

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Úlohy nejmenších čtverců

(Cramerovo pravidlo, determinanty, inverzní matice)

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

1 Polynomiální interpolace

Úlohy domácí části I. kola kategorie C

Lineární algebra : Násobení matic a inverzní matice

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar

64. ročník matematické olympiády Řešení úloh krajského kola kategorie A

Transkript:

MPI - 7. přednáška vytvořeno: 31. října 2016, 10:18 Co bude v dnešní přednášce Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n. Rovnice a b c (mod n). 1

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 2 1.1 Hledání inverzí v grupách Z n Je-li a Z n, víme že platí gcd(a, n) = 1. Hledání inverze v Z n : myšlenka Již dříve jsme dokázali, že pro libovolná kladná přirozená čísla k a l existují tzv. Bézoutovy koeficienty u.v Z tak, že gcd(k, l) = uk + vl. Pro případ nesoudělných a a n tedy máme 1 = ua + vn ua (mod n). Jistě tedy platí, že číslo u (mod n) je inverze k prvku a grupy Z n. Problém: Jak najít Bezoutovy koeficienty? Definice 1. Řekneme, že d Z dělí n Z (nebo že n je dělitelné d) pokud Připomenutí: dělitelnost a největší společný dělitel n = q d pro nějaké q Z. Značíme d n. Platí např. 5 10, 2 8 a 3 7. Speciálně 1 n a n 0 pro všechna celá čísla n. Definice 2. Největší společný dělitel čísel m Z a n Z je největší přirozené číslo, které dělí m i n. Značí se gcd 1 (m, n). Pokud gcd(m, n) = 1, pak říkáme, že m a n jsou nesoudělná. Pozor: gcd(0, 0) není definováno, neboť každé přirozené číslo dělí nulu! EEA 2 : rozšířený Eukleidův algoritmus 1 greatest common divisor

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 3 EEA funguje jako klasický Eukleidův algoritmus pro hledání gcd(m, n) dvou kladných přirozených čísel m a n. Ten je založen na zřejmém faktu, že pro libovolné číslo k, platí (za předpokladu m n) gcd(m, n) = gcd(m kn, n) = gcd(m mod n, n). Je-li tedy m > n, můžeme problém převést na výpočet gcd(m 1, n), kde m 1 = m (mod n) a n > m 1. Toto můžeme opakovat, dokud menší ze získaných dvou čísel nedělí to větší. Jelikož v každém kroku zmenšuji součet obou čísel, algoritmus skončí po konečně mnoha krocích. Jediný rozdíl mezi klasickým klasickým a rozšířeným Eukleidovým algoritmem je v tom, že při EEA si průběžně poznamenáváme Bezoutovy koeficienty. EEA: ukázka Najdeme gcd(31, 73). Na začátku máme: 73 = 1 73+0 31 a 31 = 0 73+1 31. 1. 73 = 2 31 + 11, hledáme gcd(11, 31), platí 11 = 1 73 2 31 2. 31 = 2 11+9, hledáme gcd(9, 11), platí 9 = 31 2 11 = ( 2) 73+5 31 3. 11 = 1 9 + 2, hledáme gcd(2, 9), platí 2 = 11 1 9 = 3 73 + ( 7) 31 4. 9 = 4 2 + 1, hledáme gcd(1, 2), platí 1 = 9 4 2 = ( 14) 73 + 33 31 5. 2 = 2 1 + 0, zbytek je 0, končíme 6. výsledek: gcd(31, 73) = 1 = ( 14) 73 + 33 31.

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 4 Důsledek: v grupě Z 73 máme 31 1 = 33. Složitost (1 ze 3) EEA Chceme zjistit, kolik nejvíce kroků potřebujeme při běhu EEA v závislosti na velikosti vstupu. Strategie: pro každé kladné k N najdeme čísla m a n, kde 0 < n < m, tak, že jejich součet n+m je nejmenší možný pro všechny možné dvojice nesoudělných kladných celých čísel, pro která EEA skončí právě po k krocích. Budeme předpokládat, že gcd(n, m) = 1. Pro soudělná čísla se postupuje analogicky, pouze se 1 nahradí libovolným celým číslem l > 0. Pro k = 1 je hledané m = 2 a jemu odpovídající n = 1. Pro k = 2 dostaneme m takto: v druhém (a tedy posledním) kroku EEA pracujeme s dvojicí čísel m 1 = m (mod n) a n. Má-li být m + n co nejmenší, musí platit m = n + m 1 a čísla n > m 1 jsou nejmenší čísla, pro něž EEA potřebuje 1 krok. Ty ale známe: m 1 = 1, n = 2, a tedy m = 3. Složitost (2 ze 3) EEA Hypotéza: Hledané m Fibonacciho číslo F k+2 a k němu příslušné n = F k+1. Platí F 1 = F 2 = 1 a F l = F l 1 + F l 2 pro l 3. Hypotézu dokážeme matematickou indukcí: předpokládáme, že pro k hypotéza platí a ukážeme, že platí i pro případ, kdy EEA potřebuje k + 1 kroků. Zopakujeme vlastně úvahu pro k = 2 uvedenou výše: v druhém kroku EEA pracujeme s dvojicí čísel m 1 = m (mod n) a n. Máli být m + n co nejmenší, musí platit m = n + m 1 s tím, že n + m 1 je nejmenší možné pro čísla n > m 1, pro něž EEA potřebuje k kroků. Ty ale známe: m 1 = F k+2, n = F k+1, a tedy m = F k+2 + F k+1 = F k+3. Složitost (3 ze 3) EEA Věta 3. Pro čísla m, n N +, m > n, najde EEA výsledek v méně než 5d(m) iteracích, kde d(m) je počet cifer čísla m v bázi 10.

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 5 Důkaz. Nechť nyní pro nějaké m potřebuje EEA N iterací. Musí jistě platit, že m F N+2. Víme ale také, že F N+2 > ϕ N (to si najděte!), kde ϕ je zlatý řez (to si také najděte! 3 ). Dostáváme tedy N < log ϕ m = log 10 m log 10 ϕ a protože log 10 ϕ > 1/5 máme N < 5 log 10 m 5d(N). Dokázali jsme, že Euklidův algoritmus je dobrý má polynomiální komplexitu v délce vstupu, tj. je O(log m), kde log m počet bitů potřebných k uložení většího ze dvou čísel na vstupu. gcd : další algoritmy Lze ji vylepšit? Ano, lze lépe volit zbytky po dělení. Například místo 9 = 49 mod 10 můžeme zvolit zbytek 1 a pro modulo 10 pracovat se zbytky { 4,... 5} (symetrická rezidua). Tento algoritmus se jmenuje Least remainder Euclidean/Euclid s algorithm. K dalším algoritmům patří binární GCD algoritmus Binary GCD algorithm, který je ještě účinnější díky využití čistě bitových operací.

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 6 1.2 Rychlé mocnění modulo n Problém: chceme rychle spočítat a b (mod n). Myšlenka rychlého algoritmu Využijeme zřejmého faktu, že známe-li x = a b (mod n), umíme spočítat a 2b (mod n) resp. a b+1 (mod n) jako x 2 (mod n) resp. xa (mod n). Příklad: víme-li, že 38 244 (mod 139) = 5, snadno spočítáme 38 488 jako 5 2 (mod 139) = 25 a 38 245 jako 5 38 (mod 139) = 51. Proč jsou tato pozorování dobrá? To uvidíme, když si exponent zapíšeme ve dvojkové soustavě: řešíme a b (mod n), kde b = (b 1 b 2 b m ) 2, kde b 1 = 1: 1. Na začátku máme a (b 1) 2 = a 1 = a. Budeme přidávat další bity. 2. Chceme spočítat a (b 1b 2 ) 2 (mod n). Spočítáme a (b 10) 2 (mod n) jako a 2 (mod n). 3. Pokud je b 2 = 0, máme hotovo, je-li to 1, vynásobíme výsledek ještě číslem a. 4. Máme-li spočítáno x = a (b 1b 2 b l ) 2 (mod n), spočítáme x 2 (mod n). 5. Pokud je b l+1 = 0, dostali-jsme a (b 1b 2 b l+1 ) 2 (mod n), je-li b l+1 = 1, vynásobíme výsledek ještě číslem a a dostaneme x 2 a(mod n) = a (b 1b 2 b l+1 ) 2 (mod n). Takto postupně doplníme všechny bity, a spočítáme a b (mod n). Rychlé mocnění: příklad Příklad 4. Spočítáme dříve zmíněné 38 244 (mod 139), kde 244 = (11110100) 2, což spočítáme např. hladovým algoritmem (najděte si!). 1. 38 (10) 2 = 38 2 = 1444 54 (mod 139), dále 38 (11) 2 = 38 54 = 2052 106 (mod 139). 2. 38 (110) 2 = 106 2 = 11236 116 (mod 139), dále 38 (111) 2 = 38 116 = 4408 99 (mod 139). 3 Jedná se o řešení jednoduché lineární rekurentní rovnice uvedené dříve. Vizte Vaše znalosti z předmětu BI-ZDM.

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 7 3. 38 (1110) 2 = 99 2 = 9807 71 (mod 139), dále 38 (1111) 2 = 38 71 = 2698 57 (mod 139). 4. 38 (11110) 2 = 57 2 = 3249 52 (mod 139). 5. 38 (111100) 2 = 52 2 = 2704 63 (mod 139), dále 38 (111101) 2 = 38 63 = 2394 31 (mod 139). 6. 38 (1111010) 2 = 31 2 = 961 127 (mod 139). 7. 38 (11110100) 2 = 127 2 = 16129 5 (mod 139). A to je výsledek 38 244 (mod 139) = 5. Metoda opakovaných čtverců Uvedenému algoritmu se říká metoda opakovaných čtverců 4. Je-li k počet bitů dvojkové reprezentace čísla b (tedy k = log b ), pak pro výpočet a b (mod n) potřebujeme: k 1 mocnění na druhou čísel ze Z n, m < k 1 násobení čísel ze Z n číslem a. Složitost je pak v nejhorším případě 2( log b 1) a v průměrném 3/2( log b 1). Každopádně je složitost této metody polynomiální v délce vstupu, tj. je O(log b). Mocnění lze také urychlit použitím Eukleidovy věty: Metoda opakovaných čtverců: komentáře a ϕ(n) 1 (mod n), kde gcd(a, n) = 1. Problém je, že nemusíme umět vypočítat ϕ(n), jejíž výpočet je stejně složitý, jako faktorizace n. Existuje i varianta metody opakovaných čtverců, kdy se binární reprezentace čte zprava doleva. 4 Anglicky Square & multiply

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 8 1.3 Lineární rovnice v Z + n. Problém: chceme najít x Z n řešící rovnici Lineární rovnice v Z + n (1 ze 4) pro nějaká čísla ze Z n, kde n N +. ax b (mod n) Je-li gcd(a, n) = 1, neboli je-li a Z n, můžeme najít jeho inverzi a 1 v této grupě pomocí EEA a dostaneme řešení: a 1 ax x a 1 b (mod n). Je-li gcd(a, n) > 1, je situace složitější, neboť inverze k a neexistuje a rovnice nemusí mít řešení: 16x 11 (mod 20) nemá řešení, 16x 8 (mod 20) má řešení x = 3. Kdy řešení existuje? Jinými slovy, jaká čísla dostanu, pokud a násobím postupně čísly k = 1, 2,... n? Dostanu čísla ve tvaru ka ln, kde celé číslo l volím tak, aby výsledek bylo číslo ze Z n. Dříve jsme si ukazovali, že nejmenší kladné číslo, zapsatelné v tomto tvaru je gcd(a, n). Z toho plyne následující lemma Lineární rovnice v Z + n (2 ze 4) Lemma 5. Rovnice ax b (mod n) má řešení pouze pokud je b dělitelné gcd(a, n). Pokud ale řešení existuje, jak jej nalezneme? Využijeme následující triviální fakt (důkaz za domácí úkol): Lemma 6. Jsou-li čísla a, b a n dělitelná číslem d a platí a b (mod n), potom platí a d b d (mod n d ).

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 9 Uvažujme tedy rovnici ax b (mod n), kde d = gcd(a, n) > 1 a d dělí b (jinak nemá rovnice řešení). Položme ã = a/d, b = b/d, ñ = n/d. Potom platí ãx b (mod ñ) a gcd(ã, ñ) = 1, což je ale rovnice, kterou již vyřešit umíme! Pro daná přirozená čísla a, b a n > 1 hledáme x takové, že platí Lineární rovnice v Z + n (3 ze 4) ax b (mod n). Z předchozího plyne následující shrnující věta a postup řešení. Věta 7. Výše uvedená rovnice má řešení právě tehdy, když gcd(a, n) b. V tomto případě je počet řešení v Z n roven gcd(a, n). Postup řešení: najdeme Bézoutovy koeficienty pro (a, m), tedy celá čísla α a β taková, že platí αa + βn = gcd(a, n). (α je inverze k ã v předchozí úvaze!) Potom x 0 = αb gcd(a,n) je řešení lineární kongruence: αb ax 0 = a gcd(a, n) = b βn b gcd(a, n) b (mod n). Máme-li jedno řešení, umíme najít další řešení x takto x x 0 (mod m gcd(a,n) ). Lineární rovnice Příklad 8. Řešme 6x 12 (mod 15), tedy a = 6, b = 12 a m = 15. 1. Máme gcd(a, m) = gcd(6, 15) = 3. 2. 3 12, tedy lineární kongruence má řešení. 3. Hledáme α a β takové, že 6α + 15β = 3. 4. Vezmeme α = 2 a β = 1. Dosadíme do předpisu pro x 0 : x 0 = αb 2 12 = = 8 7 (mod 15). gcd(a, m) 3 5. Ověříme 6 7 = 42 = 30 + 12 12 (mod 15), 6. další řešení jsou x 7 (mod 15 3 ). 7. Celkem všechna řešení v Z 15 jsou 7, 12 a 2. v Z + n (4 ze 4)

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 10 1.4 Soustavy lineárních rovnic v Z + n. Problém: řešíme soustavu rovnic Soustavy lineárních kongruencí (1 ze 2) a a 1 (mod m 1 ) a a 2 (mod m 2 ). a a N (mod m N ) (1.1) kde m 1,..., m N jsou navzájem nesoudělná a 1 Z m1,..., a N Z mn. Pokud nejsou m i navzájem nesoudělná, nemusí řešení existovat a situace se celkově komplikuje. Myšlenka: zkusíme zkonstruovat čísla x 1,..., x N tak, že x i bude řešit i-tou rovnici, tj. x i a i (mod m i ), a pro ostatní rovnice bude x k 0 (mod m k ), kde k i. Potom bude jistě a = x 1 + x 2 + + x N řešením soustavy (1.1)! Jak taková x i najdeme? Soustavy lineárních kongruencí (2 ze 2) Položme M = N i=1 m i a M i = M m i a pomocí postupu uvedeného dříve vyřešme rovnici y i M i 1 (mod m i ). s neznámou y i. Položíme-li x i = y i M i a i, dostáváme čísla s požadovanými vlastnostmi, a tedy a = y 1 M 1 a 1 + y 2 M 2 a 2 + + y N M N a N. Tím jsme dokázali slavnou čínskou větu o zbytcích!

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 11 Čínská věta o zbytcích Věta 9 (Čínská věta o zbytcích (Chinese remainder theorem CRT)). Nechť m 1,..., m N jsou navzájem nesoudělná čísla a nechť M = N i=1 m i. Pro libovolnou N-tici a 1 Z m1,..., a N Z mn existuje jednoznačně určené a Z M tak, že a a i (mod m i ) pro všechna i = 1,..., N. Platí kde M i = M m i N a a i y i M i i=1 a pro všechna i a j i platí (mod M), y i M i 1 (mod m i ) a y i M i 0 (mod m j ). Existenci řešení jsme ukázali, dokonce i postup jak jej nalézt. Zbývá dokázat jednoznačnost. Při zachování značení z předchozí věty označme CRT: důkaz jednoznačnosti řešení Γ : Z + M Z+ m 1 Z + m N zobrazení, které číslu a Z + M (mod m i ) pro všechna i. přiřadí N-tici (a 1,..., a N ), kde platí a a i CRT nám říká, jak najít vzor N-tice (a 1,..., a N ) při zobrazení Γ (rozmyslet!). Zatím jsme si ukázali, že zobrazení Γ je surjektivní, neb pro každou N-tici (a 1,..., a N ) umíme najít a Z M tak, že Γ(a) = (a 1,..., a N ). Jelikož jsou ale množiny Z + M a Z+ m 1 Z + m N stejně velké, musí toto zobrazení být i injektivní, a tedy se jedná o bijekci! Je tedy nemožné, aby dvě různé N-tice měly dva různé vzory a jednoznačnost řešení a z CRT je dokázána! Zobrazení Γ je (dokažte si!): Residue number system

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 12 izomorfismus grupy Z + M a grupy Z+ m 1 Z + m N, kde bereme operaci sčítání po složkách: i-tou složku sčítáme modulo m i ; izomorfismus grupy Z M a grupy Z m 1 Z m N, kde bereme operaci násobení po složkách: i-tou složku násobíme modulo m i. Zobrazení Γ určuje tzv. Residue number system. Místo modulo M počítáme v systému modulo (m 1,..., m N ). Jelikož zobrazení lze chápat též jako izomorfismus mezi okruhy Z M a Z m1 Z mn, jediná problematická operace v tomto číselném systému zůstane dělení. Na cvičení si ukážete, jak lze s využitím CRT až čtyřikrát zrychlit dekódování v RSA.

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 13 1.5 Rovnice a b c (mod n) Uvažujme rovnici a b c (mod n). Rovnice a b (mod n) c Je-li neznámá c, řešení umíme najít v polynomiálním čase pomocí metody opakovaných čtverců. Je-li neznámá b, jedná se o problém diskrétního logaritmu a ten neumíme v obecném případě vyřešit o moc lépe než hrubou silou. Na tomto faktu je založeno Diffie-Hellmanovo schéma pro konstrukci asymetrické šifry. Je-li neznámá a, jedná se o problém diskrétní odmocniny (root finding problem) a ten umíme řešit pouze v případě, že n je mocnina prvočísla, tj. n = p k pro prvočíslo p a k N +. My si řekneme něco o speciálním případě, kdy n = p a b = 2. Fakt, že root finding problem neumíme vyřešit pro neprvočíselné n, je zásadní pro bezpečnost RSA! Co potřebujeme: RSA : připomenutí číslo n, které je součinem dvou prvočísel n = pq a exponent e, který je nesoudělný s ϕ(n) a d takové, že de 1 (mod ϕ(n)). Čísla e a n tvoří veřejný klíč a d je klíč soukromý. Šifrování: y x e (mod n) kde šifrovaná zpráva x musí být ze Z n, tzn. musíme vzít n dostatečně velké anebo x rozdělit na více částí, zašifrovaná zpráva y pak nutně vyjde také jako prvek Z n. Dešifrování: x = y d x ed (mod n)

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 14 Kvadratická rezidua Definice 10. Číslo a Z p pokud má rovnice nazveme kvadratické reziduum modulo p x 2 a (mod p) řešení. V opačném případě jej nazveme kvadratické nereziduum modulo p. Příklad 11. Vezmeme p = 7, pak kvadratická rezidua jsou 1, 2 a 4: 1 2 6 2 1 (mod 7) 3 2 4 2 2 (mod 7) 2 2 5 2 4 (mod 7) Jak poznat kvadratické reziduum? re- Kvadratické ziduum Eulerovo kritérium (1 ze 2) Buď g generátor grupy Z p, kde p je liché prvočíslo. Je-li a = g 2k, jistě platí x 2 a (mod p) pro x = g k. Uvažujme případ, že a = g 2k+1 a platí x 2 a (mod p) pro nějaké x Z p. Jistě existuje m tak, že x = g m, neboť g je generátor. Máme tedy g 2m g 2k+1 (mod p), to znamená, že g 2m 2k 1 1 (mod p). Jelikož je g generátor, musí být 2m 2k 1 dělitelné p 1, což ale není možné, neb p 1 je sudé číslo! Lemma 12. Buď p liché prvočíslo a g generátor grupy Z p. Potom g k je kvadratické reziduum, právě když je k sudé. Navíc pro každé kvadratické reziduum a existují právě dvě x taková, že x 2 a (mod p). Eulerovo kritérium (2 ze 2)

KAPITOLA 1. MPI - 7. PŘEDNÁŠKA 15 Věta 13 (Eulerovo kritérium). Nechť p je liché prvočíslo a a Z p. Potom platí { a p 1 2 1 je-li a kvadratické reziduum modulo p, 1 jinak. Důkaz. Z p Je-li a kvadratické reziduum, platí a = g 2k pro generátor g grupy a nějaké celé číslo k. Z toho plyne a p 1 2 g k(p 1) (g (p 1) ) 2 1 (mod p). Není-li a kvadratické residuum, je a = g 2k+1 a platí a p 1 2 g k(p 1) g p 1 g p 1 2 1 (mod p). 2 Poslední kongruence plyne z faktu, že rovnice x 2 1 (mod p) má právě dvě řešení 1 a -1 a že g p 1 2 je řešení nutně různé od 1 (g je generátor)! Kvadratické reziduum: komentáře ( ) Číslu a p 1 2 (mod p) se říká Legenderův symbol a značí se a p. Legenderův symbol umíme spočítat v polynomiálním čase. Existuje i celkem jednoduchý algoritmus pro hledání řešení rovnice x 2 a (mod p) pro zadané kvadratické reziduum a. Vizte knihu Randomized Algorithms, Rajeev Motwani, Prabhakar Raghavan, Cambridge University Press, 1995.