Teorie informace a kódování (KMI/TIK)



Podobné dokumenty
Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Teorie informace a kódování (KMI/TIK)

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

Kódy pro detekci a opravu chyb. INP 2008 FIT VUT v Brně

[1] samoopravné kódy: terminologie, princip

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

Lineární algebra nad obecným Z m, lineární kódy

8 Kořeny cyklických kódů, BCH-kódy

Odpřednesenou látku naleznete v dodatku A skript Abstraktní a konkrétní lineární algebra.

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

[1] samoopravné kódy: terminologie, princip

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

3. Matice a determinanty

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Samoopravné kódy, k čemu to je

KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO LINEÁRNÍ ALGEBRA 1 OLGA KRUPKOVÁ VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN

1 Co jsou lineární kódy

7. Důležité pojmy ve vektorových prostorech

Matematika IV 10. týden Kódování

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Y36BEZ Bezpečnost přenosu a zpracování dat. Úvod. Róbert Lórencz. lorencz@fel.cvut.cz

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Matice. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Množinu všech matic typu m n nad tělesem T budeme označovat M m n (T ), množinu všech čtvercových matic stupně n nad T pak M n (T ).

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

PŘEDNÁŠKA 2 POSLOUPNOSTI

Definice 1 eulerovský Definice 2 poloeulerovský

Lineární algebra II. Adam Liška. 9. února Zápisky z přednášek Jiřího Fialy na MFF UK, letní semestr, ak. rok 2007/2008

2. Matice, soustavy lineárních rovnic

3. ročník, 2013/ 2014 Mezinárodní korespondenční seminář iks

Vysoké učení technické v Brně. Fakulta strojního inženýrství. Matematika. Příručka pro přípravu k přijímacím zkouškám

2 Spojité modely rozhodování

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

Úvod do teorie informace

Lineární algebra : Báze a dimenze

H {{u, v} : u,v U u v }

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Náhodný pokus každá opakovatelná činnost, prováděná za stejných nebo přibližně stejných podmínek, jejíž výsledek je nejistý a závisí na náhodě.

GRAFY A GRAFOVÉ ALGORITMY

{Q={1,2};S,T;u(s,t)} (3.3) Prorovnovážnéstrategie s,t vehřesnulovýmsoučtemmusíplatit:

1 Determinanty a inverzní matice

Učební texty k státní bakalářské zkoušce Matematika Matice. študenti MFF 15. augusta 2008

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Pravděpodobnost a statistika

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Matematika III. 4. října Vysoká škola báňská - Technická univerzita Ostrava. Matematika III

Derivace a průběh funkce.

TEORIE MATIC. Tomáš Vondra

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

1/10. Kapitola 12: Soustavy lineárních algebraických rovnic

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

Maticový a tenzorový počet

Lineární algebra I. látka z. I. semestru informatiky MFF UK. Obsah. Zpracovali: Ondřej Keddie Profant, Jan Zaantar Štětina

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Lineární algebra a analytická geometrie sbírka úloh a ř ešených př íkladů

MATEMATIKA IV - PARCIÁLNÍ DIFERENCIÁLNÍ ROVNICE - ZÁPISKY Z. Obsah. 1. Parciální diferenciální rovnice obecně. 2. Kvaazilineární rovnice prvního řádu

Balanční vlastnosti pevného bodu substituce

Pravděpodobnost a statistika

Euklidovský prostor Stručnější verze

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Základy elementární teorie čísel

Několik poznámek na téma lineární algebry pro studenty fyzikální chemie

Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

Automaty a gramatiky. Na zopakování X*/~ Roman Barták, KTIML. Iterační (pumping) lemma. Pravidelnost regulárních jazyků

Obsah. Lineární rovnice. Definice 7.9. a i x i = a 1 x a n x n = b,

1 Báze a dimenze vektorového prostoru 1

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

FAKULTA STAVEBNÍ MATEMATIKA II MODUL 2 STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA

Riemannův určitý integrál

Soustavy lineárních rovnic

Základy elementární teorie čísel

0.1 Úvod do lineární algebry

3. ANTAGONISTICKÉ HRY

5. Maticová algebra, typy matic, inverzní matice, determinant.

TEORIE GRAFŮ. Petr Kovář

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

0. Lineární rekurence Martin Mareš,

Matematika pro studenty ekonomie

0.1 Úvod do lineární algebry

2.3. DETERMINANTY MATIC

Obecná úloha lineárního programování

Masarykova univerzita. Základy konvexní analýzy a optimalizace v R n.

Lineární algebra Operace s vektory a maticemi

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

2. ZÁKLADY MATICOVÉ ALGEGRY 2.1. ZÁKLADNÍ POJMY

FAKULTA STROJNíHO INŽENÝRSTVí ÚSTAV MATEMATIKY

Karnaughovy mapy. Pravdivostní tabulka pro tři vstupní proměnné by mohla vypadat například takto:


Transkript:

Teorie informace a kódování (KMI/TIK) Bezpečnostní kódy Lukáš Havrlant Univerzita Palackého 13. listopadu 2012

Konzultace V pracovně 5.076. Každý čtvrtek 9.00 11.00. Emaily: lukas@havrlant.cz lukas.havrlant@upol.cz Web: http://tux.inf.upol.cz/~havrlant/ 2 z 26

Doporučená literatura Adámek J.: Foundations of Coding. J. Wiley, 1991. Adámek J.: Kódování. SNTL, Praha, 1989. (lze stáhnout na http://notorola.sh.cvut.cz/~bruxy/) Ash R. B.: Information Theory. Dover, New York, 1990. 3 z 26

Úvod Při přenosu dat může dojít k chybě jak odhalit chybu? (znáte: CRC, hash) Jak opravit chybu? Chyba může být dvojího typu: 1. Záměna znaku: 101010 101000 (o tento typ se budeme zajímat) 2. Vytvoření nového znaku: 101010 1010101. Pohlcení znaku: 101010 10110 Základní princip: redundance informace. Čeština je hodně redundantí: opakkvání opakování, ale sekers sekera nebo sekery? Všechna rodná čísla vytvořená od roku 1986 včetně jsou dělitelná jedenácti. 4 z 26

Příklad kódování objevující jednu chybu Kontrola sudé parity: kód doplní na konec binárního slova 0/1 tak, aby slovo mělo sudý počet jedniček. Vstupem je slovo w {0, 1} +, doplníme c {0, 1}, vznikne slovo wc. Pokud w = 001, pak c = 1 a wc = 0011. Pokud w = 101, pak c = 0 a wc = 1010. Kód objevuje 1 chybu: pokud přijmeme 1011, nastala chyba. Kód nerozpozná dvě chyby! Vyšleme 1010, přijmeme 1111. 5 z 26

Příklad kódování opravující jednoduché chyby Opakující kód symbol odešleme třikrát. 0 000; 1 111. Pokud přijmeme 010, poslali jsme původně 000 (nebo nastala více než jedna chyba). 6 z 26

Cíl Cíl: sestrojit kód, který objeví/opraví co nejvíce chyb při co nejnižší redundanci. Uvažujeme pouze blokové kódy. 7 z 26

Kódová a nekódová slova Zdrojová abeceda A, kódová abeceda B, délka kódového slova je n, pak pro kód C platí: C B n. B n = {b 1 b 2... b n b i B pro i = 1, 2... n} C je množina kódových slov, B n \ C množina nekódových slov. Přijmeme-li nekódové slovo, tak během přenosu nastala chyba. Pokud přijmeme kódové slovo, tak během přenosu...? Kontrola sudé parity: pro B = {0, 1}, n = 4 máme B 4 = {0000, 0001, 0010, 0011, 0100, 0101,... }; B 4 = 2 4 = 16 C = {0000, 0011, 0101, 0110,... }; C = 8 8 z 26

Informační poměr kódu (rate) Máme slovo délky k. Přidáme symboly z kódové abecedy a získáme slovo o délce n. Původním k symbolům říkáme informační symboly. n k symbolům říkáme kontrolní symboly. Poměr R(C) = k n 9 z 26 měří redundanci kódu. Definice: Nechť C B n je blokový kód o délce n. Jestliže existuje bijektivní zobrazení ϕ : B k C, řekneme, že kód C má k informačních symbolů a n k kontrolních. Informační poměr kódu R(C) je R(C) = k n.

Příklady informačních poměrů Opakovací kód Kód C n má na abecedě B kódová slova {a n a B} Pro B = {0, 1} máme C 3 = {000, 111}, C 5 = {00000, 11111} k = 1; R(C n ) = 1 n Kontrola sudé parity Pro kód délky n platí: C n = {w má sudý počet 1 w {0, 1} n } C 3 = {000, 011, 101, 110} Pro C 3 : C = 4, k = 2; R(C 3 ) = 2 3 Pro C n : C = 2 n 1, k = n 1; R(C n ) = n 1 n 10 z 26

Hammingova vzdálenost 11 z 26 Definice: Pro slova u = u 1 u n, v = v 1 v n B n definujeme zobrazení δ(u, v) = {i 1 i n, u i v i }. Tj. δ(u, v) vrací počet pozic, na kterých se slova u a v liší. Zobrazení δ nazýváme Hammingova vzdálenost. δ je metrikou na B n : δ(u, v) 0 (= 0 iff u = v), δ(u, v) = δ(v, u), δ(u, v) δ(u, w) + δ(w, v). δ(011, 101) = 2, δ(011, 111) = 1, δ(0110, 1001) = 4, δ(0123, 0145) = 2, δ(01, 01) = 0

Důkaz trojúhelníkové nerovnosti Chceme dokázat: δ(u, v) δ(u, w) + δ(w, v). Označme: U = {i 1 i n, u i w i }, V = {i 1 i n, w i v i }. Pak U V je množina indexů, na kterých se u může lišit od v. Pro všechna i {1, 2,..., n} \ (U V ) platí, že u i = w i = v i. Dále δ(u, v) U V. δ(u, v) může být menší, pokud u i w i w i v i, ale u i = v i. Pak i U V, ale i / {j 1 j n, u j v j }. Dostáváme: δ(u, v) U V U + V = δ(u, w) + δ(w, v). 12 z 26

Minimální vzdálenost Definice: Minimální vzdálenost kódu C, zapíšeme d(c), je minimální vzdálenost dvou různých slov z C: d(c) = min{δ(u, v) u, v C, u v}. Příklady: C 1 = {0011, 1010, 1111}, d(c 1 ) = 2 C 2 = {0011, 1010, 0101, 1111}, d(c 2 ) = 2 C 3 = {000, 111, 100}, d(c 3 ) = 1 13 z 26

Koule Definice: Nechť C je nějaký kód o délce n a u C. Pak B q (u) = {v B n δ(u, v) q} nazveme koule se středem v u a poloměrem q. Důsledek: Kód C má minimální vzdálenost d(c) d právě tehdy, když pro všechna u C platí B d 1 (u) C = {u}. 14 z 26

Objevování chyb t chyb nastane, pokud pošleme slovo u, přijmeme slovo v a δ(u, v) = t. (Slovo u se od v liší v t symbolech.) Definice: Kód C objevuje d chyb, pokud při odeslání kódového slova a vzniku t d chyb, přijmeme vždy nekódové slovo. Věta: Kód C objevuje d chyb právě když d(c) > d. Největší d takové, že C objevuje d chyb je d(c) 1. 15 z 26

Příklady Kontrola sudé parity: d(c) = 2, takže kód objevuje 1 chybu. Proč d(c) = 2? Nechť u, v B n 1, u v. Slova zakódujeme, dostaneme ua, vb, kde a, b B. Pokud δ(u, v) 2, pak jistě δ(ua, vb) 2. Pokud δ(u, v) = 1, pak právě jedno ze slov obsahuje lichý počet jedniček a tedy a b a δ(ua, vb) = 2. Opakovací kód: d(c n ) = n, takže kód objevuje n 1 chyb. 16 z 26

Oprava chyb Pokud přijmeme nekódové slovo v, opravíme ho na takové kódové slovo u, které je slovu v nejblíže. pro každé nekódové slovo musí existovat jediné kódové slovo, které je mu nejblíže. Definice: Kód C opravuje d chyb pokud pro každé kódové slovo u C a každé slovo v B n takové, že δ(u, v) d, platí, že slovo u má od slova v nejmenší vzdálenost ze všech slov z C. Tedy pokud u C a δ(u, v) d, pak δ(u, v) < δ(w, v) pro všechna w C, w u. 17 z 26

Oprava chyb podruhé Věta: C opravuje d chyb právě tehdy, když d(c) > 2d. Největší d takové, že C opravuje d chyb je d = (d(c) 1)/2. Příklady: Kontrola sudé parity má d(c) = 2, takže opravuje 0 chyb. Opakovací kód C 3 opravuje (3 1)/2 = 1 chybu. 18 z 26

Důkaz Věta: C opravuje d chyb právě tehdy, když d(c) > 2d. : Nechť d(c) > 2d. Dále nechť u C, v B n : δ(u, v) d. Sporem předpokládejme, že pro w C, w u platí δ(w, v) δ(u, v). Použijeme trojúhelníkovou nerovnost: δ(w, v) + δ(u, v) δ(w, u) Přitom ale δ(u, v) d a zároveň δ(w, v) d, takže: 2d = d + d δ(w, v) + δ(u, v) δ(w, u). Dostáváme 2d δ(w, u), což je spor s předpokladem, protože u, w C. 19 z 26

Důkaz: pokračování Věta: C opravuje d chyb právě tehdy, když d(c) > 2d. : Nechť C opravuje d chyb. Opět sporem předpokládejme, že d(c) 2d a že tak existují u, v C; u v taková, že t = δ(u, v) 2d. Rozdělme důkaz na dva případy. Když je t sudé. Dále nechť w je slovo, které má vzdálenost t/2 od obou slov u, v. Slovo w sestrojíme takto: nechť I = {i u i v i } = {i 1, i 2,..., i t }, takže I = t. Pak w i = v i pro všechna i {i 1, i 2,..., i t/2 } a w i = u i pro všechna ostatní i. Potom δ(u, w) = t/2 = δ(v, w), tedy δ(u, w) = δ(v, w) d, což je spor s tím, že C opravuje d chyb. 20 z 26

Důkaz: finále Když je t liché. Pak t + 1 je sudé, přitom t + 1 2d. Stejně jako v předchozím kroku sestavíme slovo w tak, že w i = v i pro všechna i {i 1, i 2,..., i (t+1)/2 } a w i = u i pro všechna ostatní i. Tzn., že δ(u, w) = (t + 1)/2 δ(v, w) = (t 1)/2 To je ale průšvih, protože δ(u, w) > δ(v, w), přitom δ(u, w) = (t + 1)/2 d. Jinými slovy: vyslali jsme slovo u, cestou se poškodilo (t + 1)/2 d symbolů a my přijali slovo w, které má ale blíže ke slovu v! Kód tak nemůže opravovat d chyb. 21 z 26

Příklady Kontrola sudé parity: d(c) = 2, kód neopravuje žádnou chybu. Opakovací kód: d(c n ) = n, kód opravuje (n 1)/2 chyb. 22 z 26

Dvoudimenzionální kontrola sudé parity Informační symboly umístíme do matice p 1 q 1, ke které přidáme jeden sloupec a jeden řádek pro kontrolní součty, tj. aby celý řádek/sloupec obsahoval sudý počet jedniček. Poslední bit nastavíme tak, aby celé slovo mělo sudou paritu. Příklad pro (p, q) = (4, 5): Kód opravuje 1 chybu. 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 0 23 z 26

Kód dva-z-pěti Binární blokový kód s délkou n = 5. Kódová slova obsahují 2 jedničky. Celkem: ( 5 2) = 10 možností. 00011, 00101, 00110, 01001, 01010,... Populární na reprezentování číslic. Dekódování: Můžeme přidat váhu jednotlivým pozicím: 0, 1, 2, 3, 6. Potom můžeme kódové slovo 00101 dekódovat jako: 0 0 + 0 1 + 1 2 + 0 3 + 1 6 = 8. Trojka je reprezentována dvěma slovy: 10010 a 01100. Druhá možnost se používá pro nulu. 24 z 26

Systematický kód Definice: Blokový kód C o délce n nazýváme systematický kód, pokud pro nějaké k < n, pro všechna slova u B k, existuje právě jedno slovo v B n k takové, že uv C je kódové slovo. Opakovací kód a kód sudé parity jsou systematické kódy. R(C) = k n 25 z 26

Cvičení Jaká je d(c) kódu dva-z-pěti? Jaký je informační poměr? Jaká je d(c) dvoudimenzionální kontroly sudé parity? Jaký je informační poměr? Za použití dvoudimenzionálního (4, 5)-kódu (4 řádky, 5 sloupců) jsme přijali slovo 01001 11101 11100 01100. Je to kódové slovo? Pokud ne, lze opravit? Trojúhelníková nerovnost říká, že δ(u, v) δ(u, w) + δ(w, v). Existují navzájem různá slova u, v, w B n pro nějaké B a nějaké n tak, že δ(u, v) = δ(u, w) + δ(w, v)? 26 z 26