Hva er en streamkryptering?
En strømkryptering er en type algoritme som brukes i datakryptering der kilden som må krypteres behandles mot en nøkkelsekvens som vises tilfeldig. Denne typen chiffer er noe fleksibel i den forstand at den kan variere krypteringen når teksten blir behandlet. De blir også noen ganger referert til som en statskryptering fordi kryptering også avhenger av gjeldende tilstand for operasjonen. I motsetning til blokkeringssifere, som fungerer på biter av data 64 biter om gangen, kan en strømkryptering operere på en enkelt bit. Av denne grunn kan en strøm behandles i høye hastigheter med svært liten prosessorkraft.
Den første strømskifteren ble utviklet av Gilbert Vernam i 1917. Vernam bidro senere også til å lage en chiffer kjent som engangsputen, som er en form for strømkodiff som bruker en engangsnøkkel for å kryptere dataene. I en engangspute er den genererte nøkkelen den samme lengden som dataene som må krypteres, er helt tilfeldige og blir aldri brukt igjen noe annet sted, derav navnet.
Når den behandles mot dataene som skal krypteres, vanligvis referert til som ren tekst, er den resulterende chifferteksten umulig å dekryptere uten nøkkelen. Engangsputen er vanskelig å håndtere i de fleste scenarier, og brukes derfor bare i veldig eksklusive situasjoner. Fortsatt anses en strømkryptering som nyttig, så nøklene ble forkortet og gjort pseudorandom, noe som betyr at de er statistisk tilfeldige, men i virkeligheten ikke.
Streamkryptering har muligheten til å kryptere på farten. På denne måten er det til og med enkelt for enkle strømforsyninger å bli utført av folk på penn og papir, mens en blokkkode vanligvis krever bruk av en datamaskin for å behandle. Klartext flyter gjennom krypteringsprosessen sammen med nøkkelstrømmen, pseudorandom-sekvensen som utgjør nøkkelen, der den konverteres og kommer ut i den andre enden som chiffertekst.
Vanligvis skjer denne krypteringen via en eksklusiv- eller (XOR) -operasjon på de enkelte bits når de passerer gjennom chifferen. En enkel XOR-chiffer bruker en type logisk disjunksjon som basis, som i det vesentlige sier at resultatet kan være sant hvis begge operandene er sanne, men ikke begge deler. Hvis for eksempel en bit som beveger seg gjennom krypteringsprosessen er en null eller en, og den sammenkoblede nøkkelstrømsbiten ikke samsvarer, er den resulterende utgangen en. Hvis biten og den sammenkoblede nøkkelstrømsbiten samsvarer, der begge er en, eller begge er en null, er resultatet et null. Den krypterte strømmen av ener og nuller dekrypteres deretter i den andre enden av overføringen ved å bruke den samme nøkkelstrømmen for å konvertere bitene tilbake til sin opprinnelige ren tekst.
Det er to typer stream chiffer. Ved hjelp av en synkron metode opprettes nøkkelstrømmen atskilt fra ren tekst eller chiffertekst og slås sammen for å gi kryptering eller dekryptering. Med denne metoden må både sender- og mottaksendene av overføringen forbli synkronisert der de opererer på samme tast og samme posisjon i tasten. Skulle det oppstå et problem, må dekrypteringen enten starte på nytt, eller det kan være flagg som er plassert av og til i hele chifferteksten som indikerer nye startpunkter. En selvsynkroniserende chiffer, derimot, vil oppdatere nøkkelstrømmen basert på noen antall tidligere sifre i chifferteksten.
En av de mest brukte strømkoderne, kalt RC4, ble opprettet av RSA Data Security®. Det er lisensiert for og brukes i en rekke programvareprodukter, så vel som SSL-protokollen (Socket Socket Layer) som brukes i sikker Internett-kommunikasjon og WEP-kryptering (Wired equivalent Privacy) som brukes med trådløse enheter. En annen ofte brukt chiffer er kjent som ORYX, som har funnet bruk i mobiltelefon dataoverføringer som må krypteres. IBM® har også utviklet en strømkrypteringsmetode kjent som SEAL, som har funnet bruk i harddiskkryptering.