Mis on voošifr?

Voo šifr on teatud tüüpi andmete krüptimisel kasutatav algoritm, mille puhul krüptimist vajavat allikat töödeldakse juhuslikult näiva võtmejada vastu. Seda tüüpi šifr on mõnevõrra paindlik selles mõttes, et see võib teksti töötlemisel krüptimist muuta. Neid nimetatakse mõnikord ka olekušifriks, kuna krüptimine sõltub ka toimingu hetkeseisust. Erinevalt plokkšifritest, mis töötavad korraga 64-bitiste andmetükkide peal, võib voošifr toimida ühe bitiga. Sel põhjusel saab voogu töödelda suurel kiirusel ja väga väikese töötlemisvõimsusega.

Esimese voo šifri töötas välja Gilbert Vernam 1917. aastal. Hiljem aitas Vernam luua ka šifri, mida tuntakse ühekordse täidisena. See on voo šifri vorm, mis kasutab andmete krüptimiseks ühekordset võtit. Ühekordses padjas genereeritav võti on sama pikk kui krüpteerimist vajavad andmed, on täiesti juhuslik ja seda ei kasutata enam kunagi mujal, sellest ka nimi.

Kui seda töödeldakse krüpteeritavate andmetega, mida tavaliselt nimetatakse lihttekstiks, on saadud šifriteksti ilma võtmeta võimatu dekrüpteerida. Ühekordset padjakest on enamiku stsenaariumide puhul raske käsitleda ja seetõttu kasutatakse seda ainult väga eksklusiivsetes olukordades. Siiski peetakse voo šifrit tavaliselt kasulikuks, nii et võtmeid lühendati ja muudeti pseudojuhuslikeks, mis tähendab, et need on statistiliselt juhuslikud, kuid tegelikult ei ole.

Voo šifril on võimalus käigu pealt krüptida. Sel viisil on inimestel lihtne teha lihtsaid voošifreid pliiatsil ja paberil, samas kui plokkšifreerimine nõuab töötlemiseks tavaliselt arvuti kasutamist. Lihttekst läbib krüpteerimisprotsessi koos võtmevooga, pseudojuhusliku jadaga, mis moodustab võtme, kus see teisendatakse ja väljub teisest otsast šifritekstina.

Tavaliselt toimub see krüptimine eksklusiivse või (XOR) toimingu kaudu üksikutel bittidel, kui need läbivad šifrit. Lihtne XOR-šifr kasutab oma alusena teatud tüüpi loogilist disjunktsiooni, mis sisuliselt ütleb, et tulemus võib olla tõene, kui kumbki operaand on tõene, kuid mitte mõlemad. Näiteks kui krüpteerimisprotsessis liikuv bitt on null või üks ja seotud võtmevoo bitt ei ühti, on tulemuseks üks. Kui bitt ja seotud võtmevoo bitt kattuvad, kus mõlemad on üks või mõlemad on nullid, on tulemuseks null. Krüpteeritud ühtede ja nullide voog dekrüpteeritakse seejärel edastuse teises otsas, kasutades sama võtmevoogu, et teisendada bitid tagasi nende algseks lihttekstiks.

Voo šifreid on kahte tüüpi. Sünkroonmeetodit kasutades luuakse võtmevoog tavatekstist või šifreeritud tekstist eraldi ja seejärel ühendatakse krüptimise või dekrüptimise tagamiseks. Selle meetodi puhul peavad nii saatmis- kui ka vastuvõtuotsad jääma sünkroonituks, kui nad töötavad samal klahvil ja samas võtmes. Probleemi ilmnemisel tuleb dekrüpteerimist alustada või kogu šifriteksti võib vaheldumisi paigutada lippe, mis näitavad uusi alguspunkte. Seevastu isesünkrooniv šifrivärskendus värskendab võtmevoogu teatud arvu eelmiste numbrite põhjal šifritekstis.
RSA Data Security® lõi ühe kõige sagedamini kasutatava voošifri nimega RC4. See on litsentsitud ja seda kasutatakse paljudes tarkvaratoodetes, samuti turvalises Interneti-suhtluses kasutatavas SSL-protokollis ja traadita seadmetes kasutatavas juhtmega ekvivalentse privaatsuse (WEP) krüptimises. Teine sageli kasutatav šifr on tuntud kui ORYX, mis on leidnud kasutust mobiiltelefonide andmeedastuses, mis vajab krüpteerimist. IBM® on välja töötanud ka SEAL-i nime all tuntud vookrüptimismeetodi, mis on leidnud kasutust kõvaketta krüptimisel.