Avaliku võtmega krüptograafia

Σχετικά έγγραφα
Kompleksarvu algebraline kuju

Lokaalsed ekstreemumid

Arvuteooria. Diskreetse matemaatika elemendid. Sügis 2008

Funktsiooni diferentsiaal

ITI 0041 Loogika arvutiteaduses Sügis 2005 / Tarmo Uustalu Loeng 4 PREDIKAATLOOGIKA

HULGATEOORIA ELEMENTE

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED LEA PALLAS XII OSA

2.2.1 Geomeetriline interpretatsioon

Eesti koolinoorte XLVIII täppisteaduste olümpiaadi

Vektorid II. Analüütiline geomeetria 3D Modelleerimise ja visualiseerimise erialale

Geomeetrilised vektorid

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED, ÜLESANDED LEA PALLAS VII OSA

Graafiteooria üldmõisteid. Graaf G ( X, A ) Tippude hulk: X={ x 1, x 2,.., x n } Servade (kaarte) hulk: A={ a 1, a 2,.., a m } Orienteeritud graafid

T~oestatavalt korrektne transleerimine

Krüptoloogia II: Sissejuhatus teoreetilisse krüptograafiasse. Ahto Buldas

Algebraliste võrrandite lahenduvus radikaalides. Raido Paas Juhendaja: Mart Abel

Kirjeldab kuidas toimub programmide täitmine Tähendus spetsifitseeritakse olekuteisendussüsteemi abil Loomulik semantika

KOMBINATSIOONID, PERMUTATSIOOND JA BINOOMKORDAJAD

Formaalsete keelte teooria. Mati Pentus

Koduseid ülesandeid IMO 2017 Eesti võistkonna kandidaatidele vol 4 lahendused

9. AM ja FM detektorid

Mudeliteooria. Kursust luges: Kalle Kaarli september a. 1 Käesoleva konspekti on L A TEX-kujule viinud Indrek Zolk.

2. HULGATEOORIA ELEMENTE

Suhteline salajasus. Peeter Laud. Tartu Ülikool. peeter TTÜ, p.1/27

Ruumilise jõusüsteemi taandamine lihtsaimale kujule

KATEGOORIATEOORIA. Kevad 2010

KATEGOORIATEOORIA. Kevad 2016

4.1 Funktsiooni lähendamine. Taylori polünoom.

HAPE-ALUS TASAKAAL. Teema nr 2

PLASTSED DEFORMATSIOONID

Sisukord. 4 Tõenäosuse piirteoreemid 36

Eesti LIV matemaatikaolümpiaad

ALGEBRA I. Kevad Lektor: Valdis Laan

Sisukord. 3 T~oenäosuse piirteoreemid Suurte arvude seadus (Law of Large Numbers)... 32

Kontekstivabad keeled

1.1. NATURAAL-, TÄIS- JA RATSIONAALARVUD

3. LOENDAMISE JA KOMBINATOORIKA ELEMENTE

Krüptoräsid (Hash- funktsioonid) ja autentimine. Kasutatavaimad algoritmid. MD5, SHA-1, SHA-2. Erika Matsak, PhD

Keerukusteooria elemente

4 T~oenäosuse piirteoreemid Tsentraalne piirteoreem Suurte arvude seadus (Law of Large Numbers)... 32

1 Funktsioon, piirväärtus, pidevus

Planeedi Maa kaardistamine G O R. Planeedi Maa kõige lihtsamaks mudeliks on kera. Joon 1

20. SIRGE VÕRRANDID. Joonis 20.1

1 Entroopia ja informatsioon

Matemaatiline analüüs I iseseisvad ülesanded

Ehitusmehaanika harjutus

Matemaatiline analüüs I iseseisvad ülesanded

Mathematica kasutamine

Kontekstivabad keeled

,millest avaldub 21) 23)

sin 2 α + cos 2 sin cos cos 2α = cos² - sin² tan 2α =

Punktide jaotus: kodutööd 15, nädalatestid 5, kontrolltööd 20+20, eksam 40, lisapunktid Kontrolltööd sisaldavad ka testile vastamist

Diskreetne matemaatika 2016/2017. õ. a. Professor Peeter Puusemp

Sissejuhatus mehhatroonikasse MHK0120

7.7 Hii-ruut test 7.7. HII-RUUT TEST 85

YMM3740 Matemaatilne analüüs II

1 Kompleksarvud Imaginaararvud Praktiline väärtus Kõige ilusam valem? Kompleksarvu erinevad kujud...

siis on tegemist sümmeetrilise usaldusvahemikuga. Vasakpoolne usaldusvahemik x i, E x = EX, D x = σ2

T~OENÄOSUSTEOORIA JA MATEMAATILINE STATISTIKA

Jätkusuutlikud isolatsioonilahendused. U-arvude koondtabel. VÄLISSEIN - COLUMBIA TÄISVALATUD ÕÕNESPLOKK 190 mm + SOOJUSTUS + KROHV

Tuletis ja diferentsiaal

Eesti koolinoorte XLI täppisteaduste olümpiaad

4.2.5 Täiustatud meetod tuletõkestusvõime määramiseks

Skalaar, vektor, tensor

28. Sirgvoolu, solenoidi ja toroidi magnetinduktsiooni arvutamine koguvooluseaduse abil.

Matemaatiline analüüs IV praktikumiülesannete kogu a. kevadsemester

1 Reaalarvud ja kompleksarvud Reaalarvud Kompleksarvud Kompleksarvu algebraline kuju... 5

Andmeanalüüs molekulaarbioloogias

Skalaar, vektor, tensor

Vektoralgebra seisukohalt võib ka selle võrduse kirja panna skalaarkorrutise

LOOGIKA ELEMENTE MATEMAATIKAS. GEOMEETRIA AKSIOMAATILISEST ÜLESEHITUSEST. Koostanud Hilja Afanasjeva

MATEMAATILISEST LOOGIKAST (Lausearvutus)

2017/2018. õa keemiaolümpiaadi piirkonnavooru lahendused klass

HSM TT 1578 EST EE (04.08) RBLV /G

6 Mitme muutuja funktsioonid

Aritmeetilised ja loogilised operaatorid. Vektor- ja maatriksoperaatorid

Energiabilanss netoenergiavajadus

1 MTMM Kõrgem matemaatika, eksamiteemad 2014

Matemaatika VI kursus Tõenäosus, statistika KLASS 11 TUNDIDE ARV 35

Joonis 1. Teist järku aperioodilise lüli ülekandefunktsiooni saab teisendada võnkelüli ülekandefunktsiooni kujul, kui

1. Paisksalvestuse meetod (hash)

KORDAMINE RIIGIEKSAMIKS VII teema Vektor. Joone võrrandid.

Eesti koolinoorte XLIX täppisteaduste olümpiaad

Lambda-arvutus. λ-termide süntaks. Näiteid λ-termidest. Sulgudest hoidumine. E ::= V muutuja (E 1 E 2 ) aplikatsioon (λv.

; y ) vektori lõpppunkt, siis

Ülesanne 4.1. Õhukese raudbetoonist gravitatsioontugiseina arvutus

Wilcoxoni astakmärgitest (Wilcoxon Signed-Rank Test)

KEEMIAÜLESANNETE LAHENDAMISE LAHTINE VÕISTLUS

Ehitusmehaanika. EST meetod

KORDAMINE RIIGIEKSAMIKS V teema Vektor. Joone võrrandid.

Matemaatilised ja trigonomeetrilised funktsioonid

Ülesannete numbrid on võetud ülesannete kogust L.Lepmann jt. Ülesandeid gümnaasiumi matemaatika lõpueksamiks valmistumisel Tln Ül.

(Raud)betoonkonstruktsioonide üldkursus 33

Mitmest lülist koosneva mehhanismi punktide kiiruste ja kiirenduste leidmine

Deformeeruva keskkonna dünaamika

Funktsioonide õpetamisest põhikooli matemaatikakursuses

Excel Statistilised funktsioonid

Eesti koolinoorte XLIX täppisteaduste olümpiaadi

2. FÜÜSIKALISE SUURUSE MÕISTE

Ecophon Square 43 LED

Transcript:

Avaliku võtmega krüptograafia Ahto Buldas

Motiivid Salajase võtme vahetus on tülikas! Kas ei oleks võimalik salajases võtmes kokku leppida üle avaliku kanali? 2

Probleem piiramatu vastasega! Kui vastane on piiramatu võimsusega, siis sellist protokolli ei leidu! 3

Probleem piiramatu vastasega! Carol suudab leida kõik Alice i salajase algväärtuse kandidaadid, mis on kooskõlas protokolli käiguga! Seejärel valib Carol neist juhuslikult ühe välja ja arvutab oma võtme K Caroli väljundjaotus on täpselt samasugune, mis Alice i väljundjaotus! Et protokoll on eeldatavasti korrektne, siis suure tõenäosusega on Alice i ja Bob i väljund sama. Kuid siis on ju umbes sama tõenäosusega Caroli väljund võrdne Bobi väljundiga! Järelikult on protokoll piiramatu jõuga Caroli vastu ebaturvaline. 4

Võtmekehtestusprotokoll: definitsioon Võtmekehtestusprotokolliks nimetatakse nelikut (A, K A ; B, K B ), kus: K A ja K B on funktsioonid tüüpi Ω {0, 1} {0, 1} m ja A ja B on funktsioonid tüüpi Ω {0, 1} {0, 1} ja Ω = {0, 1} k. Eeldatakse, et üks kindel bitistring on defineeritud kui STOP sümbol, mis (juhul kui ta esineb funktsioonide A ja B väljundis) indikeerib protokolli lõppu. 5

Protokolli transkript Protokolli transkriptiks nimetatakse funktsiooni Ω 2 T {0, 1}, mis arvutatakse iteratiivselt järgmise skeemi kohaselt: T 0 (ω A, ω B ) = A(ω A, ) B(ω B, ) T 1 (ω A, ω B ) = A(ω A, T 0 (ω A, ω B )) B(ω B, T 0 (ω A, ω B )) T 0 (ω A, ω B )... T n (ω A, ω B ) = A(ω A, T n 1 (ω A, ω B )) B(ω B, T n 1 (ω A, ω B )) T n 1 (ω A, ω B ) Siin tähendab nn. eraldajatega konkatenatsiooni, st w 1 w 2 = w 1 w 2 parajasti siis kui w 1 = w 1 ja w 2 = w 2. T (ω A, ω B ) := T n (ω A, ω B ), kus n on vähim indeks, mille korral T n sisaldab STOP sümbolit, või kui n oli eelnevalt kokku lepitud maksimaalne võimalik raundide arv. 6

Võtmekehtestusprotokolli modelleerimine A ja B genereerivad võtmed ω A U k ja ω B U k. A ja B vahetavad sõnumeid (loovad transkripti) T = T (ω A, ω B ). A ja B leiavad võtmed k A = K A (ω A, T ) ja k B = K B (ω B, T ). Protokoll on edukas kui k A = k B. Protokolli korrektsuseks nim. tõenäosust γ(k) = Pr[ω A, ω B U k, T T (ω A, ω B ): K A (ω A, T ) = K B (ω B, T )]. Vastase C edukuseks nimetatakse tõenäosust: δ(k) = Pr[ω A, ω B U k, T T (ω A, ω B ), k C(T ): k = K B (ω B, T )]. 7

Transkripti omadus: Juhuarvude vahetatavus Lemma: 1 T (ω A, ω B ) = T (ω A, ω B ) siis ja ainult siis kui T n(ω A, ω B ) = T n (ω A, ω B ) iga n korral, mis ei ületa raundide arvu. Tõestus: Lemma väide tuleneb otseselt transkripti definitsioonist. 8

Juhuarvude vahetatavus II Lemma: 2 Kui T (ω A,ω B ) = T = T (ω A,ω B ), siis T (ω A,ω B) = T = T (ω A,ω B ). Tõestus: Vastavalt Lemmale 1 ja esimesele eeldusele, saame A(ω A, ) = A(ω A, ) ja B(ω B, ) = B(ω B, ), mistõttu T 0 (ω A, ω B) = A(ω A, ) B(ω B, ) = A(ω A, ) B(ω B, ) = T 0 = A(ω A, ) B(ω B, ) = T 0 (ω A, ω B ). (1) Lemma eeldusest tulenevalt T n (ω A, ω B ) = T n = T n (ω A, ω B ), ja seega A(ω A, T n 1 (ω A, ω B )) = A(ω A, T n 1(ω A, ω B )) B(ω B, T n 1 (ω A, ω B )) = B(ω B, T n 1(ω A, ω B )) T n 1 (ω A, ω B ) = T n 1 (ω A, ω B ). 9

Olgu T n 1 = T n 1 (ω A, ω B ). Induktsiooni eeldusest T n 1 (ω A, ω B) = T n 1 (ω A, ω B ) = T n 1, saame T n (ω A, ω B) = A(ω A, T n 1(ω A, ω B)) B(ω B, T n 1 (ω A, ω B)) T n 1 (ω A, ω B) = A(ω A, T n 1(ω A, ω B )) B(ω B, T n 1 (ω A, ω B )) T n 1 = A(ω A, T n 1 (ω A, ω B )) B(ω B, T n 1(ω A, ω B )) T n 1 = A(ω A, T n 1 (ω A, ω B )) B(ω B, T n 1(ω A, ω B )) T n 1 = T n (ω A, ω B ). Võrdus T n (ω A, ω B) = T n (ω A, ω B ) = T n tõestatakse analoogilisel viisil. 9

Juhuarvude sõltumatuse säilivus Võtmevahetusprotokollis (nagu eelnevalt kirjeldatud) genereeritakse kaks sõltumatut juhuarvu ω A ja ω B, ning seejärel transkript T, mis samuti on juhuslik suurus mingi tõenäosusjaotusega hulgal {0, 1}. Lemma: 3 Olgu T mingi fikseeritud transkript. Olgu W T = T 1 (T ) = {(ω a, ω b ): T (ω a, ω b ) = T }, W T,A = {ω a : ω b T (ω a, ω b ) = T }, ja W T,B = {ω b : ω a T (ω a, ω B ) = T }. Siis W T = W T,A W T,B. Tõestus: Sisalduvus W T W T,A W T,B on ilmne, mistõttu piisab duaalse sisalduvuse näitamisest. Olgu (ω A, ω B ) W T,A W T,B. Vastavalt definitsioonidele, leiduvad ω A ja ω B nii et T (ω A, ω B) = T (ω A, ω B ) = T. Vastavalt Lemmale 2, T (ω A, ω B ) = T ja seega (ω A, ω B ) W T. 10

Juhuarvude sõltumatuse säilivus II Lemma: 4 Olgu ω A, ω B U k, T T (ω A, ω B ) ja (ω A, ω B ) T 1 (T ), st paar (ω A, ω B ) on ühtlaselt valitud kõigi arvupaaride hulgast, mis on kooskõlas transkriptiga T (mis ise on genereeritud tavalisel viisil). Olgu ω A W T,A ja ω B W T,B (ühtlase jaotusega). Siis ω A, ω B, T, ω A, ω B, T ja ω A, ω B, T on identsed jaotused. Tõestus: Vastavalt Lemmale 3 on T (ω A, ω B ) = T ja (ω A, ω B ) ühtlaselt valitud hulgast T 1 (T ). Kuna valik toimus sõltumatult (ω A, ω B ) valikust, siis on jaotused ω A, ω B ja ω A, ω B identsed. Kõigis kolmes jaotuses on T -komponent üheselt määratud kahe esimese komponendiga, siis piisab kui tõestame ω A, ω B ja ω A, ω B identsuse. 11

Selleks valime mingid ω 0 A, ω0 B {0, 1}k ja kasutame valemit: Pr[ω A =ω0 A, ω B =ω0 B ]= T Pr[T (ω A, ω B )=T ] Pr[ω A =ω0 A, ω B =ω0 B T ], kus viimane tinglik tõenäosus avaldub järgmiselt: (2) Pr[ω A =ω0 A, ω B =ω0 B T ] = 1 T 1 (T ), kui T (ω0 A, ω0 B ) = T ; 0, kui T (ω 0 A, ω0 B ) T. (3) Arvestades, et (ω A, ω B ) jaotus hulgal {0, 1} 2k on ühtlane, saame valemis (2) esimese tõenäosuse väärtuseks Pr[T (ω A, ω B ) = T ] = T 1 (T ) 2 2k. Arvutades summa, saame Pr[ω A = ω0 A, ω B = ω0 B ] = 2 2k, mis langeb kokku tõenäosuse Pr[ω A = ωa 0, ω B = ωb 0 ] väärtusega. Seega on jaotused ω A, ω B ja ω A, ω B tõepoolest identsed. 11

Alice i ja Caroli jaotuste identsus Lemma: 5 Olgu ω A, ω B U k, T T (ω A, ω B ) ja (ω A, ω B ) T 1 (T ). Siis jaotused ω A, ω B, T ja ω A, ω B, T on identsed. Tõestus: Asendame esimese jaotuse vastavalt Lemmale 4 jaotusega, kus ω A W T,A ja ω B W T,B on ühtlaselt (ja sõltumatult valitud). Vastavalt Lemmale 4 võib ka teise jaotuse asendada kahe sõltumatu (ja ühtlase) valikuga ω A W T,A ja ω B W T,B, kus T on sama, mis esimese jaotuse juures, st T T (U k, U k ). Eeldusel, et T on fikseeritud, on ka suurused ω A ja ω B sõltumatud ja seega 12

(kasutades tähistust p(t ) = Pr[T (U k, U k )=T ]): Pr[ω A = ω0 A, ω B = ω 0 B ] = T = T p(t ) Pr[ω A = ω0 A T ] Pr[ω B = ω 0 B T ] p(t ) Pr[ω A = ω 0 A T ] Pr[ω B = ω 0 B T ] = Pr[ω A = ω 0 A, ω B = ω 0 B ]. 12

Ebaturvalisus piiramatu vastase vastu Teoreem 1 Igale võtmekehtestusprotokollile (A, K A ; B, K B ) korrektsusega γ(k) leidub (piiramatu) vastane C edukusega δ(k) γ(k). Tõestus: Võtmevahetusprotokolli tavalises mudelis genereeritakse esmalt juhuarvud (ω A, ω B ), misjärel genereeritakse transkript T = T (ω A, ω B ) ja osapooled A ja B arvutavad k A ja k B. Vastavalt Lemmale 4 saab aga sama jaotuse kui esmalt genereerida transkript T = T (U k, U k ) ja seejärel sõltumatult juhuarvud ω A W T,A ja ω B W T,B. Vastane C töötab sisendi T korral järgmiselt: (1) genereerib ω A W T,A (piiramatule vastasele igati jõukohane!) ja (2) arvutab k A = K A(ω A, T ). Vastavalt Lemmale 5 on ω A, ω B, T sama jaotusega, mis ω A, ω B, T. Seega on sündmused k A = k B ja k A = k B võrdtõenäosed (γ(k)). Järelikult arvab C võtme k B tõenäosusega vähemalt γ(k). 13

Lisamärkus protokolli käsitluse kohta Vaadates tagasi Teoreemi 1 tõestusele, märkame et selle suhteliselt intuitiivse väite tõestus osutus võrdlemisi keeruliseks oli vaja tõestada koguni viis tehnilist lemmat. Paratamatult tekib siin küsimus: kas kuidagi lihtsamalt ei saa? Üks keerukuse põhjusi on kahtlemata transkripti T iteratiivne definitsioon. Esimene mõte lihtsustusest võikski seostuda küsimusega, kas toodud aruteludes on tingimata vaja tunda funktsiooni T siseehitust, või ehk kehtib toodud arutelu ka siis kui T on suvaline funktsioon? Näitamaks et see nii ei ole, piisab kui defineerida T (ω A, ω B ) = ω A ω B, st transkript saadakse juhuarvude bitikaupa liitmise teel mooduliga kaks, ja võtmete arvutamise funktsioonid defineerida järgmiselt: k A = K A (ω A, T ) = ω A ω A T, ja k B = K B (ω B, T ) = ω B T ω B. 14

Ühelt poolt, k A = k B tõenäosusega 1. Teiselt poolt aga on vastasele teada ainult summa ω A ω B, milles ei sisaldu infot ω B kohta. Seega ei saa vastase edukus olla suurem kui 2 k, mis tuleneb tähelepanekust, et võimalikke ω B väärtusi on 2 k. Toodud näitest järeldub (lisaks sellele, et transkripti siseehitusön oluline), et ei leidu protokolli, mille transkript sisaldaks täieliku informatsiooni ω A ω B kohta, kuid mitte mingit informatsiooni juhuarvude ω A ja ω B kohta. Sellise protokolli olemasolust järelduks ka piiramatu vastase suhtes turvalise võtmekehtestusprotokolli olemasolu, mille me aga ülaltoodud aruteluga välistasime. Käesoleva kirjutise kontekstis. 14

Loogilise konjunktsiooni arvutamine Oletame, et A valib ühe biti a {0, 1} ja B ühe biti b {0, 1}. Valikud toimugu mingite sõltumatute tõenäosusjaotuste D A ja D B järgi. Nad soovivad arvutada loogilist konjunktsiooni (korrutist) a b, kusjuures sellisel viisil, et partner ei saaks teada muud informatsiooni kui see, mis järeldub korrutisest a b ja omaenda bitist. Näiteks kui a = 1, siis a b järgi saab A muidugi tuletada partneri biti b, kuid kui a = 0, siis a b ei anna A-le mingit teavet b kohta. Oluline on koostada protokoll nii, et kui a = 0 siis ka transkripti T teadmine ei anna midagi b tuletamiseks. Arvutustes võib kumbki pool kasutada juhuarve, mis ei ole partnerile teada. Eeldame, et ω A {0, 1}k 1 on A juhuarv ja ω B {0, 1}k 1 on B juhuarv. Kooskõla saavutamiseks eelnevalt kasutatud tähistustega olgu 15

ω A = a ω A ja ω B = b ω B. Märgime, et ω A ja ω B ei tarvitse olla ühtlase jaotusega. Eeldame, et protokoll on korrektne, st K A (a ω A ; T (a ω A ; b ω B )) = a b = K B(b ω B ; T (a ω A ; b ω B )). (4) Ütleme, et juhuarvupaar (ω A, ω B ) on hea B suhtes, kui ta ei võimalda A-l (tingimusel a = 0) välja arvutada B bitti b, st leiduvad ω 0,B ja ω 1,B, nii et T (0 ω A ; 1 ω 1,B ) = T (0 ω A ; 0 ω B ) T (0 ω A ; 0 ω 0,B ) = T (0 ω A ; 1 ω B ). Analoogiliselt, paari (ω A, ω B ) nimetatakse heaks A suhtes, kui leiduvad ω 0,A ja ω 1,A, nii et: T (1 ω 1,A ; 0 ω B ) = T (0 ω A ; 0 ω B ) T (0 ω 0,A ; 0 ω B ) = T (1 ω A ; 0 ω B ). 15

Vahetatavuse omadusest saame, et T (0 ω A ; 1 ω 1,B ) = T (1 ω 1,A ; 1 ω 1,B ), millest korrektsuse tingimuse tõttu: 1 1 = K B (T (1 ω 1,A ; 1 ω 1,B ); 1 ω 1,B ) = K B(T (0 ω A ; 1 ω 1,B ); 1 ω 1,B ) = 0 Saime vastuolu, mistõttu võime järeldada, et ükski juhuarvude paar ei saa olla korraga hea mõlema osapoole suhtes. Seega oleme tõestanud järgmise teoreemi: Teoreem 2 Ei leidu loogilist konjunktsiooni arvutavat protokolli, mis oleks turvaline piiramatu (passiivse) vastase suhtes. 15

Piiratud arvutusjõuga vastased. Turingi masin arvuti matemaatiline mudel, millel on sisendolek (lint), programm (käskude jada), ja väljundolek (lint) Turingi masina peatumine arvutuskäik defineeritakse kui teatud olekute jada, milles naaberolekud on omavahel kindlal viisil seotud ja mis lõpeb teatud liiki olekuga (stop!) Arvutusaeg peatumisele eelnenud olekute arv. Arvutusaega (kindla programmi korral) esitatakse kui funktsiooni T (n) sisendoleku mahust n (bitti) 16

O-tähistused Def. Kirjutame f(n) = O(g(n)), kui leiduvad c R ja n 0 N, nii et iga n n 0 korral: f(n) c g(n). Def. Kirjutame f(n) = Ω(g(n)), kui g(n) = O(f(n)). Def. Kirjutame f(n) = Θ(g(n)), kui f(n) = O(g(n)) ja f(n) = Ω(g(n)). Def. Kirjutame f(n) = o(g(n)), kui lim n f(n) g(n) = 0. Def. Kirjutame f(n) = ω(g(n)), kui g(n) = o(f(n)). 17

Polünomiaalne aeg ja efektiivsed arvutused Kui Turingi masina M arvutusaeg on T (n) = n O(1), siis ütleme, et M töötab polünomiaalses ajas. NB! T (n) on maksimaalne arvutusaeg antud sisendi pikkuse n korral! Arvutus on efektiivne (kokkuleppeliselt), kui ta toimub polünomiaalses ajas. 18

Ühesuunalised funktsioonid Funktsiooni f : {0, 1} {0, 1} nimetatakse ühesuunaliseks, kui: leidub polünomiaalses ajas töötav Turingi masin M, nii et f(x) M(x) iga x {0, 1} korral. iga efektiivse vastase (Turingi masina) A korral on: Pr[x {0, 1} k, x A(f(x)): f(x ) = f(x)] = k ω(1), st pööramine õnnestub kaduvväikese tõenäosusega. Näide: Kas nullfunktsioon f(x) 0 on ühesuunaline? 19

Diskreetne eksponentfunktsioon Kui p on suur algarv ja α on primitiivne element korpuses Z p, siis funktsioon f α,p (x) = α x mod p usutakse olevat ühesuunaline. 20

Diffie-Hellmani võtmevahetus 1976 Diffie ja Hellman pakkusid välja järgmise ühesuunalisel funktsioonil põhineva võtmekehtestusprotokolli: Valitakse suur algarv p ja primitiivne element α. Kasutajad A ja B genereerivad salajased võtmed ω A {1,..., p 1} ja ω B {1,..., p 1}. Kasutaja A arvutab y A = α ω A mod p ja saadab y A kasutajale B. Kasutaja B arvutab y B = α ω B mod p ja saadab y B kasutajale A. Kasutaja A arvutab k A = y ω A B mod p = αω Aω B mod p. Kasutaja B arvutab k B = y ω B A mod p = αω Bω A mod p = k A. 21

RSA krüptosüsteem Võtme genereerimine. Leitakse kaks suurt algarvu p ja q ja leitakse n = p q. Leitakse e ja d, nii et e d 1 (mod ϕ(n)). Siis (n, e) on avalik võti ja (n, d) salajane võti. NB! ϕ(n) = (p 1)(q 1). Krüpteerimine. y = E n,e (x) = x e Dekrüpteeerimine. D n,d (y) = y d mod n mod n = x Küsimused: Kas E ja D on efektiivselt arvutatavad? Miks D n,d (E n,e (x)) = x? Kuidas saada suuri algarve? 22

Astendamisalgoritm Selleks, et arvutada x e mod n, esitame astendaja kahendsüsteemis: e = e m 2 m + e m 1 2 m 1 +... + e 1 2 1 + e 0 2 0, kus e m,..., e 0 {0, 1}. Seejärel kasutame valemit: x e m 2 m +...+e 0 2 0 = x e m 2 m x e m 1 2 m 1... x e 0 2 0 = ( x 2m) e m (x 2m 1) e ( m 1... x 20) e 0. Hüperastmed x 20,..., x 2m arvutame skeemi x 2k = ( x 2k 1) 2 järgi. 23

Euleri teoreem Teoreem (Euler). Kui (x, n) = 1, siis x ϕ(n) 1 (mod n), iga n ja iga x korral. Euleri teoreemi tõestuseks teeme kõrvalepõike üldisesse rühmateooriasse. Euleri teoreemi kasutades näitame, et kui avatekst x on pööratav mooduli n järgi, st (x, n) = 1, siis (x e ) d = x e d = x 1+k ϕ(n) = x (x ϕ(n)) k x 1 k x (mod n). Näitamaks, et RSA krüptosüsteem on korrektne ka mittepööratavate x- de korral on samuti vaja üldisi algebratulemusi nn. Hiina jäägiteoreemi (tõestame hiljem) 24

Rühma mõiste Rühm G on hulk, millel on defineeritud üks binaarne operatsioon, mis on: Assotsiatiivne: a (b c) = (a b) c Ühikelemendiga: Leidub e G, nii et x e = e x = x iga x G korral Pööratav: Igal elemendil a G on pöördelement b G, nii et a b = e. Tähistame b = a 1. Näited: (Z, +) (Z n, +), st mooduliga liitmine (Z n, ), st mooduliga korrutamine 25

Alamrühmad Rühma (G, ) alamrühmaks nimetatakse alamhulka H G, mis ise on rühm korrutustehte suhtes. Näiteks täisarvude aditiivses rühmas (Z, +) on kõigi paarisarvude hulk 2Z = {..., 4, 2, 0, 2, 4,...} alamrühm. Selleks, et mingi alamhulk H oleks alamrühm, on tarvilik ja piisav, et H oleks kinnine korrutamise ja pöördelemendi võtmise suhtes. Pöördelemendi nõue on oluline, sest näiteks rühmas (Z, +) on hulk N = {0, 1, 2,...} küll kinnine tehte + suhtes, kuid ise ta rühma ei moodusta. Selgub, et lõplike rühmade korral ei ole sellised kontranäited võimalikud: Ülesanne. Tõesta, et lõpliku rühma (G, ) alamhulk H on alamrühm parajasti siis kui H on kinnine tehte suhtes. 26

Elemendi järk rühmas Eelnevast on selge, et kui G on lõplik rühm ja g G, siis astmete hulk H = {g, g 2, g 3,...} on alamrühm. See tuleneb otseselt hulga H kinnisusest korrutamise suhtes. Et iga alamrühm sisaldab ühikelementi, siis järelikult ka 1 H. Olgu k minimaalne selline astendaja, mille korral g k = 1. Siit järeldub, et H = k, sest astmed g, g 2,..., g k on erinevad ja kui l > k, siis g l = g l mod k. Rühma H tähistatakse g ja tema elementide arvu g nimetatakse elemendi g järguks. Järeldus. Kui G on lõplik rühm ja g G, siis g g = 1. 27

Lagrange i teoreem Teoreem: Kui G on lõplik rühm ja H tema alamrühm, siis G H on täisarv. Tõestus: Olgu H = {h 1,..., h m } (kus h i h j kui i j). Kui H = G, siis G H = 1 ja väide kehtiks. Kui g G\H, siis hulga gh = {gh 1,..., gh m } elemendid on erinevad, sest kui gh i = gh j, siis h i = g 1 gh i = g 1 gh j = h j. Seega H = gh. Samuti H gh =, sest kui gh i = h j, siis g = gh i h 1 i = h j h 1 i H (vastuolu, sest g H). Kui G = H gh, siis G H = 2 ja väide kehtiks. Kui g 2 G\(H gh) ja g 2 H = {g 2 h 1,..., g 2 h m }, siis H = g 2 H ja g 2 H H =. gh g 2 H =, sest kui gh i = g 2 h j, siis aga oleks g 2 = g(h i h 1 j ) gh. Seega on hulgad H, gh ja g 2 H ühisosata ja võrdse võimsusega. Kui nüüd G = H gh g 2 H, siis G H = 3 ja väide kehtiks.... 28

Euleri teoreemi tõestus Järeldus: Kui G on lõplik rühm ja g G, siis g G = 1. Tõstus: Lagrange teoreemist järeldub, et G = k on täisarvuine ja seega: g g G = g g k = ( g g ) k = 1 k = 1. Euleri teoreemi tõestuseks piisab faktist, et Z n = {a {1,..., n 1}: süt(a, n) = 1} on rühm, milles on ϕ(n) elementi. 29

Algarvude leidmine: Fermat teoreem Teoreem (Fermat ). Kui p on algarv, siis b p 1 1 (mod p) iga 0 < b < p korral. (Otsene järeldus Euleri teoreemist!) Fermat test (Kas n on algarv?): Genereerime b {1,..., n 1} ja arvutame c = b n 1 mod n. Kui c 1, siis Fermat teoreemi tõttu n ei ole algarv! Kui c = 1, siis kordame testi. Kui testi on korratud k korda, siis lõpetame ja kuulutame n-i algarvuks! Küsimus: Kui usaldatav on Fermat test? 30

Pseudoalgarvud baasil b Olgu 0 < b < n ja b n 1 1 (mod n). Siis öeldakse, et n on pseudoalgarv baasil b. Olgu H n = {b: b Z n, b n 1 1 (mod n)}, st H n on kõigi pööratavate baaside hulk Z n -s, mille suhtes n on pseudoalgarv. Teoreem. Hulk H n on alamrühm multiplikatiivses rühmas G = Z n. Tõestus. Kui b 1, b 2 H n, siis (b 1 b 2 ) n 1 b n 1 1 b n 1 2 1 (mod n), millest järeldub b 1 b 2 H n. Def. Kui n on kordarv ja H n = Z n, siis n on Carmichaeli arv. (Vähim Carmichaeli arv on 561). 31

Fermat testi usaldatavus (I) Teoreem. Kui n on kordarv ja ei ole Carmichaeli arv, siis H n 1 2 Z n = ϕ(n) 2 Tõestus. Carmichaeli arvude definitsiooni järgi H n Z n, millest järeldub Z n > 1. Et aga Lagrange i teoreemi järgi on vaadeldud suhe täisarvuline, H n siis järelikult mis tõestabki teoreemi väite. Z n H n 2, Järeldus. Kui kordarv n ei ole Carmichaeli arv, siis (ühekordne) Fermat test eksib tõenäosusega 1 2 ja k-kordne tõenäosusega 1 2 k. 32.

Fermat testi usaldatavus (II) Teoreem (Alford, Granville, Pomerance; 1994) Olgu C(n) Carmichaeli arvude arv vahemikus [0...n], siis C(n) > n 2/7. Järelikult on olemas lõpmatu arv Carmichaeli arve. Järeldus: Fermat test ei ole täiesti usaldatav ka väga suurte arvude korral. On olemas algarvutestid, mis töötavad ka Carmichaeli arvude korral. 33

Miller-Rabini test (Kas n on algarv?) Vali juhuslikult a {1,..., n 1}. Kui (a, n) 1, siis n on kordarv. Olgu n 1 = 2 k m, kus m on paaritu. Kui a m mod n = 1 siis väljasta algarv. Kui a m 2i 1 (mod n) mingi i = 0... k 1 korral, siis algarv. Muidu väljasta kordarv. Teoreem. Kui n on algarv, siis Miller-Rabini test väljastab algarv. Kui n on kordarv, siis test väljastab kordarv tõenäosusega 1 2. 34

Hiina jäägiteoreem Teoreem. Kui n 1, n 2 N ja (n 1, n 2 ) = 1, siis Z n1 n 2 = Zn1 Z n2, st leidub bijektiivne f : Z n1 n 2 Z n1 Z n2, nii et f(x + y) = f(x) + f(y) ja f(x y) = f(x) f(y) iga x, y Z n1 n 2 korral. Tõestus. Defineerime f(x) = (x mod n 1, x mod n 2 ). On selge, et f säilitab tehted ja Z n1 n 2 = Z n1 Z n2, mistõttu piisab kui näitame, et f on injektiivne. Tingimusest (n 1, n 2 ) = 1 saame, et leiduvad α, β Z, nii et αn 1 + βn 2 = 1. Defineerime g : Z n1 Z n2 Z n1 n 2 järgmiselt: g(x 1, x 2 ) = βn 2 x 1 + αn 1 x 2 mod n 1 n 2. Olgu x Z n1 n 2, x mod n 1 = x + c 1 n 1, ja x mod n 2 = x + c 2 n 2. Siis: g(f(x)) = βn 2 (x + c 1 n 1 ) + αn 1 (x + c 2 n 2 ) mod n 1 n 2 = (αn 1 + βn 2 )x + n 1 n 2 (...) mod n 1 n 2 = x. 35

Järeldus1: RSA korrektsus Teoreem (RSA korrektsus). Olgu e d 1 (mod ϕ(n)) ja n = p q, kus p ja q on erinevad algarvud. Siis iga x Z n korral: x ed x (mod n). Tõestus. Vastavalt Hiina jäägiteoreemile piisab, kui näidata, et x ed x kehtib ringis Z n1 Z n2. Olgu (x 1, x 2 ) selle ringi suvaline element. Siis (x 1, x 2 ) ed = (x ed 1 mod p, x ed 2 mod q) = (x 1+cϕ(n) 1 mod p, x 1+cϕ(n) 2 mod q) = (x 1 x (p 1)c(q 1) 1 mod p, x 2 x (q 1)c(p 1) 2 mod q) = (x 1, x 2 ), sest Fermat teoreemi tõttu x (p 1) 1 mod p = 1 kui x 1 0 (ja 0 kui x 1 = 0) ning x (q 1) 2 mod q = 1 kui x 2 0 (ja 0 kui x 2 = 0). 36

Järeldus 2: Võrrandite lahendamine Kui (n 1, n 2 ) = 1, siis iga a Z n1 ja b Z n2 korral on võrrandisüsteemil { x mod n1 = a x mod n 2 = b parajasti üks lahend x vahemikus {0,..., n 1 n 2 1}. Näiteülesanne. Leia võrrandisüsteemi kõik lahendid vahemikus [0...21]: { x 2 (mod 3) x 6 (mod 7). Lahendus. Et ( 2) 3 + 1 7 = 1, siis saame Hiina jäägiteoreemist, et x 7 2 + ( 2) 3 6 20 (mod 21), millest järeldub, et x = 20 on ainus lahend vahemikus [0...21]. 37

Järeldus 3: Ruutjuured Teoreem. Ringis Z pq (kus 3 p < q on algarvud) on elemendil a = b 2 Z pq parajasti neli ruutjuurt. Tõestus. Piisab kui näidata, et nii on ringis Z p Z q. Lihtne on näha, et (Z p Z q ) = Z p Z q. Olgu (x 1, x 2 ) Z p Z q ja (x 1, x 2 ) 2 = (x 2 1, x2 2 ) = (a mod p, a mod q). Piisab kui näitame, et võrrandil x 2 = a on ringides Z p ja Z q parajasti kaks lahendit. Oletame, et ringis Z p nimetatud võrrandil kaks lahendit x ja y, st x 2 y 2 = (x y)(x + y) 0 (mod p). Et p on algarv, siis nullitegurid puuduvad ja üks teguritest peab olema null. Seega x = ±y, millest järeldub, et võrrandil x 2 = a on ülimalt kaks lahendit. Teiselt poolt, kui x 2 = a, siis alati ka ( x) 2 = a. Kui p > 2, siis x x, mistõttu lahendeid on vähemalt kaks. 38

Carmichaeli arvude struktuur Teoreem 3 Arv n = p 2 n, kus p 3 on algarv ei ole Carmichaeli arv. Tõestus: Olgu n = p k m, kus m ei jagu p-ga. Kui m = 1, siis olgu b = p + 1, kui m 3, siis olgu b Z n selline arv, et b 1 + p (mod p 2 ) b 1 (mod m) Et mõlemal juhul p 2 b (p + 1), siis b ei saa jaguda p-ga. Lisaks sellele süt(b, m) = 1. Seega süt(b, n) = 1 ja b Z n. Et b n 1 (1 + p) n 1 1 + (n 1)p (mod p 2 ) ja (n 1)p ei jagu p 2 -ga (sest n 1 = p k m 1 ei jagu p-ga), siis b n 1 1 (mod n). 39

Miller-Rabini testi korrektsus (I) Teoreem 4 Kui n on algarv, siis Miller-Rabini test väljastab algarv. Tõestus: Kui n 1 = 2 k m ja m on paaritu, siis iga a {1,..., n 1} korral kas a m 1 (mod n) (ja test väljastab algarv ), või a m 1 (mod n), siis a n 1 1 (mod n) tõttu (Fermat teoreem!) saame, et leidub 0 < i < k, nii et a 2im mod n 1 ja a 2i+1m mod n = 1. Järelikult a 2im 1 (mod n), sest muidu oleks b = a 2im mod n mittetriviaalne ühejuur, mis oleks võimatu, sest n on algarv. Teoreem 5 Olgu n kordarv ja mitte Carmichaeli arv, siis Miller-Rabini test väljastab kordarv tõenäosusega vähemalt 1 2. Tõestus: Fermat testi omadustest järeldub, et a n 1 1 vähemalt poolte a-de korral, ja seega a m 1 (mod n) ning a m2i 1 (mod n) iga 0 i < k korral, ja selliste selliste a-de korral väljastab test kordarv. 40

Miller-Rabini testi korrektsus (II) Teoreem 6 Olgu n Carmichaeli arv, n 1 = 2 k m ja m on paaritu. Siis Miller-Rabini test on korrektne tõenäosusega vähemalt 1 2. Tõestus: Olgu t = max{0 i < k a Z n : a 2im 1 (mod n)}. Et ( 1) 20m = ( 1) m 1, siis t on korrektselt defineeritud. Kui t > t, siis ei leidu a Z n, nii et a 2t m 1 (mod n). Olgu B t = {a Z n : a2tm ±1 (mod n)}. See hulk ei ole tühi, sest leidub a Z n, nii et a2tm 1 (mod n). Kui b B t, siis selle b korral Miller-Rabini test väljastab kordarv, sest astmetest b 2t+1m,..., b 2km ei ole ükski 1. 41

Olgu p 3 vähim algarv, nii et p n. Et p 2 n, siis n = pd ja süt(p, d) = 1. Olgu a 2tm 1 (mod n) ja b Z n olgu element, nii et b a (mod p) b 1 (mod d). Et nii a kui 1 on pööratavad elemendid, siis ka b Z n. Samal ajal aga b 2tm a 2tm 1 (mod p) b 2tm 1 2tm +1 (mod d). Siit tuleneb, et b 2tm ±1 (mod n) ja seega b B t. Lihtne on veenduda, et B t on rühma Z n alamrühm ja seega B t Z n 1 2. 41

RSA praktiline kasutamine: nõrgad protokollid Parim teadaolev tegurdamisalgoritm töötab ajas e (c+o(1)) 3 n log 2/3 n (nn. General Number Field Sieve) Järgnevalt näitame, et RSA kasutamisel tuleb olla väga ettevaatlik. Meie ülesanne on koostada salastatud sõnumivahetuse süsteem, kus kasutajatel on võimalik üksteisele saata salajasi sõnumeid. Näitame, et: Igal kasutajal peab olema eraldi moodul n. Ühise mooduli kasutamine on ebaturvaline. mod n on krüpteeri- Kui avalik astendaja e on väike, siis E n,e (x) = x e misfunktsioonina ebaturvaline. 42

Ühise mooduliga protokoll Kasutajal A on avalik e A ja salajane d A, nii et e A d A 1 (mod ϕ(n)). Kasutajal B on avalik e B ja salajane d B, nii et e B d B 1 (mod ϕ(n)). Simmonsi rünne: Kui (e A, e B ) = 1 (täiesti võimalik juhtum!) kui üks ja sama sõnum m saadetakse kasutajatele A ja B, siis ründajal on olemas y A = m e A mod n ja y B = m e B mod n. Teame, et leiduvad täisarvud α ja β, nii et αe A + βe B = 1. Üks arvudest α, β peab olema negatiivne. Eeldame, et α = α. Ründaja arvutab esmalt y 1 A mod n ja seejärel: [ ] y 1 α A [yb ] β = m αe A m βe B = m αe A+βe B = m. 43

Tegurdamine ühejuurte abil Näitame, et kui on teada b ±1, nii et b 2 1 (mod n) (kus n = pq), siis saab arvu n tegurdada. Seosest b 2 = 1 järeldub, et (b + 1)(b 1) = 0 mod n. Kuna b ±1, siis ei ole kumbki sulg kongruentne nulliga ja seega on mõlemad sulud nullitegurid. Et sulgude korrutis jagub n = pq-ga, kuid kumbki sulg ei jagu n-ga, siis üks sulg jagub p-ga ja teine q-ga. Seega, (b + 1, n) {p, q} ja ühekordsest suurima ühisteguri leidmisest piisab n tegurdamiseks. 44

Ühejuurte leidmine korrektse võtmepaari (e, d) abil Näitame, et kui kasutajal on võtmepaar e, d, nii et ed 1 (mod ϕ(n)), siis saab kasutaja kui tahes suure tõenäosusega leida mittetriviaalse ühejuure ja seega tegurdada avalikku moodulit n. Juure leidmine (DeLaurentis): Olgu ed 1 = c ϕ(n) = 2 s λ, kus λ N on paaritu arv. Vali juhuslikult a {2,..., n 2}, nii et süt(a, n) = 1. Leia vähim j > 0, nii et a 2jλ = 1. (Leidub, sest 2 s λ jagub ϕ(n)-ga). Võtame b = a 2j 1λ. Kui b 1, siis väljasta b, muidu korda protseduuri. Saaab näidata, et igas tsüklis leitakse mittetriviaalne juur tõenäosusega 1 2. 2004 Alexander May näitas efektiivse deterministliku protseduuri! 45

Miks leitakse mittetriviaalne juur tõenäosusega 1 2? Lemma: 6 Kui p, q 3 on algarvud, siis leidub t N, nii et p 1 naturaalarvud ja vähemalt üks neist on paaritu. (ilmne!) 2 t ja q 1 Lemma: 7 Kui p 3 on algarv, siis x p 1 2 mod p = 1 täpselt p 1 2 elemendi, ja x p 1 2 mod p = p 1 täpselt p 1 2 elemendi x Z p korral. 2 t on Tõestus: Fermat teoremist x p 1 1 = 0 iga x Z p korral ja seega kõik p 1 elementi on polünoomi X p 1 1 juured (arvuvallas Z p ). Seega iga y = x p 1 2 korral, y 2 1 0 (mod p) ja et Z p on korpus, siis y ±1 (mod p). Ei ole võimalik, et x p 1 2 1 (mod p) või x p 1 2 1 (mod p) iga x korral, sest polünoomidel X p 1 2 ± 1 on ülimalt p 1 2 juurt. Iga x Z p 46

on kas polünoomi X p 1 2 1 juur või polünoomi X p 1 2 + 1 juur ja et neil polünoomidel on kokku p 1 juurt, siis on kummalgi täpselt p 1 2 juurt. Lemma: 8 Kui p > q 3 on algarvud, n = pq, ja ed 1 (mod ϕ(n)), siis leidub k N nii et ed 1 2 k N ja juhusliku x Z n korral on x ed 1 2 k mittetriviaalne ühejuur tõenäosusega 1 2. Tõestus: Olgu Hiina jäägiteoreemist tulenev ekvivalents Z n elementide ja Z p Z q vektorite vahel ja αp + βq = 1, kus α, β Z. Siis iga x Z n, x p Z p, ja x q Z q korral: x (x mod p, x mod q) βqx p + αpx q mod n (x p, x q ). Mittetriviaalsed ühejuured vastavad vektoritele (1, q 1) ja (p 1, 1). Olgu c = 2 m l N (kus l on paaritu) naturaalarv, nii et ed 1 = c ϕ(n). 46

Olgu ed 1 = 2 s λ, kus λ on paaritu. Valime k = t + m + 1, kus t N tuleb Lemmast 6. Et p 3 tõttu t 1 ja 2 2t ϕ(n), siis s m + 2t m + t + 1 = k. ja seega ed 1 2 k N. Järelikult ed 1 2 k = ϕ(n) (p 1)(q 1)l 2t+1 = 2 2 t ja: ( p 1 x 2 p x ed 1 2 k x (p 1)(q 1)l 2 2 t ) l q 1 ( 2 t, x q 1 2 q ) l p 1 2 t. p 1 Et x 2 p q 1 ja x 2 q on võrdse tõenäosusega kongruentsed kas 1 või 1-ga, ja vähemalt üks astmetest q 1 2 t ja p 1 2 t on paaritu, siis tõenäosus, et viimase vektori componendid on erinevad (st täpselt üks komponentidest on 1), on 1 2 ja seega xed 1 2 k on mittetriviaalne ühejuur tõenäosusega 1 2. 46

Teise kasutaja salajase astendaja leidmine Näitame efektiivse deterministliku protseduuri, kuidas kasutaja B võtmepaariga (e 2, d 2 ) saab leida teise kasutaja A salajase astendaja d 1 avaliku astendaja e 1 abil. Piisab, kui leida t, nii et (e 1, t) = 1 ja t = c ϕ(n). Tõepoolest, kuna αe 1 +βt = 1 mingite α, β Z korral, siis järelikult αe 1 = 1 βcϕ(n) 1 (mod ϕ(n)). Ründaja toimib järgmiselt: Leiab f = (e 1, e 2 d 2 1) kasutades Eukleidese algoritmi. Võtab t = e 2d 2 1 f. On tõenäoline (vt järgmine slaid), et (e 1, t) = 1. Definitsiooni järgi (e 1, ϕ(n)) = 1. Kuna f e 1, siis ka (f, ϕ(n)) = 1. Kuid ft = e 2 d 2 1 = j ϕ(n), millest järeldub, et ϕ(n) t. Seega on vajalike omadustega t leitud. 47

Teise kasutaja salajase astendaja leidmine: II Tegelikult ei ole alati (e 1, t) = 1 ja seetõttu ei tööta murdmisalgoritm alati. Näiteks kui n = 41 5 = 205, siis ϕ(n) = 160. Võttes e 1 = 3, saame et d 1 = 107; ja e 2 = 11, saame et d 2 = 131. Nüüd e 2 d 2 1 = 1440 = 9 160. Seega f = (e 1, e 2 d 2 1) = (3, 9 160) = 3 ja t = e 2d 2 1 f = 9 160/3 = 3 160. Seega, (e 1, t) = 3 1. 48

Väike astendaja e Kasutajatel A, B ja C olgu vastavalt RSA moodulid n 1, n 2 ja n 3. Avalik astendaja on kõigil e = 3. Oletame, et üks ja sama sõnum m saadetakse korraga kõigile kolmele kasutajale ja ründaja saab kätte kõik krüptogrammid: y A = m 3 mod n 1, y B = m 3 mod n 2, y C = m 3 mod n 3. Ründaja toimib järgmiselt: Kui (n i, n j ) 1, siis ründaja tegurdab n i, leiab salajase võtme d i ja dekrüpteerib sõnumi m. Kui kolm moodulit n 1, n 2, n 3 on paarikaupa ühistegurita, siis vastane leiab x Z n1 n 2 n 3, nii et x y A (mod n 1 ) x y B (mod n 2 ) x y C (mod n 3 ) Kuna m < min{n 1, n 2, n 3 }, siis m 3 < n 1 n 2 n 3, mistõttu m 3 on samuti kongruenside süsteemi lahend hulgas Z n1 n 2 n 3. Hiina jäägiteoreemi tõttu x = m 3. Seega piisab m leidmiseks, kui leida 3 x, mis on lihtne! 49

Väike astendaja d RSA algoritmi praktilistes rakendustes võib tekkida kiusatus valida d väike. Selgub, et liiga väike d on ebaturvaline: d leidmine (M.Wiener): Kui q < p < 2q ja d < 1 3 n1/4, siis paarist (n, e) (kus ed 1 (mod ϕ(n))) saab efektiivselt arvutada d. Kui n on 1024-bitine, siis d peaks olema vähemalt 256-bitine. Lahtine probleem: Kui d < n 0.5, kas siis alati saab efektiivselt leida d? 50

Homomorfsus RSA krüpteerimisalgoritmil on järgmine omadus: E(m 1 m 2 ) = (m 1 m 2 ) e mod n = m e 1 me 2 mod n = E(m 1 ) E(m 2 ) mod n. Näiteks: E(2m) = E(2) E(m) mod n, mistõttu saab krüptogrammist E(m) ilma privaatvõtmeta efektiivselt koostada krüptogrammi E(2m). 51

Homomorfsuse kuritarvitamine: näide Olgu meil server, kellel on avalik võti (e, n). Kasutajad saadavad serverile krüpteeritud sõnumeid E(m), kusjuures m esimene bitt peab olema 1. Vastasel korral saadab server kasutajale veateate. Nõrkus: Serveriga suheldes, saab dekrüpteerida suvalise krüptogrammi E(m). 52

Homomorfsuse kuritarvitamine: näide Saadame serverile E(m) ja saame teada, kas m on paaris või paaritu. Arvutame ja saadame serverile E(2m) = E(2) E(m). Kui m < n 2, siis 2m < n ja 2m mod n on paaris ja saame veateate. Kui n 2 m < n, siis n 2m < 2n ja 2m mod n = 2m n on paaritu, sest n on paaritu ja 2m paaris. Seega, me ei saa veateadet! Seega, me saame teada, kummas vahemiku [0...n 1] pooles asub m. 53