Koja je razlika između Stream Ciphers i Block Ciphers?
Šifra je skup matematičkih pravila ili algoritama koji se koriste za pretvaranje čitljivog teksta ili otvorenog teksta u nečitljiv tekst ili šifrirani tekst. Glavna razlika između tokovnih i blok šifri je u tome što točne šifre rade na tokovima teksta, jedan bit ili jedan bajt odjednom, dok blok šifre rade na blokovima teksta.
Šifra toka
Osnovna ideja stream šifre je podijeliti tekst u male blokove, duge jedan bit ili jedan bajt, i kodirati svaki blok ovisno o mnogim prethodnim blokovima. Stream šifre koriste različite ključeve šifriranja -- vrijednost koja se mora unijeti u algoritam -- za svaki bit ili bajt, tako da isti bit ili bajt proizvodi drugačiji šifrirani tekst svaki put kada se šifrira. Neke šifre toka koriste generator toka ključeva, koji proizvodi nasumični ili gotovo nasumični tok bitova. Šifra izvodi Booleovu operaciju, poznatu kao isključivi OR, između bitova u nizu ključeva i bitova u otvorenom tekstu kako bi proizvela šifrirani tekst.
Blok šifra
Osnovna ideja blokovne š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 zamjena, transport i druge matematičke funkcije izvode na svakom bloku. Snažni algoritmi znače da je obrnuti inženjering šifre ili određivanje koje su funkcije izvršene na svakom bloku, kojim redoslijedom, gotovo nemoguće.
Difuzija i konfuzija
Blokovne šifre koriste tehnike poznate kao konfuzija i difuzija za šifriranje otvorenog teksta u šifrirani tekst. Ideja iza zabune je učiniti odnos između ključa za šifriranje i šifriranog teksta što je moguće 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 po bit 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. Blokovne šifre lakše je implementirati u softver jer šifriraju podatke u blokovima duljine koju softver već koristi. Ključ za šifriranje često je iste duljine kao i veličina bloka.