Algoritam kriptografske pretvorbe prema GOST 28147 89. Domaći standard šifriranja podataka. Razvoj simuliranih umetaka za niz podataka

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

). Istodobno, u ruskim medijima i blogovima ruskih korisnika raste broj bilješki o ovom algoritmu: oba pokrivaju rezultate napada na ruski standard s različitim stupnjevima pouzdanosti i sadrže mišljenja o njegovim operativnim karakteristikama. Autori (a time i čitatelji) ovih bilješki često stječu dojam da je domaći algoritam šifriranja zastario, spor i ima ranjivosti koje ga čine znatno podložnijim napadima od stranih algoritama šifriranja slične duljine ključa. Ovom serijom bilješki želimo vam u pristupačnom obliku reći o trenutnom stanju stvari s ruskim standardom. Prvi dio će pokriti sve napade na GOST 28147-89 poznate međunarodnoj kriptografskoj zajednici i trenutne procjene njegove snage. U budućim publikacijama također ćemo pobliže pogledati svojstva standarda sa stajališta sposobnosti izgradnje učinkovitih implementacija.

Nicolas Courtois - "veliki i strašni"

Počnimo s pričom o aktivnostima Nicolasa Courtoisa, koji je autor čitavog niza radova posvećenih ruskom standardu šifriranja blokova ().

U listopadu 2010. započeo je proces razmatranja uključivanja algoritma GOST 28147-89 u međunarodnu normu ISO/IEC 18033-3. Već u svibnju 2011. na elektroničkom arhivu ePrint pojavio se članak poznatog kriptografa Nicolasa Courtoisa, obilježen vrlo dvosmislenim stavom svjetske kriptografske zajednice prema njemu. Courtoisove publikacije tužan su primjer manipulacije pojmovima, koja ne otkriva nikakva nova svojstva predmetnog predmeta, već s pretenzijom na senzaciju izaziva širenje pogrešnih mišljenja o njegovim stvarnim svojstvima u nekompetentnoj sredini.

Algebarska metoda

Courtoisovo razmišljanje izgrađeno je oko dvije klase metoda kriptoanalize: algebarskih metoda i diferencijalnih metoda. Pogledajmo prvu klasu metoda.

Pojednostavljeno, metoda algebarske kriptoanalize može se opisati kao sastavljanje i rješavanje velikog sustava jednadžbi, od kojih svako rješenje odgovara cilju kriptoanalitičara (na primjer, ako je sustav sastavljen pomoću jednog para otvorenog teksta i šifriranog teksta, tada sva rješenja ovog sustava odgovaraju ključevima na kojima se ovaj otvoreni tekst pretvara u ovaj kriptiran). Odnosno, u slučaju problema kriptoanalize blokovne šifre, bit algebarske metode kriptoanalize je da se ključ nalazi kao rezultat rješavanja sustava polinomskih jednadžbi. Glavna poteškoća je stvoriti što jednostavniji sustav, uzimajući u obzir karakteristike određene šifre, tako da proces rješavanja traje što je moguće manje vremena. Ovdje ključnu ulogu igraju značajke svake specifične šifre koja se analizira.

Algebarska metoda koju je koristio Courtois može se ukratko opisati na sljedeći način. U prvoj fazi koriste se takva svojstva GOST 28147-89 kao postojanje fiksne točke za dio transformacije šifriranja, kao i takozvana točka refleksije. Zahvaljujući ovim svojstvima, odabire se nekoliko parova iz dovoljno velikog broja parova otvoreni tekst-šifrirani tekst, što omogućuje razmatranje transformacija ne na 32, već samo na 8 rundi. Druga faza je da se na temelju rezultata 8 kružnih transformacija dobivenih u prvoj fazi konstruira sustav nelinearnih jednadžbi u kojem su ključni bitovi nepoznanice. Zatim se ovaj sustav rješava (ovo zvuči jednostavno, ali u stvarnosti je dio metode koji oduzima najviše vremena, jer se sustav sastoji od nelinearnih jednadžbi).

Kao što je već navedeno, nigdje u radu nema detaljnog opisa i analize složenosti druge i glavne faze određivanja ključa. Složenost druge faze određuje složenost cijele metode u cjelini. Umjesto toga, autor iznosi notorne “činjenice” na temelju kojih donosi procjene intenziteta rada. Kaže se da se te "činjenice" temelje na eksperimentalnim rezultatima. Analiza “činjenica” iz Courtoisova djela u cjelini data je u radovima domaćih autora. Autori ovog rada napominju da su mnoge Courtoisove "činjenice" predstavljene bez ikakvih dokaza tijekom eksperimentalnog testiranja pokazale lažnima. Autori članka otišli su dalje i, slijedeći Courtoisa, proveli analizu složenosti druge etape koristeći dobro utemeljene algoritme i procjene. Dobivene procjene složenosti pokazuju potpunu neprimjenjivost prikazanog napada. Osim domaćih autora, veliki problemi koje Courtois ima s procjenama i opravdanjem svojih metoda također su uočeni, primjerice, u radu.

Diferencijalna metoda

Razmotrimo drugu Courtoisovu metodu, koja se temelji na diferencijalnoj kriptoanalizi.

Opća metoda diferencijalne kriptoanalize temelji se na iskorištavanju svojstava nelinearnih preslikavanja korištenih u kriptografskim primitivima, povezanih s utjecajem vrijednosti ključa na ovisnosti između razlika između parova ulaznih i parova izlaznih vrijednosti tih preslikavanja. . Opišimo glavnu ideju diferencijalne metode kriptografske analize blok šifre. Tipično, blokovne šifre transformiraju ulazne podatke u fazama koristeći brojne takozvane okrugle transformacije, a svaka kružna transformacija ne koristi cijeli ključ, već samo neki njegov dio. Razmotrimo malo "skraćenu" šifru, koja se razlikuje od originalne po tome što nema posljednju rundu. Pretpostavimo da je bilo moguće utvrditi da će šifriranje dvaju otvorenih tekstova koji se razlikuju u nekim fiksnim pozicijama pomoću takve "krnje" šifre najvjerojatnije rezultirati šifriranim tekstovima koji se također razlikuju u nekim fiksnim pozicijama. Ovo svojstvo pokazuje da "skraćena" šifra najvjerojatnije ostavlja ovisnost između nekih otvorenih tekstova i rezultata njihove enkripcije. Kako bismo vratili dio ključa korištenjem ove očite mane, potrebno je moći šifrirati unaprijed odabrane otvorene tekstove na ključu koji želimo vratiti (tzv. "napad odabranim otvorenim tekstom"). Na početku postupka "otvaranja ključem", nasumično se generira niz parova otvorenih tekstova, koji se razlikuju po tim istim fiksnim pozicijama. Svi tekstovi su šifrirani korištenjem "pune" šifre. Rezultirajući parovi šifriranih tekstova koriste se za obnavljanje onih ključnih bitova koji su korišteni u posljednjoj rundi transformacije, kako slijedi. Korištenjem neke nasumično odabrane vrijednosti željenih bitova ključa, transformacija inverzna transformaciji posljednje runde primjenjuje se na sve šifrirane tekstove. Zapravo, ako smo pogodili željenu vrijednost bitova ključa, dobit ćemo rezultat "krnje" šifre, a ako nismo pogodili, zapravo ćemo "još više šifrirati podatke", što će samo smanjiti ovisnost između gore navedenih blokova (razlika je u nekim fiksnim pozicijama). Drugim riječima, ako je među rezultatima takve "dodatne obrade" šifriranih tekstova bilo dosta parova koji se razlikuju u fiksnim pozicijama koje su nam poznate, to znači da smo pogodili potrebne bitove ključa. Inače će takvih parova biti znatno manje. Budući da se samo dio ključa koristi u svakoj rundi, traženi bitovi (tj. bitovi ključa korišteni u zadnjoj rundi) nisu brojni kao bitovi u punom ključu i mogu se jednostavno ponoviti ponavljanjem gornjih koraka . U ovom slučaju, sigurno ćemo jednog dana naići na ispravno značenje.

Iz gornjeg opisa proizlazi da je najvažnija stvar u metodi diferencijalne analize upravo broj onih pozicija u otvorenim tekstovima i šifriranim tekstovima, čije razlike igraju ključnu ulogu u vraćanju ključnih bitova. Temeljna prisutnost ovih pozicija, kao i skup njihovih brojeva, izravno ovisi o svojstvima onih nelinearnih transformacija koje se koriste u bilo kojoj blok šifri (obično je sva "nelinearnost" koncentrirana u tzv. S-kutijama ili zamjenski čvorovi).

Courtois koristi malo modificiranu verziju diferencijalne metode. Odmah napomenimo da Courtois svoju analizu provodi za S-kutije koje se razlikuju od sadašnjih i onih koje predlaže ISO. Rad daje diferencijalne karakteristike (one brojeve u kojima bi se blokovi trebali razlikovati) za mali broj krugova. Opravdanje za proširenje karakteristika za više krugova se, kao i obično, temelji na "činjenicama". Courtois izražava, opet, ničim osim svojim autoritetom, nepotkrijepljenu pretpostavku da promjena S-kutija neće utjecati na otpornost GOST 28147-89 na njegov napad (dok su iz nepoznatih razloga S-kutije iz 1. radnog nacrta dodatak standardu ISO/IEC 18033-3 nije razmatran). Analiza koju su proveli autori članka pokazuje da čak i ako uzmemo na vjeru Courtoisove neutemeljene "činjenice" i analiziramo GOST 28147-89 s drugim S-blokovima, opet se ispostavlja da napad nije ništa bolji od potpune pretrage.

Detaljna analiza Courtoisovih radova s ​​detaljnim obrazloženjem neutemeljenosti svih izjava o smanjenju otpornosti ruskog standarda provedena je u radovima [,].

U isto vrijeme, čak i sam Courtois priznaje apsolutni nedostatak točnosti u izračunima! Sljedeći slajd preuzet je iz Courtoisove prezentacije na FSE 2012 odjeljak kratkih obavijesti.

Valja napomenuti da je Courtoisov rad također više puta kritiziran od stranih istraživača. Na primjer, njegov rad na konstruiranju napada na algoritam blokovske enkripcije AES koristeći XSL metodu sadržavao je iste temeljne nedostatke kao i rad na analizi ruskog standarda: većina procjena intenziteta rada pojavljuje se u tekstu potpuno neutemeljeno i nepotkrijepljeno - detaljno kritika se može naći npr. u radu. Osim toga, sam Courtois priznaje široko rasprostranjeno odbijanje objave svog rada na velikim konferencijama o kriptografiji iu etabliranim recenziranim časopisima, često ostavljajući mu samo priliku da govori u odjeljku s kratkim najavama. Na primjer, o tome možete pročitati u 3. odjeljku djela. Evo nekoliko citata samog Courtoisa koji se odnose na njegov rad:

  • “Mislim da publika Asiacrypta neće osjetiti da je zanimljiv.” Recenzent Asiacrypt 2011.
  • “… postoji veliki, veliki, veliki problem: ovaj napad, koji je glavni doprinos rada, već je objavljen na FSE’11 (bio je čak i najbolji rad), …”. Recenzent za Crypto 2011.

Dakle, profesionalni dio međunarodne kriptografske zajednice gleda na kvalitetu Courtoisovog rada s ništa manje sumnje nego, recimo, izjave nekih ruskih stručnjaka o njihovoj sposobnosti da provale AES za 2100, što nije potvrđeno nikakvim dosljednim izračunima, ili najnoviji “dokaz” hipoteze na dvije stranice o nejednakosti klasa složenosti P i NP.

Napadi Isobe i Dinur-Dankelman-Shamira

Opća ideja Isobe () i Dinur-Dankelman-Shamir napada (u daljnjem tekstu: DDS napad) () je konstruirati za određeni (ovisni o ključu) uski skup otvorenih tekstova ekvivalentne transformacije na ovom skupu, koji ima struktura jednostavnija od same transformacije šifriranja. U slučaju Isobe metode, ovo je skup 64-bitnih blokova x tako da je F 8 -1 (Swap(F 8 (z))) = z, gdje je z = F 16 (x), do F 8 ( x) i F 16 ( x) označavaju prvih 8 i prvih 16 krugova šifriranja GOST 28147-89, redom, kroz Swap - operaciju zamjene polovica riječi od 64 bajta. Ako je otvoreni tekst uključen u ovaj skup, rezultat pune 32-kružne transformacije GOST 28147-89 podudara se s rezultatom 16-kružne, što je ono što autor napada iskorištava. U slučaju DDS metode, to je skup x takav da je F 8 (x) = x (fiksna točka transformacije F 8). Za bilo koji otvoreni tekst iz ovog skupa, transformacija GOST 28147-89 radi potpuno isto kao i zadnjih 8 rundi, što pojednostavljuje analizu.

Složenost Isobe napada je 2.224 operacije šifriranja, DDS napada je 2.192. Međutim, sva pitanja o tome uvode li Isobe i DDS napadi nova ograničenja na uvjete korištenja našeg algoritma uklanjaju se procjenom zahtjeva za količinom materijala potrebnog za izvođenje svakog od napada: Isobe metoda zahtijeva 2 32 para otvorenog teksta i šifrirani tekst, a za DDS metodu - 2 64. Obrada takvih volumena materijala bez promjene ključa a priori je neprihvatljiva za bilo koju blokovnu šifru s duljinom bloka od 64: na materijalu volumena 2 32 , uzimajući u obzir problem rođendana (vidi, na primjer, ), vjerojatnost pojavljivanja ponovljenih blokova je blizu 1/2, što će omogućiti napadaču da može izvući određene zaključke o otvorenim tekstovima iz šifriranih tekstova bez određivanja ključa. Prisutnost 2 64 para čistih i šifriranih tekstova dobivenih na jednom ključu zapravo omogućuje neprijatelju izvođenje operacija šifriranja i dešifriranja bez da uopće zna ovaj ključ. To je zbog čisto kombinatornog svojstva: neprijatelj u ovom slučaju ima cijelu tablicu pretvorbe šifriranja. Ova situacija je apsolutno neprihvatljiva pod bilo kojim razumnim radnim uvjetima. Na primjer, u CryptoPro CSP postoji tehničko ograničenje volumena šifriranog materijala (bez konverzije ključa) od 4 MB (vidi). Stoga je stroga zabrana korištenja ključa na materijalu takvog volumena svojstvena bilo kojoj blok šifri s duljinom bloka od 64 bita, pa prema tome Isobe i DDS napadi ni na koji način ne sužavaju opseg upotrebe GOST 28147-89 algoritma uz zadržavanje najveće moguće snage od 2.256.

Naravno, treba napomenuti da su istraživači (Isobe i Dinur-Dankelman-Shamir) pokazali da neka svojstva algoritma GOST 28147-89 omogućuju pronalaženje putova analize koje kreatori algoritma nisu uzeli u obzir. Jednostavan oblik rasporeda ključeva, koji značajno pojednostavljuje zadatak konstruiranja učinkovitih implementacija, također dopušta nekim rijetkim slučajevima ključeva i otvorenih tekstova za konstruiranje jednostavnijih opisa transformacija koje proizvodi algoritam.

Rad pokazuje da se ovo negativno svojstvo algoritma može lako eliminirati uz potpuno očuvanje operativnih karakteristika, ali je, nažalost, sastavni dio algoritma u uobičajenom obliku.

Napominjemo da je određena nebriga u procjenama prosječnog intenziteta rada prisutna iu radu Dinura, Dunkelmana i Shamira. Dakle, kada se konstruira napad, ne obraća se dužna pažnja na sljedeću točku: za značajan udio ključeva, skup otvorenih tekstova x, takav da je F 8 (x) = x, je prazan: možda jednostavno nema fiksnih točaka za 8 krugova transformacije. Postojanje fiksnih točaka također ovisi o izboru zamjenskih čvorova. Stoga je napad primjenjiv samo za određene zamjenske čvorove i ključeve.

Također je vrijedno spomenuti još jedan rad s napadom na GOST 28147-89. U veljači 2012. ažurirana verzija članka (iz studenog 2011.) pojavila se u elektroničkoj arhivi ePrint međunarodne kriptografske udruge, koja je sadržavala novi napad na GOST 28147-89. Karakteristike prikazanog napada su sljedeće: volumen materijala je 2 32 (kao Isobe), a intenzitet rada 2 192 (kao DDS). Stoga je ovaj napad poboljšao DDS napad s vremenskim zapisom u smislu količine materijala s 2 64 na 2 32. Posebno napominjemo da su autori pošteno prikazali sve izračune s obrazloženjem složenosti i volumena materijala. Nakon 9 mjeseci pronađena je temeljna pogreška u gornjim izračunima, a od studenog 2012. ažurirana verzija članka u elektroničkoj arhivi više ne sadrži nikakve rezultate u vezi s domaćim algoritmom.

Napadi pod pretpostavkom da napadač zna "nešto" o ključevima

Na kraju, napominjemo da u literaturi također postoji niz radova (vidi, na primjer, i ) posvećenih napadima na GOST 28147-89 u takozvanom modelu povezanog ključa. Ovaj model u osnovi sadrži pretpostavku da napadač može dobiti pristup za analizu ne samo parovima otvorenih tekstova i šifriranih željenim ključem, već i parovima otvorenih i šifriranih tekstova dobivenih korištenjem (također nepoznatih) ključeva koji se razlikuju od željenog. poznatim regularnim putem (na primjer, u fiksnim položajima bitova). U ovom modelu doista je moguće dobiti zanimljive rezultate o GOST 28147-89, ali u ovom modelu moguće je dobiti ništa manje jake rezultate o, na primjer, AES standardu, koji se najviše koristi u modernim javnim mrežama ( vidi, na primjer,). Imajte na umu da uvjeti za izvođenje ove vrste napada nastaju korištenjem šifre u određenom protokolu. Treba napomenuti da rezultati ove vrste, iako su od nedvojbenog akademskog interesa sa stajališta proučavanja svojstava kriptografskih transformacija, zapravo nisu relevantni za praksu. Na primjer, svi alati za kriptografsku zaštitu informacija koje je certificirao FSB Rusije ispunjavaju najstrože zahtjeve za sheme generiranja ključeva šifriranja (vidi, na primjer,). Kao što je navedeno u rezultatima analize, ako postoji 18 pridruženih ključeva i 2 10 parova otvorenog teksta i blokova šifriranog teksta, složenost potpunog otvaranja privatnog ključa, s vjerojatnošću uspjeha od 1-10 -4, zapravo je 2 26 . Međutim, ako su ispunjeni gore navedeni zahtjevi za razvoj materijala ključeva, vjerojatnost pronalaska takvih ključeva je 2 -4352, odnosno 24096 puta manja nego ako jednostavno pokušate pogoditi tajni ključ iz prvog pokušaja.

Radovi vezani uz model s povezanim tipkama također uključuju rad koji je 2010. godine izazvao mnogo buke u ruskim elektroničkim publikacijama, koje ne pate od navike pažljivog provjeravanja materijala u utrci za senzacijama. Rezultati predstavljeni u njemu nisu bili potkrijepljeni nikakvim rigoroznim opravdanjem, ali su sadržavali glasne izjave o mogućnosti hakiranja državnog standarda Ruske Federacije na slabom prijenosnom računalu u nekoliko sekundi - općenito, članak je napisan u najboljim tradicijama Nicolasa Courtoisa. No, usprkos apsolutno očitoj neutemeljenosti članka čitatelju koji je koliko-toliko upoznat s osnovnim načelima znanstvenih publikacija, Rudski je upravo da bi nakon rada umirio rusku javnost, napisao detaljan i temeljit tekst koji je sadržavao opsežnu analizu ovog nedostatka. Članak samoobjašnjavajućeg naslova “O nultom praktičnom značaju rada “Key recovery attack on full GOST block cipher with zero time and memory”” daje opravdanje da prosječna složenost metode koja je navedena u nije ništa manja od složenosti potpune pretrage.

Suhi ostatak: što je trajnost u praksi?

Zaključno, predstavljamo tablicu koja sadrži podatke o svim rezultatima strogo opisanih i opravdanih napada na GOST 28147-89 poznatih međunarodnoj kriptografskoj zajednici. Imajte na umu da je složenost navedena u operacijama šifriranja algoritma GOST 28147-89, a memorija i materijal navedeni su u blokovima algoritma (64 bita = 8 bajtova).

Napad Intenzitet rada Memorija Potreban materijal
Isobe 2 224 2 64 2 32
Dinur-Dankelman-Shamir, FP, 2DMitM 2 192 2 36 2 64
Dinur-Dankelman-Shamir, FP, slabo pamćenje 2 204 2 19 2 64
2 224 2 36 2 32
Dinur-Dankelman-Shamir, Odraz, 2DMitM 2 236 2 19 2 32
Dovršite pretragu 2 256 1 4
Broj nanosekundi od nastanka svemira 2 89

Unatoč prilično opsežnom ciklusu istraživanja u području otpornosti algoritma GOST 28147-89, trenutno nije poznat niti jedan napad za čiju bi se provedbu mogli ostvariti uvjeti uz prateće operativne zahtjeve za blok duljine 64 bita. Ograničenja količine materijala koji se može obraditi na jednom ključu koja proizlaze iz parametara šifre (duljina bita ključa, duljina bita bloka) znatno su stroža od minimalne količine potrebne za izvođenje bilo kojeg trenutno poznatog napada. Posljedično, pri ispunjavanju postojećih operativnih zahtjeva, niti jedna od metoda kriptoanalize predloženih do danas GOST 28147-89 ne dopušta određivanje ključa s intenzitetom rada manjim od iscrpnog pretraživanja.

U našoj zemlji uspostavljen je jedinstveni algoritam za kriptografski prikaz podataka za sustave obrade informacija u računalnim mrežama, pojedinačne računalne sustave i računala, koji je određen GOST 28147-89.

Ovaj algoritam za pretvorbu kriptografskih podataka je 64-bitni blok algoritam s 256-bitnim ključem, dizajniran za hardversku i softversku implementaciju, zadovoljava kriptografske zahtjeve i ne nameće ograničenja na stupanj tajnosti zaštićenih informacija.

U opisu algoritma koristi se sljedeća oznaka:

L i R - nizovi bitova;
LR je ulančanje nizova L i R, u kojem bitovi niza R slijede bitove niza L;
(+) - zbrajanje po bitovima modulo 2 (operacija "isključivo ILI");
[+] - zbrajanje 32-bitnih brojeva po modulu 2 32;
(+) - zbrajanje 32-bitnih brojeva po modulu 2 32 -1.

Brojevi se zbrajaju prema sljedećem pravilu:

A [+] B = A + B ako je A + B< 2 32 ,
A [+] B = A + B - 2 32 ako je A + B >= 2 32 . A (+) B = A + B ako je A + B< 2^32 - 1, A {+} B = A + B - (2^32 - 1), если A + B >= 2^32 - 1.

Algoritam omogućuje četiri načina rada:

U svakom slučaju, 256-bitni ključ K koristi se za šifriranje podataka, koji je predstavljen kao osam 32-bitnih podključeva K i:

K = K 7 K 6 K 5 K 4 K 3 K 2 K 1 K 0 .

Dešifriranje se izvodi pomoću istog ključa kao i kodiranje, ali proces je obrnut od procesa šifriranja podataka.

Jednostavan način zamjene

Prvi i najlakši način je zamjena. Podaci koji se šifriraju podijeljeni su u 64-bitne blokove. Postupak šifriranja za blok otvorenih podataka T 0 uključuje 32 ciklusa (j=1...32).

Blok T 0 je podijeljen u dvije sekvence od 32 bita: B(0)A(0), gdje su B(0) lijevi ili viši bitovi, A(0) su desni ili niži bitovi.

Ove sekvence se unose u pogone N 1 i N 2 prije početka prvog ciklusa enkripcije.

Prvi ciklus (j=1) postupka šifriranja za 64-bitni podatkovni blok opisan je sljedećim formulama:

Ovdje i označava broj iteracije (i = 1, 2,..., 32).

Funkcija f naziva se funkcija šifriranja. Njegov argument je zbroj, modulo 2, 32 broja A(i), dobiven u prethodnom koraku iteracije, i ključnog broja X(j) (dimenzija svakog od ovih brojeva je 32 znamenke).

Funkcija šifriranja uključuje dvije operacije na rezultirajućem 32-bitnom zbroju. Prva operacija se zove K supstitucijski blok koji se sastoji od 8 supstitucijskih čvorova K(1) ... K(8) sa memorijom od 64 bita. 32-bitni vektor koji stiže u supstitucijski blok podijeljen je u 8 sekvencijalnih 4-bitnih vektora, od kojih se svaki pretvara u 4-bitni vektor pomoću odgovarajućeg zamjenskog čvora, što je tablica od 16 cijelih brojeva u rasponu 0.. .15.

Ulazni vektor specificira adresu retka u tablici, čiji je broj izlazni vektor. 4-bitni izlazni vektori se zatim sekvencijalno spajaju u 32-bitni vektor. Supstitucijska blok tablica K sadrži ključne elemente koji su zajednički računalnoj mreži i rijetko se mijenjaju.

Druga operacija je ciklički pomak ulijevo od 32-bitnog vektora dobivenog kao rezultat supstitucije K. 64-bitni blok šifriranih podataka T sh predstavljen je kao T sh = A (32) B (32).

Preostali blokovi otvorenih podataka u načinu jednostavne zamjene šifrirani su na isti način.

Imajte na umu da se jednostavni način zamjene može koristiti za šifriranje podataka samo u ograničenim slučajevima. Ti slučajevi uključuju generiranje ključa i njegovo šifriranje uz pružanje zaštite od imitacije (zaštita od nametanja lažnih podataka) za prijenos komunikacijskim kanalima ili pohranu u memoriju računala.

Gama način rada

Otvoreni podaci, podijeljeni u 64-bitne blokove T(i) (i=1, 2,..., m, gdje je m određeno volumenom šifriranih podataka), šifrirani su u gama modu bitovnim zbrajanjem modulo 2 s gama šifra Gš, koja se proizvodi u blokovima od 64 bita, odnosno Gš = (G(1),G(2),...,G(i),...,G(m)).

Jednadžba šifriranja podataka u gama načinu rada može se prikazati na sljedeći način:

Š(i) = A (Y(i-1) [+] C2, Z(i-1) (+) C1) (+) T(i) = G(i) (+) T(i) .
Ovdje je Š(i) 64-bitni blok šifrovanog teksta,
A - funkcija šifriranja u jednostavnom načinu zamjene (argumenti ove funkcije su dva 32-bitna broja),
C1 i C2 su konstante navedene u GOST 28147-89,
Y(i) i Z(i) su veličine koje se određuju iterativno jer se gama formira na sljedeći način:
(Y(0), Z(0)) = A(S), gdje je S 64-bitna binarna sekvenca (sinkronizirana poruka);
(Y(i), Z(i)) = (Y(i-1) [+] C2, Z(i-1) (+) C1) za i = 1, 2,...,m.

Dešifriranje podataka moguće je samo uz prisutnost sinkronizacijske poruke, koja nije tajni element šifre i može se pohraniti u memoriju računala ili prenijeti komunikacijskim kanalima zajedno s šifriranim podacima.

Gama način rada s povratnom spregom

Način rada kockanje s povratnom spregom vrlo je sličan gama modu. Kao iu gama načinu rada, otvoreni podaci, podijeljeni u 64-bitne blokove T(i) (i=1, 2,..., m, gdje je m određeno volumenom šifriranih podataka), šifrirani su zbrajanjem po bitovima modulo 2 s gama šifrom G sh, koja se proizvodi u blokovima od 64 bita:

G w = (G(1),G(2),...,G(i),...,G(m)).

Broj binarnih znamenki u T(m) bloku može biti manji od 64, dok se dio raspona šifre koji se ne koristi za šifriranje iz G(m) bloka odbacuje.

Jednadžba šifriranja podataka u gama modu zatvorene petlje može se prikazati na sljedeći način:


Ovdje je Š(i) 64-bitni blok šifrovanog teksta,
A - funkcija šifriranja u jednostavnom načinu zamjene. Argument funkcije u prvom koraku iterativnog algoritma je 64-bitna sinkronizacijska poruka, au svim sljedećim koracima to je prethodni blok šifriranih podataka Š(i-1).

Razvoj imitacijskih umetaka

Proces proizvodnje imitovstaki je jedinstven za bilo koji od načina šifriranja podataka.

Imitacija umetanja je blok od p bitova (imitacija umetanja Ir), koji se generira prije šifriranja cijele poruke ili paralelno s blok-po-blok enkripcijom. Prvi blokovi otvorenih podataka koji sudjeluju u generiranju imitativnog umetka mogu sadržavati servisne informacije (primjerice adresni dio, vrijeme, sinkronizacijsku poruku) i nisu šifrirani. Vrijednost parametra p (broj binarnih bitova u simulacijskom umetku) određena je kriptografskim zahtjevima, uzimajući u obzir činjenicu da je vjerojatnost nametanja lažnih smetnji jednaka 1/2^p.

Za dobivanje simuliranog umetanja, otvoreni podaci se prikazuju u obliku 64-bitnih blokova T(i) (i = 1, 2,..., m, gdje je m određen volumenom šifriranih podataka). Prvi blok običnih podataka T(1) prolazi kroz transformaciju koja odgovara prvih 16 ciklusa algoritma za šifriranje u jednostavnom načinu zamjene. Štoviše, ključ koji se koristi za šifriranje podataka koristi se kao ključ za generiranje imitativnog umetka.

64-bitni broj dobiven nakon 16 ciklusa rada zbraja se modulo 2 s drugim blokom otvorenih podataka T(2). Rezultat zbrajanja ponovno se podvrgava transformaciji koja odgovara prvih 16 ciklusa algoritma šifriranja u jednostavnom načinu zamjene. Rezultirajući 64-bitni broj zbraja se modulo 2 s trećim blokom otvorenih podataka T(3), itd. Posljednji blok T(m), ako je potrebno, dopunjen do punog 64-bitnog bloka s nulama, zbraja se modulo 2 s rezultatom rada u koraku m-1, nakon čega se šifrira u jednostavnom načinu zamjene preko prvog 16 ciklusa algoritma. Iz dobivenog 64-bitnog broja odabire se segment Ir duljine p bitova.

Imitacijski umetak Ir prenosi se komunikacijskim kanalom ili u memoriju računala nakon šifriranih podataka. Primljeni šifrirani podaci se dekriptiraju, a iz primljenih blokova otvorenih podataka T(i) generira se simulirano umetanje Ir, koje se zatim uspoređuje sa simuliranim umetanjem Ir primljenim iz komunikacijskog kanala ili iz memorije računala umetanja ne podudaraju, svi dešifrirani podaci smatraju se netočnima.

DES, domaći standard šifriranja, pogodniji je za implementaciju softvera.

Za razliku od američkog DES-a, domaći standard koristi duži ključ - 256 bita. Osim toga, ruski standard predlaže korištenje 32 runde enkripcije, dok DES zahtijeva samo 16.

Dakle, glavni parametri algoritma za kriptografsku transformaciju podataka GOST 28147-89 su sljedeći: veličina bloka je 64 bita, veličina ključa je 256 bita, broj krugova je 32.

Algoritam je klasična Feishtelova mreža. Enkriptirani blok podataka podijeljen je na dva identična dijela, desni R i lijevi L. Desni dio se dodaje okruglom podključu i pomoću nekog algoritma šifrira lijevi dio. Prije sljedećeg kruga, lijevi i desni dio se mijenjaju. Ova struktura omogućuje korištenje istog algoritma i za šifriranje i za dešifriranje bloka.

Algoritam šifriranja koristi sljedeće operacije:

  • zbrajanje riječi po modulu 2 32;
  • ciklički pomaknuti riječ ulijevo za određeni broj bitova;
  • zbrajanje po bitovima modulo 2;
  • zamjena prema tablici.

U različitim koracima GOST algoritama, podaci na kojima rade tumače se i koriste na različite načine. U nekim se slučajevima podatkovni elementi tretiraju kao nizovi neovisnih bitova, u drugim slučajevima kao cijeli broj bez predznaka, u trećima kao strukturirani složeni element koji se sastoji od nekoliko jednostavnijih elemenata.

Okrugla struktura GOST 28147-89

Struktura jednog kruga GOST 28147-89 prikazana je na sl. 5.1.

Šifrirani blok podataka dijeli se na dva dijela, koji se zatim obrađuju kao zasebni 32-bitni cijeli brojevi bez predznaka. Prvo se desna polovica bloka i potključ kruga dodaju modulo 2 32. Zatim se izvodi zamjena blok po blok. 32-bitna vrijednost dobivena u prethodnom koraku (nazovimo je S) tumači se kao niz od osam 4-bitnih kodnih blokova: S=(S0,S1,S2,S3,S4,S5,S6,S7). Zatim se vrijednost svakog od osam blokova zamjenjuje novom, koja se bira iz tablice zamjene na sljedeći način: vrijednost bloka S i zamjenjuje se S i -tim elementom po redu (numeriranje od nule) i-tog zamjenskog čvora (tj. zamjenske tablice i-tog reda, numeriranje također od nule). Drugim riječima, element s brojem retka jednakim broju bloka koji se zamjenjuje i brojem stupca jednakim vrijednosti bloka koji se zamjenjuje kao 4-bitni nenegativan cijeli broj odabire se kao zamjena za vrijednost Gradska četvrt, kvart. Svaki red zamjenske tablice sadrži brojeve od 0 do 15 slučajnim redoslijedom bez ponavljanja. Vrijednosti elemenata tablice supstitucije uzimaju se od 0 do 15, budući da četiri bita koja se supstituiraju mogu sadržavati cijeli broj bez predznaka u rasponu od 0 do 15. Na primjer, prvi redak S-kutije može sadržavati sljedeće vrijednosti: 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11 . U ovom slučaju, vrijednost bloka S 0 (četiri najmanje značajna bita 32-bitnog broja S) bit će zamijenjena brojem na poziciji čiji je broj jednak vrijednosti bloka koji se zamjenjuje. Ako je S 0 = 0, tada će biti zamijenjen s 5, ako je S 0 = 1, tada će biti zamijenjen s 8 itd.


Riža. 5.1.

Nakon što se izvrši zamjena, svi 4-bitni blokovi ponovno se spajaju u jednu 32-bitnu riječ, koja se zatim rotira 11 bitova ulijevo. Na kraju, koristeći bitwise operaciju "zbroj modulo 2" rezultat se kombinira s lijevom polovicom, što rezultira novom desnom polovicom R i . Nova lijeva strana L i uzima se jednakom donjem dijelu pretvorenog bloka: L i = R i-1 .

Rezultirajuća vrijednost pretvorenog bloka smatra se rezultatom jednog kruga algoritma šifriranja.

Postupci šifriranja i dešifriranja

GOST 28147-89 je dakle blok šifra pretvorba podataka provodi se u blokovima u tzv osnovni ciklusi. Osnovne petlje sastoje se od ponovljenog izvođenja glavne runde o kojoj smo ranije govorili za blok podataka, koristeći različite ključne elemente i razlikuju se jedna od druge po redoslijedu kojim se ključni elementi koriste. Svaki krug koristi jedan od osam mogućih 32-bitnih podključeva.

Pogledajmo proces stvaranja okruglih podključeva. U GOST-u je ovaj postupak vrlo jednostavan, posebno u usporedbi s DES-om. 256-bitni ključ K podijeljen je na osam 32-bitnih podključeva, označenih kao K0, K1, K2, K3, K4, K5, K6, K7. Algoritam uključuje 32 kruga, tako da se svaki potključ tijekom enkripcije koristi u četiri kruga prema slijedu prikazanom u tablici 5.1.

Tablica 5.1. Redoslijed korištenja podključeva tijekom enkripcije
Krug 1 2 3 4 5 6 7 8
Kompletna izgradnja K 0 K 1 K2 K 3 K 4 K5 K 6 K 7
Krug 9 10 11 12 13 14 15 16
Kompletna izgradnja K 0 K 1 K2 K 3 K 4 K5 K 6 K 7
Krug 17 18 19 20 21 22 23 24
Kompletna izgradnja K 0 K 1 K2 K 3 K 4 K5 K 6 K 7
Krug 25 26 27 28 29 30 31 32
Kompletna izgradnja K 7 K 6 K5 K 4 K 3 K2 K 1 K 0

Proces dešifriranja provodi se istim algoritmom kao i kodiranje. Jedina razlika je redoslijed kojim se K i potključevi koriste. Prilikom dešifriranja potključevi se moraju koristiti obrnutim redoslijedom, naime kako je navedeno u

Kratak opis šifre

GOST 28147-89 je sovjetski i ruski standard simetrične enkripcije uveden 1990., također standard CIS-a. Puni naziv - „GOST 28147-89 Sustavi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske pretvorbe". Algoritam blokovne šifre. Kada se koristi metoda gama enkripcije, može obavljati funkcije algoritma tokovne šifre.

GOST 28147-89 je blok šifra s 256-bitnim ključem i 32 ciklusa pretvorbe, koja radi na 64-bitnim blokovima. Osnova algoritma za šifriranje je Feistelova mreža. Osnovni način šifriranja prema GOST 28147-89 je jednostavni način zamjene (također su definirani složeniji načini gama, gama s povratnom spregom i simulirani načini umetanja).

Kako algoritam radi

Algoritam se bitno ne razlikuje od DES-a. Također sadrži cikluse šifriranja (njih 32) prema Feistelovoj shemi (Sl. 2.9.).

Riža. 2.9. Enkripcijski krugovi algoritma GOST 28147-89.

Za generiranje podključeva, originalni 256-bitni ključ je podijeljen u osam 32-bitnih blokova: k 1 ...k 8 . Ključevi k 9 ...k 24 su cikličko ponavljanje ključeva k 1 ...k 8 (numeriranih od najmanjeg do najvišeg bita). Tipke k 25 …k 32 su tipke k 1 …k 8 obrnutim redoslijedom.

Nakon završetka sva 32 kruga algoritma, blokovi A 33 i B 33 su zalijepljeni zajedno (imajte na umu da najvažniji bit postaje A 33, a najmanji bit - B 33) - rezultat je rezultat algoritma.

Funkcija f(A ja ,K ja) izračunava se na sljedeći način: A i i K i se zbrajaju modulo 2 32 , zatim se rezultat dijeli na osam 4-bitnih podsekvenci, od kojih je svaka unesena u svoj vlastiti čvor zamjenske tablice(u rastućem redoslijedu prvenstva bita), koji se naziva u nastavku S-blok. Ukupan broj GOST S-blokova je osam, tj. isti broj kao i podsekvenci. Svaki S-blok je permutacija brojeva od 0 do 15. Prvi 4-bitni podniz ide na ulaz prvog S-kutija, drugi - na ulaz drugog itd. Izlazi svih osam S-kutija kombiniraju se u 32-bitnu riječ, tada se cijela riječ ciklički pomiče ulijevo (prema najvažnijim bitovima) za 11 bitova. Svih osam S-kutija mogu biti različite. Zapravo, oni mogu biti dodatni ključni materijal, ali češće su parametar sheme zajednički određenoj skupini korisnika. U tekstu norme je naznačeno da se isporuka zamjenskih jedinica za punjenje (S-blokova) vrši na propisani način, tj. razvijač algoritama. Zajednica ruskih programera CIPF-a dogovorila se o zamjenskim čvorovima koji se koriste na Internetu.

Dešifriranje se izvodi na isti način kao i šifriranje, ali je redoslijed podključeva k i obrnut.

Načini rada algoritma GOST 28147-89

Algoritam GOST 28147-89 ima četiri načina rada.

1. Način radalaka zamjena prihvaća kao ulazne podatke čija je veličina višekratnik 64 bita. Rezultat enkripcije je ulazni tekst, pretvoren u blokove od 64 bita u slučaju enkripcije ciklusom “32-Z”, au slučaju dešifriranja ciklusom “32-R”.

2. Način radakockanje prihvaća podatke bilo koje veličine kao ulaz, kao i dodatni 64-bitni parametar - sinkronizirati poruku. Tijekom rada, poruka sinkronizacije se pretvara u ciklusu "32-Z", rezultat se dijeli na dva dijela. Prvi dio se dodaje modulo 2 32 s konstantnom vrijednošću 1010101 16. Ako je drugi dio jednak 2 32 -1, tada se njegova vrijednost ne mijenja, inače se dodaje modulo 2 32 -1 s konstantnom vrijednošću od 1010104 16. Vrijednost dobivena kombinacijom obaju transformiranih dijelova, nazvana šifra gama, ulazi u ciklus "32-3", njen rezultat se zbraja bit po bit modulo 2 sa 64-bitnim blokom ulaznih podataka. Ako je potonji manji od 64 bita, tada se dodatni bitovi dobivene vrijednosti odbacuju. Rezultirajuća vrijednost se šalje na izlaz. Ako još ima dolaznih podataka, radnja se ponavlja: blok sastavljen od 32-bitnih dijelova pretvara se u dijelove, i tako dalje.

3. Način radaigranje s povratnim informacijama također prihvaća podatke bilo koje veličine i sinkronizacijske poruke kao ulaz. Blok ulaznih podataka dodaje se bit po bit modulo 2 s rezultatom transformacije u ciklusu “32-3” sinkronizacijske poruke. Rezultirajuća vrijednost se šalje na izlaz. Vrijednost sinkronističke poruke zamjenjuje se u slučaju enkripcije izlaznim blokom, au slučaju dešifriranja - ulaznim blokom, odnosno šifriranim. Ako je zadnji blok ulaznih podataka manji od 64 bita, tada se dodatni bitovi gama (izlaz ciklusa "32-3") odbacuju. Ako još ima dolaznih podataka, radnja se ponavlja: iz rezultata šifriranja zamijenjene vrijednosti formira se gama šifre itd.

4. Način proizvodnjeimitacije umetaka uzima kao ulazne podatke veličine najmanje dva puna 64-bitna bloka i vraća 64-bitni blok podataka koji se naziva simulirani umetak. Privremena 64-bitna vrijednost postavljena je na 0, a zatim, sve dok postoje ulazni podaci, dodaju se bit po bit modulo 2 s rezultatom ciklusa "16-3", čiji je ulaz blok ulaza podaci. Nakon završetka unosa podataka, kao rezultat se vraća privremena vrijednost.

Šifrirana kriptoanaliza

Šifra GOST 28147-89 koristi 256-bitni ključ, a volumen prostora ključa je 2,256. Ni na jednom od trenutno postojećih računala opće namjene ključ se ne može pronaći za manje od mnogo stotina godina. Ruski standard GOST 28147-89 dizajniran je s velikom rezervom i mnogo je redova veličine jači od američkog standarda DES sa svojom stvarnom veličinom ključa od 56 bita i volumenom prostora ključa od samo 2 56 .

Također postoje napadi na cijeli GOST 28147-89 bez ikakvih izmjena. Jedan od prvih javnih radova koji analizira algoritam iskorištava slabosti u postupku proširenja ključa niza dobro poznatih algoritama za šifriranje. Konkretno, cjeloviti algoritam GOST 28147-89 može se razbiti pomoću diferencijalne kriptoanalize na povezanim ključevima, ali samo ako se koriste slabe zamjenske tablice. Verzija algoritma s 24 runde (u kojoj nedostaje prvih 8 rundi) otvara se na sličan način sa svim zamjenskim tablicama, međutim jake zamjenske tablice čine takav napad potpuno nepraktičnim.

Domaći znanstvenici A.G. Rostovcev i E.B. Makhovenko je 2001. predložio temeljno novu metodu kriptoanalize formiranjem objektivne funkcije iz poznatog otvorenog teksta, odgovarajućeg šifriranog teksta i željene vrijednosti ključa i pronalaženjem njezinog ekstrema koji odgovara pravoj vrijednosti ključa. Također su pronašli veliku klasu slabih ključeva algoritma GOST 28147-89, koji omogućuju otvaranje algoritma korištenjem samo 4 odabrana otvorena teksta i odgovarajućih šifriranih tekstova s ​​prilično niskom složenošću.

Godine 2004. skupina stručnjaka iz Koreje predložila je napad koji pomoću diferencijalne kriptoanalize na povezanim ključevima može dobiti 12-bitni tajni ključ s vjerojatnošću od 91,7%. Napad zahtijeva 2 35 odabranih otvorenih tekstova i 2 36 operacija šifriranja. Kao što vidite, ovaj napad je praktički beskoristan za razbijanje algoritma.

Zamjenska tablica je dugotrajni ključni element, odnosno vrijedi mnogo dulje nego pojedinačni ključ. Pretpostavlja se da je zajednički za sve čvorove šifriranja unutar istog sustava kriptografske zaštite. Kvaliteta šifre ovisi o kvaliteti ove tablice. S "jakom" tablicom zamjene, snaga šifre ne pada ispod određene prihvatljive granice čak i ako je ugrožena. Nasuprot tome, korištenje "slabe" tablice može smanjiti snagu šifre na neprihvatljivo nisku granicu. Nikakvi podaci o kvaliteti zamjenske tablice nisu objavljeni u otvorenom tisku Rusije, ali postojanje "slabih" tablica je nesumnjivo - primjer je "trivijalna" zamjenska tablica, u kojoj je svaka vrijednost zamijenjena sama za sebe. Brojni radovi pogrešno zaključuju da tajne tablice zamjene algoritma GOST 28147-89 mogu biti dio ključa i povećati njegovu efektivnu duljinu (što nije značajno, budući da algoritam ima vrlo veliki 256-bitni ključ).

Algoritam definiran GOST 28147-89 ima duljinu ključa za šifriranje od 256 bita. On šifrira informacije u blokovima od 64 bita (takvi algoritmi se nazivaju blok algoritmi), koji se zatim dijele u dva podbloka od 32 bita (N1 i N2) (slika 1). Podblok N1 se obrađuje na određeni način, nakon čega se njegova vrijednost zbraja s vrijednošću podbloka N2 (zbrajanje se vrši modulo 2, tj. primjenjuje se logička XOR operacija - “isključivo ili”), a zatim se podblokovi zamjenjuju. . Ova se transformacija izvodi određeni broj puta (“rundi”): 16 ili 32, ovisno o načinu rada algoritma. U svakom krugu izvode se dvije operacije.

Slika 1. Shema algoritma GOST 28147-89.

Prvi je ključanje. Sadržaj podbloka N1 dodaje se modulo 2 s 32-bitnim dijelom ključa Kx. Potpuni ključ šifriranja predstavljen je kao spoj 32-bitnih podključeva: K0, K1, K2, K3, K4, K5, K6, K7. Tijekom procesa enkripcije koristi se jedan od ovih podključeva, ovisno o okruglom broju i načinu rada algoritma.

Druga operacija je zamjena stola. Nakon ključanja, podblok N1 se dijeli na 8 dijelova od po 4 bita, od kojih se vrijednost svakog od njih zamjenjuje u skladu sa zamjenskom tablicom za ovaj dio podbloka. Podblok je zatim bit-rotiran ulijevo za 11 bitova.

Zamjene tablica (Substitution box - S-box) često se koriste u modernim algoritmima šifriranja, pa je vrijedno objasniti kako je takva operacija organizirana. Izlazne vrijednosti blokova bilježe se u tablici. Podatkovni blok određene dimenzije (u našem slučaju 4-bitni) ima svoju numeričku reprezentaciju koja određuje broj izlazne vrijednosti. Na primjer, ako S-box izgleda kao 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 i 4-bitni blok "0100" došao na ulaz (vrijednost 4), tada će prema tablici izlazna vrijednost biti 15, tj. “1111” (0 a 4, 1 a 11, 2 a 2 ...).

Algoritam, definiran GOST 28147-89, osigurava četiri načina rada: jednostavnu zamjenu, gama, gama s povratnom spregom i generiranje imitacijskih priloga. Oni koriste istu transformaciju enkripcije opisanu gore, ali budući da je svrha načina različita, ova se transformacija provodi drugačije u svakom od njih.

U jednostavnom načinu zamjene, 32 runde opisane gore izvode se za šifriranje svakog 64-bitnog bloka informacija. U ovom slučaju, 32-bitni podključevi se koriste u sljedećem nizu:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 itd. - u krugovima od 1 do 24;

K7, K6, K5, K4, K3, K2, K1, K0 - u 25. do 32. kolu.

Dešifriranje u ovom načinu rada provodi se na potpuno isti način, ali s malo drugačijim slijedom korištenja podključeva:

K0, K1, K2, K3, K4, K5, K6, K7 - u 1. do 8. kolu;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, itd. - u rundama od 9 do 32.

Svi blokovi su šifrirani neovisno jedan o drugom, tj. rezultat enkripcije svakog bloka ovisi samo o njegovom sadržaju (odgovarajućem bloku izvornog teksta). Ako postoji nekoliko identičnih blokova izvornog (običnog) teksta, odgovarajući blokovi šifriranog teksta također će biti identični, što pruža dodatne korisne informacije za kriptoanalitičara koji pokušava razbiti šifru. Stoga se ovaj način rada koristi uglavnom za šifriranje samih ključeva za šifriranje (vrlo se često implementiraju sheme s više ključeva u kojima se iz više razloga ključevi šifriraju jedan na drugom). Druga dva načina rada namijenjena su šifriranju same informacije - gama i gama s povratnom spregom.

U gama načinu rada, svaki blok otvorenog teksta dodaje se bit po bit modulo 2 u 64-bitni šifrirani gama blok. Šifra gama je poseban niz koji se dobiva kao rezultat određenih operacija s registrima N1 i N2.

  • 1. Njihovo početno punjenje zapisuje se u registre N1 i N2 - 64-bitna vrijednost koja se naziva sinkronizacijska poruka.
  • 2. Sadržaj registara N1 i N2 (u ovom slučaju sinkronizacijskih poruka) šifriran je u jednostavnom načinu zamjene.
  • 3. Sadržaj registra N1 zbraja se modulo (232 - 1) uz konstantu C1 = 224 + 216 + 28 + 24, a rezultat zbrajanja upisuje se u registar N1.
  • 4. Sadržaj registra N2 zbraja se modulo 232 uz konstantu C2 = 224 + 216 + 28 + 1, a rezultat zbrajanja upisuje se u registar N2.
  • 5. Sadržaj registara N1 i N2 izlazi kao 64-bitni gama blok šifre (u ovom slučaju N1 i N2 tvore prvi gama blok).

Ako je potreban sljedeći gama blok (tj. potrebno je nastaviti šifriranje ili dešifriranje), vraća se na korak 2.

Za dešifriranje, gama se generira na sličan način, a zatim se šifrirani tekst i gama bitovi ponovno XOR-uju. Budući da je ova operacija reverzibilna, u slučaju ispravno razvijene ljestvice dobiva se izvorni tekst (tablica 1).

Stol 1.Šifriranje i dešifriranje u gama modu

Da bi se razvila šifra potrebna za dekriptiranje gama, korisnik koji dešifrira kriptogram mora imati isti ključ i istu vrijednost sinkronizacijske poruke koji su korišteni prilikom šifriranja informacija. U suprotnom, neće biti moguće dobiti izvorni tekst iz šifriranog.

U većini implementacija algoritma GOST 28147-89 sinkronizacijska poruka nije tajna, međutim, postoje sustavi u kojima je sinkronizacijska poruka isti tajni element kao i ključ za šifriranje. Za takve sustave efektivna duljina ključa algoritma (256 bita) povećava se za još 64 bita tajne sinkronizacijske poruke, što se također može smatrati ključnim elementom.

U gama modu zatvorene petlje, za popunjavanje registara N1 i N2, počevši od 2. bloka, ne koristi se prethodni gama blok, već rezultat šifriranja prethodnog bloka otvorenog teksta (slika 2). Prvi blok u ovom načinu rada generira se potpuno slično prethodnom.

Slika 2. Generiranje gama šifre u gama modu zatvorene petlje.

Pri razmatranju načina generiranja oponašanja prefiksa potrebno je definirati pojam subjekta generiranja. Prefiks je kriptografski kontrolni zbroj izračunat pomoću ključa za šifriranje i dizajniran za provjeru integriteta poruka. Prilikom generiranja imitacijskog prefiksa izvode se sljedeće operacije: prvi 64-bitni blok informacijskog niza, za koji se izračunava imitacijski prefiks, upisuje se u registre N1 i N2 i šifrira u reduciranom načinu jednostavne zamjene ( izvodi se prvih 16 kola od 32). Rezultirajući rezultat se zbraja modulo 2 sa sljedećim blokom informacija i rezultat se pohranjuje u N1 i N2.

Ciklus se ponavlja do posljednjeg bloka informacija. Rezultirajući 64-bitni sadržaj registara N1 i N2 ili njihov dio kao rezultat ovih transformacija naziva se imitacijski prefiks. Veličina imitacijskog prefiksa odabire se na temelju potrebne pouzdanosti poruka: s duljinom imitacijskog prefiksa r bitova, vjerojatnost da će promjena u poruci proći nezapaženo jednaka je 2-r Koristi se 32-bitni prefiks imitacije, tj. polovica sadržaja registara. Ovo je dovoljno, budući da je, kao i svaki kontrolni zbroj, privitak imitacije prvenstveno namijenjen zaštiti od slučajnog iskrivljavanja informacija. Za zaštitu od namjerne izmjene podataka koriste se druge kriptografske metode - prvenstveno elektronički digitalni potpis.

Prilikom razmjene informacija, prefiks imitacije služi kao svojevrsno dodatno sredstvo kontrole. Izračunava se za otvoreni tekst kada je bilo koja informacija šifrirana i šalje se zajedno sa šifriranim tekstom. Nakon dešifriranja, nova vrijednost prefiksa imitacije se izračunava i uspoređuje s poslanom. Ako se vrijednosti ne podudaraju, to znači da je šifrirani tekst oštećen tijekom prijenosa ili su korišteni netočni ključevi tijekom dešifriranja. Prefiks imitacije posebno je koristan za provjeru točne dešifriranja ključnih informacija kada se koriste sheme s više ključeva.

Algoritam GOST 28147-89 smatra se vrlo jakim algoritmom - trenutno nisu predložene učinkovitije metode za njegovo otkrivanje od gore navedene metode "grube sile". Njegova visoka sigurnost postignuta je prvenstveno zahvaljujući velikoj duljini ključa - 256 bita. Kada koristite tajnu sinkronizaciju, efektivna duljina ključa povećava se na 320 bita, a šifriranje zamjenske tablice dodaje dodatne bitove. Osim toga, kriptografska snaga ovisi o broju rundi transformacije, koji prema GOST 28147-89 treba biti 32 (puni učinak disperzije ulaznih podataka postiže se nakon 8 rundi).

Prednosti GOST 28147-89 su prisutnost zaštite od nametanja lažnih podataka (generiranje imitacija) i isti ciklus šifriranja u sva četiri GOST algoritma.



reci prijateljima
Pročitajte također