Stream šifre su vrlo prikladne za hardverske aplikacije u stvarnom vremenu.
Šifra je skup matematičkih pravila ili algoritma koji se koristi za pretvaranje čitljivog teksta ili otvorenog teksta u nečitljiv tekst ili šifrirani tekst. Osnovna razlika između stream šifri i blok šifri je u tome što stream šifre rade na tokovima teksta, po jedan bit ili jedan bajt, dok blok šifre rade na blokovima teksta.
Stream Cipher
Osnovna ideja stream šifre je podijeliti tekst u male blokove, jedan bit ili jedan bajt duge, i kodirati svaki blok ovisno o mnogim prethodnim blokovima. Stream šifre koriste drugačiji ključ za šifriranje - vrijednost koja se mora unijeti u algoritam - za svaki bit ili bajt, tako da isti bit ili bajt proizvodi različit šifrirani tekst svaki put kada se šifrira. Neke šifre toka koriste generator toka ključeva, koji proizvodi nasumičan ili gotovo nasumičan tok bitova. Šifra izvodi Booleovu operaciju, poznatu kao ekskluzivno OR, između bitova u toku ključeva i bitova u otvorenom tekstu kako bi proizvela šifrirani tekst.
Video dana
Blok šifra
Osnovna ideja blok šifre je podijeliti tekst u relativno velike blokove, obično duge 64 ili 128 bita, i kodirati svaki blok zasebno. Isti ključ za šifriranje koristi se za svaki blok i ključ za šifriranje je taj koji određuje redoslijed kojim se na svakom izvode zamjena, transport i druge matematičke funkcije blok. Jaki algoritmi znače da je obrnuti inženjering šifre, odnosno određivanje koje su funkcije izvedene na svakom bloku, kojim redoslijedom, praktički nemoguće.
Difuzija i zbrka
Blok šifre koriste tehnike poznate kao zbrka i difuzija za šifriranje otvorenog teksta u šifrirani tekst. Ideja koja stoji iza zabune je da se odnos između ključa za šifriranje i šifriranog teksta učini što složenijim. U idealnom slučaju, svaki znak u ključu za šifriranje trebao bi utjecati na svaki znak u šifriranom tekstu. Nasuprot tome, difuzija širi utjecaj svakog znaka u otvorenom tekstu na nekoliko znakova u šifriranom tekstu, čineći šifru manje osjetljivom na statističke napade.
Za i protiv
Činjenica da stream šifre šifriraju i dešifriraju podatke jedan bit po jedan znači da su posebno prikladne za hardverske aplikacije u stvarnom vremenu, kao što su audio i video aplikacije. Stream šifre su slabije i manje učinkovite od blok šifri kada su u pitanju softverske aplikacije i rjeđe se koriste u toj sferi. Blok šifre je lakše implementirati u softver jer šifriraju podatke u blokovima duljine koju softver već koristi. Ključ za šifriranje je često iste duljine kao i veličina bloka.