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

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

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

Informatikai Rendszerek Alapjai

Diszkrét matematika 2.C szakirány

Az Informatika Elméleti Alapjai

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

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

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

Kódoláselméleti alapfogalmak

Diszkrét matematika 2.

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

KÓDOLÁSTECHNIKA PZH december 18.

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

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

Mohó algoritmusok. Példa:

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}

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,

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

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Diszkrét matematika 2.C szakirány

Zárthelyi dolgozat feladatainak megoldása õsz

Az Informatika Elméleti Alapjai

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

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

Az Informatika Elméleti Alapjai

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

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.

Jel, adat, információ

Az adatkapcsolati réteg

2. Fejezet : Számrendszerek

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

Informatikai Rendszerek Alapjai

Miller-Rabin prímteszt

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

Informatikai alapismeretek

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

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

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

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

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

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

Webdesign II Oldaltervezés 3. Tipográfiai alapismeretek

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

Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

Diszkrét matematika I.

Algoritmuselmélet 7. előadás

1. feladat: A decimális kódokat az ASCII kódtábla alapján kódold vissza karakterekké és megkapod a megoldást! Kitől van az idézet?

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

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

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

Digitális technika VIMIAA02 1. EA

Diszkrét matematika II. feladatok

Assembly programozás: 2. gyakorlat

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

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

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

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

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

10. fejezet Az adatkapcsolati réteg

Programozott soros szinkron adatátvitel

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

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

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

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

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

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

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

Digitális technika VIMIAA01

Elemi matematika szakkör

Bevezetés az algebrába 2

Bevezetés az algebrába 2 Lineáris algebra alkalmazásai

Shor kvantum-algoritmusa diszkrét logaritmusra

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

2018, Diszkrét matematika

Gyakorló feladatok az 1. nagy zárthelyire

Kvantum-hibajavítás I.

Felvételi tematika INFORMATIKA

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

2016/11/27 08:42 1/11 Kriptográfia. Titkosítás rejtjelezés és adatrejtés. Rejtjelezés, sifrírozás angolosan: cipher, crypt.

Az Informatika Elméleti Alapjai

5. KÓDOLÓ, KÓDÁTALAKÍTÓ, DEKÓDOLÓ ÁRAMKÖRÖK ÉS HAZÁRDOK

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

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

Valószínűség-számítás, statisztika, titkosítási és rendezési algoritmusok szemléltetése számítógép segítségével Kiss Gábor, Őri István

Megoldás Digitális technika I. (vimia102) 4. gyakorlat: Sorrendi hálózatok alapjai, állapot gráf, állapottábla

Digitális technika VIMIAA01

Kriptográfiai alapfogalmak

Információs társadalom alapismeretek

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

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

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

Fábián Zoltán Hálózatok elmélet

Oszthatósági problémák

Diszkrét matematika II. feladatok

Tömörítés, kép ábrázolás A tömörítés célja: hogy információt kisebb helyen lehessen tárolni (ill. gyorsabban lehessen kommunikációs csatornán átvinni

Átírás:

Informatika alapjai-3 Kódolás 1/8 Kódolás 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 (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ő. 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. 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.

Informatika alapjai-3 Kódolás 2/8 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. 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.

Informatika alapjai-3 Kódolás 3/8 Például: 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). pl: a {01, 001, 100, 1100} kód prefix. A következő kód nem prefix, és nem megfejthető {a: 00, b:01, c:11, d:0001}, ugyanis az abd kódolásával adódó 00010001 üzenet abd, dab, abab és dd üzenetként is értelmezhető. 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: pi = 1 teljesül. Elem a1 0.2 a2 0.2 a3 0.19 a4 0.12 a5 0.11 a6 0.09 a7 0.09 Valószínüség 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 eseménnyé, melyek valószínűsége a két esemény valószínűségének összege. b. Ezután az összevont eseménnyel 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 a2:0,2 a3:0,19 a4:0,12 a5:0,11 a6:0,09 a7:0,09 Összevonás a1:0,2 a2:0,2 a3:0,19 a4:0,12 a5:0,11 a67:0,18 Rendezés a1:0,2 a2:0,2 a3:0,19 a67:0,18 a4:0,12 a5:0,11 Összevonás a1:0,2 a2:0,2 a3:0,19 a67:0,18 a45:0,23 Rendezés a45:0,23 a1:0,2 a2:0,2 a3:0,19 a67:0,18 Összevonás a45:0,23 a1:0,2 a2:0,2 a367:0,37 Rendezés a367:0,37 a45:0,23 a1:0,2 a2:0,2 Összevonás a367:0,37 a45:0,23 a12:0,4 Rendezés a12:0,4 a367:0,37 a45:0,23 Összevonás a12:0,4 a36745:0,6 Rendezés a36745:0,6 a12:0,4 Összevonás a1234567:1 p i

Informatika alapjai-3 Kódolás 4/8 - mivel az elemek valószínűsége eredetileg is sorrend szerint csökkent, az első sorban nem történt átrendezés - 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: 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.2 01 a3 0.19 100 a4 0.12 110 a5 0.11 111 a6 0.09 1010 a7 0.09 1011 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 zajos csatorna modellje: p - a helyes átvitel valószínűsége p (p>0.5, ha ez nem teljesül akkor a 0 0 csatorna invertál...) 1-p - a hibás átvitel valószínűsége 1-p Ebben a hibamodellben un. átállítódásos hibák szerepelnek, vagyis 1 1 p 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.

Informatika alapjai-3 Kódolás 5/8 (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.) 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 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 6/8 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 p1 (1 p). = 0,01*9 = 0,09 1 2 9 2 p2 (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ó) úgy nevezett 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 (Megjegyezzük, hogy a fenti kódban a kiegészítő biteket szisztematikusan hoztuk létre).

Informatika alapjai-3 Kódolás 7/8 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. - á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?):

Informatika alapjai-3 Kódolás 8/8 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