Kaj je tokovna šifra?

Pretočna šifra je vrsta algoritma, ki se uporablja pri šifriranju podatkov, kjer se vir, ki ga je treba šifrirati, obdela proti zaporedju ključev, ki se zdi naključno. Ta vrsta šifre je nekoliko prilagodljiva v smislu, da lahko spreminja šifriranje, ko se besedilo obdeluje. Včasih se imenujejo tudi šifra stanja, ker je šifriranje odvisno tudi od trenutnega stanja operacije. V nasprotju z blokovnimi šiframi, ki delujejo na kosih podatkov 64 bitov naenkrat, lahko tokovna šifra deluje z enim bitom. Zaradi tega je mogoče tok obdelati pri visokih hitrostih z zelo malo procesorske moči.

Prvo tokovno šifro je zasnoval Gilbert Vernam leta 1917. Vernam je kasneje pomagal ustvariti tudi šifro, znano kot enkratna ploščica, ki je oblika tokovne šifre, ki uporablja enkratni ključ za šifriranje podatkov. V enkratnem bloku je ustvarjeni ključ enake dolžine kot podatki, ki jih je treba šifrirati, je popolnoma naključen in se nikoli več nikjer drugje ne uporablja, od tod tudi ime.

Ko se obdeluje glede na podatke, ki jih je treba šifrirati, običajno imenovano golo besedilo, nastalega šifriranega besedila ni mogoče dešifrirati brez ključa. Z enkratno blazinico je v večini scenarijev težko ravnati, zato se uporablja le v zelo ekskluzivnih situacijah. Kljub temu se pretočna šifra običajno šteje za koristno, zato so bili ključi skrajšani in narejeni psevdonaključno, kar pomeni, da so statistično naključni, v resnici pa niso.

Stream cipher ima možnost šifriranja sproti. Na ta način je preproste tokovne šifre celo enostavno izvajati ljudje na pero in papir, medtem ko blokovno šifriranje običajno zahteva uporabo računalnika za obdelavo. Odkrito besedilo teče skozi postopek šifriranja skupaj s tokom ključev, psevdonaključnim zaporedjem, ki sestavlja ključ, kjer se pretvori in na drugem koncu pride kot šifrirano besedilo.

Običajno se to šifriranje zgodi z izključujočo operacijo ali (XOR) na posameznih bitih, ko gredo skozi šifro. Preprosta šifra XOR kot osnovo uporablja vrsto logične disjunkcije, ki v bistvu pravi, da je rezultat lahko resničen, če je kateri koli operand resničen, ne pa oba. Na primer, če je bit, ki se premika skozi postopek šifriranja, nič ali ena, seznanjeni bit toka ključev pa se ne ujema, je rezultat ena ena. Če se bit in seznanjeni bit toka ključev ujemata, pri čemer sta oba ena ali pa sta nič, je rezultat nič. Šifrirani tok enic in nič se nato dešifrira na drugem koncu prenosa z uporabo istega ključnega toka za pretvorbo bitov nazaj v njihovo prvotno odprto besedilo.

Obstajata dve vrsti tokovne šifre. S sinhrono metodo se tok ključev ustvari ločeno od golega besedila ali šifriranega besedila in nato združi, da zagotovi šifriranje ali dešifriranje. S to metodo morata tako pošiljatelj kot sprejemni konec prenosa ostati sinhroniziran, če delujeta na istem ključu in na isti poziciji v ključu. Če pride do težave, se mora dešifriranje bodisi začeti znova, ali pa so po šifriranem besedilu občasno nameščene zastavice, ki označujejo nova izhodišča. Po drugi strani pa bo samosinhronizirajoča šifra posodobila tok ključev na podlagi določenega števila prejšnjih števk v šifriranem besedilu.
Eno najpogosteje uporabljenih tokovnih šifrir, imenovano RC4, je ustvarilo RSA Data Security®. Ima licenco in se uporablja v številnih programskih izdelkih, pa tudi za protokol sloja varne vtičnice (SSL), ki se uporablja pri varnih internetnih komunikacijah, in šifriranje z enakovrednim ožičenjem (WEP), ki se uporablja z brezžičnimi napravami. Druga pogosto uporabljena šifra je znana kot ORYX, ki je našla uporabo pri prenosih podatkov v mobilnih telefonih, ki jih je treba šifrirati. IBM® je razvil tudi metodo pretočnega šifriranja, znano kot SEAL, ki je našla uporabo pri šifriranju trdega diska.