Kód je spôsob zmeny informácie na inú formu tak, aby sa zmenila jej podoba alebo význam pri prenose, ukladaní alebo pri utajení. Niekedy sa kód používa práve ako spôsob utajenia správy — vtedy hovoríme o šifrovaní alebo všeobecnejšie o kryptografii. Jeden zdroj uvádza toto vysvetlenie: kód je "slovo, číslo alebo iný symbol používaný na reprezentáciu slova, frázy alebo slabiky v otvorenom texte". To je jedna z najstarších foriem kryptografie (historické kódové knihy, zástavové kódy a podobne). Oproti kódu stojí šifra, v ktorej sa zvyčajne menia jednotlivé písmená alebo bity podľa pravidla — dnes však v bežnej reči ľudia tieto pojmy často zamieňajú. Historicky: kód nahrádza celé slová alebo frázy kódovými slovami, šifra transformuje symboly (písmená, bity) podľa algoritmu.
Praktické príklady a použitie
Niekedy sú kódy jednoduchým praktickým spôsobom, ako poslať správu. Napríklad, keď si ľudia na dvoch rôznych lodiach chcú poslať správu a sú príliš ďaleko na to, aby kričali, môžu použiť vlajkový kód (semafor, signalizácia vlajkami). Ďalší známy kód je Morseova abeceda, ktorá mení písmená na sekvencie bodiek a čiarok. Napríklad medzinárodný signál núdze SOS sa v Morseovej abecede zapisuje ako ••• --- ••• (tri bodky, tri čiarky, tri bodky).
Počítače používajú kódy tak, že menia písmená, znaky a iné údaje na 1 a 0 (binárne reprezentácie). Táto metóda bola využívaná už pri diernych páskách. V súčasnosti je bežný alfanumerický kód ASCII, a dnes prevažne používaný univerzálnejší kód je Unicode (umožňujúci znaky zo všetkých písomných systémov). Kódy v informatike zahŕňajú aj rôzne formáty súborov, kódovanie znakov a štandardy pre výmenu dát.
Kódy ako zábava aj vedy
Niektorí ľudia vytvárajú kódy ako druh hry — je zábavné vytvárať šifry a potom ich lúštiť. Rozlúsknuť šifru znamená analyzovať ju a pochopiť mechanizmus, aby sa dali prečítať správy napísané v danej forme. Táto činnosť sa hovorovo nazýva lámanie šifier, a profesionálnejšie ako kryptoanalýza. Kryptoanalýza môže byť zábavná aj vážna: národy, armády a tajné služby si navzájom lámali šifry po stáročia.
Typy kódov a šifier
- Substitučné kódy/šifry — každý symbol alebo blok textu sa nahradí iným symbolom (príklad: Caesarova šifra).
- Transpozičné šifry — mení sa poradie písmen bez zmeny samotných písmen.
- Blokové a prúdové šifry — v kryptografii: blokové šifry pracujú s pevnými blokmi bitov, prúdové šifry generujú sekvenciu, ktorá sa kombinuje s prúdom dát.
- Symetrické a asymetrické šifrovanie — symetrické používa rovnaký kľúč na šifrovanie aj dešifrovanie, asymetrické používa pár verejný/súkromný kľúč.
- Kódy pre prenos a opravu chýb — napr. kontrolné súčty, paritné bity, CRC, Hammingove kódy, Reed–Solomon; slúžia na detekciu a často aj nápravu chýb pri prenose alebo ukladaní dát.
- Kódy pre kompresiu a reprezentáciu — Huffmanovo kódovanie, aritmetické kódovanie a ďalšie metódy, ktoré zmenšujú veľkosť dát pri prenose alebo uložení.
- Špeciálne kódy — čiarové kódy, QR kódy, DTMF tóny na telefónoch, genetický kód v biologických systémoch a podobne.
- Programovací kód a strojový kód — posloupnosť inštrukcií, ktoré vykonáva počítač; hovorovo sa tiež označujú ako "kód".
Kryptografické algoritmy a terminológia
Algoritmus (kód) na utajenie správy sa nazýva šifrovací algoritmus. Na zmenu tajnej správy späť je potrebný dešifrovací algoritmus (v symetrických systémoch je to ten istý algoritmus s rovnakým kľúčom, v asymetrických systémoch sú to dva rôzne algoritmy/kľúče). Dôležité pojmy v kryptografii sú: kľúč (tajná hodnota, ktorá riadi šifrovanie), integrita (zabezpečenie, že dáta neboli zmenené), autentizácia (overenie identity) a dôvernosť (utajenie obsahu).
Rozdiely medzi kódovaním, šifrovaním a kompresiou
- Kódovanie mení dáta do inej formy pre účely kompatibility alebo efektívneho prenosu (napr. ASCII, Unicode, Base64). Nie je to primárne určené na utajenie.
- Šifrovanie mení dáta tak, aby ich prečítal len oprávnený príjemca — cieľom je dôvernosť a často aj integrita.
- Kompresia zmenšuje objem dát pri zachovaní (alebo z časti pri stratovej kompresii) informácie — cieľom je úspora miesta alebo prenosového času.
Aplikácie v praxi
Kódy a šifry sa používajú v mnohých oblastiach: bezpečná komunikácia (internetové protokoly, e‑mail, bankovníctvo), ochrana uložených dát (šifrovanie diskov), korekcia chýb pri prenose (telekomunikácie, satelitné prenosy), identifikácia produktov (čiarové kódy, RFID), a v bežnom živote — od hesiel a PIN kódov po QR kódy v reklame a logistike. Veda o kódovaní a šifrovaní je súčasťou informačnej bezpečnosti, teórie informácií a informatickej vedy.
Krátka historická poznámka
Kódy a šifry majú dlhú históriu: od jednoduchých substitučných systémov v staroveku, cez kódové knihy a signálne systémy až po moderné matematické šifry a štandardy postavené na teórii čísel a teórii informácie. Spojením teórie a praxe vznikli pokročilé metódy, ktoré dnes chránia internetové bankovníctvo, mobilnú komunikáciu a elektronické podpisy.
Ak chcete konkrétnejšie informácie o niektorom type kódu (napríklad o Hammingových kódoch, Reed–Solomonových kódoch, AES alebo RSA), môžem rozobrať princípy, príklady a ukážky ich použitia.

