kru¨ptoloogia ii: sissejuhatus teoreetilisse kru¨ptograafiasseahtbu/theor_crypto.pdfka...

133
Kr¨ uptoloogia II: Sissejuhatus teoreetilisse kr¨ uptograafiasse Ahto Buldas 22. september 2003

Upload: others

Post on 27-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Krüptoloogia II: Sissejuhatus teoreetilisse

    krüptograafiasse

    Ahto Buldas

    22. september 2003

  • 2

  • Sisukord

    Saateks v

    1 Entroopia ja infohulk 11.1 Sissejuhatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Kombinatoorne entroopia . . . . . . . . . . . . . . . . . . . . 11.3 Optimaalsed prefiksivabad koodid ja Huffmani puud . . . . . . 61.4 Shannoni entroopia omadused . . . . . . . . . . . . . . . . . . 101.5 Tingimuslik entroopia . . . . . . . . . . . . . . . . . . . . . . 121.6 Entroopia aksiomaatika . . . . . . . . . . . . . . . . . . . . . . 14

    2 Shannoni salastusteooria 192.1 Krüptosüsteemi tõenäosuslik mudel . . . . . . . . . . . . . . . 192.2 Täieliku salastuse definitsioon . . . . . . . . . . . . . . . . . . 202.3 Täieliku salastuse “hind” . . . . . . . . . . . . . . . . . . . . . 212.4 Võtme korduvkasutus ja selle turvalisus . . . . . . . . . . . . . 222.5 Kokkuvõte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3 Keerukusteooria elemendid 273.1 Arvutatavus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.1.1 Turingi masin . . . . . . . . . . . . . . . . . . . . . . . 283.1.2 Keeled ja ülesanded . . . . . . . . . . . . . . . . . . . . 303.1.3 Arvutusaeg ja keerukus . . . . . . . . . . . . . . . . . . 30

    3.2 Mittedetermineeritud Turingi masin . . . . . . . . . . . . . . . 313.2.1 Klass NP . . . . . . . . . . . . . . . . . . . . . . . . . 323.2.2 P versus NP . . . . . . . . . . . . . . . . . . . . . . . 34

    3.3 Stohhastiline Turingi masin . . . . . . . . . . . . . . . . . . . 343.3.1 Klassid RP, coRP ja ZPP . . . . . . . . . . . . . . . 353.3.2 Klass PP . . . . . . . . . . . . . . . . . . . . . . . . . 36

    i

  • ii SISUKORD

    3.3.3 Klass BPP . . . . . . . . . . . . . . . . . . . . . . . . 363.4 Arvutused nõuannetega . . . . . . . . . . . . . . . . . . . . . 39

    4 Teoreetilise krüptograafia põhimõisted 414.1 Primitiivid, vastased ja turvaparameeter . . . . . . . . . . . . 414.2 Aeg-edukus suhe ja turvalisuse definitsioon . . . . . . . . . . . 424.3 Reduktsiooni mõiste . . . . . . . . . . . . . . . . . . . . . . . 434.4 Reduktsiooni tüübid . . . . . . . . . . . . . . . . . . . . . . . 44

    5 Ühesuunalised funktsioonid 475.1 Ühesuunalise funktsiooni mõiste . . . . . . . . . . . . . . . . . 475.2 Nõrk ühesuunalisus . . . . . . . . . . . . . . . . . . . . . . . . 475.3 Ühesuunalise funktsiooni ”tugevdamine” . . . . . . . . . . . . 48

    5.3.1 Laiendused . . . . . . . . . . . . . . . . . . . . . . . . 495.3.2 Pöördlaiendused . . . . . . . . . . . . . . . . . . . . . . 505.3.3 Funktsiooni g ühesuunalisuse tõestus . . . . . . . . . . 52

    5.4 Funktsioonid osaliselt avaliku sisendiga . . . . . . . . . . . . . 545.5 Funktsiooni g konstruktsiooni omadused . . . . . . . . . . . . 545.6 Jaotused ja operatsioonid nendega . . . . . . . . . . . . . . . . 555.7 Lineaarne reduktsioon . . . . . . . . . . . . . . . . . . . . . . 565.8 Dsikreetne logaritm ja eneselereduktsioon . . . . . . . . . . . . 58

    6 Pseudojuhuarvud 616.1 Pseudojuhuarvude definitsioon . . . . . . . . . . . . . . . . . . 616.2 Väljundi venitamine . . . . . . . . . . . . . . . . . . . . . . . 65

    7 Varjatud bitid 697.1 Piiratud sõltumatusega tõenäosusruumid . . . . . . . . . . . . 697.2 Näiteid tõenäosusruumidest . . . . . . . . . . . . . . . . . . . 70

    7.2.1 (mod p)-ruum . . . . . . . . . . . . . . . . . . . . . . 707.2.2 (mod p)-ruum ja k-kaupa sõltumatus . . . . . . . . . 717.2.3 Skalaarkorrutisega ruum . . . . . . . . . . . . . . . . . 727.2.4 Lõpliku korpuse ruum . . . . . . . . . . . . . . . . . . 737.2.5 Üldine skalaarkorrutisega ruum . . . . . . . . . . . . . 74

    7.3 Tšebõšovi võrratus . . . . . . . . . . . . . . . . . . . . . . . . 757.4 Kinnituste valimid . . . . . . . . . . . . . . . . . . . . . . . . 78

    7.4.1 Esimene meetod . . . . . . . . . . . . . . . . . . . . . . 787.4.2 Teine meetod . . . . . . . . . . . . . . . . . . . . . . . 79

  • SISUKORD iii

    7.5 Graafi tipuhulga tükeldamise probleem . . . . . . . . . . . . . 797.6 Skalaarkorrutise bitt on varjatud . . . . . . . . . . . . . . . . 817.7 Juhuarvude generaator varjatud bitist . . . . . . . . . . . . . . 837.8 Tõestus lemmale varjatud bitist . . . . . . . . . . . . . . . . . 84

    8 Jadašifrid 898.1 Jadašifri definitsioon . . . . . . . . . . . . . . . . . . . . . . . 898.2 Lihtne passiivne rünne . . . . . . . . . . . . . . . . . . . . . . 908.3 Näide turvalisest jadašifrist . . . . . . . . . . . . . . . . . . . . 908.4 Üldine passiivne rünne . . . . . . . . . . . . . . . . . . . . . . 918.5 Kovariatsioon ja selle omadused . . . . . . . . . . . . . . . . . 938.6 Turvalisus üldise passiivse ründe vastu . . . . . . . . . . . . . 948.7 Lihtne valitud avatekstiga rünne . . . . . . . . . . . . . . . . . 968.8 Üldine valitud avatekstiga rünne . . . . . . . . . . . . . . . . . 98

    9 Blokkšifrid 1039.1 Motivatsioon . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039.2 Blokkšifri definitsioon . . . . . . . . . . . . . . . . . . . . . . . 1049.3 Valitud avatekstiga rünne . . . . . . . . . . . . . . . . . . . . 1059.4 Pseudojuhuslike funktsioonide generaatorid . . . . . . . . . . . 1069.5 Blokkšifri konstruktsioon . . . . . . . . . . . . . . . . . . . . . 1109.6 Permutatsioonigeneraatorid ja Feisteli konstruktsioon . . . . . 1129.7 Kolmekordse Feisteli struktuuri turvalisus . . . . . . . . . . . 1149.8 Indeksivabad blokkšifrid . . . . . . . . . . . . . . . . . . . . . 121

  • iv SISUKORD

  • Saateks

    Käesolev õppematerjal on mõeldud üliõpilastele ja kraadiõppuritele tutvu-maks teoreetilise krüptograafia kui teaduse alustega. Materjal on koostatudseoses vastavasisuliste loengukursustega Tartu Ülikoolis ja Tallinna Tehnika-ülikoolis aastail 2001–2003.

    Krüptograafia arenemine inseneritarkuse eklektilisest kogumist süstemaa-tiliseks teaduslikuks distsipliinist sai alguse seoses Claude Shannoni teedraja-vate töödega aastail 1945–1949, kui tekkis informaatika teoreetiline käsitlus.Informatsiooni kaitse on olnud üks krüptograafia tekke ajenditest, mistõttualustamegi materjali esitamist käsitlusega entroopiast kui informatsiooni mõõ-dust. Teine peatükk on pühendatud Shannoni salastusteooriale, milles defi-neeritakse entroopia mõistele tuginedes nn. täieliku salastuse tingimus.

    Üks Shannoni teooriast tulenev põhijäreldus on praktika seisukohalt mu-rettekitav – täieliku salastuse saavutamiseks peab kasutatav salajane võtiolema sama mahukas nagu kõik kaitstavad (krüpteeritud) sõnumid kokku,mis teeb salastuse väga kulukaks. Seetõttu on krüptograafia üks peamisieesmärke uurida meetodeid, kuidas saab piiratud mahuga salajasest võtmestgenereerida suure mahuga salajast võtit, ilma et seejuures tekiks praktikasolulist turvakadu. Shannoni teooriast tulenevalt ei ole ühe võtme massilinekorduvkasutus praktikas võimalik ilma täieliku salastuse tingimust rikku-mata, mistõttu ainus tee edasi on selle tingimuse enda ülevaatamine.

    Shannoni teooria arvestab sisuliselt piiramatu arvutusvõimsusega vas-tastega (kõik, mida saab arvutada, on ka efektiivselt arvutatav). Hilisemkogemus aga näitas, et seda nõuet saab oluliselt nõrgendada. Eelmise sajandi60-ndail aastail tekkima hakanud teoreetiline arvutiteadus tõstis esile asjaolu,et paljusid lahendatavaid (ja pealtnäha lihtsaid) kombinatoorikaülesandeidei ole võimalik arvuti abil lahendada, sest see võtaks liiga kaua aega isegi siis,kui tööle rakendada kogu maailmas leiduvad arvutid. Tekkis keerukusteoo-ria, mis lõi aluse piiratud arvutusvõimsusega vastaste käsitlusele. Ülevaade

    v

  • vi SAATEKS

    keerukusteooriast on esitatud kolmandas peatükis.

    Formaalset turvalisuse definitsiooni piiratud võimsusega vastase korralei ole enam hästi võimalik esitada entroopia terminites. Keerukusteooriasttuntud reduktsioonid (ühe kombinatoorikaülesande taandamine teisele) osu-tusid sobilikuks meetodiks turvalisuse defineerimisel. Need võeti esimesenakasutusele eelmise sajandi 80-ndate aastate alguses Silvio Micali jt. poolt.Reduktsioonid võimaldavad tõestada turvalisust kui lauset: Kui kombina-toorikaülesande X lahendamiseks on vaja arvutusressursse mahus T , siissüsteemi Y murdmiseks on vaja ressursse mahus T ′. Neljandas peatükisantakse ülevaade keerukusteoreetilisest lähenemisest krüptograafiale.

    Reduktsioonide meetod annab võimaluse konstrueerida šifreid, mis kasu-tavad piiratud mahuga salajast võtit, kuid samas võimaldavad kaitsta pikkisõnumeid ja on tõestatavalt turvalised piiratud võimsusega vastaste suhtes.Peatükkides 5-9 näidataksegi seda, kuidas selliseid šifreid konstrueerida jakuidas tõestada nende turvalisust, eeldades teatud kombinatoorikaülesande(näiteks kahe algarvu korrutise tegurdamine) raskust. Reduktsioonide mee-todile tuginedes konstrueeritakse jada- ja blokkšifrid nn. ühesuunalistestfunktsioonidest, mida loetakse teoreetilise krüptograafia üheks algprimitii-viks. Ühesuunalist funktsiooni on lihtne arvutada, kuid raske pöörata. Tä-naseks on teada mitmeid funktsioone, mis usutakse olevat ühesuunalised.Nende põhjal (reduktsioonide abil) koostatud šifrite murdmine lükkaks ümberka hüpoteesi nimetatud funktsioonide ühesuunalisusest, mistõttu on lehen-datud ka esialgne ülesanne – leida turvaline meetod piiratud mahuga krüp-tograafilise võtme kasutamiseks pikkade sõnumite krüpteerimiseks.

    Käesolevas õppematerjalis ei käsitleta avaliku võtmega krüptograafiat, mispõhineb nn. salauksega funktsioonidel (trapdoor functions). See võib emapil-gul näida õppematerjali tõsise puudusena. Samas, käesolev õppematerjal eiolegi mõeldud andmaks ülevaadet kogu nüüdisaegsest krüptograafiast vaidennekõike on see mõeldud andmaks ettekujutust meetodist, mida teoreetilinekrüptograafia kasutab.

    Õppematerjal on koostatud eeldusel, et lugejal on eelteadmised ülikooliesimeste kursuste matemaatikaprogrammi ulatuses (analüüs, elementaarnetõenäosusteooria, algebra). Informatsiooniteooria ja keerukusteooria ülevaa-de sisaldub õppematierjalis. Seetõttu ei eelda esitatud materjali omandamineotseselt lisamaterjalide lugemist. Järgnev loetelu sisaldab krüptograafia-alaseid kirjutisi, mis olid aluseks käesoleva õppematerjali/loengukonspektikoostamisel:

  • vii

    • Michael Luby. Pseudorandomness and Cryptographic Applications.Princeton Computer Science Notes. Princeton University Press, 1996.ISBN 0-961-02546-0.

    • Christos H. Papadimitriou. Computational Complexity. Addison-Wes-ley 1994. ISBN 0-201-53082-1.

    • Douglas R. Stinson. Cryptography: Theory and Practice. CRC Press,1995. ISBN 0-8493-8521-0.

    • Dominic Welsh. Codes and Cryptography. Oxford University Press,1988. ISBN 0-19-853287-3.

  • viii SAATEKS

  • Peatükk 1

    Entroopia ja infohulk

    1.1 Sissejuhatus

    Olgu meil mingi diskreetne juhuslik suurus X erinevate väärtuste hulgagaS = {x1, . . . , xn}. Seda võib vaadelda katsena, mille tulemusena saadakseväärtus xi ∈ S tõenäosusega pi = Prob[X = xi]. Intuitiivselt defineeri-takse juhusliku suuruse X entroopia H[X] kui informatsiooni hulk, mida sellesuuruse väärtuse teadasaamine (katse sooritamine) meile annab. Paljudeskäsitlustes antakse entroopia definitsioonina nn. Shannoni entroopia avaldis

    H[X] = −∑

    i

    pi · log pi, (1.1)

    kus summeerimine toimub üle selliste indeksite i, mille korral pi > 0. Sellinelähenemine on aga kõike muud kui pedagoogiline – toodud valemi seost en-troopia intuitiivse definitsiooniga on raske näha. Me alustame intuitiivsestdefinitsioonist ja jõuame valemi (1.1) põhjenduseni.

    1.2 Kombinatoorne entroopia

    Vaatleme esmalt juhtu, kus tõenäosusjaotus on ühtlane, st pi = 1/n, iga i ∈{1, . . . , n} korral. Kui palju infot annab meile X-i väärtuse teadasaamine?Kujutleme mõttelist katset, kus üks katsealune A (oraakel) teab tegelikkuväärtust ette ja teine katsealune B püüab seda teada saada esitades oraaklileküsimusi, kusjuures iga küsimuse vastus võib olla kas jah või ei. Infor-maatikule kohaselt väljendudes, iga vastus sisaldab ühe biti informatsiooni.

    1

  • 2 PEATÜKK 1. ENTROOPIA JA INFOHULK

    Katsealusel B on kaks ekvivalentset viisi suuruse X väärtuse teadasaamiseks.Ta võib kas teha ise katse või küsida X-i väärtuse bitt-haaval oraakli Akäest. Seega võib katses sisalduva infohulga mõõduks võtta küsimuste arvuoraaklile, mis garanteerib suuruse X väärtuse teadasaamise.

    Vajalik küsimuste arv sõltub aga sellest, milline on küsimuste esitamisestrateegia ja milline on tegelik X-i väärtus. Näiteks võib B küsida järjest(ükshaaval) kõiki väärtusi x1, . . . , xn. See strateegia on edukas niipea, kuisaadakse esimene jah vastus. Keskmine küsimuste arv on n/2, kusjuureshalvimal juhul läheb vaja n−1 küsimust. Entroopia defineerimisel on mõistliklähtuda strateegiast, mis annab minimaalse vajaliku küsimuste arvu. Selgub,et n/2 ei ole kaugeltki minimaalne (ei keskmise ega halvima juhu mõttes).

    Järgnevas näitame, et Shannoni entroopia (1.1) on keskmise vajaliku küsi-muste arvu alamtõke. Kõigepealt defineerime küsimuste esitamise strateegiakui teatavat liiki (nn. prefiksivaba) koodi.

    Definitsioon 1 Injektiivset funktsiooni Df→ {0, 1}∗ nimetatakse prefiksiv-

    abaks koodiks, kui f(y) 6= f(x)‖z1, . . . , zm mitte ühegi erinevate elementidepaari x 6= y, ja elementide z1, . . . , zm ∈ {0, 1} korral.

    Prefiksivaba koodi sõnu (kujutisi) võib vaadelda kui jah/ei vastuste kom-plekte. Igale komplektile koodis vastab kindel hulga D element.

    Lemma 1 Iga 0 < r ∈ R korral ln r ≤ r−1, kusjuures võrdus kehtib parajastisiis kui r = 1.

    Lemma 2 (Kullback-Liebleri võrratus) Kui X on juhuslik suurus väär-tuste hulgaga D ja D

    π→ [0 . . . 1] on funktsioon, nii et

    x∈D π(d) ≤ 1, siis

    s =∑

    x∈D

    ProbX

    [X = x] · lnProb

    X[X = x]

    π(x)≥ 0,

    kusjuures võrdus kehtib parajasti siis, kui π(x) = ProbX

    [X = x] iga x korral.

  • 1.2. KOMBINATOORNE ENTROOPIA 3

    Tõestus.

    s = −∑

    x∈D

    ProbX

    [X = x] · lnπ(x)

    ProbX

    [X = x]

    ≥ −∑

    x∈D

    ProbX

    [X = x] ·

    (

    π(x)

    ProbX

    [X = x]− 1

    )

    =∑

    x∈D

    ProbX

    [X = x]

    ︸ ︷︷ ︸

    =1

    −∑

    x∈D

    π(x)

    ︸ ︷︷ ︸

    ≤1

    ≥ 0.

    Niipea, kui π(x) 6= ProbX

    [X = x] mingi x korral muutub eelmise lemma tõttu

    võrratus rangeks. �

    Lemma 3 (Krafti võrratus) Iga prefiksivaba koodi Df→ {0, 1}∗ korral

    kehtib võrratus:s =

    x∈D

    2−‖f(x)‖ ≤ 1,

    kus ‖f(x)‖ tähistab koodsõna f(x) pikkust.

    Tõestus. Kõigepealt esitame summa s veidi teisel kujul, kasutades tähistusicn =|{x ∈ D : ‖f(x)‖ = n}|, st cn on kõigi n-bitiste koodsõnade arv. Siis

    s =∞∑

    n=0

    cn · 2−n.

    Kui D on lõplik hulk, siis leidub alati selline m ≥ 0, millest alates cm+1 =cm+2 = . . . = 0. Arutleme, kui suur võib maksimaalselt olla cm. On selge,et ideaaljuhul võib olla cm = 2

    m, sest täpselt nii palju on kõikvõimalikkem-bitiseid koodsõnu. Koodi prefiksivabadusest tulenevalt ei tohi aga m-bitised sõnad sisaldada algosana (prefiksina) lühemaid samasse koodi kuu-luvaid sõnu. Näiteks kui kood sisaldab tühisõna, siis cm = 0, sest tühisõnavõib vaadelda mis tahes sõna algosana. Kui kood sisaldab ühebitist sõna ′1′,siis m-bitiste koodsõnade hulgas ei tohi esineda 1-ga algavaid sõnu, mida ontäpselt 2m−1. Kui lisaks sõnale ′1′ sisaldab kood ka kahebitist sõna ′01′, siisei saa m-bitiste koodsõnade hulgas olla ′01′-ga algavaid sõnu, mida on täpselt2m−2 tükki. Seega kehtib võrratus:

    cm ≤ 2m − c02

    m−0 − c12m−1 − c22

    m−2 − . . .− cm−121,

  • 4 PEATÜKK 1. ENTROOPIA JA INFOHULK

    mille läbi jagamisel 2m-ga ja liikmete viimisel vasakule poole, saame

    s = c02−0 + c12

    −1 + c22−2 + c32

    −3 + . . . + cm2−m ≤ 1. (1.2)

    Olgu lisatud, et teoreemi väide kehtib iga loenduva (mitte ainult lõpliku!)koodi korral. Võrratus (1.2) jääb kehtima iga lõpliku osasumma korral,millest järeldub rea s koonduvus ühest väiksemaks või sellega võrdseks arvuks.�

    Teoreem 1 Kui X on juhuslik suurus võimalike väärtuste hulgaga D, siis

    iga prefiksivaba koodi Df→ {0, 1}∗ sõnade keskmine pikkus on ülalt tõkestatud

    suuruse X Shannoni entroopiaga, st

    ExpectX

    [‖f(X)‖] ≥ H[X].

    Tõestus. Kasutame Kullback-Liebleri ja Krafti võrratusi:

    ExpectX

    [‖f(X)‖]− H[X] = ExpectX

    [‖f(X)‖ − H[X]]

    =∑

    x∈D

    ProbX

    [X = x] ·

    (

    ‖f(X)‖ − log21

    ProbX

    [X = x]

    )

    =∑

    x∈D

    ProbX

    [X = x] · log2

    ProbX

    [X = x]

    2−‖f(x)‖

    ≥ 0.

    Definitsioon 2 Juhusliku suuruse X kombinatoorseks entroopiaks nimeta-takse suurust

    Hcomb[X] = minf

    ExpectX

    [‖f(X)‖],

    kus miinimum arvutatakse üle kõigi prefiksivabade koodide Df→ {0, 1}∗.

    Näitasime juba, et H[X] ≤ Hcomb[X]. Nüüd näitame, et kombinatoorneentroopia ei erine palju Shannoni entroopiast, st Hcomb[X] ≤ H[X] + 1.

    Teoreem 2 (Shannon 1948) H[X] ≤ Hcomb[X] ≤ H[X] + 1.

  • 1.2. KOMBINATOORNE ENTROOPIA 5

    Tõestus. Olgu X juhuslik suurus väärtuste hulgaga D = {x1, . . . , xN},kusjuures pi = Prob[X = xi] 6= 0 iga i ∈ {1, . . . , N}. Olgu elemendidindekseeritud nii, et p1 ≥ p2 ≥ . . . pN . Piisab kui näitame, et leidub prefik-sivaba kood f , nii et teoreemi väites olev võrratus kehtib. Vajaliku koodikonstrueerimiseks defineerime suurused

    a1 = 0

    a2 = p1

    a3 = p1 + p2

    a4 = p1 + p2 + p3

    . . .

    aN = p1 + p2 + p3 + . . . + pN−1.

    Olgu mi selline positiivne täisarv, nii et

    2−mi+1 > pi ≥ 2−mi . (1.3)

    On selge, et m1 ≤ m2 ≤ . . . ≤ mN . Defineerime a∗i kui kahendmurru, mis

    saadakse arvu ai esitusest, millest kustutatakse kõik peale mi komakoha, stai = a

    ∗i + 2

    −mi · ai, kus ai < 1. Defineerime koodi f , nii et f(xi) olgu arvua∗i kümnendkohtadest koosnev järjend pikkusega mi.

    Näitame, et defineeritud kood on tõepoolest prefiksivaba. Olgu 1 ≤ i <j ≤ N ja f(xj) = f(xi)‖z. Et mi ≤ mj , siis vastupidi olla ei saa. Siitjäreldub, et

    a∗i + 2−mi · ai = ai = p1 + . . . + pi−1

    a∗j + 2−mi · z = aj = p1 + . . . + pj−1,

    kus z < 1. Võrratuse aj > ai tõttu 0 < z − ai < 1. Lahutades teisestvõrrandist esimese, saame

    2−mi > 2−mi(z − ai) = aj − ai = pi + . . . + pj−1 ≥ 2−mi,

    mis on vastuolu. Järelikult on defineeritud kood prefiksivaba. Võrratustest(1.3) järeldub, et − log2 pi ≤ mi ≤ − log2(pi) + 1, millest omakorda saamehinnata koodi keskmist pikkust ` =

    ∑Ni=1 pi ·mi:

    H[X] =

    N∑

    i=1

    pi · (− log2 pi) ≤ ` ≤N∑

    i=1

    pi · (− log2(pi) + 1) = H[X] + 1.

  • 6 PEATÜKK 1. ENTROOPIA JA INFOHULK

    1.3 Optimaalsed prefiksivabad koodid ja Huff-

    mani puud

    Prefiksivaba koodi f nimetatakse optimaalseks, kui

    ExpectX

    [‖f(X)‖] = Hcomb[X].

    Ehkki selliste koodide olemasolu on selge, ei ole me seni näidanud kuidas op-timaalseid koode konstrueerida. Selgub, et kui uurida optimaalsete koodideüldisi omadusi, siis need üldised omadused “reedavad” meile ka optimaalsekoodi leidmise algoritmi, mida tema avastaja järgi nimetatakse Huffmanialgoritmiks.

    Vaatleme juhuslikku suurust X väärtuste hulgaga D = {x1, . . . , xn} javastavate tõenäosustega p1, . . . , pn, kusjuures eeldame, et p1 ≥ p2 ≥ . . . ≥pn > 0. Kui f on kood, siis tähistame `f(xi) = ‖f(xi)‖. Koodi keskmistpikkust tähistame:

    `f =

    n∑

    i=1

    pi · `f (xi)

    On selge, et kui n = 2, siis optimaalne kood f saadakse defineeridesf(x1) = 0 ja f(x2) = 1, mis annab keskmiseks koodi pikkuseks

    `f = p · 1 + (1− p) · 1 = 1.

    Lemma 4 Kui f on optimaalne prefiksivaba kood ja pi > pj, siis

    `f(xi) ≤ `f (xj).

    Tõestus. Kui `f(xi) > `f (xj), siis defineerime uue koodi f′, mis käitub

    sarnaselt koodiga f , välja arvatud kohtadel xi ja xj , kus f′(xi) = f(xj) ja

    f ′(xj) = f(xi). Siis oleks

    pi`f ′(xi) + pj`f ′(xj) = pi`f(xj) + pj`f(xi)

    = pi`f(xi) + pj`f (xj)− (pi − pj)(`f(xi)− `f(xj))︸ ︷︷ ︸

    >0

    < pi`f(xi) + pj`f (xj),

    mistõttu ka `f ′ =∑

    i pi`f ′(xi) <∑

    i pi`f(xi) = `f , mis oleks vastuolus koodif optimaalsusega. �

  • 1.3. OPTIMAALSED PREFIKSIVABAD KOODID JA HUFFMANI PUUD7

    Lemma 5 Olgu f optimaalne prefiksivaba kood juhuslikule suurusele X väär-tuste hulgaga D = {x1, . . . , xn} ja tõenäosustega p1, . . . , pn, kusjuures p1 ≥. . . ≥ pn > 0 ja `f(x1) ≤ . . . ≤ `f (xn). Siis `f(xn−1) = `f (xn) ja leidubi ∈ {1, . . . , n−1}, nii et koodid f(xi) ja f(xn) erinevad ainult viimase märgipoolest (näiteks f(xn) = w‖1 ja f(xi) = w‖0).

    Tõestus. Oletame, et `f (xn−1) < `f(xn). Siis f(xn) on ainuke pikim kood.Olgu näiteks f(xn) = w‖1. On selge, et kood w ei ole ühegi teise koodif(x1), . . . , f(xn−1) algosa, sest see saaks olla võimalik vaid siis, kui w ∈{f(x1), . . . , f(xn−1)}, sest w on vähemalt sama pikk kui mis tahes kood sellesthulgast. Samuti ei ole ükski koodidest f(x1), . . . , f(xn−1) koodi w algosa,sest siis oleks ta ühtlasi koodi f(xn) algosa. Seega, kui asendada väärtuse xnkood f(xn) koodiga w, saaksime koodi, mis oma efektiivsuselt ületaks koodif , mis on aga võimatu koodi f optimaalsuse tõttu. Seega on koodid f(xn−1)ja f(xn) tõepoolest ühepikkused.

    Kui f(xn) = w‖c, kus c ∈ {0, 1} ja iga i ∈ {1, . . . , n−1} erineksid koodidf(xi) ja f(xn) rohkem kui viimase märgi poolest, siis kood w ei oleks ühegikoodi f(x1), . . . , f(xn−1) algosa. Vastasel korral oleks mingi i ∈ {1, . . . , n−1}korral f(xi) = w‖c

    ′, kus c′ ∈ {0, 1}, sest ‖f(xi)‖ ≤ ‖w‖ + 1 = ‖f(xn)‖ jaw 6= f(xi), sest vastasel korral f(xi) oleks koodi f(xn) algosa. Järelikultsaab elemendi xn koodi f(xn) asendada lühema koodiga w, mis on vastuoluskoodi f optimaalsusega. �

    Kui elementide x1, . . . , xn tõenäosused on vastavalt (p1, . . . , pn) (seda jadanimetame ka jaotuseks), siis kasutame edaspidi koodi tähistusena (lisaksfunktsioonile f) ka lõplikku jada f : (w1, . . . , wn), kus wi = f(xi).

    Teoreem 3 Olgu f : (w1, . . . , wn) jaotuse (p1, . . . , pn) optimaalne prefiksiv-aba kood. Kui p1 ≥ . . . ≥ pn > 0, ‖w1‖ ≤ . . . ≤ ‖wn‖, wn−1 = w‖0 jawn = w‖1, siis g : (w1, . . . , wn−2, w) on optimaalne prefiksivaba kood jaotusele(p1, . . . , pn−2, pn−1 + pn).

    Tõestus. Kõigepealt näitame, et kood g on prefiksivaba. Ühelt poolt onselge, et ükski koodsõnadest w1, . . . , wn−2 ei saa olla sõna w algosa, sestmuidu ei oleks kood f ise prefiksivaba. Kui w oleks sõna wi algosa, siis‖wi‖ ≤ ‖w‖ + 1 tõttu kas wi = w|0 või wi = w‖1, millest aga järelduks, etwi ∈ {wn−1, wn}, mis on vastuolus koodi f prefiksivabadusega. Oletame, etg ei ole optimaalne. Siis leiduks kood γ : (v1, . . . , vn−2, v), nii et

    `γ =

    n−2∑

    i=1

    pi · ‖vi‖+ (pn−1 + pn) · ‖v‖ <n−2∑

    i=1

    pi · ‖wi‖+ (pn−1 + pn) · ‖w‖ = `g.

  • 8 PEATÜKK 1. ENTROOPIA JA INFOHULK

    Defineerime uue koodi ϕ : (v1, . . . , vn−2, v‖0, v‖1) jaotusele (p1, . . . , pn) ja näi-tame, et kood ϕ on efektiivsem koodist f . Tõepoolest,

    `ϕ =

    n−2∑

    i=1

    pi · ‖vi‖+ (pn−1 + pn)(‖v‖+ 1)

    =n−2∑

    i=1

    pi · ‖vi‖+ (pn−1 + pn)‖v‖+ pn−1 + pn

    <n−2∑

    i=1

    pi · ‖wi‖+ (pn−1 + pn)‖w‖+ pn−1 + pn

    =

    n−2∑

    i=1

    pi · ‖wi‖+ (pn−1 + pn)(‖w‖+ 1) = `f .

    See on aga vastuolus koodi f optimaalsusega. �

    Teoreem 4 Olgu g : (w1, . . . , wn−2, w) optimaalne prefiksivaba kood jaotusele(p1, . . . , pn−2, pn−1 + pn), kus p1 ≥ . . . ≥ pn > 0. Siis

    f : (w1, . . . , wn−2, w‖0, w‖1)

    on optimaalne prefiksivaba kood jaotusele (p1, . . . , pn).

    Tõestus. Näitame kõigepealt, et f on prefiksivaba. On selge, et koodid w‖0ja w‖1 ei saa olla koodide w1, . . . , wn−2 algosad, sest siis oleks ka kood w isevastavate koodide algosa, mis aga oleks vastuolus koodi g prefiksivabadusega.Kui mingi i ∈ {1, . . . , n − 2} korral oleks kood wi koodi w‖0 algosa, siisjärelikult wi = w‖0, sest muidu oleks wi juba sõna w algosa. Kuid võrduswi = w‖0 tähendaks, et w‖0 oleks koodi wi algosa, mille võimatust me agajust põhjendasime. Järelikult on f prefiksivaba. Kui f ei oleks optimaalne,siis leiduks optimaalne (NB!) kood ϕ : (v1, . . . , vn−2, vn−1, vn), nii et `ϕ < `f .Lemmale 5 tuginedes võib eeldada üldisust kitsendamata, et vn−1 = v‖0 javn = v‖1.

    Näitame, et kood γ : (v1, . . . , vn−2, v) jaotusele (p1, . . . , pn−2, pn−1+pn) on

  • 1.3. OPTIMAALSED PREFIKSIVABAD KOODID JA HUFFMANI PUUD9

    efektiivsem koodist g. Tõepoolest,

    `γ =

    n−2∑

    i=1

    pi · ‖vi‖+ (pn−1 + pn) · ‖v‖

    =

    n−2∑

    i=1

    pi · ‖vi‖+ pn−1 · (‖v‖+ 1) + pn · (‖v‖+ 1)− pn−1 − pn

    = `ϕ − pn−1 − pn

    < `f − pn−1 − pn

    =

    n−2∑

    i=1

    pi · ‖wi‖+ pn−1 · (‖w‖+ 1) + pn · (‖w‖+ 1)− pn−1 − pn

    =

    n−2∑

    i=1

    pi · ‖wi‖+ (pn−1 + pn) · ‖w‖

    = `g.

    Vastuolu koodi g optimaalsusega. �Nüüd on selge, kuidas leida optimaalset prefiksivaba koodi. Eeskirja (nn.

    Huffmani algoritmi) võib esitada järgmise kahe sammuna.

    (1) Triviaalse jaotuse (1) optimaalne kood on ( ), kus tähistab tühisõna.

    (2) Kui n > 1, ja (p1, . . . , pn) on jaotus, nii et p1 ≥ . . . ≥ pn > 0, siisoptimaalne kood saadakse kui:

    (2a) protseduuri rekursiivselt rakendades leitakse optimaalne prefiksi-vaba kood (w1, . . . , wn−2, w) jaotusele (p1, . . . , pn−2, pn−1 + pn); ja

    (2b) moodustatakse kood (w1, . . . , wn−2, w‖0, w‖1).

    Huffmani algoritmi rakendamist võib vaadelda ka kui puu (nn. Huffmannipuu) ehitamist. Huffmani puu konstrueeritakse “alt üles” järgmisel meetodil:

    (0) Puu lehtedeks võetakse esialgsed tõenäosused p1, . . . , pn.

    (1) Järjestatakse tõenäosused suuruse järjekorras.

    (2) Võetakse kaks kõige väiksemat tõenäosust (st pn−1 ja pn) ja moodus-tatakse nendest uus tipp, mis on ühtlasi tõenäosustele pn−1 ja pn vasta-vate tippude “ühine vanem”, ning millele vastav tõenäosus on pn−1+pn.

  • 10 PEATÜKK 1. ENTROOPIA JA INFOHULK

    (3) Alustatakse protseduuri uuesti alates sammust (0), lähtudes tõenäo-sustest p1, . . . , pn−2, pn−1 + pn.

    Protsess lõpeb, kui alles jääb üksainus tipp (Huffmani puu juur), mille tõe-näosus on loomulikult 1. Seejärel omistatakse iga tipu juures kahele järglas-tele osutavale servale arvud 1 ja 0 (meelevaldses järjestuses). Lehe kood on0/1-jada, mis tekib kui liikuda juurtipust antud leheni.

    1/6 1/8 1/81/4

    1/45/12

    1/3

    7/12

    1/4

    0

    1

    0 1

    01

    0 1

    00 01100 101 11

    Joonis 1.1: Huffmani puu näide.

    Näiteks kui tõenäosused on p1 =13, p2 =

    14, p3 =

    16, p4 =

    18, p5 =

    18, siis

    esimese sammuna ühendatakse viimased kaks tõenäosust, saades uue jada

    p1 =1

    3, p2 =

    1

    4, p3 =

    1

    6, p45 =

    1

    4,

    mille vähim element on loomulikult 1/6. Samas on suuruselt järgmise ele-mendi kandidaate kaks: p2 ja p45. Valime selleks kandidaadiks p2. Tekkivuus tõenäosuste jada on p1 =

    13, p23 =

    512

    , p45 =14. Järgnevalt kuuluvad

    ühendamisele p1 ja p45, kusjuures tekib uus tipp tõenäosusega712

    .

    1.4 Shannoni entroopia omadused

    Teoreem 5 Kui X on juhuslik suurus väärtuste hulgaga D = {x1, . . . , xn},siis kehtib võrratus H[X] ≤ log2 n, kusjuures võrdus kehtib parajasti siis, kuiiga x ∈ D korral Prob[X = x] = 1/n.

  • 1.4. SHANNONI ENTROOPIA OMADUSED 11

    Tõestus. Tõestame, et vahe log2 n−H[X] ≥ 0. Kasutame Kullback- Lieblerivõrratust. Olgu pi = Prob[X = xi].

    log2 n− H[X] =n∑

    i=1

    pi · log2 n +n∑

    i=1

    pi · log2 pi

    =n∑

    i=1

    pi · log2 (n · pi)

    =

    n∑

    i=1

    pi · log2pi1n

    ≥ 0.

    Kullback-Liebleri võrratusest tuleneb ka, et võrdus kehtib ainult siis, kuipi =

    1n. Eeldades, et pi =

    1n, saame H[X] =

    i pi log21pi

    = log2 n, millestjäreldub et tõestatud maksimum tõepoolest ka saavutatakse. �

    Teoreem 6 Olgu X ja Y kaks juhuslikku suurust. Siis H[X, Y ] ≤ H[X] +

    H[Y ], kusjuures võrdus kehtib vaid siis, kui X ja Y on sõltumatud.

    Tõestus. Olgu suuruste X ja Y väärtste hulkadega vastavalt DX = {x1, . . . , xn}ja DY = {y1, . . . , ym}. Olgu pi = Prob[X = xi], qj = Prob[Y = yj] jarij = Prob[X = xi ja Y = yj]. Kasutades võrdusi pi =

    j rij ja qj =∑

    i rijHindame suurust e = H[X] + H[Y ]− H[X, Y ].

    e =n∑

    i=1

    pi log21

    pi+

    m∑

    j=1

    qj log21

    qj+

    n∑

    i=1

    m∑

    j=1

    rij log2 rij

    =

    n∑

    i=1

    m∑

    j=1

    rij log21

    pi+

    m∑

    j=1

    n∑

    i=1

    rij log21

    qj+

    n∑

    i=1

    m∑

    j=1

    rij log2 rij

    =n∑

    i=1

    m∑

    j=1

    rij log2rijpiqj≥ 0,

    sest∑

    i

    j piqj = (∑

    i pi) · (∑

    j qj) = 1 ning võrratus järeldub seetõttuotseselt Kullback-Liebleri võrratusest. Samuti järeldub otseselt, et võrduskehtib parasjagu siis, kui rij = pi · qj , millest tuleneb suuruste X ja Ysõltumatus. �

  • 12 PEATÜKK 1. ENTROOPIA JA INFOHULK

    1.5 Tingimuslik entroopia

    Olgu X ja Y juhuslikud suurused väärtuste hulkadega DX ja DY . Olguy ∈ DY muutuja Y mingi fikseeritud väärtus. Võib defineerida uue juhuslikusuuruse X | y, mille väärtuste piirkond on DX ja elemendi x ∈ DX tõenäosuson p(x | y) = Prob[X = x | Y = y]. Suuruse X | y entroopia

    H[X | y] =∑

    x∈DX

    p(x | y) log21

    p(x | y)

    tähendab intuitiivselt informatsioonihulka, mille me saame suuruse X tege-liku väärtuse teadasaamisel, eeldusel, et me teame juba, et Y = y. Suuruse

    H[X | y] keskväärtust tähistame

    H[X | Y ] =∑

    y∈DY

    Prob[Y = y] · H[X | y]

    =∑

    y∈DY

    x∈DX

    p(y)p(x | y) log21

    p(x | y)

    = −∑

    x,y

    p(x, y) log2 p(x | y).

    ja nimetame suuruse X tingimuslikuks entroopiaks suuruse Y suhtes. In-tuitiivselt tähendab H[X | Y ] informatsiooni hulka, mis annaks suuruse Xteadasaamine, eeldusel, et suuruse Y tegelik väärtus on juba teada.

    Teoreem 7 H[X, Y ] = H[Y ] + H[X | Y ].

  • 1.5. TINGIMUSLIK ENTROOPIA 13

    Tõestus.

    H[X, Y ] = −∑

    x,y

    p(x, y) log2 p(x, y)

    = −∑

    x,y

    p(x, y) log2 p(y)p(x | y)

    = −∑

    x,y

    p(x, y)[log2 p(y) + log2 p(x | y)]

    = −∑

    x,y

    p(x, y) log2 p(y)−∑

    x,y

    p(x, y) log2 p(x | y)

    = −∑

    y

    (∑

    x

    p(x, y)

    )

    ︸ ︷︷ ︸

    =p(y)

    · log2 p(y) + H[X | Y ]

    = H[Y ] + H[X | Y ].

    Selle teoreemi väide on igati kooskõlas tingimusliku entroopia intuitiivseseletusega. Ta väidab, et suurustes X ja Y on kokku täpselt niipalju infor-matsiooni, kui seda saab suuruse Y teadasaamisest pluss see informatsioon,mida on vaja suuruse X väärtuse teadasaamiseks, eeldades, et Y on jubateada. Sageli kasutatakse ka järgmist infohulga mõistet. Suurust

    I[X; Y ] = H[X]− H[X | Y ]

    nimetatakse infohulgaks, mis sisaldub suuruses Y suuruse X kohta.

    Teoreem 8 Infohulk on sümmeetriline, st. I[X; Y ] = I[Y ; X], ja mittenegati-ivne, st I[X; Y ] ≥ 0, kusjuures I[X; Y ] = 0 parajasti siis, kui X ja Y onsõltumatud juhuslikud suurused.

    Tõestus. Võrdustest H[Y ]+H[X | Y ] = H[X, Y ] = H[X]+H[Y | X] tuleneb,et I[X; Y ] = I[Y ; X]. Mittenegatiivsus tuleneb seoste ahelast:

    I[X; Y ] = H[X]− H[X | Y ]

    = H[X] + H[Y ]− (H[Y ] + H[X | Y ])

    = H[X] + H[Y ]− H[X, Y ] ≥ 0,

    kusjuures võrdus kehtib parajasti siis, kui X ja Y on sõltumatud. �

  • 14 PEATÜKK 1. ENTROOPIA JA INFOHULK

    1.6 Entroopia aksiomaatika

    Näitasime entroopia kombinatoorse definitsiooni (kombinatoorse entroopia)seotust Shannoni entroopiaga. Nüüd näitame, et Shannoni entroopia avald-iseni võib jõuda üldistest kaalutlustest lähtudes. Näitame, et eeldades en-troopialt kui infohulga mõõdult teatud loomulikke omadusi, saame tõestada,et seljuhul peab entroopia olema arvutatav Shannoni entroopia avaldisega.

    Vaatleme juhusliku suuruse X entroopiat kui funktsiooni H , mille argu-mendiks (sisendiks) on suuruse X võimalike väärtuste tõenäosustest moodus-tatud jada p1, . . . , pi, . . ., st iga positiivsetest reaalarvudest koosnev jada,mis rahuldab tingimust

    i pi = 1. Vaatleme komplekti kaheksast omadus-est, millest igaühe kohta tõestame, et Shannoni entroopia seda omadustrahuldab. Lõpuks näitame, et kui mingi funktsioon H rahuldab toodud ka-heksat omadust, siis langeb ta kordaja täpsusega kokku Shannoni entroopi-aga, st H(X) = λ · H[X].

    Omadus 1 H(p1, . . . , pn) on iga fikseeritud n korral maksimaalne parajastisiis, kui p1 = . . . = pn = 1/n.

    Teoreemist 5 tulenevalt kehtib see omadus Shannoni entroopia korral.

    Omadus 2 Hulga {1, . . . , n} iga permutatsiooni σ korral H(p1, . . . , pn) =H(pσ(1), . . . , pσ(n)).

    On selge, et suuruse entroopia saab oleneda ainult tõenäosustest endist, mitteaga nende mõttelisest järjestusest. Shannoni entroopia on sümmeetrilineavaldis kõigi tõenäosuste suhtes ja seetõttu on antud omaduse kehtivus selge,ega vaja eraldi tõestamist.

    Omadus 3 H(p1, . . . , pn) ≥ 0 ja võrdus kehtib parajasti siis, kui pi = 1mingi i ∈ {1, . . . , n} korral.

    On selge, et Shannoni entroopia rahuldab seda omadust, sest iga liidetavpi · log2

    1pi

    on mittenegatiivne. Seega saab H[X] null olla ainult siis, kui kõik

    summeeritavad liikmed on võrdsed nulliga. Kui aga pi log21pi

    mingi i korral,

    siis pi 6= 0 tõttu (vastasel korral pi-ga liige summasse ei kuuluks) saame, etlog2

    1pi

    = 0, millest järeldub, et pi = 1.

    Omadus 4 H(p1, . . . , pn, 0) = H(p1, . . . , pn).

  • 1.6. ENTROOPIA AKSIOMAATIKA 15

    On selge, et nulltõenäosusega väärtuste lisamine võimalike väärtuste hulgaleei saa mõjutada entroopiat. Shannoni entroopia avaldis rahuldab seda nõuet,sest nulltõenäosused ei lähe avaldises arvesse.

    Omadus 5 H( 1n, . . . , 1

    n) < H( 1

    n+1, . . . , 1

    n+1).

    On selge, et n erineva väärtusega ühtlase jaotusega juhuslik suurus sisaldabvähem entroopiat kui n + 1 erineva väärtusega ühtlase jaotusega juhusliksuurus. Shannoni entroopia korral on võrratuse kehtivus selge, sest logar-itmfunktsiooni monotoonsuse tõttu log2 n < log2(n + 1).

    Omadus 6 H(p1, . . . , pn) on pidev funktsioon, st väike argumentide muutusei põhjusta suuri muutusi väljundis. 1

    See omadus on loomulik, sest tühised muudatused tõenäosustes ei saa põh-justada suuri muutusi entroopias. Shannoni entroopia on pidev funktsioon,sest ta on pidevate operaatorite (liitmine, korrutamine, logaritm) komposit-sioon. Ainus, mis võiks põhjustada mittepidevust, on asjaolu, et nullisedtõenäosused summast välja jäävad. Et aga limx→0 x log x = 0, siis see kahtluson alusetu.

    Omadus 7 H( 1mn

    , . . . , 1mn

    ) = H( 1n, . . . , 1

    n) + H( 1

    m, . . . , 1

    m) suvaliste positi-

    ivsete täisarvude m ja n korral.

    Intuitiivselt tähendab see võrdus seda, et kui juhuslik katse koosneb kah-est sõltumatust katsest – ühel katsel on m võimalikku võrdse tõenäosusegatulemust ja teisel n võrdse tõenäosusega tulemit – siis liitkatse entroopia onvõrdne komponent-katsete entroopiate summaga. Shannoni entroopia korraltuleneb nimetatud omadus logaritmi omadusest: log(mn) = log m + log n.

    Omadus 8 Olgu p = p1 + . . . + pm ja q = q1 + . . . + qn, kus p + q = 1 ja niipi kui qj on mittenegatiivsed reaalarvud. Siis

    H(p1, . . . , pm, q1, . . . , qn) = H(p, q)+p·H

    (p1p

    , . . . ,pmp

    )

    +q·H

    (q1q

    , . . . ,pnq

    )

    .

    1Formaalselt väljendudes, iga argumendi (p1, . . . , pn) korral (kus p1 ≥ p2 ≥ . . . ≥ pn)ja iga � > 0 korral leidub δ > 0, nii et kui

    (p1 − p′1)2 + . . . + (pn − p′n)

    2 < δ mingiargumendi (p′1, . . . , p

    ′n) korral, siis | H(p1, . . . , pn)−H(p

    ′1, . . . , p

    ′n) |< �.

  • 16 PEATÜKK 1. ENTROOPIA JA INFOHULK

    Intuitiivne selgitus sellele omadusele on järgmine. Oletame, et toimub ho-buste võidujooks, milles osalevad m musta ja n valget hobust. Mustade ho-buste võitmise tõenäosused on vastavalt p1, . . . , pm ning valgete tõenäosusedq1, . . . , qn. Olgu X juhuslik suurus, mille tegelikuks väärtuseks on võitevhobune (ei ole vahet kas must või valge). Olgu Y juhuslik suurus, millel onkaks võimalikku väärtust: must ja valge, vastavalt sellele, kas võitis must võivalge hobune.

    On selge, et suuruse Y entroopia on H(p, q). Kui te küsite kõiketeadjaoraakli käest, kas võidab must või valge hobune, siis saate te just niipaljuinformatsiooni. Kui oraakel vastab, et võidab must hobune, siis konkreet-sete mustade hobuste võidu tõenäosused asenduvad (teie jaoks) tingimusliketõenäosustega p1

    p, . . . , pm

    pja entroopia on seega Hp = H(

    p1p, . . . , pm

    p). Sama

    arutelu võiks läbi viia juhul kui oraakel vastab teile, et võidab valge hobune.Viimasel juhul oleks entroopia Hq = H(

    q1q, . . . , qn

    q). On ilmselt ükskõik, mil-

    lisel moel te saate võitva hobuse teada: kas vaadates võistluse lõpuni, võisiis küsides oraakli käest esmalt, mis värvi hobune võidab ja seejärel (teadesvärvi) küsite, milline neist võidab. Infohulk, mille te saate esimesel juhul,on H(p1, . . . , pm, q1, . . . , qn) ja teisel juhul H(p, q) (esimese vastuse infomaht)pluss keskväärtus suurustest Hp ja Hq. See arutelu annabki toodud valemi.Shannoni entroopia kooskõla antud valemiga tuleneb juba tõestaud võrdusest

    H[X] = H[Y ] + H[X | Y ].

    Teoreem 9 Kui funktsioon H rahuldab omadusi 1-8, siis

    H(p1, . . . , pn) = λ · H[X],

    kus X on juhuslik suurus, mille väärtuste tõenäosused on p1, . . . , pn.

    Tõestus. Olgu H funktsioon, millel on kõik omadused 1-8. Tähistameg(n) = H( 1

    n, . . . , 1

    n), st funktsioon g on defineeritud iga positiivse natu-

    raalarvu n ∈ N korral. Omadusest 7 järelduvalt g(nk) = g(n) + g(nk−1),millest järeldub seos

    g(nk) = k · g(n), (1.4)

    mis kehtib kõigi positiivsete naturaalarvude n, k ∈ N korral. Olgu nüüdr, s, n ∈ N suvalised positiivsed naturaalarvud. On selge, et leidub m ∈ N,nii et

    rm ≤ sn ≤ rm+1. (1.5)

  • 1.6. ENTROOPIA AKSIOMAATIKA 17

    Omadusest 5 tulenevalt g(rm) ≤ g(sn) ≤ g(rm+1), millest võrduse (1.4)põhjal saame

    m · g(r) ≤ n · g(n) ≤ (m + 1) · g(r).

    Samal ajal, rakendades naturaallogaritmi võrratuse (1.5) liikmetele, saamevõrratused

    m · ln r ≤ n · ln n ≤ (m + 1) · ln r.

    Teisendades neid kahte sarnast võrratuste ahelat, saame süsteemi

    {mn≤ g(n)

    g(r)≤ m

    n+ 1

    nmn≤ ln n

    ln r≤ m

    n+ 1

    n,

    millest järeldub, et

    g(s)g(r)− ln s

    ln r

    ≤1n, iga positiivse n ∈ N korral. Siit

    järeldub, et g(s)g(r)

    = ln sln r

    ja g(s)ln s

    = g(r)ln r

    = c = const, st iga positiivse natu-

    raalarvu s korral g(s) = c · ln s = λ · log2 s. Olgu p =tn

    mingi positiivneratsionaalarv, kus t, n ∈ Q. Omandusest 8 järelduvalt:

    g(n) = H(1

    n, . . . ,

    1

    n) = H(

    t

    n,n− t

    n) +

    t

    ng(t) +

    n− t

    ng(n− t),

    millest tulenevalt

    H(p, 1− p) = H(t

    n,n− t

    n) = g(n)−

    t

    ng(t)−

    n− t

    ng(n− t)

    = λ log2 n− λt

    nlog2 t− λ

    n− t

    nlog2(n− t)

    = −λ

    [

    −t

    nlog2 n−

    n− t

    nlog2 n +

    t

    nlog2 t +

    n− t

    nlog2(n− t)

    ]

    = −λ

    [t

    nlog2

    t

    n

    n− t

    nlog2

    n− t

    n

    ]

    = −λp log2 p− λ(1− p) log2(1− p).

    See võrdus kehtib iga ratsionaalarvu p ∈ [0, 1] korral. Funktsiooni H pidevuse(Omadus 6) tõttu kehtib võrdus ka iga reaalarvu r ∈ [0, 1] korral. Tõestuseks,et H(p1, . . . , pn) = −λ

    ∑ni=1 pi log2 pi suvaliste reaalarvude p1 + . . . + pn = 1

    korral, kasutame induktsiooni n järgi. Oleme juba tõestanud, et väide kehtibn = 2 korral. Oletame, et ta kehtib n− 1 korral. Defineerime p = p1 + . . . +

  • 18 PEATÜKK 1. ENTROOPIA JA INFOHULK

    pn−1 ja q = pn. Kasutame Omadust 8 ja induktsiooni eeldust:

    H(p1, . . . , pn) = H(p, q) + p ·H(p1p

    , . . . ,pn−1

    p) + q ·H(1)

    = −λp log2 p− λq log2 q − λpn−1∑

    i=1

    pip

    log2pip

    = −λp log2 p− λpn log2 pn − λn−1∑

    i=1

    pi(log2 pi − log2 p)

    = −λp log2 p− λpn log2 pn − λn−1∑

    i=1

    pi log2 pi + λ log2 p ·n−1∑

    i=1

    pi

    ︸ ︷︷ ︸

    =p

    = −λn∑

    i=1

    pi log2 pi = λ · H[X],

    Kus X on juhuslik suurus, mille võimalike väärtuste tõenäosused on p1, . . . , pn.�

  • Peatükk 2

    Shannoni salastusteooria

    2.1 Krüptosüsteemi tõenäosuslik mudel

    Formaalse definitsiooni turvalisusele andis esimesena informatsiooniteoorialoojaks peetav Claude Shannon 1949. aastal. Ta käsitles nii avateksti X,võtit Z kui ka krüptogrammi Y juhuslike suurustena, mille jaotusi saabhinnata vastane, kellel on juurdepääs krüptogrammile Y . Eeldatavasti onnimetatud suurused seotud funktsionaalse seosega:

    Y = EZ(X),

    kus EZ on iga Z väärtuse korral injektiivne funktsioon – krüpteerimisalgoritm.Eeldame, et X, Y ja Z valitakse teatud fikseeritud lõplikest hulkadest, midatähistame vastavalt X, Y ja Z. Olgu p(x) = Prob

    X[X = x] tõenäosus, et

    avatekst on x ∈ X. Näiteks kui avatekst on eesti keele täht, mis esineb eesti-keelses tekstis, siis väljendab p(x) tähe x esinemissagedust eesti keeles. Olgup(z) = Prob[Z = z] tõenäosus, et võti omandab väärtuse z ∈ Z. Eeldame, etX ja Z on sõltumatud juhuslikud suurused. 1

    Nimetatud eeldused lubavad anda lihtsa valemi väljundjaotuse arvutami-seks sisendjaotuse põhjal. Kõigepealt anname valemi tingimusliku tõenäosusep(y | x) = Prob[Y = y | X = x] arvutamiseks. Selleks võtame kasutuselejärgmise tähistuse

    Z(x, y) = {z ∈ Z : Ez(x) = y},

    1See eeldus on loomulik, sest võti genereeritakse tavaliselt enne kui tekib sõnum, midasoovitakse edastada. Teiselt poolt, sõnum, mida edastatakse ei ole enamikul praktilistestjuhtudest kuidagi seotud võtme väärtusega.

    19

  • 20 PEATÜKK 2. SHANNONI SALASTUSTEOORIA

    st Z(x, y) ⊆ Z on kõigi selliste võtmete hulk, mille abil avatekst x krüptee-ritakse avatekstiks y. Tõenäosus p(x, y) avaldub seljuhul järgmise valemiga:

    p(y | x) = ProbZ

    [Z ∈ Z(x, y)] =∑

    z∈Z(x,y)

    p(z). (2.1)

    Tõenäosus p(y) = Prob[Y = y] on arvutatav täistõenäosuse valemi järgi:

    p(y) =∑

    x∈X

    p(y | x) · p(x) =∑

    x∈X

    z∈Z(x,y)

    p(z) · p(x). (2.2)

    Kasutades Bayesi valemit, saab arvutada ka duaalse tingimusliku tõenäosuse,mis iseloomustab (vastase) teavet avateksti x kohta, eeldusel, et krüptogrammy on teada:

    p(x | y) =p(x) · p(y | x)

    p(y). (2.3)

    2.2 Täieliku salastuse definitsioon

    Loomulik on defineerida krüptosüsteemi turvalisus tingimusena, et krüpto-gramm Y (ja selle statistilised omadused) ei anna mingisugust informatsiooniavateksti kohta, st I(Y ; X) = 0. Kasutades seost I(Y ; X) = H[X]−H[X | Y ],saab sama tingimuse avaldada entroopia kaudu järgmiselt:

    H[X | Y ] = H[X], (2.4)

    mis, nagu eelnevalt tõestatud, on samaväärne tingimusega, et X ja Y onsõltumatud juhuslikud suurused. Seega, kasutades juhuslike suuruste sõl-tumatuse definitsiooni ja Bayesi valemit (2.3), saame et tingimus (2.4) onsamaväärne mõlemaga järgmistest tingimustest

    ∀x ∈ X, ∀y ∈ Y : p(x) = p(x | y),

    ∀x ∈ X, ∀y ∈ Y : p(y) = p(y | x).

    See asjaolu lubab meil üsna lihtsalt tõestada nihkešifri y = x + z mod pturvalisuse.

    Teoreem 10 Nihkešiffer y = Ez(x) = x+z mod p (kus x, y, z ∈ {0, . . . , p−1}) on turvaline kui z←

    U{0, . . . , p− 1}.

  • 2.3. TÄIELIKU SALASTUSE “HIND” 21

    Tõestus. Tõestuseks arvutame tõenäosuse p(y) ja näitame, et see on võrdnetõenäosusega p(y | x). Alustame tähelepanekust, et |Z(x, y)| = 1, sest igax, y ∈ {0, . . . , p − 1} korral on võrrandil x + z ≡ y (mod p) parajasti ükslahend z. Vastavalt valemile (2.2),

    p(y) =∑

    x∈X

    z∈Z(x,y)

    p(z) · p(x)

    =1

    p

    x∈X

    z∈Z(x,y)

    p(x)

    =1

    p

    x∈X

    |Z(x, y)|p(x)

    =1

    p

    x∈X

    p(x)

    =1

    p.

    Teiselt poolt, vastavalt valemile (2.1),

    p(y | x) =∑

    z∈Z(x,y)

    p(z) =∑

    z∈Z(x,y)

    1

    p=|Z(x, y)|

    p=

    1

    p,

    millest järeldubki suuruste X ja Y sõltumatus ja seega ka nihkešifri turva-lisus. �

    2.3 Täieliku salastuse “hind”

    Nagu nägime, leidub šifreid, mis tagavad täieliku salastuse, st on turvalisedselles mõttes, et krüptogramm ei sisalda mingit informatsiooni avateksti koh-ta, eeldusel, et võti Z ei ole teada. Järgnevast lihtsast arutelust selgub,et täieliku turvalisuse saavutamise hind on väga kõrge: kasutatav võti Zpeab olema sama mahukas kui edastatav sõnum X. Tuletame meelde, etvõtit saab kasutada vaid üheainsa sõnumi krüpteerimiseks, mistõttu võibka öelda, et võti peab olema sama mahukas kui kõik edastatavad sõnumidkokku. Järgnevas põhjenduses kasutatakse entroopia üldisi omadusi, mis ontõestatud eelmises peatükis ja kahte lisaeeldust:

  • 22 PEATÜKK 2. SHANNONI SALASTUSTEOORIA

    • Krüptogrammi taastatavus – kasutaja, kellel on võti Z, suudab üheselttaastada krüptogrammile Y vastava avateksti X. Ehk entroopia kee-les: krüptogramm ja võti sisaldavad piisavalt informatsiooni avatekstiüheseks taastamiseks:

    H[X | Y, Z] = 0.

    • Täielik salastus – krüptogramm Y üksi ei sisalda mingit informatsiooniavateksti X kohta.

    H[X | Y ] = H[X].

    Neist eeldustest lähtuvalt saame, et

    H[X] = H[X | Y ]

    ≤ H[X, Z | Y ] = H[Z] + H[X | Y, Z]︸ ︷︷ ︸

    0

    = H[Z].

    Seega võtme infosisaldus on vähemalt sama suur kui krüptogrammi infosisal-dus, mistõttu on võtme kodeerimiseks vaja vähemalt umbes sama arv bittekui krüptogrammi kodeerimiseks.

    2.4 Võtme korduvkasutus ja selle turvalisus

    Eelmises osas saadud tulemus ütleb küll seda, et täielikult turvalise šifrisaamiseks peab võti olema sama pikk kui avatekst. Samas, ei järeldu ülalsaa-dud tulemusest otseselt see, et võtme korduvkasutus tekitab praktikas oluliseturvalisuse kao. Näiteks kui ühte võtit kasutada kümme korda, siis kui paljuinfot võtmest sellega vastasele lekitatakse? Ei ole ju otseselt välistatud, etkorduvkasutus põhjustab praktikas vaid marginaalse turvakao.

    Käesolevas osas näitame, et kui edastatavad sõnumid X on loomulikukeele tekstid, siis juba paarikümne tähelise sõnumi krüptogramm sisaldabpiisava hulga informatsiooni võtme (ja seega ka avateksti) üheseks tuvas-tamiseks. Alustame ühe üldise tulemusega krüptosüsteemidest, mille abilsaab anda hinnangut infohulgale, mis sisaldub krüptogrammis Y võtme Zkohta:

    Teoreem 11 H[Z | Y ] = H[Z] + H[X]− H[Y ].

  • 2.4. VÕTME KORDUVKASUTUS JA SELLE TURVALISUS 23

    Tõestus. Definitsiooni järgi H[Z, X, Y ] = H[Y | Z, X] + H[Z, X] = H[Z, X],sest H[Y | Z, X] = 0 (kuna Y on funktsioon (Z, X)-paarist). Eeldatavasti onX ja Z sõltumatud suurused, mistõttu H[Z, X] = H[Z]+H[X]. Sarnaselt eel-nevale arutelule ja eeldusele avateksti ühesest taastatavusest krüptogrammija võtme abil (H[X | Z, Y ] = 0) saame, et H[Z, X, Y ] = H[Z, Y ], mistõttu:

    H[Z | Y ] = H[Z, Y ]− H[Y ]

    = H[Z, X, Y ]− H[Y ]

    = H[Z, X]− H[Y ]

    = H[Z] + H[X]− H[Y ],

    mida oligi vaja näidata. �Oletame, et edastatav sõnum koosneb n blokist X1X2 . . .Xn, mis krüp-

    teeritakse blokkideks Y1Y2 . . . Yn, nii et

    Yi = EZ(Xi),

    st kõigi blokkide krüpteerimiseks kasutatkse ühte ja sama võtit Z. Kuiründaja teab, et X1X2 . . .Xn on loomuliku keele sõna tähtedega X1, . . . , Xn ∈X, siis võib ta läbi proovida kõik võtmed Z ∈ Z, mis krüptogrammi Y1Y2 . . . Yndešifreerimisel annavad loomuliku keele sõna. Sobilike kandidaatide hulgason ka tegelik võti Z. Ülejäänud kandidaate nimetatakse valevõtmeteks.

    Intuitiivselt on selge, et mida vähem on n-täheliste kombinatsioonide seasloomuliku keele sõnu, seda vähem võtmekandidaate tekib ja seda edukam onkirjeldatud rünne. Selleks, et hinnata kirjeldatud ründe edukust kvantita-tiivselt, võtame kasutusele järgmised tähistused:

    • Λ – juhuslik suurus, mille väärtusteks on loomuliku keele tähed tõe-näosustega, millega nad esinevad loomuliku keele tekstides.

    • Λn – juhuslik suurus, mille väärtusteks on n-tähelised loomuliku keeleteksti lõigud (ilma vahede ja kirjavahemärkideta) tõenäosusega, milleganad esinevad loomuliku keele tekstides.

    Definitsioon 3 Loomuliku keele entroopiaks nimetatakse suurust

    HΛ = limn→∞

    H[Λn]

    n,

    ja liiasuseks suurust

    RΛ = 1−HΛ

    log2 |X|=

    log2 |X| −HΛlog2 |X|

    .

  • 24 PEATÜKK 2. SHANNONI SALASTUSTEOORIA

    Liiasus väljendab liiase info hulga log2 |X|−HΛ suhet koguinfo hulgale, midasisaldab juhuslikult ja ühtlaselt valitud avatekst X←

    UX.

    Selleks, et suurust HΛ mõõta mingi konkreetse loomuliku keele korral,on vaja läbi uurida suur kogus selle keele tekste. On kindlaks tehtud, etinglise keele entroopia on vahemikus 1.0 ≤ HΛ ≤ 1.5, mida keskmistades(väärtuseks 1.25) saame liiasuseks RΛ ≈ 0.75. Siit järeldub, et vaid neljandikinglisekeelse teksti mahust on väärtuslik, st sobivalt kodeerides (pakkides) onvõimalik inglisekeelseid tekste ligi neli korda lühendada.

    Olgu Y n väljundjaotus, mis on indutseeritud sisendjaotuse Λn (ja võtmeZ jaotuse) poolt. Kui n on piisavalt suur, siis on õige võti üheselt määratudja seega mingi n = n0 korral H[Z | Y

    n0] = 0, mistõttu vastavalt teoreemile11,

    H[Z] + H[Λn0 ]− H[Y

    n0 ] ≈ 0,

    Eeldades, et n0 on piisavalt suur, saame kasutada lähendit

    H[Λn0 ] ≈ n0 ·HΛ = n0(1−RΛ) log2 |X|.

    Eeldades, et |Y| = |X| ja et H[Y n0] ≈ n0 log2 |Y| (vaadeldakse ideaalsetšifrit, mille väljund on lähedane ühtlasele jaotusele 2), saame et

    H[Z] + n0 ·HΛ − n0 · log2 |X| ≈ 0

    H[Z] + n0(1− RΛ) log2 |X| − n0 · log2 |X| ≈ 0

    H[Z]− n0 · RΛ · log2 |X| ≈ 0 .

    log2(sn + 1) ≥ H[Z]− nRΛ log2 |X|.

    Eeldades, et võti Z←U

    Z, saame järgmise tulemuse:

    Teoreem 12 Kui |X| = |Y| ja Z←U

    Z, siis keskmine valevõtmete arv

    sn ≥|Z|

    |X|nRΛ− 1.

    Võttes n0 ≈log2 |Z|

    RΛ log2 |X|, saame et teoreemi väites oleva võrratuse parem

    pool on null ja võrratus ei anna mingit garantiid valevõtmete arvu kohta.Näiteks asendusšifri korral on |X| = 26 ja |Z| = 26!. Võttes RΛ = 0.75saame, et n0 ≈ 25. See on üsna täpselt kooskõlas praktikaga, et 20 − 30täheline krüptogramm on suure tõenäosusega üheselt dešifreeritav.

    2Šifri väljundi modelleerimine ühtlase jaotusega on tänapäeval üpris levinud heuristika,mis on end ka hästi õigustanud. Siiski on huvitav teada, et seda kasutas juba Shannonoma esimeses infoteooriat ja krüptograafiat puudutavas artiklis.

  • 2.5. KOKKUVÕTE 25

    2.5 Kokkuvõte

    Eelmises osas kirjeldatud ründe läbiviimiseks piisab avateksti liiasusest, miseristab korrektsed avatekstid mittekorrektsetest tekstidest ja võimaldab seegavastasel kõiki võtmeid läbi vaadates selgitada välja võtmekandidaatide hulk,mis väheneb iga kord kui ründaja saab teada uusi krüptogramme. See rünneei sõltu kasutatavast krüptosüsteemist ja õnnestub niipea, kui avateksti jao-tus erineb ühtlasest jaotusest (mis peaaegu alati ongi nii) ja kui võtme en-troopia on väiksem avateksti entroopiast.

    Üks olulisimaid eeldusi kirjeldatud ründe teostatavuseks on vastase pi-iramatud arvutusressursid. See asjaolu aga ei paista olevat tegelikkusegakooskõlas. Kui näiteks võti Z on n-bitine, siis juba suhteliselt väikeste nväärtuste (näiteks n = 80) korral on kõikide võtmekandidaatide läbiproo-vimine praktikas võimatu, seda isegi juhul kui ülesande täitmisse kaasatakskogu maailmas saada olev arvutusvõimsus.

    Seega on piiramatu võimsusega vastase kontseptsioon praktiliste järel-duste jaoks liiga “jäme”. Vaja oleks arvestada ka ründeks vajalikku arvu-tusmahtu, st kasutada piiratud võimsusega vastase kontseptsiooni. Sobi-lik matemaatiline teooria – keerukusteooria – tekkis alles eelmise sajandi60-ndate aastate keskel. Järgnevas peatükis tutvume keerukusteooria põhi-mõistetega, mis lubavad meil edaspidi kasutada piiratud võimsusega vastasekontseptsiooni ja seeläbi muuta teoreetilise krüptograafia järeldusi praktilise-mateks.

  • 26 PEATÜKK 2. SHANNONI SALASTUSTEOORIA

  • Peatükk 3

    Keerukusteooria elemendid

    3.1 Arvutatavus

    Intuitiivselt tähendab mingi funktsiooni Af→ B arvutatavus seda, et hulkade

    A ja B elemendid on sobivalt kodeeritud ja leidub arvutiprogramm (lõplikkäskude jada), mis iga elemendi a ∈ A koodist Code(a) arvutab lõpliku ajajooksul välja elemendi f(a) = b ∈ B koodi Code(b).

    Praktiliselt kõike (mitte küll kõiki matemaatilisi objekte) on võimalikkodeerida 0-dest ja 1-dest koosnevate jadade abil. Seetõttu me valimegi koo-dideks kõigi lõplike 0, 1-jadade hulga, mida tähistame siin ja edaspidi {0, 1}∗.Kõigi k-elemendiliste 0, 1-jadade hulka tähistame {0, 1}k. Arvestame ka 0pikkusega jada, mida tähistame tavaliselt �. Seega

    {0, 1}∗ =⋃

    k∈N

    {0, 1}k,

    kus N = {0, 1, 2, . . .} on kõigi naturaalalrvude hulk.

    Kaugeltki mitte kõik funktsioonid Nf→ N ei ole arvutatavad. See tuleneb

    juba ainuüksi faktist, et kõigi selliste funktsioonide hulk NN on mitteloenduv,samal ajal kui lõplikke programme (ükskõik, mis keeles nad on esitatud jakuidas kodeeritud) on ainult loenduv hulk.

    Harjutus 1 Tõesta, et {0, 1}∗ on loenduv ja NN mitte.

    27

  • 28 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    3.1.1 Turingi masin

    Selleks, et matemaatilise rangusega käsitleda arvutatavust, tuleb defineeridaabstraktne “arvuti”. Kõige enam kasutatud mudel on nn Turingi masin, mison teatud liiki lõplik automaat M koos lõpmatu järjestikmäluga (nn. lint),millele ligipääs on võimalik “kursori” (või ka “pea”) kaudu.

    • Lint on sisuliselt jada L = (`0, `1, `2, . . .), mille iga element `i ∈ {0, 1, �},kus � tähendab nö tühja pesa. Igal arvutussammul võib muuta ainultseda pesa, millel on kursor, st pesa `k.

    • Kursor k on seega naturaalarv, mis näitab, millise pesaga masin paras-jagu tegeleb. Igal arvutussammul saab kursorit nihutada paremale (stk := k+1), vasakule k := k−1 või jätta paigale (k jääb muutumatuks).Eeldatakse, et korrektselt koostatud masinas ei muutu kursor k iialginegatiivseks (piltlikult, lint ei jookse maha). Arvutuse esimesel sammulk = 0.

    • Igal sammul on masin mingis olekus s ∈ S, kus S on mingi lõplik hulk.Erilise tähtsusega on algolek s0, milles automaat on arvutusprotsessialguses, ja nn. lõppolek h, millega tähistatakse masina töö lõppemist.Järgmise sammu olek s′, lindi seis `′k ja kursori asend k

    ′ arvutataksefunktsioonidega

    s′ := δs(s, `k) ∈ S

    `′k := δ`(s, `k) ∈ {0, 1, �}

    k′ := δk(s, `k) ∈ {k, k + 1, k − 1}.

    • Lindi algseisu loetakse masina sisendiks ja lõppseisu väljundiks. Näiteks

    funktsiooni Nf→ N arvutatavus tähendab seda, et leidub Turingi masin

    M , mis teisendab lindile L salvestatud arvu x ∈ N koodi arvu y = f(x)koodiks, mis on salvestatud lindile hetkeks, kui masin jõuab olekusseh.

    Näiteks nullfunktsioon f(x) = 0, ∀x ∈ N on arvutatav, sest leidub tedaarvutav kahe-olekuline Turingi masin, mis on esitatud Joonisel 3.1 tabelina.Siin on eeldatud, et lindil L on esialgu arvu x kood, mis lõpeb tühja pe-saga. Lindi lõpupoole võib olla veel mittetühje pesasid, kuid need ei tulekodeerimise/dekodeerimise juures arvesse.

  • 3.1. ARVUTATAVUS 29

    s `k s′ `′k (k

    ′ − k)s0 0 s1 0 +1

    1 s1 0 +1� h 0 0

    s1 0 s1 � +11 s1 � +1� h � 0

    Joonis 3.1: Nullfunktsiooni arvutav Turingi masin tabelina

    Harjutus 2 Simuleeri ülaltoodud Turingi masina tööd sisendi (lindi alg-seisu) L = (0, 1, 1, �, . . .) korral.

    Harjutus 3 Leida Turingi masin, mis arvutab funktsiooni y = 2x + 1, eel-dades, et arv x = b02

    0 + b121 + . . . + bn2

    n (kus bi ∈ {0, 1}) kodeeritakse lindiseisuga L = (bn, bn−1, . . . , b1, b0, �, �, . . .).

    Harjutus 4 Sama, mis eelmises ülesandes, kasutades kodeeringut vastupi-dises bittide järjestuses, et L = (b0, b1, . . . , bn−1, bn, �, �, . . .).

    Ehkki Turingi masin võib näida ülilihtsa arvutusseadmena, usutakse, ettema abil saab arvutada absoluutselt kõike, mis on kuidagi arvutatav. Sell-ist uskumust nimetatakse Turingi teesiks. Et see tees ise ei ole matemaati-line lause (“kuidagi arvutatav” ei ole defineeritud), siis ei saa ka seda teesimatemaatiliselt tõestada.

    Edaspidi me lihtsalt usume seda teesi ja enamikul juhtudest ei süveneTuringi masinate “siseellu”. Programmide kirjeldamiseks kasutame program-meerimiskeelt meenutavat pseudokoodi. Näiteks võiks Joonisel 3.1 esitatudTuringi masinat esitada järgmise pseudokoodina:

    k := 0

    s0: IF L[k] = � THEN L[k] := 0, HALT

    ELSE k := k + 1, GOTO s1

    s1: IF L[k] = � THEN HALT

    ELSE L[k] := �, k := k + 1, GOTO s1

    Harjutus 5 Kirjutada programm, mis simuleerib Turingi masina tööd.

  • 30 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    3.1.2 Keeled ja ülesanded

    Olgu L ⊆ {0, 1}∗ mingi keel, st suvaline 0, 1-jadade hulk. Ütleme, et Turingimasin M tuvastab keele L, kui iga x ∈ {0, 1}∗ korral

    M(x) = 1⇔ x ∈ L,

    kus tähise M(x) all mõeldakse Turingi masina M väljundit, eeldades, etsisend on x. Eeldame, sisendi ja väljundi lõpuks loetakse esimest (minimaalseindeksiga) tühja pesa. Esimesele tühikule järgnev lindi sisu ei ole oluline.

    Kombinatoorikaülesannete lahendamist saab enamasti formuleerida keeletuvastamise ülesandena. Selleks tuleb eelnevalt kokku leppida, kuidas kodeer-itakse kombinatoorikaülesanne keele sõneks.

    3.1.3 Arvutusaeg ja keerukus

    Olgu M Turingi masin ja x mingi sisend. Turingi masina M arvutusajaksT (M(x)) kohal x nimetatakse masina M poolt sooritatud arvutussammudearvu, kuni masina peatumiseni (jõudmiseni olekusse h).

    Turingi masina M asümptootiliseks (ajaliseks) keerukuseks nimetatakse

    funktsiooni NT→ N, nii et iga n ∈ N korral

    TM(n) = max{T (M(x)) : x ∈ {0, 1}n}.

    Sel viisil defineeritud keerukust nimetatakse ka halvima juhu keerukuseks(worst case complexity), sest iga n korral läheb siin arvesse raskeim juht.Alternatiivne lähenemine on nn keskmine keerukus (average case complexity)

    Olgu f(n) ja g(n) mingid funktsioonid tüüpi N→ N. Võtame kasutuselejärgmised tähistused:

    f(n) = O(g(n)) ≡ ∃c, n0 ∈ N : ∀n ≥ n0 : f(n) ≤ c · g(n)

    f(n) = Ω(g(n)) ≡ g(n) = O(f(n))

    f(n) = Θ(g(n)) ≡ f(n) = O(g(n)) = Ω(g(n)).

    Definitsioon 4 Keel L ⊆ {0, 1}∗ loetakse kuuluvaks klassi P, kui leidub keeltL tuvastav Turingi masin M asümptootilise keerukusega TM(n) = n

    O(1).

  • 3.2. MITTEDETERMINEERITUD TURINGI MASIN 31

    3.2 Mittedetermineeritud Turingi masin

    Mittedetermineeritud Turingi masin on matemaatiline mudel, mis esitabteatud ebarealistlikult võimasat arvutit, millel on piiramatu võime “kah-estuda” ja jätkata arvutusi paralleelselt kahes erinevas harus (mis omako-rda võivad ise hiljem “kahestuda”). Matemaatilises mudelis tähendab seesisuliselt seda, et järgmist olekut arvutav funktsioon δ annab järgmise olekuasemel vastuseks olekute paari, mille elemendid võivad kokku langeda kuihargnemist ei toimu. Eeldatakse, et Turingi masin siirdub mõlemasse uudeolekusse samaaegselt ja jätkab sõltumatult tööd mõlemas olekus. Sõltumatustähendab siin seda, et kui valida hargnemisel alati ainult üks haru, siis muu-tub masina olek ja lindi seis täpselt nii nagu teisi harusid ei olekski olemas, stnagu oleks tegemist tavalise Turingi masinaga. Kui ühes harus omistataksemingile muutujale (st kogumik pesi lindil) mingi väärtus x, siis teises harusvõib sama muutuja väärtus olla sootuks midagi muud.

    Mittedetermineeritud Turingi masina tööd saab tema teatud ebarealist-likkusest hoolimata ette kujutada tavalise pseudokoodi programmina, kuslisaks tavalistele käskudele (IF,GOTO,...) võimaldatakse niinimetatud harg-

    nevat siirdekäsku. Näitena toome järgmise programmi funktsiooni {0, 1}∗f→

    {0, 1} nullkoha x ∈ {0, 1}n olemasolu kindlakstegemiseks:

    x := �

    L2: IF n > 0 GOTO L0, L1

    ELSE GOTO L3

    L0: x := x‖′0′ n := n− 1

    GOTO L2

    L1: x := x‖′1′ n := n− 1

    GOTO L2

    L3: IF f(x) = 0 RETURN 1

    HALT

    Programmi idee on lihtne. Kasutades hargnemist, tekitatakse 2n haru, millesmuutuja x saab kõikvõimalikud väärtused 0 . . . 2n − 1. Seejärel kontrolli-takse lihtsalt, kas f(x) = 0. Kui see mingis harus tõepoolest nii on, siistagastatakse 1.

  • 32 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    Mittedetermineeritud Turingi masina N tööajaks T (N(x)) kohal x nime-tatakse maksimaalse arvutussammudega haru pikkust, eeldusel et sisendikson x. Turingi masina N asümptootiliseks ajaliseks keerukuseks TN (n) nime-

    tatakse funktsiooni NT→ N, nii et iga n ∈ N korral

    TN (n) = max{T (N(x)) : x ∈ {0, 1}n}.

    Harjutus 6 Kirjutada programm, mis simuleerib (piiratud lindi pikkusega,ja piiratud tööajaga) mittedetermineeritud Turingi masina tööd.

    3.2.1 Klass NP

    Definitsioon 5 Keel L loetakse kuuluvaks klassi NP, kui leidub keelt Ltuvastav mittedetermineeritud Turingi masin N asümptootilise keerukusegaTN(n) = n

    O(1).

    Tegelikult saab klassi NP defineerida ka mittedetermineeritud Turingimasina mõistet kasutamata. Paneme tähele, et kui masin N teeb pikimasharus ` sammu, siis saab iga haru kodeerida jadaga a ∈ {0, 1}`. Kui iga nkorral TN (n) ≤ p(n), kus p(n) on mingi funktsioon, siis mis tahes sisendix ∈ {0, 1}n korral saab iga haru esitada jadaga a ∈ {0, 1}p(n). Piltlikultöeldes, jada a mingi bitt ütleb kumba haru kahest võimalikust harust tulebvalida. Esimeses hargnemispunktis kasutatakse jada a esimest bitti, teiseshargnemispunktis teist, jne. Selline tegevus mingi a väärtuse korral muudabmittedetermineeritud masina tavaliseks Turingi masinaks M , mille sisendkoosneb kahest osast: x ja a.

    Seda kõike võib ette kujutada ka nii, et iga mittedetermineeritud Turingimasina programmi saab ette kujutada kaheosalisena:

    • Esimene (mittedetermineeritud) osas genereeritakse kõikvõimalikud a ∈{0, 1}p(n) väärtused. Seda saab teha analoogilise programmijupi abil,mida kasutasime funktsiooni nullkoha otsimisel.

    • Teises (determineeritud) osas arvutatakse tavalise Turingi masina Mabil välja y = M(a, x).

    Esimene osa programmist on igal juhul keerukusega ülimalt nO(1). Seegaküsimus, kas mingi keel L ∈ NP taandub küsimusele masina M(a, x) polü-nomiaalsusest. Jada a võib vaadelda tõestusena, et x ∈ L. See tõestus

  • 3.2. MITTEDETERMINEERITUD TURINGI MASIN 33

    arvutatakse välja ebarealistliku mittedetermineeritud masinaga – tõestajaga– ja esitatakse seejärel tavalisele masinale – verifitseerijale. Et tõestus onalati kontrollitav esialgse masina N tööaja suhtes polünomiaalselt, siis klassiNP juures (kus ka tööaeg ise on polünomiaalne) ei pea tõestaja võimsust mil-legagi piirama. Viimased tähelepanekud võimaldavad klassi NP defineeridajärgmiselt:

    Definitsioon 6 (Klass NP) Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi NP,kui leidub Turingi masin M asümptootilise keerukusega nO(1) ja polünoomp(n), nii et iga x ∈ {0, 1}n korral

    x ∈ L ⇔ Proba←

    U{0,1}p(n)

    [M(a, x) = 1] > 0,

    kus a←U{0, 1}p(n) tähistab juhuslikku ja ühtlast valikut hulgast {0, 1}p(n).

    Klassi NP definitsiooni saab muuta kompaktsemaks, kasutades funkt-sioonide polünomiaalse pere (nn P-pere) mõistet.

    Definitsioon 7 Funktsiooni Nt→ N nimetatakse polünomiaalseks parameet-

    riks, kui t = nO(1) ja kui leidub funktsiooni t arvutav Turingi masin asümp-tootilise keerukusega nO(1), eeldades et funktsiooni t argumendiks olevat natu-raalarvu kodeeritakse bittesitusena.

    Definitsioon 8 Funktsioonide peret f = {fn}n∈N, kus

    fn : {0, 1}p1(n) × . . .× {0, 1}pk(n) → {0, 1}m(n),

    nimetatakse P-pereks, kui p1, . . . , pk ja m on polünomiaalsed parameetrid jakui leidub Turingi masin F asümptootilise keerukusega nO(1), nii et iga argu-mendi (x1, . . . , xk) korral (kus xi ∈ {0, 1}

    pi(n))

    F (x1, . . . , xk) = fn(x1, . . . , xk) ∈ {0, 1}m(n).

    Definitsioon 9 (Klass NP funktsiooniperede abil) Keel L ∈ NP, kuileidub P-pere fn : {0, 1}

    n × {0, 1}p(n)→ {0, 1}, nii et iga x ∈ {0, 1}n korral

    x ∈ L ⇔ Proba←

    U{0,1}p(n)

    [fn(x, a) = 1] > 0.

  • 34 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    3.2.2 P versus NP

    Ehkki mittedetermineeritud Turingi masin näib palju võimsamana tavalisestTuringi masinast, ei ole tänapäevani veel selge, kas klassid P ja NP on üldseerinevad. Veelgi enam, selle küsimuse selgitamisel ei ole isegi märkimisväärsetedu saavutatud. Et paremini mõista lauset P = NP, esitame selle lause kaksversiooni, mis lähemal uurimisel osutuvad ekvivalentseteks:

    • Otsustusversioon. Igale P-perele fn : {0, 1}n×{0, 1}p(n) → {0, 1} leidub

    P-pere gn : {0, 1}n → {0, 1} nii et iga x ∈ {0, 1}n korral

    gn(x) = 1 ⇔ ∃a ∈ {0, 1}p(n) : fn(x, a) = 1.

    • Otsinguversioon. Igale P-perele fn : {0, 1}n×{0, 1}p(n) → {0, 1} leidub

    P-pere gn : {0, 1}n → {0, 1}p(n) nii et iga x ∈ {0, 1}n korral

    f(x, gn(x)) = 1 ⇔ ∃a ∈ {0, 1}p(n) : fn(x, a) = 1.

    Harjutus 7 Tõesta, et otsustus- ja otsinguversioonid on samaväärsed laused,st üks järeldub teisest.

    Harjutus 8 Tõesta, et kui P = NP, siis igale P -perele {0, 1}nfn→ {0, 1}p(n)

    leidub P -pere {0, 1}p(n)gn→ {0, 1}n, nii et iga x ∈ {0, 1}n korral

    fn(x) = fn(gn(fn(x))).

    See tulemus tähendab sisuliselt seda, et kui klassid P ja NP peaksid olemavõrdsed, siis on iga efektiivselt (polünomiaalselt) arvutatav funktsioon kakergesti pööratav ja tänapäeva krüptograafia jaoks nii olulisi ühesuunalisifunktsioone ei oleks lihtsalt olemas.

    3.3 Stohhastiline Turingi masin

    Stohhastiline Turingi masin on abstraktne arvutusseade, mis on lähedanemittedetermineeritud Turingi masinale, kuid kus kaheks hargnemise tähenduson erinev – selle asemel et paralleelselt täita mõlemat haru, valib masin juhus-likult ühe harudest (eeldame, et tõenäosus mingi haru valikuks on alati 0.5).Otsustust võib vaadelda kui mündiviset.

  • 3.3. STOHHASTILINE TURINGI MASIN 35

    Pea igas reaalses tänapäeva arvutis ja programmerimiskeeles on võimalikkasutada juhuarve. Seetõttu ei ole Stohhastilise Turingi masina mudelismidagi müstilist, vähemasti mitte rohkem kui seda on tavalises Turingi masi-nas.

    Nii nagu mittedeterministlikku Turingi masinat, annab ka stohhastilistTuringi masinat (ja sellega seotud keerukusklasse) defineerida tavalise Turingimasina abil. Kui vastava mittedetermineeritud masina asümptootiline kee-rukus on p(n), siis saab stohhastiline Turingi masin teha ülimalt p(n) mün-diviset, st masina väljund on üheselt määratud, kui me teame sisendit x jamündivisete tulemusi kodeerivat 0, 1-jada a ∈ {0, 1}p(n).

    Seega võib stohhastilist Turingi masinat N kirjeldada kui ”seadet”, missaades sisendiks x ∈ {0, 1}n, juhuslikult ja ühtlase jaotusega a ∈ {0, 1}p(n),arvutab väljundi N(x) = M(a, x), mis üldiselt sõltub nii sisendist x kui kasuurusest a. Seega, y = N(x) ei ole funktsioon, vaid pigem juhuslik katse,mis võib sisendile x vastavusse seada erinevaid väljundväärtusi. TõenäosusP (y|x) et N(x) = y avaldub seega järgmiselt:

    P (y|x) = Prob[N(x) = y] = Proba

    [M(a, x) = y],

    kus tõenäosus arvutatakse üle kõikvõimalike a ∈ {0, 1}p(n). Funktsioonp(n) ei saa väärtuselt ületada masina M tööaega T (M(a, x)). Kui p(n) jaT (M(a, x)) on polünoomidega tõkestatud, st nO(1)-funktsioonid, siis masinatN nimetatakse polünomiaalseks stohhastiliseks Turingi masinaks.

    3.3.1 Klassid RP, coRP ja ZPP

    Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi RP kui leidub polünomiaalnestohhastiline Turingi masin N , nii et iga sisendi x ∈ {0, 1}∗ korral:

    1) Kui x ∈ L, siis Prob[N(x) = 1] > 12;

    2) Kui x 6∈ L, siis Prob[N(x) = 0] = 1.

    Sellise omadusega Turingi masinat nimetatakse ka Monte Carlo masinaks(ja vastavat algoritmi Monte Carlo algoritmiks). Monte Carlo algoritmiiseärasus seisneb selles, et kui saame vastuseks N(x) = 1, siis on kindlaltteada, et x ∈ L. Kui aga N(x) = 0, siis on mingi tõenäosusega teada, etx 6∈ L. Rakendades algoritmi k korda (igal korral sõltumatute juhuslike va-likutega), siis eksimise tõenäosus on (1 − �)k, kus � < 0.5 on tõenäosus, etx ∈ L ja N(x) = 0. Klassi RP võib defineerida ka P-perede abil järgmiselt:

  • 36 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    Definitsioon 10 Keelt L ∈ RP, kui leidub P-pere fn : {0, 1}n×{0, 1}p(n) →

    {0, 1}, nii et iga x ∈ {0, 1}n korral

    x ∈ L ⇒ Proba

    [fn(x, a) = 1] >1

    2,

    x 6∈ L ⇒ Proba

    [fn(x, a) = 0] = 1.

    Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi coRP kui leidub polünomiaalnestohhastiline Turingi masin N , nii et iga sisendi x ∈ {0, 1}∗ korral:

    1) Kui x ∈ L, siis Prob[N(x) = 1] = 1;

    2) Kui x 6∈ L, siis Prob[N(x) = 0] > 12.

    On selge, et L ∈ coRP parajasti siis kui tema täiend 1 L ∈ RP. Võibjuhtuda, et mingi keel L kuulub mõlemasse klassi samaaegselt, st leiduvadMonte Carlo masinad N1 keele L jaoks ja N0 keele L jaoks. Sellisel juhulannab loomulikult ka mõlemat masinat kombineerida, rakendades neid va-heldumisi k korda sisendile x. Sel juhul saame algoritmi, mis tõenäosusega1 − 2−k annab kindla vastuse ühele lauseist x ∈ L ja x 6∈ L. Sellist algo-ritmi nimetatakse Las Vegase algoritmiks. Keelte klassi RP∩ coRP, mis onäratuntavad Las Vegase algoritmide abil tähistatakse ZPP.

    3.3.2 Klass PP

    Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi PP kui leidub polünomiaalnestohhastiline Turingi masin N , nii et:

    x ∈ L ⇔ Prob[N(x) = 1] >1

    2.

    Harjutus 9 Tõesta, et NP ⊆ PP.

    3.3.3 Klass BPP

    Kui klassid RP, coRP ja ZPP esitasid ka praktikas hästi töötavaid sto-hhastilisi algoritme, siis klassi PP definitsioon ei paku suurt midagi tege-like arvutuste teostamiseks. Asi on selles, et aktsepteerimise ja mitteakt-septeerimise tõenäosuste vahe võib olla väga väike. Võib juhtuda, et akt-septeerivate harude arv on ainult kahe võrra suurem mitteaktsepteerivatest

    1Keele L täiendiks L nimetatakse kõigi selliste lõplike 0, 1-jadage hulka, mis ei ole Lelemendid.

  • 3.3. STOHHASTILINE TURINGI MASIN 37

    harudest. Seega on sisendi x ∈ {0, 1}n korral tõenäosuste Prob[N(x) = 1] jaProb[N(x) 6= 1] vahe eksponentsiaalselt väike n suhtes ja nende võrdleminejuhuslikke katseid tehes ei tarvitse olla efektiivne vajalike katsete liiga suurearvu tõttu.

    Tšernovi tõke

    Oletame, et visatakse münti, kus kulli ja kirja väljatuleku tõenäosused on1/2+ � ja 1/2− �, kuid ei ole teada, millisel sündmusel on suurem tõenäosus.Kui mitu korda on vaja münti visata, et küllalt suure tõenäosusega kindlaksteha, kumma väljatulek on tõenäolisem. Sellelle küsimusele annab vastusejärgmine tulemus tõenäosusteooriast

    Teoreem 13 (Tšernovi tõke) Olgu x1, . . . , xn sõltumatud juhuslikud suu-rused, mille väärtus on kas 1 või 0 vastavalt tõenäosustega p ja 1− p. OlguX =

    ∑ni=1 xi. Siis iga 0 ≤ Θ ≤ 1 korral kehtib võrratus

    Prob[X ≥ (1 + Θ)pn] ≤ e−Θ2

    3pn.

    Enne kui asume seda tõestama, tuletame meelde veel ühe lihtsa faktitõenäosusteooriast.

    Lemma 6 Olgu X positiivsete reaalarvuliste väärtustega juhuslik suurus,mille erinevate võimalike väärtuste hulk on loenduv. Siis iga k > 0 korral

    Prob[X ≥ k · Expect(x)] ≤1

    k,

    kus Expect tähistab keskväärtust.

    Tõestus.

    E(x) =∑

    x

    x · Prob[x] =∑

    x

  • 38 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    k ·Expect(etX)] ≤ 1/k iga k > 0 korral. Võtame k = et(1+Θ)pn(Expect(etX))−1.Siis

    Prob[X ≥ (1 + Θ)pn] ≤ e−t(1+Θ)pn Expect(etX).

    Et Expect(etX) = (Expect(etx1))n = (1+p(et−1))n, siis tehes asenduse, saame

    Prob[X ≥ (1 + Θ)pn] ≤ e−t(1+Θ)pn(1 + p(et − 1))n ≤ e−t(1+Θ)pn · epn(et−1).

    Siin kasutasime asjaolu, et (1 + a)n ≤ ean iga a > 0 korral. Lõpuks võttest = ln(1 + Θ), saame et

    Prob[X ≥ (1 + Θ)pn] ≤ epn[Θ−(1+Θ) ln(1+Θ)].

    Reaksarendusi kasutades saab näidata, et iga 0 ≤ Θ ≤ 1 korral

    Θ− (1 + Θ) ln(1 + Θ) = −Θ2

    2+

    Θ3

    6−

    Θ4

    12+ . . . ≤ −

    Θ2

    3.

    Harjutus 10 Näita, et kui p(xi) = p = 1/2 + � mingi � > 0 korral, siis

    Prob[∑n

    i=1 xi ≤n2] ≤ e−

    �2n6 .

    Klassi BPP definitsioon

    Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi BPP kui leidub polünomiaalnestohhastiline Turingi masin N , nii et:

    1) Kui x ∈ L, siis Prob[N(x) = 1] > 34;

    2) Kui x 6∈ L, siis Prob[N(x) = 0] > 34.

    Ütleme, et keel L ⊆ {0, 1}∗ kuulub klassi BPP� kui leidub polünomiaalnestohhastiline Turingi masin N , nii et:

    1) Kui x ∈ L, siis Prob[N(x) = 1] > 12

    + �;

    2) Kui x 6∈ L, siis Prob[N(x) = 0] > 12

    + �.

  • 3.4. ARVUTUSED NÕUANNETEGA 39

    3.4 Arvutused nõuannetega

    Keel L ⊆ {0, 1}∗ loetakse kuuluvat klassi P/Poly, kui leidub Turingi masinM , polünoomid p(n) ja q(n), jada a = (a1, a2, . . . , an, . . .), mille elementenimetatakse nõuanneteks (ingl. advice), nii et an ∈ {0, 1}

    p(n) ja iga x ∈{0, 1}n korral on masina N tööaeg T (M(an, x)) ≤ q(n) ja

    x ∈ L⇔M(an, x) = 1.

    Selgub, et polünomiaalsed nõuannetega arvutused on võimsamad kui avu-tused tavalise Turingi masinaga. Selle demonstreerimiseks näitame, et klassP/Poly sisaldab keeli, mis ei ole äratuntavad tavalise Turingi masinaga.Olgu L mingi keel, mida ei ole tuvastatav Turingi masinaga. Selliseid keelileidub, sest keelte hulk on mitteloenduv, samal ajal kui erinevaid Turingimasinaid on vaid loenduv hulk. Defineerime uue keele

    U = {1n : Code(n) ∈ L},

    kus Code(n) tähendab arvu n binaarkoodi. Defineerime nüüd jada (a0, a1, . . .),nii et an ∈ {0, 1} ja an = 1 parajasti siis, kui Code(n) ∈ L. On selge, et Uei ole äratuntav ühegi tavalise Turingi masinaga, sest see tähendaks ka keeleL äratuntavust, mille me aga välistasime. Teiselt poolt, on lihtne koostadaalgoritmi M , mis sisendi (x, a) korral kontrollib, kas x = 1n mingi n korralja väljastab 1, kui a = 1. Kõigil muudel juhtudel M(a, x) = 0.

    Teoreem 14 BPP ⊆ P/Poly.

    Tõestus. Olgu L ∈ BPP ja fn : {0, 1}n × {0, 1}p(n) → {0, 1} mingi P-pere,

    nii et iga x ∈ {0, 1}n korral:

    1) Kui x ∈ L, siis Proba

    [fn(x, a) = 1] >34,

    2) Kui x 6∈ L, siis Proba

    [fn(x, a) = 0] >34,

    Defineerime uue P-pere gn : {0, 1}n×{0, 1}p(n)·m → {0, 1}n, kus m = 12(n +

    1), mille teine argument kujutab endast jada A = (a1, . . . , am), nii et

    gn(x, A) = 1⇔ ‖{i : fn(x, ai) = 1}‖ > 6(n + 1).

    Selge, et gn on P-pere, sest gn(x, A) arvutamiseks tuleb lihtsalt arvutadafn(x, a) iga a ∈ A korral ja leida, kas üle poolte a-dest annab positiivsetulemuse.

  • 40 PEATÜKK 3. KEERUKUSTEOORIA ELEMENDID

    Nimetame jada a ∈ {0, 1}p(n) pahaks x suhtes, kui kas fn(x, a) = 1 jax 6∈ L või fn(x, a) = 0 ja x ∈ L. Näitame, et iga n korral leidub An =(a1, . . . , am), kus m = 12(n + 1), nii et iga x ∈ {0, 1}

    n korral on jadadesta1, . . . , am pahad vähem kui pooled.

    Näitamaks, et selliste omadustega An leidub, valime elemendid a1, . . . , amjuhuslikult ja ühtlase jaotusega hulgast {0, 1}p(n). Näitame seejärel, et tõe-näosus, et juhuslikult valitud An-l on sellised omadused, on alati nullist su-urem.

    Olgu x ∈ {0, 1}p(n) mingi fikseeritud sisend. Olgu x1, . . . , xm ∈ {0, 1}muutujad, nii et xi = 1 parajasti siis, kui ai on paha x suhtes. Tõenäosus p =p[xi = 1] < 1/4, sest eeldatavasti L ∈ BPP. Tõenäosus q(x), et vähemaltpooled An = (a1, . . . , am) elementidest on pahad x suhtes, on Tšernovi tõkkepõhjal (võttes Θ = 1):

    q(x) ≤ Prob[m∑

    i=1

    xi ≥ m/2] ≤ e−m

    12 <1

    2n+1.

    Tõenäosus Q, et mõne x ∈ {0, 1}n korral on vähemalt pooled An elementidestpahad, on seega

    Q ≤∑

    x∈{0,1}n

    q(x) < 2n ·1

    2n+1=

    1

    2.

    Järelikult täidab juhuslikult valitud jada An tõenäosusega P = 1−Q >12

    > 0nõuet, et iga x ∈ {0, 1}n korral on enam kui pooled An elementidest head xsuhtes. Seega on olemas iga n ≥ 0 korral vajalike omadustega An, mistõttuon olemas ka jada (A0, A1, . . .), mis tõestab keele L kuulumist klassi P/Poly.2

    Hoolimata sellest, et suutsime tõestada vajaliku nõuannete jada olema-solu, ei selgu tõestusest vähimalgi määral, kuidas vajalikku jada leida. Olu-line on siin mõista, et kui leiduks polünomiaalne algoritm jada (A0, A1, . . .)elementide genereerimiseks, siis oleksime tõestanud, et BPP ⊆ P, mis olekspraeguste arusaamade põhjal väheusutav.

    2Konstruktiivsus ei ole siin tähtis! Selle jada olemasolu ei saagi formaalselt tõestadailma valiku aksioomi kasutamata.

  • Peatükk 4

    Teoreetilise krüptograafiapõhimõisted

    4.1 Primitiivid, vastased ja turvaparameeter

    Teoreetiline krüptograafia keskendub mängule, mis modelleerib mingi süstee-mi murdmist. Mängus osalevad:

    • Krüptograafiline primitiiv – Hulk Turingi masinaid B = (B1, . . . , Bm),mille eesmärk on tagada süsteemile teatud funktsionaalsus (see, millejaoks süsteem on ehitatud), mis aga ei kuulu otseselt krüptograafiauurimisvaldkonda – krüptograafias on palju olulisemad need omadused,mida süsteemil ei tohi olla.

    • Vastane – Hulk Turingi masinaid A = (A1, . . . , A`), mille eesmärkon primitiiviga fikseeritud viisil (vastavalt ründestsenaariumile S) in-terakteerudes teostada rünne, st saavutada teatud tingimuse C ke-htimine piisavalt suure tõenäosusega Prob[C | S] (tingimuse C kehtimisetõenäosus, arvestades stsenaariumi S), või alternatiivse tähistusviisikorral Prob[C : S].

    Krüptograafilise primitiivi üldisem definitsioon käsitleb primitiivi kui kõi-kide sama tüüpi (ja sama ülesande täitmiseks mõeldud) primitiivide klassi.Seega oleks täpsem öelda, et mängus osalevad primitiivi enda asemel nendeesindajad.

    Enamasti eeldame, et primitiivid on efektiivsed, st nende tööaeg on polü-nomiaalne. Eeldame, et primitiiv (või selle komponent) f esitatav P-perena.

    41

  • 42 PEATÜKK 4. TEOREETILISE KRÜPTOGRAAFIA PÕHIMÕISTED

    Iga primitiiv kasutab kahte tüüpi mälu:

    • Avalik mälu, mida ei ole küll võimalik teistel osapooltel (sh vastasel)muuta, kuid mille sisu on loetav kõigile stsenaariumis osalejaile.

    • Privaatmälu, mille sisu saab lugeda ainult primitiiv (täpsemini, ainultantud primitiivi komponent).

    Privaatmälu mahtu nimetatakse turvaparameetriks ja tähistatakse s(n).Eeldame, et s(n) on argumendi n suhtes monotoonselt kasvav funktsioon,st n1 ≤ n2 ⇒ s(n1) ≤ s(n2). Primitiivi turvataset saab alati tõsta, kuivõtta kasutusele suurem n, st kasutada primitiivi kui P-pere suurema järje-korranumbriga komponente. Sisuliselt tähendab suurema n valimine seda, etsuurendadatakse kasutatava privaatmälu mahtu.

    4.2 Aeg-edukus suhe ja turvalisuse definit-

    sioon

    Intuitiivselt on selge, et mingi primitiiv on seda turvalisem, mida rohkemon vastastel tema murdmiseks vaja arvutusressursse. Võib juhtuda, et ükskivastane, ükskõik kui palju ta selleks aega kulutab, ei suuda murda primi-tiivi absoluutse kindlusega. Seetõttu tundub loomulik arvestada vajalikuarvutusressursina nn. aeg-edukus suhet :

    R(s(n)) =T (n)

    δ(n),

    kus δ(n) = Prob[S : C] on vastase õnnestumise tõenäosus ja T (n) on halvimajuhu tööaeg. Aeg-edukus suhte sobilikkuse kasuks räägib ka järgmine tähe-lepanek. Olgu A vastane tööajaga T (n), mis murrab primitiivi B edukusegaδ(n). Olgu t(n) < T (n). Defineerime vastase A′, mis käitub järgmiselt:

    • Tõenäosusega t(n)T (n)

    käitub vastane A′ samuti nagu vastane A;

    • Tõenäosusega 1− t(n)T (n)

    ei tee vastane midagi ja väljastab mingi konstandi

    (näiteks 0n).

  • 4.3. REDUKTSIOONI MÕISTE 43

    Eeldades, et suhe t(n)T (n)

    on arvutatav ajaga T (n), on vastase A′ keskminetööaeg on

    T ′(n) = t(n) +t(n)

    T (n)· T (n) +

    (

    1−t(n)

    T (n)

    )

    · 0 = O(t(n))

    ja tema õnnestumise tõenäosus on δ′(n) = t(n)T (n)· δ(n), millest tulenevalt

    R(s(n)) =T ′(n)

    δ′(n)=O(t(n))

    t(n)T (n)· δ(n)

    = O

    (T (n)

    δ(n)

    )

    = O(R′(s′(n))).

    See tähendab, et uue vastase aeg-edukus suhe erineb esialgsest ainult kons-tantse võrdeteguri poolest.

    Definitsioon 11 Ütleme, et primitiiv B on S(n)-turvaline, kui iga vastaseA aeg-edukus suhe R(s(n)) ≥ S(n).

    4.3 Reduktsiooni mõiste

    Teoreetilise krüptograafia üks peamisi ülesandeid on konstrueerida ühestkrüptograafilisest primitiivist B teisi primitiive B′ ja tõestada, et saadav kon-struktsioon B′ on piisavalt turvaline, eeldades, et B on turvaline. Selleks, etanda piisavalt täpne matemaatiline kirjeldus sellistele konstruktsioonidele,on vaja defineerida oraakliga vastase mõiste.

    Definitsioon 12 Oraakliga vastaseks S nimetatakse polünomiaalses ajas töö-tavat algoritmi (Turingi masinat), mis ei ole täielikult defineeritud sellesmõttes, et tema kood sisaldab oraakli väljakutseid – eraldi käske, mille täit-miseks kasutatakse funktsioone, mille kirjeldus ei kuulu algoritmi S kirjel-duse juurde. Eeldame, et välised funktsioonid, mida S välja kutsub on koodiskuidagi tähistatud (näiteks märgendatud arvudega 1, 2, . . .), nii et oleks või-malik aru saada, millal kutsutakse välja ühte ja sama funktsiooni. TähistusSA, kus A = (A1, . . . , A`) on mingi vastane, tähendab algoritmi, mis saadaksesiis, kui algoritmis S kasutatud oraakliväljakutseid täidetakse vastase A kom-ponentide A1, . . . , A` abil, kusjuures eeldatakse, et märgendiga i oraakliväl-jakutseid täidetakse algoritmi Ai abil. Vastase S

    A = SA1,...,A` tööaja arvu-tamisel arvestatakse ka oraakliväljakutsete täitmiseks kulunud aegu, st Turin-gi masinate Ai tööaegu.

  • 44 PEATÜKK 4. TEOREETILISE KRÜPTOGRAAFIA PÕHIMÕISTED

    Definitsioon 13 Ütleme, et S on polünomiaalne oraakliga vastane, kui sel-lest, et A1, . . . , A` on polünomiaalses ajas töötavad Turingi masinad, järeldub,et ka SA1,...,A` tööaeg on polünomiaalne.

    Olgu meil kaks krüptograafilist primitiivi B1 = (B1,1, . . . , B1,m1) ja B2 =(B2,1, . . . , B2,m2) turvaparameetritega vastavalt s1(n) ja s2(n).

    Definitsioon 14 Ütleme, et leidub reduktsioon primitiivilt B1 primitiivileB2, kui leiduvad oraakliga vastaste hulgad

    P = (P1, . . . , Pm2) ja S = (S1, . . . , S`1),

    mida edaspidi samuti nimetame oraakliga vastasteks (ja mis on ühised nendeprimitiivide kui klasside kõigile esindajaile), nii et kehtivad järgmised kakseeldust:

    • Konstruktsioon – B2 = PB1, st.

    B2,1 = PB11 , B2,2 = P

    B22 , . . . , B2,m2 = P

    B2m2 .

    • Garantii – Kui A2 = (A2,1, . . . , A2,`2) murrab primitiivi B2 aeg-edukussuhtega R2(s2(n)), siis oraakliga vastane

    A1 = (A1,1, . . . , A1,`1) = (SA21 , . . . , S

    A2`1

    ) = SA2

    murrab primitiivi B1 aeg-edukus suhtega R1(s1(n)).

    Tavaliselt esitatakse kõigepealt konstruktsiooni kirjeldus ja seejärel tõesta-takse garantii tingimus. Enamikul juhtudest eeldame, et A2 on determin-istlik, st tema komponendid on deterministlikud Turingi masinad. Samas,peaaegu alati on reduktsioonis konstrueeritud vastane SA1 stohhastiline. Ehk-ki oleks igati mõistlik eeldada, et ka