Prehľad: Stream Cipher Algorithm
Streamová šifra, známa aj ako sekvenčná šifra, je dôležitý symetrický kryptografický systém. Na základe hardvérovej implementácie sa správy šifrujú alebo dešifrujú bit po bite. Kľúčový tok môže byť generovaný obvodom posuvného registra. Základná myšlienka spočíva v použití kľúča k na generovanie kľúčového toku z=z0z1… a plaintextového reťazca x=x0x1… na y=y0y1y2… =Ez0(x0)Ez1(x1)… podľa nasledujúcich pravidiel. Kľúčový tok je generovaný generátorom kľúčového toku f: zi=f(k,σi) (σi je stav pamäťového prvku v čase i pri šifrovaní a f je funkcia generovaná kľúčom k, σi).
Rozdiel medzi streamovou šifrou a blokovými šifrám je v tom, či majú pamäť alebo nie. Posuvný kľúč z0=f(k,σ0) streamovej šifry je úplne určený funkciou f, kľúčom k a zadaným počiatočným stavom σ0. Pretože plaintext vstupného šifrovacieho zariadenia môže ovplyvniť stav vnútorného pamäťového prvku, σi(i>0) môže závisieť od k, σ0, x0, x1, …, xi-1 a ďalších parametrov.
Streamové šifry sú klasifikované na synchronné a samo-synchronné typy podľa toho, či stav úložiska σi v šifrovači závisí od vstupných znakov plaintextu. Ak je σi nezávislé od znakov plaintextu, ide o synchronnú streamovú šifru, inak ide o samo-synchronnú streamovú šifru. Pretože generovanie kľúčového toku samo-synchronnej streamovej šifry závisí od plaintextu, je ťažké ho teoreticky analyzovať. V súčasnosti väčšina výskumných výsledkov sa týka synchronných streamových šifier. Tento článok sa zameriava hlavne na implementačný princíp synchronnej streamovej šifry. V synchronnej streamovej šifre, keďže zi=f(k,σi) je nezávislé od znakov plaintextu, znak šifrovaného textu yi=Ezi(xi) je tiež nezávislý od predchádzajúcich znakov plaintextu. Preto šifrovač synchronnej streamovej šifry možno rozdeliť na dve časti: generátor kľúčového toku a šifrovací prevodník.
Ak je transformácia invertibilná, existuje mnoho možností pre Ezi šifrovaciu transformáciu synchronných streamových šifier. Skutočné digitálne bezpečnostné systémy sú zvyčajne binárne systémy, takže binárna aditívna streamová šifra GF(2) v konečnej doméne je v súčasnosti najčastejšie používaný systém streamovej šifry. Jej šifrovacia transformácia môže byť vyjadrená ako yi=zixi.
Generátor kľúčového prúdu možno všeobecne považovať za automat s konečným stavom s parametrom k, ktorý pozostáva z množiny výstupných symbolov Z, množiny stavov ∑, funkcií φ a ψ a počiatočného stavu σ0. Funkcia prechodu stavov φ : σi→σi+1 prechádza z aktuálneho stavu σi do nového stavu σi+1 a funkcia výstupu ψ : σi→zi mení aktuálny stav σi na prvok zi v množine výstupných symbolov. Kľúčom k návrhu generátora kľúčového prúdu je nájsť vhodnú funkciu prechodu stavov φ a funkciu výstupu ψ. Tým sa zabezpečí, že výstupná sekvencia spĺňa niekoľko podmienok kľúčového prúdu a je hospodárna a ľahko implementovateľná na zariadení. Na dosiahnutie tohto cieľa je potrebné použiť nelineárne funkcie. Najpopulárnejšie a najpraktickejšie generátory kľúčového prúdu sú implementované jedným alebo viacerými registračnými obvodmi s lineárnou spätnou väzbou.
Šiftovací register je hlavnou súčasťou generovania kľúčového prúdu pri streamových šifrách. Lineárny feedback šiftovací register n-ého rádu na GF(2) sa skladá z n binárnych registrov a lineárnej feedback funkcie f(a1,a2,…,an). Každá pamäť sa stáva úrovňou registra. A v každom momente obsah týchto úrovní tvorí stavy feedback šiftovacieho registra, pričom každý stav zodpovedá n-rozmernému vektoru na GF(2), pričom existuje 2n možných stavov. Stav v každom okamihu môže byť vyjadrený ako sekvencia dĺžky n a1,a2,…,an alebo n-rozmerný vektor (a1,a2,…,an), kde ai je obsah i-tej úrovne pamäte. Počiatočný stav je zadaný používateľom a keď príde i-ty posuvný hodinový impulz, každá úroveň pamäte ai odovzdá svoj obsah na ďalšiu úroveň ai-1. A na základe stavu registra v tomto okamihu a1,a2,… , môže vypočítať f(a1,a2,…,an), ako an pre ďalší okamih. Feedback funkcia f(a1,a2,…,an) je Booleovská funkcia n, teda n premenné a1,a2,…,an môžu nezávisle nadobúdať dve možné hodnoty 0 alebo 1. Operácie v tejto funkcii zahŕňajú logické a, logické alebo, logickú negáciu a podobne, pričom konečná hodnota funkcie je tiež 0 alebo 1.
Záver
Stream Cipher ponúka jednoduchosť, ľahkú implementáciu pre hardvér, rýchle šifrovanie a dešifrovanie, a žiadnu alebo len obmedzenú propagáciu chýb. Preto si udržiava výhody v praktických aplikáciách, najmä v špeciálnych alebo tajných organizáciách. Typické aplikačné oblasti zahŕňajú bezdrôtovú komunikáciu a diplomatickú komunikáciu. Bežné streamové šifry: SNOW3G v Európe, ZUC v Číne, RC4 v Spojených štátoch a ďalšie.