Suvremene tehnologije šifriranja elektroničkih podataka. Namjena i struktura algoritama šifriranja

Sergej Panasenko,
Voditelj odjela za razvoj softvera tvrtke Ankad,
[e-mail zaštićen]

Osnovni koncepti

Proces pretvaranja otvorenih podataka u šifrirane podatke i obrnuto obično se naziva enkripcija, a dvije komponente tog procesa enkripcija i dešifriranje. Matematički, ova transformacija je predstavljena sljedećim ovisnostima koje opisuju radnje s početnim informacijama:

S = Ek1(M)

M" = Dk2(C),

gdje je M (poruka) otvorena informacija (često se naziva "izvorni tekst" u literaturi o informacijskoj sigurnosti);
C (šifrirani tekst) - šifrirani tekst (ili kriptogram) dobiven kao rezultat šifriranja;
E (encryption) - funkcija šifriranja koja izvodi kriptografske transformacije na izvornom tekstu;
k1 (ključ) - funkcijski parametar E, koji se naziva ključ za šifriranje;
M" - informacije dobivene kao rezultat dešifriranja;
D (dekriptiranje) - funkcija dešifriranja koja izvodi kriptografske transformacije inverzne enkripciji nad šifriranim tekstom;
k2 je ključ koji se koristi za dešifriranje informacija.

Koncept "ključa" u standardu GOST 28147-89 (simetrični algoritam šifriranja) definiran je na sljedeći način: "specifično tajno stanje nekih parametara algoritma kriptografske transformacije, koje osigurava izbor jedne transformacije iz ukupnosti mogućih transformacija za dati algoritam." Drugim riječima, ključ je jedinstveni element koji se može koristiti za promjenu rezultata algoritma šifriranja: isti izvorni tekst bit će različito šifriran ako se koriste različiti ključevi.

Da bi rezultat dešifriranja odgovarao izvornoj poruci (tj. za M" = M), dva uvjeta moraju biti ispunjena istovremeno. Prvo, funkcija dešifriranja D mora odgovarati funkciji šifriranja E. Drugo, ključ dešifriranja k2 mora odgovarati na ključ za šifriranje k1.

Ako je za šifriranje korišten kriptografski jak algoritam za šifriranje, tada je u nedostatku ispravnog ključa k2 nemoguće dobiti M" = M. Kriptografska snaga je glavna karakteristika algoritama za šifriranje i ukazuje, prije svega, na stupanj poteškoće u dobivanju izvornog teksta iz šifriranog bez ključa k2.

Algoritmi šifriranja mogu se podijeliti u dvije kategorije: simetrična i asimetrična enkripcija. Za prvo, omjer ključeva za šifriranje i dešifriranje definiran je kao k1 = k2 = k (tj. funkcije E i D koriste isti ključ za šifriranje). Kod asimetrične enkripcije, ključ za šifriranje k1 se izračunava iz ključa k2 na način da je obrnuta transformacija nemoguća, na primjer, po formuli k1 = ak2 mod p (a i p su parametri korištenog algoritma).

Simetrična enkripcija

Simetrični algoritmi šifriranja potječu iz antike: upravo je ovu metodu skrivanja informacija koristio rimski car Gaj Julije Cezar u 1. stoljeću pr. e., a algoritam koji je izumio poznat je kao "Cezarov kriptosustav".

Trenutačno najpoznatiji algoritam simetrične enkripcije je DES (Data Encryption Standard), razvijen 1977. godine. Donedavno je to bio "američki standard", budući da je vlada ove zemlje preporučila njegovu upotrebu za implementaciju raznih sustava enkripcije podataka. Unatoč činjenici da je prvotno planirano da se DES koristi ne više od 10-15 godina, pokušaji njegove zamjene počeli su tek 1997.

Nećemo detaljno razmatrati DES (gotovo sve knjige s popisa dodatnih materijala sadrže njegov najdetaljniji opis), ali ćemo se okrenuti modernijim algoritmima šifriranja. Vrijedi samo napomenuti da je glavni razlog promjene standarda šifriranja njegova relativno slaba kriptografska snaga, a razlog tome je što je duljina DES ključa samo 56 značajnih bitova. Poznato je da se svaki kripto-otporan algoritam može probiti prebiranjem svih mogućih opcija za ključeve šifriranja (tzv. brute force method - brute force attack). Lako je izračunati da će klaster od 1 milijun procesora, od kojih svaki računa 1 milijun ključeva u sekundi, provjeriti 256 varijanti DES ključeva u gotovo 20 sati. A budući da je takva računalna snaga sasvim stvarna prema današnjim standardima, jasno je da 56-bitni ključ je prekratak i DES algoritam treba zamijeniti "jačim".

Danas se sve više koriste dva moderna kripto-otporna algoritma za šifriranje: domaći standard GOST 28147-89 i novi američki kripto standard - AES (Advanced Encryption Standard).

Standard GOST 28147-89

Algoritam definiran GOST 28147-89 (slika 1) ima duljinu ključa za šifriranje od 256 bita. On šifrira informacije u blokovima od 64 bita (takvi se algoritmi nazivaju blok algoritmima), koji se zatim dijele u dva podbloka od 32 bita (N1 i N2). Podblok N1 se obrađuje na određeni način, nakon čega se njegova vrijednost dodaje vrijednosti 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.

Prvi je ključanje. Sadržaj podbloka N1 dodaje se modulo 2 32-bitnom dijelu ključa Kx. Potpuni ključ šifriranja predstavljen je kao spoj 32-bitnih podključeva: K0, K1, K2, K3, K4, K5, K6, K7. Jedan od tih potključeva koristi se u procesu šifriranja, 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 se tada po bitovima zakreće ulijevo za 11 bitova.

Zamjene stolova(Substitution box - S-box) se često koriste u modernim algoritmima šifriranja, pa je vrijedno objasniti kako je takva operacija organizirana. Izlazne vrijednosti blokova zapisuju se u tablicu. 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 ima oblik 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 predviđa četiri načina rada: jednostavnu zamjenu, skaliranje, skaliranje s povratnom spregom i generiranje imitacijskih prefiksa. Oni koriste istu transformaciju enkripcije opisanu gore, ali budući da je svrha načina različita, ova transformacija se u svakom od njih provodi drugačije.

U načinu rada jednostavna zamjena za šifriranje svakog 64-bitnog bloka informacija izvode se gore opisana 32 kruga. 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 nešto 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, odnosno rezultat enkripcije svakog bloka ovisi samo o njegovom sadržaju (odgovarajućem izvornom bloku). Ako postoji nekoliko identičnih blokova izvornog (čistog) teksta, odgovarajući blokovi šifriranog teksta također će biti isti, što pruža dodatne korisne informacije za kriptoanalitičara koji pokušava otvoriti šifru. Stoga se ovaj način rada uglavnom koristi za šifriranje samih ključeva šifriranja (često se implementiraju sheme s više ključeva u kojima se, iz više razloga, ključevi šifriraju jedan iznad drugoga). Za šifriranje same informacije predviđena su još dva načina rada - gama i gama s povratnom spregom.

U gama mod svaki blok otvorenog teksta bit-wise dodaje modulo 2 na 64-bitni šifrirani gama blok. Šifra gama je poseban niz, koji se dobiva kao rezultat određenih operacija s registrima N1 i N2 (vidi sliku 1).

1. U registre N1 i N2 upisuje se njihovo početno punjenje - 64-bitna vrijednost koja se naziva sinkronizacija.

2. Šifriranje sadržaja registara N1 i N2 (u ovom slučaju sinkronizacije) vrši se u modu jednostavne 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 šifrirani gama blok (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), vratite 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 gama dobiva se izvorni tekst (tablica).

Šifriranje i dešifriranje u gama modu

Da bi se razvio raspon šifri potreban za dešifriranje, korisnik koji dešifrira kriptogram mora imati isti ključ i istu vrijednost sinkronističke poruke koji su korišteni kada su informacije šifrirane. U suprotnom, nećete moći dobiti izvorni tekst iz šifriranog.

U većini implementacija algoritma GOST 28147-89 sinkronizacija nije tajna, ali postoje sustavi u kojima je sinkronizacija 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 sinkronističke poruke, što se također može smatrati ključnim elementom.

U načinu povratne veze gama, za popunjavanje registara N1 i N2, počevši od 2. bloka, ne koristi se prethodni gama blok, već rezultat enkripcije prethodnog bloka otvorenog teksta (slika 2). Prvi blok u ovom načinu rada generira se na potpuno isti način kao i prethodni.

Riža. 2. Razvoj gama šifre u gama modu s povratnom spregom.

S obzirom na način rada generiranje imitacijskih prefiksa, potrebno je definirati pojam subjekta generiranja. Spoof je kriptografski kontrolni zbroj izračunat pomoću ključa za šifriranje i dizajniran za provjeru integriteta poruka. Prilikom generiranja prefiksa izvode se sljedeće operacije: prvi 64-bitni blok informacijskog niza, za koji se izračunava prefiks, upisuje se u registre N1 i N2 i šifrira u smanjenom načinu jednostavne zamjene (prvih 16 izvode se runde od 32). Dobiveni rezultat se zbraja modulo 2 sa sljedećim blokom informacija, spremajući rezultat u N1 i N2.

Ciklus se ponavlja do posljednjeg bloka informacija. 64-bitni sadržaj registara N1 i N2, ili njegov dio, koji proizlazi iz ovih transformacija, naziva se imitacijski prefiks. Veličina prefiksa odabire se na temelju potrebne pouzdanosti poruka: s duljinom prefiksa r bitova, vjerojatnost da će promjena poruke proći nezapaženo je 2-r. Najčešće je 32-bitni prefiks korištena, tj. polovica sadržaja upisnika. Ovo je dovoljno, budući da je, kao i svaki kontrolni zbroj, prefiks 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 neka informacija šifrirana i šalje se zajedno sa šifriranim tekstom. Nakon dešifriranja izračunava se nova vrijednost prefiksa imitacije koja se uspoređuje s poslanom. Ako se vrijednosti ne podudaraju, to znači da je šifrirani tekst iskrivljen 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. Pri korištenju tajne poruke sinkronizacije efektivna duljina ključa povećava se na 320 bita, a tajna supstitucijske tablice dodaje dodatne bitove. Osim toga, kriptografska snaga ovisi o broju krugova transformacije, koji bi prema GOST 28147-89 trebao biti 32 (puni učinak disperzije ulaznih podataka postiže se nakon 8 krugova).

AES standard

Za razliku od algoritma GOST 28147-89, koji je dugo bio tajna, američki standard šifriranja AES, dizajniran da zamijeni DES, odabran je putem javnog natječaja, gdje su sve zainteresirane organizacije i pojedinci mogli proučiti i komentirati algoritme prijavljenih.

Natječaj za zamjenu DES-a raspisao je 1997. američki Nacionalni institut za standarde i tehnologiju (NIST - National Institute of Standards and Technology). Na natječaj je pristiglo 15 prijavljenih algoritama koje su razvile kako poznate organizacije iz područja kriptografije (RSA Security, Counterpane, itd.), tako i pojedinci. Rezultati natjecanja objavljeni su u listopadu 2000.: pobjednik je bio algoritam Rijndael, koji su razvila dva kriptografa iz Belgije, Vincent Rijmen i Joan Daemen.

Rijndaelov algoritam razlikuje se od većine poznatih algoritama simetrične enkripcije, čija se struktura naziva "Feistelova mreža" i slična je ruskom GOST 28147-89. Značajka Feistelove mreže je da je ulazna vrijednost podijeljena u dva ili više podblokova, od kojih se neki obrađuju prema određenom zakonu u svakom krugu, nakon čega se superponira na neobrađene podblokove (vidi sliku 1).

Za razliku od domaćeg standarda šifriranja, Rijndaelov algoritam predstavlja blok podataka u obliku dvodimenzionalnog niza bajtova veličine 4X4, 4X6 ili 4X8 (dopušteno je nekoliko fiksnih veličina bloka šifriranih informacija). Sve operacije se izvode na pojedinačnim bajtovima niza, kao i na neovisnim stupcima i redovima.

Rijndaelov algoritam izvodi četiri transformacije: BS (ByteSub) - tablična zamjena svakog bajta niza (slika 3); SR (ShiftRow) - pomak reda niza (slika 4). Ovom operacijom prvi redak ostaje nepromijenjen, a ostali se ciklički bajt po bajt pomiču ulijevo za fiksni broj bajtova, ovisno o veličini niza. Na primjer, za niz 4X4, redovi 2, 3 i 4 pomaknuti su za 1, 2 i 3 bajta, redom. Slijedi MC (MixColumn) - operacija na neovisnim stupcima niza (slika 5), ​​kada se svaki stupac množi s fiksnom matricom c(x) prema određenom pravilu. I na kraju, AK (AddRoundKey) - dodavanje ključa. Svaki bit niza dodaje se modulo 2 odgovarajućem bitu okruglog ključa, koji se pak na određeni način izračunava iz ključa za šifriranje (slika 6).


Riža. 3. Rad BS.

Riža. 4. Operacija SR.

Riža. 5. MC rad.

Broj rundi enkripcije (R) u Rijndael algoritmu je promjenjiv (10, 12 ili 14 rundi) i ovisi o veličini bloka i ključu enkripcije (postoji i nekoliko fiksnih veličina ključa).

Dešifriranje se izvodi pomoću sljedećih inverznih operacija. Tablica je obrnuta i zamjena tablice se izvodi na inverznoj tablici (u odnosu na onu koja se koristi u enkripciji). Operacija inverzna SR je kružni pomak redova udesno, a ne ulijevo. Inverzna operacija za MC je množenje prema istim pravilima s drugom matricom d(x) koja zadovoljava uvjet: c(x) * d(x) = 1. Zbrajanje ključa AK je inverzno samom sebi, budući da koristi samo operaciju XOR. Ove obrnute operacije primjenjuju se kod dešifriranja obrnutim redoslijedom od onoga koji se koristi za šifriranje.

Rijndael je postao novi standard za šifriranje podataka zbog niza prednosti u odnosu na druge algoritme. Prije svega, pruža brzu enkripciju na svim platformama: kako u softverskoj tako iu hardverskoj implementaciji. Ističe se neusporedivo boljim mogućnostima paraleliziranja izračuna u odnosu na druge algoritme pristigle na natječaj. Osim toga, zahtjevi za resursima za njegov rad su minimalni, što je važno kada se koristi u uređajima s ograničenim računalnim mogućnostima.

Nedostatak algoritma može se smatrati samo njegovom inherentnom netradicionalnom shemom. Činjenica je da su svojstva algoritama temeljenih na Feistelovoj mreži dobro proučena, a Rijndael, za razliku od njih, može sadržavati skrivene ranjivosti koje se mogu otkriti tek nakon što prođe neko vrijeme od početka njegove široke distribucije.

Asimetrična enkripcija

Asimetrični algoritmi šifriranja, kao što je već navedeno, koriste dva ključa: k1 je ključ šifriranja ili javni, a k2 je ključ dešifriranja ili tajni. Javni ključ se izračunava iz tajne: k1 = f(k2).

Asimetrični algoritmi šifriranja temelje se na korištenju jednosmjernih funkcija. Po definiciji, funkcija y = f(x) je jednosmjerna ako: je lako izračunati za sve moguće x i za većinu mogućih vrijednosti y dovoljno je teško izračunati x tako da je y = f(x) .

Primjer jednosmjerne funkcije je množenje dvaju velikih brojeva: N = P*Q. Samo po sebi, takvo množenje je jednostavna operacija. Međutim, inverzna funkcija (razlaganje N na dva velika faktora), nazvana faktorizacija, prema suvremenim procjenama vremena, prilično je kompliciran matematički problem. Na primjer, faktoriziranje N s dimenzijom 664 bita na P? Q će zahtijevati oko 1023 operacije, a za izračunavanje x natrag za modulo eksponent y = ax mod p s poznatim a, p i y (s istim dimenzijama a i p) trebate izvesti približno 1026 operacija. Posljednji od ovih primjera naziva se "Problem diskretnog logaritma" (DLP - Discrete Logarithm Problem), a takve se funkcije često koriste u algoritmima asimetrične enkripcije, kao i u algoritmima koji se koriste za izradu elektroničkog digitalnog potpisa.

Druga važna klasa funkcija koje se koriste u asimetričnoj enkripciji su jednosmjerne backdoor funkcije. Njihova definicija kaže da je funkcija jednosmjerna s tajnim prolazom ako je jednosmjerna i moguće je učinkovito izračunati inverznu funkciju x = f-1(y), tj. ako je "tajni prolaz" (neki tajni broj, primijenjen na asimetrični algoritmi šifriranja – vrijednost tajnog ključa).

Backdoor jednosmjerne funkcije koriste se u široko korištenom RSA asimetričnom enkripcijskom algoritmu.

RSA algoritam

Razvijena 1978. godine od strane tri autora (Rivest, Shamir, Adleman), dobila je ime po prvim slovima imena programera. Pouzdanost algoritma temelji se na težini rastavljanja velikih brojeva na faktore i izračunavanja diskretnih logaritama. Glavni parametar RSA algoritma je modul sustava N, koji se koristi za sve izračune u sustavu, a N = P*Q (P i Q su tajni nasumični veliki prosti brojevi, obično iste dimenzije).

Tajni ključ k2 odabire se slučajno i mora ispunjavati sljedeće uvjete:

1

gdje je gcd najveći zajednički djelitelj, tj. k1 mora biti istoprost s vrijednošću Eulerove funkcije F(N), a potonja je jednaka broju pozitivnih cijelih brojeva u rasponu od 1 do N koji su istoprosti s N, i je izračunati kao F(N) = (P - 1)*(Q - 1).

Javni ključ k1 izračunava se iz relacije (k2*k1) = 1 mod F(N), a za to se koristi generalizirani Euklidov algoritam (algoritam za izračunavanje najvećeg zajedničkog djelitelja). Podatkovni blok M je šifriran pomoću RSA algoritma na sljedeći način: C=M [na potenciju k1] mod N. Imajte na umu da budući da je u stvarnom kriptosustavu koji koristi RSA broj k1 vrlo velik (trenutačno njegova dimenzija može doseći do 2048 bita), izravni izračun M [na potenciju k1] nestvarno. Za njegovo dobivanje koristi se kombinacija višestrukog kvadriranja M s množenjem rezultata.

Inverzija ove funkcije na velikim dimenzijama nije izvediva; drugim riječima, nemoguće je pronaći M iz poznatih C, N i k1. Međutim, imajući tajni ključ k2, uz pomoć jednostavnih transformacija, može se izračunati M = Ck2 mod N. Očito, osim samog tajnog ključa, potrebno je osigurati i tajnost parametara P i Q. Ako je napadač dobije njihove vrijednosti, tada može izračunati i tajni ključ k2.

Koja je najbolja enkripcija?

Glavni nedostatak simetrične enkripcije je potreba za prijenosom ključeva "iz ruke u ruku". Ovaj nedostatak je vrlo ozbiljan, jer onemogućuje korištenje simetrične enkripcije u sustavima s neograničenim brojem sudionika. Međutim, u drugim aspektima, simetrična enkripcija ima neke prednosti koje su jasno vidljive u pozadini ozbiljnih nedostataka asimetrične enkripcije.

Prvi od njih je mala brzina izvođenja operacija šifriranja i dešifriranja, zbog prisutnosti operacija koje zahtijevaju velike resurse. Još jedan nedostatak je "teorijski" - matematički, kriptografska snaga algoritama za asimetrično šifriranje nije dokazana. To je prvenstveno zbog problema diskretnog logaritma - do sada nije bilo moguće dokazati da je njegovo rješenje u prihvatljivom vremenu nemoguće. Nepotrebne poteškoće stvara i potreba zaštite javnih ključeva od zamjene - zamjenom javnog ključa legalnog korisnika napadač će moći šifrirati važnu poruku njegovim javnim ključem i potom je lako dekriptirati svojim tajnim ključem.

Unatoč tome, ovi nedostaci ne sprječavaju široku upotrebu algoritama asimetrične enkripcije. Danas postoje kriptosustavi koji podržavaju certifikaciju javnih ključeva, kao i kombinaciju simetričnih i asimetričnih algoritama šifriranja. Ali ovo je tema za poseban članak.

Dodatni izvori informacija

Za one čitatelje koji nisu besposleno zainteresirani za šifriranje, autor preporuča da prošire svoje horizonte uz pomoć sljedećih knjiga.

  1. Brassard J. "Moderna kriptologija".
  2. Petrov A. A. "Računalna sigurnost: kriptografske metode zaštite".
  3. Romanets Yu. V., Timofeev PA, Shangin VF "Informacijska sigurnost u modernim računalnim sustavima".
  4. Sokolov A. V., Shangin V. F. "Zaštita informacija u distribuiranim korporativnim mrežama i sustavima".

Potpuni opis algoritama šifriranja može se pronaći u sljedećim dokumentima:

  1. GOST 28147-89. Sustav za obradu informacija. Kriptografska zaštita. Algoritam kriptografske transformacije. - M.: Gosstandart SSSR-a, 1989.
  2. AES algoritam: http://www.nist.gov/ae.
  3. RSA algoritam: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

Zbog činjenice da je glavna funkcija našeg softvera šifriranje podataka, često nam se postavljaju pitanja o određenim aspektima kriptografije. Odlučili smo prikupiti najčešće postavljana pitanja u jednom dokumentu i pokušali dati najdetaljnije, ali u isto vrijeme, ne preopterećene nepotrebnim informacijama odgovore.

1. Što je kriptografija?

Kriptografija je teorijska znanstvena disciplina, grana matematike koja proučava transformaciju informacija u svrhu zaštite od razumnih akcija neprijatelja.

2. Što je algoritam šifriranja?

Algoritam šifriranja je skup logičkih pravila koja određuju proces pretvaranja informacija iz otvorenog stanja u šifrirano stanje (šifriranje) i, obrnuto, iz šifriranog stanja u otvoreno stanje (dešifriranje).

Algoritmi šifriranja nastaju kao rezultat teorijskih istraživanja, kako pojedinih znanstvenika tako i istraživačkih timova.

3. Kako se podaci štite enkripcijom?

Osnovno načelo zaštite podataka enkripcijom je šifriranje podataka. Za autsajdera, šifrirani podaci izgledaju kao "informacijsko smeće" - besmislen skup znakova. Dakle, ako podaci u šifriranom obliku dođu do napadača, on ih jednostavno neće moći koristiti.

4. Koji je najjači algoritam šifriranja?

U načelu, svaki algoritam šifriranja koji predloži neki poznati kriptograf smatra se sigurnim dok se ne dokaže suprotno.

U pravilu se svi novonastali algoritmi za šifriranje objavljuju za javnu recenziju, te se sveobuhvatno proučavaju u specijaliziranim centrima za kriptografska istraživanja. Rezultati takvih studija također se objavljuju radi javnog pregleda.

5. Što je ključ za šifriranje?

Enkripcijski ključ je nasumični, pseudoslučajni ili posebno formirani niz bitova, koji je promjenjivi parametar algoritma za šifriranje.

Drugim riječima, ako kriptirate iste informacije istim algoritmom, ali s različitim ključevima, rezultati će također biti drugačiji.

Ključ za šifriranje ima jednu bitnu karakteristiku - duljinu koja se obično mjeri u bitovima.

6. Koji su algoritmi šifriranja?

Algoritmi šifriranja podijeljeni su u dvije velike klase - simetrične i asimetrične (ili asimetrične).

Simetrični algoritmi šifriranja koriste isti ključ za šifriranje informacija i njihovo dešifriranje. U tom slučaju ključ šifriranja mora biti tajan.

Simetrični algoritmi šifriranja u pravilu su jednostavni za implementaciju i ne zahtijevaju puno računalnih resursa za svoj rad. No, nepogodnost takvih algoritama očituje se u slučajevima kada, primjerice, dva korisnika trebaju razmijeniti ključeve. U ovom slučaju, korisnici se trebaju ili izravno upoznati ili imati neku vrstu pouzdanog kanala zaštićenog od neovlaštenog otvaranja za slanje ključa, što nije uvijek moguće.

Primjeri algoritama simetričnog šifriranja su DES, RC4, RC5, AES, CAST.

Asimetrični algoritmi šifriranja koriste dva ključa, jedan za šifriranje i jedan za dešifriranje. U ovom slučaju se govori o paru ključeva. Jedan ključ iz para može biti javan (dostupan svima), drugi može biti tajni.

Asimetrične algoritme šifriranja teže je implementirati i zahtjevniji su za računalne resurse od simetričnih, no problem razmjene ključeva između dva korisnika lakše je riješiti.

Svaki korisnik može kreirati vlastiti par ključeva i poslati javni ključ svom pretplatniku. Ovaj ključ može samo šifrirati podatke; dešifriranje zahtijeva tajni ključ koji pohranjuje samo njegov vlasnik. Dakle, dobivanje javnog ključa od strane napadača neće mu dati ništa, jer mu je nemoguće dešifrirati šifrirane podatke.

Primjeri algoritama asimetrične enkripcije su RSA, El-Gamal.

7. Kako se provaljuju algoritmi šifriranja?

U kriptografskoj znanosti postoji pododsjek - kriptoanaliza, koji proučava pitanja razbijanja algoritama šifriranja, odnosno dobivanja otvorenih informacija iz šifriranih informacija bez ključa šifriranja.

Postoji mnogo različitih načina i metoda kriptoanalize, od kojih je većina previše složena i dugotrajna da bi se ovdje reproducirala.

Jedina metoda vrijedna spomena je izravno nabrajanje svih mogućih vrijednosti ključa za šifriranje (također se naziva brute force metoda ili brute force). Bit ove metode je nabrajanje svih mogućih vrijednosti ključa za šifriranje dok se ne pronađe željeni ključ.

8. Kolika bi trebala biti duljina ključa za šifriranje?

Danas se za simetrične algoritme šifriranja 128 bita (16 bajtova) smatra dovoljnom duljinom ključa šifriranja. Za potpuni popis svih mogućih ključeva duljine 128 bita (brute force attack) u jednoj godini potrebni su procesori 4.2x1022 kapaciteta 256 milijuna enkripcijskih operacija u sekundi. Cijena ovog broja procesora je 3,5x1024 američkih dolara (prema Bruce Schneier, Applied Cryptography).

Postoji međunarodni projekt distribuiran.net, čija je svrha ujediniti internetske korisnike kako bi stvorili virtualno distribuirano superračunalo koje nabraja ključeve za šifriranje. Najnoviji projekt razbijanja 64-bitnog ključa dovršen je u roku od 1757 dana, uključivši više od 300.000 korisnika, a računalna snaga svih projektnih računala bila je ekvivalentna gotovo 50.000 2GHz AMD Athlon XP procesora.

U ovom slučaju treba uzeti u obzir da se povećanjem duljine ključa šifriranja za jedan bit udvostručuje broj vrijednosti ključa, a time i vrijeme enumeracije. To jest, na temelju gornjih brojki, u 1757 * 2 dana moguće je razbiti ne 128-bitni ključ, kao što se može činiti na prvi pogled, već samo 65-bitni ključ.

9. Čuo sam za 1024 pa čak i 2048 bitne ključeve enkripcije, a vi kažete da je dovoljno 128 bita. Što to znači?

Tako je, ključevi enkripcije od 512, 1024 i 2048 bita, a ponekad i duži, koriste se u algoritmima asimetrične enkripcije. Oni koriste principe koji su potpuno drugačiji od simetričnih algoritama, pa su i razmjeri ključeva za šifriranje različiti.

Odgovor na ovo pitanje je najčuvanija tajna specijalnih službi svake države. S teorijskog gledišta nemoguće je pročitati podatke kriptirane poznatim algoritmom s ključem dovoljne duljine (vidi prethodna pitanja), no tko zna što se krije iza vela državne tajne? Moglo bi se ispostaviti da postoje neke vanzemaljske tehnologije poznate vladi, s kojima možete razbiti svaku šifru 🙂

Jedino što se sa sigurnošću može tvrditi je da niti jedna država, niti jedna specijalna služba neće otkriti tu tajnu, a čak i ako je moguće nekako dešifrirati podatke, nikada ih ni na koji način neće pokazati.

Za ilustraciju ove izjave može se navesti povijesni primjer. Tijekom Drugog svjetskog rata, britanski premijer Winston Churchill je, kao rezultat presretanja i dešifriranja njemačkih poruka, postao svjestan nadolazećeg bombardiranja grada Coventryja. Unatoč tome, nije poduzeo nikakve mjere da spriječi neprijatelja da sazna da britanska obavještajna služba može dešifrirati njihove poruke. Kao rezultat toga, u noći s 14. na 15. studenoga 1940. Coventry je uništen od strane njemačkog zrakoplovstva, ubivši veliki broj civila. Tako se za Churchilla cijena odavanja informacije da može dešifrirati njemačke poruke pokazala višom od cijene nekoliko tisuća ljudskih života.

Očito je da je za moderne političare cijena takvih informacija još viša, pa o mogućnostima suvremenih specijalnih službi nećemo saznati ništa, ni eksplicitno ni neizravno. Dakle, čak i ako je odgovor na ovo pitanje potvrdan, ta se mogućnost najvjerojatnije neće manifestirati ni na koji način.

Izvor: SecurIT

^ povratak na početak ^

Obično se novi algoritmi šifriranja objavljuju za javnu provjeru i proučavaju u specijaliziranim istraživačkim centrima. Rezultati takvih studija također se objavljuju radi javnog pregleda.

Simetrični algoritmi
Algoritmi šifriranja podijeljeni su u dvije velike klase: simetrične (AES, GOST, Blowfish, CAST, DES) i asimetrične (RSA, El-Gamal). Simetrični algoritmi šifriranja koriste isti ključ za šifriranje i dešifriranje informacija, dok asimetrični algoritmi koriste dva ključa - jedan za šifriranje i jedan za dešifriranje.

Ako se šifrirane informacije trebaju prenijeti na drugo mjesto, tada se tamo mora prenijeti i ključ za dešifriranje. Slaba točka ovdje je kanal prijenosa podataka - ako nije siguran ili se prisluškuje, tada ključ za dešifriranje može doći do napadača. Sustavi temeljeni na asimetričnim algoritmima nemaju ovaj nedostatak. Budući da svaki sudionik u takvom sustavu ima par ključeva: javni i tajni ključ.

Ključ za šifriranje
Ovo je slučajni ili posebno kreirani niz bitova prema lozinci, koja je varijabilni parametar algoritma za šifriranje.
Ako šifrirate iste podatke istim algoritmom, ali s različitim ključevima, rezultati će također biti drugačiji.

Obično se u softveru za šifriranje (WinRAR, Rohos, itd.) ključ kreira iz lozinke koju navede korisnik.

Ključ za šifriranje dolazi u različitim duljinama, koje se obično mjere u bitovima. Kako se duljina ključa povećava, teoretska sigurnost šifre raste. U praksi to nije uvijek točno.

U kriptografiji se smatra da je mehanizam enkripcije netajna vrijednost, a napadač može imati puni izvorni kod algoritma enkripcije, kao i šifrat (Kerckhoffovo pravilo). Druga pretpostavka koja se može dogoditi je da napadač može znati dio nešifriranog (čistog) teksta.

Snaga algoritma šifriranja.
Algoritam šifriranja smatra se jakim dok se ne dokaže suprotno. Dakle, ako je algoritam za šifriranje objavljen, postoji više od 5 godina i za njega nisu pronađene ozbiljne ranjivosti, možemo pretpostaviti da je njegova snaga prikladna za zaštitu tajnih podataka.

Teorijska i praktična stabilnost.
Godine 1949. K.E. Shannon je objavio članak "Teorija komunikacije u tajnim sustavima". Shannon je smatrao snagu kriptografskih sustava kao praktičnu i teoretsku. Zaključak o teorijskoj sigurnosti još uvijek je pesimističan: duljina ključa trebala bi biti jednaka duljini otvorenog teksta.
Stoga je Shannon razmatrao i pitanje praktične snage kriptografskih sustava. Je li sustav pouzdan ako napadač ima ograničeno vrijeme i računalne resurse za analizu presretnutih poruka?

Obično se ranjivosti nalaze u programima koji šifriraju podatke pomoću nekog algoritma. U tom slučaju programeri čine pogrešku u logici programa ili u kriptografskom protokolu, zahvaljujući čemu se, nakon proučavanja kako program radi (na niskoj razini), na kraju može dobiti pristup tajnim informacijama.

Razbijanje algoritma šifriranja
Vjeruje se da je kriptosustav riješen ako napadač može izračunati tajni ključ i izvesti algoritam konverzije ekvivalentan izvornom kriptoalgoritmu. I da je ovaj algoritam bio izvediv u stvarnom vremenu.

U kriptologiji postoji pododsjek koji se zove kriptoanaliza, a bavi se proučavanjem problema razbijanja ili krivotvorenja šifriranih poruka. Postoji mnogo načina i metoda kriptoanalize. Najpopularnija je metoda izravnog nabrajanja svih mogućih vrijednosti ključa za šifriranje (tzv. "brute force" ili brute force metoda). Bit ove metode je nabrajanje svih mogućih vrijednosti ključa za šifriranje dok se ne pronađe željeni ključ.

U praksi to znači da napadač mora:

  • Imajte na raspolaganju kriptosustav (tj. program) i primjere kriptiranih poruka.
  • Razumjeti kriptografski protokol. Drugim riječima, kako program šifrira podatke.
  • Razviti i implementirati algoritam za nabrajanje ključeva za ovaj kriptosustav.

Kako možete znati je li ključ valjan ili ne?
Sve ovisi o specifičnom programu i implementaciji protokola šifriranja. Obično, ako se nakon dešifriranja ispostavi da je "smeće", onda je to pogrešan ključ. A ako je tekst više ili manje smislen (ovo se može provjeriti), onda je Ključ točan.

Algoritmi šifriranja
AES (Rijndael). Trenutno je američki savezni standard šifriranja.

Koji algoritam šifriranja odabrati za zaštitu podataka?

Odobreno kao standard od strane Ministarstva trgovine 4. prosinca 2001. Odluka je stupila na snagu danom objave u federalnom registru (06.12.01.). Varijanta šifre s veličinom bloka od samo 128 bita prihvaćena je kao standard.

GOST 28147-8. Standard Ruske Federacije za šifriranje podataka i zaštitu od imitacije. U početku je imao vrat (OV ili SS - ne zna se točno), zatim je vrat dosljedno smanjivan, a do vremena kada je algoritam službeno proveden kroz Državni standard SSSR-a 1989., uklonjen je. Algoritam je ostao DSP (kao što znate, DSP se ne smatra vratom). Godine 1989. postao je službeni standard SSSR-a, a kasnije, nakon raspada SSSR-a, federalni standard Ruske Federacije.

riba napuhač Složena shema za generiranje ključnih elemenata značajno komplicira brute-force napad na algoritam, ali ga čini neprikladnim za korištenje u sustavima gdje se ključ često mijenja i mali podaci su šifrirani na svakom ključu.

Algoritam je najprikladniji za sustave u kojima su velike količine podataka šifrirane istim ključem.

DES Američki federalni standard šifriranja 1977-2001. Usvojen kao savezni standard SAD-a 1977. U prosincu 2001. godine gubi status zbog uvođenja novog standarda.

CAST U određenom smislu, analog DES-a.

www.codenet.ru/progr/alg/enc
Algoritmi šifriranja, pregled, informacije, usporedba.

http://www.enlight.ru/crypto
Materijali o asimetričnoj enkripciji, digitalnom potpisu i drugim "modernim" kriptografskim sustavima.

Aleksandar Velikanov,
Olga Čeban,
Tesline Service S.R.L.

Bivši bankar iz Abu Dhabija Mohammad Ghaith bin Mahah Al Mazrui razvio je šifru za koju tvrdi da je neraskidiva. Šifra nazvana "Kod Abu Dhabija" nastala je na temelju skupine simbola koje je izmislio sam Al Mazrui. U njegovom kodu svako slovo zamijenjeno je posebno izmišljenim simbolom, a ti simboli ne pripadaju nijednom poznatom jeziku na svijetu.

Koji su algoritmi za šifriranje podataka sigurniji

Programeru je trebalo godinu i pol da radi na šifri, koju Al Mazrui naziva "apsolutno novom".

Prema riječima entuzijasta, svatko može stvoriti vlastiti kod, a složenost šifre određena je duljinom ključa. Smatra se da se, u načelu, ako postoji želja, određene vještine i odgovarajući softver, može probiti gotovo svaka, pa i najsloženija šifra.

Međutim, Al Mazrui uvjerava da je njegova kreacija neraskidiva i daleko najpouzdanija šifra. “Gotovo je nemoguće dešifrirati dokument kodiran šifrom Abu Dhabija”, siguran je Al Mazrui.

Kako bi dokazao svoj slučaj, bankar je izazvao sve istaknute kriptografe, hakere i kriptografe, pozivajući ih da pokušaju razbiti njegovu šifru.

3. Kryptos je skulptura koju je američki kipar James Sanborn postavio na tlo sjedišta CIA-e u Langleyu u Virginiji 1990. godine. Šifrirana poruka ispisana na njemu još uvijek se ne može razotkriti.

4. Šifra otisnuta na Kineska zlatna poluga. Sedam zlatnih poluga navodno je izdano 1933. generalu Wangu u Šangaju. Označeni su slikama, kineskim slovima i nekim šifriranim porukama, uključujući latinična slova. Mogu sadržavati potvrde o autentičnosti metala koje je izdala jedna od američkih banaka.

Koji algoritam šifriranja odabrati u TrueCryptu

5. Baleovi kriptogrami Tri šifrirane poruke za koje se vjeruje da sadrže pojedinosti o lokaciji ostave od dva vagona zlata, srebra i dragog kamenja koje je 1820-ih u blizini Lynchburga, u okrugu Bedford, Virginia, zakopala skupina rudara zlata predvođena Thomasom Jeffersonom Baleom. Cijena do sada nepronađenog blaga, gledano u modernom novcu, trebala bi biti oko 30 milijuna dolara. Zagonetka kriptograma do sada nije riješena, posebice pitanje stvarnog postojanja blaga ostaje kontroverzno. Jedna od poruka je dešifrirana - opisuje samo blago i daje opće indikacije o njegovom položaju. Preostala neotvorena pisma mogu sadržavati točnu lokaciju knjižne oznake i popis vlasnika blaga. (detaljne informacije)

6. Voynichov rukopisčesto nazivana najtajanstvenijom knjigom na svijetu. Rukopis koristi jedinstveni alfabet, sadrži oko 250 stranica i crteže koji prikazuju nepoznato cvijeće, gole nimfe i astrološke simbole. Prvi put se pojavio krajem 16. stoljeća, kada ga je car Svetog rimskog carstva Rudolf II kupio u Pragu od nepoznatog trgovca za 600 dukata (oko 3,5 kg zlata, danas više od 50 tisuća dolara). Od Rudolpha II knjiga je prešla na plemiće i znanstvenike, a nestala je krajem 17. stoljeća. Rukopis se ponovno pojavio oko 1912. kada ga je kupio američki knjižar Wilfried Voynich. Nakon njegove smrti, rukopis je doniran Sveučilištu Yale. Britanski učenjak Gordon Rugg vjeruje da je knjiga vješta prijevara. Tekst ima značajke koje nisu karakteristične ni za jedan od jezika. S druge strane, neke značajke, poput duljine riječi, načina povezivanja slova i slogova, slične su onima koje nalazimo u stvarnim jezicima. “Mnogi ljudi misle da je sve ovo previše komplicirano da bi prijevara izgradila takav sustav, trebale bi neke lude alkemičarske godine”, kaže Rugg. Međutim, Rugg pokazuje da se takva složenost mogla lako postići korištenjem uređaja za šifriranje koji je izumljen oko 1550. godine i nazvan je Cardanova mreža. U ovoj tablici simbola riječi se stvaraju pomicanjem kartice na kojoj su izrezane rupe. Zbog razmaka u tablici, riječi su različite duljine. Nametanjem takvih rešetki na tablicu slogova rukopisa, Rugg je stvorio jezik koji dijeli mnoge, ako ne i sve, karakteristike jezika rukopisa. Prema njegovim riječima, tri mjeseca bila bi dovoljna za izradu cijele knjige. (detaljne informacije, wikipedia)

7. Dorabella šifra, koju je 1897. skladao britanski skladatelj Sir Edward William Elgar. U šifriranom je obliku poslao pismo u grad Wolverhampton svojoj djevojci Dori Penny, 22-godišnjoj kćeri Alfreda Pennyja, rektora katedrale Svetog Petra. Ova šifra ostaje neriješena.

8. Sve donedavno popisu su prisustvovali Chaocipher, koji nije mogao biti otkriven za života svog tvorca. Šifru je izumio John F. Byrne 1918. godine i gotovo 40 godina neuspješno pokušavao za nju zainteresirati američke vlasti. Izumitelj je ponudio novčanu nagradu svakome tko bi mogao riješiti njegovu šifru, ali kao rezultat toga nitko je nije tražio.

Ali u svibnju 2010. članovi Byrneove obitelji predali su sve Byrneove preostale dokumente Nacionalnom kriptografskom muzeju u Marylandu, što je dovelo do otkrića algoritma.

9. D'Agapeyeffova šifra. Godine 1939. britanski kartograf ruskog podrijetla Alexander D'Agapeyeff objavio je knjigu o osnovama kriptografije Kodovi i šifre, u čijem prvom izdanju navodi šifru vlastitog izuma. Ova šifra nije bila uključena u kasnija izdanja. Nakon toga, D'Agapeyeff je priznao da je zaboravio algoritam za dešifriranje ove šifre. Sumnja se da su neuspjesi koji su zadesili sve one koji su pokušali dešifrirati njegovo djelo posljedica činjenice da je autor pogriješio prilikom šifriranja teksta.

Ali u naše vrijeme postoji nada da se šifra može riješiti pomoću modernih metoda - na primjer, genetskog algoritma.

10. Taman Shud. Dana 1. prosinca 1948. na obali Australije u Somertonu, u blizini Adelaidea, pronađeno je mrtvo tijelo muškarca, odjevenog u džemper i kaput, unatoč karakteristično vrućem danu za australsku klimu. Kod njega nisu pronađeni dokumenti. Pokušaji da se otisci njegovih zubi i prstiju usporede s dostupnim podacima o živim ljudima također su urodili plodom. Obdukcija je otkrila neprirodan nalet krvi, koja mu je posebno ispunila trbušnu šupljinu, kao i povećanje unutarnjih organa, ali u njegovom tijelu nisu pronađene strane tvari. Na željezničkom kolodvoru su istovremeno pronašli kovčeg koji bi mogao pripadati pokojniku. U kovčegu su bile hlače sa tajnim džepom u kojem su našli komad papira otrgnut iz knjige s ispisanim riječima. Taman Shud. Istragom je utvrđeno da je komad papira otrgnut s vrlo rijetkog primjerka zbirke Rubaiyat velikog perzijskog pjesnika Omara Khayyama. Sama knjiga pronađena je na stražnjem sjedalu automobila ostavljenog otključanog. Na stražnjoj korici knjige velikim je slovima naškrabano pet redaka - značenje ove poruke nije se moglo odgonetnuti. Do danas, ova priča ostaje jedna od najtajnovitijih misterija Australije.

09.07.2003

Što je enkripcija?

Enkripciju čovječanstvo koristi od samog trenutka kada su se pojavile prve tajne informacije, odnosno one kojima je pristup trebao biti ograničen. Bilo je to jako davno - dakle, jedna od najpoznatijih metoda šifriranja nazvana je po Cezaru, koji ju je, ako nije sam izmislio, onda aktivno koristio (vidi bočnu traku).

Kriptografija osigurava prikrivanje značenja poruke i otkrivanje njezine dešifriranja pomoću posebnih algoritama i ključeva. Ključ mi razumijemo kao određeno tajno stanje parametara algoritama za šifriranje i dešifriranje. Poznavanje ključa omogućuje čitanje tajne poruke. Međutim, kao što ćete vidjeti u nastavku, nepoznavanje ključa ne jamči uvijek da poruku ne može pročitati osoba izvana.

Proces razbijanja šifre bez poznavanja ključa naziva se kriptoanaliza. Vrijeme potrebno za razbijanje šifre određeno je njenom kriptografskom snagom. Što je veći, to je "jači" algoritam šifriranja. Još bolje, ako je u početku nemoguće uopće saznati je li rezultat hakiranja moguć.

Osnovne moderne metode šifriranja

Među različitim metodama šifriranja mogu se razlikovati sljedeće glavne metode:

  • Zamjena ili algoritmi zamjene - znakovi izvornog teksta zamjenjuju se znakovima druge (ili iste) abecede u skladu s unaprijed određenom shemom, koja će biti ključ ove šifre. Zasebno, ova metoda se praktički ne koristi u modernim kriptosustavima zbog izuzetno niske kriptografske snage.
  • Algoritmi permutacije - znakovi izvornog teksta izmjenjuju se prema određenom principu, koji je tajni ključ. Sam algoritam permutacije ima nisku kriptografsku snagu, ali je uključen kao element u mnoge moderne kriptosustave.
  • Gama algoritmi - znakovi izvornog teksta dodaju se znakovima nekog slučajnog niza. Najčešći primjer je enkripcija datoteka "username.pwl" u kojima operativni sustav Microsoft Windows 95 pohranjuje lozinke za mrežne resurse određenog korisnika (lozinke za prijavu na NT poslužitelje, lozinke za DialUp pristup Internetu itd.) .

Kada korisnik unese svoju zaporku za prijavu na Windows 95, on generira gamu (uvijek istu) koja se koristi za šifriranje mrežnih zaporki pomoću algoritma za šifriranje RC4. Jednostavnost odabira lozinke u ovom je slučaju posljedica činjenice da Windows uvijek preferira isti raspon.

  • Algoritmi temeljeni na složenim matematičkim transformacijama izvornog teksta prema nekoj formuli. Mnogi od njih koriste neriješene matematičke probleme. Na primjer, RSA enkripcijski algoritam koji se široko koristi na Internetu temelji se na svojstvima prostih brojeva.

Simetrični i asimetrični kriptosustavi

Prije nego prijeđemo na pojedinačne algoritme, razmotrimo ukratko koncept simetričnih i asimetričnih kriptosustava. Generiranje tajnog ključa i šifriranje poruke njime pola je uspjeha. Ali kako poslati takav ključ nekome tko bi ga trebao upotrijebiti za dešifriranje izvorne poruke? Prijenos ključa za šifriranje smatra se jednim od glavnih problema kriptografije.

Ostajući u okviru simetričnog sustava (kako je nazvan jer je isti ključ pogodan za šifriranje i dešifriranje), potrebno je imati pouzdan komunikacijski kanal za prijenos tajnog ključa. Ali takav kanal nije uvijek dostupan, pa su američki matematičari Diffie, Hellman i Merkle 1976. razvili koncept javnog ključa i asimetrične enkripcije. U takvim kriptosustavima javno je dostupan samo ključ za proces enkripcije, a postupak dešifriranja poznat je samo vlasniku tajnog ključa.

Na primjer, kada želim da mi se pošalje poruka, generiram javni i privatni ključ. Otvorite send to you, šifrirate poruku njima i pošaljete je meni. Samo ja mogu dešifrirati poruku, jer nikome nisam dao tajni ključ. Naravno, oba su ključa povezana na poseban način (u svakom kriptosustavu drugačije), a distribucija javnog ključa ne uništava kriptografsku snagu sustava.

U asimetričnim sustavima mora biti zadovoljen sljedeći zahtjev: ne postoji (ili je još nepoznat) takav algoritam koji bi iz kriptoteksta i javnog ključa izveo izvorni tekst. Primjer takvog sustava je poznati RSA kriptosustav.

RSA algoritam

RSA algoritam (prema prvim slovima imena njegovih kreatora Rivest-Shamir-Adleman) temelji se na svojstvima prostih brojeva (i to vrlo velikih). Prosti brojevi su oni brojevi koji nemaju djelitelje osim sebe i jedan. Koprosti brojevi su brojevi koji nemaju zajedničkih djelitelja osim 1.

Prvo, odaberimo dva vrlo velika prosta broja (veliki početni brojevi potrebni su za izradu velikih jakih ključeva. Na primjer, Unix program ssh-keygen prema zadanim postavkama generira 1024-bitne ključeve).

Definirajmo parametar n kao rezultat množenja str I q. Izaberemo veliki slučajni broj i pozovemo ga d, i mora biti jednakoprost s rezultatom množenja (p-1)*(q-1).

Odredite broj e za koji relacija vrijedi

(e*d) mod ((p -1)*(q -1)) = 1

(mod- ostatak dijeljenja, tj. ako se e pomnoženo s d podijeli s ((p-1)*(q-1)), tada je ostatak 1).

Javni ključ je par brojeva e i n, i zatvoreno - d i n.

Prilikom šifriranja, izvorni tekst se promatra kao niz brojeva, a nad svakim njegovim brojem izvodimo operaciju

C(i)= (M(i) e) mod n.

Rezultat je niz C(i), koji će tvoriti kriptotekst. Informacije se dekodiraju prema formuli

M(i) = (C(i) d) mod n.

Kao što vidite, dešifriranje zahtijeva poznavanje tajnog ključa.

Pokušajmo s malim brojevima.

Idemo instalirati p=3, q=7. Zatim n=p*q=21. Odaberite d poput 5. Iz formule (e*5) mod 12=1 izračunati e=17. javni ključ 17, 21 , tajna - 5, 21 .

Šifrirajmo niz "12345":

C(1)= 1 17 mod 21= 1

C(2)=2 17 mod 21 =11

C(3)= 3 17 mod 21= 12

C(4)= 4 17 mod 21= 16

C(5)= 5 17 mod 21= 17

Kriptotekst - 1 11 12 16 17.

Provjerimo dešifriranje:

M(1)= 1 5 mod 21= 1

M(2)= 11 5 mod 21= 2

M(3)= 12 5 mod 21= 3

M(4)= 16 5 mod 21= 4

M(5)= 17 5 mod 21= 5

Kao što vidite, rezultat je isti.

RSA kriptosustav se široko koristi na Internetu. Kada se povežete sa sigurnim poslužiteljem putem SSL-a, instalirate WebMoney certifikat na svoje računalo ili se povežete na udaljeni poslužitelj koristeći Open SSH ili SecureShell, svi ti programi koriste enkripciju s javnim ključem pomoću ideja RSA algoritma. Je li ovaj sustav stvarno tako pouzdan?

RSA hack natjecanja

Od svog početka, RSA je konstantno bio izložen brute-force napadima. Godine 1978. autori algoritma objavili su članak u kojem su predstavili niz šifriran metodom koju su upravo izmislili. Prva osoba koja je dešifrirala poruku dobila je nagradu od 100 dolara, ali za to je bilo potrebno 129-znamenkasti broj rastaviti na dva dijela. Ovo je bilo prvo natjecanje koje je razbilo RSA. Problem je riješen tek 17 godina nakon objave članka.

Snaga RSA-a temelji se na pretpostavci da je iznimno teško, ako ne i nemoguće, odrediti privatni ključ od javnog ključa. Za to je bilo potrebno riješiti problem postojanja djelitelja ogromnog cijelog broja. Do sada to nitko nije riješio analitičkim metodama, a RSA algoritam se može probiti samo iscrpnim nabrajanjem. Strogo govoreći, tvrdnja da je problem faktorizacije težak i da je razbijanje RSA sustava teško također nije dokazana.

Broj dobiven kao rezultat obrade teksta poruke hash funkcijom kriptira se RSA algoritmom privatnim ključem korisnika i šalje primatelju zajedno s pismom i kopijom javnog ključa. Primatelj, koristeći javni ključ pošiljatelja, izvodi istu hash funkciju na dolaznoj poruci. Ako su oba broja jednaka, to znači da je poruka prava, a ako je barem jedan znak promijenjen, tada se brojevi neće podudarati.

Jedan od najčešćih klijenata pošte u Rusiji, The Bat!, ima ugrađene mogućnosti dodavanja digitalnih potpisa pismima (obratite pažnju na stavku izbornika Privatnost kada uređujete pismo). Više o ovoj tehnici pročitajte u članku (vidi "PC World", br. 3/02).

Riža. 3

Kriptografija

Kriptografija je znanost o principima, sredstvima i metodama pretvaranja informacija radi zaštite od neovlaštenog pristupa i iskrivljavanja. Nedavno se razvio vrlo, vrlo brzo. Ovo je beskrajna uzbudljiva utrka koja zahtijeva puno vremena i truda: kriptoanalitičari razbijaju algoritme koji su donedavno bili standardi i naširoko korišteni. Inače, nedavno su matematičari Dan Goldston (SAD) i Kem Ildirim (Turska) dokazali prvu pravilnost u raspodjeli prostih brojeva (do sada takve pravilnosti nisu uočene). Prosti brojevi se u nekim klasterima nalaze na numeričkoj osi, što donekle olakšava njihovu pretragu.

Matematička istraživanja koja se odvijaju u cijelom svijetu neprestano dovode do novih i novih otkrića. Tko zna, možda smo na rubu probijanja RSA algoritma ili drugih kriptosustava temeljenih na neriješenim matematičkim problemima.

Oleg Bunjin- specijalist za razvoj softvera za velike internet projekte, zaposlenik tvrtke Rambler, [e-mail zaštićen] .

Književnost
  1. Lukashov I. V. Kriptografija? Željezo! // PC svijet. 2003. br. 3 (
  2. Nosov V. A. Kratki povijesni pregled razvoja kriptografije // Zbornik radova konferencije "Moskovsko sveučilište i razvoj kriptografije u Rusiji", Moskovsko državno sveučilište, 17.-18. listopada 2002.
  3. Salomaa A. Kriptografija s javnim ključem. M., 1996.
  4. Zimmerman F. PGP - enkripcija s javnim ključem za svakoga.

Cezar sustav šifriranja

Primjer zamjenskog algoritma je sustav šifriranja Caesar. Ova se metoda temelji na zamjeni svakog slova poruke drugim pomicanjem od izvornog za fiksni broj znakova. Pokušajte dešifrirati katren Omara Khayyama (vrijeme završetka - 10 minuta).

RLZ YOMEYZ AVBZHU IYZAVLU, BZHSHLU ZHSHCHEZZHZ ZHUYOSHZHZ, EYSHCHAFO YYSHYVESCH BSHCHIZEZHV EESH ZhCHRSCH: LF EMRSYu ʺ̱ZEZESCHG, RYUYO RLZ IZISCHEZ YUKLU, V EMRSYu LMEU ZEVZH, RYU YO YOY UKL K DYYO ISISCHEZ.

Jeste li uspjeli? Evo "pogađanja":

Da bi pametno živio život, trebaš puno znati,

Dva važna pravila koja morate zapamtiti prije početka:

Radije ćeš gladovati nego išta pojesti

I bolje je biti sam nego s bilo kim.

Ključ za dešifriranje: pomaknite sedam znakova (uzmite sedmi) ulijevo po abecedi. Abeceda je petljasta. Znakovi ne razlikuju velika i mala slova.

Windows i lozinke

Kako Windows šifrira lozinke?

Sustav uzima lozinku, pretvara je u velika slova, srezuje na 14 znakova, zatim ih dijeli na dvije polovice po 7, šifrira svaku posebno i tako je pohranjuje, što ju donekle olakšava probijanje. Usput, kada smišljate lozinku, imajte na umu da kombinacija duža od 14 znakova nema puno smisla.

AES (Advanced Encryption Standard) natjecanje

U 80-ima. u SAD-u su usvojili simetrični standard šifriranja za internu upotrebu - DES ((Standard šifriranja podataka, postoji sličan standard u Rusiji). Ali 1997., kada je postalo jasno da 56-bitni DES ključ nije dovoljan za pouzdanu kriptosustava, Američki institut za standarde raspisao je Natječaj za novi standardni algoritam Od 15 ponuđenih opcija izabran je najbolji: belgijski Rijndaelov algoritam (ime mu je sastavljeno od imena autora - Rijmen i Daemen, čita se kao "Reindal" Ovaj algoritam je već ugrađen u razne kriptografske alate koji se isporučuju na tržište.) Ostali finalisti natjecanja bili su MARS, RC6, Serpent, TwoFish.Svi ovi algoritmi su prepoznati kao dovoljno otporni i uspješno odolijevaju svim široko poznatim metodama kriptoanalize.

Kriptografske hash funkcije

Kriptografske hash funkcije pretvaraju unos bilo koje veličine u niz fiksne veličine. Izuzetno ih je teško pronaći:

  • dva različita skupa podataka s istim rezultatom transformacije (otpornost na sudaranje); na primjer, broj aritmetičkih operacija potrebnih za pronalaženje bloka podataka koji također ima kratku poruku za MD5 hash funkciju je približno 264;
  • ulazna vrijednost prema poznatom hash rezultatu (nepovratnost); za MD5, procijenjeni broj operacija potrebnih za izračunavanje izvorne poruke je 2,128.

Zabavno šifriranje

Gotovo sve korištene kriptografske metode uključuju razbijanje poruke na veliki broj dijelova (ili znakova) fiksne veličine, od kojih je svaki zasebno šifriran, ako ne i neovisno. Ovo uvelike pojednostavljuje zadatak enkripcije, jer poruke obično imaju različite duljine.

Postoje tri glavne metode šifriranja: strujanje, blokiranje i korištenje povratnih informacija.

Razlikuju se sljedeće četiri karakteristične značajke kriptografskih metoda.

    Operacije nad pojedinačnim bitovima ili blokovima.

    Ovisnost ili neovisnost funkcije šifriranja o rezultatima enkripcije prethodnih dijelova poruke.

3. Ovisnost ili neovisnost šifriranja pojedinih znakova poruke o njihovom položaju u tekstu. Na primjer, kod strujanja enkripcije, različiti znakovi poruke su šifrirani na temelju njihovog položaja u poruci. Ovo svojstvo naziva se položajna ovisnost ili neovisnost šifre.

4. Simetrija ili asimetrija funkcije šifriranja. Ovo važno svojstvo određuje bitnu razliku između običnih simetričnih kriptosustava (s jednim ključem) i asimetričnih s dva ključa (kriptosustava s javnim ključem). Glavna razlika između to dvoje je u tome što u asimetričnom kriptosustavu poznavanje ključa za šifriranje (ili dešifriranje) nije dovoljno za otkrivanje odgovarajućeg ključa za dešifriranje (ili šifriranje).

Glavne karakteristike kriptosustava

kriptosustavi

Operacije sa

bitovi ili blokovi

Ovisnost / neovisnost o znakovima

poruke

Položajna ovisnost/nezavisnost

Simetrija/

asimetrija

u redu

šifriranje

ne ovisi

simetričan

blok

šifriranje

ne ovisi

ne ovisi

simetrično ili asimetrično

S reversa

komunikacija od

šifrirani tekst

bitovi ili blokovi

ne ovisi

simetričan

U kriptosustavu koji ima svojstvo ovisnosti funkcije šifriranja o znakovima poruke, može doći do širenja pogreške. Ako je, na primjer, bit šifriranog teksta iskrivljen tijekom prijenosa, tada otvoreni tekst može sadržavati više iskrivljenih bitova nakon dešifriranja. Pogreške umetanja i ispuštanja također mogu dovesti do katastrofalnog širenja pogreške tijekom dešifriranja.

Stream šifre. Enkripcija toka sastoji se u činjenici da se bitovi otvorenog teksta zbrajaju po modulu 2 s bitovima pseudoslučajnog niza.

Na dobrobiti stream šifre ne uključuju širenje pogreške, jednostavnu implementaciju i veliku brzinu enkripcije.

hendikep je potreba slanja vremenskih informacija prije zaglavlja poruke, koje se mora primiti prije dešifriranja bilo koje poruke. To je zbog činjenice da ako su dvije različite poruke šifrirane istim ključem, tada se isti pseudo-nasumični niz mora koristiti za dešifriranje tih poruka. Ova situacija može stvoriti opasnu prijetnju kriptografskoj snazi ​​sustava, pa se stoga često koristi dodatni, nasumično odabrani ključ poruke, koji se prenosi na početku poruke i koristi za modificiranje ključa za šifriranje. Kao rezultat toga, različite poruke bit će šifrirane pomoću različitih sekvenci.

Stream šifre naširoko se koriste u vojnim sustavima i drugim sustavima koji su im bliski po svojoj namjeni, za šifriranje podataka i digitaliziranih govornih signala. Donedavno su takve aplikacije bile dominantne za ovu metodu šifriranja. To je posebno zbog relativne jednostavnosti konstruiranja i implementacije generatora dobrih sekvenci šifre. Ali glavni čimbenik je, naravno, nedostatak širenja pogreške u šifri toka.

Budući da se za prijenos podataka i glasovnih poruka u taktičkim komunikacijskim mrežama koriste kanali relativno niske kvalitete, svaki kriptografski sustav koji povećava ionako visoku stopu pogrešaka nije primjenjiv. U takvim slučajevima obvezno je koristiti kriptosustav koji ne širi pogreške.

Međutim, umnožavanje pogrešaka može biti pozitivna pojava. Pretpostavimo, na primjer, da se šifrirani podaci moraju prenijeti putem kanala s vrlo malom vjerojatnošću pogreške (na primjer, 10 5) i vrlo je važno da se podaci prime apsolutno točno. Ovo je tipična situacija za računalne mreže, gdje greška u jednom bitu može dovesti do katastrofalnih posljedica, pa stoga komunikacijski kanal mora biti vrlo pouzdan. U takvoj situaciji jedna greška je opasna kao i 100 ili 1000 grešaka. Ali 100 ili 1000 grešaka može se pronaći lakše nego jedna greška. Stoga, u ovom slučaju, širenje pogrešaka više nije nedostatak šifre.

Standardna metoda za generiranje sekvenci za enkripciju toka je metoda koja se koristi u DES standardu šifriranja podataka u načinu povratne sprege iz izlaza.

Blokovne šifre. Za blokovsko šifriranje, otvoreni tekst se prvo dijeli na blokove jednake duljine, a zatim se primjenjuje funkcija šifriranja ovisna o ključu za transformaciju bloka otvorenog teksta duljine T bit u blok šifriranog teksta iste duljine. Važno svojstvo blok šifara je da je svaki bit bloka šifriranog teksta funkcija svih (ili gotovo svih) bitova odgovarajućeg bloka otvorenog teksta i dva bloka otvorenog teksta ne mogu biti predstavljena istim blokom šifriranog teksta. Algoritam blokovne šifre može se koristiti na različite načine. Četiri načina šifriranja u DES standardu zapravo su primjenjiva na bilo koju blok šifru.

Ovi načini se nazivaju na sljedeći način:

    izravni način šifriranja ili šifriranje korištenjem elektroničke knjige ECB kodova (Electronic code book),

    enkripcija s ulančavanjem blokova šifriranog teksta CBC (Cipher block chaining),

    enkripcija s povratnom informacijom iz šifriranog teksta CFB (Cipher feedback),

    šifriranje s povratnom spregom s izlaznog OFB (Output feedback).

Glavna prednost izravna blok šifra (elektronička kodna knjiga) je da će u dobro osmišljenom sustavu blok šifre male promjene u šifriranom tekstu izazvati velike i nepredvidive promjene u odgovarajućem otvorenom tekstu, i obrnuto.

Međutim, korištenje blok šifre u ovom načinu rada povezano je s ozbiljne nedostatke. Prvi od njih je da je, zbog fiksne prirode enkripcije, čak i uz relativno veliku duljinu bloka, na primjer 50-100 bitova, "rječnička" kriptoanaliza moguća u ograničenom obliku.

Jasno je da se blok ove veličine može ponoviti u poruci zbog velike redundancije u tipičnom tekstu na prirodnom jeziku. To može rezultirati identičnim blokovima otvorenog teksta duljine T bitovi u poruci bit će predstavljeni identičnim blokovima šifriranog teksta, što kriptoanalitičaru daje neke informacije o sadržaju poruke.

Još jedan potencijalni nedostatak ove šifre povezan je s širenjem pogreške (ovo je jedan od problema za sve vrste šifri osim za stream šifre). Rezultat promjene samo jednog bita u primljenom bloku šifriranog teksta bit će netočna dešifracija cijelog bloka. To će pak rezultirati s 1 do T iskrivljeni dijelovi u obnovljenom izvornom tekstu.

Zbog navedenih nedostataka, blok šifre se rijetko koriste u ovom načinu za šifriranje dugih poruka. Međutim, u financijskim institucijama, gdje se poruke često sastoje od jednog ili dva bloka, blok šifre (osobito DES algoritam) naširoko se koriste u ovoj jednostavnoj varijanti. Budući da takva primjena uključuje mogućnost česte promjene ključa za šifriranje, vjerojatnost šifriranja dva identična bloka otvorenog teksta na istom ključu je vrlo mala. Blokovne šifre najčešće se koriste u sustavima šifriranja s povratnom informacijom.

Moguće je i obrazovanje mješoviti (hibridni) sustavi stream i block enkripcije koristeći najbolja svojstva svake od ovih šifri. U takvim sustavima, šifriranje toka se kombinira s pseudo-slučajnim permutacijama. Otvoreni tekst se prvo šifrira kao kod konvencionalne enkripcije toka, a zatim se dobiveni šifrirani tekst dijeli na blokove fiksne veličine. U svakom bloku izvodi se pseudoslučajna permutacija pod kontrolom ključa (poželjne su različite permutacije za pojedinačne blokove).

Redoslijed ove dvije operacije može se obrnuti bez utjecaja na osnovna svojstva sustava. Rezultat je šifra koja ne širi pogreške, ali ima dodatno svojstvo koje šifra toka nema. Ovo svojstvo je da presretač ne zna koji bit otvorenog teksta odgovara dijelu šifriranog teksta. To čini šifriranu poruku složenijom i težom za razbijanje. Ali treba napomenuti da ovo više nije prava blok šifra, u kojoj je svaki bit šifrovanog teksta funkcija samo jednog, a ne svih, bitova otvorenog teksta.

Kriptosustav s javnim ključem trebao bi biti sustav blokovne šifre koji radi s blokovima prilično velikih duljina. To je zbog činjenice da bi kriptoanalitičar koji poznaje javni ključ za šifriranje mogao unaprijed izračunati i sastaviti tablicu korespondencije između blokova otvorenog teksta i šifriranog teksta. Ako je duljina bloka mala (na primjer, 30 bita), tada broj mogućih blokova neće biti prevelik (za duljinu od 30 bita to je 2 30 -10 9) i može se sastaviti potpuna tablica, čineći moguće je trenutačno dešifrirati bilo koju šifriranu poruku pomoću poznatog javnog ključa.

Predloženo je mnogo različitih kriptosustava s javnim ključem, od kojih je najpoznatiji RSA sustav (Rivest, Shamir, Adleman). Kriptografska snaga ovog sustava temelji se na teškoći rastavljanja velikih brojeva na proste faktore i odabiru dva velika prosta broja za ključeve za šifriranje i dešifriranje.

Poznato je da se RSA algoritam ne može koristiti za brzu enkripciju. Ispostavilo se da je najoptimiziranija softverska implementacija ovog algoritma mala brzina, a nekoliko hardverskih implementacija pruža brzine šifriranja od 10 do 100 Kbps (koristeći primarne brojeve reda veličine 2 7 , što se čini kao minimalna duljina koja osigurava potrebnu kriptografska snaga). To znači da je upotreba RSA sustava za blok enkripciju ograničena, iako njegova upotreba za distribuciju ključeva, autentifikaciju i generiranje digitalnog potpisa predstavlja zanimljive mogućnosti. Neki trenutno poznati kriptografski algoritmi s javnim ključem omogućuju veću brzinu šifriranja od RSA algoritma. Međutim, oni još nisu toliko popularni.

Sustavi šifriranja s povratnom spregom. Sustavi povratne enkripcije dolaze u različitim praktičnim verzijama. Kao iu sustavima blokovne šifre, poruke su podijeljene u određeni broj blokova koji se sastoje od T bitova, te za pretvaranje tih blokova u blokove šifriranog teksta, koji se također sastoje od T bit, koriste se posebne funkcije. Međutim, dok u blokovnoj šifri takva funkcija ovisi samo o ključu, u povratnoj šifri ona ovisi i o ključu i o jednom ili više prethodnih blokova šifriranog teksta. Ova opća definicija enkripcije zatvorene petlje uključuje, kao posebne slučajeve, veliki broj različitih tipova sustava u praksi.

Korištenje kriptosustava blok šifre s povratnom spregom daje niz važnih prednosti. Prvo i najvažnije je mogućnost njihove upotrebe za otkrivanje manipulacije porukama od strane aktivnih presretača. U ovom slučaju koristi se činjenica propagacije pogreške, kao i sposobnost takvih sustava da lako generiraju kod za provjeru autentičnosti poruke (MAC). Druga prednost je da STAK šifre koje se koriste umjesto blok šifri ne zahtijevaju početnu sinkronizaciju. To znači da ako je početak poruke izostavljen kada je primljena, onda se ostatak može uspješno dešifrirati (nakon uspješnog primanja sljedeće jedne za drugom t bit šifriranog teksta. Također imajte na umu da se sustavi šifriranja zatvorene petlje koriste ne samo za šifriranje poruka, već i za njihovu autentifikaciju.

Sustavi blokovne šifre s povratnom vezom karakteriziraju određene nedostatke. Glavna je propagacija pogreške, tj. jedan bit greške tijekom prijenosa može uzrokovati od 1 do sm + ja greške u dekodiranom tekstu. Dakle, zahtjev za povećanjem t za povećanje kriptografske snage, proturječi zahtjevima sustava koji se odnose na širenje pogreške. Drugi nedostatak je da je projektiranje i implementacija sustava šifriranja zatvorene petlje često teže nego za sustave šifriranja toka. Iako su različiti tipovi sustava šifriranja zatvorene petlje u širokoj upotrebi već mnogo godina, postoji vrlo malo namjenskih algoritama za takve sustave. U većini slučajeva, objavljeni algoritmi izvedeni su iz blok šifri koje su pretvorene za posebne primjene.

Prvi zaključak koji se može izvući iz provedene analize je da većina praktičnih kriptosustava koristi algoritme ili stream enkripcije ili povratne enkripcije. Većina kriptosustava stream šifriranja koristi algoritme za komercijalni sektor (uključujući algoritme u vlasništvu tvrtki ili pojedinačnih korisnika) ili tajne vladine algoritme. Ova situacija će se vjerojatno nastaviti i sljedećih godina.

Također je moguće da će se većina sustava šifriranja zatvorene petlje temeljiti na upotrebi blok šifri u posebnoj varijanti, posebno najpoznatije blok šifre DES. Što se tiče ostalih metoda šifriranja, može se reći da je, unatoč brzom rastu publikacija o kriptosustavima s javnim ključem, samo jedan od njih, RSA sustav, izdržao test vremena.

Ali algoritam ovog sustava povezan je s ozbiljnim ograničenjima implementacije i stoga nije prikladan za neke kriptografske aplikacije. Naravno, definitivno se može reći da su kriptosustavi s javnim ključem imali značajan utjecaj na tehnike šifriranja podataka. U sve većoj su upotrebi, uglavnom za generiranje digitalnih potpisa ili za upravljanje ključevima u konvencionalnim kriptosustavima (kao što je ključ za šifriranje).

Potencijalni korisnici kriptografije imaju priliku birati između tokovnih šifri i šifri s povratnom spregom (možda na temelju upotrebe blok šifri). Međutim, postoje određena područja primjene, primjerice financijske transakcije, gdje je moguće koristiti metode izravne blok enkripcije („elektronički šifarnik“). Izbor kriptoalgoritma uvelike ovisi o njegovoj namjeni. Neke informacije koje se mogu koristiti kao vodič pri odabiru vrste enkripcije prikazane su u tablici.

DES (Data Encryption Standard) algoritam za šifriranje podataka objavljen je 1977. i ostaje uobičajeni blok simetrični algoritam koji se koristi u komercijalnim sustavima zaštite informacija.

DES algoritam je izgrađen u skladu s metodologijom mreže Feistel i sastoji se od naizmjeničnog niza permutacija i supstitucija. DES algoritam šifrira 64-bitne blokove podataka pomoću 64-bitnog ključa, u kojem je 56 bitova značajno (preostalih 8 su bitovi za provjeru parnosti).

Proces enkripcije sastoji se od početne izmjene bitova 64-bitnog bloka, 16 ciklusa šifriranja (rundi) i, na kraju, konačne izmjene bitova (Slika 6.2).

Riža. 6.2.

Dešifriranje u DES-u je operacija obrnuta od šifriranja i izvodi se ponavljanjem operacija šifriranja obrnutim redoslijedom.

Glavne prednosti DES algoritma:

  • koristi se samo jedan 56-bitni ključ;
  • relativna jednostavnost algoritma osigurava veliku brzinu obrade;
  • nakon šifriranja poruke korištenjem jednog softverskog paketa, bilo koji drugi softverski paket koji je u skladu s DES algoritmom može se koristiti za dekriptiranje;
  • kriptografska snaga algoritma sasvim je dovoljna da osigura informacijsku sigurnost većine komercijalnih aplikacija.

Suvremena mikroprocesorska tehnologija omogućuje probijanje simetričnih blok šifri s ključem duljine 40 bita u prilično prihvatljivom vremenu. Za takvo hakiranje koristi se brute force metoda - totalno testiranje svih mogućih vrijednosti ključa (metoda "brute force"). Donedavno se DES smatrao relativno sigurnim algoritmom šifriranja.

Postoji mnogo načina za kombiniranje blok algoritama za dobivanje novih, robusnijih algoritama. Jedan od tih načina je višestruka enkripcija - koristeći blok algoritam više puta s različitim ključevima za šifriranje istog bloka otvorenog teksta. Kod trostruke enkripcije mogu se koristiti tri različita ključa.

Algoritam 3-DES (Triple DES - trostruki DES) koristi se u situacijama kada se smatra da je pouzdanost DES algoritma nedovoljna.

Danas se sve više koriste dva suvremena kriptootporna algoritma za šifriranje: domaći standard za šifriranje GOST 28147-89 i novi američki kripto standard - AES (Advanced Encryption Standard).

Standard šifriranja GOST 28147-89 namijenjen je hardverskoj i softverskoj implementaciji, zadovoljava kriptografske zahtjeve i ne nameće ograničenja na stupanj tajnosti zaštićenih informacija. Algoritam za šifriranje podataka definiran GOST 28147-89 je 64-bitni blok algoritam s 256-bitnim ključem.

Podaci koji se šifriraju podijeljeni su u 64-bitne blokove. Ovi blokovi su podijeljeni u dva podbloka. N x I N 2 32 bita svaki (Sl. 6.3). Podblok /V, obrađen na određeni način, nakon čega se njegova vrijednost dodaje vrijednosti podbloka N 2(zbrajanje se izvodi po modulu 2, odnosno primjenjuje se logička operacija XOR - “isključivo ili”), a zatim


Riža. 6.3.

podblokovi su zamijenjeni. Ova transformacija se izvodi određeni broj puta ("rundi") - 16 ili 32, ovisno o načinu rada algoritma.

U svakom krugu izvode se dvije operacije.

Prva operacija je nametanje ključa. Sadržaj podbloka /V, modulo 2 32 s 32-bitnim dijelom ključa K x. Potpuni ključ šifriranja predstavljen je kao spoj 32-bitnih podključeva: K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 . Jedan od tih potključeva koristi se u procesu šifriranja, ovisno o okruglom broju i načinu rada algoritma.

Druga operacija je zamjena stola. Nakon ključanja podjedinice N( je podijeljen 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 se tada po bitovima zakreće ulijevo za 11 bitova.

Zamjene stolova. Kutija za zamjenu s 5 okvira često se koristi u modernim algoritmima šifriranja, pa je vrijedno objasniti kako je takva operacija organizirana.

Supstitucijski blok 5-box sastoji se od osam zamjenskih čvorova (5-blokova zamjene) 5, S2,..., 5 8 sa 64 bitnom memorijom svaki. Dolazi u zamjenski blok S 32-bitni vektor je podijeljen u 8 uzastopnih 4-bitnih vektora, od kojih je svaki konvertiran u 4-bitni vektor pomoću odgovarajućeg zamjenskog čvora. Svaki zamjenski čvor može se predstaviti kao permutacijska tablica od 16 4-bitnih binarnih brojeva u rasponu 0000...1111. Ulazni vektor specificira adresu retka u tablici, a broj u tom retku je izlazni vektor. 4-bitni izlazni vektori se zatim sekvencijalno kombiniraju u 32-bitni vektor. Zamjenski čvorovi (tablice permutacija) su ključni elementi koji su zajednički za računalnu mrežu i rijetko se mijenjaju. Ovi zamjenski čvorovi moraju se držati u tajnosti.

Algoritam definiran GOST 28147-89 predviđa četiri načina rada: jednostavna zamjena, skaliranje, skaliranje s povratnom spregom I generiranje imitacijskih prefiksa. Oni koriste istu transformaciju enkripcije opisanu gore, ali budući da je svrha načina različita, ova transformacija se u svakom od njih provodi drugačije.

U načinu rada jednostavna zamjena za šifriranje svakog 64-bitnog bloka informacija izvode se gore opisana 32 kruga. U ovom slučaju, 32-bitni podključevi se koriste u sljedećem nizu:

K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 , K 0 ,/G, itd. - u krugovima od 1. do 24.;

K 7, K b, K 5, K 4, K 3, K 2, K x, K 0 - u rundama od 25 do 32.

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

K 0 , AG, K 2, K 3, K 4, K 5, K b, K 7 - u krugovima od 1 do 8;

K 7 , K 6 , K 5 , K 4 , K 3 , K 2 , K ( , K 0 , K 7 , K b i tako dalje - u krugovima od 9 do 32.

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

U gama mod svaki blok otvorenog teksta bit-wise dodaje modulo 2 na 64-bitni šifrirani gama blok. Gama šifra - je poseban niz koji proizlazi iz određenih operacija s registrima N1 I S 2(Sl. 6.9):

  • 1. U matične knjige N^ I 1U 2 njihovo početno punjenje je zapisano - 64-bitna vrijednost koja se naziva poruka sinkronizacije.
  • 2. Sadržaj registara je šifriran N1 I M 2(u ovom slučaju sinkronizirati poruke) u načinu jednostavne zamjene.
  • 3. Registrirajte sadržaj N^ zbraja se modulo (2 32 - 1) s konstantom C, = 2 24 + 2 16 + 2 8 + 2 4 , a rezultat zbrajanja upisuje se u registar N1 .
  • 4. Sadržaj registra CU 2 zbraja se modulo 232 uz konstantu C 2 = 2 24 + 2 16 + 2 8 + 1, a rezultat zbrajanja upisuje se u registar CU 2.
  • 5. Sadržaj upisnika N, I S 2 izlazi kao 64-bitni šifrirani gama blok (u ovom slučaju N^ i CU 2 čine prvi blok ljestvice).

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

Za dešifriranje, gama se generira na sličan način, a zatim se operacija X (X) ponovno primjenjuje na bitove šifrovanog teksta i gama. Budući da je ova operacija reverzibilna, u slučaju ispravno generirane gama, izvorni dobiva se tekst (tablica 6.1).

Tablica 6.1.Šifriranje i dešifriranje u gama modu

Da bi se razvio raspon šifri potreban za dešifriranje, korisnik koji dešifrira kriptogram mora imati isti ključ i istu vrijednost sinkronističke poruke koji su korišteni kada su informacije šifrirane. U suprotnom, nećete moći dobiti izvorni tekst iz šifriranog.

U većini implementacija algoritma GOST 28147-89 sinkronizacija nije tajna, ali postoje sustavi u kojima je sinkronizacija 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 sinkronističke poruke, što se također može smatrati ključnim elementom.

U povratni gama način za popunjavanje registara L", i ÍU 2, počevši od 2. bloka, ne koristi se prethodni gama blok, već rezultat šifriranja prethodnog bloka otvorenog teksta (Sl. 6.4). Prvi blok u ovom načinu rada generira se u potpunosti sličan prethodnom.

S obzirom na način rada generiranje imitacijskih prefiksa, treba definirati pojam objekta generiranja. Prefiks imitacije - je kriptografski kontrolni zbroj izračunat pomoću

Riža. 6.4.

ključ za šifriranje i dizajniran za provjeru integriteta poruka. Prilikom generiranja prefiksa izvode se sljedeće operacije: prvi 64-bitni blok informacijskog niza, za koji se izračunava prefiks, upisuje se u registre ^ i A^ 2 i šifrira u skraćenom načinu jednostavne zamjene ( izvodi se prvih 16 kola od 32). Dobiveni rezultat zbraja se modulo 2 sa sljedećim blokom informacija, spremajući rezultat u A", i S 2 .

Ciklus se ponavlja do posljednjeg bloka informacija. Rezultirajući 64-bitni sadržaj registara A^ i A^ 2 ili njegov dio i naziva se stopa imitacije. Veličina imitacijskog prefiksa odabire se na temelju potrebne pouzdanosti poruka: s duljinom imitacijskog prefiksa G bit, vjerojatnost da će promjena poruke proći nezapaženo je 2 ~ g.

Najčešće se koristi 32-bitna imitacija, odnosno polovica sadržaja registara. Ovo je dovoljno, budući da je, kao i svaki kontrolni zbroj, prefiks 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 neka informacija šifrirana i šalje se zajedno sa šifriranim tekstom. Nakon dešifriranja izračunava se nova vrijednost prefiksa imitacije koja se uspoređuje s poslanom. Ako se vrijednosti ne podudaraju, tada je šifrirani tekst bio iskrivljen tijekom prijenosa ili su korišteni pogreš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 je vrlo stabilan algoritam - 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. Pri korištenju tajne poruke sinkronizacije efektivna duljina ključa povećava se na 320 bita, a tajna supstitucijske tablice dodaje dodatne bitove. Osim toga, kriptografska snaga ovisi o broju krugova transformacije, koji bi prema GOST 28147-89 trebao biti 32 (puni učinak disperzije ulaznih podataka postiže se nakon 8 krugova).

AES standard enkripcije. Godine 1997. američki institut za standarde NIST (National Institute of Standards & Technology) raspisao je natječaj za novi standard za simetrični kriptografski algoritam pod nazivom AES (Advanced Encryption Standard). Za njegov razvoj bili su povezani najveći centri kriptologije u cijelom svijetu. Pobjednik ovog natjecanja zapravo je postao globalni kripto standard za sljedećih 10-20 godina.

Pred kriptoalgoritme - kandidate za novi AES standard postavljeni su sljedeći zahtjevi:

  • algoritam mora biti simetričan;
  • algoritam mora biti blok šifra;
  • algoritam mora imati duljinu bloka od 128 bita i podržavati tri duljine ključa: 128, 192 i 256 bita.

Dodatno, programerima kriptoalgoritama preporučeno je da:

  • koristiti operacije koje se lako implementiraju iu hardveru (u mikročipovima) iu softveru (na osobnim računalima i poslužiteljima);
  • fokus na 32-bitne procesore;
  • nemojte nepotrebno komplicirati strukturu šifre, tako da svi zainteresirani mogu samostalno provesti neovisnu kriptoanalizu algoritma i uvjeriti se da isti ne sadrži nedokumentirane značajke.

Rezultati natjecanja sumirani su u listopadu 2000. - Rijndaelov algoritam, koji su razvila dva kriptografa iz Belgije, Vincent Rijmen i Joan Daemen, proglašen je pobjednikom. Rijndaelov algoritam postao je novi AES standard šifriranja podataka.

AES algoritam razlikuje se od većine poznatih algoritama simetrične enkripcije, čija se struktura naziva "Feistelova mreža" i slična je ruskom GOST 28147-89. Za razliku od domaćeg standarda šifriranja, AES algoritam svaki blok obrađenih podataka predstavlja kao dvodimenzionalni niz bajtova veličine 4x4, 4x6 ili 4x8, ovisno o zadanoj duljini bloka (dopušteno je nekoliko fiksnih veličina bloka šifriranih informacija). Nadalje, u odgovarajućim fazama, transformacije se izvode ili na neovisnim stupcima, ili na neovisnim redovima, ili općenito na pojedinačnim bajtovima.

AES algoritam se sastoji od određenog broja krugova (od 10 do 14 - ovisi o veličini bloka i duljini ključa) i izvodi četiri transformacije:

BS (ByteSub) - zamjena tablice svakog bajta niza (Sl. 6.5);

SR (ShiftRow) - pomak reda niza (slika 6.6). Ovom operacijom prvi redak ostaje nepromijenjen, a ostali se ciklički bajt po bajt pomiču ulijevo za fiksni broj bajtova, ovisno o veličini niza. Na primjer, za niz 4x4, redovi 2, 3 i 4 su pomaknuti za 1, 2 i 3 bajta, redom;

MS (MixColumn) - operacija na neovisnim stupcima niza (slika 6.7), kada se svaki stupac množi s fiksnom matricom c (x) prema određenom pravilu;

AK (AddRoundKey) - dodavanje ključa. Svaki bit niza dodaje se modulo 2 odgovarajućem bitu okruglog ključa, koji se zauzvrat izračunava na određeni način iz ključa za šifriranje (slika 6.8).


Riža. 6.5.

za obradu svakog bajta niza stanja

Riža. 6.6. Transformacija SR (ShiftRow) kruži kroz zadnja tri

redaka u polju State

d 2 j

do oz

do zz

Riža. 6.8. AC transformacija (AddRoundKey) izvodi XOR zbrajanje svakog

stupac polja State s riječju iz skupa ključeva

Ove pretvorbe djeluju na polje State, kojem se obraća pokazivač "stanje". Transformacija AddRoundKey koristi dodatni pokazivač za adresiranje okruglog ključa.

BS (ByteSub) transformacija je nelinearna zamjena bajtova koja radi neovisno o svakom bajtu niza stanja pomoću tablice zamjene iS-boxa.

U svakom krugu (uz neke iznimke), sljedeće se izvodi redom na šifriranim podacima.

transformacije (sl. 6.9). Iznimke se odnose na prvi i zadnji krug: prije prvog kruga radi se dodatna A K operacija, au zadnjem krugu nema MS.

Riža. 6.9.

Kao rezultat toga, redoslijed operacija za šifriranje izgleda ovako:

AK, (BS, SR, MC, AK) (ponovljeno R- 1 put), BS, SR, AK.

Broj rundi enkripcije R u AES algoritmu je promjenjiv (10, 12 ili 14 krugova) i ovisi o veličini bloka i ključu za šifriranje (također postoji nekoliko fiksnih veličina za ključ).

Dešifriranje se izvodi pomoću sljedećih inverznih operacija. Tablica je obrnuta i zamjena tablice se izvodi na inverznoj tablici (u odnosu na onu koja se koristi u enkripciji). Operacija inverzna SR je kružni pomak redova udesno, a ne ulijevo. Inverzna operacija za MS je množenje po istim pravilima s drugom matricom d(x), zadovoljavajući uvjet c(x) d(x) = 1. Dodavanje ključa AK je inverzno samom sebi, budući da koristi samo operaciju XOR. Ove obrnute operacije primjenjuju se kod dešifriranja obrnutim redoslijedom od onoga koji se koristi za šifriranje.

Sve transformacije u AES šifri imaju strogo matematičko opravdanje. Sama struktura i redoslijed operacija omogućuju učinkovito izvršavanje ovog algoritma i na 8-bitnim i na 32-bitnim procesorima. Struktura algoritma uključuje mogućnost paralelnog izvođenja nekih operacija, što može povećati brzinu šifriranja na višeprocesorskim radnim stanicama za 4 puta.

AES algoritam je postao novi standard za šifriranje podataka zbog brojnih prednosti u odnosu na druge algoritme. Prije svega, pruža brzu enkripciju na svim platformama: kako u softverskoj tako iu hardverskoj implementaciji. Osim toga, zahtjevi za resursima za njegov rad su minimalni, što je važno kada se koristi u uređajima s ograničenim računalnim mogućnostima.

Jedini nedostatak AES algoritma je njegova nekonvencionalna shema. Činjenica je da su svojstva algoritama temeljenih na "Feistelovoj mreži" dobro proučena, a AES, nasuprot tome, može sadržavati skrivene ranjivosti koje se mogu otkriti tek nakon što prođe neko vrijeme od početka njegove široke distribucije.

Drugi simetrični blok kriptoalgoritmi također se koriste za šifriranje podataka.

Glavni načini rada bloka su simetrični

algoritam

Većina blok simetričnih kripto algoritama izravno pretvara 64-bitni ulaz otvorenog teksta u 64-bitni izlaz šifriranog teksta, ali podaci su rijetko ograničeni na 64 bita.

Za korištenje blok simetričnog algoritma za rješavanje različitih kriptografskih problema razvijena su četiri načina rada:

  • elektronički šifrarnik EU B (Electronic Code Book);
  • ulančavanje CBC blokova šifri (Cipher Block Chaining);
  • povratna informacija šifriranog teksta CFB (Cipher Feed Back);
  • povratna informacija o izlazu OFB (Output Feed Back).

Ovi načini rada izvorno su razvijeni za DES blok algoritam, ali drugi blok kriptalgoritmi mogu raditi u bilo kojem od ovih načina.