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:
- Požadavky na synchronizaci. Při použití synchronních proudových šifer musí být odesílatel a příjemce synchronizováni – tj. vytvářet stejné hodnoty klíčového proudu pro odpovídající znaky předávaného proudu dat. Jestliže se synchronizace naruší (například v důsledku ztráty znaku při přenosu), proces rozšifrování nedá korektní výsledek.
- Nepřítomnost množení chyb. Změna znaku šifrovaného textu při přenosu nezpůsobí chybu při rozšifrování jiných znaků šifrovaného textu.
- Vlastnost aktivního útoku. Jako důsledek první vlastnosti, jakákoliv vsuvka nebo odstranění symbolu v šifrovaném textu aktivním protivníkem způsobuje porušení synchronizace a je zjištěno příjemcem rozšifrovávajícím zprávu. Jako důsledek druhé vlastnosti může aktivní protivník změnit symboly šifrovaného textu a tyto změny způsobí odpovídající změny v otevřeném textu získaném při rozšifrování. Proto jsou potřebné doplňující mechanizmy, které toto umožňují odvrátit.
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:
- samosynchronizace. Samosynchronizace existuje při odstranění nebo vsuvce některých znaků šifrovaného textu, protože proces rozšifrování záleží na určitém fixovaném počtu předcházejících znaků šifrovaného textu. Znamená to, že v případě odstranění znaku z šifrovaného textu budou zpočátku chyby při rozšifrování a posléze bude vše dobré a chyby nebudou.
- omezené rozmnožení chyb. Předpokládejme, že stav šifry záleží na t předcházejících znacích šifrovaného textu. Jestliže byl v průběhu přenosu jeden znak šifrovaného textu změněn nebo odstraněn/vsunut, tak při rozšifrování bude pokaženo maximálně t znaků po kterých bude následovat opět normální text.
- vlastnost aktivního útoku. Z druhé vlastnosti vyplývá, že jakákoliv změna znaků šifrovaného textu aktivním protivníkem přivede k tomu, že několik znaků šifrovaného textu se rozšifruje nesprávně a toto bude s velkou (ve srovnání se synchronními šiframi) pravděpodobností zjištěno ze strany příjemce, který rozšifrovává zprávu. Avšak v případě vsuvky nebo odstranění znaků šifrovaného textu (podle vlastnosti 1) je toto hůře zjistitelné (ve srovnání se synchronními šiframi – vzniká desynchronizace). Proto jsou potřebné doplňkové mechanizmy pro kontrolu tohoto stavu.
- rozptylování statistiky otevřeného textu. Protože každý znak otevřeného textu ovlivňuje celý následující šifrovaný text, tak se statistické vlastnosti otevřeného textu (vždyť není ani dalece náhodný) neuchovávají v šifrovaném textu.
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í:
- Možnost dosažení vysokých rychlostí šifrování. Například algoritmus «Tornádo» umožňuje dosahovat rychlosti šifrování do 33 megabajt za vteřinu s procesorem Intel Pentium100.
- Koeficient rozmnožení chyby je rovný jedné.
- Proudovost šifrování a rozšifrování.
- Uchování velikosti textu při šifrování.
K nedostatkům patří:
- Nestabilita šifry při opakovaném použití klíče.
- Posloupnost přístupu k informaci.
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ů.