Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • U kontaktu sa
  • Šifriranje korištenjem des standarda. DES šema enkripcije

Šifriranje korištenjem des standarda. DES šema enkripcije

Koji ANSI naziva DEA (Algoritam šifrovanja podataka) algoritam za šifrovanje podataka, a ISO - DEA-1, postao je svetski standard za 20 godina. Tokom godina svog postojanja, izdržao je navalu raznih napada i, uz određena ograničenja, i dalje se smatra kripto otpornim.

DES je blok šifra koja šifrira podatke u 64-bitne blokove. 64-bitni blok otvorenog teksta se unosi sa jednog kraja algoritma, a 64-bitni blok šifrovanog teksta izlazi sa drugog kraja. DES je simetrični algoritam: Isti algoritam i ključ se koriste za šifriranje i dešifriranje (osim malih razlika u korištenju ključa). Dužina ključa je 56 bita. (Ključ je obično predstavljen kao 64-bitni broj, ali svaki osmi bit se koristi za paritet i zanemaruje se. Paritetni bitovi su najmanji značajni bitovi bajtova ključa.) Ključ, koji može biti bilo koji 56-bitni broj, može se promijeniti u bilo kojem trenutku.

Kriptografska snaga je u potpunosti određena ključem. Osnovni građevni blok DES-a je kombinacija supstitucija i permutacija. DES se sastoji od 16 ciklusa.

Opšti pogled na ciklus transformacije:

Ako su L i i R i lijeva i desna polovina koje su rezultat i-te iteracije, K i je 48-bitni ključ za petlju i, a f je funkcija koja izvodi sve zamjene, permutacije i XOR-ove s ključem, tada jedna petlja konverzije može se zamisliti kao:

Uzimajući u obzir supstituciju F i (*) i permutaciju T (*), ciklus transformacije se može predstaviti kao što je to urađeno na Sl.

Može se vidjeti da je svaki DES ciklus složena šifra sa dvije uzastopne transformacije - supstitucijom F i (*) i permutacijom T (*) (osim posljednjeg, šesnaestog ciklusa, gdje je permutacija izostavljena).

Zamjena:

(L i , R i) = (R i −1 , L i −1) ⊕ f (R i −1 , K)

je involucija jer

F i (F i (L i −1 , R i −1)) = F i (R i −1 , L i −1) ⊕ (f (R i −1 , K i))) = (R i − 1 , L i −1 ⊕(f (R i −1 , K i)) ⊕ (f (R i −1, K i))) = (L i −1, R i −1)

Zamjena

T (L i ′, R i ′) = (R i ′, L i ′),

je takođe involucija, pošto

T (T (L i ′, R i ′)) = T (R i ′, L i ′) = L i ′, R i ′

Ako početnu i konačnu permutaciju označimo kao (IP) i (IP) - 1, tada direktna DES transformacija (šifriranje) implementira funkciju:

DES = (IP) F 1 TF 2 T ... F 15 TF 16 (IP) − 1 ,

a inverzna DES transformacija (dešifriranje) implementira funkciju:

DES - 1 = (IP) -1 F 16 TF 15 T ... F 2 TF 1 (IP).

Dakle, DES je Feistelova šifra i dizajnirana je da radi korisno svojstvo: Isti algoritam se koristi za šifriranje i dešifriranje. Jedina razlika je u tome što se ključevi moraju koristiti obrnutim redosledom.


Odnosno, ako su ključevi K 1 , K 2 , K 3 , ..., K 16 korišteni za šifriranje, tada će ključevi za dešifriranje biti K 16 , K 15 , K 14 , ..., K 1 . Algoritam koristi samo standardnu ​​aritmetiku 64-bitnih brojeva i logičke operacije, tako da je lako implementirati u hardveru.

DES radi na 64-bitnom bloku otvorenog teksta. Nakon početne permutacije, blok se dijeli na desnu i lijevu polovinu od po 32 bita. Zatim se izvodi 16 transformacija (funkcija f), u kojima se podaci kombinuju sa ključem. Nakon šesnaestog ciklusa, desna i lijeva polovina se kombinuju, a algoritam se završava konačnom permutacijom (obrnutom od originalne). U svakom ciklusu (vidi sliku), bitovi ključa se pomiču, a zatim se bira 48 bitova od 56 bitova ključa. Desna polovina podataka je povećana na 48 bita raširenom permutacijom, XOR je obrađena sa 48 bita pomaknutog i permutiranog ključa, prošla kroz 8 S-kutija da bi se formirala 32 nova bita i ponovo permutirana. Ove četiri operacije izvodi funkcija f.

Rezultat f se zatim kombinuje sa lijevom polovinom koristeći drugi XOR. Kao rezultat ovih radnji, pojavljuje se nova desna polovina, a stara desna postaje nova lijeva polovina. Ove radnje se ponavljaju 16 puta, formirajući 16 DES ciklusa.

Ruski standard - GOST 28147-89

GOST 28147-89 je blok šifra sa 256-bitnim ključem i 32 ciklusa konverzije, koja radi na 64-bitnim blokovima. Koristi se i kripto algoritam dodatni ključ, o čemu se govori u nastavku. Za enkripciju običan tekst prvo se dijeli na lijevu i desnu polovinu L i R. U i-tom ciklusu koristi se potključ K i:

L i = R i −1 ,
R i = L i −1 ⊕ (f (R i −1 , K i)).

Funkcija f se implementira na sljedeći način. Prvo, desna polovina i i-ti potključ se dodaju po modulu 2 32 . Rezultat je podijeljen u osam 4-bitnih podsekvencija, od kojih se svaka dovodi na ulaz svog S-boxa. GOST koristi osam različitih S-kutija, prva 4 bita idu u prvu S-kutiju, druga 4 bita u drugu S-kutiju, itd. Svaki S-kutija je permutacija brojeva od 0 do 15. Na primjer, S-box može izgledati ovako: 7,10,2,4,15,9,0,3,6,12,5,13,1,8,11. U ovom slučaju, ako je ulaz S-kutije 0, onda je izlaz 7. Ako je ulaz 1, izlaz je 10, itd. Svih osam S-kutija su različiti, oni su zapravo dodatni ključni materijal. Izlazi svih osam S-kutija se kombinuju u 32-bitnu reč, a zatim se čitava reč rotira ulevo za 11 bita. Konačno, rezultat je XOR sa lijevom polovinom, što rezultira novom desnom polovinom, a desna polovina postaje nova lijeva polovina. Za generiranje potključeva, originalni 256-bitni ključ je podijeljen u osam 32-bitnih blokova: k 1 , k 2 , …, k 8 . Svaki ciklus koristi svoj vlastiti potključ. Dešifriranje se izvodi na isti način kao i šifriranje, ali je redoslijed potključeva k i obrnut. Standard ne definiše kako se S-kutije generišu.

Glavne razlike između DES-a i GOST-a

Glavne razlike između DES-a i GOST-a su sljedeće:

  • DES koristi složenu proceduru za generiranje potključeva iz ključeva. U GOST-u je ova procedura vrlo jednostavna;
  • DES ima 56-bitni ključ, dok GOST ima 256-bitni ključ. Ako dodamo tajne permutacije S-kutija, onda će ukupna količina GOST tajnih informacija biti približno 610 bita;
  • DES S-kutije imaju 6-bitne ulaze i 4-bitne izlaze, a GOST S-kutije imaju 4-bitne ulaze i izlaze. Oba algoritma koriste osam S-kutija, ali veličina GOST S-kutije je četvrtina veličine DES S-kutije;
  • DES koristi nepravilne permutacije, nazvane P-blok, a GOST koristi 11-bitni ciklički pomak ulijevo;
  • u DES-u ima 16 ciklusa, au GOST-u - 32.

Napad snage na GOST je apsolutno beznadežan. GOST koristi 256-bitni ključ, a ako uzmete u obzir tajne S-kutije, tada će dužina ključa biti još veća. Čini se da je GOST otporniji na diferencijalnu i linearnu kriptoanalizu od DES-a. Iako nasumične GOST S-kutije, uz određeni izbor, ne garantuju visoku kriptografsku snagu u poređenju sa fiksnim DES S-kutijama, njihova tajnost povećava otpornost GOST-a na diferencijalnu i linearnu kriptoanalizu. Pored toga, efikasnost ovih kriptoanalitičkih metoda zavisi od broja ciklusa konverzije – što je više ciklusa, to je teža kriptoanaliza. GOST koristi dvostruko više ciklusa nego DES, što može dovesti do neuspjeha diferencijalne i linearne kriptoanalize.

GOST ne koristi permutaciju proširenja koja postoji u DES-u. Uklanjanje ove permutacije iz DES-a slabi je smanjenjem efekta lavine; razumno je pretpostaviti da odsustvo takve operacije u GOST-u ima negativan učinak na njegovu kriptografsku snagu. Sa stanovišta kriptografske snage, operacija aritmetičkog sabiranja koja se koristi u GOST-u nije gora od operacije XOR u DES-u.

Glavna razlika je upotreba cikličkog pomaka u GOST-u umjesto permutacije. Zamjena DES-a povećava efekat lavine. U GOST-u, promjena jednog ulaznog bita utječe na jednu S-kutiju jednog ciklusa konverzije, koja zatim utječe na dva S-kutija sljedećeg ciklusa, zatim tri bloka sljedećeg ciklusa, itd. Potrebno je osam ciklusa pre nego što promena jednog ulaznog bita utiče na svaki bit rezultata; u DES-u, ovo traje samo pet ciklusa. Međutim, GOST se sastoji od 32 ciklusa, a DES samo 16.

Programeri GOST-a pokušali su postići ravnotežu između kriptografske snage i efikasnosti. Na osnovu Feistelovog dizajna, razvili su kriptalgoritam koji je pogodniji za implementaciju softvera od DES-a. Da bi se poboljšala kriptografska snaga, uveden je ekstra dug ključ, a broj ciklusa je udvostručen. Međutim, ostaje otvoreno pitanje da li su napori programera rezultirali stvaranjem više kriptografskog algoritma od DES-a.

Vorobieva E., Lukyanova A.

Prošlo je više od 30 godina od usvajanja DES algoritma kao američkog standarda za šifriranje. DES je algoritam za šifrovanje sa najbogatijom i najzanimljivijom istorijom.

Istorijat stvaranja algoritma

Jedan od najpoznatijih kriptologa na svijetu, Bruce Schneier, u svojoj poznatoj knjizi Primijenjena kriptografija, na ovaj je način opisao probleme korisnika alata za sigurnost informacija početkom 70-ih. 20. vek (naravno mi pričamo o korisnicima s druge strane željezne zavjese):

Nije postojao ni opšteprihvaćeni standard za šifrovanje podataka, niti jednostavno široko korišćeni algoritmi bezbednosti informacija, tako da nije bilo pitanja o kompatibilnosti između različitih softvera ili hardvera za šifrovanje;

Gotovo svaki alat za šifriranje bio je “crna kutija” s prilično nejasnim sadržajem: koji se algoritam šifriranja koristi, koliko je kriptografski jak, da li je ispravno implementiran, da li su ključevi za šifriranje kreirani, pohranjeni, korišteni ispravno, da li su ih programeri ubacili u alatu? nedokumentovane karakteristike itd. - sve ovo je veoma važna informacija za veliku većinu kupaca kriptografskim sredstvima bio nedostupan.

Za ovaj problem se pobrinuo Nacionalni biro za standarde (NBS) SAD. Kao rezultat toga, 1973. godine objavljen je prvi otvoreni konkurs za standard šifriranja. NBS je bila spremna da ispita algoritme kandidata koji ispunjavaju sledeće kriterijume za odabir standarda:

Algoritam mora biti kriptografski jak;

Algoritam mora biti brz;

Struktura algoritma treba da bude jasna i precizna;

Jačina enkripcije treba da zavisi samo od ključa, sam algoritam ne bi trebalo da bude tajan;

Algoritam bi trebao biti lako primjenjiv u različite svrhe;

Algoritam bi trebao biti lako implementiran u hardver na postojećoj bazi elemenata.

Pretpostavljalo se da će zainteresovane organizacije ili stručnjaci poslati NBS detaljne specifikacije algoritama, dovoljne za njihovu implementaciju, odnosno bez ikakvih "belih tačaka". Pretpostavljalo se i da će algoritam biti sertifikovan od strane NBS za opštu upotrebu, sa njega će biti uklonjena sva patentna i izvozna ograničenja, usled čega bi takav standard morao da reši sve probleme kompatibilnosti alata za šifrovanje. Pored toga, NBS je preuzela i funkcije sertifikacije alata za šifrovanje - odnosno "crne kutije" trebale su neopozivo da postanu stvar prošlosti.

U stvari, postojao je samo jedan aplikant algoritam: to je bio Luciferov algoritam šifriranja koji je razvio CMM (vidi odjeljak 3.31). Tokom dvije godine algoritam je usavršavan:

Prvo, NBS je zajedno sa Agencijom za nacionalnu bezbednost (NSA, NSA - National Security Agency) Sjedinjenih Država izvršila detaljnu analizu algoritma, što je rezultiralo njegovom prilično značajnom obradom;

Drugo, komentari i kritike svih zainteresovanih organizacija i pojedinaca prihvaćeni su na razmatranje.

Kao rezultat zajedničkog napora IBM-a, NBS-a i NSA-e, u januaru 1977. DES je objavljen kao američki standard ( najnoviju verziju ovog standarda - u dokumentu) o algoritmu za šifrovanje podataka (osim informacija visokog stepena tajnosti). DES algoritam je patentirao UM, ali je NBS dobila, u stvari, besplatnu i neograničenu licencu za korišćenje ovaj algoritam. Alternativno, ali manje često korišteno ime za algoritam je DEA (Algoritam šifriranja podataka).

Glavne karakteristike i struktura algoritma

DES algoritam šifrira informacije u blokovima od 64 bita koristeći 64-bitni ključ za šifriranje koji koristi samo 56 bita (procedura proširenja ključa je detaljno opisana u nastavku).

Šifrovanje informacija se izvodi na sledeći način (slika 3.56):

1. Početna permutacija se izvodi preko 64-bitnog bloka podataka prema tabeli. 3.16.

Tabela 3.16

Tabela se tumači na sljedeći način: vrijednost ulaznog bita 58 (u daljem tekstu svi bitovi su numerisani s lijeva na desno, počevši od 1) stavlja se u izlazni bit 1, vrijednost bita 50 stavlja se u bit 2, itd.



2. Rezultat prethodne operacije je podijeljen u 2 podbloka od 32 bita (per

pirinač. 3,56 označeno A 0 i B 0), na kojima je napravljeno 16 krugova

sljedeće transformacije:

Kao što je gore spomenuto, od 64-bitnog ključa za šifriranje, DES algoritam koristi samo 56 bita. Svaki 8. bit se odbacuje i ne koristi se ni na koji način u algoritmu, a upotreba preostalih bitova šifrirnog ključa u implementacijama DES algoritma nije ograničena standardom. Procedura za izdvajanje 56 značajnih bitova 64-bitnog ključa na sl. 3.59 je označeno kao E. Pored ekstrakcije, ovu proceduru također izvodi permutaciju ključnih bitova prema tabeli. 3.19 i 3.20.


Tabela 3.19

Tabela 3.20


Kao rezultat permutacije formiraju se dvije 28-bitne vrijednosti C i D. Tabela 3.19 definira izbor ključnih bitova za C, tabela. 3.20 - for D.

Zatim se izvodi 16 rundi transformacija, od kojih svaka daje jedan od kružnih ključeva K t . U svakom krugu postupka proširenja ključa izvode se sljedeće radnje:

1. Trenutne vrijednosti C i D ciklički pomaknuti ulijevo varijabilni broj bits P. Za krugove 1, 2, 9 i 16 P= 1, preostale runde se rotiraju za 2 bita.

2. Sa i D se kombinuju u 56-bitnu vrednost, na koju se primenjuje permutacija kompresije CP, što rezultira 48-bitnim okruglim ključem K (. Permutacija kompresije se izvodi prema tabeli 3.21.

Tabela 3.21

Prilikom dešifriranja podataka možete koristiti istu proceduru proširenja ključa, ali primijenite okrugle ključeve obrnutim redoslijedom. Postoji još jedna opcija: u svakoj rundi postupka proširenja ključa, umjesto kružnog pomicanja ulijevo, izvršite kružni pomak udesno za n bita, gdje je rc' = 0 za prvi krug, a '=1 za krug 2 , 9, 16 i n = 2 za preostale runde . Takav postupak proširenja ključa će odmah dati okrugle ključeve potrebne za dešifriranje.

Vrijedi reći da se mogućnost izvođenja proširenja ključa u hodu (posebno ako ova mogućnost postoji i tijekom enkripcije i dešifriranja) smatra prednošću algoritama za šifriranje, jer se u ovom slučaju proširenje ključa može izvršiti paralelno s šifriranjem, a ne gubiti memorija za pohranjivanje drugih ključeva.rundova osim trenutnog.

  • tutorial

Hej %username%!
Mnogi ljudi znaju da je zadani standard na terenu simetrično šifrovanje dugo vremena razmatran je DES algoritam. Prvi uspješan napad na ovaj neuništivi algoritam objavljen je 1993. godine, 16 godina nakon što je usvojen kao standard. Metoda koju je autor nazvao linearnom kriptoanalizom, u prisustvu 2 47 parova običan/šifrirani tekst, omogućava otvaranje tajnog ključa DES šifre u 2 43 operacije.
U nastavku ću pokušati sumirati glavne tačke ovog napada.

Linearna kriptoanaliza

Linearna kriptoanaliza je posebna vrsta napada na simetrične šifre, čiji je cilj oporavak nepoznatog ključa za šifriranje, od poznatog otvorene poruke i njihovi odgovarajući šifrirani tekstovi.

AT opšti slučaj napad zasnovan na linearnoj kriptoanalizi svodi se na sledeće uslove. Napadač ima velika količina parovi otvoreni tekst/šifrovani tekst dobijeni korišćenjem istog ključa za šifrovanje K. Cilj napadača je da povrati deo ili ceo ključ K.

Prije svega, napadač pregleda šifru i pronalazi tzv. statistički analog, tj. jednadžba sljedećeg oblika, koja vrijedi s vjerovatnoćom P ≠ 1/2 za proizvoljan par javni/privatni tekst i fiksni ključ:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
gdje su P n , C n , K n n-ti bitovi teksta, šifrovanog teksta i ključa.
Nakon što se takva jednadžba pronađe, napadač može povratiti 1 bit informacije o ključu koristeći sljedeći algoritam

Algoritam 1
Neka je T broj tekstova za koje je lijeva strana jednačine (1) tada 0
Ako je T>N/2, gdje je N broj poznatih otvorenih tekstova.
Pretpostavimo da je K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (kada je P>1/2) ili 1 (kada je P<1/2).
Inače
Pretpostavimo da je K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (kada je P>1/2) ili 0 (kada je P<1/2).
Očigledno, uspjeh algoritma direktno zavisi od vrijednosti |P-1/2| i o broju dostupnih parova otvorenog/privatnog teksta N. Što se vjerovatnoća P jednakosti (1) više razlikuje od 1/2, to je manji broj otvorenih tekstova N potreban za napad.

Dva su problema koja treba riješiti za uspješnu implementaciju napada:

  • Kako pronaći efektivnu jednačinu oblika (1).
  • Kako dobiti više od jednog bita informacija o ključu koristeći takvu jednačinu.
Razmotrite rješenje ovih problema koristeći DES šifru kao primjer.

Opis DES-a

Ali prvo, hajde da ukratko opišemo kako algoritam funkcioniše. Dosta je rečeno o DES-u. Potpuni opis šifre možete pronaći na Wikipediji. Međutim, da bismo dalje objasnili napad, potrebno nam je nekoliko definicija koje je najbolje uvesti unaprijed.

Dakle, DES je blok šifra zasnovana na Feistelovoj mreži. Šifra ima veličinu bloka od 64 bita i veličinu ključa od 56 bita. Razmotrimo šemu šifriranja DES algoritma.

Kao što se može vidjeti sa slike, sljedeće operacije se izvode nad tekstom tokom šifriranja:

  1. Početna zamjena bitova. U ovoj fazi, bitovi ulaznog bloka se miješaju određenim redoslijedom.
  2. Nakon toga, promiješani bitovi se dijele na dvije polovine, koje se unose na ulaz Feistelove funkcije. Za standardni DES, Feistelova mreža uključuje 16 krugova, ali postoje i druge varijante algoritma.
  3. Dva bloka dobijena u zadnjoj rundi transformacije se kombinuju i druga permutacija se izvodi na rezultujućem bloku.

U svakom krugu Feistelove mreže, najmanje značajna 32 bita poruke prolaze kroz funkciju f:

Razmotrite operacije izvedene u ovoj fazi:

  1. Ulazni blok prolazi kroz funkciju proširenja E, koja pretvara 32-bitni blok u 48-bitni blok.
  2. Rezultirajući blok se dodaje okruglom ključu K i .
  3. Rezultat prethodnog koraka je podijeljen na 8 blokova od po 6 bitova.
  4. Svaki od rezultirajućih blokova B i prolazi kroz zamjensku funkciju S-Box i , koja zamjenjuje 6-bitnu sekvencu sa 4-bitnim blokom.
  5. Rezultirajući 32-bitni blok prolazi kroz permutaciju P i vraća se kao rezultat funkcije f.

Od najvećeg interesa, sa stanovišta kriptoanalize šifre, za nas su S blokovi, dizajnirani da sakriju vezu između ulaznih i izlaznih podataka funkcije f. Da bismo uspješno napali DES, prvo konstruiramo statističke parnjake za svaki od S-kutija, a zatim ih proširujemo na cijelu šifru.

Analiza S blokova

Svaki S-box uzima 6-bitnu sekvencu kao ulaz, a fiksna 4-bitna vrijednost se vraća za svaku takvu sekvencu. One. Postoje ukupno 64 ulazne i izlazne opcije. Naš zadatak je da pokažemo odnos između ulaznih i izlaznih podataka S blokova. Na primjer, za treći S-box DES šifre, 3. bit ulazne sekvence jednak je 3. bitu izlazne sekvence u 38 slučajeva od 64. Stoga smo pronašli sljedeći statistički analog za treći S -kutija:
S 3 (x) = x, što je ispunjeno sa vjerovatnoćom P=38/64.
Obje strane jednačine predstavljaju 1 bit informacije. Dakle, kada bi lijevi i desni dio bili nezavisni jedan od drugog, jednačina bi morala biti ispunjena s vjerovatnoćom jednakom 1/2. Dakle, upravo smo demonstrirali odnos između ulaza i izlaza 3. S-kutije DES algoritma.

Razmislite kako možete pronaći statistički analog S-kutije u općem slučaju.

Za S-box S a , 1 ≤ α ≤ 63 i 1 ≤ β ≤ 15, vrijednost NS a (α, β) opisuje koliko puta od 64 moguća XOR-a ulaznih bitova S a preklapaju se na bitove α jednaki su XOR-u izlaznih bitova prekrivenih na bitove β, tj.:
gdje je simbol logičko I.
Vrijednosti α i β za koje se NS a (α, β) najviše razlikuje od 32 opisuju najefikasniji statistički analog S-boxa S a .

Najefikasniji analog je pronađen u 5. S-kutiji DES šifre za α = 16 i β = 15 NS 5 (16, 15)=12. To znači da je tačna sljedeća jednačina: Z=Y ⊕ Y ⊕ Y ⊕ Y, gdje je Z ulazna sekvenca S-kutije, a Y izlazna sekvenca.
Ili uzimajući u obzir činjenicu da se u DES algoritmu, prije ulaska u S-box, podaci dodaju po modulu 2 okruglim ključem, tj. Z = X ⊕ K dobijamo
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, gdje su X i Y ulazni i izlazni podaci funkcije f bez permutacija.
Rezultirajuća jednačina se izvršava u svim rundama DES algoritma sa istom vjerovatnoćom P=12/64.
U sljedećoj tabeli su navedeni efektivni, tj. koji imaju najveće odstupanje od P=1/2, statistički analogi za svaki s-blok DES algoritma.

Izgradnja statističkih analoga za višestruke DES runde

Hajde sada da pokažemo kako se mogu kombinovati statistički analogi nekoliko rundi DES-a i, kao rezultat, dobiti statistički analog za čitavu šifru.
Da biste to učinili, razmotrite verziju algoritma u tri kruga:

Primijenimo efikasan statistički analog 5. s-kutije za izračunavanje određenih bitova vrijednosti X(2).
Znamo da sa vjerovatnoćom 12/64, f-funkcija zadovoljava jednakost X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, gdje je X drugi ulazni bit 5. S-kutije, to je u suštini 26. bit sekvence dobijene nakon proširenja ulaznih bitova. Analizirajući funkciju proširenja, može se ustanoviti da se 17. bit X(1) niza ispostavi da je umjesto bita 26.
Slično, Y,…, Y su u suštini 17., 18., 19. i 20. bitovi niza dobijenih prije P permutacije. Ispitivanjem P permutacije nalazimo da su Y,…, Y bitovi zapravo bitovi Y(1 ), Y(1), Y(1), Y(1).
Ključni bit K uključen u jednačine je 26. bit potključa prvog kruga K1, a zatim statistički pandan ima sljedeći oblik:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
shodno tome, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) sa vjerovatnoćom P=12/64.
Znajući 3, 8, 14, 25 bita Y(1) sekvence, možete pronaći 3, 8, 14, 25 bita X(2) niza:
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ili uzimajući u obzir jednačinu (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) sa vjerovatnoćom 12/64.

Nađimo sličan izraz koristeći posljednju rundu. Ovaj put imamo jednačinu
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Jer
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = SL ⊕ SL ⊕ SL ⊕ SL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
mi to shvatamo
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = SL ⊕ SL ⊕ SL ⊕ SL ⊕ X(3) ⊕ K3(4) sa vjerovatnoćom 12/64.

Izjednačavanjem pravih dijelova jednačina (3) i (4) dobijamo
SL ⊕ CL ⊕ SL ⊕ SL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 sa vjerovatnoćom (12/64) 2 +(1-12/64) 2 .
Uzimajući u obzir činjenicu da je X(1) = PR i X(3) = CR, dobijamo statistički analog
SL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
što se izvodi sa vjerovatnoćom (12/64) 2 +(1-12/64) 2 =0,7.
Gore opisani statistički analog može se grafički predstaviti na sljedeći način (bitovi na slici su numerirani s desna na lijevo i počinju od nule):

Svi bitovi na lijevoj strani jednačine poznati su napadaču, tako da može primijeniti algoritam 1 i saznati vrijednost K1 ⊕ K3. Pokažimo kako je pomoću ovog statističkog analoga moguće otvoriti ne 1, već 12 bitova ključa za šifriranje K.

Napad na DES sa poznatim otvorenim tekstom

Evo načina na koji možete proširiti napad i odmah dobiti 6 bitova podključa prve runde.
Prilikom sastavljanja jednačine (5) uzeli smo u obzir činjenicu da ne znamo vrijednost F1(PR, K1). Stoga smo koristili njegov statistički analog K1 ⊕ PR.
Umjesto izraza K1 ⊕ PR vraćamo vrijednost F1(PR, K1) i dobijamo sljedeću jednačinu:
CL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , koji će se izvršiti sa vjerovatnoćom 12/64. Vjerovatnoća se promijenila jer smo ostavili samo statistički analog iz trećeg kruga, sve ostale vrijednosti su fiksne.

Već smo ranije utvrdili da na vrijednost F1(PR, K1) utiču ulazni bitovi 5. S-kutije, odnosno bitovi ključa K1 i bitovi PR bloka. Hajde da pokažemo kako, imajući samo skup otvorenih/zatvorenih tekstova, možemo povratiti vrijednost K1. Da bismo to učinili, koristimo algoritam 2.

Algoritam 2
Neka je N broj otvorenih/zatvorenih parova teksta poznatih prije napada. Zatim, da biste otvorili ključ, morate učiniti sljedeće korake.
Za (i=0; i<64; i++) do
{
Za(j=0; j {
if(SL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) onda
T i =T i +1
}
}
Kao vjerojatni niz K1 uzima se takva vrijednost i za koju je izraz |T i -N/2| ima maksimalnu vrijednost.

Uz dovoljan broj poznatih otvorenih tekstova, algoritam će najvjerovatnije vratiti tačnu vrijednost šest bitova prvog kruga potključa K1. Ovo se objašnjava činjenicom da ako varijabla i nije jednaka K1, tada će vrijednost funkcije F1(PR j, K) biti slučajna i broj jednačina za takvu vrijednost i, pri čemu je lijeva strana jednaka nuli, težiće N/2. Ako se potključ pogodi ispravno, lijevi dio će biti jednak fiksnom bitu K3 sa vjerovatnoćom 12/64. One. doći će do značajnog odstupanja od N/2.

Nakon što ste primili 6 bitova potključa K1, na sličan način možete otvoriti 6 bitova potključa K3. Sve što je potrebno za ovo je zamijeniti C sa P i K1 sa K3 u jednačini (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Algoritam 2 će vratiti ispravnu vrijednost K3 jer je proces dešifriranja DES algoritma identičan procesu šifriranja, samo je redoslijed ključeva obrnut. Dakle, u prvom krugu dešifriranja koristi se ključ K3, au posljednjoj rundi ključ K1.

Dobivši 6 bitova potključeva K1 i K3, napadač povrati 12 bitova zajedničkog ključa šifre K, jer okrugli ključevi su uobičajena permutacija ključa K. ​​Broj otvorenih tekstova potrebnih za uspješan napad zavisi od vjerovatnoće statističkog parnjaka. Da biste razbili 12-bitni 3-kružni DES ključ, dovoljno je 100 parova javnog/privatnog teksta. Za razbijanje 12-bitnog 16-krugnog DES ključa bilo bi potrebno oko 244 para tekstova. Preostala 44 bita ključa se otvaraju uobičajenim nabrajanjem.

DES standard je dizajniran da zaštiti od neovlaštenog pristupa važnim, ali ne povjerljive informacije u američkoj vladi i komercijalnim organizacijama. Algoritam koji je u osnovi standarda proširio se prilično brzo, a već 1980. godine odobren je od strane američkog Nacionalnog instituta za standarde i tehnologiju. Od ovog trenutka DES postaje standard ne samo po imenu, već iu stvari. Postoje softver i specijalizirani mikroračunari dizajnirani za šifriranje i dešifriranje informacija u podatkovnim mrežama.

Do danas, DES je najčešći algoritam koji se koristi u komercijalnim sistemima sigurnosti informacija. Štaviše, implementacija DES algoritma u takvim sistemima postaje znak dobrog ukusa.

Glavne prednosti DES algoritma:

Koristi se samo jedan 56-bitni ključ;

· nakon šifriranja poruke pomoću jednog paketa, možete koristiti bilo koji drugi da je dešifrujete;

Relativna jednostavnost algoritma osigurava veliku brzinu obrade informacija;

prilično visoka stabilnost algoritma.

DES šifrira 64-bitne blokove podataka koristeći 56-bitni ključ. Dešifriranje u DES-u je obrnuta operacija šifriranja i izvodi se tako što se operacije šifriranja ponavljaju obrnutim redoslijedom (uprkos prividnoj očiglednosti, to se ne radi uvijek. Kasnije ćemo razmotriti šifre u kojima se šifriranje i dešifriranje provode korištenjem različitih algoritama).

Proces šifriranja se sastoji od početne zamjene bitova 64-bitnog bloka, šesnaest rundi šifriranja i konačno obrnute zamjene bitova (slika 1).

Treba odmah napomenuti da su SVE tabele date u ovom članku STANDARDNE, i stoga ih treba uključiti u vašu implementaciju algoritma nepromijenjene. Sve permutacije i kodove u tabelama odabiru programeri na način da otežaju proces dešifriranja što je više moguće odabirom ključa. Struktura DES algoritma je prikazana na sl. 2.

Rice. 2.

Neka se sljedeći 8-bajtni blok T pročita iz datoteke, koja se transformira korištenjem početne permutacijske matrice IP (Tabela 1) na sljedeći način: bit 58 bloka T postaje bit 1, bit 50 postaje bit 2, itd., što će rezultirati u: T(0) = IP(T).

Rezultirajuća sekvenca bitova T(0) je podijeljena na dvije sekvence od po 32 bita: L(0) - lijevo ili visoko, R(0) - desno ili nisko.

Tabela 1: IP početna matrica permutacije

58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

Zatim se izvodi šifriranje koje se sastoji od 16 iteracija. Rezultat i-te iteracije opisan je sljedećim formulama:

R(i) = L (i-1) xor f (R(i-1), K(i)),

gdje je xor operacija EXCLUSIVE OR.

Funkcija f se zove funkcija šifriranja. Njegovi argumenti su 32-bitni niz R (i-1) dobijen na (i-1) - iteraciji i 48-bitni ključ K(i), koji je rezultat konverzije 64-bitnog ključa K. U nastavku je detaljno opisana funkcija šifriranja i algoritam za izvođenje ključeva K(i).

U 16. iteraciji dobijaju se sekvence R(16) i L(16) (bez permutacije), koje se spajaju u 64-bitni niz R(16) L(16).

Zatim se pozicije bitova ove sekvence preuređuju u skladu sa matricom IP -1 (tabela 2).

Tabela 2: IP-1 Inverzna matrica permutacije

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

IP -1 i IP matrice su povezane na sljedeći način: vrijednost 1. elementa IP -1 matrice je 40, a vrijednost 40. elementa IP matrice je 1, vrijednost 2. element matrice IP -1 je 8, a vrijednost 8. elementa matrice IP je 2 i tako dalje.

Proces dešifriranja podataka je inverzan od procesa šifriranja. Svi koraci moraju biti izvedeni obrnutim redoslijedom. To znači da se podaci koji se dešifriraju prvo preuređuju prema IP-1 matrici, a zatim se na sekvenci bita R(16) L(16) izvode iste operacije kao u procesu šifriranja, ali obrnutim redoslijedom.

Iterativni proces dešifriranja može se opisati sljedećim formulama:

R(i-1) = L(i), i = 1, 2,…, 16;

L (i-1) = R(i) xor f (L(i), K(i)), i = 1, 2,…, 16.

U 16. iteraciji dobijaju se sekvence L(0) i R(0), koje se spajaju u 64-bitnu sekvencu L(0) R(0).

Pozicije bitova ove sekvence se zatim preuređuju prema IP matrici. Rezultat ove permutacije je originalna 64-bitna sekvenca.

Sada razmotrite funkciju šifriranja f (R(i-1), K(i)). Šematski je prikazano na Sl. 3.


Rice. 3.

Za izračunavanje vrijednosti funkcije f koriste se sljedeće matrične funkcije:

E - proširenje 32-bitne sekvence na 48-bitnu,

S1, S2,…, S8 - 6-bitna u 4-bitna blok konverzija,

P je permutacija bita u 32-bitnoj sekvenci.

Funkcija proširenja E definirana je u tabeli. 3. Prema ovoj tabeli, prva 3 bita E (R(i-1)) su bitovi 32, 1 i 2, a posljednja su 31, 32 i 1.

Tabela 3: Funkcija proširenja E

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 01

Rezultat funkcije E (R(i-1)) je 48-bitni niz koji se dodaje po modulu 2 (xor operacija) sa 48-bitnim ključem K(i). Dobija se 48-bitna sekvenca koja je podijeljena na osam 6-bitnih blokova B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8). To je:

E (R(i-1)) xili K(i) = B(1) B(2)… B(8).

Funkcije S1, S2, ..., S8 definirane su u tabeli. četiri.

Tabela 4

Za sto. 4. Potrebna su dodatna objašnjenja. Neka je ulaz matrične funkcije Sj 6-bitni blok B(j) = b1b2b3b4b5b6, tada dvobitni broj b1b6 označava broj reda matrice, a b2b3b4b5 broj kolone. Rezultat Sj (B(j)) će biti 4-bitni element koji se nalazi na presjeku navedenog reda i stupca.

Na primjer, B(1)=011011. Tada se S1 (B(1)) nalazi na raskrsnici reda 1 i kolone 13. Kolona 13 reda 1 je postavljena na 5. Dakle, S1 (011011)=0101.

Primjenjujući operaciju odabira na svaki od 6-bitnih blokova B(1), B(2),..., B(8), dobijamo 32-bitnu sekvencu S1 (B(1)) S2 (B(2)) S3 (B(3))… S8 (B(8)).

Konačno, da biste dobili rezultat funkcije šifriranja, trebate preurediti bitove ove sekvence. Za to se koristi funkcija permutacije P (tablica 5). U ulaznoj sekvenci, bitovi su obrnuti tako da bit 16 postaje bit 1, bit 7 postaje bit 2, itd.

Tabela 5: Funkcija permutacije P

Na ovaj način,

f (R(i-1), K(i)) = P (S1 (B(1)),… S8 (B(8)))

Da bismo završili opis algoritma za šifrovanje podataka, ostaje da navedemo algoritam za dobijanje 48-bitnih ključeva K(i), i=1…16. Na svakoj iteraciji koristi se nova vrijednost ključa K(i), koja se izračunava iz početnog ključa K. ​​K je 64-bitni blok sa osam paritetnih bitova smještenih na pozicijama 8,16,24,32,40,48, 56, 64.

Za uklanjanje kontrolnih bitova i preuređivanje ostataka koristi se funkcija G početne pripreme ključa (tablica 6).

Tabela 6

Matrica G početne pripreme ključa

57 49 41 33 25 17 09

01 58 50 42 34 26 18

10 02 59 51 43 35 27

19 11 03 60 52 44 36

63 55 47 39 31 23 15

07 62 54 46 38 30 22

14 06 61 53 45 37 29

21 13 05 28 20 12 04

Rezultat transformacije G(K) je podijeljen u dva 28-bitna bloka C(0) i D(0), gdje će se C(0) sastojati od bitova 57, 49,…, 44, 36 ključa K, i D(0) će se sastojati od bitova 63, 55,…, 12, 4 ključa K. ​​Nakon što se odrede C(0) i D(0), C(i) i D(i), i=1 …16, određuju se rekurzivno. Za to se ciklički pomak ulijevo primjenjuje za jedan ili dva bita, ovisno o broju iteracije, kao što je prikazano u Tabeli 1. 7.

Tablica 7. Tablica pomaka za izračun ključa

Broj iteracije

Shift (bit)

Rezultirajuća vrijednost se ponovo "miješa" u skladu sa matricom H (tabela 8).

Tabela 8: Ključna završna matrica H

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Ključ K(i) će se sastojati od bitova 14, 17,…, 29, 32 sekvence C(i) D(i). Na ovaj način:

K(i) = H (C(i) D(i))

Blok dijagram algoritma proračuna ključeva prikazan je na sl. četiri.

Rice. četiri.

Obnavljanje originalnog teksta vrši se prema ovom algoritmu, ali prvo koristite tipku K(15), zatim K(14) i tako dalje. Sada biste trebali razumjeti zašto autor snažno preporučuje korištenje gornjih matrica. Ako počnete da idete proizvoljno, morate dobiti vrlo tajnu šifru, ali je kasnije nećete moći otvoriti!

Napomena: Jedan od najpoznatijih kriptografskih sistema sa privatnim ključem je DES - Data Encryption Standard. Ovaj sistem je prvi dobio status državnog standarda u oblasti enkripcije podataka. I iako je stari američki DES standard sada izgubio svoj službeni status, ovaj algoritam još uvijek zaslužuje pažnju prilikom proučavanja kriptografije. Osim toga, ovo predavanje objašnjava šta je "dvostruki DES", napad "meet in the middle" i kako ga popraviti. U istom predavanju se ukratko govori o novom standardu američke blok šifre, Rijndaelovom algoritmu.

Svrha predavanja: upoznati studenta sa osnovnim informacijama o algoritmu DES enkripcije.

Osnovne informacije

Jedan od najpoznatijih kriptografskih sistema sa privatnim ključem je DES - Standard šifriranja podataka. Ovaj sistem je prvi dobio status državnog standarda u oblasti enkripcije podataka. Razvili su ga stručnjaci IBM-a i stupio je na snagu u SAD-u 1977. godine. Algoritam DESširoko se koristi u skladištenju i prenosu podataka između različitih računarskih sistema; u poštanskim sistemima, elektronskim sistemima za crtanje i elektronskoj razmjeni komercijalne informacije. Standard DES implementiran i softverski i hardverski. Preduzeća iz različitih zemalja pokrenula su masovnu proizvodnju digitalnih uređaja koji koriste DES za enkripciju podataka. Svi uređaji prošli su obaveznu certifikaciju za usklađenost sa standardom.

Unatoč činjenici da već neko vrijeme ovaj sistem nije imao status državnog standarda, još uvijek se široko koristi i zaslužuje pažnju prilikom proučavanja blok šifri s privatnim ključem.

Dužina ključa u algoritmu DES je 56 bita. Upravo sa ovom činjenicom je glavna kontroverza u pogledu sposobnosti da DES odoljeti raznim napadima. Kao što znate, svaka blok šifra s privatnim ključem može se razbiti pokušajem svih mogućih kombinacija ključeva. Sa dužinom ključa od 56 bita, moguće je 256 različitih ključeva. Ako kompjuter nabroji 1.000.000 ključeva u jednoj sekundi (što je otprilike jednako 220), onda će biti potrebno 236 sekundi ili nešto više od dvije hiljade godina da nabroji svih 256 ključeva, što je, naravno, neprihvatljivo za napadače.

Međutim, skuplji i brži računarski sistemi od PC. Na primjer, ako je moguće kombinirati milion procesora za paralelno računanje, tada se maksimalno vrijeme odabira ključa smanjuje na približno 18 sati. Ovo vrijeme nije predugo, a kriptoanalitičar opremljen tako skupom opremom može lako izvesti DES-šifrirani napad u razumnom vremenu.

Istovremeno, može se primijetiti da sistem DES može se koristiti u malim i srednjim aplikacijama za šifriranje podataka male vrijednosti. Za šifrovanje podataka od nacionalnog značaja ili značajne komercijalne vrednosti, sistem DES trenutno, naravno, ne treba koristiti. 2001. godine, nakon posebno raspisanog konkursa u Sjedinjenim Državama, usvojen je novi standard blok šifriranja, tzv. AES (napredni standard šifriranja), koji je zasnovan na šifri Rijndael razvijen od strane belgijskih stručnjaka. O ovoj šifri se govori na kraju predavanja.

glavni parametri DES: veličina bloka 64 bita, dužina ključa 56 bita, broj rundi - 16. DES je klasična Feishtel mreža sa dvije grane. Algoritam pretvara 64-bitni blok ulaznih podataka u 64-bitni izlazni blok u nekoliko rundi. Standard DES izgrađen na kombinovanoj upotrebi permutacije, supstitucije i gamiranja. Šifrirani podaci moraju biti u binarnom obliku.

Enkripcija

Opća struktura DES prikazano na sl. 4.1. Proces šifriranja svakog 64-bitnog bloka izvornih podataka može se podijeliti u tri faze:

  1. početna priprema bloka podataka;
  2. 16 kola "glavnog ciklusa";
  3. finalna obrada bloka podataka.

U prvoj fazi, početna permutacija 64-bitni originalni blok teksta, tokom kojeg se bitovi preuređuju na određeni način.

U sljedećoj (glavnoj) fazi blok se dijeli na dva dijela (grane) od po 32 bita. Desna grana se transformira pomoću neke funkcije F i odgovarajuće djelomični ključ, dobiven iz glavnog ključa za šifriranje pomoću posebnog algoritma za konverziju ključa. Zatim se podaci razmjenjuju između lijeve i desne grane bloka. Ovo se ponavlja 16 puta u ciklusu.

Konačno, u trećoj fazi, rezultat dobijen nakon šesnaest koraka glavne petlje se permutira. Ova permutacija je suprotna originalnoj permutaciji.


Rice. 4.1.

Razmotrimo detaljnije sve faze kriptografske transformacije prema standardu DES.

U prvoj fazi, 64-bitni blok izvornih podataka prolazi kroz početnu permutaciju. U literaturi se ova operacija ponekad naziva "izbjeljivanje" - izbjeljivanje. Tokom početne permutacije, bitovi bloka podataka se preuređuju na određeni način. Ova operacija daje određenu "slučajnost" originalnoj poruci, smanjujući mogućnost korištenja kriptoanalize statističkim metodama.

Istovremeno sa početnom permutacijom bloka podataka, vrši se početna permutacija 56 bitova ključa. Od sl. 4.1. može se vidjeti da se u svakoj rundi koristi odgovarajući 48-bitni parcijalni ključ K i. Ključevi K i se dobijaju prema određenom algoritmu, koristeći svaki od bitova početnog ključa nekoliko puta. U svakoj rundi, 56-bitni ključ je podijeljen na dvije 28-bitne polovine. Polovine se zatim pomeraju ulevo za jedan ili dva takta, u zavisnosti od broja kruga. Nakon pomaka, 48 od 56 bita se bira na određeni način. Pošto ovo ne samo da bira podskup bitova, već i menja njihov redosled, ova operacija se naziva operacija "swap-swap". Njegov rezultat je skup od 48 bita. U prosjeku, svaki bit originalnog 56-bitnog ključa se koristi u 14 od 16 potključeva, iako se svi bitovi ne koriste isti broj puta.

Zatim se izvodi glavni transformacijski ciklus, organiziran prema Feishtel mreži i koji se sastoji od 16 identičnih krugova. U ovom slučaju, u svakoj rundi (slika 4.2), dobije se srednja 64-bitna vrijednost, koja se zatim obrađuje u sljedećem krugu.


Rice. 4.2.

Lijeva i desna grana svake međuvrijednosti tretiraju se kao zasebne 32-bitne vrijednosti, označene kao L i R.

Prvo, desna strana R i bloka se proširuje na 48 bita koristeći tablicu koja definira permutaciju plus proširenje od 16 bita. Ova operacija prilagođava veličinu desne polovice tako da odgovara veličini ključa za izvođenje operacije XOR. Osim toga, zbog izvršenja ove operacije, ovisnost svih bitova rezultata o bitovima originalnih podataka i ključa se brže povećava (ovo se naziva "efekat lavine"). Što je jači efekat lavine kada se koristi jedan ili drugi algoritam šifriranja, to bolje.

Nakon što se izvrši permutacija proširenja, rezultirajuća 48-bitna vrijednost je XOR sa 48-bitnim potključem K i . Zatim se rezultirajuća 48-bitna vrijednost unosi na ulaz zamjenskog bloka S (sa engleskog. Zamjena - zamjena), rezultatšto je 32-bitna vrijednost . Zamjena se vrši u osam zamjenskih kutija ili osam S-kutija. Prilikom izvršavanja ovog DES-a, na papiru izgleda prilično komplikovano, a kamoli njegova softverska implementacija! Razviti program koji ispravno i optimalno funkcionira u potpunosti u skladu sa DES vjerovatno samo za iskusne programere. Neke poteškoće nastaju kada implementacija softvera, kao što je početna permutacija ili permutacija sa ekspanzijom. Ove poteškoće su povezane sa činjenicom da je prvobitno planirana implementacija DES samo u hardveru. Sve operacije koje se koriste u standardu lako se izvode od strane hardverskih jedinica i nema poteškoća s implementacijom. Međutim, neko vrijeme nakon objavljivanja standarda, programeri softvera odlučili su da ne ostanu po strani i da se prepuste kreiranju sistema šifriranja. Dalje DES implementiran kako u hardveru tako i u softveru.

Top Related Articles