Co je to proudová šifra?
Proudová šifra je typ algoritmu používaného v šifrování dat, kde zdroj, který musí být šifrován, je zpracováván proti klíčové sekvenci, která se zdá být náhodná. Tento typ šifry je poněkud pružný v tom smyslu, že při zpracování textu může měnit šifrování. Někdy jsou také označovány jako stavová šifra, protože šifrování závisí také na aktuálním stavu operace. Na rozdíl od blokových šifrů, které pracují na kouscích dat 64 bitů najednou, může proudová šifra pracovat na jednom bitu. Z tohoto důvodu může být proud zpracováván při vysokých rychlostech s velmi malým zpracovatelským výkonem.
První šifru toku navrhl Gilbert Vernam v roce 1917. Vernam později také pomohl vytvořit šifru známou jako jednorázová podložka, což je forma proudové šifry, která používá jednorázový klíč k šifrování dat. V jednorázové podložce je vygenerovaný klíč stejná délka jako data, která je třeba zašifrovat, je zcela náhodný a už nikdy se nikde jinde nepoužívá, odtud název.
Při zpracování proti šifrovaným datům, obvykle označovaným jako prostý text, nelze výsledný šifrový text dešifrovat bez klíče. Jednorázový blok je obtížné řešit ve většině scénářů, a proto se používá pouze ve velmi exkluzivních situacích. Přesto je proudová šifra obvykle považována za užitečnou, takže klíče byly zkráceny a staly se pseudonáhodnými, což znamená, že jsou statisticky náhodné, ale ve skutečnosti tomu tak není.
Proudová šifra má schopnost šifrovat za běhu. Tímto způsobem je dokonce snadné pro šifry jednoduchých proudů provádět lidé na peru a papíru, zatímco bloková šifra obvykle vyžaduje zpracování počítače. Obyčejný text protéká šifrovacím procesem spolu s keystream, pseudonáhodnou sekvencí, která tvoří klíč, kde je převeden a druhý konec vychází jako šifrový text.
K tomuto šifrování obvykle dochází prostřednictvím exkluzivní nebo (XOR) operace na jednotlivých bitech, když procházejí šifrou. Jednoduchá šifra XOR používá jako základ logický disjunkce, která v podstatě říká, že výsledek může být pravdivý, pokud je jeden z operandů pravdivý, ale ne oba. Například, pokud bit pohybující se v šifrovacím procesu je nula nebo jedna a párovaný klíčový bit se neshoduje, výsledný výstup je jeden. Pokud se bit a párovaný bit keystream shodují, kde oba jsou jedna nebo oba jsou nula, výsledkem je nula. Šifrovaný tok jedniček a nul je pak dešifrován na druhém konci přenosu pomocí stejného keystream k převodu bitů zpět do jejich původního prostého textu.
Existují dva typy proudové šifry. Pomocí synchronní metody je keystream vytvořen odděleně od prostého textu nebo šifrového textu a poté sloučen, aby poskytl šifrování nebo dešifrování. U této metody musí oba odesílací i přijímací konce přenosu zůstat synchronizované, pokud pracují na stejném klíči a na stejné pozici v klíči. Pokud by se vyskytl problém, musí dešifrování začít znovu, nebo mohou být v ciphertext umístěny příznaky, které označují nové počáteční body. Na druhé straně samosynchronizující šifra aktualizuje klíčový proud na základě určitého počtu předchozích číslic v šifrovém textu.
Jedna z nejčastěji používaných proudových šifrů, zvaná RC4, byla vytvořena společností RSA Data Security®. Je licencován a používán v řadě softwarových produktů a také protokol SSL (SSL) používaný v zabezpečené internetové komunikaci a šifrování WEP (Wired ekvivalent privacy) používané u bezdrátových zařízení. Další často používaná šifra je známá jako ORYX, která našla uplatnění v datových přenosech mobilních telefonů, které je třeba zašifrovat. IBM® také vyvinula metodu šifrování toku známou jako SEAL, která našla uplatnění v šifrování pevného disku.