Tokovna šifra (stream cipher): definicija, delovanje in ranljivosti

Tokovna šifra: jasno o definiciji, delovanju in ranljivostih v kriptografiji. Hitrost, primerjava z blokovnimi šiframi in ključne varnostne napake.

Avtor: Leandro Alegsa

V kriptografiji je tokovna šifra simetrična šifra, pri kateri se biti odprtega besedila kombinirajo s psevdonaključnim tokom bitov šifre (tok ključa) z uporabo operacije izključujočega ali (xor). Pri tokovni šifri se števke navadnega besedila šifrirajo ena za drugo, transformacija zaporednih števk pa se med šifriranjem spreminja. Alternativno ime je državna šifra, saj je šifriranje vsake številke odvisno od trenutnega stanja. V praksi so števke običajno posamezni biti ali bajti.

Osnovno delovanje

Tokovne šifre ustvarijo dolgi psevdonaključni tok ključev iz krajšega tajnega ključnega materiala (npr. 128-bitni ključ) in ta tok kombinirajo z odprtim besedilom z operacijo XOR. Rezultat je šifrirano besedilo (cifrertekst). Če bi bil tok ključa resnično naključen in uporabljen samo enkrat, bi to ustrezalo enkratni podlogi z informacijsko popolno varnostjo. Ker pa je tok ključa psevdonaključen, se ta idealna varnost običajno ne doseže.

Vrste tokovnih šifer

  • Sinkrone (synchronous): tok ključa se ustvarja neodvisno od besedila in se sinhronizira med pošiljateljem in prejemnikom. Napake pri prenosu se ne širijo, zahtevata pa natančno ujemanje začetnega stanja/nonce-a.
  • Samosinkrono (self-synchronizing ali autokorelativna): tok ključa je funkcija predhodnih cifrnih bitov; če pride do izgube podatkov, se prejemnik po nekaj bitih samodejno ponovno sinhronizira. Primeri v praksi so nekateri načini delovanja blokovnih šifer (npr. CFB), ki se obnašajo kot samosinkrone tokovne šifre.

Komponente in začetno stanje

Poleg tajnega ključa tokovne šifre običajno uporabljajo še inicializacijski vektor (IV) ali nonce. Namen IV/nonce-a je zagotoviti, da se isti ključ ne uporablja z enakim tokom ključa večkrat. IV običajno ni skrivnosten (lahko je javno znan), mora pa biti unikaten (v mnogih shemah tudi nepriporočenih za ponovitev) za vsak ključ.

Tipični gradniki generatorja toka so npr. linearni registroi z liničnim povratnim prenosom (LFSR), nelinearne kombinacijske funkcije, kriptografski izvor naključnih števil (PRNG/PRF), ali pa predelava blokovne šifre v tokovno obliko (npr. CTR način delovanja). Moderni primeri so algoritmi, kot so Salsa20/ChaCha20 (ARX- zasnovani PRNG), ali lažji algoritmi za vgrajene naprave (npr. Grain, Trivium).

Primeri in uporabe

  • Tokovne šifre so primerne za realnočasovne aplikacije, kot so tokovni prenos zvoka in videa, mobilna komunikacija in kriptografija v napravah z omejenimi viri (nizka latenca, majhna strojna zahtevnost).
  • V zgodovini in praksi so znani primeri: RC4 (zdaj odsvetovan), A5/1 (uporabljen v GSM, zlomljen), Trivium, Grain, Salsa20/ChaCha20. Blokovne šifre v CTR načinu delovanja se funkcionalno obnašajo kot tokovne šifre.

Ranljivosti in napadi

Tokovne šifre imajo nekaj specifičnih varnostnih tveganj:

  • Ponovna uporaba toka (keystream reuse): če se isti tok ključa uporablja za dva različna besedila (isti ključ in IV/nonse), sta oba cifrnega besedila xorana z istim tokom; njihov XOR odstrani tok in poda XOR obeh odprtih besedil, kar pogosto omogoča razkritje vsebine — to je klasika »two-time pad« napake.
  • Napadi s poznanim odprtim besedilom: če napadalec pozna del odprtega besedila, lahko iz njega izpelje ustrezne dele toka in s tem napade na preostanek komunikacije ali celo izvede okrepitev stanja.
  • Bit-flipping/integričnost: ker je osnovna operacija XOR, napadalec, ki spremeni bit v cifrnem besedilu, ustrezno spremeni kot bit v odprtem besedilu — zato osnovne tokovne šifre ne zagotavljajo integritete ali avtentičnosti.
  • Statistične in strukturne šibkosti: nekateri algoritmi (npr. starejši RC4) kažejo pristranskosti v toku, kar omogoča razlikovalne napade in izpostavlja tajne podatke. LFSR-bazirane sheme so lahko tarča korelacijskih ali algebričnih napadov, ki obnovijo stanje.
  • Premajhno stanje in cikličnost: če je notranje stanje generatorja kratko, se tok lahko ponovi ali ima kratko periodičnost, kar oslabi varnost.
  • Napadi z odzivnim časom in stranskimi kanali: slabe implementacije lahko razkrijejo del stanja skozi čas izvajanja, porabo energije ali elektromagnetno sevanje.
  • Napadi s predelavo ključa (related-key): nekatere konstrukcije so občutljive, če napadalec lahko izvede šifriranje z različnimi, sorodnimi ključi.

Praktični primeri napadov

  • Dešifriranje A5/1 in A5/2 (GSM): uporaba naprednih kriptoanalitičnih in time–memory–tradeoff tehnik je omogočila hitro obnovo stanja oziroma ključa.
  • RC4: zaradi začetnih pristranskosti toka in drugih slabosti je bil RC4 odsvetovan v protokolih, kot so TLS in WPA.
  • Korelacijski in algebrični napadi na LFSR-bazirane sheme: če so relacije med notranjimi registri šibke, lahko napadalci obnovijo stanje iz opazovanih bitov toka.

Varne prakse in priporočila

  • Ne ponavljajte istega para ključ+IV/nonsa. IV naj bo unikaten za vsak klic in, če to zahteva shema, tudi naključen z dovolj entropije.
  • Uporabljajte sodobne in pregledane algoritme (npr. ChaCha20 skupaj s Poly1305 kot AEAD v ChaCha20-Poly1305). Salsa20 in ChaCha sta dobri izbiri za praktične tokovne aplikacije; RC4 naj se ne uporablja več.
  • Ker tokovne šifre same po sebi ne zagotavljajo integritete, vedno uporabljajte avtentični način (AEAD) ali ločen MAC, da preprečite potvorbe (bit-flipping napade).
  • Zagotovite dovolj velik notranji prostor stanja in dolžino ključa, da zmanjšate možnost циклiranja ali brute-force napadov.
  • Implementirajte zaščite proti stranskim kanalom (constant-time operacije, omejevanje izločanja napetosti/podatkov) in pazite na pravilno upravljanje ključev (varno shranjevanje, generiranje in uničenje).
  • Za aplikacije, kjer je možno, razmislite o uporabi zanesljivega blokovnega načina (npr. AES-GCM) ali preverjenih AEAD-shema za kombinacijo zaupnosti in integritete.

Zaključek

Tokovne šifre so učinkovit in pogosto zelo hiter način za zagotovitev zaupnosti v situacijah z nizko zakasnijo in omejenimi viri. Vendar zahtevajo strogo upravljanje ključev in IV/nonce-ov ter previdno izbiro algoritma in implementacije. Nepravilna uporaba (zlasti ponovna uporaba toka) ali uporaba krhkih, nepreverjenih algoritmov lahko vodi do katastrofalnih kompromisov.

Če želite praktičen namig: uporabite preverjene, sodobne protokole in kombinacije (npr. ChaCha20-Poly1305 ali AES-GCM), zagotovite unikatnost nonce-ov, in vedno vključite mehanizem za preverjanje integritete/avtentikacije.

Delovanje generatorja toka ključev v A5/1, tokovni šifri, ki temelji na LFSR in se uporablja za šifriranje pogovorov po mobilnih telefonih.Zoom
Delovanje generatorja toka ključev v A5/1, tokovni šifri, ki temelji na LFSR in se uporablja za šifriranje pogovorov po mobilnih telefonih.

Vrste tokovnih šifer

Tokovna šifra generira zaporedne elemente toka ključev na podlagi notranjega stanja. To stanje se posodablja na dva načina:

  1. Če se stanje spreminja neodvisno od sporočil z odprtim ali šifriranim besedilom, se šifra uvršča med sinhrone tokovne šifre.
  2. Če se stanje posodablja na podlagi prejšnjih sprememb številk šifriranega besedila, se šifra uvršča med samosinhronizirajoče se tokovne šifre.

Sinhrone tokovne šifre

Pri sinhroni tokovni šifri se tok psevdonaključnih številk ustvari neodvisno od sporočil z odprtim in šifriranim besedilom ter se nato združi z odprtim besedilom (za šifriranje) ali s šifriranim besedilom (za dešifriranje). V najpogostejši obliki se uporabljajo binarne številke (biti), tok ključev pa se kombinira z odprtim besedilom z uporabo operacije izključujočega ali (XOR). To se imenuje binarna aditivna tokovna šifra.

Pri sinhroni pretočni šifri morata biti pošiljatelj in prejemnik sinhroni, da je dešifriranje uspešno. Če se med prenosom sporočilu dodajo ali odstranijo števke, se sinhronizacija izgubi. Za ponovno vzpostavitev sinhronizacije lahko sistematično preizkušamo različne odmike, da dobimo pravilno dešifriranje. Drug pristop je označevanje šifriranega besedila z označevalci na rednih točkah v izhodu.

Če pa je pri prenosu številka poškodovana, ne pa dodana ali izgubljena, je prizadeta samo ena številka v odprtem besedilu in napaka se ne razširi na druge dele sporočila. Ta lastnost je uporabna, kadar je stopnja napak pri prenosu visoka; vendar je zaradi nje manj verjetno, da bi bila napaka odkrita brez dodatnih mehanizmov. Poleg tega so zaradi te lastnosti sinhrone tokovne šifre zelo dovzetne za aktivnenapade - če lahko napadalec spremeni števko v šifriranem besedilu, lahko predvidljivo spremeni tudi ustrezni bit v odprtem besedilu; na primer, obračanje bita v šifriranem besedilu povzroči obračanje(Toggling) istega bita v odprtem besedilu.

Samosinhronizirajoče tokovne šifre

Samosinhronizirajoče tokovne šifre so še ena tehnika, ki za izračun toka ključev uporablja del prejšnjih N številk šifriranega besedila. Takšne sheme so znane tudi kot asinhronizacijske tokovne šifre ali samodejni ključ šifriranega besedila (CTAK). Zamisel o samosinhronizaciji je bila patentirana leta 1946, njena prednost pa je, da se sprejemnik po prejemu N številk šifrirnega besedila samodejno sinhronizira z generatorjem toka ključev, kar olajša obnovitev, če so številke izpadle ali dodane toku sporočila. Učinek enomestnih napak je omejen, saj vplivajo le na največ N številk odprtega besedila. Aktivne napade na samosinhronizirajoče se tokovne šifre je nekoliko težje izvesti kot na sinhrone.

Primer samosinhronizacijske tokovne šifre je blokovna šifra v načinu šifriranja s povratno informacijo (CFB).

Tokovne šifre na podlagi linearnega povratnega premičnega registra

Binarne tokovne šifre so pogosto zgrajene z linearnimi izmeničnimi registri (LFSR), saj jih je mogoče enostavno implementirati v strojni opremi in hitro matematično analizirati. Vendar uporaba samo LFSR ne zadostuje za zagotavljanje dobre varnosti. Za povečanje varnosti LFSR-jev so bile zasnovane različne sheme.

Nelinearne funkcije združevanja

Ker so LFSR-ji po naravi linearni, je ena od tehnik za odpravo linearnosti ta, da izhode skupine vzporednih LFSR-jev vnesemo v nelinearno Boolejevo funkcijo in tako oblikujemo generator kombinacij. Različne lastnosti takšne kombinacijske funkcije so pomembne za zagotavljanje varnosti nastale sheme, na primer za preprečevanje korelacijskih napadov.

Generatorji, krmiljeni z uro

Običajno se LFSR-ji redno stopnjujejo. Ena od tehnik uvajanja nelinearnosti je, da se LFSR taktira neredno, kar se nadzoruje z izhodom drugega LFSR. Takšni generatorji vključujejo generator stop-and-go, generator izmeničnih korakov in generator krčenja.

Generator stop-and-go (Beth in Piper, 1984) je sestavljen iz dveh LFSR. En LFSR se taktizira, če je izhod drugega "1", v nasprotnem primeru pa ponovi svoj prejšnji izhod. Ta izhod se nato (v nekaterih različicah) združi z izhodom tretjega LFSR, ki se taktira z redno frekvenco.

Generator za krčenje uporablja drugačno tehniko. Uporabljena sta dva LFSR, ki sta redno taktirana na naslednji način:

  1. Če je izhod prvega LFSR "1", izhod drugega LFSR postane izhod generatorja.
  2. Če je izhod prvega LFSR "0", se izhod drugega zavrže, generator pa ne izpiše nobenega bita.

Ta tehnika je izpostavljena časovnim napadom na drugi generator, saj se hitrost izhoda spreminja v odvisnosti od stanja drugega generatorja. To se lahko izboljša s predpomnilnikom na izhodu.

Generator filtrov

Drug pristop k izboljšanju varnosti LFSR je prenos celotnega stanja posameznega LFSR v nelinearno filtrirno funkcijo.

Drugi modeli

Namesto linearne pogonske naprave lahko uporabimo nelinearno funkcijo posodabljanja. Klimov in Shamir sta na primer predlagala trikotniške funkcije (T-funkcije) z enim ciklom na n bitnih besedah.

Varnost

Da bi bil tok ključev varen, mora biti perioda toka ključev (število številk, preden se tok ponovi) dovolj velika. Če se zaporedje ponavlja, je mogoče prekrivajoča se šifrirna besedila med seboj "v globino" poravnati in obstajajo tehnike, ki omogočajo pridobivanje navadnega besedila iz šifrirnih besedil, ustvarjenih s temi metodami.

Uporaba

Tokovne šifre se pogosto uporabljajo v aplikacijah, kjer je odprto besedilo v količinah neznane dolžine, kot pri varnih brezžičnih povezavah. Če bi se blokovna šifra uporabljala v tovrstnih aplikacijah, bi moral oblikovalec izbrati bodisi učinkovitost prenosa bodisi zapletenost izvedbe, saj blokovne šifre ne morejo neposredno delovati na blokih, ki so krajši od njihove velikosti bloka. Če na primer 128-bitna blokovna šifra prejme ločene 32-bitne serije odprtega besedila, je treba tri četrtine prenesenih podatkov zapolniti. Blokovne šifre je treba uporabljati v načinu kraje šifriranega besedila ali v načinu zaključevanja preostalih blokov, da bi se izognili polnitvi, medtem ko tokovne šifre to težavo odpravijo z delovanjem na najmanjši preneseni enoti (običajno bajtih).

Druga prednost tokovnih šifer v vojaški kriptografiji je, da lahko tok šifer ustvari šifrirna naprava, za katero veljajo strogi varnostni ukrepi, nato pa ga posreduje drugim napravam, npr. radijskemu sprejemniku, ki v okviru svoje funkcije izvedejo operacijo xor. Druga naprava je lahko zasnovana za uporabo v manj varnih okoljih.

RC4 je najpogosteje uporabljena pretočna šifra v programski opremi; druge so: A5/1, A5/2, Chameleon, FISH, Helix, ISAAC, MUGI, Panama, Phelix, Pike, SEAL, SOBER, SOBER-128 in WAKE.

RC4 je ena od najbolj razširjenih oblik tokovnih šifer.Zoom
RC4 je ena od najbolj razširjenih oblik tokovnih šifer.

Primerjava pretočnih šifer

StreamCipher

CreationDate

Hitrost
(cikli/bit)

(bitov)

Napad

Učinkovito
Dolžina ključa

Inicializacijski vektor

InternalState

Najbolj znani

Računska zapletenost

A5/1

1989

Glas (Wphone)

54

114

64

Aktivni KPA ali
KPA Časovno-pametni kompromis

~2 sekunde OR239.91

A5/2

1989

Glas (Wphone)

54

114

64?

Aktivno

4,6 milisekunde

FISH

1993

Dokaj hitro (Wsoft)

Ogromno

Napad z znanim besedilom

211

Zrno

Pred letom 2004

Hitro

80

64

160

Razlikovanje ključev

243

HC-256

Pred letom 2004

4 (WP4)

256

256

65536

ISAAC

1996

2.375 (W64-bit)
-4
.
6875
(W32-bit)

8-8288običajno
40-256

NI RELEVANTNO

8288

(2006) Prvi krog - šibka notranja državna razdelitev

4.67×101240 (2001)

MUGI

1998-2002

128

128

1216

NI PODATKA (2002)

~282

PANAMA

1998

2

256

128?

1216?

Trkanje s čašami (2001)

282

Phelix

Pred letom 2004

do 8 (Wx86)

256 + 128-bitna kodo Nonce

128?

Diferencial (2006)

237

Pike

1994

0,9 x FISH (Wsoft)

Ogromno

NI PODATKA (2004)

NI PODATKA (2004)

Py

Pred letom 2004

2.6

8-2048?
običajno 40-256?

64

8320

Kriptanalitična teorija (2006)

275

Zajec

2003-februar

3,7 (WP3) - 9,7 (WARM7)

128

64

512

NI PODATKA (2006)

NI PODATKA (2006)

RC4

1987

Impresivni

8-2048običajno
40-256

8

2064

Šamirjeva začetno-bitna derivacija ključa OR KPA

213 OR 233

Salsa20

Pred letom 2004

4,24 (WG4) -11
,84
(WP4)

128 + 64-bitni kod Nonce

512

512 + 384 (ključ+IV+indeks)

Diferencial (2005)

NI PODATKA (2005)

Krik

2002

4 - 5 (Wsoft)

128 + 128-bitni znak brez kode

32?

64-bitna funkcija zaokroževanja

SEAL

1997

Zelo hitro (W32-bit)

32?

SNOW

Pred letom 2003

Zelo dobro (W32-bit)

128 ALI 256

32

SOBER-128

2003

do 128

Kovačnica sporočil

2−6

SOSEMANUK

Pred letom 2004

Zelo dobro (W32-bit)

128

128

Trivium

Pred letom 2004

4 (Wx86) - 8 (WLG)

80

80

288

Napad z grobo silo (2006)

2135

Turing

2000-2003

5.5 (Wx86)

160

VEST

2005

42 (WASIC) -64 (WFPGA)

Spremenljivoobičajno
80-256

Spremenljivoobičajno
80-256

256 - 800

NI PODATKA (2006)

NI PODATKA (2006)

WAKE

1993

Hitro

8192

CPA IN CCA

Ranljivi

StreamCipher

CreationDate

Hitrost
(cikli/bit)

(bitov)

Napad

Učinkovito
Dolžina ključa

Inicializacijski vektor

InternalState

Najbolj znani

Računska zapletenost

Sorodne strani

  • eSTREAM

Vprašanja in odgovori

V: Kaj je tokovna šifra?


O: Tokovna šifra je šifra s simetričnim ključem, pri kateri se biti odprtega besedila kombinirajo s psevdonaključnim tokom bitov šifre (tok ključa) z uporabo operacije izključnega ali (xor).

V: Kako se razlikuje od blokovnih šifer?


O: Tokovne šifre se običajno izvajajo z večjo hitrostjo kot blokovne šifre in imajo manjše strojne zahteve. Blokovne šifre delujejo na velikih blokih fiksne dolžine, medtem ko pretočne šifre šifrirajo števke eno za drugo, transformacija zaporednih števk pa se med šifriranjem spreminja.

V: Kakšno vrsto ključev uporablja?


O: Tokovne šifre uporabljajo veliko manjše in priročnejše kriptografske ključe, na primer 128-bitne ključe.

V: Kako generira tok ključev?


O: Tok ključev se generira na podlagi uporabljenega kriptografskega ključa, podobno kot pri algoritmu šifriranja z enkratno podlogo. Ker pa je tok ključev psevdonaključen in ne resnično naključen, ni mogoče uporabiti varnosti, povezane z enkratnim blokom.

V: Zakaj nikoli ne smete dvakrat uporabiti istega začetnega stanja?


O: Dvakratna uporaba istega začetnega stanja lahko privede do resnih varnostnih težav, saj napadalci lažje dešifrirajo podatke, ne da bi poznali ali imeli dostop do vašega kriptografskega ključa.

V: Ali je z uporabo tokovnih šifer povezano kakšno tveganje?


O: Da, če se uporabljajo nepravilno ali brez ustreznih previdnostnih ukrepov, je z uporabo tokovnih šifer povezano tveganje, saj so lahko popolnoma nezanesljive, če se z njimi ne ravna pravilno.


Iskati
AlegsaOnline.com - 2020 / 2025 - License CC3