Kódolás. Informatika alapjai-3 Kódolás 1/9



Hasonló dokumentumok
Kódolás. 1. Kódoláselméleti alapfogalmak. Informatika alapjai-3 Kódolás 1/8

Hibajavító kódok május 31. Hibajavító kódok 1. 1

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Diszkrét matematika 2.C szakirány

Az Informatika Elméleti Alapjai

Nagy Gábor compalg.inf.elte.hu/ nagy

KÓDOLÁSTECHNIKA PZH december 18.

Diszkrét matematika 2.C szakirány

Informatikai Rendszerek Alapjai

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

Nagy Gábor compalg.inf.elte.hu/ nagy

Kódoláselméleti alapfogalmak

DIGITÁLIS TECHNIKA I KÓD IRODALOM SZIMBÓLUMKÉSZLET KÓDOLÁS ÉS DEKÓDOLÁS

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Hibajavítás, -jelzés. Informatikai rendszerek alapjai. Horváth Árpád november 24.

Diszkrét matematika 2.C szakirány

H=0 H=1. Legyen m pozitív egészre {a 1, a 2,, a m } különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban,

Hibadetektáló és javító kódolások

Nagy Gábor compalg.inf.elte.hu/ nagy

Zárthelyi dolgozat feladatainak megoldása õsz

I+K technológiák. Számrendszerek, kódolás

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Hibajavító kódolás (előadásvázlat, november 14.) Maróti Miklós

Mohó algoritmusok. Példa:

Információs társadalom alapismeretek

Jel, adat, információ

2. Fejezet : Számrendszerek

Az Informatika Elméleti Alapjai

26.B 26.B. Analóg és digitális mennyiségek jellemzıi

dolás, felbontható kód Prefix kód Blokk kódk Kódfa

Miller-Rabin prímteszt

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Hatodik gyakorlat. Rendszer, adat, információ

D I G I T Á L I S T E C H N I K A G Y A K O R L Ó F E L A D A T O K 1.

Informatikai Rendszerek Alapjai

INFORMATIKA MATEMATIKAI ALAPJAI

Az Informatika Elméleti Alapjai

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Számítógépes Hálózatok. 4. gyakorlat

Informatikai alapismeretek

Alapfogalmak a Diszkrét matematika II. tárgyból

Az adatkapcsolati réteg

Matematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás

A Gray-kód Bináris-kóddá alakításának leírása

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Számítógépes Grafika SZIE YMÉK

1. INFORMATIKAI ALAPFOGALMAK HÍRKÖZLÉSI RENDSZER SZÁMRENDSZEREK... 6

Lineáris kódok. u esetén u oszlopvektor, u T ( n, k ) május 31. Hibajavító kódok 2. 1

Balázs Ildikó* ELEKTRONIKUS KOMMUNIKÁCIÓ JÖVİNK KULCSAI

Aszinkron sorrendi hálózatok

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Assembly programozás: 2. gyakorlat

Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

Diszkrét matematika I.

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

LCD kezelési útmutató 4.1 verzióhoz

Statisztikai módszerek

Algoritmuselmélet 7. előadás

4. Fejezet : Az egész számok (integer) ábrázolása

Harmadik elıadás Klasszikus titkosítások II.

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Feladat: Indítsd el a Jegyzettömböt (vagy Word programot)! Alt + számok a numerikus billentyűzeten!

Programozott soros szinkron adatátvitel

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Számítógépes Hálózatok. 5. gyakorlat

Digitális technika VIMIAA02 1. EA

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Kvantum-hibajavítás II.

PRÍMSZÁMOK ÉS A TITKOSÍRÁS

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Szakdolgozat. Pongor Gábor

2.3. Soros adatkommunikációs rendszerek CAN (Harmadik rész alapfogalmak II.)

Verzió: 1.7 Dátum: Elektronikus archiválási útmutató

Infóka verseny. 1. Feladat. Számok 25 pont

Bevezetés a számítástechnikába

Webdesign II Oldaltervezés 3. Tipográfiai alapismeretek

A tartalomelemzés szőkebb értelemben olyan szisztematikus kvalitatív eljárás, amely segítségével bármely szöveget értelmezni tudunk, és

Szín számokkal Képábrázolás

Diszkrét matematika II. feladatok

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Gyakorló feladatok az 1. nagy zárthelyire

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Az Informatika Elméleti Alapjai

PISA2000. Nyilvánosságra hozott feladatok matematikából

Matematikai alapok és valószínőségszámítás. Középértékek és szóródási mutatók

A nyilvános kulcsú algoritmusokról. Hálózati biztonság II. A nyilvános kulcsú algoritmusokról (folyt.) Az RSA. Más nyilvános kulcsú algoritmusok

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Digitális technika VIMIAA01

25. tétel: Bizonyítási módszerek és bemutatásuk tételek bizonyításában, tétel és megfordítása, szükséges és elégséges feltétel

3. feladat Hány olyan nél kisebb pozitív egész szám van, amelyben a számjegyek összege 2?

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Elemi matematika szakkör

2. gyakorlat Mintavételezés, kvantálás

2018, Diszkrét matematika

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Sapientia Egyetem, Matematika-Informatika Tanszék.

Méretlánc (méretháló) átrendezés elmélete

Átírás:

Informatika alapjai-3 Kódolás 1/9 Kódolás A hétköznapi életben a mennyiségek kétféleképpen jelennek meg: Analóg érték: folyamatosan változó, például pillanatnyi idı, egy test tömege. A valóságot leíró jellemzık nagyobbrészt ilyenek. Például a terem hımérséklete, egy ember magassága, súlya (a fizika szerint csak közelítéssel, pl. egy testben lévı atomok száma ~ 10 23 atom, de csak egész szám lehet, tehát a tömeg is kvantumosan változik). Diszkrét érték: véges sok értéket megengedı. Például a teremben ülı hallgatók száma. A mennyiségek megjelenítése is analóg vagy digitális lehet. Például autó km órája, fordulatszám mérıje legtöbbször analóg, a megtett km mutató digitális. A digitális technika a folyamatos mennyiségeket is diszkrét értékké számmá alakítja, és a továbbiakban ezzel operál. Megjegyezzük, hogy a digitális jelfeldolgozás eredménye, amelyik szükségszerően diszkrét, látszhat diszkrétnek vagy folyamatosnak. Például feltőnıen diszkrét állapotai vannak egy közlekedési jelzılámpának, és folyamatosnak látszik egy digitális TV csatornán vett kép. A kódolás általánosságban azzal foglalkozik, hogy a jelenségeket hogyan lehet digitálisan leírni, és egy kódot miért és hogyan kell egy másik kóddá átalakítani. Mindkét eljárást kódolásnak (az utóbbit néha átkódolásnak) nevezik. Szőkebb értelemben a kódolás azzal foglalkozik, hogy adott a diszkrét kódolandó halmaz, a forrás, amely akár egy kódhalmaz is lehet, ennek elemeihez kell kódot rendelni. Kódolási eljárások a mindennapi életben: Mennyiségek leírása számmal Ha analóg értékrıl van szó, azt digitalizáljuk, ami egyszerre analóg-digitális átalakítás és kódolás. Például mérıszalaggal megmérünk egy hosszt, és mm pontossággal leolvassuk. A mérıszám a kód. A beszéd szövegét leírjuk Ez sokkal bonyolultabb kódolási eljárás, mint amilyennek elsıre látszik. A kód elemei a betők és írásjelek, de mik a forrás elemei? Magyar nyelvben alapvetıen a hangok és a szóköz, kivéve a részleges hasonulást (angolul inkább a szavak), de a mondatszerkezetet, amit szintén kódolunk az írásban, egyrészt a szavak hangsúlyozása, másrészt a szavak egymáshoz való viszonya szabja meg. Például: Péter eszik, mert éhes. Mitıl van benne vesszı és pont? A második idézıjeles mondatban miért nincs vesszı, és miért van kérdıjel? Megjegyzem, hogy élıbeszédben gyakran nincs szóköz, azt is ki kell találni! Piktogramok alkalmazása Stb., stb.

Informatika alapjai-3 Kódolás 2/9 1. Kódoláselméleti alapfogalmak Példa A forrás elemek a számok, a kódbetők: +, -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 és a tizedesvesszı, egy kódszó pedig egy szám decimálisan megadva. Másik példa A forráselemek az ABC betői és az írásjelek, a kódbetők 0 és 1 (a kód bináris), a kód a 8 bites u.n. ASCII kód 852 kódlapja (ebben vannak benne a magyar ékezetes betők): Forrás Kód Decimális Hexa A 0100 0001 65 41h B 0100 0010 66 42h... a 1100 0001 97 61h b 1100 0010 94 62h... Á 1100 0001 193 0C1h á 1110 0001 225 0E1h Ha az Ábel szót akarjuk beírni a számítógép memóriájába, akkor a következı byte sorozatot kell beírni: 0C1h,62h,65h,6Ch,0 (a végén lévı 0 jelzi a szöveg végét). Természetesen a hexadecimális számjegyek helyett az azoknak megfelelı bináris sorozatot, pl. C1 helyett 1100 0001-et. Látszik, hogy bető sorozatot kód sorozattá konvertáltunk, azaz forrás üzenetet kódolt üzenetté alakítottunk. (Forrás üzenet: a forrás elemek sorozata. Kódolt üzenet: a forrás üzenet elemenként kódolva). A továbbiakban csak bináris kódokkal foglalkozunk. A kódolás célja Elsısorban az, hogy az információt az informatikai gép számára befogadhatóvá tegyük. Például a számokat binárisra alakítjuk, vagy a szöveget kódoljuk (ld. elıbb), vagy egy képet mintavételezünk, és pontonként kódoljuk. Az információt minél rövidebben akarjuk ábrázolni. Ez általában az 1. lépést követi, és ilyenkor tömörítésnek nevezik.

Informatika alapjai-3 Kódolás 3/9 Az információt zajos csatornán torzulás nélkül akarjuk átvinni. Ekkor hibajelzı vagy hibajavító kódolást alkalmazunk Titkosítás. Elemi kódolási módszerek A forráshalmaz elemeit sorba rakjuk, megszámozzuk, és a sorszámot kódoljuk. Ilyen az ACII kód. A forráshalmaz elemei mennyiségek vagy mennyiség tömbök, és a mennyiségeket kódoljuk. Ilyen a kép leírásra használt BMP formátum, melyben minden képpontot egy vagy több számmal adunk meg. Kódolt üzenet hosszának minimalizálása A forráshalmaz elemei különbözı valószínőséggel fordulhatnak elı. Célszerő, ha a gyakran elıforduló elemekhez rendelt kód hossza kisebb, mint a ritkán elıfordulóké. A pontos kritérium a következı: a kód optimális, ha a forrás elemek kódjának hossza ni = logc pi (feltéve, hogy a forrás elemek teljes halmazt alkotnak) p i az i. elem elıfordulásának valószínüsége, c a kód ABC-ben lévı elemek száma. Az optimum csak közelíthetı, mert a kódhossz csak egész szám lehet. Bináris esetben a kód ABC = (0, 1) Például: ni = log2 p i Elem Elıfordulási valószínőség(p i ) kódhossz = log2 A 0,5 1 B 0,25 2 C 0,25 2 A képlet alkalmazása változó hosszúságú kódolást eredményez, melynél felmerül az üzenet megfejthetıségének kérdése: a vett üzenetben szét kell tudni választani a kódszavakat. (Ha a kódszavak hossza egyforma, akkor a kódolt üzenet biztosan megfejthetı.) Az u.n. prefix kódolás melynél egyik kód sem a másik folytatása megfejthetı (más eljárások is léteznek). Az u.n. prefix kódolás melynél egyik kód sem a másik folytatása megfejthetı (más eljárások is léteznek). pl: az {a:01, b:001, c:100, d:1100} kód prefix, mert egyik kód sem folytatása a másiknak. Az abcc üzenet kódja: 01001100100. Balról olvasva 01 az a kódja, más kód nem kezdıdik így, ezután 001 b kódja, 100 c kódja, végül 100 c kódja. A következı kód nem prefix, és nem megfejthetı {a: 00, b:01, c:11, d:0001}, nem prefix, mert d kódja folytatása a kódjának. Az abd kódolásával adódó 00010001 üzenet abd, dab, abab és dd üzenetként is értelmezhetı. p i

Informatika alapjai-3 Kódolás 4/9 Huffman kódolás Minimális átlagos hosszúságú prefix kódot eredményezı eljárás A kódolás algoritmust a következı példán mutatjuk be: Adott az alábbi kód és elıfordulási valószínőségek: Elem Valószínüség a1 0.2 a2 0.09 a3 0.19 a4 0.12 a5 0.11 a6 0.09 a7 0.2 p i = 1 teljesül. a. Vegyük a két legkisebb valószínőségő elemet, és különböztessük meg ıket egy bittel, s utána vonjuk ıket össze egyetlen olyan elemm;, melyek valószínősége a két elem valószínőségének összege. b. Ezután az összevont elemmel helyettesítve azokat, amelyek összevonásából keletkezett, folytassuk az elızı pont szerint, amíg lehetséges. A gyakorlati megvalósításhoz rendezzük az elemeket elıfordulási valószínőségük szerint, és vonjuk össze a két utolsót. Ezt ismételjük addig, amíg lehet: Rendezés a1:0,2 a7:0,2 a3:0,19 a4:0,12 a5:0,11 a2:0,09 a6:0,09 Összevonás a1:0,2 a7:0,2 a3:0,19 a4:0,12 a5:0,11 a26:0,18 Rendezés a1:0,2 a7:0,2 a3:0,19 a26:0,18 a4:0,12 a5:0,11 Összevonás a45:0,23 a1:0,2 a7:0,2 a3:0,19 a26:0,18 Rendezés a45:0,23 a1:0,2 a7:0,2 a3:0,19 a26:0,18 Összevonás a45:0,23 a1:0,2 a7:0,2 a236:0,37 Rendezés a236:0,37 a45:0,23 a1:0,2 a7:0,2 Összevonás a236:0,37 a45:0,23 a17:0,4 Rendezés a17:0,4 a236:0,37 a45:0,23 Összevonás a17:0,4 a23456:0,6 Rendezés a23456:0,6 a17:0,4 Összevonás a1234567:1 - az utolsó két sort csak a rend kedvéért írtuk oda, az magától értetıdı. Rajzoljunk egy gráfot, amelyik az összevonásokat ábrázolja, és az összevonásoknál a két élet jelöljük 0-val és 1-gyel:

Informatika alapjai-3 Kódolás 5/9 Az egyes események kódolása a kiadódó fa gyökerétıl kiindulva egy-egy levélig (kódolandó karakterek) található 0-kat ill. 1-eket egymásután írva adódik: a1 0.2 00 a2 0.09 1010 a3 0.19 100 a4 0.12 110 a5 0.11 111 a6 0.09 1011 a7 0.2 01 Az elıfordulási valószínőséggel súlyozott átlagos kódhossz 2,38 (állandó kódhossznál 3 lenne). Megjegyezzük, hogy a gráf a táblázat létrehozása nélkül is megrajzolható. A változó hosszúságú kódolás felhasználására példa lehet a file tömörítés. A file-ban levı karakterekrıl statisztikát készítve megállapítható a karakterek elıfordulási valószínősége. Ez alapján pedig elvégezhetı a tömörítés. A tömörítéssel külön elıadásban foglalkozunk. Információ átvitel zajos csatornán Analóg jelátvitelnél a csatorna zaja szükségszerően hozzáadódik a jelhez, és rontja a minıséget. Digitális jelátvitelnél zajos csatorna esetén is elérhetı, hogy a vételi oldalon tetszıleges elıírt valószínőséggel visszakapjuk a hibamentes adott információt! A bináris szimmetrikus emlékezet nélküli zajos csatorna modellje: p 0 0 1-p 1 1 p - a helyes átvitel valószínősége p (p>0.5, ha ez nem teljesül akkor a csatorna invertál...) - a hibás átvitel valószínősége 1-p Ebben a hibamodellben un. átállítódásos hibák szerepelnek, vagyis hiba esetén az információs bit negáltját érzékeli a vevı logika. Azt is feltételezzük, hogy a csatorna emlékezet nélküli és idı invariáns, azaz az üzenet bármelyik bitjén ugyanakkora a tévesztés valószínősége, és a nem függ a korábbi tévesztésektıl. (Megjegyezzük, hogy a fenti modell nem minden alkalmazásban érvényes, távközlésben nagy jelentısége van az aszimmetrikus és/vagy emlékezettel rendelkezı csatornának is.)

Informatika alapjai-3 Kódolás 6/9 A továbbiakban csak fix hosszúságú bináris kódolással foglalkozunk. Egy N bites üzenetben n bites hiba elıfordulásának valószínősége: n ( N n) N pn = (1 p). p. n A képlet azon alapszik, hogy független események együttes elıfordulásának valószínősége a valószínőségek szorzata, egymást kizáró események elıfordulásának valószínősége a valószínőségek összege. Az az esemény, hogy N bites üzeneben n hiba van, azt jelenti, hogy n N bit hibás, N-n bit hibátlan. Ez -féleképpen fordulhat elı. n 9 9*8*7 Például = = 84. 9 elembıl 3 elemet 84 féleképpen lehet kiválasztani 3 1*2*3 ha 1 p << 1, akkor p n 1 n N pn ( 1 p). n Hibajelzés/javítás A hibajelzés/javítás alapja az, hogy az átvitelre alkalmazott kódszavak közötti minimális Hamming távolság (a kód Hamming távolsága) elıírt érték. Hamming távolság: két kódszóban lévı eltérı bitek száma. Például A Hamming távolság H = 4. A vétel oldalon tévesztést az okoz, ha egyik adott kód helyett egy másik, a kódkészletben lévı kódot veszünk. Ahhoz, hogy a fenti példában A helyett B-t vegyünk, négy bithibának kell elıfordulnia. A helyzetet a következı ábra szemlélteti: (E1 azon kódszavak halmaza, melyek Hamming távolsága A-tól 1, B-tıl 3; E2 azoké, melyek Hamming távolsága A-tól és B-tıl is 2; E3 azoké, melyek Hamming távolsága B-tıl 1, A-tól 3.) Egy bithiba esetén arra a kódra javíthatunk, melyhez jobban hasonlít a vett kód, pontosabban, amelyiktıl kisebb a Hamming távolsága. Két hiba esetén nem tudunk dönteni, de észleljük a hibát. A leírt módszer egy hibát javít, két hibát jelez. Másképpen is eljárhatunk: E1, E2 vagy E3 elıfordulásakor is azt mondjuk, hogy a vett kódszó hibás, és például újra kell küldeni az üzenetet. Ez a módszer legfeljebb 3 hibát jelez. Általánosságban ahhoz, hogy C hibát javító és D hibát jelzı kódot konstruáljunk (D >= C, a szükséges minimális Hamming távolság) H = 2 * C + (D C) + 1 = C + D + 1 (A helyes értelmezéshez fontos: C hibát javító kód legalább C hibát jelez is! Például 3 hibát javító kód minimális Hamming távolsága H = 2*3 + (3 3) + 1 = 7)

Informatika alapjai-3 Kódolás 7/9 Példák hibajelzı és javító kódokra Paritás A megengedett kódszavakban páratlan számú 1-nek kell lennie (a kódok súlya páratlan [súly=a kódban lévı egyesek száma]). Az egy hibás kódszavakban biztosan páros számú 1 van, tehát felismerhetık. A konstruáláshoz egy plusz bitet kell adni a kódhoz ez a paritásbit. Ennek értékét úgy kell beállítani, hogy a kód súlya páratlan legyen. Például: Kódszó Súly Paritás Paritásos kód 01101100 4 1 011011001 11011100 5 0 110111000 Tételezzük fel, hogy a kódszavak 8 bitesek, és egy bit helyes átvitelének valószínősége p = 99% = 0,99. A paritás nélküli kódszó hibátlan átvitelének valószínősége 0,99 8 = 0,92 = 92%, a hibás vétel valószínősége 8%. Ha paritásbitet alkalmazunk, a 8 bit helyett 9 bitet kell átvinni, és 1, 3, 5, 7 vagy 9 hibát tudunk jelezni. Tételezzük fel, hogy az 3, 5, 7, 9 hiba elıfordulásának valószínősége sokkal kisebb, mint az 1 hibáé és 2 hibáé (ezt tulajdonképpen meg kellene vizsgálni). Ekkor a jelzett hibák kereken az egyszeres, a nem jelzett hibák a kétszeres hibák, mert a 3, 4, 5, 6, 7, 8, 9 hiba valószínősége ezeknél sokkal kisebb: 9 p 1 (1 p). = 0,01*9 = 0,09 1 2 9 2 p 2 (1 p). = 0,01 *(9*8/ 2) = 0,0036 2 Azaz 8% helyett csak 0,36% valószínőséggel fordul elı, hogy jelzetlen hiba van a vételi oldalon. A javulás még látványosabb, ha a csatorna jobb minıségő, azaz 1-p sokkal kisebb (egyszerően be kell helyettesíteni a képletbe, és kipróbálni). Kérdés, hogy mi történjék, ha paritáshibás a vett kód? Nem tudjuk megmondani, hogy melyik bit változott meg, ezért két lehetıség van: - újra kell küldeni az üzenetet. Ehhez kétirányú kapcsolatot kell kialakítani! - eldobni a hibás üzenetet. Ha az üzenet nélkül nem biztonságos a további mőködés, azt le kell állítani. Például, ha a PC memóriája paritáshibát jelez, a gépet újra kell indítani, és adatok például egy megszerkesztett szöveg veszhetnek el. Végül megjegyezzük, hogy a páros paritású kód melyben minden kódszó súlya páros, ugyanúgy viselkedik, mint a páratlan paritású. Egy hibát jelzı 7 bites (4 bit hasznos információt tartalmazó), úgynevezett Hamming kód A következı 7 bites kódban az elsı 4 bit hordozza az információt, a maradék 3 azt eredményezi, hogy bármelyik 2 kódszó között a Hamming távolság legalább 3, azaz a kód 1 hiba javítására alkalmazható: 0000 000 0100 110 1000 111 1100 001 0001 011 0101 101 1001 100 1101 010 0010 101 0110 011 1010 010 1110 111 0011 110 0111 000 1011 001 1111 100

Informatika alapjai-3 Kódolás 8/9 Például két, a táblázatból vett kód Hamming távolsága: Kód1 0100 110 Kód2 0101 101 Különbség 0001 011 (Megjegyezzük, hogy a fenti kódban a kiegészítı biteket szisztematikusan hoztuk létre). Kiegészített Hamming kód Az elızı kódhoz tegyünk hozzá egy páratlan paritásbitet. Ekkor a kódszavak minimális távolsága 4 lesz (ez nem magától értetıdı, de ellenırizhetı!): 0000 0001 0100 1100 1000 1111 1100 0010 0001 0110 0101 1011 1001 1000 1101 0101 0010 1010 0110 0111 1010 0100 1110 1111 0011 1101 0111 0000 1011 0011 1111 1000 Így a kód egy hiba javítására, két hiba jelzésére használható. Kiegészített Hamming kódot (csak nem 8, hanem 21 bitest) használnak a PC-k ECC memóriáiban. ECC: Error Correcting Code). Egy érdekes kód Gray kód Pozició (helyzet) kódolására használják. Az egymásután következı pozíciók kódja egy Hamming távolságú. Igy a pozíció érzékelık (pl. foto érzékelık) a pozíció határ átmenetnél nem adnak hibásan "távoli" pozíciót jelentı kódot, ahogy az több Haming távolságú kód estén elıfordulhatna. Egy 3 bites Gray kód (egy n bites Gray kód nem túl bonyolult algoritmussal generálható az n bites bináris kódból): 000 Az ábra a 3 bites Gray kód alkalmazását mutatja 001 egy úgynevezett kódtárcsán. A kódtárcsán lévı 011 csíkokat 3 érzékelı figyeli, így az elfordulást 1/8 010 kör felbontással lehet jelezni. Látszik, hogy az 110 átmeneteknél mindíg csak az egyik csík 111 változik. 101 100 000 A kódolás elmélet a matematika nagy fontosságú (és nagyon bonyolult) ága. Bonyolult kódolási eljárásokat alkalmaznak tömörítésre, hibavédelemre és titkosításra. Titkosítás A titkosítás célja az, hogy csak az tudja elolvasni az üzenetet, akinek szól. Titkos az, amit nem tudunk elolvasni, például - hieroglifák - bármilyen idegen nyelv, amit nem ismerünk - számítógép belsı ábrázolásban adott kódsorozat, például: 496E666F726D6174696B6120616C61706A6169 (Informatika alapjai) A jó titkosírást a kulcs ismerete nélkül nagyon nehéz, vagy gyakorlatilag lehetetlen megfejteni. Kulcs: szótár és/vagy algoritmus, amivel az üzenet titkosítható és megfejthetı. A klasszikus titkosírásokban kétféle módszert alkalmaztak: - helyettesítés, ennek egyszerő esete a karakterkódok hexadecimális megadása.

Informatika alapjai-3 Kódolás 9/9 - áthelyezés, amikor a szöveg karaktereit átrendezik. Az áthelyezéses titkosítás klasszikus esete a perforált négyzetrács alkalmazása. Készítsünk négyzetrácsot, melyen a négyzeteket úgy perforálják, hogy a négyzetet 90 fokonként forgatva mindig más helyen legyenek a lyukak (szorgalmi feladat: hogyan lehet ilyen négyzetrácsot készíteni?): A rácson lévı üres helyekre beírjuk az INFORMATIKA ALAP szöveg elsı 4 betőjét, majd 90 fokkal elforgatjuk a rácsot, és folytatjuk. Ezt négyszer lehet ismételni. A rács levétele után a jobb oldalon lévı négyzet látszik. A titkos üzenet: IAIRMKLNAAFAPOT. A megfejtéshez négyzetbe rendezve le kell írni a titkosított szöveget, majd a rácsot ráhelyezve és forgatva az eredeti szöveg elolvasható. A gyakorlatban sokkal nagyobb négyzetrácsot készítenek, amelyik nehezebben megfejthetı. Ehhez hasonló elven mőködött a 2. világháborúban a német tengeralattjárókon alkalmazott Enigma titkosító abban a szöveget háromszor egymás után titkosították, azaz az átrendezett szöveget egy másik kulccsal újra átrendezték. A szövetségesek a kódot sok-sok üzenetet elemezve megfejtették. Természetesen a helyettesítés és áthelyezés kombinálható. A számítógépes világban széleskörően alkalmazzák a titkosítást. Kétféle alkalmazást különböztetnek meg: - titkos kulcsú. Ennél a titkosításra használt kulcs alkalmazható a dekódolásra is. Ha valaki hozzájut a kulcshoz, az meg tudja fejteni az üzenetet. A titkos kulcs megvan az üzenetküldınél és a vevınél is. Ha a kulcsot ellopják, vagy feltörik, az üzenet megfejthetı. - nyilvános kulcsú: a titkosításra más kulcs szolgál, mint a dekódolásra. A titkosításra szolgáló kulcs nyilvános lehet, így bárki küldhet titkos üzenetet, amit viszont csak a jogosított vevı akinél a kulcs van tud dekódolni. A titkos kulcs csak a vevınél van meg, az üzenetküldı(k) csak a nyilvános kulcsot kapják meg. Ha a nyilvános kulcsot ellopják, csak üzenetet küldeni tudnak, dekódolni nem. Hivatkozások Titkosítás Titkos kulcsú titkosítás Nyilvános kulcsú titkosítás