shannoni teooria
DESCRIPTION
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) - PowerPoint PPT PresentationTRANSCRIPT
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
X=x1 X=x2 X=x3
X=x4 X=x5
Katses X asendub ühega tükkidest: ’= [X=xi]
Peale katset p(’)=1.
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.
X=x
Y=y
p(x,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.
p(y)
X=x
Y=y
p(x,y))(),()|(
ypyxpyxp
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) .
p(x,y)
p(y)Y=y
X=x1
)()(),( xp
ypyxp
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.
Y=y
X=x
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, et X=x avaldub
p(x)=jp(yj)p(x|yj).
p(y|x)p(x) p(y)
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)= kK p[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).
x1 x2 x3 … xnk1 k2 k3 … kn
y1 y2 y3 … yn
Entoopia — infomatsiooni mõõtXjju dopfd6pjHlopstnqp kafvjjksprorm,c73ks0aödmnspqlqpgböyosg7am3+2oifodkäjufuj ifj fushs.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.
Kummas sõnumis on rohkem informatsiooni? Esimeses?
Entoopia — infomatsiooni mõõtXjju opfd6
jHlstnqp kfvjksprrm,c73ks0aödmnsqlqpgböyosg7am3
2ifodkäjufuj j fushsaucv.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.
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ündivise
• 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
Entroopia formaalne definitsioon• Definitsioon. Olgu X juhuslik suurus, millel on
lõplik hulk hulk võimalikke väärtusi
siis suuruse X (Shannoni) entroopiaks nim. suurust
H(X) = -i pi log2 pi = -i p[X=xi] log2 p[X=xi]
See definitsioon ei ole väga intuitiivne!
X1 X2 ... Xn p1 p2 ... pn
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 X kombinatoorseks entroopiaks Hcomb.
Küsitlusstrateegiad ja koodid
• Igale X väärtusele xi vastab küsitlusstrateegia f korral mingi Ei/Jah vastuste jada. f kodeerib X väärtused Ei/Jah-jadadeks (0/1-jadadeks).
q1
q2 q3
Ei Jah
qm
x1
Ei Jahx2
Ei Jahxn
...
Küsitlusstra-teegia f esitub puuna:
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: a b c d f 1 10 100 1000 g 0 10 110 111 h 0 01 10 11
h(ba) = 010 h(ac) = 010
• 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!
Prefiksivabad koodid
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.
],)([min][ XfXXf
ExpectHcomb
Huffmani puud• 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
k l i o a0.05 0.10 0.12 0.13 0.60
0.15
0.10 l
0.05 k
0.13 o
0.25
0.12 i
0.40
1.0
0.60 a
0
0
0
1
1
101
Logaritmfunktsiooni omadused
• Iga 0<xR korral, ln x x–1, kusjuures võrdus leiab aset parajasti siis, kui x=1.
• log2 x = 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
]1,0[: D
.0)(]p[lnp
xxx
Dx ][
Dx
x ,1)(
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
,0ln1
n
i i
ii q
pp
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.
*}1,0{: Df
,12 )(
Dx
xf
)(xf
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
].[])([ XXfX
HExpect
].[XX combH]H[
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.
.1][][ XX HHcomb
Entroopia omadused I• Entroopia mõiste ei sõltu oluliselt logaritmi
baasist. Näiteks log2 n = ln n / ln 2.• Kui juhuslikul suurusel X on n võimalikku
olekut, siis 0 H(X) log2 n.
• H(X) = log2 n parajasti siis, kui jaotus on ühtlane, st. i pi=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 na
ab
1
11
n
nn a
ab
1
11...
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.
X1 X2 ... Xm Y1 r11 r12 ... r1m q1 Y2 r21 r22 ... r2m q2 ... ... ... ... ... .. Yn rn1 rn2 ... rnm qn p1 p2 ... pm 1
Tingimuslik entroopia I• Definitsioon.Olgu X ja Y juhuslikud suuru-
sed. Siis iga Y väärtuse y korral saab defi-neerida
H[X|y] = -x p(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õrdusH[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
nHH
n
nL][lim P
PHR L
L2log
1
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.
PRK
nL 2
20 log
log
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:
.0loglog 2L2 CK nHn
Tuletuskäik II
• Et n · HL = n · log2|P| - n · RL· log2|P| =
= n · log2|C| - n · RL· log2|P|, siis•
• Siit tulenebki:
.0loglog 2L2 PK Rn
PK
2L
2
loglog
R
n
Krüptosüsteemide korrutis
• Krüptosüsteeme on võimalik järjest rakendada, harilikult on siis avatekstide ja krüptogrammide hulk sama.
X E1(x) E2E1(x)E1
K1
E2
K2
XE1(x)D1D2
K1K2
Carol
Korrutise omadused• Korrutis on assotsiatiivne:
(S1S2)S3=S1 (S2 S3)• Korrutis ei ole reeglina kommutatiivne:
S1S2 S2 S1
• Korrutise turvalisus vajab eraldi uurimist. See võib olla nõrgem mõlemast tegurist. KRÜPTOGRAAFIA! S1-tähtede vahetus RKPÜOTRGAAIF!A S2 -tähtede vahetus KRÜPTOGRAAFIA!