Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Változó hosszúságú kódolás

Hasonló előadás


Az előadások a következő témára: "Változó hosszúságú kódolás"— Előadás másolata:

1 Változó hosszúságú kódolás
Változó hosszúságú kódolás (VLC : Variable Length Coding) esetén a kódolás kizárólag a kódolási redundancia csökkentésén alapszik. Maximális hatékonysága 30 : 1 körül van. A változó adathosszúságú kódolás két legelterjedtebb fajtája: Huffman-kódolás Aritmetikai kódolás

2 Általában minden szövegben vannak gyakrabban előforduló szimbólumok.
Gyakoriságfüggő kódolásnak hívjuk az ezen felismerés alapján működő tömörítő algoritmusokat. Egy érdekes kérdés, hogy vajon mekkora a szimbólumonkénti minimális bitszám (kódhossz). Egymástól függetlenül kódolt szimbólumokkal azonban nem lehet elérni az elméleti kódolási határt, azért, mert azok a legtöbb esetben törtszámú bitet tartalmaznak.

3 Huffman kódolás A Huffmann kódolás az egyik legismertebb és leggyakrabban alkalmazott kódolási algoritmus. A módszert David Huffman dolgozta ki 1952-ben, amivel jól meg lehet közelíteni az elméleti minimumot. David Huffman

4 A módszer lényege, hogy az egyes adatokhoz rendelt Huffman kód hossza (bitszáma) fordítva arányos az adat előfordulásának a gyakoriságával. A leggyakrabban előforduló adatok Huffman kódja rövid, a ritkán előforduló adatok Huffman kódja hosszú. Egyetlen Huffman kód sem hosszabb az eredeti adatkódnál.

5 Az állomány tömörítéséhez egy kódtáblára van szükség, ami vagy már meglévő kódtábla, vagy a tömörítéskor készülő kódtábla valamelyike: Statikus Huffman kódtábla – előre elkészített táblázat, nagyszámú hasonló állomány elemzése alapján alakult ki. Erre példa a fax kódolása. Globálisan adaptív Huffman kódtábla – az állomány adatainak elemzése alapján készül. Az állományt kétszer kell végigolvasni: először a táblázat elkészítéséhez, másodszor a tényleges kódoláshoz. Jobb tömörítési arány, de lassúbb. Lokálisan adaptív Huffman kódtábla – a kódgenerálás során nem állandó, így a kódok jelentése változik. Ebben az esetben a legjobb a tömörítési arány, de ez a módszer a leglassúbb.

6 Egy Huffman kódolással tömörített állomány kibontásához ismerni kell a használt kódtáblát.
Statikus kódtábla használata esetén nem kell megadni a használt kódtáblát, mert az közismert. A globálisan adaptív és a lokálisan adaptív kódtábla használatakor a tömörített állománynak tartalmaznia kell a használt kódtáblát, hogy a tömörített állomány kibontható legyen.

7 A kódolás működése Egy listában tároljuk az összes szimbólumot, és a hozzájuk tartozó előfordulási valószínűségeket is. Majd ebből a listából felépítünk egy bináris fát, úgy, hogy a csomópontjaiban tároljuk a szimbólumokat. Keressük meg a két legkisebb értékű csomópontot, és jelöljük meg őket. A bináris fát bővítsük úgy egy újabb csomóponttal, hogy ez az új csomópont egy-egy éllel kapcsolódjon a két előzőleg megjelölt csomóponthoz. Az új csomópont előfordulási valószínűsége egyenlő a két hozzákötött csomópont előfordulási valószínűségének összegével (a=2/6, b=1/6, c= 3/6).

8 Addig ismételjük az előző lépést, amíg már csak egyetlen jelöletlen csomópont marad. A jelöletlen csomópont valószínűsége mindig 1 lesz. Az egyes szimbólumok Huffmann-kódját úgy kapjuk meg, hogy a fában a jelöletlen szimbólumtól az adott szimbólumig vezető úton haladva feljegyezzük az érintett jobb, és bal oldali értékeket. A kódot maga az út határozza meg, méghozzá úgy, hogy a baloldali utat 0-val, míg a jobb oldalit 1-gyel jelöljük.

9 Példa Huffmann-kódolásra: jelöletlen szimbólum
0 1 Kódolandó karaktersorozat: „abccca” Kódolt karaktersorozat: a b c c c a |0 0| 0 1|1 | 1 | 1 | 0 0| c a B

10 A példában a 48 biten tárolt adatot („abccca” karaktersorozatot) 9 bitre kódoltuk át, ami 80%-os tömörítési arányt jelent. A Huffmann-kódolás nem csak kettes számrendszerben használható. Minden lépésben kiválaszthatjuk a 256 legkisebb jelöletlen csomópontot is. Ebben az esetben minden egyes közbenső csomópontból 256 él ágazik ki. Tehát olyan kódot kapunk, amelyben minden szimbólum byte-ok egész számú többszöröse.

11 Egyéb veszteségmentes tömörítési algoritmusok
GIF (Graphics Interchange Format), LZW (Lempel-Ziv-Welch) módszert alkalmazza. PNG (Portable Network Graphics), az LZ egy módosított változatát használja. Delta kódolás (két egymást követő képkocka közti különbséget tömöríti).

12 Veszteséges tömörítés
A veszteséges módszerek használatának az előnye a veszteségmentes módszerekhez képest, hogy sok esetben a veszteséges tömörítés sokkal kisebb fájlt képes előállítani, mint bármely veszteségmentes, és még így is kellően jó minőséget ér el.

13 Veszteséges tömörítés
A veszteséges módszereket általában a hang-, kép- és videótömörítés során használják. A tömörítési arány (tehát a tömörített fájl mérete a tömörítetlenhez képest) általában a videók esetében a legjobb (akár 300:1 is lehet látható minőségromlás nélkül), hanganyagnál ez az érték 10:1 körül mozog. A veszteségesen tömörített képeknél is gyakori a 10:1-es tömörítési arány, de a minőségromlás itt vehető észre talán a legkönnyebben.

14 Sok veszteséges adattömörítő eljárást dolgoztak ki, ezek két fő csoportba sorolhatók:
1. Előrebecslésen alapuló eljárások. Ezek az eljárások általában kevés információ ismeretében nagyszámú további információ megjelenését „becsülik meg” előre. 2. Matematikai transzformáción alapuló módszerek. Ezeknél a módszereknél az információt konkrét értékek helyett függvények kapcsolatával írják le. A veszteséges tömörítési módszerekre az interneten általában codec néven hivatkoznak.

15 Veszteséges előrebecsléses kódolás
Előrebecsléses kódolásnál pl. egy kép esetében az egymáshoz közeli részletek között jelentős kapcsolat (korreláció) áll fenn, így egy kép adott részlete alapján annak közeli környezete többé-kevésbé megbecsülhető. Veszteséges előrebecsléses kódolást alkalmaznak többek között az MPEG formátumokban.

16 Transzformációs kódolás
A transzformációs kódolás olyan megfordítható lineáris transzformáció, amely az adatállományt (általában annak kisebb részleteit, az ún. blokkokat) transzformációs együtthatókra képezi le, melyeket kódol. Tömörítésre a lehetőséget az biztosítja, hogy a transzformációs együtthatók között igen sok a kis abszolút értékű együttható, ezek minőségromlás megengedése esetén elhanyagolhatók.

17 Transzformációs eljárások
Sokféle transzformációs eljárás van. Pl.: Karhumen-Loeve transzformáció (KLT) , diszkrét Fourier transzformáció (DFT) , Wals-Hadamart transzformáció (WHT) , diszkrét koszinusz transzformáció (DCT)) Ezek közül a hatékonyság, használhatóság és megvalósíthatóság alapján lehet választani.

18 Transzformációs eljárások
A diszkrét koszinusz transzformáció használatát igen hatékony implementációk teszik lehetővé, ezért jelentősége az elmúlt években megnőtt. DCT- t használnak többek között a JPEG (Joint Photographic Experts Group) MPEG (Moving Picture Experts Group ) tömörítési eljárások is. (MPEG-1 Audio Layer 3 - MP3, )

19 Hálózatbiztonsági kérdések
Az adatok illetéktelenek számára értelmez-hetetlenné tétele. Meg kell akadályozni, hogy illetéktelenek az adatfolyamba üzeneteket szúrhassanak be vagy törölhessenek onnan ki. A kommunikáló felek megbízható és hami-síthatatlan azonosítása. A titkosítást a fizikai, a szállítási vagy a megjelenítési rétegben célszerű megvalósítani.

20 Titkosítás a fizikai rétegben
Egy titkosító egységet helyeznek be minden egyes számítógép és a fizikai közeg közé. Ekkor a számítógépből kilépő összes bit titkosításra kerül, és minden számítógépbe belépő bit már megfejtve érkezik oda. Ezt a megoldást kapcsolattitkosításnak (link encryption) nevezik. Egyszerű, de rugalmatlan. Előnye, hogy itt a fejrészek és az adatok is titkosítva vannak.

21 Titkosítás a szállítási és a megjelenítési rétegben
A titkosító funkciót a szállítási rétegbe helyezve a teljes viszony titkosítható lesz. Ennél kifinomultabb megközelítés az, amikor a titkosítást a megjelenítési rétegben valósítjuk meg. Ez utóbbinak előnye az, hogy a többletmunkát jelentő titkosítást csak a titkosítandó adaton végezzük el, a fejrészeken nem.

22 A hálózati titkosítás alapfogalmai
Titkosítási eljárás: a nyílt szövegnek (titkosítandó üzenet) egy olyan függvénnyel történő átalakítása, amelyet egy kulcs parametrizál. A titkosítási eljárás kimenete a titkosított szöveg (kriptogramm). A titkosítás alapvető szabálya, hogy a titkosítás készítőjének feltételeznie kell, hogy egy lehetséges támadó is ismeri a titkosítási eljárást.

23 A hálózati titkosítás alapfogalmai
A kulcs szerepe az, hogy a rendszer akkor is feltöretlen maradjon, ha a betörő ismeri a titkosításhoz használt módszert. Az általános titkosítási módszer csak néhány évenként cserélhető, ezzel szemben a kulcsot gyakran lehet cserélni. Azonban egy kulcsot csak egyszer lehet felhasználni. A titkosított szövegek megfejtésének alapja a próbálkozás.

24 Hálózati titkosítás Akkor jó egy titkosítási algoritmus,
ha a nyers erő módszerénél (próbálgatás) nincs jobb a feltörésére. és a lehetséges kulcsok száma elegendően nagy ahhoz, hogy a próbálgatás ne legyen kifizetődő. A próbálkozások számát jelentősen lehet csökkenteni a természetes nyelvekben rejlő statisztikai tulajdonságok megfigyelése alapján.

25 Hálózati algoritmusok készítése
Régen a titkosítást készítők egyszerű algoritmusokat használtak, ahol a megfelelő biztonság eléréséhez hosszú kulcsokat alkalmaztak. Ma cél, hogy a titkosító algoritmus minél bonyolultabb legyen. Azért célszerű így tenni, hogy ha a megfejtő tetszőlegesen sok titkosított szöveggel rendelkezik, még akkor se tudjon mit kezdeni vele.

26 Titkosítási módszerek
Helyettesítéses rejtjelezések: A betűket vagy a betűcsoportokat egy másik betűvel vagy betűcsoporttal helyettesítik. Azonban a rejtjelezések könnyen megfejthetők kevés titkosított szöveg alapján. Változatlanul hagyják a nyílt szöveg szimbólumainak sorrendjét. Felcseréléses rejtjelezések: Megváltoztatják a betűk sorrendjét.

27 Helyettesítéses rejtjelezés
Egyábécés helyettesítés: Első híres alkalmazójáról, Július Caesarról szokták Caesar-féle rejtjelezésnek is hívni. Az eredeti abc-t a k karakterrel eltolt abc-vel helyettesíti, és így írja le a szöveget. Bár a lehetőségek száma nagy, de nyelvi-statisztikai alapon könnyen megfejthető.

28 Többábécés rejtjelezés:
Egy 26 Caesar-abc sort tartalmazó négyzetes mátrixot használunk. A nyílt szöveg fölé egy kulcsot (egy szöveget) írunk, és a kulcsban lévő betű dönti el, hogy a mátrix melyik sorát használjuk az adott nyílt szövegbeli betű titkosítására. Pl.: a mátrix ABC...XYZ BCD...YZA . ZAB...WXY kulcs: KULCSOCSKAKULCSOCSKAKULCSOCSKA nyílt szöveg: HOLNAP TAMADUNK titkos szöveg: RNW... A megfejtés alapja: a kulcs hosszának jó megfejtése.

29 Nyilvános kulcsú titkosítás
Hogyan tud két korábban nem érintkező fél egymással titkosított adatcserét végezni? 1976-ban Diffie és Hellmann dolgozott ki erre egy megoldást, a nyilvános kulcsú titkosítást. Public-key cryptography Asymmetric cryptography Az eddig használt titkosító algoritmusok ugyanis feltételezték, hogy mind a titkosításhoz, mind a megfejtéshez használt kulcsokat is titokban kell tartani.

30 Nyilvános kulcsú titkosítás
Mindkét fél két kulccsal rendelkezik: egy titkossal, amit őriz, és egy nyilvánossal, amit bárkinek odaad. A nyilvános kulccsal kódolt üzenetet a titkossal lehet dekódolni. A nyilvános kulcsból és az üzenetből nem lehet rájönni a titkosra.

31 A kommunikáció folyamata
elkéri B nyilvános kulcsát ezzel kódolja az üzenetet a kódolt üzenetet elküldi B-nek B: titkos kulcsával dekódolja az üzenetet. Ezen az elven működik az Internet egyik legelterjedtebb titkosító protokollja az SSH (Secure SHell)

32

33 Egy másik nyilvános kulcsú módszer (Three-pass protocol)
rendelkezik egy s, t titkos, ill. nyilvános kulcspárral kódolja az m üzenetet s-sel: E(s,m), és elküldi B-nek B: rendelkezik egy r, q titkos, ill. nyilvános kulcspárral kódolja a kapott üzenetet r-rel: E(r,E(s,m)), és visszaküldi A-nak dekódolja az üzenetet t-vel: D(t,E(r,E(s,m)))=E(r,m), majd elküldi B-nek dekódolja az üzenetet q-val: D(q,E(r,m))=m

34 RSA-algoritmus Az egyik legismertebb nyilvános kulcsú titkosítású algoritmus. Nevét a felfedezőiről kapta (Rivest, Shamir, Adleman). A módszer biztonsága a nagy számok szorzattá alakításának nehézségén alapszik. Pl.: egy 500 bites szám szorzattá alakítása 1025 évig tartana (1 MIPS-es gépen).

35 Digitális aláírás A küldő egy meghatározott algoritmus szerint elkészíti az üzenet „ujjlenyomatát”, és saját titkos kulcsával kódolja. Ez a kódolt „ujjlenyomat” a digitális aláírás. A vevő ugyanezzel az algoritmussal szintén létrehozza a kapott üzenet „ujjlenyomatát”, majd ezt összehasonlítja az adó nyilvános kulcsával dekódolt, az üzenettel együtt érkező „ujjlenyomattal”. Ezt az ellenőrzést a szoftverünk, a böngésző, automatikusan elvégzi, egy kulcshitelesítő központtal felvéve a kapcsolatot.

36

37 Digitális aláírás Probléma a megbizhatóság, azaz a titkos kulcsot nem használja-e egy harmadik kívülálló személy. Ha egy titkos kulcs idegen kezekbe került, akkor azt érvénytelenné kell tenni. De hogyan? Erre megoldás egy független harmadik fél bevonása a kommunikációba, akiben a másik két kommunikáló fél kölcsönösen megbízik. Digitális közjegyzőnek (certificate authority) hívjuk. Ő tartja nyilván, hogy egy digitális aláírás mettől meddig érvényes.


Letölteni ppt "Változó hosszúságú kódolás"

Hasonló előadás


Google Hirdetések