Kommunikci adattvitel 1 Informcielmleti szsszenetek kdols tviteli sebessg
Kommunikáció, adatátvitel 1. Információelméleti szösszenetek kódolás, átviteli sebesség, entrópia, tömörítés, titkosítás utolsó verzió: 2018. XI. 8.
Információ egységei n bit (b, „binary digit”): kettes számrendszerbeli alapegység, az információ legkisebb egysége (0 vagy 1) § megfeleltethető a digitális technikában használt igazhamis párnak n bájt (B, byte): 1 B=8 b § bájt eredetileg nem egyértelmű, ezért is használták az oktet-et is (1 oktet=8 b) (pl. franciául ma is octet) n Mai számítógépek és tárak jellemzően n*8 b szervezésűek, régebben volt többféle szóhossz is
Bináris prefixumok n n n A bináris tárolóegységek 2 hatványa méretűek (kérdés: miért? ), így merült fel a K=1024 prefixum használata már a kezdetekben Megkülönböztetésül: k=1000, K=1024, de nem egyértelmű a használata A nagyobb méreteknél már gondot okozott, hogy eleve nagybetűvel jelölik (M, G, T) Háttértáraknál mindenféle keveredés volt (valaha a kilót is. . . ) n
Bináris prefixumok 1999: IEC 60027 -2 Amendment 2 n a kavarodás megszüntetése érdekében n még nem terjedt el teljes körűen n hagyományos SI prefixumok maradnak decimálisak n új bináris prefixumok: n Ki, Mi, Gi, Ti stb. n Ki. B: kibibájt, Mi. B: mebibájt stb. („kilo binary byte”)
Kódolás n Kódolás: az információ ábrázolási módjai közötti megfeleltetés. Jelen esetben többnyire bináris számoknak feleltetünk meg; távközlésben időnként magasabb számrendszerbeli számoknak is (de ezek is leírhatóak binárisan). n Pl. : ¨ latin betűk bináris számok ¨ kínai írásjelek bináris számok ¨ törtszámok bináris számok ¨ képek bináris számok sorozata
Számkódolás (számábrázolás) n Egész szám (integer, int) ¨ előjel n n nélküli (unsigned int) hagyományos decimális bináris konverzió little-endian vs big endian (ld. korábban) ¨ előjeles n előjelbites, kettes komplemens, eltolt (ld. korábban) ¨ BCD n (binary coded decimal) Törtszám ¨ fixpontos (ld. korábban) ¨ lebegőpontos (ld. korábban)
Karakterkódolás Karakterek számok n Korai verzió: lyukkártya (18 -19 -20. század) n ¨ Először szövőgépek vezérlésére (18. sz. ) ¨ Később elektromechanikus számláló és számológépek vezérlésére (pl. népszámlálás, szavazás) ¨ Később számítógépekhez
Lyukkártya kód Szám: egy lyuk n Karakter, vezérlőjel: két vagy három lyuk n
EBCDIC (IBM) n n Őse az 1928 -as IBM lyukkártya kód (BCD-re alapult) (6 bites) 1963 -64, IBM System/360 gépekkel 8 bites nem folytonos a kiosztás (nehéz ascii-ra írt programmal kezelni, pl. összehasonlítás, listázás stb)
ASCII karakterkódolás n n n American Standard Code for Information Interchange Eredeti verzió: 1963, aktuális: 1986 7 bites kódolás, 128 karakter: kisbetűk, nagybetűk, számok, speciális karakterek, vezérlőjelek ¨ a vezérlőjelek pl. fájl vége, soremelés, kocsivissza, tabulátor, nyomtatóparancsok ¨ n számok: 011 0000 -tól 011 1001 -ig (a kód tartalmazza a számot!) n A: 100 0001, a: 110 0001 (A+32) n A 8. bit, ha volt, paritásbit volt. Később megjelentek kiegészítések (extended ascii), ahol a 8. bit segítségével még 128 karaktert adtak hozzá, több, mint 200 ilyen ún. kódtábla (code page) létezik. n
Unicode A világ összes nyelvének írásjeleit le akarják írni n 1 112 064 „code point” n Főbb variációk: n ¨ UTF-8 ¨ UTF-16 ¨ UTF-32
UTF-8 (Unicode) n Visszamenőleg kompatibilis az ASCII-val: ¨ az első 128 karakter megegyezik, azaz ilyenkor 1 bájtos A nem ASCII karaktereket 2, 3 vagy 4 bájton tárolja n Weboldalak 92, 4%-a használja (ASCII-t is beleszámolva) n
UTF-16 és 32 UTF-16: Két vagy négy bájton írja le n UTF-32: Négy bájton írja le (fix hosszúságú) – több helyet igényel, de könnyebb programokkal kezelni (konstans időbe telik visszafejteni) n
Információ átvitel egységei bitráta (bit rate): adott ponton átvitt bitek száma / időegység [b/s] n egység informális jelölései: n ¨ bps n (bit per second), Bps (byte per second) CASE SENSITIVE! 1 Bps=8 bps
Információ átvitel egységei n bruttó bitráta (Gross bit rate) (raw bit rate, data signaling rate): ¨ az n összes átvitt bitet számolja nettó bitráta (Net bit rate) (information rate): ¨ csak az üzenetet hordozó biteket számolja, kihagyja fejlécet, hibajavító kódolást stb. ¨ net bit rate <= gross bit rate ¨ pl. Ethernet-en 4 B 5 B kódolás (4 bit over 5 bit): n 100 Mb/s nettó, 125 Mb/s bruttó
Információ átvitel egységei n szimbólumsebesség (symbol rate): ¨ átvitt szimbólumok száma időegységenként ¨ egysége: baud (Bd) = symbol per second n n n csak bináris rendszerben 1 baud=1 b/s nembináris rendszerben egy szimbólum bináris átiratban több bitnyi információnak felel meg pl. többállapotú modulációval (QAM, QPSK stb. )
Információ átvitel egységei
Csatornakapacitás (C) n a zajos csatorna (bruttó) adatátviteli sebességének (bitrátájának) a felső korlátja, tetszőlegesen kicsi hibaarány (error rate) mellett (hibajavító kódok nélkül) n ld. Shannon-Hartley (később)
Sávszélesség n Többféle jelentés köznyelvben ¨ aktuális adatátviteli sebesség (R) ¨ vagy épp a csatorna kapacitás (R maximuma) ¨ a jel spektrális sávszélessége (B) n mérhető -3 d. B pontnál, de nullhelyek között is ezek összefüggnek, de nem egyenlők! n B függ a modulációtól (jelalaktól) n
Sávszélesség
Sávszélesség Pl. bináris alapsávi: N=1; max 2 bps / Hz n Két oldalsávos rendszernél (DSB) a sávszélesség fele számít! n ¨ pl. 16 QAM: N=4; max 4 bps / Hz
Példa alapsávi kódolások spektrumára
Zaj, interferencia, hiba n zaj (noise) ¨ additív gaussi fehérzaj (additive white gaussian noise AWGN) n zavar (interference) ¨ EMI ¨ crosstalk ¨ ISI n n n torzítás (distortion) SNR: Signal to Noise Ratio SINR: Signal to Noise and Interference Ratio
Torzítás n „lineáris” torzítás: ¨ nem hoz be új frekvencia komponenst, meglévőket módosítja (pl. szűrőkkel) n „nemlineáris” torzítás: ¨ új spektrális komponensek jelennek meg ¨ pl. vágóáramkör, dióda/tranzisztor n (természetesen minden torzítás nemlineáris, abban az értelemben, hogy a bemenet és kimenet nem konstanszorosa egymásnak; itt a kétféle torzítás megkülönböztetésére használjuk a lineáris-nemlineáris kifejezéseket, azért, mert előállíthatóak lineáris ill. nemlineáris áramkörökkel )
Bit Error Ratio (BER) BER: hibás bitek száma / összes bitek száma n Bit Error Probability: bithiba valószínűsége n ¨A BER közelíti a BEP-et (ld. valszám relatív gyakoriság vs valószínűség) n A gyakorlatban értelmezett BER max 50% (teljesen véletlenszerű csatorna) gondolkodós kérdés: miért?
Bit Error Ratio (BER) n BER-t rontja: ¨ zaj, n zavar, interferencia, torzítás Befolyásolás: ¨ amplitúdó, bitidő, alapsávi kódolás, moduláció ¨ hibajavító kódok
Eb/N 0: energy per bit to noise power spectral density ratio bitenergia (teljesítmény osztva bit/s) és a zaj spektrális teljesítményeloszlásának (1 Hz sávszélre jutó zajteljesítmény) aránya, dimenziótlan
Szimbólumok száma n Ha M (N) nagyobb: ¨ nő a spektrális hatásfok (R/B), azaz az adott sávszélességen elérhető bitráta ¨ kisebb távolság lesz az egyes szintek között (akár amplitúdóban, akár fázisban, akár frekvenciában), így érzékenyebb a zajra n – lásd BER grafikont (ugyanakkora BER-hez kisebb Eb/N 0 kell, ha M kisebb)
Szemábra
Konstellációs diagram
Shannon-Hartley tétel n Csatornakapacitás, sávszélesség és jel-zaj viszony összefüggése, additív gaussi fehérzaj esetén
Shannon-Hartley tétel A jel-zaj viszony meghatározza a maximális adatsebességet. Hartley tételével kombinálva a jelszintek max számáról kapunk becslést (ideális eset):
Redundancia és az agyműködés n n Pl. emberi nyelven írt szöveg redundáns: Felcserélhető elemek: ¨ Meylin fsurca, hgoy ezt el tjduuk ovanlsi. Kihagyható elemek: ¨ Mg z szvg is olvshtó mrd, pdg khagytk btűkt. Lehetőségek: nagyobb védettség a zaj, zavar ellen, az átviteli sebesség csökkenése árán ¨ vagy fentiek elvesztése és tömörítés ¨
Entrópia Shannon-féle entrópia: X valószínűségi változó {x 1. . . xn} lehetséges kimenetelekkel, amikhez P(X) valószínűségi eloszlás tartozik P(xi) értékekkel. Jelen esetben az xi-k a kódszavak (szimbólumok) és P(xi) az előfordulási valószínűségük. Az entrópia lényegében az információtartalmat adja meg. Ha mindegyik szimbólum egyforma valószínűségű, akkor maximális az entrópia.
Entrópia n n Az entrópia lényegében az üzenet véletlenszerűségét, váratlanságát adja meg (mondhatjuk, hogy az információtartalmat). Ha mindegyik szimbólum egyforma valószínűségű, akkor maximális az entrópia. Pl. N=1, (M=2 szimbólum), egyenlő valószínűséggel.
Entrópia Az entrópia lényegében az üzenet véletlenszerűségét, váratlanságát adja meg (mondhatjuk, hogy az információtartalmat). Ha mindegyik szimbólum egyforma valószínűségű, akkor maximális az entrópia. Pl. N=2, (M=4 szimbólum), egyenlő valószínűséggel. Az entrópia 2 shannon (bit), ez megegyezik azzal a megfigyeléssel, hogy 4 szimbólumot 2 bites kóddal tudunk ábrázolni. Bináris kódnál egyenlő valószínűségek mellett 1 shannon (bit) az entrópia. Egyenlő valószínűségek mellett H=N
Entrópia Pl. N=2, (M=4 szimbólum), nem egyenlő valószínűséggel. 1, 36 shannon (bit) az entrópia, ami kisebb, mint az előző esetben. Ez úgy értelmezhető, hogy ha x 1 kódszó érkezik be, az a „legvárhatóbb”, ezért kevesebb információt hordoz, mint a többi. Ha az egyik szimbólum valószínűsége 1 (biztos kimenetel) (egyúttal a többié ekkor 0), akkor az entrópia 0.
Kérdés? A véletlenszerűség mint információ meghatározás problémája. . n Pl. mennyire véletlenszerű az alábbi sorozat? n 11. 00100100001111110110100010000101101000110000110100110 0010011000101000101110000 000110111000001110011010001 n
Tömörítés (veszteségmentes) n n Ha az entrópia kisebb, mint N, akkor lehetőség nyílik veszteségmentes tömörítésre. A tömörítés eredményeképp kapott új kód átlagos kódszóhossza nem lehet kisebb, mint az üzenet entrópiája. (Shannon's source coding theorem, 1948) Nem létezik olyan tömörítés, ami mindenféle üzenetre kisebb végeredményt adna, mint az eredeti -> üzenet típusai szerint különböző algoritmusok (pl. szöveg, kép, hang, program stb). ¨ ennek belátására próbáljuk meg egy már betömörített üzenetet újra tömöríteni. . .
Tömörítés (veszteségmentes) n Entrópia-kódolás ¨ Huffmann-kód ¨ „aritmetikai kódolás” (arithmetic coding) Run length encoding; Szótár-kódolás (dictionary coding) avagy behelyettesítős kód (substitution code) n Előzők kombinációja n
Változó hosszúságú kód változó hosszúságú kód (variable length code): egyes forrásszimbólumokhoz más bithosszúságú célszimbólumokat (kódszavakat) rendelünk n prefixmentes (prefix-free): egyik kódszó sem kezdődik egy másikkal n ¨ pl. {0; 01; 10} készlet nem jó, mert a 01 a 0 -val kezdődik, de {0; 110; 111} prefixmentes
Huffman-kódolás n n n prefixmentes, változó hosszúságú kód minimális átlagos kódszó hossz (szimbólum kódok között optimális) adott: forrásszimbólumok az előfordulási valószínűségükkel (gyakorlatban a relatív gyakorisággal) (súly, weight)
Huffman-kódolás n n n Írjuk fel a forrásszimbólumokat súlyozás szerinti sorrendben, a súlyokkal együtt Legkisebb két súlyt vonjuk össze (fastruktúra szerint) Ismételjük, amíg egy csomópont marad A kész fá csomópontjaihoz kódszavakat rendelünk gyökértől indulva O(n logn) idő (van gyorsabb algoritmus is)
Huffman-kódolás
Kérdés Tfh. bináris kód, n p(0)=0, 9 n p(1)=0, 1 n Az entrópia 0, 47 n A Huffman-kódolás ismertetett módszere nem segít. n Hogyan érhetek el mégis veszteségmentes tömörítést? n
Kérdés n Mi van, ha P(i) egyformák, de n (szimbólumok száma) nem 2 hatványa? n Pl. n=3 és P(A)=P(B)=P(C)=1/3 Entrópia: n n Huffmann-kód nem segít. Egyszerű kódolás: 2 bit/symbol: A=00; B=01; C=10; az 11 kód kimarad. Átlagos kódszóhossz: 2 b
Arithmetic coding n n n Itt is kell a relatív gyakoriság táblázat (de ez menet közben változhat!) Törtszámmal reprezentáljuk az üzenetet A végeredmény egy intervallum, ez helyettesíthető bármely számmal, ami beleesik (spórolni lehet a végső nullákkal)
Run-length encoding (RLE) (futáshossz kódolás? ) n Ha egy szimbólum egymás után többször fordul elő (run), azt egyszeri szimbólum+számmal helyettesíthetjük n Pl. AAAAABCCCAAA => A 5 B 1 C 3 A 3 n Haladóbb verziók karaktercsoportokra is használják (szótár-kód) n RLE után használható a Huffman-kód
Hibaérzékelő és javító kódolás n Hiba érzékelő kódok ¨ üzenetet újra kell küldeni -> kétirányú csatorna kell n Hibajavító kódok ¨ üzenetet nem kell újra küldeni ¨ Forward Error Correction (FEC): azért forward, mert nem kell a visszajelző csatorna, egyirányú csatornán is működik ¨ Error Correcting Code (ECC)
Hibaérzékelő és javító kódolás n Általánosságban a hibák érzékeléséhez és javításához szükséges eljárások megnövelik a bruttó átviendő adatmennyiséget, miközben az üzenet maga változatlan; azaz ugyanakkora nettó bitráta mellett nő a bruttó bitráta. (A különbözet az overhead, melybe beletartozhat még az üzenet típusát, kódolását, tömörítését, küldőjét, címzettjét jelző információ stb. )
Hibaérzékelés: paritásbit n n n Legegyszerűbb: paritásbit Bináris kódnál az üzenet végére illesztett +1 bit az egyesek számát párosra (even) vagy páratlanra (odd) egészíti ki. Páratlan számú bit meghibásodása (értsd: invertálása) észlelhető, de nem javítható. Hibás üzenetet újra kell kérni. Eredetileg a 7 bites ASCII kódhoz a 8. volt a paritás SCSI, PCI, cache, UART, stb.
Hibajavítás: bittöbbszörözés n n n Minden bitet n-szer küldünk el (n páratlan!) Hiba esetén többségi döntés 1/n bitráta 5 bites verziója: Flex. Ray rendszerben (gépkocsi busz) módszer változata a hardveres tartalékolás (pl. Triple Modular Redundancy, TMR) tárolóknál (bizonyos ECC RAM-ok) (itt a sebesség helyett a tárolókapacitás csökken) ¨ fedélzeti számítógép és egyéb hardverek többszörözése (pl. űrtechnika) ¨ HF: majority logic gate szerkesztése ¨
Hibajavítás: Hamming kód pl. (7, 4) kód: 4 bitenként 3 plusz bit n érzékel 1 vagy 2 bit hibát n kijavít 1 bit hibát n
Hibakezelés n Burst error: egy csoportban lévő bitek hibásodnak meg ¨ ezek ellen nem jók az említett módszerek, amelyek csak néhány bit hibát tudnak javítani n interleaving: „összekeverik” az üzenet elemeit, majd vételkor visszaállítják; így a csoporthibák szétoszlanak kisebb hibákra, amiket könnyebb javítani
Titkosítás Kódolás: szimbólumkészletek kölcsönösen egyértelmű egymáshoz rendelése n » minden kódolás titkosítás is, ha illetéktelen nem ismeri a cél szimbólumkészletet ill. az összerendelést n
Titkosítás Encryption: titkosítás n Cryptography: titkosítás tudománya n Plaintext: a titkosítatlan üzenet (forrás) n Cleartext: titkosítatlanul tárolt/elküldött információ n Ciphertext: titkosított üzenet (szigorúan véve a n betűnként/betűcsoportonként titkosított, nem ideértve a kódszavak használatát)
Titkosítás n Lehetséges eljárások ¨ üzenet n tartalmának titkosítása ezzel foglalkozunk először ¨ üzenetnek magának az elrejtése / üzenetváltás tényének a titkosítása
Titkosítás n n A gyakorlatban olyan eljárást kell választanunk, aminek a megfejtése hosszabb ideig tart, mint az üzenet érvényessége (ha több üzenetet titkosítunk ugyanúgy, akkor azokat is bele kell érteni). Lehetőségek: ¨ a cél szimbólumkészlet ismert (pl. latin abc), de a hozzárendelés titkos n ¨ a modern átviteltechnikában célszerű a latin betűk és az arab számok (ill. szigorúan nézve a bináris kód) használata a cél szimbólumkészlet ismeretlen („titkosírás”) n n ilyenkor persze a hozzárendelés is, azonban ez többnyire egyszerű összerendelés a modern gyakorlatban nem célszerű
Titkosítás Elsőre tfh. emberi szövegeket titkosítunk, betű/hang írásos nyelven n Egyszerű hozzárendelések (pl. latin abc elemeihez a latin abc más elemeit) n ¨ az abc elemeit adott számmal eltolva rendeljük hozzá: A->C; B->D; Z->B, stb n nagyon könnyű megfejteni ¨ véletlenszerűen választott elemeket rendelünk össze n csak kicsivel nehezebb megfejteni
Titkosítás n Előzőek megfejtése: ¨ ismerni kell a nyelvet (feladóból és címzettből kitalálható, ill. véges számú) ¨ kell egy betűgyakorisági táblázat az adott nyelvből ¨ kell egy szótár az adott nyelvből ¨ rövid (1 -2 betűs) szavak könnyen kitalálhatóak
Titkosítás n Előzőek bonyolítása ¨ szóköz karaktert is vmilyen betűvel kódolni kell! ¨ többnyelvű szöveg, akár szándékos helyesírási hibákkal
Titkosítás Ha sok üzenetet akarunk küldeni // hosszabb ideig használjuk a titkosítási eljárást, a feltörés veszélye tart az egyhez n Célszerű olyan eljárást választani, ahol kettéválasztjuk a titkosítási módszert egy állandó részre (ez maga az algoritmus) és egy változtatható részre, ami jellemzően egy karakterekből vagy számokból álló „kulcs” (cryptographic key) n
Titkosítás Mindig számítsunk arra, hogy a titkosítási eljárást (algoritmus) előbb-utóbb felfedezik n Security through obscurity: amikor a technológia ismeretlenségében bízunk n A kulcsos technikák esetében az algoritmus ismerete a kulcs nélkül nem elégséges a feltöréshez (bár segítséget adhat) n
Titkosítás A gyakoriságelemzés kivédése: n Az 1<-> összerendelés helyett az egyes szimbólumokat (betűket) a szövegben lévő helyük alapján más célszimbólumhoz rendeljük hozzá n Ezt a hozzárendelést a kulcs segítségével valósítjuk meg. Ez lehet pl. egy számsor vagy egy vagy több mondat. n
Titkosítás n n Pl. felírjuk egy sorba az üzenetet, alá pedig egy sorba a kulcsmondatot, majd az egymás alatti betűkből valamilyen algoritmus szerint (a betűket számként értelmezve) egy harmadik betűt alkotunk, ezek fogják alkotni a titkosított üzenetet. Ha a kulcsmondat rövidebb a forrásnál, akkor egymás után másoljuk kellő számban.
Titkosítás Pl. angol ábécénél maradva az egyszerűség kedvéért n forrás: „ez a szoveg titkositando” n kulcs: „a kulcsmondat” n eljárás: betűk összege modulo 27 (szóköz=1, a=2, b=3, stb) n eredmény: „g lwmwsbktlbnkuwjemmocst” n
Titkosítás n n n One time pad: egyszer használatos kódkulcs XOR művelettel megvalósított titkosítás, 1919 G. S. Vernam (XOR-ral lehet oda és vissza is kódolni! ellenőrizd!) Feltörhetetlen titkosítás követelményei: ¨ valóban csak egyszer használjuk a kulcsot ¨ kulcs legalább olyan hosszú legyen, mint a forrásszöveg ¨ kulcs véletlenszerű legyen n NB. csak szoftverrel nem lehet valódi véletlenszámgenerátort megvalósítani ¨ kell hozzá hardveres forrás (pl. termikus zaj, alagúteffektus, radioaktív bomlás)
Német Enigma kódkönyv részlete, II. vh.
Titkosítás n One time pad és hasonlók feltörése ¨ kódkönyv (kulcs) illetéktelen kézbe kerül – ilyenkor azonnal felhagyni a használatával, és újat készíteni! ¨ újrahasznosítják a kulcsokat ¨ nem véletlenszerű a kulcs ¨ ld. Venona project, Lorenz, Enigma
Nyilvános kulcsú titkosítás OTP nehézsége még a kódkönyv eljuttatása a címzetthez – nem gazdaságos pl. hagyományos levelezésre n ->Nyilvános kulcsú titkosítás (Public-Key Cryptography) n
Nyilvános kulcsú titkosítás Public-key cryptography n Mindenkinek két kulcsa van: a nyilvános (public) és a titkos (private) n Célok: n ¨ feladó azonosíthatósága (digital signature) ¨ üzenet titkosítása n ezek külön is megvalósíthatók! ¨ kulcsok n eljuttatásának problémáját feloldani titkosítatlan csatornán elküldhető kulcs
Nyilvános kulcsú titkosítás n Üzenetküldés menete: ¨ Üzenetet kódolom a címzett nyilvános kulcsával ¨ Címzett a saját titkos kulcsával tudja dekódolni ¨ ezt hívjuk aszimmetrikus kódolásnak (különböző kulcs kell az olvasáshoz és az íráshoz) ¨ a gyakorlatban sokszor csak egy hagyományos szimmetrikus kulcsot titkosítanak a fenti módszerrel, majd a szimmetrikus kulccsal az üzenetet magát (így kisebb a számításigény) – hybrid cryptosystems n A nyilvános kulcs (nahát) nyilvános, benne van a „telefonkönyvben”; a titkos kulcsra vigyázni kell
Nyilvános kulcsú titkosítás n Feladó ill. üzenet módosításának ellenőrzése: ¨ feladó készít az üzenetről egy „hash”-t (speciális algoritmussal készült kivonat), amit a saját titkos kulcsával titkosít és az üzenet végére biggyeszt ¨ címzett is kiszámolja a hash-t, majd a feladó nyilvános kulcsával dekódolt változattal összehasonlítja
Nyilvános kulcsú titkosítás Probléma: n feladó hitelessége – csak azt tudhatjuk biztosan, hogy az adott nyilvános kulcsú feladótól származik, de abban nem lehetünk biztosak, hogy az, akinek mondja magát n megoldás próbálkozások: n ¨ public-key infrastructure (PKI), web of trust (decentralizálás)
Nyilvános kulcsú titkosítás Matematikai alapja: prímszámtényezők kiszámolása n Két nagyon nagy prímszámot összeszorozni relatíve könnyű (gyors), viszont az eredményből visszaszámolni a két tényezőt (faktorizálás) nagyon számításigényes (one way function) n
Nyilvános kulcsú titkosítás n n n n Számításigény A bemenet „mérete” legyen n (pl. utazó ügynök problémában a városok száma) A problémát kiszámító algoritmus futási ideje ha polinomja n-nek (hatványfgv), akkor ún. polinomiális idő alatt megoldható problémáról beszélünk (P osztály) Feltételezik, hogy létezik a problémák egy olyan osztálya, amiket csak polinomidőnél lassabban lehet megoldani (pl. exponenciális) – NP=? P probléma – ezek kellően nagy n esetén a legjobb mai számítógépeken is kifognak. Visszafele viszont gyors – a megoldás ellenőrzése pl. pl ilyen a prímfaktorizálás is – az egyik prímtényező ismeretében már gyorsan kiszámolható a másik ha találnak P idejű megoldást, összeomolhat a világ titkosítása. . . ? kvantumszámítógépek?
Nyilvános kulcsú titkosítás RSA n m: üzenet (message); n, e: címzett nyilvános kulcsa, d: címzett titkos kulcsa; c: kódolt üzenet n kódolás: n dekódolás: n
Titkosítás n Egyéb módszerek ¨ kódszavak (virágnyelv) használata ¨ üzenet elrejtése steganográfia n zajszint alatti kommunikáció (szórt spektrum) n ¨ félrevezetés – egy feltűnőbb titkos üzenettel álcázni a valódi üzenetet
Titkosítás kódszavak – előre megállapodott jelentés a szavaknak („virágnyelv” ¨ ld. pl. Navajo kódbeszélők – kevesek által ismert nyelv, kódolt jelentésű szavakkal ¨ nem lehet megfejteni, ha kellően ritkán használják; még jobb, ha a kódszavakat cserélik ¨ gyakran a kódszavakat mondatokba illesztik, a mondat többi része lényegtelen, félrevezetés
Állókép tömörítés veszteségmentes n veszteséges n
RGB színtér n RGB: Red ¨ Green ¨ Blue ¨ n n n Tip. 8 bit per szín per pixel =>16 M szín Additív színkeverés
RGB 1911. Szergej M. Prokugyin-Gorszkij fényképezte, három színszűrővel
Y’Cb. Cr Színtér Y’Cb. Cr n Y’: Luma (brightness, grayscale) n Cb: Blue difference chroma n Cr: Red difference chroma n
Egyéb RGB+Y n RGB+CMY n
Színkódolás n n n Színfelbontás: bit per channel, bit per pixel Channel: egy színhez tartozó információ Paletta: sorszámhoz hozzárendeljük a színeket. Lehet fix (kijelző vagy nyomtató által adott) vagy fájlban mi határozzuk meg (pl. 24 bpp RGB-ben). Példák: 1 bpp kétszínű ("monokróm") 4 bpp 16 szín, palettával 8 bpp, 256 szín, palettával 8 bpp szürkeárnyalat (grayscale) (R=G=B) 24 bpp, 8 b per channel, azaz 8 b red, 8 b green, 8 b blue, kb. 16 millió szín ("true color") 32 b: 24 bpp+8 b alpha channel: áttetszőség >8 b per channel: hasznos, ha pl. osztani-szorozni kell
Alpha channel
PNG n n n Veszteségmentesen tömörített raszteres formátum RGB színek (internetre, nem nyomtatásra készült) indexed, true color, grayscale; alpha Blokkokból (chunk) épül fel, CRC kóddal Tömörítés: Deflate algoritmus (LZ 77+Huffmann) Tömörítés előtti prediktív átkódolás (filter): minden pixel értékét néhány szomszédoséból megjósolja, különbséget tárolja => így az értékek jobban a 0 köré csoportosulnak => könnyebben tömöríthető
JPEG n n n Veszteséges tömörítés A színeket Y’Cb. Cr színtérbe konvertálja. Az emberi szem jobb felbontású az Y’ csatornán (luma, fényesség? ), mint a színcsatornákon (Cb, Cr), így a Cb Cr csatornákat lehet csökkentett felbontással tárolni (tip. fele). 4: 4. 4 - no downsampling 4: 2: 2 - 2 x downsample in x 4: 2: 0 - 2 x downsample in x, y
JPEG n A képet (színcsatornánként) 8 x 8 pixeles blokkokra osztja, ezeket pedig előállítja a 64 elemi kép súlyozott összegeként (DCT, discrete cosine transformation) (lényegében a Fourier-tr. alkalmazása 2 D-ben)
JPEG n n Felső kép: az eredeti kép (alul) és egy jpeg változat különbsége. A legnagyobb eltérés az éleknél (hirtelen változásoknál) van. A nagyobb térfrekvenciájú összetevőket elnyomjuk vagy kevesebb biten kódoljuk („aluláteresztő szűrő”).
Hangátvitel n Alap tárolás: ¨ PCM, n ADPCM Veszteségmentes: ¨ FLAC, n MLP Veszteséges ¨ MPEG Layer III (MP 3) ¨ GSM beszédkódoló
PCM (pulse code modulation) n n n Linear PCM: kvantálási szintek egyenletesen vannak elosztva (hagyományos megoldás) Jellemző felbontások: 8, 16, 20, 24 bit per sample Mono vagy sztereo (egy vagy két csatorna) Mintavételi frekvencia: 44 k. Hz (CD), 48 k. Hz (DVD), 22 k. Hz, 11 k. Hz (Shannon-Nyquist!) pl. WAV fájlok 44, 1 k. Hz, 16 b, stereo: 176 400 byte per second (10 584 000 byte per minute)
PCM DPCM: differenciális: az előző minták alapján megjósolja a következő értékét, a különbözetet tárolja (kisebb érték=>kevesebb biten tárolható) n ADPCM: adaptive DPCM: változó kvantálási szintek n Delta mod. : 1 bites DPCM n
FLAC n FLAC: Free Lossless Audio Codec § Lineáris prediktor alapú tömörítés A következő mintát az előző minták lineáris függvényeként közelíti Átviszi a közelítés együtthatóit és a hibajelet (a becsült és a valós érték különbségét) 40 -50%-ára tömöríti a hangot § § §
Mozgókép tömörítés
MPEG
- Slides: 96