Kódování vs. Šifrování
Ačkoliv se to v běžné řeči plete, v informatice jde o dvě úplně odlišné věci:
- Kódování (Encoding): Neslouží k utajení! Účelem je převést data do takového formátu, aby šla snadno přenést, uložit nebo aby jim rozuměl počítač (případně jiný systém). Kódování je veřejně známé a kdokoliv ho může dekódovat zpět.
- Šifrování (Encryption): Účelem je bezpečnost a utajení. Zpráva se změní tak, aby si ji mohl přečíst pouze ten, kdo má správný dešifrovací klíč. Pro kohokoliv jiného to musí vypadat jako náhodný shluk znaků.
Kódování dat
Kódování řeší to, jak zapsat lidské znaky tak, aby se s nimi dalo technologicky pracovat.
- Morseovka: Kódování písmen do krátkých a dlouhých signálů pro přenos po telegrafu.
- ASCII: Základní americká tabulka. Každé písmeno a znak má přiřazené číslo (např. 'A' je 65). Protože vznikla v USA, používá jen 7 bitů a obsahuje jen základní anglickou abecedu. Neumí háčky, čárky, azbuku ani rozsypaný čaj.
- Lokální kódování (Čeština): Jakmile se počítače rozšířily, vznikla potřeba národních abeced. Vznikly 8bitové tabulky jako
Windows-1250 (od Microsoftu) nebo ISO-8859-2. Problém byl, že když jsi otevřel text ve špatném kódování, místo "Ř" jsi viděl nesmyslné znaky.
- UTF-8 (Unicode): Dnešní moderní standard. Je to obrovská mezinárodní tabulka, která obsahuje znaky všech jazyků světa, smajlíky i speciální symboly. Zajišťuje, že se text zobrazí správně všude.
3. Historické a klasické šifrování
Transpozice a Substituce.
- Transpozice: Písmena ve zprávě zůstávají stejná, ale mění se jejich pořadí (zamíchají se). Je to v podstatě přesmyčka (např. slovo "AHOJ" napíšeš pozpátku jako "JOHA").
- Substituce: Písmena zůstávají na svém místě, ale nahrazují se jinými písmeny nebo znaky.
- Cézarova šifra: Klasická substituce. Každé písmeno posuneš v abecedě o pevný počet míst (např. o 3 místa: A ⇒ D, B ⇒ E).
- Vigenèrova šifra: Složitější substituce (polyalfabetická). K posunu se nepoužívá jedno číslo, ale heslo. Každé písmeno zprávy se posune o jiný počet míst podle toho, jaké písmeno hesla je zrovna na řadě.
- Enigma: Německý šifrovací stroj z 2. světové války. Byla to extrémně složitá mechanická a elektrická symetrická substituce, kde se pravidlo nahrazování měnilo s každým stisknutím klávesy.
4. Moderní kryptografie
symmetric vs asymmetric encryption diagram, vygenerováno umělou inteligencí
- Symetrické šifrování: Odesílatel i příjemce mají jeden stejný tajný klíč. Tím samým klíčem se zpráva zamkne i odemkne. (Je to rychlé, ale problém je, jak si ten klíč na dálku bezpečně předat).
- Asymetrické šifrování (např. RSA): Každý má klíče dva – veřejný a soukromý. Veřejný klíč dáš komukoliv. Kdokoliv ti jím může zprávu zašifrovat. Ale odšifrovat ji můžeš už jen ty pomocí svého soukromého klíče, který nikomu nedáš. Řeší to problém s předáváním klíčů přes internet.
Jak si přes odposlouchávaný internet ten společný klíč bezpečně předat, aniž by ho někdo cestou ukradl?
Diffie-Hellmanův protokol (DH)