520 likes | 735 Views
Shannoni teooria. Ahto Buldas, Sven Laur. Lähtekohad. Kerchoffi printsiip . Ründaja teab alati krüptosüsteemi ehitust. Ainus hoitav saladus on krüpteerimisvõti. Šifri turvalisus t võib hinnata kahel moel: piiratud arvutusvõimsusega ründaja vastu (viib Keerukusteooriasse)
E N D
Shannoni teooria Ahto Buldas, Sven Laur
Lähtekohad • Kerchoffi printsiip. Ründaja teab alati krüptosüsteemi ehitust. Ainus hoitav saladus on krüpteerimisvõti. • Šifri turvalisust võib hinnata kahel moel: • piiratud arvutusvõimsusega ründaja vastu (viib Keerukusteooriasse) • piiramatu arvutusvõimsusega ründaja vastu (viib Informatsiooniteooriasse).
Avatekst, krüptogramm ja võti • Krüpteerimisteisendus: Y = EZ(X) • Suurusi X, Y ja Z modelleeritakse juhuslike suurustena. Põhjused: • Z on tavaliselt juhuslikult genereeritud • X kui loomuliku keele sõnumit on samuti tavaks saanud modelleerida juhusliku suurusena • Y sõltub juhuslikest suurustest ja on seega ka ise juhuslik suurus.
Juhuslik suurus • Def (statistiline). Juhuslik suurus X, võib omandada väärtusi hulgast X1,X2,...,Xn, kuid millist, see pole kindel. Iga kord kui uurime, mis on X väärtus, võtab see mingi väärtuse Xi. Kui teha lõpmata palju katseid, siis p(Xi) = Korrektne definitsioon viib aksiomaatilisse tõenäosusteooriasse. katsete arv, kus X=Xi kõigi katsete arv
Aksiomaatilise käsitluse idee • Sündmused on alamhulgad ruumis • Igal alamhulgal S on mõõt p(S)0. p()=1. • Kui S1S2=, siis p(S1S2) = p(S1) + p(S2). • Juhuslik katse X={x1,...,xm} – ruumi tükeldus Katses X asendub ühega tükkidest: ’= [X=xi] Peale katset p(’)=1. X=x1 X=x2 X=x3 X=x4 X=x5
Liittõenäosus • Definitsioon. Kahe juhuslikus suuruse (katse) poolt tekitatud liittõenäosuse p(x,y) all mõistetakse sündmuse tõenäosust, et (liit)katses X=x ja Y=y. p(x,y) X=x Y=y
Tingimuslik tõenäosus • Tingimusliku tõenäosuse p(x|y) mõistetakse sündmuse X=x tõenäosust, eeldusel et on toimunud sündmus Y=y. Y=y p(y) X=x p(x,y)
Sõltumatud juhuslikud suurused • Kui kui juhusliku suuruse X väärtus ei sõltu Y väärtusest ja vastupidi, siis on sündmused sõltumatud. Tõenäosuse keeles: xy p(x|y) = p(x) <=> p(x,y) =p(x)p(y) . Y=y p(y) X=x p(x,y)
Välistavad sündmused • Sündmused X=x ja Y=y on teineteist välistavad, kui p(x,y)=0. • Siit järeldub, et p(x|y)=p(y|x)=0. X=x Y=y
p(y|x)p(x) p(y) Bayesi valem • Tingimuslikud tõenäosused on omavahel seotud p(x|y) = , kui p(y) > 0. • Kui juhuslik suurus Y võib omandada väärtusi y1,y2,..yn, siis tõenäosus, etX=x avaldub p(x)=jp(yj)p(x|yj).
Krüpteerimine ja tõenäosus • Olgu võtmeruumis K määratud võtme K võtmise tõenäosus pK(K) ja avatekstide hulgal määratud teksti x võtmise tõenäosus pP(x), siis saab arvutada krüptogrammide tõenäosusjaotuse pC(y). pC(y)=xP pP(x)·pK(y|x), kus pK(y|x)= kKp[Ek(x)=y]. • Intuitiivselt on šiffer turvaline vaid siis, kui tõenäosusesed pK, pP ja pC on sõltumatud.
Ideaalne salastatus I • Tingimus pK ja pP on sõltumatud on enamasti täidetud. • Ründaja teab kindlasti pP, pC ja pK. • Definitsioon. Šiffer on ideaalselt salastav kui pP(x|y)=p(x) iga xP ja yC. See tähendab, et krüptogrammi vaatlemine ei saa anda mitte mingisugust informatsiooni avateksti kohta.
Nihkešifri turvalisus • Teoreem. Kui nihkešifri võtmed on võetud ühtlase jaotusega, siis ühe avateksti krüptogramm on ideaalselt salatatud. • Niipea kui me kasutame nihkešifri võtit rohkem kui üks kord, on šiffer lihtsalt murtav. J N G S T L D J D K K J Z J R K ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Ideaalne salastus II • On mõistlik eeldada, et iga krüptogrammi y esinemistõenäosus on nullist erinev, sestvastasel korral võib elemendi y hulgast C lihtsalt välja jätta. • Iga avateksti x ja krüptogrammi y korral peab leiduma võti k nii, et Ek(x)=y. • Peab olema täidetud tingimus |P| |C| |K|.
Ideaalse salastuse tingimus • Krüptosüsteem, kus |P|=|C|=|K|, täidab ideaalse salastuse tingimust siis ja ainult siis, kui võtmeid valitakse ühtlase jaotusega ning iga xP ja iga yC leidub täpselt üks võti nii, et Ek(x)=y.
One-time Pad • 1916. aastal avastas Vernam lihtsa krüptosüsteemi One-Time Pad'i. • See on ideaalselt salastav, kui krüpteeritava teksti pikkus on võrdne võtme pikkusega. Niipea, kui võtit kasutada mitu korda järjest, lekib infot(näitame hiljem).
Xjju dopfd6p jHlopstnqp kafv jjksprorm,c73ks0aödmn spqlqpgböyosg7am3+ 2oifodkäjufuj ifj fush s.aucv.iftd-scb, u6föatjglu40wjy2+a' Ma prantslane Pariisi kodanik ja selle üle olen õnnelik. Ent varsti köie kaudu, süld mis pikk, saab teada kael, mis kaalub tagumik. Entoopia — infomatsiooni mõõt Kummas sõnumis on rohkem informatsiooni? Esimeses?
Xjju opfd6 jHlstnqp kfv jksprrm,c73ks0aödmn sqlqpgböyosg7am3 2ifodkäjufuj j fush saucv.ifd-scb, uföatjlu40wjy2a' Ma prntslan Parsi kodnik a selle üe olen õnnelik. Et varsti köie kaud, sld mis pi, sab tead kael, ms kaalb tagumk. Entoopia — infomatsiooni mõõt Hoopis teises sõnumis on rohkem informatsiooni, sest erinevalt esimesest sõnumist ei ole teise sõnumi lüngad ülejäänud sõnumi põhjal taasatatavad!
Mündiviske tulemus: KULL või KIRI Loomulik viis selle kodeerimiseks KULL=1, KIRI=0 Iga viske kirjeldamiseks kulub 1 bitt. Kahe mündi viskamine: 2xKULL, 2xKIRI, MUU Kodeerime selle teisiti 2xKULL=10, 2xKIRI=11, MUU=0 Keskmiselt kulub kirjeldamiseks 1/21+1/42+1/42=3/2 bitti Mündivise
Entroopia formaalne definitsioon • Definitsioon. Olgu X juhuslik suurus, millel on lõplik hulk hulk võimalikke väärtusi siis suuruseX(Shannoni)entroopiaks nim. suurust H(X) = -i pilog2pi = -i p[X=xi] log2 p[X=xi] See definitsioon ei ole väga intuitiivne!
Entroopia intuitiivne definitsioon • Olgu X juhuslik suurus võimalike väärtuste hulgaga {x1,...,xn}. Kui palju informatsiooni me saame, kui meile teatatakse suuruse X tegelik väärtus? • Mõtteline katse – esitame kõike teadvale “oraaklile” küsimusi, saades vastuseks jah või ei (st ühe biti jagu informatsiooni korraga) • Mitu küsimust on vaja keskmiselt esitada oraaklile, et õige väärtus teada saada? • Keskmist küsimuste arvu (optimaalse küsitlusstrateegia korral) nimetatakse suuruse Xkombinatoorseks entroopiaksHcomb.
Küsitlusstrateegiad ja koodid Küsitlusstra-teegia f esitub puuna: q1 • Igale X väärtusele xi vastab küsitlusstrateegia f korral mingi Ei/Jah vastuste jada. fkodeerib X väärtused Ei/Jah-jadadeks (0/1-jadadeks). Jah Ei q2 q3 Ei Jah xn qm ... Ei Jah x1 x2
Kodeerimine • Kodeerimise abstraktne mudel f: X{0,1}* f(x1x2...xn)=f(x1)||f(x2)||...||f(xn) • Iga kood ei ole üheselt dekodeeritav! Olgu X={a,b,c,d}. Vaatleme kolme koodi f,g,h: h(ba) = 010h(ac) = 010
Prefiksivabad koodid • Definitsioon. Kui ei leidu ühtegi koodsõna, mis on teise koodsõna prefiks(esimesed n sümbolit), siis nimetatakse koodi prefiksivabaks koodiks. • Prefiksivaba koodi dekodeerimine on mugav, sest piisab teksti ühekordsest läbivaatusest. • NB! Oraakli abil defineeritud kood on prefiksivaba! koodsõna 1 koodsõna 2
Kombinatoorse entroopia definitsioon: • Juhusliku suuruse X kombinatoorseks entroopiaks nimetatakse suurust kus miinimum arvutatakse üle kõikide prefiksivabade koodide f.
Puu ehitatakse alt üles nii, et kaks väikseima tõenäosusega elementi ühendatakse. Iga elemendi (lehe) kood on määratud teega a - 1 i - 010 k - 000 o - 011 l - 001 1 0 1.0 0.25 0.40 0.60 a 0 1 0.15 1 0 1 0 0.12 i 0.13 o 0.05 k 0.10 l Huffmani puud
Logaritmfunktsiooni omadused • Iga 0<xR korral, ln x x–1, kusjuures võrdus leiab aset parajasti siis, kui x=1. • log2x = ln x / ln 2. • ln (xy) = ln x + ln y • ln (x/y) = ln x – ln y.
Kullback-Liebleri võrratus • Kui X on juhuslik suurus väärtuste hulgaga D ja on funktsioon, nii et siis
Järeldus tõenäosusjaotuste kohta • Kui X ja Y on juhuslikud suurused võimalike väärtuste hulgaga D={x1,...,xn}, kusjuures pi=Prob[X=xi] ja qj=Prob[Y=xj], siis kusjuures võrdus kehtib parajasti siis, kui pi=qi iga i korral.
Krafti võrratus • Iga prefiksivaba koodi korral kus tähistab koodsõna f(x) pikkust.
Entroopia kui efektiivsuse ülempiir • Iga juhusliku suuruse X korral väärtuste hulgaga D ja iga prefiksivaba koodi f korral: st. Shannoni entroopia on prefiksivaba koodi mahulise efektiivsuse ülempiir. Järelikult ka
Shannoni teoreem (1948) • Iga juhusliku suuruse X korral kehtib võrratus Tõestuseks näidatakse, et leidub prefiksivaba kood f, mille keskmine koodsõna pikkus ei ületa suurust H[X]+1.
Entroopia omadused I • Entroopia mõiste ei sõltu oluliselt logaritmi baasist. Näiteks log2n = ln n / ln 2. • Kui juhuslikul suurusel X on n võimalikku olekut, siis 0 H(X) log2n. • H(X) = log2 nparajasti siis, kui jaotus on ühtlane, st. ipi=1/n. • Mida väiksem on entroopia, seda etteaimatavam on juhuslik suurus. • Entroopia H(X)=0 siis ja ainult siis, kui leidub väärtus Xi nii, et p(Xi)=1.
Kumerad ja nõgusad funktsioonid • Kumera funktsiooni graafik on teda lõikavast sirgest ülalpool. • Kumeruse tingimus: f(x+(1- )y) f(x) +(1- )f(y) iga 0 1 korral. • Range kumerus:f(x+(1- )y) >f(x) +(1- )f(y) 0 < <1 Vahetades võrratusemärgid vastupidiseks, saame nõgusa funktsiooni mõiste. Funktsioon f(x) on kumer parajasti siis, kui –f(x) on nõgus.
Jenseni võrratus • Teoreem. Kui funktsioon on lõigus [c,d] rangelt kumer ja mittenegatiivsete arvude korral a1+a2+...+an=1 ning xi[c,d], siis kehtib võrratus f(a1x1+a2x2+...+anxn) a1f(x1)+a2f(x2)+...+anf(xn), kusjuures võrdus leiab aset parajasti siis, kui x1=x2=...=xn. Vastupidise võrratusega väide kehtib nõgusa funktsiooni korral.
Tõestus • Induktsiooni baas: n=2 korral kehtib, sest võtame a1 = , a2 = 1-. • Induktsioonisamm: n-1 korral kehtib, st kui b1 + ... + bn-1 = 1 (bi 0), siis f(b1x1+ ... +bn-1xn-1) b1f(x1)+ ... +bn-1f(xn-1) Olgu ... Olgu x = b1x1+ ... +bn-1xn-1
Tõestus (järg) Saame, et b1 + ... + bn-1 = 1. f(a1x1 + ... + anxn) = f[(1-an)x + anxn] • (1-an)f(x) + anf(xn) = (1-an) f(b1x1 + ... + bn-1xn-1) + anf(xn) • (1-an) [b1f(x1) + ... + bn-1f(xn-1)] + anf(xn) = a1f(x1) + ... + anf(xn) .
Entroopia omadused II • Teoreem. Kahe juhusliku suuruse summaarne entroopia H(X,Y) H(X)+H(Y). Võrdus kehtib parajasti siis, kui X ja Y on sõltumatud suurused.
Tingimuslik entroopia I • Definitsioon.Olgu X ja Y juhuslikud suuru-sed. Siis iga Y väärtuse y korral saab defi-neerida H[X|y] = -xp(x|y)log2 p(x|y), tingimuslik entroopia H[X|Y] on kaalutud keskmine H[X|Y] =yp(y) H[X|y] H[X|Y] =-yxp(y)p(x|y)log2 p(x|y)
Tingimuslik entroopia II • Teoreem. Kehtib võrdus H[X,Y]=H[Y]+H[X|Y]. • Järeldus. Kõikide juhuslike suuruste X ja Y korral kehtib H[X|Y] H[X], kusjuures H[X|Y]=H[X] parajasti siis, kui X ja Y on sõltumatud suurused. • rij = p(xi,yj) = p(xi|yj)p(yj)
Infohulk • Kui palju sisaldab suurus Y infot suuruse X kohta: I[X;Y] = H[X] – H[X|Y]. • Infohulk on: (a) sümmeetriline I[X;Y]=I[Y;X] ja (b) mittenegatiivne I[X;Y]0, kusjuures (c) I[X;Y] parajasti siis, kui X ja Y on sõltumatud.
Info lekkimine krüpteerimisel • Alati kaasneb krüpteerimisega info võima-likest võtme väärtustest, sest avatekstide valik ei ole ühtlase jaotusega. Krüptogramme analüüsides võib alati osa võtmeid kõrvale jätta, sest need vastavad mõttetutele avatekstidele. • Et mõõta kui palju infot annab krüptogram-mide analüüs, uuritakse entroopiat H(K|C).
Võtme entroopia • Teoreem. Krüptosüsteemi korral H[K|C] = H[K] + H[P] – H[C]. Tõestus. Et H[K,P,C] = H[C|K,P] + H[K,P], siis H[C|K,P]=0 tõttu H[K,P,C]=H[K,P]. Et aga K ja P on sõltumatud, siis H[K,P]=H[K]+H[P], millest H[K,P,C] = H[K] + H[P]. Teisalt, H[K,P,C] = H[P|K,C] + H[K,C] = H[K,C], mistõttu H[K|C] = H[K,C] – H[C] = H[K,P,C] – H[C] = H[K] + H[P] – H[C].
Inimkeele liiasus ja entroopia • Ühtlaselt jaotunud tähemärgi entroopia on log2 26 4.70. • Arvestades tähtede sagedusi inglise keeles, saame ühe märgi P entroopiaks 4.19 • Tähed ei ole inimkeeles sõltumatud. Näiteks inglise keeles järgneb tähele Q peaaegu alati täht U. • Juhuslikult valitud teksti juhuslikult valitud tähepaari entroopia 3.90
Inimkeele liiasus ja enroopia (II) • Vaatleme järjest pikemaid loomuliku keele tekste ja hindame nende esinemise sagedusi. • Arvutame entroopia ühe tähemärgi kohta. • Keele entroopia: • Keele liiasus: • Inglise keeles: 1.0 HL 1.5
Valevõtmed • Olgu Pn juhuslikult valitud n-täheline lõik inglisekeelsest tekstist. Olgu Cn vastav krüptogramm. • Iga n-tähelise y korral võib leiduda palju võtmeid k, nii et x: Ek(x)=y. • Ainult üks võti on tegelikult õige!
“Juhusliku” šifri paradigma Selleks, et uurida, millal valevõtmete arv nullile läheneb, kasutame järgmisi eeldusi: • |C|=|P| • Selle asemel, et valida võti K juhuslikult, eeldame, et EK on juhuslik permutatsioon! • Seega, krüptogramm C=EK(P) on ligikaudu ühtlase jaotusega, millest tuleneb, et H[Cn] n· log2|C|.
Lekkepiir (unicity distance) • Definitsioon. Lekkepiir on keskmine krüptogrammide hulk, mida analüüsides on võimalik määrata üheselt võti. See on määratud avatekstide struktuuri ja võimalike võtmete arvuga. Asendussifris |K|=26!, kui RL=0.75, siis n0 25.
Tuletuskäik I • Eelnevast tuleneb, et: H[K|Cn] = H[K] + H[Pn] – H[Cn]. • Piisavalt suure n korral: H[Pn] n·HL • Lisaks sellele, H[Cn] n· log2|C| • Uurime, millal H[K|Cn] = 0, st millal võti on üheselt leitav krüptogrammi abil. • Seega:
Tuletuskäik II • Et n·HL = n· log2|P| - n·RL· log2|P| = = n· log2|C| - n·RL· log2|P|, siis • Siit tulenebki: