Vad är en strömkodare?
En strömkryptering är en typ av algoritm som används i datakryptering där källan som behöver krypteras behandlas mot en nyckelsekvens som verkar slumpmässig. Denna typ av chiffer är något flexibel i den meningen att den kan variera krypteringen när texten behandlas. De kallas också ibland tillståndsciffer eftersom kryptering också beror på det aktuella tillståndet för operationen. Till skillnad från blockchiffer, som fungerar på bitar av data 64 bitar åt gången, kan en strömciffer fungera på en enda bit. Av denna anledning kan en ström bearbetas med hög hastighet med mycket liten processorkraft.
Den första strömcifferen utformades av Gilbert Vernam 1917. Vernam hjälpte senare också att skapa en chiffer känd som engångsplattan, som är en form av strömciffer som använder en engångsnyckel för att kryptera data. I en engångsblock är den genererade nyckeln samma längd som de data som behöver krypteras, är helt slumpmässiga och används aldrig igen någon annanstans, därav namnet.
Vid bearbetning mot data som ska krypteras, vanligtvis kallad ren text, är den resulterande chiffertexten omöjlig att dekryptera utan nyckeln. Engångsdynan är svår att hantera i de flesta scenarier och används därför endast i mycket exklusiva situationer. Fortfarande anses en strömciffer normalt vara användbar, så nycklarna förkortades och gjordes pseudorandom, vilket betyder att de är statistiskt slumpmässiga men i verkligheten inte.
Strömciffer har möjlighet att kryptera på flygen. På detta sätt är det till och med enkelt för enkla strömciprar att utföras av människor på penna och papper, medan en blockciffer vanligtvis kräver användning av en dator för att bearbeta. Klartext flyter genom krypteringsprocessen tillsammans med nyckelströmmen, pseudorandom-sekvensen som utgör nyckeln, där den konverteras och kommer ut i andra änden som chiffertext.
Vanligtvis sker denna kryptering via en exklusiv eller (XOR) operation på de enskilda bitarna när de passerar genom chifferet. En enkel XOR-chiffer använder en typ av logisk disjunktion som bas, vilket i huvudsak säger att resultatet kan vara sant om endera operand är sant, men inte båda. Till exempel, om en bit som rör sig genom krypteringsprocessen är en noll eller en, och den parade nyckelströmsbiten inte matchar, är den resulterande utgången en. Om biten och den parade nyckelströmsbiten matchar varandra, där båda är en, eller båda är en noll, blir resultatet noll. Den krypterade strömmen av sådana och nollor dekrypteras sedan i den andra änden av överföringen med samma nyckelström för att konvertera bitarna tillbaka till sin ursprungliga klartext.
Det finns två typer av strömciffer. Med hjälp av en synkron metod skapas nyckelströmmen separat från ren text eller chiffertext och slås sedan samman för att ge kryptering eller dekryptering. Med denna metod måste både sändnings- och mottagningsändarna på sändningen förbli synkroniserade där de arbetar på samma tangent och samma position i tangenten. Om ett problem skulle inträffa måste dekrypteringen antingen börja om, eller så kan det vara flaggor som är placerade intermittent i hela chiffertexten som indikerar nya startpunkter. Ett självsynkroniserande chiffer, å andra sidan, kommer att uppdatera nyckelströmmen baserat på ett antal tidigare siffror i chiffertexten.
En av de mest använda strömcifferna, kallad RC4, skapades av RSA Data Security®. Det är licensierat för och används i ett antal mjukvaruprodukter, såväl som SSL-protokollet (Socket Socket Layer) som används i säker internetkommunikation och WEP-kodning (Wired equivalent privacy) som används med trådlösa enheter. Ett annat ofta använt chiffer kallas ORYX, som har funnit användning i mobiltelefondatasändningar som måste krypteras. IBM® har också utvecklat en strömkrypteringsmetod, känd som SEAL, som har hittat användning i hårddiskkryptering.