Stream -salaus on eräänlainen algoritmi, jota käytetään datan salauksessa, jossa salattava lähde käsitellään satunnaisesti näyttävää avainsekvenssiä vastaan. Tämäntyyppinen salaus on hieman joustava siinä mielessä, että se voi vaihdella salausta tekstin käsittelyn aikana. Niitä kutsutaan joskus myös tilasalauksiksi, koska salaus riippuu myös toiminnon nykyisestä tilasta. Toisin kuin lohkosalaimet, jotka toimivat 64 bitin datapalasilla kerrallaan, virran salaus voi toimia yhdellä bitillä. Tästä syystä virta voidaan käsitellä suurilla nopeuksilla hyvin pienellä prosessointiteholla.
Gilbert Vernam keksi ensimmäisen virran salauksen vuonna 1917. Myöhemmin Vernam auttoi myös luomaan kertakäyttöisen tyynyn, joka on eräänlainen salauksen muoto, joka käyttää kertaluonteista avainta tietojen salaamiseen. Kertaluontoisessa tyynyssä luotu avain on yhtä pitkä kuin salattavat tiedot, on täysin satunnainen, eikä sitä käytetä enää missään muualla, joten nimi.
Kun käsitellään salattavia tietoja, joita tavallisesti kutsutaan tekstiteksteiksi, tuloksena olevaa salakirjoitustekstiä ei voida purkaa ilman avainta. Kertaluontoista tyynyä on vaikea käsitellä useimmissa skenaarioissa, ja siksi sitä käytetään vain hyvin yksinomaisissa tilanteissa. Silti virran salausta pidetään yleensä hyödyllisenä, joten avaimet lyhennettiin ja tehtiin näennäissatunnaiseksi, mikä tarkoittaa, että ne ovat tilastollisesti satunnaisia, mutta todellisuudessa eivät.
Stream -salauksella on mahdollisuus salata lennossa. Tällä tavalla ihmisten on jopa helppo tehdä yksinkertaisia virtakoodeja kynällä ja paperilla, kun taas lohkosalaus vaatii tyypillisesti tietokoneen käytön. Selväteksti kulkee salausprosessin läpi yhdessä avainvirran, avaimen muodostavan näennäissatunnaisen sekvenssin kanssa, jossa se muunnetaan ja tulee toisesta päästä salakirjoitustekstinä.
Yleensä tämä salaus tapahtuu yksinoikeudella tai (XOR) -toiminnolla yksittäisillä biteillä, kun ne kulkevat salauksen läpi. Yksinkertainen XOR -salaus käyttää perustana loogista disjunktiota, joka sanoo olennaisesti, että tulos voi olla totta, jos jompikumpi operandi on tosi, mutta ei molempia. Jos esimerkiksi salausprosessin läpi kulkeva bitti on nolla tai yksi ja pariksi liitetty avainvirtabitti ei täsmää, tuloksena oleva tulos on yksi. Jos bitti ja pariksi liitetty avainvirtabitti vastaavat toisiaan, jos molemmat ovat yksi tai molemmat ovat nolla, tulos on nolla. Salattu ykkösten ja nollien virta puretaan sitten lähetyksen toisessa päässä käyttämällä samaa avainvirtaa, jolloin bitit muutetaan takaisin alkuperäiseen selkeään tekstiin.
Striimin salausta on kahdenlaisia. Synkronisella menetelmällä avainvirta luodaan erillään selvä- tai salakirjoitustekstistä ja yhdistetään sitten salauksen tai salauksen purkamisen aikaansaamiseksi. Tällä menetelmällä sekä lähetyksen lähettävän että vastaanottavan pään on pysyttävä synkronoituna, jos ne toimivat samalla näppäimellä ja samassa paikassa avaimessa. Jos ongelma ilmenee, salauksen purku on joko aloitettava alusta tai salakirjoitustekstissä voi olla ajoittain sijoitettuja lippuja, jotka osoittavat uusia lähtökohtia. Itsesynkronoiva salaus toisaalta päivittää avainvirran salaustekstin aiempien numeroiden perusteella.
Yksi yleisimmin käytetyistä stream -salauksista, nimeltään RC4, on RSA Data Security®: n luoma. Se on lisensoitu ja sitä käytetään useissa ohjelmistotuotteissa, samoin kuin suojatussa socket layer (SSL) -protokollassa, jota käytetään suojatussa Internet -viestinnässä, ja langattomien laitteiden kanssa käytetyssä WEP -salauksessa. Toinen usein käytetty salaus tunnetaan nimellä ORYX, joka on löytänyt käyttöä solukkopuhelimen tiedonsiirroissa, jotka on salattava. IBM® on myös kehittänyt SEAL -nimisen virransalausmenetelmän, joka on löytänyt käyttöä kiintolevyn salauksessa.