Što je 3DES enkripcija i kako funkcionira DES?

Što je 3DES enkripcija i kako radi DES (1)


3DES je šifriranje šifriranja koje je izvedeno iz izvornog standarda šifriranja podataka (DES). Postala je istaknuta krajem devedesetih, ali od tada je nestala u prednosti zbog porasta sigurnijih algoritama.

Iako će biti zastarela 2023. godine, u nekim se situacijama i dalje primjenjuje. Budući da se temelji na jednom od prvih objavljenih i proučanih algoritama, DES, još je važno naučiti što je 3DES i kako to funkcionira.

Ovaj će vas vodič detaljno provesti kroz svaki korak DES procesa, a zatim opisati način na koji je DES modificiran u 3DES kako bi ga učinio sigurnijim. Također se dotiče različitih sigurnosnih pitanja i trebate li upotrebljavati algoritam ili ne.

Što je 3DES?

Iako je službeno poznat kao algoritam za trostruko šifriranje podataka (3DEA), najčešće se naziva 3DES. To je zato što algoritam 3DES tri puta koristi šifriranje podataka šifriranja podataka (DES) za šifriranje svojih podataka.

DES je algoritam simetričnog ključa temeljen na Feistel mreži. Kao šifrirana ključna simetrična ključ koristi isti ključ i za postupke šifriranja i dešifriranja. Feistel mreža čini oba ova procesa gotovo potpuno ista, što rezultira algoritmom koji je učinkovitiji za implementaciju.

DES ima i 64-bitni blok i veličinu ključa, ali u praksi ključ daje 56-bitnu sigurnost. 3DES je razvijen kao sigurnija alternativa zbog male duljine tipki DES. U 3DES algoritmu DES pokreću se tri puta s tri tipke, no sigurnim se smatra samo ako se koriste tri zasebne tipke.

Korištenje 3DES-a

Nakon što su slabosti normalnog DES postale očiglednije, 3DES je usvojen u širokom rasponu primjena. Bila je to jedna od najčešće korištenih shema šifriranja prije uspona AES-a.

Neki primjeri implementacije uključuju Microsoft Office, Firefox i EMV platne sustave. Mnoge od ovih platformi više ne koriste 3DES jer postoje bolje alternative.

Nacionalni institut za standarde i tehnologiju (NIST) objavio je nacrt prijedloga u kojem se kaže da će se svi oblici 3DES-a obustaviti do 2023. godine i onemogućiti od 2024. nadalje. Iako je samo nacrt, prijedlog znači kraj ere, i već je prošlo vrijeme da se krene u druge, sigurnije algoritme.

Povijest 3DES enkripcije

Kako je 3DES izveden iz DES-a, najbolje je prvo uvesti raniji standard. Sedamdesetih godina Nacionalni biro za standarde (NBS - otada je preimenovan u NIST) tražio je algoritam koji bi mogao koristiti kao standard za šifriranje osjetljivih, a nerazvrstanih državnih podataka.

NBS je prihvatila prijedloge standarda koji bi odgovarao njegovim zahtjevima, ali nijedan od kandidata iz prvobitnog kruga nije bio prikladan. Pozvalo je više prijava, a ovaj put IBM je poslao algoritam koji je razvio njegov tim. Predavanje je izvedeno iz Lucifer šifre koju je Horst Feistel dizajnirao.

1975. godine NBS je objavila IBM-ov algoritam kao predloženi standard šifriranja podataka. Javnost je pozvana da komentira dizajn, što je privuklo neke kritike.

Istaknuti kriptografi poput Whitfield Diffie i Martin Hellman, dizajneri razmjene ključeva Diffie-Hellman, tvrdili su da je duljina ključa prekratka i da su S-kutije promijenjene od svog početnog dizajna.

U to su vrijeme mnogi u kriptografskoj zajednici mislili da je NSA sabotirala projekt i oslabila algoritam, tako da će to biti jedina agencija koja može slomiti DES.

Kad je to ispitao Odbor za obavještajni nadzor Senata SAD-a, ustanovljeno je da je „NSA uvjerila IBM da je dovoljna smanjena veličina ključa; posredno pomagao u razvoju struktura S-boxa; i potvrdili da konačni DES algoritam, prema najboljim saznanjima, ne sadrži statističku ili matematičku slabost. "

U istom se izvještaju pisalo i da "NSA nije dirala dizajn na bilo koji način." To su podržali neki bivši IBM-ov zaposlenici koji su tvrdili da je DES algoritam u potpunosti dizajnirao IBM tim.

Vlastita dokumentacija razvrstane u NSA tvrdi da je agencija "usko surađivala s IBM-om na jačanju algoritma protiv svih, osim napada brutalnim silama i ojačavanja tablica zamjene ..."

Sumnje na diranje NSA ublažene su devedesetih nakon što je javno otkrivena diferencijalna kriptanaliza. Kada su mnogo zlostavljane S-kutije testirane novom tehnikom, otkriveno je da su otpornije na napad nego da su izabrane nasumično.

To ukazuje da je IBM tim već znao sedamdesetih o diferencijalnoj kriptoanalizi, a Steven Levy je tvrdio da ih je NSA tražio da čuvaju tehniku ​​u tajnosti kako bi zaštitili nacionalnu sigurnost.

Čuveni kriptograf Bruce Schneier jednom je ukinuo: "Akademskoj zajednici trebalo je dva desetljeća da shvate da su NSA 'ugađanje' zapravo poboljšali sigurnost DES-a."

Unatoč početnim pitanjima o sigurnosti algoritma i sudjelovanju NSA-e, IBM-ov algoritam prihvaćen je kao Standard za šifriranje podataka 1976. Objavljen je 1977 i ponovno potvrđen kao standard u 1983, 1988 i 1993.

Kad je linearna kriptoanaliza prvi put objavljena 1994., počela je postavljati pitanja sigurnosti algoritma. NIST je 1997. objavio da traži algoritam koji bi zamijenio DES. Pojačala se potreba za novim algoritmom kako se tehnologija dalje razvijala i potencijalni napadi postajali sve jači.

Razni pokušaji krekiranja pokazali su da je manje teško razbiti algoritam nego što se prije mislilo. 1998. godine distribuirana.net uspjela probiti DES traje 39 dana.

Početkom 1999. godine duboka pukotina Zaklade Electronic Frontier Foundation smanjila je vrijeme na nešto više od 22 sata. To je značilo kraj DES-a, budući da je napad ove prirode sada bio nadomak dobro raspoloženog protivnika.

Glavni problem bio je mali ključni prostor, a novi algoritam je izuzetno potreban. To je problem jer će trebati još nekoliko godina da se NIST složi na algoritmu koji je postao zamjenski standard, naprednom standardu šifriranja (AES)..

Dok se odlučivalo o šifri za AES, 3DES je predložen kao mjera zaustavljanja. To uključuje pokretanje algoritma DES tri puta, s tri odvojene tipke. U 1999. godini ponovo je potvrđen DES, ali s 3DES kao idealnim algoritmom. Normalni DES dozvoljen je samo u starijim aplikacijama.

3DES je postao široko rasprostranjeni algoritam šifriranja, iako je zbog velike uporabe resursa i sigurnosnih ograničenja u većini slučajeva korištenja zamijenjen AES-om..

Razumijevanje algoritma DES

Prije nego što možemo razgovarati o pojedinostima 3DES-a, važno je razumjeti DES algoritam iz kojeg proizilazi. Pa krenimo odmah na početku.

Koristimo šifriranje za pretvaranje podataka iz otvorenog teksta u šifrični tekst, što je informacija kojoj napadači ne mogu pristupiti (sve dok koristimo odgovarajuće algoritme).

Algoritmi za šifriranje u osnovi su složene matematičke formule. Kada je u pitanju šifriranje nečega poput "Idemo na plažu", mnogi se zbune. Uostalom, kako možete primijeniti matematiku na stvari poput slova i znakova?

Kodiranje teksta

Realnost je da računala ne trguju slovima i znakovima. Umjesto toga, oni rade na sustavu 1 i 0 poznat kao binarni. Svaki je 1 ili 0 poznat kao malo, a zbirka od osam njih poznata je kao bajt.

Možete ga pogledati ručno ili koristiti internetski pretvarač da biste vidjeli da u binarnom formatu "Idemo na plažu" postaje:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111 00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000 01100010 01100101 01100001 01100011 01101000

blokovi

Kad se podaci šifriraju, dijele se u zasebne blokove za obradu. DES ima 64-bitnu veličinu bloka, što u suštini znači da svaki blok odgovara mješavini od 64 jedinice i nule. Naš prvi blok (prvih 64 znamenki binarnog prikaza prikazanog gore) bio bi:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Naš drugi bi bio:

00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000

A naš konačni blok bio bi:

01100010 01100101 01100001 01100011 01101000

punjenje

Možda ste primijetili da je naš treći blok dugačak samo 40 bita. Prije nego što se može šifrirati, treba ga izgraditi do 64-bitne veličine bloka. To je učinjeno sa punjenje, što uključuje dodavanje dodatnih informacija u blok da biste ih dovršili. To se može učiniti s nekoliko različitih shema, a može poslužiti i da se šifrirane informacije teže ispucaju, ali to nećemo ući u ovaj članak.

Raspored DES tipki

Algoritmi za šifriranje koriste tipke za dodavanje podataka koji će izmijeniti krajnji rezultat postupka. Ako DES uključuje samo korake poput permutacije i S-okvira (permutacija je objašnjena u nastavku, dok su S-okviri obuhvaćeni u zamjena odjeljak), sve što bi napadač trebao učiniti jest otkriti detalje algoritma, a zatim svaki korak koji je učinjen obrnutim da otkrije početnu poruku.

Budući da je većina naših algoritama široko poznata, to ne bi dovelo puno sigurnosti. Umjesto toga, dodaju se tajni ključevi za promjenu izlaza na način koji se ne može predvidjeti samo poznavanjem algoritma (sve dok se koristi dovoljno složen algoritam).

DES započinje jednim tipkom, koja se koristi za izradu pod-tipki koje se primjenjuju u svakom krugu. Ovo je 64-bitni ključ koji je iste veličine kao i naši blokovi. Recimo da je naš ključ:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Sada se ovaj ključ uključuje u binarnom formatu, a to je način na koji se podaci izražavaju kad ih računala obrađuju. Kad se ljudi bave ključevima, obično će se pojaviti kao kombinacija znakova, ovako nešto:

kj329nf982bc9wn1

U DES-u, prvi korak izrade naših okruglih tipki je permutacija ključa (pomicanje po njemu) u skladu sa sljedećom tablicom:

3DES 2a

Tijekom permutacije, svaki dio našeg izvornog ključa premješta se na novu poziciju kako je naznačeno u tablici. Budući da ćelija u gornjem lijevom kutu (od C) kaže 57, prvi broj našeg permutiranog ključa bit će broj na 57. mjestu našeg starog bloka:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Druga ćelija kaže 49, što znači da će druga znamenka našeg novog ključa biti broj koji se nalazi na 49. mjestu našeg starog bloka:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Treća ćelija kaže 41, pa tražimo znamenku na 41. poziciji:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Do sada, naš ključ sastoji se od "110”.

Ostatak ključa raspoređen je na isti način, prema vrijednostima tablice. Pomičemo se lijevo udesno, a kad stignemo do kraja reda, skočimo dolje na sljedeći, baš kao i normalno. Jednom tablica C je gotov, skočimo na tablica D dovršiti drugu polovicu ključa.

Ne postoji jednostavan način prenošenja čitavog bloka prema početnoj tablici permutacije. Možete sve napraviti ručno ili napisati skriptu za to (ili čak imati sreće i naći je u dubini interneta), ali mi ćemo se prevariti i izmisliti:

1100010 1010010 1010101 0101010 1010000 1111001 0001011 1000111

Možda ste zabrinuti da mi stvaramo neke brojeve u ovom vodiču, ali stvarnost je da to zapravo i nije važno. Nitko više ne kriptira podatke, sve se to provodi putem programa. Najkritičniji aspekt ovog vodiča je da steknete jasnu predodžbu o konceptima s kojima se bavimo. Sami brojevi služe samo da vam pomognu prikazati što se događa.

Neki su čitatelji možda primijetili da tablica (a sada je naš ključ) ima samo 56 bita, a ne 64. To je zato što je preskočen svaki osmi bit. Ovo je artefakt iz starijih dana tehnologije, kad je bilo važno imati paritetne bitove provjere, koji su provjeravali je li ključ primljen ispravno. Ti bitovi provjere pariteta znače da DES u praksi ima sigurnost 56-bitnog ključa.

Tablice C i D daju nam ključ koji ima dvije polovice 28 bita. Ponekad se polovine nazivaju C i D, ali u ovom članku ćemo ih nazvati L i R, za lijevu i desnu stranu. Naša lijeva strana je:

1100010 1010010 1010101 0101010

Iako je naše pravo:

1010000 1111001 0001011 1000111

Sljedeći korak je pomicanje ključa za jedan ili dva razmaka ulijevo, ovisno o krugu. Točan broj razmaka odlučuje se prema sljedećoj unaprijed određenoj tablici:

Okrugli broj Broj lijevih smjena
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

Pa uzmimo lijevu i desnu polovicu:

L 1010010 1010010 1010101 0101010

R 1010000 1111001 0001011 1000111

I pomaknite obojicu jednu poziciju ulijevo, jer u prvom krugu postoji pomak 1 prema tablici (broj na lijevom kraju pomakne se na desni kraj).

Potključak prvog kruga:

L 0100101 0100101 0101010 1010101

R 0100001 1110010 0010111 0001111

U drugom krugu piše i stol 1, pa će se ovaj rezultat opet izmijeniti pomicanjem svakog položaja broj jedan ulijevo.

Druga runda potključ:

L 1001010 1001010 1010101 0101010

R 1000011 1100100 0101110 0011110

U trećem krugu brojevi će biti pomjereni za dva mjesta ulijevo, jer sada tablica kaže 2.

Potključak trećeg kruga:

L 0101010 0101010 1010101 0101010

R 0001111 0010001 0111000 1111010

U sljedećim krugovima brojevi se pomiču ulijevo prema udaljenostima navedenim u tablici, pri čemu se svaki pomak primjenjuje na rezultat prethodnog kruga. Na kraju, to nam daje šesnaest različitih potključeva, po jedan za svaki krug DES procesa.

Sljedeći korak je još jedna permutacija prema PC2 tablici prikazanoj dolje:

des-3a

Do sada biste trebali biti upoznati s permutacijama, tako da nećemo ulaziti u proces detaljno. Ako želite vidjeti kako to funkcionira detaljnije, pogledajte objašnjenje na početku ovog odjeljka. Iako su položaji preseljenja različiti, postupak je isti.

Svaka od 16 tipki dobivenih tijekom postupka pomicanja sada se izmjenjuju prema tablici, a broj s 14. mjesta pomaknuo se na prvo mjesto, 17. na drugo, 11. na treće, itd...

Ako pažljivo pogledate tablicu, primijetit ćete da postoji samo 48 bita, a ne 56 bita koje smo prethodno imali. Taj je postupak poznat kao kompresijska permutacija.

Također možete vidjeti da gornja polovica tablice sadrži brojeve između jedan i 28, dok donja polovica sadrži brojeve od 29 do 56. To lijevu i desnu polovicu naših potključeva drži odvojeno, a to je ispod naznačeno većim razmakom u sredini ključeva.

Opet ćemo varati i sastavljati brojeve. Recimo da su nam cijeli ovaj proces dali sljedeće potključeve:

Prvi krug:         010101 010101 101010 110100 101001 100101 101010 101010

Drugo kolo:         011010 110101 101110 110010 010100 110010 111101 101101

Treće kolo:     010100 100110 110110 101010 100110 011000 101011 011001

Četvrti krug:         011001 110101 011001 110101 000011 001011 010101 010101

Peto kolo:         110101 001101 010101 010101 010011 001011 010111 100101

Šesta runda:           010111 110101 011001 111001 101001 100101 101010 101010

Sedmo kolo:     110101 111010 101110 101010 100110 010110 111011 001110

Osmo kolo:       011001 110101 010101 001001 010011 001011 010100 101010

9. kolo:         111011 011010 011110 100010 100010 010110 110011 110010

10. krug:             011010 010101 101110 101001 010010 010110 111000 101010

11. kolo:             110101 001101 101110 101010 100101 100101 101010 001010

12. krug:             101001 100100 101001 101010 100110 011000 101011 011001

13. kolo:             010010 010010 010101 010101 010110 110001 100101 101010

14. kolo:             101001 100110 010101 011101 010001 001010 110010 111110

15. krug:             011001 011010 011001 110101 001001 011001 100101 101101

16. kolo:             010010 100110 010101 010101 010001 101000 110010 111010    

Ovaj postupak pomicanja rezultira u svakom bitu od početnog ključa koji se koristi u oko 14 od 16 potključeva, iako se neki bitovi koriste malo više nego drugi..

Početna permutacija

Jednom kada se podaci podijele u blokove i dodaju ako je potrebno, vrijeme je za početak postupka šifriranja DES-a. Vratit ćemo se na potključeve koje smo tek stvorili u kasnijoj fazi. Prvi korak poznat je kao početna permutacija, pri čemu se podaci preuređuju prema sljedećoj tablici:

3DES-12

Ovaj početni postupak permutacije algoritam više ne čini sigurno. To je zato što ne uključuje unos nijednog ključa i lako se može preokrenuti. Algoritam je izvorno dizajniran na taj način jer je u određenim kontekstima olakšao implementaciju.

Budući da smo prekrili permutacije nekoliko puta, preskočit ćemo ovdje svako veliko objašnjenje. Vratite se natrag Raspored DES tipki odjeljak ako vam trebaju dodatne informacije o tome kako rade.

Uzmimo prvi blok iz poruke "Idemo na plažu" koju smo dobili u Blok odjeljak pod Razumijevanje algoritma DES:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Otkako prva ćelija kaže 58, s 58. mjesta odabrali bismo broj:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Tada bismo uzeli broj s 50. mjesta:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

A broj s 42. mjesta:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

To nam daje „110" daleko. Ostatak ćemo sastaviti:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

Kada je početna permutacija završena, podaci se prelaze na sljedeći korak.

Podjela blokova

Jednom kada su podaci prošli početnu permutaciju, dijele se na dvije polovice. Uzimamo naš blok koji je upravo prošao početnu permutaciju:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

I razdvojit ćemo ga u dva bloka, lijevi blok (sastavljen od prvih 32 znamenke), poznat kao L0:

L0    11010111 01001010 10101000 10011101

I desni blok (sastavljen od druge 32 znamenke), poznat kao R0:

R0    01001011 10110101 10000111 10101001

F funkcija

Sada kada je blok podijeljen, vrijeme je za funkciju F. U prvom krugu nanosit će se samo na desnu polovicu bloka, dok se lijeva polovica drži do kraja sve do kasnije. Desna strana podvrgava se sljedećim četiri koraka u sklopu F funkcije:

  • Permutacija ekspanzije (E na dijagramu)
  • Miješanje ključeva (⊕ na dijagramu)
  • Zamjena (svaki S1, S2 itd. U dijagramu)
  • Permutacija (P u dijagramu)

des-5

Permutacija ekspanzije

Proširenje permutacije ostvaruje tri stvari. Najvažnije je da omogućava da pojedinačni bitovi ulaznih podataka utječu na izlaz dva druga bita, uzrokujući efekt lavine. Također pravi desnu polovicu od 48 bita, tako da je iste veličine kao potključ za sljedeći korak. Drugi učinak permutacije proširenja je taj što čini izlaz duži od ulaza. To mu omogućuje komprimiranje u postupku supstitucije.

Bitovi su raspoređeni prema sljedećoj tablici. Neki se bitovi nalaze u tablici dvaput, a to je način da se blok proširio s 32 na 48 bita:

des - 6a

Budući da prva ćelija kaže 32, uzimamo naš desni blok i odabiremo broj s 32. položaja, baš kao što smo to radili u ostalim gore navedenim primjerima permutacije:

R0    01001011 10110101 10000111 10101001

Zatim uzimamo brojeve iz prve pozicije, druge pozicije i tako dalje, sve gore, sve dok ne dođemo do donjeg desnog ugla bloka. Otkad postoji 1 u ovoj ćeliji zadnja znamenka bit će i broj koji se pojavljuje na prvoj poziciji našeg bloka.

Recimo da nam permutacija proširenja daje novi 48-bitni blok:

101110 100110 100100 000000 001100 001110 101101 011110

Miješanje ključeva

Nakon što se blok proširi na 48 bita, došlo je vrijeme za primjenu potključa za prvi krug, kojeg smo dobili u DES ključni raspored odjeljak iznad. Blok modificira potključ pomoću šifre XOR.

XOR šifra je dodatna šifra koja slijedi jednostavan postupak, posebno u usporedbi s ostalim elementima o kojima smo već govorili.

U XOR šifri:

0 + 0 = 0

1 + 0 = 1

1 + 1 = 0

Dakle, recimo da morate XOR sljedeće dvije brojeve u binarnom obliku:

1101

0101

Svaka znamenka dodala bi se onoj ispod nje. Prema tri prikazana pravila, rezultat je:

1000

Za dovršavanje koraka miješanja ključeva uzimamo desnu stranu bloka koju smo upravo proširili na 48 bita i prvu okruglu tipku. Tada izvodimo dodatak XOR:

Blok:                      101110 100110 100100 000000 001100 001110 101101 011110

Zaokruži jedan ključ:     010101 010101 101010 110100 101001 100101 101010 101010

XOR rezultat:             111011 110011 001110 110100 100101 101011 000111 110100

Rezultat rada XOR prenosi se na sljedeći krug.

zamjena

Zamjena dodaje zbunjujuće podatke. To se obično radi pomoću tablica za pretraživanje, koje su poznate i kao zamjenski okviri ili S-kutije. DES koristi osam zasebnih tablica ili S-okvira, od kojih je svaka za svaki 6 bita podataka. Sljedeća tablica prikazuje osam S-kutija DES:

des - 7

Osam zasebnih S-kutija koriste se za prevođenje svakog 6-bitnog ulaza u 4-bitni izlaz. Prvi korak u procesu je uzeti znamenke na početku i na kraju 6-bitnog segmenta, a zatim pretvoriti tu binarnu vrijednost u decimalnu.

Uzmimo podatke koje smo upravo završili s XORingom u prethodnom koraku:

111011 110011 001110 110100 100101 101011 000111 110100

Pogledati ćemo prvi 6-bitni segment kako bismo vam pokazali kako funkcionira postupak zamjene:

111011

Budući da su i prvi i zadnji broj 1, to nam daje vrijednost 11. Zatim pretvaramo 11 od binarnih do decimalnih što nam daje 3. To su samo ekvivalentne vrijednosti, napisane na različite načine. Zamislite to kao pretvaranje računalnog jezika u ljudski jezik. Pretvorbu za sebe možete provjeriti internetskim kalkulatorom ako želite.

Zatim uzmemo četiri srednje znamenke prvog 6-bitnog segmenta:

111011

I pretvorite ih iz binarnih zapisa u decimalne. 1101 prevodi na broj 13.

Uzmimo ova dva broja i pogledamo ih u S1 stol:

                des - 7a

Naš prvi broj, 3, govori nam da pogledamo u trećem redu, dok je naš drugi broj, 13 govori nam da pogledamo u 13. stupac. Vrijednost u trećem redu 13. stupca je 0.

Sada kada smo pogledali svoj broj u tablici, pretvaramo ga u četveroznamenkasti binarni zapis. Nula se obično piše kao 0 u binarnom obliku, ali 0000 je isti, a ovo je format koji je najprikladniji za naše svrhe.

Nakon ovog postupka, S-box pretvara naš prvi 6-bitni odjeljak podataka (111011) u drugu 4-bitnu vrijednost (0000). Čini se iskrivljenom, ali ova tehnika pomaže u daljnjem zatamnjivanju odnosa između šifričnog teksta i otvorenog teksta s kojim je povezana.

Sljedeći 6-bitni odjeljak podataka tada prolazi kroz isti postupak, ali umjesto toga koristi okvir S2 prikazan gore. Treći odjeljak koristi tablicu S3 i tako dalje, sve dok konačni odjeljak ne izvrši supstituciju kroz tablicu S8.

Opet ćemo varati za ostale vrijednosti. Recimo da nam zamjenski okviri daju rezultat:

0000 1010 1100 1001 0100 1001 0111 0001

Jednom kada svaki odjeljak podataka prođe kroz svoju S-okvir, prelazi na sljedeći korak.

Permutacija

Posljednja faza F funkcije je još jedna permutacija, koristeći sljedeću tablicu:des - 8a

Do sad biste trebali imati pristojno razumijevanje kako permutacije prebacuju znamenke iz starog bloka na drugo mjesto u novom bloku, tako da nećemo ponovo ulaziti u njega.

Recimo da ta permutacija uzima naš prethodni rezultat:

0000 1010 1100 1001 0100 1001 0111 0001

I daje nam izlaz:

0101 0110 1001 0101 0010 0100 0101 0010

Sada kada je permutacija završena, završili smo s četiri koraka F funkcije u ovom krugu. U matematičkom zapisu ta je vrijednost poznata kao f (R0, K1). To znači da je rezultat funkcija (f) početne desne strane bloka (R0) i potključa prvog kruga (K1).

XOR s lijevim blokom

Sjećate se kako smo podijelili blok na pola prije nego što smo započeli korake funkcije F? Ostavili smo lijevu stranu bloka (L0), dok je desna strana prošla kroz svaki od tih procesa. Pa, sada je vrijeme da se L0 ponovno pokrene.

Uzimamo pravu stranu koju smo upravo obradili f (R0, K1) i dodajte staroj lijevoj strani (L0) pomoću XOR šifre. To nam daje R1, rezultat našeg prvog kruga:

f (R0, K1):                         0101 0110 1001 0101 0010 0100 0101 0010

L0:                                    1101 0111 0100 1010 1010 1000 1001 1101

XOR rezultat (R1):              1000 0001 1101 1111 1000 1100 1100 1111

Pogledajte u Miješanje ključeva odjeljak iznad ako vam treba podsjetnik o tome kako funkcionira XOR šifra.

Još 15 krugova…

Ako ste stigli do sada, DES se vjerojatno čini napornim procesom. Ali još nije ni blizu završetka. Podaci idu kroz četiri koraka F funkcije, nakon čega slijedi XOR, još 15 puta, u ukupno 16 krugova.

U drugom krugu uzimamo originalnu, netaknutu verziju desne strane bloka (R0) i napravimo je novom lijevom stranom (L1). U međuvremenu, uzimamo rezultat našeg prvog kruga i šaljemo ga preko F funkcije. Sve se događa isto kao i prošli put, no ovaj put umjesto njega koristi se potključ za drugo kolo. Recimo da nam ovaj proces daje rezultat:

f (R1, K2):        1011 0111 1000 1011 1001 1101 1001 1110

Zatim XOR daje rezultat s L1, što je zapravo R0 (to smo dobili u Dijeljenje blokova odjeljak). To nam daje rezultat drugog kruga, R2:

f (R1, K2):           1011 0111 1000 1011 1001 1101 1001 1110

L1:                      0100 1011 1011 0101 1000 0111 1010 1001

R2:                     1111 1100 0011 1110 0001 1010 0011 0111

Ovaj se korak može činiti pomalo zbunjujućim, ali prema Feistelovoj shemi stara desna strana postaje nova lijeva, dok rezultat operacije postaje nova desna strana.

Sljedeći dijagram daje vam vizualni prikaz onoga što se događa. IP predstavlja početnu permutaciju, F je stand-up za cijelu F funkciju, bo simbolizira XOR funkciju, a strelice označavaju svaku stranu bloka koji se kreće između lijeve i desne:

des-9

Točna formula za svaki korak je:

Ln = Rn-1

Rn = Ln-1 + f(Rn-1,Kn)

Gdje:

L = Lijeva polovica bloka (počevši od L0 kada je blok u početku podijeljen)

R = desna polovina bloka (počevši od R0 kada je blok u početku podijeljen)

n = okrugli broj (koji počinje s 0, kad je blok prvotno podijeljen)

f = F funkcija

Kn = potključ za okrugli n

Prema formuli i dijagramu, u trećem krugu R1 postaje nova lijeva polovica (L2), dok se R2 obrađuje kroz F funkciju. Recimo da nam to daje rezultat:

f (R2, K3)        1001 0111 0000 1011 1101 0111 1011 1011

Tada izračunavamo rezultat trećeg kruga (R3), koristeći šifru XOR, baš kao i prije:

f (R2, K3):           1011 0111 1000 1011 1001 1101 1001 1110

L2:                      0100 1011 1011 0101 1000 0111 1010 1001

R3:                      1111 1100 0011 1110 0001 1010 0011 0111

Isti se postupak nastavlja sve do petnaestog kruga, pri čemu se blokovi prebacuju, a sljedeći potključak se koristi u svakom krugu. U 16. i posljednjem kolu blokovi se ne prebacuju. Umjesto toga, oni se kombiniraju u 64-bitni blok. Uzdržavanje od zamjene blokova u ovoj posljednjoj fazi omogućava da se algoritam koristi i za šifriranje i za dešifriranje.

Recimo da nam posljednji krug daje rezultat:

1010 0101 0100 1011 1001 0001 0100 1000 0101 1010 1101 0001 1101 1001 1001 1101

Završna permutacija

Ova permutacija je obrnuta od početne permutacije, i opet, ona ne daje dodatnu vrijednost sigurnosti. Preuređuje podatke prema sljedećoj tablici:

des-10a

Ova tablica permutacije djeluje isto kao i prethodna. Budući da je to posljednji korak procesa šifriranja, rezultat će biti šifrirani tekst za prvi blok "Idemo na plaži". Recimo da je šifrirani blok:

0100 1001 0011 0010 1001 0101 0111 0100 1011 1010 0111 0101 0111 1010 0101 0101

Da ste željeli pravi šifrirani tekst za „Idemo na plažu“, mogli ste jednostavno preskočiti cijeli proces učenja i preći ravno na online alat za šifriranje DES-a. Ako rečenicu unesemo zajedno s tipkom (recimo kj329nf982bc9wn1), alat nam daje šifrirani tekst:

U2FsdGVkX19Pienyu3w3q4zCd2IPKEPUWBzu3AeyVu2H3FeimZe6hA

Ako želite, ključ i šifrični tekst možete pretvoriti u binarni oblik i potom usporediti kako šifratek prvog bloka usklađuje se sa cjelokupnim procesom koji je istaknut.

DES dešifriranje

U DES-u je postupak dešifriranja nevjerojatno jednostavan. Feistel struktura algoritma omogućava lako vraćanje unatrag. Postupak se pokreće gotovo potpuno isti za dešifriranje informacija. Jedina je razlika što se potključevi primjenjuju obrnuto. Ovo je učinkovito postavljanje, jer znači da se isti postupak i softver i hardver mogu koristiti u postupku šifriranja i dešifriranja..

Za dešifriranje podataka prvo se prolazi kroz početnu permutaciju, zatim se blok podijeli, a desna polovica prođe kroz F funkciju. Razlika je u tome što se u prvom krugu dešifriranja primjenjuje 16. potključ. Sve ostalo ide normalno. Kad je funkcija F dovršena, ona se XORed lijevom stranom bloka.

Blokovi se prebacuju i rezultat prolazi isti postupak za drugi krug, s jedinom iznimkom da se primijeni 15. potključ. Taj se postupak nastavlja sve do 16. kruga, kada se koristi 1. potključ.

Baš kao i u postupku šifriranja, blokovi se ne mijenjaju u posljednjoj fazi, a zatim se podaci podvrgavaju konačnoj permutaciji. Ovim se završava postupak dešifriranja, što rezultira izvornim očiglednim tekstom poruke.

3DES

Kako su sigurnosne slabosti DES-a postale očiglednije, 3DES je predložen kao način proširivanja veličine ključa bez potrebe za izgradnjom potpuno novog algoritma. Umjesto da koristi jednu tipku kao u DES-u, 3DES algoritam vodi tri puta, s tri 56-bitne tipke:

  • Jedan je naviknut šifriranje otvoreni tekst.
  • Ključ dva je naviknut Dekodiranje tekst koji je šifrirao ključ.
  • Ključ tri je naviknut šifriranje tekst koji je dešifrirao ključ tri.

U svakoj fazi slijedi cjelokupni postupak DES kao što je gore opisano.

Možda se pitate "Kako primjena dešifriranja u drugom koraku može poboljšati sigurnost?"

Odgovor je da koristi zasebnu tipku. Ako se prvi ključ koristio i za dešifriranje podataka u drugom koraku, podaci bi bili tamo gdje su započeli.

No, budući da koristi drugačiji ključ, postupak dešifriranja zapravo ne služi za dešifriranje podataka. Može se činiti logično perverznim, no dešifriranje zasebnim tipkom služi samo za dodatni pomak podataka.

Nakon što je drugi ključ "dešifrirao" podatke, treći se ključ primjenjuje za ponovno šifriranje. Rezultat je 3DES šifrični tekst.

3DES je strukturiran na taj način jer omogućava da implementacije budu kompatibilne s jednom tipkom DES, dvije tipke DES i tri ključa DES (one su obrađene u sljedećem odjeljku). Ovo neće raditi ako se enkripcija koristi u sva tri koraka.

Opcije 3DES tipkanja

Tehnički se 3DES može implementirati s tri različite ključne konfiguracije. Unatoč tome, druga i treća opcija su nesigurne i nikada se ne smiju provoditi.

  • Opcija tipke jedna - Ova opcija koristi tri neovisne tipke i najsigurnija je.
  • Ključna opcija dva - U ovoj konfiguraciji prvi i treći ključ su isti.
  • Opcija tri tipke - Ovo koristi tri identična ključa. Kada se koriste identični ključevi, postupak dešifriranja u drugoj fazi poništava prvo šifriranje, ostavljajući samo konačno šifriranje za promjenu podataka. Zbog toga je rezultat rezultat isto kao i obični DES.

Proces 3DES: Opcija tipke jedna

Budimo iskreni, čitava 3DES procedura može vam zavrtjeti u glavi, posebno ako ste novi u kriptografiji. Da biste ga pomogli u utapanju, evo kratkog sažetka cijele sheme šifriranja algoritma 3DES:

Plaintext ulazi u algoritam 3DES i prvi je šifrirano ključem u sljedećim koracima:

    • Ključni raspored - 16 potključeva izvedeni su iz ključnog

    • Početna permutacija

    • Blok je podijeljen na lijevu i desnu polovicu

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključem za rundu

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Napravite staru desnu stranu novu lijevu stranu, a rezultat novu desnu stranu

        Ponovite gornje korake 14 puta

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključem za 16. kolo

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Kombinirajte lijevu i desnu stranu bloka

    • Završna permutacija

Uzmite tekst koji je kodiran ključem, a zatim ga pošaljite putem Postupak "dešifriranja" sa ključ dva:

    • Ključni raspored - 16 potključeva izvedeno je iz ključa dva

    • Početna permutacija

    • Blok je podijeljen na lijevu i desnu polovicu

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključevima za krug (počevši od 16. potključa za dešifriranje)

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Napravite staru desnu stranu novu lijevu stranu, a rezultat novu desnu stranu

        Ponovite gornje korake 14 puta

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključevima za prvo kolo

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Kombinirajte lijevu i desnu stranu bloka
    • Završna permutacija

Uzmite podatke koje je ključ dva dešifrirala, a zatim ih pošaljite putem hrkripcijski postupak s ključ tri:

    • Ključni raspored - 16 potključeva izvedeno je iz ključne tri

    • Početna permutacija

    • Blok je podijeljen na lijevu i desnu polovicu

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključem za rundu

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Napravite staru desnu stranu novu lijevu stranu, a rezultat novu desnu stranu

        Ponovite gornje korake 14 puta

      • Desna polovica se šalje preko F funkcije

        • Permutacija ekspanzije

        • XOR s potključem za 16. kolo

        • zamjena

        • Permutacija

      • XOR rezultat F funkcije s lijevom stranom

      • Kombinirajte lijevu i desnu stranu bloka

    • Završna permutacija

Rezultat je 3DES šifrični tekst.

Sigurnost 3DES-a

Sigurnost 3DES-a ovisi o tome koja se opcija tipki koristi. Opcija prve tipke uključuje tri različita 56-bitna tipka, što joj daje ukupnu duljinu od 168 bita. Učinkovita duljina znatno se smanjuje napadima „iznutra u sredini“, koji smanjuju njegovu stvarnu sigurnost na 112 bita.

Napadi "sastani u sredini" korisni su protiv shema šifriranja koje isti algoritam ponavljaju nekoliko puta. Tehnika pohranjuje neposredne vrijednosti iz svake faze šifriranja, a zatim koristi te informacije kako bi radikalno poboljšala vrijeme potrebno za obradu sile algoritma.

Opcije dvije i tri imaju znatno manje tipke i podložne su i napadima koji su poznati - otvoren i odabrani - kao i ostali.

Poznati napadi otvorenog teksta mogući su kada protivnik ima pristup i očiglednom i šifričnom tekstu poruke. Ako je algoritam podložan tim napadima, napadač se može poslužiti ovim podacima da zaključi ključ koji im omogućuje da ispucaju sve ostale podatke koji su šifrirani istim ključem.

Napad izabranog očiglednog teksta je sličan, ali uključuje napadač otkrivanje ključa uspoređujući šifartekse s proizvoljnim očiglednim tekstovima.

Zbog tih ranjivosti i sveukupno malih malih veličina ključeva, dvije i tri tipkovnice su nesigurne i ne treba ih provoditi.

Je li 3DES siguran?

Budući da će 3DES biti uništen u sljedećih nekoliko godina, najbolje je koristiti druge algoritme. Iako se opcija ključa još uvijek smatra sigurnom za mnoge aplikacije, nema puno dobrih razloga zbog kojih bi se trebala koristiti umjesto alternative poput AES-a.

Iako je 3DES važno mjesto u kriptografiji kao nastavak DES-a, godine slave su završene i vrijeme je da krenemo dalje. Ako želite dobro osigurati svoje sustave u budućnosti, umjesto toga trebali biste koristiti moderniji algoritam.

Povezano: Objašnjene su uobičajene vrste šifriranja

Plan X DoD licencirano pod CC0

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

94 − 91 =

Adblock
detector