Moderní šifrování

Symetrické šifry

Symetrické šifry využívají stejný klíč pro šifrování i dešifrování textu. Odesílatel pomocí klíče převede otevřený text na zašifrovaný, který následně doručí příjemci. Příjemce pomocí stejného klíče dešifruje text zpět na text otevřený. Mezi výhody symetrických šifer patří jejich rychlost a nenáročnost na výpočetní výkon. Nevýhodou je pak nutnost bezpečného předání klíče

Algoritmus DES

DES (Data Encryption Standart) je symetrická bloková šifra, která vznikla v 70. letech a na konci desetiletí byla přijata za šifrovací standart v USA. Text zpracovává po blocích o 64-bitech pomocí 64-bitového klíče, ale každý osmý bit je kontrolní a výsledný klíč má tedy velikost 56-bitů. Její princip funguje na Feistelově síti, data jsou v šestnácti cyklech několikrát rozděleny na dvě poloviny, jedna polovina je modifikována klíčem a následně promíchána s druhou polovinou. V dnešní době je DES považován za nedostatečný, převážně kvůli krátké délce klíče, díky čemuž je zranitelný vůči útokům hrubou silou.

Algoritmus AES

Za vznikem tohoto algoritmu stojí J. Daemen a V. Rijmen. V roce 1997 byl přihlášen pod původním názvem Rijndael do soutěže o algoritmus AES, který měl nahradit dříve používanou šifru DES. V roce 2002 byl schválen jako federální šifrovací standart. Stejně jako v případě DES se jedná o symetrickou blokovou šifru, která ale využívá délku bloku 128 bitů a délku klíče 128,192 nebo 256 bitů. Algoritmus je velice složitý a probíhá ve čtyřech krocích. Z matematického hlediska zatím není znám útok, který by ohrozil bezpečnost algoritmu.

Algoritmus RC4

Zástupce proudových šifer vyvinutý v roce 1987 americkým kryptologem Ronem Rivestem. Šifra byla majetkem firmy RSA Data Security a nikdy nebyla oficiálně publikována. V roce 1994 neznámý hacker zveřejnil krátký zdrojový kód popisující algoritmus RC4, který se následně začal šířit po internetu. Rychlost šifrování i dešifrování je řádově desetkrát rychlejší než u algoritmu DES. Díky své rychlosti a také jednoduchosti softwarové implentace se algoritmus RC4 začal využívat například v protokolu SSL 3.0 pro zabezpečení HTTPS komunikace nebo protokolů WEP a WPA pro zabezpečení bezdrátových sítí.

Princip RC4

Algoritmus využívá klíč o minimální délce 1 bajtu a maximální délce 256 bajtů ke generování pseudonáhodnýho proudu bajtů hesla, tzv. keystreamu. Keystream je následně XORován s otevřeným textem čímž vznikne zašifrovaný text. Dešifrování textu pak probíhá inverzně.

Bezpečnost RC4

Tento algoritmus se již nedoporučuje používat, převážně kvůli existenci takzvaných slabých klíčů. Výzkum prokázal, že existují klíče, který mají menší a nebo dokonce žádný vliv na několik prvních bajtů proudového klíče což značně oslabuje bezpečnost šifry.

Asymetrické šifrování

Asymetrické šifry využívají dva různé klíče - veřejný a soukromý. Otevřený text je nejprve zašifrován pomocí veřejného klíče, který může vlastnit kdokoliv. Takto zašifrovaný text může dešifrovat pouze vlastník soukromého klíče. Podmínkou bezpečnosti je, že klíče nesmějí být navzájem odvoditelné. Výhodou oproti symetrickým šifrám je fakt, že odpadá nutnost bezpečného předání klíče. Další výhodou je potřeba menšího počtu klíčů, tzv. můžeme používat jeden veřejný a jeden soukromý klíč pro více zpráv aniž bychom snižovali bezpečnost šifry. Nevýhodou asymetrického šifrování je pak především nízká rychlost, oproti symetrickým šifrám bývají řádově až 100krát pomalejší.

Algoritmus RSA

Tento algoritmus jenž byl pojmenován po svých třech autorech (Rivest, Shamir, Adleman) patří mezi nejrozšířenější asymetrické šifry. Veřejně publikován byl v roce 1977. RSA je považován za bezpečný algoritmus pokud je použit klíč o dostatečné délce. Dnes je považován za vhodný klíč takový, který má délku 2048 bitů, nebo více. Algoritmus je bezpečný, protože rozložení velkého čísla na součin dvou prvočísel je mimořádně obtížné a prakticky nemožné v rozumném čase. Nevýhodou algoritmu je jeho nízká rychlost, RSA je až 100krát pomalejší než algoritmus DES

Postup algoritmu RSA

  1. V prvním kroku zvolíme dvě prvočísla p a q
  2. Dále spočítáme jejich součin n = pq
  3. V dalším kroku vypočítáme Eulerovu funkci φ(n) = (p-1) * (q-1).
  4. Dále zvolíme celé číslo e tak aby platilo 1<e<φ(n) a zároveň, že největší společný dělitel čísel e a φ(n) = 1.
  5. Nakonec je nalezeno číslo d pro které platí, že (de) mod φ(n) = 1.

Po tomto kroku již čísla p a q nepotřebujeme. Veřejný klíč tvoří čísla e a n, soukromý klíč čísla d a n.
Máme-li zprávu m, můžeme ji zašifrovat pomocí vztahu c = m^e mod n, kde c je zašifrovaná zpráva. Dešifrování zprávy pak probíhá podle vztahu m = c^d mod n.