Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Paritní bity Hashovací funkce Samoopravující kódy

Podobné prezentace


Prezentace na téma: "Paritní bity Hashovací funkce Samoopravující kódy"— Transkript prezentace:

1 Paritní bity Hashovací funkce Samoopravující kódy
Jak dál s chybami Paritní bity Hashovací funkce Samoopravující kódy

2 Dvojková soustava a paritní bity
Všechna data, která jsou v počítači uložena, se skládají z nul a jedniček. Informace, která může obsahovat pouze dvě možné hodnoty – nula x jedna, ano x ne, pravda x nepravda, vypnuto x zapnuto – má velikost jeden bit Proto budeme o jedné pozici v paměti, která může nabývat pouze dvou hodnot (nula x jedna) budeme mluvit jako o jednom bitu.

3 Co je byte Nuly a jedničky se skládají do skupin, kterým říkáme slova. Slova mohou mít různou délku. Nejčastěji se používají slova sedmi bitová (mají délku sedm znaků) a osmibitová. Slovo o délce osm bitů nazýváme byte (čti bajt). Častá jsou ale i slova o délce dva, čtyři, osm či šestnáct byte.

4 Paritní bit Mezi nejjednodušší způsoby, jak zjistit, zda při přenosu či ukládání a opětovném načtení datového slova nedošlo k chybě je použití paritního bitu. Paritní bit je bit přidaný k datovému slovu (resp. vyhrazený, zpravidla poslední, bit v rámci datového slova), který obsahuje informaci o počtu jedničkových bitů ve slově. Pokud je počet jedniček v původním slově sudý, přidáváme nulu. Pokud lichý, přidáváme jedničku.

5 Paritní bity Doplňte paritní bity na konec následujících slov: 0010100

6 Hashovací funkce Cílem hashovaní funkce je ke vstupním datům vypočítat poměrně malé číslo (otisk, výtah, miniaturu, fingerprint či hash), pomocí kterého lze data kdykoli ověřit. Cílem hashovaní funkce není rozeznat náhodné změny (překlepy), ale pokud možno odhalit všechny (a to i záměrné) změny, ke kterým v dokumentu došlo.

7 Otisk Otisk bývá odesílán či ukládán společně s daty, která chceme zabezpečit, případně je veřejně dostupný (např. na internetu). Po převzetí dat je otisk znovu nezávisle spočítán. Pokud je nezávisle spočítaný otisk odlišný od přeneseného nebo uloženého, je zřejmé že při přenosu nebo uchovávání došlo k chybě, nebo že byla data záměrně změněna. Pokud je shodný, tak téměř jistě k žádné změně nedošlo.

8 Hashovací funkce Mezi nejznámější a nejpoužívanější hashovaní funkce patří v současnosti MD5 (Message-Digest algorithm 5) a SHA (Secure Hash Algorithm). Hashovací funkce se považuje za bezpečnou, pokud splňuje následující dvě podmínky: Je velice obtížné najít zprávu, která odpovídá danému otisku. Je velice obtížné najít dvě rozdílné zprávy, které mají stejný otisk.

9 Samoopravné kódy V některých situacích však informaci nelze opakovaně zaslat, nebo by její přenos byl velmi technicky a finančně nákladný (například při zasílání snímků z družice na Marsu). Proto byly vyvinuty samoopravné (nebo také samoopravující) kódy, které dokáží chybu v datech nejen detekovat, ale také identifikovat a opravit.

10 Samoopravné kódy Schopnost kódu detekovat a opravovat chyby je samozřejmě omezená. Pokud nelze zaručit, že alespoň polovina znaků dojde v pořádku, tak neexistuje mechanismus, který by dokázal chyby opravovat. V praxi se používají kódy, které opravují mnohem menší počet chyb, než je polovina ze všech znaků.

11 Opakovací kód Nejjednodušším příkladem samoopravujícího kódu je opakovací kód. Jednoduše informaci pošleme několikrát po sobě, například třikrát. Pokud dojde při přenosu chybě, označíme jako správnou tu informaci, která přišla víckrát.

12 Kolik chyb opraví kód, který vše odesílá třikrát?
1.0

13 Opakující kód 000 001 010 100 111 1 110 101 011 Doručené slovo
Odesílané slovo 000 001 010 100 111 1 110 101 011

14 Kolik opraví chyb? Pokud bychom každý bit odesílaly čtyřikrát, nezvýšíme tím počet chyb, které jsme schopni opravit. U slova sice víme, že při jeho přenosu došlo k více než jedné chybě, ale opět nedokážeme rozhodnout, kde k chybě došlo. Vyplatí se proto informaci opakovat v lichém počtu, protože sudé bity nezvyšují počet chyb, které je možné opravit. U opakovacího kódu, který odesílá každý bit n-krát je počet chyb, které lze opravit [(n+1)/2].

15 Definice Délka kódu Hammingova vzdálenost Kódové slovo
Počet symbolů v kódovém slově. V případě opakujícího kódu odpovídá délka kódu počtu opakování zasílaného bitu. Hammingova vzdálenost Počet míst, na kterých se dvě slova liší. Kódové slovo Kódové slovo je slovo, které odesíláme společně. V případě opakujícího kódu máme pouze dvě kódová slova, jedno je tvořené samými jedničkami a druhé samými nulami.

16 Richard Wesley Hamming 1915 – 1998
Hammingův kód Richard Wesley Hamming – 1998 Hammingův kód je příkladem lineárního kódu, který je schopen detekovat jednu chybu a byl pojmenován po svém objeviteli Richardu Hammingovi. Kontrolní maticí Hammingova kódu je matice, jejíž sloupce tvoří všechna různá nenulová bitová slova délky k.

17 Kontrolní matice Tuto matici můžeme chápat jako matici homogenní soustavy tří rovnic o sedmi neznámých. Řešení této soustavy tvoří lineární prostor dimenze čtyři. Pokud nalezneme čtyři lineárně nezávislé řešení této soustavy, dostáváme tak i bázi řešení a současně generující matici Hammingova kódu.

18 Generující matice kódu
Slova Hammingova kódu tvoří nejenom řádky generující matice, ale i všechny jejich lineární kombinace. Slovo ( ) je také kódovým slovem, protože vzniklo jako součet prvních dvou řádků.

19 Kódová slova Ověřte, která z následujících slov jsou slovy H-kódu s generující maticí: ( ) ( ) ( ) ( ) ( )

20 Použití Hammingova kódu
Pomocí Hammingova kódu délky sedm lze odesílat informace o délce čtyři bity. Čtveřici nul a jedniček přiřadíme slovo z Hammingova kódu tak, že tuto čtveřici (jako vektor) vynásobíme generující maticí Hamingova kódu:

21 Vzdálenost slov v Hammingově kódu
Aby bylo možné chyby opravovat, je nutné, aby mezi dvěma kódovými slovy byla dostatečně velká vzdálenost (ve smyslu Hammingovy vzdálenosti). Pro ověření, zda se každá dvě slova v Hammingově kódu lišší alespoň na třech místech, můžeme samozřejmě porovnávat každé slovo s každým. 

22 Jak se opravují chyby v Hammingově kódu
V prvním kroku vynásobíme kontrolní matici doručeným slovem. Pokud je výsledkem nulový vektor, je doručené slovo zároveň odesílaným slovem. Pokud je výsledkem součinu nenulové slovo, přejdeme k druhému kroku a opravíme doručené slovo na místě, které odpovídá sloupci kontrolní matice shodnému s výsledkem provedeného kontrolního součinu.

23 Důkaz předchozího tvrzení
Doručené slovo d si lze představit jako součet odesílaného slova o a chybového slova e, jehož váha je nejvýše jedna. Platí tedy d=o+e.

24 Cvičení ( ) ( ) ( ) ( ) ( )

25 Definice Dimenze kódu Generující matice lineárního kódu
Dimenze vektorového prostoru tvořeného kódovými slovy. Dimenze kódu odpovídá počtu bitů, které lze zakódovat do jednoho kódového slova. Generující matice lineárního kódu Matice, jejíž řádky tvoří vektory báze prostoru tvořeného kódovými slovy. V případě opakujícího kódu má tato matice rozměry a je tvořena samými jedničkami.

26 Definice Kontrolní matice kódu Lineární kód
Matice, jejíž řádky tvoří báze ortogonálního doplňku kódu. Lineární kód Lineární kód je takový kód, jehož kódová slova tvoří vektorový prostor nad tělesem Z2. Příkladem lineárního kódu je opakující kód.


Stáhnout ppt "Paritní bity Hashovací funkce Samoopravující kódy"

Podobné prezentace


Reklamy Google