Stream Cipher vs Block Cipher | State Cipher vs Block Cipher
I kryptografi er Stream-cifre og Blok-cifre to krypterings-/dekrypteringsalgoritmer, der tilhører familien af symmetriske nøgle-cifre. Typisk tager en chiffer en almindelig tekst som input og producerer en chiffertekst som output. Blokcifre krypterer blok af bits med fast længde ved hjælp af en uforanderlig transformation. Stream-chiffer krypterer strømme af bits med varierende længde og bruger varierende transformation på hver bit.
Hvad er en Stream Cipher?
Stream-cifre tilhører familien af symmetriske nøgle-cifre. Stream chiffere kombinerer almindelig tekst bit med en pseudorandom chiffer bit stream med brug af XOR (eksklusiv-eller) operation. Stream-cifre krypterer almindelig tekst-cifre et ad gangen med varierende transformationer for på hinanden følgende cifre. Fordi krypteringen af hvert ciffer afhænger af den aktuelle tilstand af chiffermotoren, er stream-chiffer også kendt som tilstands-cifre. Typisk bruges enkelte bit/bit som enkeltcifre. For at undgå sikkerhedsproblemer bør det sikres, at den samme starttilstand ikke bruges mere end én gang. Den mest udbredte stream-chiffer er RC4.
Hvad er en blokcifer?
En blokchiffer er en anden symmetrisk nøgleciffer. Blokcifre fungerer på blokke (grupper af bit) med fast længde. Blokcifre bruger en fast (uvarierende) transformation for alle cifre i blokken. For eksempel, når en x-bit blok almindelig tekst (sammen med en hemmelig nøgle) leveres som input til blok chiffer-motoren, producerer den den tilsvarende x-bit blok af chiffertekst. Selve transformationen er afhængig af den hemmelige nøgle. Tilsvarende genskaber dekrypteringsalgoritmen den originale x-bit blok af klartekst ved at bruge x-bit blok af chiffertekst og den ovennævnte hemmelige nøgle som input. Hvis inputmeddelelsen er for lang i forhold til blokkens størrelse, vil den blive opdelt i blokke, og disse blokke vil (individuelt) blive krypteret med den samme nøgle. Men fordi den samme nøgle bruges, bliver hver gentaget sekvens i almindelig tekst den samme gentagne sekvens i chifferteksten, og dette kan forårsage sikkerhedsproblemer. Populære blokcifre er DES (Data Encryption Standard) og AES (Advanced Encryption Standard).
Hvad er forskellen mellem en stream-cipher og en blok-cipher?
Selvom både stream-cifre og blok-ciffer tilhører familien af symmetriske krypterings-ciffer, er der nogle vigtige forskelle. Blokcifre krypterer blokke af bits med fast længde, mens strømkrypteringer kombinerer almindelig tekstbit med en pseudotilfældig chifferbitstrøm ved hjælp af XOR-operation. Selvom blokchiffer bruger den samme transformation, bruger stream ciphere forskellige transformationer baseret på motorens tilstand. Stream-cifre udføres norm alt hurtigere end blok-ciffer. Med hensyn til hardwarekompleksitet er stream-chiffer relativt mindre komplekse. Stream-cifre er den typiske præference frem for blok-ciffer, når almindelig tekst er tilgængelig i varierende mængder (for eksempel en sikker wifi-forbindelse), fordi blok-ciffer ikke kan fungere direkte på blokke, der er kortere end blokstørrelsen. Men nogle gange er forskellen mellem stream-cifre og blok-ciffer ikke særlig klar. Årsagen er, at når man bruger visse driftsformer, kan en blokchiffer bruges til at fungere som en stream-chiffer ved at tillade den at kryptere den mindste tilgængelige dataenhed.