Stream Cipher vs Block Cipher | Državna šifra u odnosu na blok šifru
U kriptografiji, Stream šifre i Block šifre dva su algoritma za šifriranje/dešifriranje koji pripadaju obitelji simetričnih šifri ključeva. Obično šifra uzima čisti tekst kao ulaz i proizvodi šifrirani tekst kao izlaz. Blokovne šifre šifriraju blok bitova fiksne duljine pomoću nepromjenjive transformacije. Šifre toka šifriraju tokove bitova različite duljine i koriste različite transformacije na svakom bitu.
Što je Stream Cipher?
Stream šifre pripadaju obitelji simetričnih šifri ključeva. Šifre toka kombiniraju bitove običnog teksta s tokom bitova pseudoslučajne šifre uz upotrebu operacije XOR (isključivo ili). Stream šifre šifriraju znamenke običnog teksta jednu po jednu s različitim transformacijama za uzastopne znamenke. Budući da enkripcija svake znamenke ovisi o trenutnom stanju stroja za šifriranje, šifre toka su također poznate kao šifre stanja. Obično se pojedinačni bitovi/zalogaji koriste kao pojedinačne znamenke. Kako bi se izbjegli sigurnosni problemi, potrebno je osigurati da se isto početno stanje ne koristi više od jednom. Najčešće korištena šifra toka je RC4.
Što je blok šifra?
Blok šifra je još jedna šifra simetričnog ključa. Blokovne šifre rade na blokovima (skupinama bitova) s fiksnom duljinom. Blokovne šifre koriste fiksnu (nepromjenjivu) transformaciju za sve znamenke u bloku. Na primjer, kada se x-bitni blok običnog teksta (zajedno s tajnim ključem) daje kao ulaz u stroj za šifriranje blokova, on proizvodi odgovarajući x-bitni blok šifriranog teksta. Stvarna transformacija ovisi o tajnom ključu. Slično, algoritam za dešifriranje obnavlja izvorni x-bitni blok otvorenog teksta koristeći x-bitni blok šifriranog teksta i gornji tajni ključ kao ulaz. U slučaju da je ulazna poruka predugačka u usporedbi s veličinom bloka, bit će podijeljena na blokove i ti će blokovi biti (pojedinačno) šifrirani istim ključem. Međutim, budući da se koristi isti ključ, svaka ponovljena sekvenca u čistom tekstu postaje ista ponovljena sekvenca u šifriranom tekstu, a to može uzrokovati sigurnosne probleme. Popularne blok šifre su DES (Standard šifriranja podataka) i AES (Standard naprednog šifriranja).
Koja je razlika između Stream Cipher i Block Cipher?
Iako i stream šifre i blok šifre pripadaju obitelji simetričnih enkripcijskih šifri, postoje neke ključne razlike. Blokovne šifre šifriraju blokove bitova fiksne duljine, dok šifre toka kombiniraju bitove običnog teksta s pseudoslučajnim tokom bitova šifre koristeći operaciju XOR. Iako blok šifre koriste istu transformaciju, šifre toka koriste različite transformacije na temelju stanja stroja. Stream šifre obično se izvršavaju brže od blok šifri. Što se tiče složenosti hardvera, šifre toka su relativno manje složene. Stream šifre su tipična prednost u odnosu na blok šifre kada je čisti tekst dostupan u različitim količinama (npr. sigurna wifi veza), jer blok šifre ne mogu djelovati izravno na blokovima kraćim od veličine bloka. Ali ponekad, razlika između tokovnih i blok šifri nije baš jasna. Razlog je taj što se, kada se koriste određeni načini rada, blok šifra može koristiti kao šifra toka dopuštajući joj da šifrira najmanju dostupnu jedinicu podataka.