310 likes | 535 Views
Keerukusteoorial põhinevad salastuse definitsioonid. Sven Laur. Alice. X. Carol . Y. K. E ( · , · ). E ( K , X ). E ( K , Y ). Miks ideaalne salastatus ei sobi?. Ideaalse salastatuse mudel ei vasta tegelikkusele! Vaenlasel on võimalus saada teada, millist teadet krüpteeriti.
E N D
Keerukusteoorial põhinevad salastuse definitsioonid Sven Laur
Alice X Carol Y K E( · , ·) E(K,X) E(K,Y) Miks ideaalne salastatus ei sobi? • Ideaalse salastatuse mudel ei vasta tegelikkusele! • Vaenlasel on võimalus saada teada, millist teadet krüpteeriti. • Vaenlane saab ise tekste krüpteerida, kasutades musta kasti.
Teada oleva avatekstiga rünne • Teada oleva avatekstiga rünne. On teada tekstide paarid: x1, E(K,x1); x2, E(K,x2); ... ; xn, E(K,xn). • Põhjused: paljudel failidel on kindel algus, e-kirjad algavad ühtemoodi, IP-aadressid on teda, testi valikuid on lõplik arv jne. • Et vähendada teada oleva avatekstiga ründe ohtu, tuleb krüpteerida vaid salajast infot või kasutada täidist (padding).
Valitud avatekstidega rünne • Ründaja saab valida n avateksti ja krüpteerida need musta kasti režiimis, tulemuseks on x1, E(K,x1); ... ; xn, E(K,xn). • Põhjused: teisted programmid, viirused, füüsilised turvaaugud, kiipkaarti saab "laenata", oskamatus ja "nõuandjad". • Enamasti on võimalik organisatoorsete vahenditega vältida.
Adaptiivne avateksti rünne • Ründaja saab valida n avateksti vastavalt eelnevatele krüptogrammidele. • Põhjused: füüsilised turvaaugud, troojahobused, viirused, kiipkaartide "laenamine". • Enamasti on võimalik organisatoorsete vahenditega vältida.
Šiffri turvalisuse ülempiir I • Olgu |X| =|K|=|E(K,X)|, kus |X| on avateksti pikkus, siis on fikseeritud X korral krüpto-grammil E(K,X) täpselt 2|K| võimalikku väärtust. • Ideaalse salastatuse tõttu, on fikseeritud väärtuse E1 saamise tõenäosus 1/2|K|. • Kui teha kõigi võtmetega krüpterida X, siis vaid üksikute võtmete Ki korral E(Ki,X)=E1
Šiffri turvalisuse ülempiir II • Seetõttu on kulub võtmepikkusega |K| šiffri murdmiseks umbes 2|K| krüpteerimist. • Üldse on olemas 2|K|! erinevat permutatsiooni {0,1}|K|{0,1}|K|. • Me peame valima neist 2|K|, kusjuures me tahame neid efektiivselt arvutada. • Teeme tahest tahtmata, sellise valiku, mis nõrgendab seda ülempiiri.
Ajaline keerukus • Iga programmi töökiirus sõltub sisendist. Kui sisend on pikem, siis tööaeg on ka pikem. Enamasti võetakse tööajaks elementaaroperatsioonide arv. • Def. Programmi ajaliseks keerukuseks nimetatakse funktsiooni f(n), mis näitab mitu el.operatsiooni tehakse maksimaalselt pikkusega n sisendi töötlemisel.
Hinnangud keerukusele • Enamik algoritmide korral pole täpne ajaline keerukus oluline. • Kui f(n) on polünoom, siis tegeliku töö-kiiruse määrab polünoomi aste. • Kui f(n) on kujul cnja c >1, siis on algoritm kasutatav vaid väikeste sisendmahtude juures. Praktiline kriteerium: suurendades andmeid ühe võrra, suureneb tööaeg 2x.
Ülikeerukad probleemid • Väljastada kõik arvud 1, 2, 3 ... ,2n, kus n on ainus sisend. • Olgu sisendiks musta kastina funktsioon f:{0,1}n{0,1}n, teha kindlaks, kas funktsioon on üksühene ja pealekujutus. • Leida polünoomi P(X1,X2,...,Xn) kõik nullkohad, kus Xi=1,2,....22n. Kas leidub mõni nullkoht antud piirkonnas?
Lihtsamad probleemid • Olgu meil n linna, millede vahel on m teed. Rändkaupmees tahab teada, kas leidub selline tee nii, et saaks läbida kõik linnad täpselt üks kord. Kui sellined leiduvad, milline on neist lühim?
Arvutatavuse piirid • Enamuse arvutuslike probleemide keerukus peitub omaduste ära tundmises. • Seetõttu vaadatakse lihtsustatud mudelülesandeid, kus eeldatakse vastuseid JAH või EI. • Kui leidub effektiivne algoritm, mis lahendab mudelülesannet saab ka tegelikku ülesannet effektiivselt lahendada.
Keerukusklass NP • Ülesande lahendamist võib ette kahe algo-ritmi koostöös. • Arvaja pakub välja väiteid T, mis tõestaksid XP. • Verifitseerija kontrollib T õigsust. • Alice'i huvitab vaid positiivne vastus JAH. Alice X P? Arvaja Tõestus T, et X P Verifitseerija JAH T pole põhjendus
Keerukusklass NP • Def. Omadus P kuulub keerukusklassi NP, kui leidub polünomiaalses ajas töötav algoritm, mis verifitseerib XP, kui on antud korrektne väite XP polünomiaalse pikkusega tõestus T. • Pole teada, kas igale NP-klassi kuuluva probleemi P lahendamiseks on polüno-miaalne algoritm.
Keerukusklass co-NP • Arvaja pakub välja väiteid T, mis tõestaksid XP. • Kui kõik võimalikud tõestused pole sobivad, siis arvaja ütleb EI. • Alice'i huvitab negatiivne vastus EI • Intuitiivselt, co-NP on raskem kui NP. Alice X P? Arvaja EI Tõestus T, et X P Verifitseerija T pole põhjendus
Keerukusklasside asetus NPC Kordarv? co-NP NP Seljakoti pakkimine P Sorteeritud?
Arvu faktoriseerimine • Def. Täisarvu tegurdamise pobleem on antud täisarvu n, korral leida selle esitus algarvude astmetena n = p1i1p2i2· ... ·pkik • Selgelt on faktoriseerimine raskem, kui vastata küsimusele kas n on kordarv? • Kui leidub algoritm, mis efektiivselt leiab mittetriviaalse teguri, siis on ka faktori-seerimise probleem efektiivselt lahenduv.
Proovijagamise idee 2,3,4,5,6,7,8,9,10,11,12,...,n X,3,X,5,X,7,X,9, X,11, X,...,n X,X,X,5,X,7,X,X, X,11, X,...,n X,X,X,X,X,7,X,X, X,11, X,...,n • Igal sammul võtame vähima maha tõmba-mata arvu -- see on algarv ning tõmbame maha selle kordsed. Protsess lõpeb sellega, et n tõmmatakse maha või on n algarv.
Proovijagamise keerukus • Kui n jagub väikeste algarvudega, siis on algoritm efektiivne. • Algoritmi keerukuse määrab suuruselt teine tegur. Kui see on suur, siis tuleb jagada kõigi väiksemate algarvudega. Teise teguri suurus saab olla ülimalt n. Täpsem keerukushinnang annab keerukuseks O(p+log n) jagamist, kus p on teine tegur.
Diskreetne logaritm • Def. Olgu n, a ja b täisarvud, milline on vähim täisarv x nii, et ax b mod n. Üldiselt ei tarvitse sellist arvu üldse olla -- näiteks iga x korral 2x 3 mod 8. • Näited 22 4 mod 5 log2 4 = 2 32 4 mod 5 log3 4 = 2 33 2 mod 5 log3 2 = 3
Lihtne otsing • Otsides lahendit ax b mod n võib arvutada kõik a astmed a,a2,a3,...,an kui ühegi astme korral pole saadud võrdust, siis sellist x ei leidu. Vastasel korral tuleb valida vähim. Keskmiselt kulub seega 0.5n korrutamist, mis on kättesaamatu kui näiteks n=280. • Igas olukorras töötava algoritm teeb keskmiselt n korrutamist.
Seljakoti probleem • Def. On antud positiivsed arvud a1,a2,a3, ..., an ning c leida üks võimalik summa ai1+ai2+...+aik= c. Ideeliselt vastab see seljakoti pakkimisele nii, et sinna ei jää tühja ruumi. • 1980-nendatel näidati, et teatud juhtudel leidub efektiivne algoritm probleemi lahendamiseks.
Polünomiaalne mudel • Def. Krüptosüsteem S on turvaline, kui ükski polünomiaalses ajas töötav algoritm ei suuda seda murda. Ründaja aeg on ülimalt polünoomiaalne võtme pikkusest. • Harilikult näidatakse, et krüptosüsteemi murdev algoritm aitab effektiivselt lahendada NP-täielikku ülesannet või mõnda muud tuntud rasket ülesannet.
XP? YQ? Alice Tõlkija Lahendaja JAH EI Polünomiaalne taandamine • Tõlkija tõlgib Alice'i probleemi Lahendajale sobivale kujule. Näiteks on Alice inglane ja tema probleemi oskaks lahendada Juhan, kes ei mõista inglise keelt. Siis peab Alice oma probleemi õieti eesti keelde tõlkima.
Turingi taandamine XP? YiQ? Alice Algoritm Oraakel Vastused • Kui algoritm teaks õigeid vastuseid küsimusele YiQ?, siis oskaks see vastata ka Alice'i küsimusele • Näideks kontrolltöö tegemine oraakliga.
Polünomiaalse mudeli puudused • Harilikult ei kindlusta polünomiaalne mudel praktilist turvalisust. • Raskete ülesannete erijuhud võivad lihtsamalt laheneda. Näiteks seljakoti ülesanne. • Praktiline turvalisus võib olla tagatud liiga pika võtme korral.
Tõestatav turvalisus I • Kõigepealt formaliseeritakse matemaailine probleem P, mille lahendamine on raske. • Seejärel näidatakse, et krüptosüsteemi lahti murdes saab kindla arvu lisasammudega lahendada probleemi P. • Täpsustatakse ründaja ressurssid. Mitut avateksti ja krüptogrammi paari ründaja teab. Mitu korda saab ta vabalt krüpteerida.
Tõestatav turvalisus II • Puuduseks on see, et probleemi P vähimat lahendusaega pole kuidagi võimalik kindlaks teha. • Paljude süsteemide korral pole teada, millisele probleemile saaks süsteemi turvalisuse taandada või pole taandamist õnnestunud läbi viia.
Tõestatav turvalisus III • Võimaldab arendada modulaarseid süsteeme, mille turvalisus on otseselt määratud baaskomponentide turvalisusega. • Kui baaskomponent murdub, siis on seda võimalik asendada. • Tehakse ad hoc kindlaks probleemi P lahendava algoritmi ajaline keerukus.
Praktiline turvalisus • Paljude krüptosüsteemide korral on olemas mudelprobleem, mida on aastaid uuritud ning mille kohta on teada täpsed keerukushinnangud. Süsteemi turvalisus määratakse nende hinnangute abiga. • Puuduseks on see, et keegi võib tulla välja uut tüüpi ründega, mis võib kõvasti turvalisust vähendada.
Turvatõestuse areng Ründed Uus skeem Ad hoc turvalisus Formalisat-sioon Polünom. mudel Hinnangute täpsustamine Probleemide üldine tunnustamine Tõest. turvalisus Praktiline turvalisus Mudelprobleemi hindamine