Srautinis šifras

Kriptografijoje srautinis šifras yra simetrinis rakto šifras, kai atvirojo teksto bitai sujungiami su pseudorandominiu šifro bitų srautu (rakto srautu) naudojant išskirtinio arba (xor) operaciją. Srautiniame šifre paprasto teksto skaitmenys užšifruojami po vieną, o vienas po kito einančių skaitmenų transformacija keičiasi šifravimo būsenos metu. Alternatyvus pavadinimas yra būsenos šifras, nes kiekvieno skaitmens šifravimas priklauso nuo esamos būsenos. Praktikoje skaitmenys paprastai yra pavieniai bitai arba baitai.

Srautiniai šifrai yra kitoks simetrinio šifravimo būdas nei blokiniai šifrai. Blokiniai šifrai veikia su dideliais fiksuoto ilgio blokais. Srautiniai šifrai paprastai veikia didesniu greičiu nei blokiniai šifrai ir jiems keliami mažesni aparatinės įrangos reikalavimai. Tačiau netinkamai naudojant srautinius šifrus gali kilti rimtų saugumo problemų, pavyzdžiui, ypač niekada negalima du kartus naudoti tos pačios pradinės būsenos.

Srautinis šifras naudoja daug mažesnį ir patogesnį kriptografinį raktą, pavyzdžiui, 128 bitų raktą. Remdamasis šiuo raktu, jis generuoja pseudorandominį raktų srautą, kurį galima sujungti su atvirojo teksto skaitmenimis panašiai kaip ir vienkartinio šifravimo algoritmą. Tačiau kadangi raktų srautas yra pseudorandominis, o ne iš tikrųjų atsitiktinis, su vienkartine kaladėle susijęs saugumas negali būti taikomas, todėl srautinis šifras gali būti visiškai nesaugus.

A5/1, srautinio šifro, pagrįsto LFSR ir naudojamo mobiliųjų telefonų pokalbiams šifruoti, raktų srauto generatoriaus veikimas.Zoom
A5/1, srautinio šifro, pagrįsto LFSR ir naudojamo mobiliųjų telefonų pokalbiams šifruoti, raktų srauto generatoriaus veikimas.

Srautinių šifrų tipai

Srautinis šifras generuoja iš eilės einančius raktų srauto elementus pagal vidinę būseną. Ši būsena atnaujinama dviem būdais:

  1. Jei būsena keičiasi nepriklausomai nuo atvirojo teksto ar šifro pranešimo, šifras priskiriamas sinchroniniam srautiniam šifrui.
  2. Jei būsena atnaujinama remiantis ankstesniais šifro teksto skaitmenų pokyčiais, šifras priskiriamas prie savaime sinchronizuojančių srautinių šifrų.

Sinchroniniai srautiniai šifrai

Sinchroninio srautinio šifro atveju pseudo-atsitiktinių skaitmenų srautas generuojamas nepriklausomai nuo atvirojo ir užšifruoto teksto pranešimų, o tada sujungiamas su atviruoju tekstu (užšifruoti) arba su užšifruotu tekstu (iššifruoti). Dažniausiai naudojami dvejetainiai skaitmenys (bitai), o raktų srautas sujungiamas su atviru tekstu naudojant išskirtinę arba operaciją (XOR). Tai vadinama dvejetainiu adityviniu srautiniu šifru.

Sinchroninio srautinio šifro atveju, kad dešifravimas būtų sėkmingas, siuntėjas ir gavėjas turi būti sinchroniški. Jei perduodant į pranešimą pridedami arba iš jo pašalinami skaitmenys, sinchronizacija prarandama. Norint atkurti sinchronizaciją, galima sistemingai bandyti įvairius poslinkius, kad būtų gautas teisingas iššifravimas. Kitas būdas - žymėti šifro tekstą žymekliais reguliariose išvesties taškuose.

Tačiau jei perduodant skaitmenys sugadinami, o ne pridedami ar prarandami, paveikiamas tik vienas grynojo teksto skaitmuo ir klaida nepersiduoda į kitas pranešimo dalis. Ši savybė naudinga, kai perdavimo klaidų dažnis yra didelis; tačiau dėl jos mažesnė tikimybė, kad klaida bus aptikta be papildomų mechanizmų. Be to, dėl šios savybės sinchroniniai srautiniai šifrai yra labai jautrūs aktyviomsatakoms - jei užpuolikas gali pakeisti skaitmenį šifruotame tekste, jis gali sugebėti atlikti nuspėjamus atitinkamo grynojo teksto bito pakeitimus; pavyzdžiui, bito apvertimas šifruotame tekste sukelia to paties bito apvertimą(Toggled) paprastajame tekste.

Savaime sinchronizuojantys srautiniai šifrai

Savaime sinchronizuojantys srautiniai šifrai yra dar vienas metodas, kai raktų srautui apskaičiuoti naudojama dalis ankstesnių N šifro teksto skaitmenų. Tokios schemos dar vadinamos asinchroniniais srautiniais šifrais arba šifro teksto automatiniu raktu (CTAK). Autosinchronizacijos idėja buvo užpatentuota 1946 m. Jos privalumas tas, kad gavęs N šifro teksto skaitmenų imtuvas automatiškai sinchronizuojasi su raktų srauto generatoriumi, todėl lengviau atsistatyti, jei skaitmenų srautas buvo nutrauktas arba pridėtas. Vieno skaitmens klaidų poveikis yra ribotas - jos paveikia tik iki N atvirojo teksto skaitmenų. Aktyvias atakas prieš savaime sinchronizuojančius srautinius šifrus, o ne prieš sinchroninius analogus, atlikti šiek tiek sunkiau.

Savaime sinchronizuojančio srautinio šifro pavyzdys yra blokinis šifras, veikiantis šifro grįžtamojo ryšio režimu (CFB).

Linijiniu grįžtamuoju ryšiu grįsti srautiniai šifrai

Dvejetainiai srautiniai šifrai dažnai kuriami naudojant tiesinio grįžtamojo ryšio poslinkio registrus (LFSR), nes juos lengva įgyvendinti aparatine įranga ir galima greitai atlikti matematinę analizę. Tačiau norint užtikrinti gerą saugumą nepakanka naudoti vien tik LFSR. Siekiant padidinti LFSR saugumą, buvo sukurtos įvairios schemos.

Netiesinės derinimo funkcijos

Kadangi LFSR iš esmės yra tiesiniai, vienas iš tiesiškumo pašalinimo būdų yra lygiagrečių LFSR grupės išėjimų pateikimas netiesinei loginei funkcijai, kad būtų suformuotas kombinacijų generatorius. Įvairios tokios kombinavimo funkcijos savybės yra svarbios užtikrinant gautos schemos saugumą, pavyzdžiui, siekiant išvengti koreliacijos atakų.

Laikrodžiu valdomi generatoriai

Įprastai LFSR yra reguliariai laiptuojami. Vienas iš netiesiškumo įvedimo būdų yra nereguliarus LFSR taktavimas, kurį kontroliuoja antrojo LFSR išėjimas. Tokie generatoriai yra stop-and-go generatorius, kintamo žingsnio generatorius ir susitraukimo generatorius.

"Stop-and-go" generatorių (Beth ir Piper, 1984) sudaro du LFSR. Vieno LFSR laikrodis suveikia, jei antrojo išvestis yra "1", priešingu atveju jis pakartoja savo ankstesnę išvestį. Po to šis išėjimas (kai kuriose versijose) sujungiamas su trečiojo LFSR išėjimu, kurio taktinis dažnis reguliarus.

Mažinimo generatorius naudoja kitokį metodą. Naudojami du LFSR, kurie abu reguliariai taktuojami taip:

  1. Jei pirmojo LFSR išėjimas yra "1", antrojo LFSR išėjimas tampa generatoriaus išėjimu.
  2. Jei pirmojo LFSR išvestis "0", antrojo išvestis atmetama, o generatorius neišveda jokio bito.

Šis metodas susiduria su antrojo generatoriaus laiko atakomis, nes išėjimo greitis kinta priklausomai nuo antrojo generatoriaus būsenos. Tai galima pagerinti buferizuojant išėjimą.

Filtrų generatorius

Kitas būdas pagerinti LFSR saugumą - visą vieno LFSR būseną perduoti netiesinei filtravimo funkcijai.

Kiti dizainai

Vietoj tiesinio vairavimo įtaiso galima naudoti netiesinę atnaujinimo funkciją. Pavyzdžiui, Klimovas ir Šamiras pasiūlė trikampes funkcijas (T-funkcijas) su vienu ciklu n bitų žodžiuose.

Saugumas

Norint užtikrinti saugumą, raktų srauto periodas (skaitmenų skaičius, išvedamas prieš srautui pasikartojant) turi būti pakankamai didelis. Jei seka kartojasi, persidengiančius šifro tekstus galima suderinti tarpusavyje "į gylį", ir yra metodų, leidžiančių išgauti atvirąjį tekstą iš šiais metodais sukurtų šifro tekstų.

Naudojimas

Srautiniai šifrai dažnai naudojami tais atvejais, kai atvirasis tekstas yra nežinomo ilgio, pavyzdžiui, saugiuose belaidžiuose ryšiuose. Jei blokinis šifras būtų naudojamas tokio tipo programose, projektuotojas turėtų rinktis arba perdavimo efektyvumą, arba įgyvendinimo sudėtingumą, nes blokiniai šifrai negali tiesiogiai dirbti su blokais, trumpesniais už jų bloko dydį. Pavyzdžiui, jei 128 bitų blokinis šifras gautų atskiras 32 bitų atvirojo teksto atkarpas, tris ketvirtadalius perduodamų duomenų reikėtų užpildyti. Blokiniai šifrai turi būti naudojami šifro teksto vagystės arba likutinio bloko užbaigimo režimu, kad būtų išvengta užpildymo, o srautiniai šifrai pašalina šią problemą, nes dirba su mažiausiu perduodamu vienetu (paprastai baitais).

Kitas srautinių šifrų privalumas karinėje kriptografijoje yra tas, kad šifro srautą gali generuoti šifravimo įrenginys, kuriam taikomos griežtos saugumo priemonės, ir perduoti kitiems įrenginiams, pvz., radijo imtuvui, kuris atlieka xor operaciją kaip savo funkcijos dalį. Kitas įrenginys gali būti skirtas naudoti mažiau saugioje aplinkoje.

RC4 yra plačiausiai programinėje įrangoje naudojamas srautinis šifras; kiti yra šie: A5/1, A5/2, Chameleon, FISH, Helix, ISAAC, MUGI, Panama, Phelix, Pike, SEAL, SOBER, SOBER-128 ir WAKE.

RC4 yra vienas iš plačiausiai naudojamų srautinių šifrų.Zoom
RC4 yra vienas iš plačiausiai naudojamų srautinių šifrų.

Srautinių šifrų palyginimas

"StreamCipher"

CreationDate

Greitis
(ciklai/baitas)

(bitų)

Ataka

Efektyvus
Rakto ilgis

Inicializacijos vektorius

InternalState

Geriausiai žinomas

Skaičiavimo sudėtingumas

A5/1

1989

Balsas (Wphone)

54

114

64

Aktyvus KPA arba
KPA laiko ir atminties kompromisas

~2 sekundės OR239.91

A5/2

1989

Balsas (Wphone)

54

114

64?

Aktyvus

4,6 milisekundės

ŽUVYS

1993

Gana greitai (Wsoft)

Didžiulis

Žinomo teksto ataka

211

Grūdai

Iki 2004 m.

Greitai

80

64

160

Rakto išskyrimo funkcija

243

HC-256

Iki 2004 m.

4 (WP4)

256

256

65536

ISAAC

1996

2.375 (W64 bitų)
-4.6875
(W32 bitų)

8-8288 paprastai
40-256

NETAIKOMA

8288

(2006 m.) Pirmojo rato silpnosios vidinės valstybės padalijimas

4.67×101240 (2001)

MUGI

1998-2002

128

128

1216

NETAIKOMA (2002 M.)

~282

PANAMA

1998

2

256

128?

1216?

"Hash Collisions" (2001 m.)

282

Feliksas

Iki 2004 m.

iki 8 (Wx86)

256 + 128 bitų kodas

128?

Diferencialas (2006 m.)

237

Pike

1994

0,9 x FISH (Wsoft)

Didžiulis

NETAIKOMA (2004 M.)

NETAIKOMA (2004 M.)

Py

Iki 2004 m.

2.6

8-2048?
paprastai 40-256?

64

8320

Kriptanalitinė teorija (2006)

275

Triušis

2003 m. vasario mėn.

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

128

64

512

NETAIKOMA (2006 M.)

NETAIKOMA (2006 M.)

RC4

1987

Įspūdingas

8-2048 paprastai
40-256

8

2064

Šamiro pradinių bitų rakto atskyrimas ARBA KPA

213 OR 233

Salsa20

Iki 2004 m.

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

128 + 64 bitų kodas

512

512 + 384 (raktas+IV+indeksas)

Diferencialas (2005 m.)

NETAIKOMA (2005 M.)

Scream

2002

4 - 5 (Wsoft)

128 + 128 bitų kodas

32?

64 bitų apvalinimo funkcija

SEAL

1997

Labai greitai (W32 bitų)

32?

SNOW

Iki 2003 m.

Labai geras (W32 bitų)

128 ARBA 256

32

SOBER-128

2003

iki 128

Pranešimų kalvė

2−6

SOSEMANUK

Iki 2004 m.

Labai geras (W32 bitų)

128

128

Trivium

Iki 2004 m.

4 (Wx86) - 8 (WLG)

80

80

288

Brute force ataka (2006 m.)

2135

Turing

2000-2003

5.5 (Wx86)

160

VEST

2005

42 (WASIC) -64 (WFPGA)

Kintama paprastai
80-256

Kintama paprastai
80-256

256 - 800

NETAIKOMA (2006 M.)

NETAIKOMA (2006 M.)

WAKE

1993

Greitai

8192

CPA IR CCA

Pažeidžiamas

"StreamCipher"

CreationDate

Greitis
(ciklai/baitas)

(bitų)

Ataka

Efektyvus
Rakto ilgis

Inicializacijos vektorius

InternalState

Geriausiai žinomas

Skaičiavimo sudėtingumas

Susiję puslapiai

  • eSTREAM

Klausimai ir atsakymai

K: Kas yra srautinis šifras?


A: Srautinis šifras yra simetrinio rakto šifras, kai atvirojo teksto bitai sujungiami su pseudorandominiu šifro bitų srautu (rakto srautu) naudojant išskirtinio arba (xor) operaciją.

K: Kuo jis skiriasi nuo blokinių šifrų?


A: Srautiniai šifrai paprastai veikia didesniu greičiu nei blokiniai šifrai ir jiems keliami mažesni aparatinės įrangos reikalavimai. Blokiniai šifrai veikia su dideliais fiksuoto ilgio blokais, o srautiniai šifrai šifruoja skaitmenis po vieną, ir šifravimo metu keičiasi vienas po kito einančių skaitmenų transformacija.

K: Kokio tipo raktai naudojami?


A: Srautiniai šifrai naudoja daug mažesnius ir patogesnius kriptografinius raktus, pavyzdžiui, 128 bitų raktus.

K: Kaip generuojamas raktų srautas?


A: Raktų srautas generuojamas pagal naudojamą kriptografinį raktą, panašiai kaip vienkartinio šifravimo algoritme. Tačiau kadangi raktų srautas yra pseudorandominis, o ne iš tikrųjų atsitiktinis, su vienkartiniu bloknotu susijęs saugumas negali būti taikomas.

Klausimas: Kodėl niekada negalima naudoti tos pačios pradinės būsenos du kartus?


A: Du kartus naudojant tą pačią pradinę būseną, gali kilti rimtų saugumo problemų, nes užpuolikams lengviau iššifruoti duomenis nežinant jūsų kriptografinio rakto arba neturint prieigos prie jo.

K: Ar yra kokia nors rizika, susijusi su srautinių šifrų naudojimu?


A: Taip, jei naudojami netinkamai arba nesiimant tinkamų atsargumo priemonių, su srautinių šifrų naudojimu susijusi rizika, nes netinkamai elgiantis su jais gali būti visiškai nesaugu.

AlegsaOnline.com - 2020 / 2023 - License CC3