260 likes | 505 Views
Kodeerimine ja šifreerimine. Algoritmid ja andmestruktuurid Loeng 6. Info kodeerimine. Alustame tekstist ASCII ANSI Codepage Unicode Maht 1 bait per märk 2 baiti per märk. Teksti võrdlemine. Ülesanne – leia stringi asukoht teises S-pikem string M-lühem string keerukus S * M
E N D
Kodeerimine ja šifreerimine Algoritmid ja andmestruktuurid Loeng 6
Info kodeerimine • Alustame tekstist • ASCII • ANSI • Codepage • Unicode • Maht • 1 bait per märk • 2 baiti per märk
Teksti võrdlemine • Ülesanne – leia stringi asukoht teises • S-pikem string • M-lühem string • keerukus S * M • Lihtsustus • Vaata nelja (või kahte või kaheksat) järjestikkust märki arvuna • Kasuta arvude võrdlemisi, nihutamisi, liitmisi ja lahutamisi
Teksti pakkimine • 8-bitti – 256 erinevat märki • Tekstis 26 suur, 26 väikest, numbrid, kirjavahemärgid - <80 märki • 7-bitti (kokkuhoid 12,5%) • 6-bitti (kokkuhoid 25%) • kas on võimalik?
Pakkimine ja lahtipakkimine • NB! Pakkimine ja lahtipakkimine peavad olema ülimalt lineaarse keerukusega!
Sagedustabel • märgid esinevad tekstis eri sagedusega • idee – kasutada kodeeringut, kus sagedasemad märgid võtavad vähem ruumi • pakkimisel lugeda tekst korra läbi • kaasa sagedustabel
Mõned võimalused • 1. 10, 110, 1110, 11110, 111110 • ei sobi läheb liialt pikaks • sobib kui ülimalt 16 eri märki kasutuses • Huffmani puu • 4n-bitiline kood
4n-bitiline kood • sagedasemad 15 märki saavad 4bitise koodi (0000-1110) • järgmised 15 8bitise koodi (1111nnnn) • jne • vt näide
Muud formaadid • Pildiformaat • Audioformaat • Videoformaat • NB! Ainult arutluseks
Sifreerimine • Põhimõisted • Stsenaariumid • Algoritmid
Sifreerimine Lihttekst plain text šifreeritud chiphertext Lihttekst plain text decryption decipher dekrüptimine encryption enchipher krüptimine
Šifreerimine • Matemaatilised teisendused tekstiga (arvudega) • E(M) = C šifreerimine • D(C) = M dešifreerimine
Eesmärk ja mõisted • Konfidentsiaalsus • sõnumit saab lugeda ainult see, kellele see mõeldud on • Autentsus • sõnum pärineb sellelt, kes selle väidab saatnud olevat • Terviklikkus • sõnum ei ole edastamise käigus muutunud (muudetud) • Vaieldamatus • Sõnumi saatja ei saa sõnumit salata
Krüptoalgoritmid (funktsioonid) • Sama funktsioon teisendab mõlemas suunas (harva) • Eri funktsioonid šifreerimiseks ja dešifreerimiseks • Funktsioon ise on salajane (kinnine algoritm) • Funktsioon on avalik • Nõuded • E(M) ei pea olema deterministlik • D(E(M)) peab olema deterministlik
Võtmega šifrid • Funktsioonidel on mitu parameetrit • Ek(M) = C E(k,M) = C • Dk(C) = M D(k,M) = M • Sümmeetriline või assümmeetriline • E(k1,M) = C • D(k2,C) = M
Võtmete omadused - PKI • Sümmeetriline avalik algoritm • k – võti peab olema salajane • Assümmeetriline algoritm • k1 võib olla avalik • k2 peab olema salajane • ei tohi leiduda f(k1) = k2
Krüptoanalüüs • Sõnumite uurimine eesmärgiga lähtetekst “avada” – lahti muukida • Šifri murdmine. Mingi hulga šiffertekstide põhjal leitakse kas lähtetekst või võti • Lähtetekstiga ründamine. lähteteksti ja šifreeritud teksti analüüsimisel võtme leidmine • Võtme ostmine (varastamine, väljapetmine). Kõige tulusam ja odavam
Algoritmi murdmine • Total break. Koodimurdja leiab võtme ja saab kätte lähteteksti(d) • Global deduction. Leitakse algoritm A(C) = D(k,C) • Local deduction. Leitakse ühekordne lähtetekst • Information deduction. Leitakse mingi osa võtmest, tekstist või mõlemast, mis lihtsustab järgmisi proovimisi või analüüsi
Kindel algoritm • algoritm on absoluutselt kindel, kui suvalise koguse šifrogrammidega ja suvalise aja jooksul ei ole võimalik tuletada lähteteksti (teada ainult 1) • algoritm on arvestuslikult kindel (kasutuseks kindel) kui käepärase ressursiga ei ole võimalik teda avada • ? mis on käepärane ressurss, mõistlik ressurss
Krüptoanalüüsi keerukus • andmekeerukus. Kui palju on vaja lähteandmeid võtme tuletamiseks • protsessikeerukus. Kui kaua kulub aega võtme tuletamiseks • mahukeerukus. Kui palju võtab ruumi võtme tuletamine
Näiteid • 2 astmel 128 (vt) • ROT(13) • XOR • One-Time Pads (ainus kindel?) • Mõned tänased standardid • DES (USA standard, sümmeetriline) • RSA (Rivest, Shamir, Adleman) – sobib krüpteerimiseks ja allkirjastamiseks • DSA (Digital signature algoritm) – sobib allkirjastamiseks
Mõned veel • Ühesuunaline HASH • ühesuunaline funktsioon • MAC (message authentication) või • DAC (Data authentication) • HASH(image) või HASH(image+key)
PKI vs Hübrid • Näidisprotokoll • Võtmevahetus • Võtmekasutus • Miks nii keerukalt • Üks võimalus võtmevahetuseks – Merkle’s Puzzle (kirjeldus)
Digiallkiri • Sõnumile lisatav räsi (HASH) mis tagab järgmised tingimused (alati mitte kõiki) • Autentsus. Allkirjast tuleneb, et just allakirjutanu on selle lisanud • Võltsimatus. Keegi peale allkirjastanu ei saa samasugust allkirja tekitada • Ühekordsus. Sama allkirja ei saa korduvalt kasutada • Muudetamatus. Allkiri peab tagama (tuvastama) et lähtesõnum on muutmata • Vaieldamatus. Allkirja ei saa vaidlustada
Edasi • Käime läbi ja analüüsime tüüpilised krüptoprotokollid • Tutvume mõningate küptoalgoritmidega