DES algoritam: opis i primjer

Data Encryption Standard (DES) je standard šifriranja podataka, izumljen u SAD-u 80-ih godina dvadesetog stoljeća. Među šiframa, smatra se da je "umirovljen", dok ostaje radni konj kriptografije. DES nije prikladan za brzu tehniku ​​i velike količine podataka zbog ograničenja od 56 bita po ključu i 64 bita po podacima. Međutim, još je uvijek u uporabi.

Što su blok šifre?

DES - algoritam enkripcije blokova. Tijekom proteklih 20-30 godina stvorene su mnoge blok šifre, ali da bi se stvorila dobra šifra koja je sigurna, zadatak je prilično kompliciran. Važno je da šifra ima karakteristike koje će joj omogućiti da funkcionira u mnogim područjima i industrijama. Blok šifre se sastoje od nekoliko iteracija izmjenične uporabe neke šifre. Svaka iteracija naziva se krug. Kao što praksa pokazuje, čak i neki od primitivnih algoritama s dosljednom uporabom mogu stvoriti pouzdane šifre. DES algoritam je primjer koji je ostao stabilan i neranjiv već 20 godina.


Ovaj pristup u razvoju šifri uvelike olakšava i pojednostavljuje analizu sigurnosti. Primjerice, testni napad na blok šifru počinje s minimalnim brojem rundi i nastavlja se metodički s povećanjem broja rundi.

Korištenje DES-a

Iako je DES zastario i ne zadovoljava trenutne zahtjeve, može se koristiti, na primjer, kao 3DES, kada se šifra primjenjuje tri puta zaredom. Ovaj pristup uklanja ograničenje veličine ključa, ali blokirani podaci ostaju nepromijenjeni. U svomDES vrijeme je bilo dovoljno brzo i kriptografski. To sada nije slučaj, a 3DES je uopće tri puta sporiji. Unatoč tome, DES se još uvijek koristi u brojnim sustavima, ali je njegova uporaba u novim projektima zabranjena.


Službeni DES algoritam bio je standard u SAD-u do 1998. godine. Godine 1997. počelo se stvarati novi standard nazvan AES (Advanced Encryption System - napredni sustav šifriranja), i iako kriptoanaliza pokazuje da pokušaj razbijanja DES-a rezultira skupom sustava nelinearnih jednadžbi, analitičke metode ne mogu pomoći u rješavanju problema - njegova slabost je mali skup mogućih tipki , Njihov broj je jednak 2 56 i sve varijante mogu se prevladati uz pomoć modernih tehnologija u relativno kratkom vremenu.

Jedan krug u algoritmu

Radi jasnoće prikaza i opisa algoritma DES pomoću crteža (dijagram linearnog računanja) 4.1 prikazuje strukturu jednog kruga.
Svaki pravokutnik u linearnom dijagramu predstavlja neku vrstu izračuna, a strelica ulijevo pokazuje gdje će se prenositi rezultati bloka. Znak plus u krugu označen je radom "isključi ili", nazvanim XOR programiranje. Operacija još uvijek nosi naziv "dodavanje bitova" ili "dodavanje bez prijenosa". Mreža može pronaći DES algoritam na C i proučiti ga radi boljeg razumijevanja. DES prihvaća 64-bitni blok teksta. Prolazi kroz početno pregrađivanje prema određenom načelu. U analizi algoritma postalo je jasno da je značenje ove permutacije malo, jer ne daje nikakav kriptografski učinak. tekstualanJedinica je podijeljena u 2 jednaka dijela: desno (R) i lijevo (L). Zatim se šifrirani dijelovi mijenjaju i spajaju, a na kraju okruglog 64-bitnog bloka podataka se šifrira.

Opći algoritam

DES algoritam uključuje 16 krugova, koji se izvode prema gore opisanoj shemi. Svi krugovi su numerirani kroz i, gdje je i = (1; 16). Svaki i-ti krug pare (Li-1 Ri-1) prima novi par (Li, Ri) pomoću ključa Ki. Glavne transformacije odvijaju se unutar funkcije F.

Algoritam za funkciju F

Kao što se može vidjeti na slici 4.1 R prolazi kroz operaciju "Ekspanzija". Ovaj blok duplicira niz bitova iz R i dopunjuje ih s njima, primajući 48-bitnu vrijednost. Rezultirajući rezultat prolazi kroz bitovski dodatak s 48-bitnim ključem Ke. I rezultat ove operacije je proslijeđen bloku S. Blok S sadrži 8 malih matrica zamjene, koje su odabrane na poseban način.
Svaka matrica prima na ulazu 6 bitova informacija i izdaje 4-bitnu vrijednost. Kao rezultat, blok S prima 48-bitne podatke na ulazu, a na izlazu rezultat je 32-bitna vrijednost.
Ova 32-bitna vrijednost prolazi kroz još jednu operaciju permutacije, nakon čega se sumira operacijom xor od L. Konačno, prava i lijevi dio mijenjaju mjesta i okrugle završava. Kao što je već spomenuto, 16 takvih algoritama izvodi takve runde. Ovdje nećemo preopteretiti članak primjerima koji zauzimaju puno prostora. Rad DES algoritma za šifriranje i primjere može se vidjeti na internetu.

Fiesteelov kôd

DES algoritam temelji se na Fiesteelovoj šifri.Njegova ideja je vrlo sofisticirana. U svakom krugu, dio L se sastoji od vrijednosti F (R, Ki) i L se zamjenjuje položajem R. Ključno obilježje Feistle algoritma je da se dešifriranje i enkripcija sastoji od istih koraka: dijelovi L i R mijenjaju mjesta, a zatim operacija dodavanja L i F (R, Ki). To čini postupke enkripcije i dešifriranja jednostavnim i lako razumljivim.
U kodovima Feistela najčešće je uvedena jedna zanimljiva promjena - ukidanje permutacije L i R u posljednjoj iteraciji. To čini algoritme šifriranja i dešifriranja potpuno simetričnim. Razlika je samo u korištenju Ke tipki. Ovo se načelo pokazalo vrlo razumljivim za programsku razinu, budući da se enkripcija i dešifriranje provodi pomoću jedne funkcije. Na primjer, sažeta implementacija DES enkripcijskog algoritma za C.

Ključe za šifriranje

Šesnaest 48-bitnih ključeva koristi se za šifriranje DES podataka. Jedan ključ po krugu. Svaki ključ se kreira uzorkovanjem 48 bita od 56-bitnog ključa. Izrada ključeva ili drugih krugova određuje se mehanizmom detaljno opisanim u DES dokumentaciji. Ukratko, algoritam za uzorak i ključ je sljedeći. Šišmiš se dodaje glavnom ključu na položaju 81624 324048 5664. To je učinjeno tako da svaki bajt sadrži neparni broj jedinica. Usklađenost s pravilima pomaže u prepoznavanju pogrešaka prilikom prebacivanja ključeva. Nakon toga, korištenjem posebnih proračunskih tablica, dovršeni ključ podliježe promjenama i smjenama, osim bitova koji su dodani. Tako jepotreban je ključ.

DES komponente

Svaka komponenta DES algoritma rješava određeni problem:
  • Fiestelov algoritam pojednostavljuje enkripciju i dešifriranje, osiguravajući istovremeno miješanje obje strane teksta.
  • Dodavanje tekstualnih dijelova s ​​ključevima paralelno dodaje otvorene podatke ključu i šifrira ih.
  • S-blok i tablice podudaranja čine algoritam nelinearnim, povećavajući njegovu otpornost na različite napade.
  • Proširenje, S-blok i permutacije osiguravaju difuziju algoritma - lavinski učinak. Drugim riječima, ako se ulazni podaci F promijene barem 1 bit, tada će uzrokovati promjenu skupa bitova odjednom. Ako se lavinski efekt ne promatra u šifri, tada će promjene u otvorenim podacima rezultirati ekvivalentnim promjenama u šifriranom obliku koje se mogu pratiti i koristiti za hakiranje. U kriptografiji postoji kriterij za lavinski učinak. Algoritam ga zadovoljava, ako se najmanje jedna polovica šifriranih podataka mijenja pri promjeni 1 bita otvorenih podataka. Algoritam DES zadovoljava ga, počevši s 4 kruga. Sažetak - kada promijenite 1 bit otvorenih podataka u DES šifri, bit će promijenjeno 29 bita.

    Sigurnosna pitanja u DES-u

    Očigledan DES problem je izbor ključeva šifriranja općeg ključa. Što će se dogoditi ako odaberete nulu kao ključ (svi bitovi ključa su 0)? To će rezultirati uzorkovanjem svih ključeva za šifriranje u svakom krugu, a svi ključevi će biti nula. Ne samo to, 16 šifriranih će ići s jednim ključem, zbog činjenice da algoritmi enkripcije i dešifriranja DESrazlikuju se samo po redoslijedu korištenja ključeva, bit će potpuno identični. Cijelo značenje enkripcije bit će izgubljeno.
    DES ima 4 ključa, koji se nazivaju slabim, što rezultira opisanim učinkom. DES ima 12 polu-slabih i 48 pseudo-slabih tipki koje rezultiraju ograničavanjem varijacija generiranih ključeva u krugovima. Drugim riječima, postoji vjerojatnost da će se 16 različitih tipki koristiti tijekom enkripcije u 16 rundi, te 8 4 ili čak 2. Manje očigledan nedostatak DES je svojstvo komplementarnosti. To znači da ako šifrirate pomoću otvorenog izvornog teksta i dodataka ključa, rezultat će biti vrijednost koja je dodatak šifriranom tekstu. Ovo besmisleno svojstvo može dovesti do uspješnih napada na projekte koji koriste DES za osiguranje sigurnosti.

    Problem ključa za šifriranje

    ključan je za DES i smatra se glavnim razlogom zbog kojeg bi ovaj algoritam trebalo napustiti. Budući da je veličina DES ključa 56 bita, trebat ćete pogledati 2 56 opcija za skeniranje svih ključeva. Je li to toliko? Ako napravite 10 milijuna ključnih provjera u sekundi, onda će proći oko 2000 godina. Čini se da je algoritam prilično stabilan. Tako je bilo u prošlom stoljeću, kada je stvaranje računala slične moći bilo gotovo nemoguće za tehničku i financijsku zadaću. Ako stvorite računalo s milijun čipova, potraga za svim DES ključevima trajat će 20 sati. Prvo takvo računalo za dekodiranje algoritma DES pojavilo se 1998. godinesuočio se sa zadacima 56 sati. Moderne tehnologije mreža i paralelni procesi omogućuju da se ovo vrijeme još više smanji.

    Kriptoanaliza i DES

    Moguće je bez pretjerivanja reći da je DES bio razlog za pojavu primijenjene znanosti pod nazivom "kriptografska analiza". Od početka nastanka DES-a nastojali su ga slomiti, znanstveni rad je proveden na njegovom proučavanju. Sve je to dovelo do pojave takvih područja matematike, kao što su:
  • linearna kriptoanaliza - proučavanje i otkrivanje odnosa između otvorenog koda i enkripcije;
  • diferencijalna kriptoanaliza - proučavanje i analiza ovisnosti između nekoliko otvorenih izvornih tekstova i njihovih šifriranih verzija;
  • kriptoanaliza na povezanim ključevima - proučavanje odnosa između šifriranih tekstova primljenih na primarnom ključu i ključevima povezanim s primarnim na bilo koji način.
  • DES je održao 20 godina globalne kriptoanalize i napada, ali je ostao jaka šifra. Ali tko traži - uvijek će ga pronaći
  • izraelski znanstvenici Bihamas i Shamir pokazali su 1991. s diferencijalnom kriptoanalizom da se može izvršiti napad na DES u kojem je ključ izračunat, pod uvjetom da napadač ima 2 47 posebno odabranih para otvoreni i šifrirani tekstovi.
  • Japanski znanstvenik Mitsui Matsui 1993. godine pokazao je da se ključ može izračunati pomoću linearne kriptoanalize. Da biste to učinili, morate znati samo 2 47 parova otvorenog teksta i odgovarajuće šifrirane verzije.
  • Nadalje, ove tehnike hakiranja bile su blago revidirane, poboljšane i pojednostavljene, te nekoliko novihnačini razbijanja. No, oni su i dalje suviše složeni, u pozadini, potpuni pregled svih ključnih opcija čini se najadekvatnijim napadom na DES.

    Povezane publikacije