Samodetekující kód

ikona
Tento článek potřebuje úpravy.
Můžete Wikipedii pomoci tím, že ho vylepšíte. Jak by měly články vypadat, popisují stránky Vzhled a styl, Encyklopedický styl a Odkazy.

Konkrétní problémy: nepresnosti
ikona
Tento článek není dostatečně ozdrojován, a může tedy obsahovat informace, které je třeba ověřit.
Jste-li s popisovaným předmětem seznámeni, pomozte doložit uvedená tvrzení doplněním referencí na věrohodné zdroje.

Samodetekující kódy slouží k jednoduchému ověření správnosti zadaných dat. Princip je založen na tom, že zadaná data jsou (buď rovnou, nebo po určité matematické operaci) dělitelná daným číslem, nejčastěji bývá voleno 11 (tzv. jedenáctkový samodetekující kód). Daný dělitel by měl splňovat několik kritérií:

  • dvoucifernost (aby se dala vždy odhalit chyba zadaná v jediné cifře)
  • prvočíselnost

Čím vyšší dělitel se zvolí, o to delší bude výsledný kód, ale také vyšší pravděpodobnost odhalení chyby. U jedenáctkového samodetekujícího kódu je zaručeno, že při zadání jedné cifry chybně bude omyl odhalen, u dvou špatně zadaných cifer už je pravděpodobnost odhalení pouze 10/11.

Při kontrole parity je výše volené prvočíslo 2.

Kódy určené pro počítačové zpracování používají často jiné, i podstatně složitější principy. Například kryptografické hašovací funkce.

Konkrétní aplikace

Všechna rodná čísla vytvořená od roku 1986 včetně jsou dělitelná jedenácti (poslední čtyři číslice jsou voleny tak, aby každé rodné číslo tuto vlastnost splňovalo). Na podobném principu ( ne nutně delitelnosti 11) jsou ošetřeny všechny ISBN a ISSN kódy, čísla bankovních účtů a platebních karet a některé čárové kódy, např. EAN-13.

Nedostatky

U samodetekujících kódů je možné ověřit správnost dat, při odhalení chyby ale není možné zjistit původní informaci. Tento nedostatek je odstraněn u samoopravných kódů, které dovolují při dostatečně malém poškození zrekonstruovat původní data. V obou případech jsou dodatečné informace redundantní, tj. nepřenášejí užitečná data a tím pádem snižují efektivitu záznamu dat nebo přenosu.