U našoj zemlji je uspostavljen jedinstveni algoritam za kriptografsko predstavljanje podataka za sisteme za obradu informacija u računarskim mrežama, pojedinačnim računarskim sistemima i računarima, koji je utvrđen GOST 28147-89.
Ovaj algoritam konverzije kriptografskih podataka je 64-bitni blok algoritam sa 256-bitnim ključem, dizajniran za hardver i implementacija softvera, zadovoljava kriptografske zahtjeve i ne nameće ograničenja na stepen tajnosti zaštićenih informacija.
Kada se opisuje algoritam, koristi se sljedeća notacija:
L i R - bitne sekvence;
LR je konkatenacija sekvenci L i R, u kojoj bitovi sekvence R slijede bitove sekvence L;
(+) - pobitno sabiranje po modulu 2 (operacija "isključivo ILI");
[+] - sabiranje 32-bitnih brojeva po modulu 2 32 ;
(+) - sabiranje 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 pruža četiri načina rada:
U svakom slučaju, za šifriranje podataka koristi se 256-bitni ključ K, koji je predstavljen kao osam 32-bitnih potključ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 šifriranje, ali je proces inverzan od procesa šifriranja podataka. Jednostavan način zamjene
Prvi i najlakši način je zamjena. Podaci koji se šifriraju dijele se na 64-bitne blokove. Procedura š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 bitovi visokog reda, A(0) su desni ili niži bitovi.
Ove sekvence se unose u pogone N 1 i N 2 prije početka prvog ciklusa šifriranja.
Prvi ciklus (j=1) procedure šifriranja za 64-bitni blok podataka opisan je sljedećim formulama:
Ovdje i označava broj iteracije (i = 1, 2,..., 32).
Funkcija f se zove funkcija šifriranja. Njegov argument je zbir, po modulu 2, 32 broja A(i), dobijenih u prethodnom koraku iteracije, i ključnog broja X(j) (dimenzija svakog od ovih brojeva je 32 cifre).
Funkcija šifriranja uključuje dvije operacije na rezultirajućem 32-bitnom zbroju. Prva operacija se zove K supstitucija. K supstitucijski blok se sastoji od 8 supstitucijskih čvorova K(1) ... K(8) sa memorijom od 64 bita. 32-bitni vektor koji stiže u blok zamjene podijeljen je na 8 uzastopnih 4-bitnih vektora, od kojih se svaki konvertuje u 4-bitni vektor pomoću odgovarajućeg zamjenskog čvora, koji je tabela od 16 cijelih brojeva u rasponu 0. .15.
Ulazni vektor specificira adresu reda u tabeli, broj iz kojeg je izlazni vektor. 4-bitni izlazni vektori se zatim sekvencijalno spajaju u 32-bitni vektor. Tablica zamjenskih blokova K sadrži ključne elemente koji su zajednički za računarsku mrežu i rijetko se mijenjaju.
Druga operacija je ciklički pomak ulijevo od 32-bitnog vektora dobivenog kao rezultat zamjene K. 64-bitni blok šifriranih podataka T sh je predstavljen 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. Ovi slučajevi uključuju generiranje ključa i njegovo šifriranje uz obezbjeđivanje imitacije zaštite (zaštita od nametanja lažnih podataka) za prijenos putem komunikacijskih kanala ili pohranjivanje u memoriju računala. Gama mod
Otvoreni podaci, podijeljeni u 64-bitne blokove T(i) (i=1, 2,..., m, gdje je m određen obimom šifriranih podataka), šifriraju se u gama modusu bitovskim sabiranjem po modulu 2 sa gama šifra Gš, koja se proizvodi u blokovima od 64 bita, odnosno Gš = (G(1),G(2),...,G(i),...,G(m)).
Jednačina enkripcije podataka u gama modu može se predstaviti 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 šifriranog teksta,
A - funkcija šifriranja u načinu jednostavne 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 kako se gama formira na sljedeći način:
(Y(0), Z(0)) = A(S), gdje je S 64-bitna binarna sekvenca (sinhronizirana 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 sinhronizacijske poruke, koja nije tajni element šifre i može se pohraniti u memoriju računala ili prenijeti komunikacijskim kanalima zajedno sa šifriranim podacima. Gama način rada sa povratnim informacijama
Mode gamming With povratne informacije vrlo sličan gama modu. Kao iu gama modu, otvoreni podaci, podijeljeni u 64-bitne blokove T(i) (i=1, 2,..., m, gdje je m određen volumenom šifriranih podataka), šifriraju se bitovskim sabiranjem po modulu 2 sa 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 bloku T(m) može biti manji od 64, dok se dio raspona šifre koji se ne koristi za šifriranje iz G(m) bloka odbacuje.
Jednačina enkripcije podataka u gama modusu zatvorene petlje može se predstaviti na sljedeći način:
Ovdje je Š(i) 64-bitni blok šifriranog teksta,
A - funkcija šifriranja u načinu jednostavne zamjene. Argument funkcije u prvom koraku iterativnog algoritma je 64-bitna sinhronizaciona poruka, au svim narednim koracima je prethodni blok šifriranih podataka Š(i-1).
Razvoj imitacijskih umetaka
Proizvodni proces imitovstaki je uniforman za bilo koji od načina šifriranja podataka.
Imitacija umetanja je blok od p bitova (imitacija umetanja Ir), koji se generiše ili prije šifriranja cijele poruke, ili paralelno sa šifriranjem blok po blok. Prvi blokovi otvorenih podataka koji učestvuju u generisanju imitativnog umetanja mogu sadržati servisne informacije (na primer, deo adrese, vreme, sinhronizaciona poruka) i nisu šifrovani. Vrijednost parametra p (broj binarnih bitova u umetku simulacije) određena je kriptografskim zahtjevima, uzimajući u obzir činjenicu da je vjerovatnoća nametanja lažne smetnje jednaka 1/2^p.
Da bi se dobilo simulirano umetanje, 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 šifriranja u načinu jednostavne zamjene. Štaviše, ključ koji se koristi za šifriranje podataka koristi se kao ključ za generiranje imitativnog umetanja.
64-bitni broj dobijen nakon 16 ciklusa rada sabira se po modulu 2 sa drugim blokom otvorenih podataka T(2). Rezultat zbrajanja ponovo se podvrgava transformaciji koja odgovara prvih 16 ciklusa algoritma šifriranja u načinu jednostavne zamjene. Rezultirajući 64-bitni broj se sabira po modulu 2 sa trećim blokom otvorenih podataka T(3), itd. Posljednji blok T(m), ako je potrebno, dopunjen u puni 64-bitni blok sa nulama, zbraja se po modulu 2 sa rezultatom rada u koraku m-1, nakon čega se šifrira u načinu jednostavne zamjene preko prvog 16 ciklusa algoritma. Od rezultirajućeg 64-bitnog broja, odabire se segment Ir dužine p bitova.
Imitativno umetanje Ir prenosi se komunikacijskim kanalom ili u memoriju računala nakon šifriranih podataka. Primljeni šifrirani podaci se dešifriraju, a iz primljenih blokova otvorenih podataka T(i), generira se simulirano umetanje Ir, koje se zatim upoređuje sa simuliranim umetanjem Ir primljenim iz komunikacijskog kanala ili iz memorije računala umetanja se ne podudaraju, svi dešifrirani podaci se smatraju lažnim.
Kratak opis šifre
GOST 28147-89 je sovjetski i ruski standard za simetrično šifriranje uveden 1990. godine, također CIS standard. Puni naziv - „GOST 28147-89 Sistemi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske konverzije." Algoritam blok šifre. Kada se koristi metoda gama enkripcije, može obavljati funkcije algoritma stream šifriranja.
GOST 28147-89 je blok šifra sa 256-bitnim ključem i 32 ciklusa konverzije, koja radi na 64-bitnim blokovima. Osnova algoritma za šifriranje je Feistelova mreža. Osnovni način šifriranja prema GOST 28147-89 je jednostavan način zamjene (definirani su i složeniji gama, gama sa povratnom spregom i simulirani načini umetanja).
Kako algoritam radi
Algoritam se suštinski ne razlikuje od DES-a. Takođe sadrži cikluse enkripcije (njih 32) prema Feistelovoj šemi (slika 2.9.).
Rice. 2.9. Runde šifriranja algoritma GOST 28147-89.
Za generiranje potključeva, originalni 256-bitni ključ je podijeljen u osam 32-bitnih blokova: k 1 ...k 8 . Ključevi k 9 ...k 24 su ciklično ponavljanje ključeva k 1 ...k 8 (numerirani od najmanje značajnih do najviših bitova). Tasteri k 25 …k 32 su tasteri k 1 …k 8 obrnutim redosledom.
Nakon završetka svih 32 runde algoritma, blokovi A 33 i B 33 su zalijepljeni zajedno (imajte na umu da najznačajniji bit postaje A 33, a najmanji bit - B 33) - rezultat je rezultat algoritma.
Funkcija f(A i ,K i) se izračunava na sljedeći način: A i i K i se zbrajaju po modulu 2 32 , zatim se rezultat dijeli na osam 4-bitnih podniza, od kojih se svaka unosi u svoj vlastiti čvor tabele zamjene(u rastućem redoslijedu prioriteta bitova), pozvan ispod S-blok. Ukupan broj GOST S-blokova je osam, odnosno isti broj kao i podsekvencije. Svaki S-blok je permutacija brojeva od 0 do 15. Prva 4-bitna podniz ide na ulaz prve S-kutije, druga - na ulaz druge, itd. Izlazi svih osam S-kutija se kombinuju u 32-bitnu riječ, onda se cijela riječ ciklički pomiče ulijevo (prema najznačajnijim 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 za određenu grupu korisnika. Tekst standarda navodi da se isporuka jedinica za zamjenu punjenja (S-blokova) vrši na propisan način, tj. programer algoritma. Zajednica ruskih CIPF programera složila se oko zamjenskih čvorova koji se koriste na Internetu.
Dešifriranje se izvodi na isti način kao i šifriranje, ali je redoslijed potključeva k i obrnut.
Načini rada algoritma GOST 28147-89
GOST 28147-89 algoritam ima četiri načina rada.
1. Modelaka zamena prihvata kao ulazne podatke čija je veličina višestruka od 64 bita. Rezultat enkripcije je ulazni tekst, konvertovan u blokove od 64 bita u slučaju šifrovanja sa ciklusom “32-Z”, au slučaju dešifrovanja sa ciklusom “32-R”.
2. Modegamming prihvata podatke bilo koje veličine kao ulaz, kao i dodatni 64-bitni parametar - sinhronizovana poruka. Tokom rada, sinhronizovana poruka se konvertuje u ciklusu „32-Z“, rezultat se deli na dva dela. Prvi dio se dodaje po modulu 2 32 sa konstantnom vrijednošću 1010101 16. Ako je drugi dio jednak 2 32 -1, tada se njegova vrijednost ne mijenja, inače se dodaje po modulu 2 32 -1 sa konstantnom vrijednošću 1010104 16. Vrijednost dobijena kombinovanjem oba transformirana dijela, nazvana gama šifre, ulazi u ciklus „32-3“, čiji se rezultat dodaje bit po bit po modulu 2 sa 64-bitnim blokom ulaznih podataka. Ako je potonji manji od 64 bita, tada se dodatni bitovi rezultirajuće vrijednosti odbacuju. Rezultirajuća vrijednost se šalje na izlaz. Ako još uvijek ima dolaznih podataka, radnja se ponavlja: blok sastavljen od 32-bitnih dijelova pretvara se u dijelove, itd.
3. Modeigranje s povratnim informacijama također prihvata podatke bilo koje veličine i poruku o sinhronizaciji kao ulaz. Blok ulaznih podataka dodaje se bit po bit po modulu 2 sa rezultatom transformacije u ciklusu “32-3” sinhronizacione poruke. Rezultirajuća vrijednost se šalje na izlaz. Vrijednost sinkronizirane poruke zamjenjuje se u slučaju šifriranja izlaznim blokom, a u slučaju dešifriranja - ulaznim blokom, odnosno šifriranim. Ako je posljednji blok dolaznih podataka manji od 64 bita, tada se dodatni bitovi gama (izlaz ciklusa “32-3”) odbacuju. Ako još uvijek 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 koji su veličine najmanje dva puna 64-bitna bloka i vraća 64-bitni blok podataka koji se naziva simulirani umetak. Privremena 64-bitna vrijednost je postavljena na 0, a zatim, sve dok postoje ulazni podaci, dodaje se bit po bit po modulu 2 s rezultatom ciklusa "16-3", čiji je ulaz blok unosa podaci. Nakon završetka unosa podataka, privremena vrijednost se vraća kao rezultat.
Šifra kriptoanaliza
GOST 28147-89 šifra koristi 256-bitni ključ, a volumen ključnog prostora je 2.256. Ni na jednom od trenutno postojećih računara opšte namene ne može se pronaći ključ za manje od mnogo stotina godina. Ruski standard GOST 28147-89 dizajniran je sa velikom marginom i za mnogo je redova jačine od američkog DES standarda sa svojom stvarnom veličinom ključa od 56 bita i volumenom ključnog prostora od samo 2 56 .
Postoje i napadi na kompletan GOST 28147-89 bez ikakvih modifikacija. Jedan od prvih otvoreni radovi, u kojem je algoritam analiziran, koristi slabosti procedure proširenja ključa brojnih dobro poznatih algoritama za šifriranje. Konkretno, potpuni algoritam GOST 28147-89 može se razbiti korištenjem diferencijalne kriptoanalize na srodnim ključevima, ali samo ako se koriste slabe zamjenske tablice. Verzija algoritma od 24 kruga (u kojoj nedostaje prvih 8 rundi) otvara se na sličan način sa bilo kojim zamjenskim tablicama, međutim, jake zamjenske tablice čine takav napad potpuno nepraktičnim.
Domaći naučnici A.G. Rostovtsev i E.B. Mahovenko je 2001. godine predložio fundamentalno novu metodu kriptoanalize formiranjem objektivne funkcije od poznatog otvorenog teksta, odgovarajućeg šifrovanog teksta i željene vrijednosti ključa i pronalaženjem njegovog ekstrema koji odgovara pravoj vrijednosti ključa. Pronašli su i veliku klasu slabih ključeva algoritma GOST 28147-89, koji omogućavaju otvaranje algoritma koristeći samo 4 odabrana otvorena teksta i odgovarajuće šifrirane tekstove s prilično niskom složenošću.
Godine 2004. grupa stručnjaka iz Koreje predložila je napad koji, koristeći diferencijalnu kriptoanalizu na srodnim ključevima, može dobiti 12-bitni tajni ključ sa vjerovatnoćom od 91,7%. Za napad je potrebno 2 35 odabranih otvorenih tekstova i 2 36 operacija šifriranja. Kao što vidite, ovaj napad je praktično beskoristan za stvarno razbijanje algoritma.
Zamjenska tablica je dugoročno ključni element, odnosno vrijedi za mnogo više dugoročno nego poseban ključ. Pretpostavlja se da je to zajedničko za sve čvorove šifriranja unutar istog sistema kriptografske zaštite. Kvaliteta šifre ovisi o kvaliteti ove tablice. Sa „jakom“ tablicom zamjene, snaga šifre ne pada ispod određene prihvatljive granice čak i ako je ugrožena. Suprotno tome, korištenje "slabe" tablice može smanjiti snagu šifre na neprihvatljivo nisku granicu. Nema informacija o kvalitetu tabele zamjene u otvori pritisnite Rusija nije objavljena, ali postojanje „slabih“ tablica je nesumnjivo - primjer je „trivijalna“ zamjenska tablica, u kojoj se svaka vrijednost zamjenjuje sama za sebe. Brojni radovi pogrešno zaključuju da tajne tabele zamjene algoritma GOST 28147-89 mogu biti dio ključa i povećati njegovu efektivnu dužinu (što nije značajno, budući da algoritam ima vrlo veliki 256-bitni ključ).
Ovaj algoritam je obavezan za korištenje kao algoritam za šifriranje u vladine organizacije Ruska Federacija i niz komercijalnih.
Opis algoritma
Dijagram algoritma je prikazan na sl. 3.1. Kao što vidite, dizajn ovog algoritma je prilično jednostavan, što jasno pojednostavljuje njegovu softversku ili hardversku implementaciju.
GOST 28147-89 algoritam šifrira informacije u blokovima od 64 bita, koji su podijeljeni u dva podbloka od 32 bita (N1 i N2). Podblok N1 se obrađuje na određeni način, nakon čega se njegova vrijednost zbraja
sa vrijednošću podbloka N2 (sabiranje se vrši po modulu 2), tada se podblokovi zamjenjuju. Ova transformacija se izvodi u određenom broju rundi: 16 ili 32, ovisno o načinu rada algoritma (opisano dolje). U svakom krugu se izvode sljedeće operacije:
1. Ključna aplikacija. Sadržaj /VI podbloka se dodaje po modulu 2 32 s dijelom ključa Kx.
Ključ za šifriranje algoritma GOST 28147-89 ima dimenziju od 256 bita, a Kx je njegov 32-bitni dio, tj. 256-bitni ključ za šifriranje je predstavljen kao konkatenacija 32-bitnih potključeva (slika 3.2):
Sh ATI, AG2, Yu, AG4, K5, Kb, K7.
Tokom procesa enkripcije koristi se jedan od ovih potključeva, ovisno o okruglom broju i načinu rada algoritma.
Rice. 3.1. Algoritamski dijagram GOST 28147-
Rice. 3.2. Ključ za šifriranje algoritma GOST 28147-89
2. Zamjena stola. Nakon unošenja ključa, /VI podblok se dijeli na 8 dijelova od 4 bita, od kojih se vrijednost svakog pojedinačno zamjenjuje u skladu sa zamjenskom tablicom za ovaj dio podbloka. Zamjene tablica (Supstitution box, S-box) se često koriste u savremeni algoritmi enkripcije, pa ih vrijedi detaljnije razmotriti.
Zamjena tablice se koristi na ovaj način: blok podataka određene veličine (u ovom slučaju 4-bitni) se isporučuje na ulaz, čiji numerički prikaz određuje broj izlazne vrijednosti. Na primjer, imamo S-box sljedećeg oblika:
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1.
Neka na ulaz dođe 4-bitni blok “0100”, odnosno vrijednost 4. Prema tabeli, izlazna vrijednost će biti jednaka 15, tj. “1111” (0 se zamjenjuje sa 4, 1 sa 11, vrijednost 2 ostaje nepromijenjena, itd.).
Kao što vidite, dizajn algoritma je vrlo jednostavan, što znači da najveći teret enkripcije podataka pada na zamjenske tablice. Nažalost, algoritam ima svojstvo da postoje „slabe“ zamjenske tablice, pomoću kojih se algoritam može riješiti kriptoanalitičkim metodama. Slabi uključuju, na primjer, tablicu u kojoj je izlaz jednak ulazu:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
3. Bitovo ciklično pomicanje ulijevo za 11 bita.
Algoritamski režimi rada
GOST 28147-89 algoritam ima 4 načina rada:
□ jednostavan način zamjene;
□ gama mod;
P gama mod sa povratnom spregom;
□ način razvoja imitacije priloga.
Ovi načini se donekle razlikuju od općeprihvaćenih (opisanih u odjeljku 1.4), pa ih vrijedi detaljnije razmotriti.
Ovi načini imaju različite svrhe, ali koriste istu transformaciju šifriranja opisanu gore.
Jednostavan način zamjene
U načinu jednostavne zamjene, svaki 64-bitni blok informacija se jednostavno šifrira korištenjem 32 kruga opisanih gore. 32-bitni potključevi se koriste u sljedećem redoslijedu:
□ KO, Kl, K2, KZ, K4, K5, KB, AG7, KO, ATI itd. - od 1. do 24. kola;
□ K1, Kb, K5, K4, KZ, K2, K\, KO - u krugovima od 25. do 32.
Dešifriranje u načinu jednostavne zamjene izvodi se na potpuno isti način, ali s malo drugačijim redoslijedom korištenja potključeva:
□ KO, K\, K2, KZ, K4, K5, Kb, KP - od 1. do 8. kola;
□ KP, Kb, K5, K4, KZ, K2, K\, KO, K1, Kb itd. - u krugovima od 9. do 32.
Slično standardnom ECB modu, zbog odvojene enkripcije blokova, način jednostavne zamjene se striktno ne preporučuje za šifriranje samih podataka; trebalo bi da se koristi samo za šifrovanje drugih ključeva za šifrovanje u šemama sa više ključeva.
Gama mod
U gama modu (slika 3.3), svaki blok otvorenog teksta dodaje se bit po bit po modulu 2 64-bitnom gama bloku šifre. Gama šifra je poseban niz koji se generira korištenjem transformacija opisanih gore na sljedeći način:
1. Njihovo početno popunjavanje je upisano u registre N1 i N2 - 64-bitnu vrijednost koja se zove “sinhronizirana poruka” (sinhronizirana poruka je praktično analog vektora inicijalizacije u CBC, CFB i OFB modovima).
2. Sadržaj /VI i N2 registara (u ovom slučaju sinkronizirane poruke) je šifriran u načinu jednostavne zamjene.
3. Sadržaji N1 se sabiraju po modulu (2 32 – 1) sa konstantom CI = 2 24 + 2 16 + 2 8 + 4, rezultat sabiranja se upisuje u /VI registar.
4. Sadržaji N2 se sabiraju po modulu 2 sa konstantom C2 = 2 24 + 2 16 + 2 8 +1, rezultat sabiranja se upisuje u registar N2.
5. Sadržaj /VI i N2 registara se izlazi kao 64-bitni gama blok šifre (tj., u ovom slučaju, /VI i N2 čine prvi gama blok).
6. Ako je potreban sljedeći gama blok (tj. potrebno je dodatno šifriranje ili dešifriranje), vratite se na korak 2.
Za dešifriranje, gama se generiše na sličan način, a zatim se šifrirani tekst i gama bitovi ponovo postavljaju XOR.
Za generiranje istog raspona šifre, korisnik koji dešifrira kriptogram mora imati isti ključ i istu vrijednost sinkronizacijske poruke koje su korištene prilikom šifriranja informacija. U suprotnom, neće biti moguće dobiti originalni tekst iz šifrovanog.
U većini implementacija algoritma GOST 28147-89, poruka za sinhronizaciju nije tajni element, međutim, poruka za sinhronizaciju može biti tajna kao i ključ za šifrovanje. U ovom slučaju možemo smatrati da se efektivna dužina ključa algoritma (256 bita) povećava za još 64 bita sinhronizacione poruke, što se može smatrati dodatnim ključnim elementom.
Gama način rada sa povratnim informacijama
U gama modu sa povratnom spregom, rezultat šifriranja prethodnog bloka otvorenog teksta koristi se za popunjavanje /VI i L/2 registara, počevši od 2. bloka, ne prethodnog gama bloka, već rezultat šifriranja prethodnog bloka otvorenog teksta (Sl. 3.4). Prvi blok u ovom načinu rada se generira potpuno slično prethodnom.
Rice. 3.4. Generisanje gama šifre u gama modu sa povratnom spregom
Način generiranja imitacije priloga
Prefiks je kriptografska kontrolna suma izračunata pomoću ključa za šifriranje i dizajnirana za provjeru integriteta poruka. Za njegovo izračunavanje postoji poseban način algoritma GOST 28147-89.
Generiranje prefiksa imitacije izvodi se na sljedeći način:
1. Prvi 64-bitni blok informacija za koji se izračunava imitacijski prefiks upisuje se u registre N1 i N2 i šifrira u reduciranom načinu jednostavne zamjene, u kojem se izvodi prvih 16 od 32 kruga.
2. Dobijeni rezultat se sumira po modulu 2 sa sljedećim blokom informacija, pohranjujući rezultat u N1 i N2.
3. M i N2 se ponovo šifriraju u skraćenom načinu jednostavne zamjene, itd. do posljednjeg bloka informacija.
Imitacijskim prefiksom se smatra 64-bitni rezultujući sadržaj registara N1 i N2 ili njihov dio. Najčešće se koristi 32-bitni imitativni prefiks, odnosno polovina sadržaja registara. Ovo je dovoljno, budući da je, kao i svaki kontrolni zbroj, imitacija priloga namijenjena, prije svega, zaštiti od slučajnog izobličenja informacija. Za zaštitu od namjerne izmjene podataka koriste se i druge kriptografske metode – prvenstveno elektronske digitalni potpis(vidi odjeljak 1.1).
Prefiks imitacije se koristi na sljedeći način:
1. Prilikom šifriranja bilo koje informacije, prefiks imitacije otvorenog teksta se izračunava i šalje zajedno sa šifriranim tekstom.
2. Nakon dešifriranja, prefiks imitacije se ponovo izračunava i upoređuje sa poslanim.
3. Ako se izračunati i poslani imitacijski prefiksi ne poklapaju, tekst šifre je izobličen tokom prijenosa ili su korišteni netačni ključevi tokom dešifriranja.
Prefiks imitacije je posebno koristan za provjeru ispravnog dešifriranja ključnih informacija kada se koriste sheme s više ključeva.
Prefiks imitacije je neki analog koda za autentifikaciju MAC poruke, izračunat u CBC modu; Razlika je u tome što se prilikom izračunavanja prefiksa imitacije ne koristi poruka o sinhronizaciji, dok se pri izračunavanju MAC-a koristi vektor inicijalizacije.
Kriptografska snaga algoritma
Godine 1994., opis algoritma GOST 28147-89 preveden je na engleski i objavljen; nakon toga su se počeli pojavljivati rezultati njene analize koju su izvršili strani stručnjaci; međutim, dugo vremena nisu pronađeni napadi koji bi se približili izvodljivosti.
□ velika dužina ključa - 256 bita; zajedno sa tajnom porukom o sinhronizaciji, efektivna dužina ključa se povećava na 320 bita;
□ 32 kruga transformacija; već nakon 8 rundi postiže se potpuni efekat disperzije ulaznih podataka: promjena jednog bita bloka otvorenog teksta utječe na sve bitove bloka šifriranog teksta, i obrnuto, tj. postoji višestruka margina jačine.
Razmotrimo rezultate kriptoanalize algoritma GOST 28147-89.
Analiza tablica zamjene
Budući da zamjenske tablice nisu predviđene u standardu, brojni radovi (na primjer, u) sugeriraju da “nadležna organizacija” može izdati i “dobre” i “loše” zamjenske tablice. Međutim, poznati stručnjak Bruce Schneier takve pretpostavke naziva „glasinama“. Jasno je da kriptografska snaga algoritma u velikoj mjeri ovisi o svojstvima zamjenskih tablica koje se koriste u skladu s tim, postoje slabe zamjenske tablice (vidi primjer iznad), čija upotreba može pojednostaviti napad algoritma; Ipak, mogućnost korištenja različitih zamjenskih tablica čini se vrlo vrijednom idejom, u prilog kojoj se mogu navesti sljedeće dvije činjenice iz istorije standarda DES enkripcije (za detalje pogledajte odjeljak 3.15):
□ napadi koji koriste i linearnu i diferencijalnu kriptoanalizu DES algoritma koriste specifične karakteristike zamjenskih tablica; kada koristite druge tabele, kriptoanaliza će morati da počne iznova;
□ Učinjeni su pokušaji da se ojača DES u odnosu na linearnu i diferencijalnu kriptoanalizu korištenjem robusnijih tablica zamjene; takve tabele, koje su zaista robusnije, predložene su, na primer, u algoritmu s 5 DES; ali, nažalost, bilo je nemoguće zamijeniti DES sa s 5 DES, budući da su zamjenske tablice striktno definirane u standardu, pa prema tome implementacije algoritma vjerovatno ne podržavaju mogućnost promjene tabela na druge.
Brojni radovi (na primjer, i ) pogrešno zaključuju da tajne zamjenske tablice algoritma GOST 28147-89 mogu biti dio ključa i povećati njegovu efektivnu dužinu (što nije značajno, budući da algoritam ima veoma veliku 256 -bitni ključ). Međutim, rad dokazuje da se tajne zamjenske tablice mogu izračunati korištenjem sljedećeg napada, koji se može praktično koristiti:
1. Postavlja se nulti ključ i vrši se traženje “nulte vektora”, odnosno vrijednosti z = /(0), gdje je /() okrugla funkcija algoritma. Ova faza traje oko 2 operacije šifriranja.
2. Koristeći nulti vektor izračunavaju se vrijednosti zamjenskih tablica, što ne zahtijeva više od 2 11 operacija.
Modifikacije algoritama i njihova analiza
U radu je izvršena kriptoanaliza modifikacija algoritma GOST 28147-89:
□ GOST-H algoritam, u kome je u odnosu na originalni algoritam promenjen redosled korišćenja potključeva, odnosno u rundama od 25 do 32 potključa se koriste direktnim redosledom, odnosno potpuno istim kao u prethodnim rundama algoritma;
□ GOST® algoritam od 20 krugova, u kojem runda koristi XOR umjesto modulo-2 dodatka za preklapanje ključa.
Na osnovu rezultata analize, zaključeno je da su GOST-H i GOST© slabiji od originalnog algoritma GOST 28147-89, budući da oba imaju klase slabih ključeva. Vrijedi napomenuti da u smislu GOST© kriptoanalize, rad ponavlja od riječi do riječi odjeljak posvećen kriptoanalizi algoritma GOST 28147-89, dobro poznatog rada objavljenog 2000. (bez ikakvih referenci na original). To dovodi u pitanje profesionalnost autora rada i drugih njegovih rezultata.
U radu je predložena vrlo zanimljiva modifikacija algoritma: tabele S\…Ss moraju nužno biti različite; u svakom krugu algoritma moraju se preurediti prema određenom zakonu. Ova permutacija može ovisiti o ključu za šifriranje, ili također može biti tajna (tj. biti dio većeg ključa za šifriranje od originalnog 256-bitnog ključa). Obje ove opcije, prema njihovim autorima, značajno povećavaju otpornost algoritma na linearnu i diferencijalnu kriptoanalizu.
I još jedna modifikacija vezana za zamjenske tablice data je u radu, koja analizira jednu od mogućih metoda za izračunavanje zamjenskih tablica na osnovu ključa za šifriranje. Autori rada su zaključili da takva zavisnost slabi algoritam, jer dovodi do prisustva slabih ključeva i do nekih potencijalnih ranjivosti algoritma.
Kompletna analiza algoritma
Postoje i napadi na kompletan GOST 28147-89 bez ikakvih modifikacija. Jedan od prvih javnih radova koji analizira algoritam, dobro poznato djelo, posvećen je napadima koji iskorištavaju slabosti u proceduri proširenja ključa brojnih dobro poznatih algoritama za šifriranje. Konkretno, potpuni algoritam GOST 28147-89 može se razbiti korištenjem diferencijalne kriptoanalize na srodnim ključevima, ali samo ako se koriste slabe zamjenske tablice. Verzija algoritma od 24 kruga (u kojoj nedostaje prvih 8 rundi) otvara se na sličan način sa bilo kojom zamjenskom tablicom, ali jake zamjenske tablice (na primjer, ona koja je data) čine takav napad potpuno nepraktičnim.
Domaći naučnici A. G. Rostovtsev i E. B. Makhovenko su 2001. godine predložili fundamentalno novu metodu kriptoanalize (prema autorima, znatno efikasniju od linearne i diferencijalne kriptoanalize) formiranjem objektivne funkcije od poznatog otvorenog teksta koji mu odgovara šifrovanom tekstu i željenoj vrijednosti ključa i pronalaženje njegovog ekstrema koji odgovara pravoj vrijednosti ključa. Pronašli su i veliku klasu slabih ključeva algoritma GOST 28147-89, koji omogućavaju otvaranje algoritma koristeći samo 4 odabrana otvorena teksta i odgovarajuće šifrirane tekstove s prilično niskom složenošću. U radu je nastavljena kriptoanaliza algoritma.
Godine 2004. grupa stručnjaka iz Koreje predložila je napad koji, koristeći diferencijalnu kriptoanalizu na srodnim ključevima, može dobiti 12 bitova tajnog ključa s vjerovatnoćom od 91,7%. Za napad je potrebno 2 35 odabranih otvorenih tekstova i 2 36 operacija šifriranja. Kao što vidite, ovaj napad je praktično beskoristan za stvarno razbijanje algoritma.
Algoritam definisan GOST 28147-89 ima dužinu ključa za šifrovanje od 256 bita. On šifrira informacije u blokovima od 64 bita (takvi algoritmi se nazivaju blok algoritmi), koji se zatim dijele na dva podbloka od 32 bita (N1 i N2) (Slika 1). Podblok N1 se obrađuje na određeni način, nakon čega se njegovoj vrijednosti dodaje vrijednost podbloka N2 (dodavanje se vrši po modulu 2, tj. primjenjuje se logička XOR operacija - „isključivo ili“), a zatim se podblokovi zamjenjuju. . Ova transformacija se izvodi određeni broj puta („rundova“): 16 ili 32, ovisno o načinu rada algoritma. U svakom krugu se izvode dvije operacije.
Slika 1. Šema algoritma GOST 28147-89.
Prvi je ključ. Sadržaju podbloka N1 dodaje se modul 2 sa 32-bitnim dijelom ključa Kx. Pun ključ enkripcija je predstavljena kao konkatenacija 32-bitnih potključeva: K0, K1, K2, K3, K4, K5, K6, K7. Tokom procesa enkripcije koristi se jedan od ovih potključeva, ovisno o okruglom broju i načinu rada algoritma.
Druga operacija je zamjena stola. Nakon unošenja ključa, podblok N1 se dijeli na 8 dijelova od po 4 bita, od kojih se vrijednost svakog zamjenjuje u skladu sa zamjenskom tablicom za ovaj dio podbloka. Podblok se tada rotira ulijevo za 11 bita.
Zamjene tablica (Substitution box - S-box) se često koriste u modernim algoritmima šifriranja, pa je vrijedno objasniti kako je takva operacija organizirana. Izlazne vrijednosti blokova su zabilježene u tabeli. Blok podataka određene dimenzije (u našem slučaju 4-bitni) ima svoj numerički prikaz, koji 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 tabeli, izlazna vrijednost biti 15, tj. "1111" (0 a 4, 1 a 11, 2 a 2 ...).
Algoritam, definisan GOST 28147-89, pruža četiri načina rada: jednostavnu zamenu, gama, gama sa povratnom spregom i generisanje imitacije priloga. Oni koriste istu transformaciju šifriranja opisanu gore, ali budući da je svrha načina različita, ova se transformacija u svakom od njih provodi drugačije.
U načinu jednostavne zamjene, 32 kruga opisana gore se izvode za šifriranje svakog 64-bitnog bloka informacija. U ovom slučaju, 32-bitni potključevi se koriste u sljedećem redoslijedu:
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 krugovima od 25. do 32.
Dešifriranje u ovom načinu se provodi na potpuno isti način, ali s malo drugačijim redoslijedom korištenja potključeva:
K0, K1, K2, K3, K4, K5, K6, K7 - u krugovima od 1 do 8;
K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 itd. - u krugovima od 9. do 32.
Svi blokovi su šifrirani nezavisno jedan od drugog, tj. rezultat šifriranja svakog bloka zavisi samo od njegovog sadržaja (odgovarajući blok originalnog teksta). Ako postoji nekoliko identičnih blokova originalnog (običnog) teksta, bit će identični i odgovarajući blokovi šifriranog teksta, što daje dodatne korisne informacije za kriptoanalitičara koji pokušava razbiti šifru. Stoga se ovaj način koristi uglavnom za šifriranje samih ključeva za šifriranje (veoma se često primjenjuju šeme s više ključeva u kojima se, iz više razloga, ključevi šifriraju jedan na drugom). Dva druga načina rada namijenjena su šifriranju samih informacija - gama i gama sa povratnom spregom.
U gama modu, svaki blok otvorenog teksta dodaje se bit po bit po modulu 2 64-bitnom gama bloku šifre. Šifra gama je poseban niz koji se dobija kao rezultat određenih operacija sa registrima N1 i N2.
- 1. Njihovo početno popunjavanje je upisano u registre N1 i N2 - 64-bitna vrijednost koja se zove poruka sinhronizacije.
- 2. Sadržaj registara N1 i N2 (u ovom slučaju sinkronizirane poruke) je šifriran u načinu jednostavne zamjene.
- 3. Sadržaj registra N1 se dodaje po modulu (232 - 1) sa konstantom C1 = 224 + 216 + 28 + 24, a rezultat sabiranja se upisuje u registar N1.
- 4. Sadržaj registra N2 se dodaje po modulu 232 sa konstantom C2 = 224 + 216 + 28 + 1, a rezultat sabiranja se upisuje u registar N2.
- 5. Sadržaj registara N1 i N2 izlazi kao 64-bitni gama blok šifre (u ovom slučaju, N1 i N2 čine prvi gama blok).
Ako je potreban sljedeći gama blok (tj. šifriranje ili dešifriranje treba da se nastavi), 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 ponovo postavljaju XOR. Budući da je ova operacija reverzibilna, u slučaju pravilno razvijene skale dobija se originalni tekst (tabela 1).
Tabela 1.Šifriranje i dešifriranje u gama modu
Da bi razvio šifru potrebnu za dešifriranje gama, korisnik koji dešifruje kriptogram mora imati isti ključ i istu vrijednost sinkronizacijske poruke koje su korištene prilikom šifriranja informacija. U suprotnom, neće biti moguće dobiti originalni tekst iz šifrovanog.
U većini implementacija algoritma GOST 28147-89, poruka o sinhronizaciji nije tajna, međutim, postoje sistemi u kojima je poruka za sinhronizaciju isti tajni element kao i ključ za šifrovanje. Za takve sisteme, efektivna dužina ključa algoritma (256 bita) se povećava za još 64 bita tajne sinhronizacione poruke, što se takođe može smatrati ključnim elementom.
U gama modusu 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 se generira potpuno slično prethodnom.
![](https://i2.wp.com/studwood.ru/imag_/15/160970/image002.jpg)
Slika 2. Generiranje gama šifre u gama modu zatvorene petlje.
Prilikom razmatranja načina generiranja imitacijskih prefiksa, potrebno je definirati pojam subjekta generiranja. Prefiks je kriptografska kontrolna suma izračunata pomoću ključa za šifriranje i dizajnirana za provjeru integriteta poruka. Prilikom generiranja prefiksa imitacije izvode se sljedeće operacije: prvi 64-bitni blok niza informacija, za koji se izračunava prefiks imitacije, upisuje se u registre N1 i N2 i šifrira u reduciranom načinu jednostavne zamjene ( izvodi se prvih 16 rundi od 32). Rezultirajući rezultat se zbraja po modulu 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 N1 i N2 registara ili njihov dio kao rezultat ovih transformacija naziva se imitacijski prefiks. Veličina prefiksa imitacije se bira na osnovu potrebne pouzdanosti poruka: uz dužinu imitacionog prefiksa r, vjerovatnoća da će promjena u poruci proći nezapaženo jednaka je 2-r Koristi se 32-bitni imitacijski prefiks, odnosno polovina sadržaja registara. Ovo je dovoljno, budući da je, kao i svaki kontrolni zbir, imitacija priloga prvenstveno namijenjena zaštiti od slučajnog izobličenja informacija. Za zaštitu od namjerne izmjene podataka, drugo kriptografske metode- prvenstveno elektronski digitalni potpis.
Prilikom razmjene informacija, prefiks imitacije služi kao neka vrsta dodatnog sredstva kontrole. Izračunava se za otvoreni tekst kada je bilo koja informacija šifrirana i šalje se zajedno sa šifriranim tekstom. Nakon dešifriranja, izračunava se nova vrijednost prefiksa imitacije i uspoređuje s poslanom. Ako se vrijednosti ne podudaraju, to znači da je šifrirani tekst oštećen tokom prijenosa ili su korišteni neispravni ključevi tokom dešifriranja. Prefiks imitacije je posebno koristan za provjeru ispravnog 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 efikasnije metode za njegovo otkrivanje od gore navedene metode „grube sile“. Njegova visoka sigurnost postiže se prvenstveno zahvaljujući velikoj dužini ključa - 256 bita. Kada se koristi tajna poruka za sinhronizaciju, efektivna dužina ključa se povećava na 320 bita, a šifriranje zamjenske tablice dodaje dodatne bitove. Osim toga, kriptografska snaga ovisi o broju rundi transformacije, koji bi prema GOST 28147-89 trebao biti 32 (pun efekat 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.