Kryptografie & šifrování

Kapitoly: Kryptografie, Frekvenční analýza

Kryptografie je věda zabývající se šifrováním. Cílem šifrování je poslat někomu zprávu tak, aby zprávě kromě odesílatele už rozuměl pouze její příjemce a nikdo jiný.

Kryptografie, kódování, steganografie

Co je to kryptografie si vysvětíme na příkladu a spolu s tím si vysvětlíme i hlavní rozdíly mezi souvisejícími vědami: steganografií a kódováním.

Pro příklad si můžeme představit, že máme krásnou manželku, ale ještě krásnější milenku, se kterou se chceme domluvit na velice romantickém výletu na hotel Modrá laguna.

  • S milenkou se nejprve dohodneme, že jí budeme posílat zprávy tak, že každé písmeno ve zprávě zaměníme za následující písmeno v abecedě. Takže místo „a“ napíšeme „b“, místo „b“ napíšeme „c“, …, místo „z“ napíšeme „a“. Místo slova „ahoj“ bychom tak napsali „bipk“. Milence bychom tak mohli poslat zprávu

    bipk lpdlp tfkefnf tf wfdfs b wzalpvtjnf qpmpiv nmflb b wpez

    a manželka by vůbec netušila, co vlastně odesíláme, zatímco milenka ano — každé písmeno by zase posunula o jedno písmena zpět, takže místo „bipk lpdlp…“ by četla „ahoj kočko…“ V tuto chvíli používáme kryptografii (šifrování). Potíž je v tom, že pokud své krásné kolegyni z práce posíláte každý druhý podivné shluky písmen, tak manželka asi začne být nervózní a za chvíli vám sbalí kufry. Šifrování v tomto případě nebude ta pravá volba.

  • V případě milenky bude lepší zvolit steganografii. Cílem steganografie je poslat někomu zprávu, která se bude tvářit jako obyčejná neškodná zpráva, ale přitom v ní bude ukryta ještě jiná, tajná, zpráva. Naší krásné milence bychom tak mohli poslat třeba tuto zprávu:

    Zbývá ještě dodat, že kolikrát
    i levné věci bývají kvalitní,
    takže nemá smysl kupovat podle ceny.
    Radši si přečtěte nějaké recenze
    a rozhodněte se podle nich.

    Ta se tváři poměrně neškodně, nicméně pokud si přečtete vždy jen první písmeno na řádku, získáte slovo „zítra“. To je slovo skryté v odstavci textu.

    Rozdíl oproti kryptografii je tak hlavně ten, že výstupem steganografie je běžně vypadají text/obrázek/zvukový záznam/…, který obsahuje nějakou, typicky mnohem menší, skrytou zprávu. U zašifrovaného textu je na první pohled jasné, že to není běžný text. Šifru tak použijete ve chvíli, kdy nepotřebujete tajit, že s někým komunikujete, ale potřebujete utajit pouze obsah. Steganografii použijete ve chvíli, kdy potřebujete utajit samotný fakt, že s někým komunikujete.

  • V kódování pak vůbec nejde o utajení, jde jen o přepsání zprávy do jiné formy, která se nám zkrátka zrovna hodí. Například bychom mohli zprávu přepsat do Morseovy abecedy, abychom mohli milence poslat zprávu … blikající baterkou. Nenápadnost sama. Cílem Morseovy abecedy není „utajit“ zprávu, jen ji přepsat do jiné formy. Dalším kódem může být binární kód, který používají počítače — například každé písmeno se v počítači nejprve zakóduje do nějakého čísla a toto číslo se následně převede do dvojkové soustavy a takto se uloží na disk. Slovo „ahoj“ by v počítači bylo uloženo jako binární zápis čísel „097 104 111 106“ (viz ASCII tabulka). Opět nejde o utajení, jen o jiný způsob zápisu.

Kryptoanalýza

Žádná šifra samozřejmě není úplně bezpečná a každá šifra bude časem prolomena. Je to jen otázka času a pokud nějakou šifru použijete, tak musíte doufat, že ten čas bude dostatečně velký na to, aby už vám nevadilo, že někdo rozluštil vaši zprávu. Pokud by vaše ex-manželka rozluštila šifry, které jste si psal s milenkou, tak už je to nejspíš jedno, když už je stejně ex-manželka.

Věda, která zkoumá možnosti jak prolomit danou šifru se nazývá kryptoanalýza. Platí, že kryptografie se zabývá tím jak šifrovat a kryptoanalýza je zlý bratříček, který se zabývá prolamováním. Obě tyto disciplíny zastřešuje kryptologie. Tedy kryptologie = kryptografie + kryptoanalýza. Ale často se místo kryptologie používá prostě jen kryptografie.

Základní pojmy kryptografie

  • Otevřený text je text, který chceme zašifrovat a pak někomu poslat. Otevřený text by tak mohl být „Sejdeme se večer“.
  • Šifrový text (případně zašifrovaný text) je výsledný text, který vznikne po zašifrování otevřeného textu.
  • Klíč je nějaký kus informace, kterou si strany, které mezi sebou komunikují, vymění nějakým bezbepčným kanálem. Klíč upřesňuje, jak se šifra chová. Například místo toho, abychom písmeno posunuli vždy o jedno písmeno dále, tj. „a“ -> „b“, „b“ -> „c“, tak ho můžeme posunout například o tři písmena dále, tj. „a“ -> „d“, „b“ -> „d“. Klíčem pak rozumíme ten počet písmen, o který se posouváme. Klíč může mít i nějaký steganografický algoritmus. Nemusíme brát první písmeno na každém řádku, ale můžeme číst třeba jen páté písmeno na řádku. Klíčem by pak bylo číslo pět.
  • Šifra je algoritmus, který na vstupu bere otevřený text a klíč a na výstupu vrací zašifrovaný text.