Úvod do kryptografie
2007 © Kamilla Amirová (xamirova[at]fd.cvut.cz)
Proudové šifry

Pracují s bitovými nebo bajtovými proudy otevřeného textu a šifrovaného textu (někdy také s proudy 32 bitových slov). Proudová šifra při každém šifrování transformuje jeden a týž bit nebo bajt veřejného textu do různých bitů nebo bajtů šifrovaného textu. Proudové šifry transformují otevřený text do šifrovaného textu po jednom bitu za operaci. Obvykle se používá operace "Vylučující NEBO". Výsledek šifrování nezáleží na již dříve proběhlém vstupním proudu.
Používají se v systémech přenosu proudů informací, tj. v těch případech, kdy přenos informace začíná a končí v libovolných časových okamžicích a může se náhodně přerušit. Jsou vhodné pro šifrování nepřetržitých proudů dat – hlasy, video atd.
Proudové šifry jsou založeny na pseudonáhodných klíčových posloupnostech. Generátor proudu klíčů vytváří bitový proud, který je podobný na náhodný, ale ve skutečnosti je determinován a může být bezchybně obnoven při dešifrování. Čím blíže je výstup z generátoru proudu klíčů k náhodnému, tím více času potřebuje kryptoanalytik, aby rozlomil šifru. Avšak, jestliže generátor proudu klíčů při každém zapnutí vytváří jeden a týž bitový proud, tak není těžké rozlomit jím používaný kryptografický systém. Celkově je možné zobrazit schéma šifry následujícím způsobem:


obr. Princip proudového šifrování.

Nejjednodušší realizací proudové šifry je skramblování. Podstata skramblování spočívá v bitové změně proudu dat procházejících přes systém. Prakticky jedinou operací používanou v skramblerech je XOR – "bitové vylučující NEBO". Paralelně se procházejícímu informačnímu proudu v skrambleru podle určitého pravidla generuje proud bit – kódující proud. Jak přímé, tak i zpětné šifrování se provádí naložením XOR kódující posloupnosti na výchozí. Jeho realizace je možná jak na elektronickém, tak i elektrickém základě, což také zabezpečilo jeho široké rozšíření v polních podmínkách. A co více, fakt, že každý bit výstupní posloupnosti záleží pouze na jednom vstupním bitu ještě posílil pozici skramblerů při ochraně proudového přenosu dat. Je to spojené s nevyhnutelně vznikajícími poruchami v přenosovém kanálu, které mohou deformovat v tomto případě pouze ty bity, které připadají a ne na s nimi spojenou skupinu bajtů, jak je tomu v blokových šifrách.


Problémy s šiframi na základě skramblerů:

1. Synchronizace přenášejícího (kódujícího) a přijímajícího (dekódovacího) zařízení.

Při vynechání nebo špatném vložení alespoň jednoho bitu se veškerá přenášená informace nevratně ztrácí. Proto se v systémech šifrování na základě skramblerů věnuje velká pozornost metodám synchronizace. V praxi se pro tyto účely obvykle používá kombinace dvou metod:
a) přidáním do informačního proudu synchronizujících bitů, předem známých přijímací straně, což jí umožňuje při nenalezení takového bitu začít aktivně hledání synchronizace s odesílatelem,
b) využívání vysoce přesných generátorů časových impulsů, což umožňuje ve chvílích ztráty synchronizace provádět dekódování přijímaných informačních bitů "podle paměti" bez synchronizace.

2. Při dostatečně dlouhé činnosti skrambleru dojde nevyhnutelně k zacyklení. Po provedení určitého počtu taktů se v komůrkách skrambleru vytvoří bitová kombinace, která v něm již jednou byla a od tohoto okamžiku se začne kódovací posloupnost cyklicky opakovat s fixovanou periodou. Uvedený problém je neodstranitelný podle své povahy, protože v N bitech skrambleru nemůže být více než 2N kombinací bitů a tudíž maximálně po 2N-1 cyklech se určitě uskuteční opakování kombinace.
Důležitým nedostatkem skramblovacích algoritmů je jejich nestabilita vůči falzifikaci. Je také důležité poznamenat, že čím vyšší je bitovost skrambleru, tím je vyšší kryptoodolnost systému založeného na jeho využití.

U samosynchronizujících se proudových šifer je každý bit proudu klíčů funkcí fixovaného počtu předcházejících bitů šifrovaného textu. Vnitřní stav je funkcí fixovaného počtu předcházejících n bitů šifrovaného textu. Kryptograficky složitou se jeví výstupní funkce, která využívá vnitřní stav pro generování bitu proudu klíčů. Vzhledem k tomu, že vnitřní stav plně závisí na předcházejících n šifrovaného textu, dešifrující generátor proudu klíčů se automaticky synchronizuje s šifrovacím generátorem proudu klíčů, přijetím n bitů šifrovaného textu. Slabou stránkou samosynchronizující se proudové šifry je šíření chyby. Pro každý bit šifrovaného textu pokaženého při přenosu, dešifrovací generátor proudu klíčů vydá n nesprávných bitů proudu klíčů. Tudíž, každému nesprávnému bitu šifrovaného textu odpovídá n chyb v otevřeném textu, dokud pokažený bit nepřestane ovlivňovat vnitřní stav. Tyto šifry jsou také citlivé k otevření opakovaným přenosem.


Synchronní proudové šifry mají následující vlastnosti: V synchronní proudové šifře se proud klíčů generuje nezávisle na proudu zprávy. Při šifrování generátor proudu klíčů jeden za druhým vydává bity proudu klíčů. Při dešifrování druhý generátor proudu klíčů jeden za druhým vydává identické bity proudu klíčů. Toto funguje, jestliže jsou generátory synchronizované. Jestliže jeden z nich vynechává jeden z cyklů nebo jestli se bit šifrovaného textu při přenosu ztrácí, tak po chybě bude každý symbol šifrovaného textu rozšifrován nesprávně.

Generátor proudu klíčů musí mít dlouhou periodu, mnohem delší než je počet bitů vydávaných mezi změnou klíčů. Jestliže je perioda kratší než je velikost otevřeného textu, tak různé části otevřeného textu budou zašifrovány stejným způsobem, což silně oslabuje bezpečnost systému. Synchronní proudové šifry také chrání před jakýmikoliv vsuvkami a odstraněními šifrovaného textu, protože přivádějí ke ztrátě synchronizace a budou okamžitě objeveny. Avšak neochraňují plně před bitovými zhrouceními. Takové šifry jsou citlivé vůči otevření vsuvkou. Z důvodů odvrácení takového otevření, nikdy nepoužívejte jeden proud klíčů pro šifrování dvou různých událostí.


Samosynchronizující se proudové šifry mají následující vlastnosti: Většina reálných proudových šifer je založena na posuvných registrech se zpětnou vazbou. Registr posunu se používá pro generování klíčové posloupnosti. Posuvný registr se zpětnou vazbou se sestává ze 2 částí: posuvného registru a funkce zpětné vazby. Posuvný registr je posloupnost bitů. (Počet bitů je definován délkou posuvného registru. Jestliže je délka rovná n bitům, tak se registr nazývá n-bitovým posuvným registrem). Pokaždé, když je nutné vyjmout bit, tak se všechny bity posuvného registru posouvají napravo o 1 pozici. Nový krajní levý bit je funkcí všech ostatních bitů registru. Na výstupu registru se objevuje jeden, obvykle poslední významový bit. Periodou registru nazýváme délku získané posloupnosti do začátku jejího opakování.
Jednodušším typem posuvného registru se zpětnou vazbou je lineární posuvný registr se zpětnou vazbou (linear feedback shift register, nebo LFSR). Zpětná vazba představuje XOR některých bitů registru; tyto bity se nazývají odváděcí posloupností. Většina reálných proudových šifer je založena na LFSR. Dokonce při použití SBIS proudová šifra na základě LFSR zabezpečuje dostatečnou ochranu s pomocí několika logických ventilů. Problém LFSR je v tom, že jejich programová realizace je velmi neefektivní.
Příklad šifry realizované na LFSR. A5 – to je proudová šifra, používaná pro šifrování GSM (Group Special Mobile), - evropský standard pro digitální mobilní telefony. A5 se sestává z tří LFSR o délce 19, 22 a 23. Výstupem je XOR tří LFSR. V A5 se používá proměnlivé řízení taktováním. Každý registr se taktuje v závislosti na svém průměrném bitu, potom se provádí XOR se zpětnou prahovou funkcí průměrných bitů všech tří registrů. Obvykle se v každé etapě taktují dva LFSR. Existuje triviální útok na otevřeném textu, založený na předpokladu o obsahu dvou prvních LFSR a pokusu určení třetího LFSR podle klíčové posloupnosti. Nicméně, algoritmus je efektivní a vyhovuje všem známým statistickým testům, jeho jedinou slabinou jsou – krátké registry.
Posuvný registr se zpětnou vazbou při přenosu neboli FCSR (feedback with carry shift register) je podobný na LFSR. Rozdíl je v tom, že v FCSR je také registr přenosu. Místo plnění XOR nad všemi bity odvádějící posloupnosti, se tyto bity sčítají jeden s druhým a s obsahem registru přenosu. Výsledek mod 2 se stává novým bitem. Výsledek dělený na 2 se stává novým obsahem přenosu.


K přednostem proudových šifer (gamování šifer) je třeba přiřadit následující:
K nedostatkům patří: Systémy proudového šifrování jsou blízké kryptosystémům s jednorázovým klíčem u kterých je velikost klíče rovná velikosti šifrovaného textu. Při kryptoanalýze na základě známého otevřeného textu se stabilita systému určuje nelineárními booleovými funkcemi, což umožňuje ocenit kryptostabilitu systému na základě analýzy typu používaných funkcí. V systémech proudového šifrování nedochází k rozmnožení chyb nebo je omezené. Z těchto důvodů a také vzhledem k vysoké rychlosti zpracování systému proudového šifrování (šifrování proudu dat se uskutečňuje bez zdržení v kryptosystému) zvyšují důvěru spotřebitelů a specialistů.