Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Kriptimi duke përdorur standardin des. Skema e enkriptimit të algoritmit DES

Të cilin ANSI e quan algoritmin e enkriptimit të të dhënave DEA (Data Encryption Algorithm), dhe ISO e quan DEA-1, është bërë një standard botëror në 20 vjet. Gjatë viteve të ekzistencës së tij, ajo i ka rezistuar sulmeve të ndryshme dhe, me disa kufizime, konsiderohet ende kriptorezistente.

DES është një shifër blloku që kodon të dhënat në blloqe 64-bitësh. Një bllok 64-bitësh i tekstit të thjeshtë futet në njërin skaj të algoritmit dhe një bllok teksti shifror 64-bit del në skajin tjetër. DES është algoritmi simetrik: Kriptimi dhe deshifrimi përdorin të njëjtin algoritëm dhe çelës (përveç dallimeve të vogla në përdorimin e çelësit). Gjatësia e çelësit është 56 bit. (Një çelës zakonisht paraqitet si një numër 64-bitësh, por çdo bit i tetë përdoret për barazi dhe injorohet. Bitët e barazisë janë më të vegjlit copa të rëndësishme bajtë e çelësit.) Çelësi, i cili mund të jetë çdo numër 56-bitësh, mund të ndryshohet në çdo kohë.

Forca kriptografike përcaktohet plotësisht nga çelësi. Blloku themelor i ndërtimit të DES është kombinimi i zëvendësimeve dhe permutacioneve. DES përbëhet nga 16 cikle.

Pamje e përgjithshme e ciklit të konvertimit:

Nëse L i dhe R i janë gjysma e majtë dhe e djathtë që rezultojnë nga përsëritja e i-të, K i është çelësi 48-bit për ciklin i, dhe f është një funksion që kryen të gjitha zëvendësimet, permutacionet dhe XOR-të në çelës, atëherë një cikli i konvertimit mund të përfaqësohet si:

Duke marrë parasysh zëvendësimin F i (*) dhe ndërrimin T (*), cikli i transformimit mund të përfaqësohet siç tregohet në Fig.

Mund të shihet se çdo cikël DES është një shifër kompozimi me dy transformime sekuenciale - zëvendësimi F i (*) dhe ndërrimi T (*) (me përjashtim të ciklit të fundit, të gjashtëmbëdhjetë, ku ndërrimi është hequr).

Zëvendësimi:

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

është një involucion, pasi

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)

Një zëvendësim

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

është gjithashtu një involucion, pasi

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

Nëse shënojmë permutacionet fillestare dhe përfundimtare si (IP) dhe (IP) - 1, atëherë transformimi i drejtpërdrejtë DES (kriptimi) zbaton funksionin:

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

dhe transformimi i kundërt DES (deshifrimi) zbaton funksionin:

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

Kështu, DES është një shifër Feistel dhe është krijuar për të kryer veti e dobishme: I njëjti algoritëm përdoret për enkriptim dhe deshifrim. I vetmi ndryshim është se çelësat duhet të përdoren në rend i kundërt.


Kjo do të thotë, nëse çelësat K 1, K 2, K 3, ..., K 16 janë përdorur gjatë kriptimit, atëherë çelësat e deshifrimit do të jenë K 16, K 15, K 14, ..., K 1. Algoritmi përdor vetëm aritmetikë standarde 64-bit dhe operacionet logjike, kështu që mund të zbatohet lehtësisht në harduer.

DES funksionon në një bllok teksti të thjeshtë 64-bit. Pas përzierjes fillestare, blloku ndahet në gjysmën e djathtë dhe të majtë me nga 32 bit secila. Më pas kryhen 16 transformime (funksioni f) në të cilët kombinohen të dhënat me çelësin. Pas ciklit të gjashtëmbëdhjetë, gjysma e djathtë dhe e majtë kombinohen dhe algoritmi përfundon me një ndryshim përfundimtar (e anasjellta e origjinalit). Në çdo cikël (shih figurën), bitet kryesore zhvendosen dhe më pas zgjidhen 48 bit nga 56 bit kyç. Gjysma e djathtë e të dhënave zgjerohet në 48 bit duke përdorur ndërrimin e zgjerimit, XORohet me 48 bit të çelësit të zhvendosur dhe të ndërruar, kalohet nëpër 8 kuti S për të formuar 32 bit të rinj dhe ndërrohet përsëri. Këto katër operacione kryhen nga funksioni f.

Rezultati i f kombinohet më pas me gjysmën e majtë duke përdorur një XOR tjetër. Si rezultat i këtyre veprimeve, shfaqet një gjysmë e re e djathtë, dhe e djathta e vjetër bëhet një gjysmë e re e majtë. Këto hapa përsëriten 16 herë, duke rezultuar në 16 cikle DES.

Standardi rus - GOST 28147-89

GOST 28147-89 është një shifër blloku me një çelës 256-bit dhe 32 cikle konvertimi, që funksionon në blloqe 64-bit. Algoritmi kripto gjithashtu përdor çelës shtesë, e cila diskutohet më poshtë. Për kriptim Teksti i thjeshtë së pari ndahet në gjysmën e majtë dhe të djathtë L dhe R. Në ciklin i-të, përdoret nënçelësi K i:

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

Funksioni f zbatohet si më poshtë. Së pari, gjysma e djathtë dhe nënçelësi i i-të shtohen moduli 2 32. Rezultati ndahet në tetë nënsekuenca 4-bitësh, secila prej të cilave futet në kutinë e vet S. GOST përdor tetë kuti S të ndryshme, 4 bitet e para futen në kutinë e parë S, 4 bitat e dyta në kutinë e dytë S, etj. Çdo kuti S është një ndërrim i numrave nga 0 në 15. Për shembull, S-box mund të duket si: 7,10,2,4,15,9,0,3,6,12,5,13,1,8,11. Në këtë rast, nëse hyrja e kutisë S është 0, atëherë dalja është 7. Nëse hyrja është 1, dalja është 10, etj. Të tetë kutitë S janë të ndryshme, ato janë në fakt material kyç shtesë. Daljet e të tetë kutive S kombinohen në një fjalë 32-bit, pastaj e gjithë fjala rrotullohet majtas me 11 bit. Më në fund, rezultati XORohet me gjysmën e majtë për të krijuar një gjysmë të re të djathtë, dhe gjysma e djathtë bëhet gjysma e re e majtë. Për të gjeneruar nënçelësat, çelësi origjinal 256-bit ndahet në tetë blloqe 32-bitësh: k 1, k 2, ..., k 8. Çdo cikël përdor nënçelësin e vet. Deshifrimi kryhet në të njëjtën mënyrë si enkriptimi, por rendi i nënçelësave k i është i përmbysur. Standardi nuk specifikon se si krijohen kutitë S.

Dallimet kryesore midis DES dhe GOST

Dallimet kryesore midis DES dhe GOST janë si më poshtë:

  • DES përdor një procedurë komplekse për të gjeneruar nënçelësat nga çelësat. Në GOST kjo procedurë është shumë e thjeshtë;
  • në DES ka një çelës 56-bit, dhe në GOST është 256-bit. Nëse shtojmë permutacione sekrete të kutive S, atëherë vëllimi i përgjithshëm i informacionit sekret GOST do të jetë afërsisht 610 bit;
  • Kutitë DES S kanë hyrje dhe dalje 6-bitëshe dhe dalje 4-bitëshe, ndërsa kutitë S-GOST kanë hyrje dhe dalje 4-bitëshe. Të dy algoritmet përdorin tetë kuti S, por madhësia e kutisë S GOST është e barabartë me një të katërtën e madhësisë së kutisë S DES;
  • DES përdor permutacione të parregullta të quajtura P-block, ndërsa GOST përdor një zhvendosje ciklike majtas 11-bit;
  • në DES ka 16 cikle, dhe në GOST - 32.

Një sulm i fuqishëm ndaj GOST është absolutisht i kotë. GOST përdor një çelës 256-bit, dhe nëse merrni parasysh kutitë sekrete S, gjatësia e çelësit do të jetë edhe më e madhe. GOST duket të jetë më rezistent ndaj kriptanalizës diferenciale dhe lineare sesa DES. Edhe pse kutitë e rastësishme GOST S, duke pasur parasysh disa zgjedhje, nuk garantojnë forcë të lartë kriptografike në krahasim me kutitë fikse DES S, sekreti i tyre rrit rezistencën e GOST ndaj kriptanalizës diferenciale dhe lineare. Për më tepër, efektiviteti i këtyre metodave kriptanalitike varet nga numri i cikleve të konvertimit - sa më shumë cikle, aq më e vështirë është kriptanaliza. GOST përdor dy herë më shumë cikle se DES, duke shkaktuar ndoshta dështimin e kriptanalizës diferenciale dhe lineare.

GOST nuk përdor ndryshimin e zgjerimit që ekziston në DES. Heqja e këtij ndryshimi nga DES e dobëson atë duke reduktuar efektin e ortekëve; Është e arsyeshme të supozohet se mungesa e një operacioni të tillë në GOST ka një ndikim negativ në forcën e tij kriptografike. Nga pikëpamja e forcës kriptografike, operacioni i shtimit aritmetik i përdorur në GOST nuk është më i keq se operacioni XOR në DES.

Dallimi kryesor duket të jetë përdorimi i zhvendosjes ciklike në vend të ndërrimit në GOST. Riorganizimi i DES rrit efektin e ortekëve. Në GOST, ndryshimi i një biti hyrës ndikon në një kuti S të një cikli konvertimi, i cili më pas prek dy kuti S të ciklit të ardhshëm, pastaj tre blloqe të ciklit tjetër, etj. Duhen tetë cikle përpara se ndryshimi i një biti hyrës të ndikojë në çdo pjesë të daljes; në DES kjo kërkon vetëm pesë cikle. Sidoqoftë, GOST përbëhet nga 32 cikle, dhe DES vetëm nga 16.

Zhvilluesit e GOST u përpoqën të arrinin një ekuilibër midis forcës kriptografike dhe efikasitetit. Duke përdorur dizajnin e Feistel si bazë, ata zhvilluan një algoritëm kriptografik që është më i përshtatshëm për zbatimin e softuerit sesa DES. Për të rritur fuqinë kriptografike, u prezantua një çelës shumë i gjatë dhe numri i cikleve u dyfishua. Sidoqoftë, pyetja nëse përpjekjet e zhvilluesve u kurorëzuan me krijimin e një algoritmi më kriptografik sesa DES mbetet e hapur.

Vorobyova E., Lukyanova A.

Kanë kaluar më shumë se 30 vjet që nga miratimi i algoritmit DES si standardi i kriptimit në SHBA. DES është një algoritëm kriptimi me historinë më të pasur dhe më interesante.

Historia e krijimit të algoritmit

Një nga kriptologët më të famshëm në botë, Bruce Schneier, në librin e tij të famshëm "Kriptografia e aplikuar" përshkroi problemet e përdoruesve të mjeteve të sigurisë së informacionit në fillim të viteve '70. Shekulli XX (natyrisht po flasim për rreth përdoruesve në anën tjetër të Perdes së Hekurt):

Nuk kishte as një standard përgjithësisht të pranuar për enkriptimin e të dhënave dhe as thjesht algoritme të sigurisë së informacionit të përdorur gjerësisht, kështu që përputhshmëria midis mjeteve të ndryshme të enkriptimit të softuerëve ose harduerit ishte jashtë diskutimit;

Pothuajse çdo mjet kriptimi ishte një "kuti e zezë" me përmbajtje mjaft të paqartë: cili algoritëm kriptimi përdoret, sa i fortë është ai kriptografikisht, nëse zbatohet saktë, nëse çelësat e kriptimit janë krijuar, ruajtur, përdorur saktë, nëse ka ndonjë të futur nga zhvilluesit në mjet karakteristika të padokumentuara etj - e gjithë kjo është shumë informacion i rendesishem për shumicën dërrmuese të blerësve mjete kriptografike ishte i padisponueshëm.

Byroja Kombëtare e Standardeve (NBS) e SHBA-së ishte e shqetësuar për këtë problem. Si rezultat, në 1973, u shpall konkursi i parë i hapur ndonjëherë për një standard enkriptimi. NBS ishte e gatshme të shqyrtonte algoritmet kandidate që plotësonin kriteret e mëposhtme për të zgjedhur një standard:

Algoritmi duhet të jetë i fortë kriptografikisht;

Algoritmi duhet të jetë i shpejtë;

Struktura e algoritmit duhet të jetë e qartë dhe e saktë;

Fuqia e kriptimit duhet të varet vetëm nga çelësi, vetë algoritmi nuk duhet të jetë sekret;

Algoritmi duhet të jetë lehtësisht i zbatueshëm për qëllime të ndryshme;

Algoritmi duhet të zbatohet lehtësisht në harduer duke përdorur komponentët ekzistues të harduerit.

Supozohej se organizatat ose specialistët e interesuar do të dërgonin në NBS specifikime të detajuara të algoritmeve të mjaftueshme për zbatimin e tyre, d.m.th., pa asnjë "njollë qorre". Supozohej gjithashtu se algoritmi do të certifikohej nga NBS për përdorim të përgjithshëm, dhe të gjitha kufizimet e patentës dhe eksportit do të hiqeshin prej tij, si rezultat i të cilit një standard i tillë do të duhej të zgjidhte të gjitha problemet e pajtueshmërisë së kriptimit. Për më tepër, NBS mori përsipër funksionet e certifikimit të mjeteve të kriptimit - domethënë, "kutitë e zeza" duhet të ishin bërë një gjë e së kaluarës.

Në fakt, kishte vetëm një algoritëm kandidat: ishte algoritmi i enkriptimit Lucifer i zhvilluar nga ShM. (shih seksionin 3.31). Gjatë dy viteve, algoritmi u rafinua:

Së pari, NBS, së bashku me Agjencinë e Sigurisë Kombëtare (NSA, National Security Agency) të Shteteve të Bashkuara, kryen një analizë të plotë të algoritmit, e cila rezultoi në rishikimin e tij mjaft domethënës;

Së dyti, u morën parasysh komentet dhe kritikat nga të gjitha organizatat dhe individët e interesuar.

Si rezultat i përpjekjeve të përbashkëta nga IBM, NBS dhe NSA, DES u botua si standard i SHBA në janar 1977 ( Versioni i fundit të këtij standardi - në dokument) në algoritmin e kriptimit të të dhënave (përveç informacionit të një shkalle të lartë sekreti). Algoritmi DES u patentua nga YuM, por NBS mori, në fakt, një licencë falas dhe të pakufizuar për t'u përdorur të këtij algoritmi. Një emër alternativ, por më pak i përdorur për algoritmin është DEA (Data Encryption Algorithm).

Karakteristikat kryesore dhe struktura e algoritmit

Algoritmi DES kodon informacionin në blloqe 64-bitësh duke përdorur një çelës enkriptimi 64-bit që përdor vetëm 56 bit (procedura e zgjerimit të çelësit përshkruhet në detaje më poshtë).

Kriptimi i informacionit kryhet si më poshtë (Fig. 3.56):

1. Një ndërrim fillestar kryhet në një bllok të dhënash 64-bit sipas tabelës. 3.16.

Tabela 3.16

Tabela interpretohet si më poshtë: vlera e bitit të hyrjes 58 (në tekstin e mëtejmë të gjithë bitët numërohen nga e majta në të djathtë, duke filluar nga 1) vendoset në bitin e daljes 1, vlera e bitit 50 vendoset në bitin 2, etj.



2. Rezultati i operacionit të mëparshëm ndahet në 2 nënblloqe me nga 32 bit secili (për

oriz. 3.56 shënuar A 0 dhe B 0), mbi të cilat kryhen 16 raunde

transformimet e mëposhtme:

Siç u përmend më lart, nga një çelës kriptimi 64-bit, algoritmi DES përdor vetëm 56 bit. Çdo bit i 8-të hidhet dhe nuk përdoret në asnjë mënyrë në algoritëm, dhe përdorimi i pjesëve të mbetura të çelësit të enkriptimit në implementimet e algoritmit DES nuk kufizohet në asnjë mënyrë nga standardi. Procedura për nxjerrjen e 56 biteve të rëndësishme të një çelësi 64-bitësh në Fig. 3.59 është caktuar si E. Përveç nxjerrjes, këtë procedurë kryen edhe permutimin e biteve kryesore sipas tabelës. 3.19 dhe 3.20.


Tabela 3.19

Tabela 3.20


Si rezultat i ndërrimit, formohen dy vlera 28-bitëshe C dhe D. Tabela 3.19 përcakton zgjedhjen e biteve kryesore për tabelën C. 3.20 - për D.

Pastaj kryhen 16 raunde transformimesh, ku secili jep një nga çelësat e rrumbullakët K t. Në çdo raund të procedurës së zgjerimit të çelësit, kryhen veprimet e mëposhtme:

1. Vlerat aktuale të C dhe D zhvendosje ciklike majtas nga numër i ndryshueshëm copa P. Për raundet 1, 2, 9 dhe 16 P= 1, në raundet e mbetura kryhet një zhvendosje ciklike prej 2 bitësh.

2. C dhe D kombinohen në një vlerë 56-bitëshe, në të cilën aplikohet permutacioni i kompresimit CP, rezultati i të cilit është një çelës i rrumbullakët 48-bit K (. Permutacioni i kompresimit kryhet sipas tabelës 3.21.

Tabela 3.21

Kur deshifroni të dhënat, mund të përdorni të njëjtën procedurë të zgjerimit të çelësit, por të aplikoni çelësat e rrumbullakët në rend të kundërt. Ekziston një mundësi tjetër: në çdo raund të procedurës së zgjerimit të çelësit, në vend të një zhvendosjeje ciklike majtas, kryeni një zhvendosje ciklike djathtas me n bit, ku rc' = 0 për raundin e parë, u' = 1 për raundet 2, 9, 16 dhe n = 2 për raundet e mbetura. Kjo procedurë e zgjerimit të çelësit do të sigurojë menjëherë çelësat e rrumbullakët të nevojshëm për deshifrim.

Vlen të thuhet se aftësia për të kryer zgjerimin e çelësit "në fluturim" (veçanërisht nëse kjo mundësi ekziston si gjatë kriptimit ashtu edhe gjatë deshifrimit) konsiderohet si një avantazh i algoritmeve të kriptimit, pasi në këtë rast zgjerimi i çelësit mund të kryhet paralelisht me enkriptimin. dhe të mos harxhoni kujtesën për ruajtjen e çelësave të raundeve të tjera përveç atij aktual.

  • Tutorial

Përshëndetje %username%!
Shumë njerëz e dinë se standardi i paracaktuar në këtë fushë enkriptimi simetrik për një kohë të gjatëËshtë marrë parasysh algoritmi DES. Sulmi i parë i suksesshëm ndaj këtij algoritmi të pathyeshëm u publikua në vitin 1993, 16 vjet pasi u miratua si standard. Metoda, të cilën autori e quajti kriptanalizë lineare, në prani të 2 47 çifteve të tekstit të thjeshtë/shifror, lejon që dikush të hapë çelësin sekret të shifrës DES në 2 43 operacione.
Më poshtë prerjes do të përpiqem të përshkruaj shkurtimisht pikat kryesore të këtij sulmi.

Kriptanaliza lineare

Kriptanaliza lineare është një lloj i veçantë sulmi ndaj shifra simetrike, që synon të rikuperojë një çelës të panjohur enkriptimi nga i njohur mesazhet e hapura dhe tekstet e tyre të koduara përkatëse.

rast i përgjithshëm Një sulm i bazuar në kriptanalizën lineare zbret në kushtet e mëposhtme. Sulmuesi ka sasi e madheÇiftet e tekstit të thjeshtë/shifert të përftuara duke përdorur të njëjtin çelës kriptimi K. Qëllimi i sulmuesit është të rikuperojë një pjesë ose të gjithë çelësin K.

Para së gjithash, sulmuesi ekzaminon shifrën dhe gjen të ashtuquajturin analoge statistikore, d.m.th. një ekuacion i formës së mëposhtme, i cili vlen me probabilitet P ≠ 1/2 për një çift teksti arbitrar publik/privat dhe një çelës fiks:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
ku P n, C n, K n janë bitet e n-të të tekstit, teksti shifror dhe çelësi.
Pasi të gjendet një ekuacion i tillë, sulmuesi mund të rikuperojë 1 bit informacion kyç duke përdorur algoritmin e mëposhtëm

Algoritmi 1
Le të jetë T numri i teksteve për të cilët ana e majtë e ekuacionit (1) është e barabartë me 0, atëherë
Nëse T>N/2, ku N është numri i teksteve të njohura.
Supozojmë se K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (kur P>1/2) ose 1 (kur P<1/2).
Përndryshe
Supozojmë se K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (kur P>1/2) ose 0 (kur P<1/2).
Është e qartë se suksesi i algoritmit varet drejtpërdrejt nga vlera e |P-1/2| dhe në numrin e çifteve të teksteve të hapura/të mbyllura N. Sa më shumë që probabiliteti P i barazisë (1) të ndryshojë nga 1/2, aq më pak numri i teksteve të hapura N nevojitet për sulmin.

Ka dy probleme që duhen zgjidhur që sulmi të jetë i suksesshëm:

  • Si të gjeni një ekuacion efektiv të formës (1).
  • Si të përdoret ky ekuacion për të marrë më shumë se një informacion rreth çelësit.
Le të shqyrtojmë zgjidhjen e këtyre çështjeve duke përdorur shifrën DES si shembull.

Përshkrimi i DES

Por së pari, le të përshkruajmë shkurtimisht se si funksionon algoritmi. Tashmë është thënë mjaft për DES. Një përshkrim i plotë i shifrës mund të gjendet në Wikipedia. Megjithatë, për të shpjeguar më tej sulmin, do të na duhen një sërë përkufizimesh që janë prezantuar më së miri paraprakisht.

Pra, DES është një shifër bllok i bazuar në rrjetin Feistel. Shifra ka një madhësi blloku 64 bit dhe një madhësi kryesore prej 56 bit. Le të shqyrtojmë skemën e kriptimit të algoritmit DES.

Siç shihet nga figura, gjatë kriptimit të tekstit, kryhen veprimet e mëposhtme:

  1. Ndërrimi fillestar i bitit. Në këtë fazë, pjesët e bllokut të hyrjes përzihen në një renditje të caktuar.
  2. Pas kësaj, pjesët e përziera ndahen në dy gjysma, të cilat futen në hyrjen e funksionit Feistel. Për DES standarde, rrjeti Feistel përfshin 16 raunde, por variante të tjera të algoritmit ekzistojnë.
  3. Dy blloqet e marra në raundin e fundit të transformimit kombinohen dhe një ndryshim tjetër kryhet në bllokun që rezulton.

Në çdo raund të rrjetit Feistel, 32 bitët më pak të rëndësishëm të mesazhit kalohen përmes funksionit f:

Le të shohim operacionet e kryera në këtë fazë:

  1. Blloku i hyrjes kalon përmes funksionit të zgjerimit E, i cili konverton një bllok 32-bit në një bllok 48-bit.
  2. Blloku që rezulton i shtohet çelësit të rrumbullakët K i.
  3. Rezultati i hapit të mëparshëm ndahet në 8 blloqe me nga 6 bit secili.
  4. Secili prej blloqeve të marra B i kalohet përmes funksionit të zëvendësimit S-Box i, i cili zëvendëson sekuencën 6-bitësh me një bllok 4-bitësh.
  5. Blloku 32-bit që rezulton kalohet përmes permutacionit P dhe kthehet si rezultat i funksionit f.

Me interes më të madh për ne nga pikëpamja e kriptanalizës shifrore janë blloqet S, të krijuar për të fshehur lidhjen midis të dhënave hyrëse dhe dalëse të funksionit f. Për të sulmuar me sukses DES, ne fillimisht do të ndërtojmë analoge statistikore për secilën nga kutitë S, dhe më pas do t'i zgjerojmë ato në të gjithë shifrën.

Analiza e bllokut S

Çdo S-box merr një sekuencë 6-bit si hyrje, dhe për çdo sekuencë të tillë kthehet një vlerë fikse 4-bit. ato. ka gjithsej 64 opsione hyrëse dhe dalëse. Detyra jonë është të tregojmë marrëdhënien midis të dhënave hyrëse dhe dalëse të blloqeve S. Për shembull, për kutinë e tretë S të shifrës DES, biti i 3-të i sekuencës hyrëse është i barabartë me bitin e 3-të të sekuencës dalëse në 38 nga 64 raste, prandaj, ne gjetëm analogun statistikor të mëposhtëm për S-në e tretë -kutia:
S 3 (x) = x, që plotësohet me probabilitet P=38/64.
Të dyja anët e ekuacionit përfaqësojnë 1 bit informacion. Prandaj, nëse ana e majtë dhe e djathtë do të ishin të pavarura nga njëra-tjetra, ekuacioni do të duhej të plotësohej me një probabilitet prej 1/2. Kështu, ne sapo kemi demonstruar marrëdhënien midis hyrjes dhe daljes së kutisë së tretë S të algoritmit DES.

Le të shqyrtojmë se si mund të gjejmë një analog statistikor të kutisë S në rastin e përgjithshëm.

Për një kuti S S a , 1 ≤ α ≤ 63 dhe 1 ≤ β ≤ 15, vlera NS a (α, β) përshkruan sa herë nga 64 bitet hyrëse të mundshme XOR S a të mbivendosur në bitet α janë të barabarta me bitet e daljes XOR të mbivendosura mbi bitet α β, d.m.th.:
ku simboli është logjik DHE.
Vlerat e α dhe β për të cilat NS a (α, β) është më e ndryshme nga 32 përshkruajnë analogun statistikor më efikas të kutisë S S a.

Analogu më efektiv u gjet në kutinë e 5-të S të shifrës DES për α = 16 dhe β = 15 NS 5 (16, 15) = 12. Kjo do të thotë se vlen ekuacioni i mëposhtëm: Z=Y ⊕ Y ⊕ Y ⊕ Y, ku Z është sekuenca hyrëse e kutisë S dhe Y është sekuenca dalëse.
Ose duke marrë parasysh faktin se në algoritmin DES, para se të futet në kutinë S, të dhënat shtohen moduli 2 me një çelës të rrumbullakët, d.m.th. Z = X ⊕ K marrim
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, ku X dhe Y janë të dhënat hyrëse dhe dalëse të funksionit f pa marrë parasysh permutacionet.
Ekuacioni që rezulton ekzekutohet në të gjitha raundet e algoritmit DES me të njëjtin probabilitet P=12/64.
Tabela e mëposhtme tregon një listë të atyre efektive, d.m.th. duke pasur devijimin më të madh nga P=1/2, analoge statistikore për çdo bllok s të algoritmit DES.

Ndërtimi i analogëve statistikorë për raunde të shumta të DES

Le të tregojmë tani se si mund të kombinojmë analogët statistikorë të disa raundeve të DES dhe në fund të marrim një analog statistikor për të gjithë shifrën.
Për ta bërë këtë, merrni parasysh një version me tre raunde të algoritmit:

Le të përdorim një analog efikas statistikor të kutisë së 5-të s për të llogaritur bit të caktuara të vlerës X(2).
Ne e dimë se me probabilitetin 12/64 barazia vlen në funksionin f X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, ku X është biti i dytë i hyrjes së kutisë së 5-të S, në thelb është biti i 26-të i sekuencës që merret pas zgjerimit të biteve hyrëse. Duke analizuar funksionin e zgjerimit, mund të përcaktojmë se biti i 26-të zëvendësohet nga biti i 17-të i sekuencës X(1).
Në mënyrë të ngjashme, Y,..., Y janë në thelb bitet e 17-të, 18-të, 19-të dhe 20-të të sekuencës së përftuar përpara ndërrimit P. Duke ekzaminuar ndërrimin P, gjejmë se bitat Y,..., Y janë në të vërtetë bit Y (1), Y(1), Y(1), Y(1).
Biti kyç K i përfshirë në ekuacione është biti i 26-të i nënçelës së raundit të parë K1 dhe më pas analogu statistikor merr formën e mëposhtme:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
Prandaj, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) me probabilitet P=12/64.
Duke ditur 3, 8, 14, 25 bit të sekuencës Y(1), mund të gjeni 3, 8, 14, 25 bit të sekuencës X(2):
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ose duke marrë parasysh ekuacionin (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) me probabilitet 12/64.

Le të gjejmë një shprehje të ngjashme duke përdorur raundin e fundit. Këtë herë kemi ekuacionin
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Sepse
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
ne e marrim atë
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3(4) me probabilitet 12/64.

Duke barazuar anët e djathta të ekuacioneve (3) dhe (4) marrim
CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 me probabilitet (12/64) 2 +(1-12/64) 2.
Duke marrë parasysh faktin se X(1) = PR dhe X(3) = CR marrim një analog statistikor
СL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
e cila ekzekutohet me probabilitet (12/64) 2 + (1-12/64) 2 =0,7.
Analogu statistikor i përshkruar më sipër mund të paraqitet grafikisht si më poshtë (bitet në figurë numërohen nga e djathta në të majtë dhe duke filluar nga zero):

Të gjitha pjesët në anën e majtë të ekuacionit janë të njohura për sulmuesin, kështu që ai mund të zbatojë Algoritmin 1 dhe të zbulojë vlerën e K1 ⊕ K3. Le të tregojmë se si, duke përdorur këtë analog statistikor, mund të hapni jo 1, por 12 bit të çelësit të kriptimit K.

Sulmi i njohur i tekstit të thjeshtë në DES

Ja një mënyrë për të zgjeruar sulmin dhe për të marrë menjëherë 6 bit të raundit të parë.
Gjatë përpilimit të ekuacionit (5), kemi marrë parasysh faktin se nuk e dimë vlerën e F1(PR, K1). Prandaj, ne përdorëm analogun e tij statistikor K1 ⊕ PR.
Le të kthejmë vlerën F1(PR, K1) në vend të shprehjes K1 ⊕ PR dhe të marrim ekuacionin e mëposhtëm:
СL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , i cili do të ekzekutohet me probabilitet 12/64. Probabiliteti ka ndryshuar pasi kemi lënë vetëm analogun statistikor nga raundi i tretë, të gjitha vlerat e tjera janë fikse.

Tashmë kemi përcaktuar më lart se vlera e F1(PR, K1) ndikohet nga bitet hyrëse të kutisë së 5-të S, përkatësisht bitet kryesore K1 dhe bitet e bllokut PR. Le të tregojmë se si, duke pasur vetëm një grup tekstesh të hapura / të mbyllura, mund të rivendosni vlerën e K1. Për ta bërë këtë, ne do të përdorim Algoritmin 2.

Algoritmi 2
Le të jetë N numri i çifteve të teksteve të hapura/të mbyllura të njohura përpara sulmit. Më pas për të hapur çelësin duhet të ndërmerrni hapat e mëposhtëm.
Për (i=0; i<64; i++) do
{
Për(j=0; j {
nëse(СL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) atëherë
T i =T i +1
}
}
Si një sekuencë e mundshme K1, merret një vlerë e i tillë që shprehja |T i -N/2| ka vlerën maksimale.

Duke pasur parasysh një numër të mjaftueshëm tekstesh të zakonshme të njohura, algoritmi do të ketë një probabilitet të lartë për të kthyer vlerën e saktë të gjashtë biteve të nënçelës së raundit të parë K1. Kjo shpjegohet me faktin se nëse ndryshorja i nuk është e barabartë me K1, atëherë vlera e funksionit F1(PR j, K) do të jetë e rastësishme dhe numri i ekuacioneve për një vlerë të tillë të i për të cilën ana e majtë është e barabartë me zero do të tentojë N/2. Nëse nënçelësi merret me mend saktë, ana e majtë do të jetë e barabartë me bitin fiks K3 me probabilitet 12/64. ato. do të ketë një devijim të konsiderueshëm nga N/2.

Pasi të keni marrë 6 bit të nënçelës K1, mund të hapni në mënyrë të ngjashme 6 bit nënçelës K3. Gjithçka që duhet të bëni është të zëvendësoni C me P dhe K1 me K3 në ekuacionin (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Algoritmi 2 do të kthejë vlerën e saktë K3 sepse procesi i deshifrimit të algoritmit DES është identik me procesin e enkriptimit, vetëm sekuenca e çelësave është e kundërt. Pra, në raundin e parë të deshifrimit përdoret çelësi K3, dhe në raundin e fundit përdoret çelësi K1.

Pasi ka marrë 6 bit nënçelësash K1 dhe K3, sulmuesi rikuperon 12 bit të çelësit të përbashkët të shifrës K, sepse tastet e rrumbullakëta janë ndërrimi i zakonshëm i çelësit K. Numri i teksteve të thjeshta të kërkuara për një sulm të suksesshëm varet nga probabiliteti i analogut statistikor. Për të thyer një çelës DES 12-bitësh me 3 raunde, mjaftojnë 100 çifte tekstesh publike/private. Për të hapur 12 bit të një çelësi DES me 16 raunde, do të nevojiten rreth 244 çifte tekstesh. 44 bitet e mbetura të çelësit hapen duke përdorur forcën normale brutale.

Standardi DES është krijuar për të mbrojtur kundër aksesit të paautorizuar në të rëndësishme, por jo informacione të klasifikuara në qeverinë amerikane dhe organizatat tregtare. Algoritmi që qëndron në themel të standardit u përhap mjaft shpejt, dhe tashmë në vitin 1980 ai u miratua nga Instituti Kombëtar i Standardeve dhe Teknologjisë në SHBA. Që nga ky moment, DES bëhet standard jo vetëm në emër, por edhe në fakt. Shfaqen softuer dhe mikrokompjuterë të specializuar që janë krijuar për të enkriptuar dhe deshifruar informacionin në rrjetet e të dhënave.

Deri më sot, DES është algoritmi më i zakonshëm i përdorur në sistemet komerciale të sigurisë së informacionit. Për më tepër, zbatimi i algoritmit DES në sisteme të tilla bëhet një shenjë e formës së mirë.

Përparësitë kryesore të algoritmit DES:

· përdoret vetëm një çelës me gjatësi 56 bit;

· pasi të keni koduar një mesazh duke përdorur një paketë, mund të përdorni çdo tjetër për ta deshifruar atë;

· Thjeshtësia relative e algoritmit siguron shpejtësi të lartë të përpunimit të informacionit;

· stabilitet mjaftueshëm i lartë i algoritmit.

DES kodon blloqe 64-bitësh të të dhënave duke përdorur një çelës 56-bit. Deshifrimi në DES është operacioni i kundërt i kriptimit dhe kryhet duke përsëritur operacionet e kriptimit në rend të kundërt (pavarësisht qartësisë së dukshme, kjo nuk bëhet gjithmonë. Më vonë do të shikojmë shifrat në të cilat kriptimi dhe deshifrimi kryhen duke përdorur algoritme të ndryshme) .

Procesi i enkriptimit konsiston në një ndërrim fillestar të biteve të një blloku 64-bitësh, gjashtëmbëdhjetë cikle të enkriptimit dhe në fund një ndërrim të kundërt të bitit (Figura 1).

Duhet të theksohet menjëherë se TË GJITHA tabelat e dhëna në këtë artikull janë STANDARD, dhe për këtë arsye duhet të përfshihen në zbatimin tuaj të algoritmit të pandryshuar. Të gjitha permutacionet dhe kodet në tabela zgjidhen nga zhvilluesit në mënyrë të tillë që të bëjnë sa më të vështirë procesin e deshifrimit duke zgjedhur një çelës. Struktura e algoritmit DES është paraqitur në Fig. 2.

Oriz. 2.

Le të lexohet nga skedari blloku T tjetër prej 8 bajtësh, i cili transformohet duke përdorur matricën IP të ndryshimit fillestar (Tabela 1) si më poshtë: biti 58 i bllokut T bëhet biti 1, biti 50 bëhet biti 2, etj., gjë që do të rezulton në: T(0) = IP(T).

Sekuenca e biteve që rezulton T(0) ndahet në dy sekuenca me nga 32 bit secila: L(0) - bit majtas ose të rendit të lartë, R(0) - bit djathtas ose të rendit të ulët.

Tabela 1: Matrica e Permutacionit Fillestar IP

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

Më pas kryhet kriptimi, i përbërë nga 16 përsëritje. Rezultati i përsëritjes së i-të përshkruhet nga formulat e mëposhtme:

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

ku xor është operacioni EKSKLUZIV OSE.

Funksioni f quhet funksion i enkriptimit. Argumentet e tij janë sekuenca 32-bit R(i-1), e marrë në përsëritjen e (i-1) dhe çelësi 48-bit K(i), i cili është rezultat i konvertimit të çelësit 64-bit K. Në detaje, funksioni i enkriptimit dhe algoritmi për marrjen e çelësave K(i) përshkruhet më poshtë.

Në përsëritjen e 16-të, fitohen sekuencat R(16) dhe L(16) (pa permutacion), të cilat bashkohen në një sekuencë 64-bit R(16) L(16).

Pastaj pozicionet e biteve të kësaj sekuence riorganizohen në përputhje me matricën IP -1 (Tabela 2).

Tabela 2: Matrica e ndërrimit të anasjelltë IP -1

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

Matricat IP -1 dhe IP lidhen si më poshtë: vlera e elementit të parë të matricës IP -1 është 40, dhe vlera e elementit të 40-të të matricës IP është 1, vlera e 2-të. elementi i matricës IP -1 është 8, dhe vlera e elementit të 8-të të matricës IP është e barabartë me 2, etj.

Procesi i deshifrimit të të dhënave është i kundërt me procesin e kriptimit. Të gjitha hapat duhet të kryhen në rend të kundërt. Kjo do të thotë që të dhënat që do të deshifrohen fillimisht riorganizohen sipas matricës IP-1 dhe më pas kryhen të njëjtat veprime në sekuencën e biteve R(16) L(16) si në procesin e enkriptimit, por në rend të kundërt.

Procesi i përsëritur i deshifrimit mund të përshkruhet me formulat e mëposhtme:

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

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

Në përsëritjen e 16-të, fitohen sekuencat L(0) dhe R(0), të cilat bashkohen në një sekuencë 64-bit L(0) R(0).

Pozicionet e biteve të kësaj sekuence më pas riorganizohen sipas matricës IP. Rezultati i një ndryshimi të tillë është sekuenca origjinale 64-bit.

Tani merrni parasysh funksionin e enkriptimit f (R(i-1), K(i)). Është paraqitur në mënyrë skematike në Fig. 3.


Oriz. 3.

Për të llogaritur vlerën e funksionit f, përdoren funksionet e mëposhtme të matricës:

E - zgjerimi i një sekuence 32-bit në 48-bit,

S1, S2,…, S8 - konvertimi i një blloku 6-bit në një 4-bit,

P - ndërrimi i biteve në një sekuencë 32-bitësh.

Funksioni i zgjerimit E përcaktohet nga tabela. 3. Sipas kësaj tabele, 3 bitet e para të E (R(i-1)) janë bitet 32, 1 dhe 2, dhe të fundit janë 31, 32 dhe 1.

Tabela 3: Funksioni i zgjerimit 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

Rezultati i funksionit E (R(i-1)) është një sekuencë 48-bitësh që i shtohet moduli 2 (operimi xor) me tastin 48-bit K(i). Sekuenca 48-bitëshe që rezulton është e ndarë në tetë blloqe 6-bitësh B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8). Kjo eshte:

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

Funksionet S1, S2,…, S8 janë përcaktuar në tabelë. 4.

Tabela 4

Në tryezë 4. Kërkohet sqarim shtesë. Le të jetë hyrja e funksionit të matricës Sj një bllok 6-bitësh B(j) = b1b2b3b4b5b6, atëherë numri dy-bitësh b1b6 tregon numrin e rreshtit të matricës dhe b2b3b4b5 numrin e kolonës. Rezultati i Sj (B(j)) do të jetë një element 4-bit i vendosur në kryqëzimin e rreshtit dhe kolonës së specifikuar.

Për shembull, B(1)=011011. Atëherë S1 (B(1)) ndodhet në kryqëzimin e rreshtit 1 dhe kolonës 13. Në kolonën 13 të rreshtit 1 vlera është 5. Kjo do të thotë S1 (011011)=0101.

Duke zbatuar operacionin e përzgjedhjes për secilin prej blloqeve 6-bitësh B(1), B(2),…, B(8), marrim një sekuencë 32-bitësh S1 (B(1)) S2 (B(2)) S3 (B( 3))... S8 (B(8)).

Së fundi, për të marrë rezultatin e funksionit të enkriptimit, bitet e kësaj sekuence duhet të riorganizohen. Për këtë qëllim përdoret funksioni i ndërrimit P (Tabela 5). Në sekuencën hyrëse, bitet riorganizohen në mënyrë që biti 16 të bëhet biti 1, biti 7 të bëhet biti 2, e kështu me radhë.

Tabela 5: Funksioni i permutacionit P

Kështu,

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

Për të plotësuar përshkrimin e algoritmit të enkriptimit të të dhënave, mbetet të paraqesim algoritmin për marrjen e çelësave 48-bit K(i), i=1...16. Në çdo përsëritje, përdoret një vlerë e re e çelësit K(i), e cila llogaritet nga çelësi fillestar K. K është një bllok 64-bitësh me tetë bit barazi të vendosura në pozicionet 8,16,24,32,40,48, 56. 64.

Për të hequr pjesët e kontrollit dhe për të riorganizuar pjesën tjetër, përdoret funksioni G i përgatitjes fillestare të çelësit (Tabela 6).

Tabela 6

Matrica G e përgatitjes fillestare të çelësit

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

Rezultati i transformimit G(K) ndahet në dy blloqe 28-bitësh C(0) dhe D(0), dhe C(0) do të përbëhet nga bitet 57, 49, ..., 44, 36 të çelësit K, dhe D(0) do të përbëhen nga bitet 63, 55,…, 12, 4 çelësat K. Pas përcaktimit të C(0) dhe D(0), C(i) dhe D(i), i=1… 16, përcaktohen në mënyrë rekursive. Për ta bërë këtë, aplikoni një zhvendosje ciklike majtas me një ose dy bit, në varësi të numrit të përsëritjes, siç tregohet në tabelë. 7.

Tabela 7. Shift tabelën për llogaritjen e çelësit

Numri i përsëritjes

Shift (bit)

Vlera që rezulton përsëri "përzihet" në përputhje me matricën H (Tabela 8).

Tabela 8: Matrica e përfundimit të çelësit 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

Tasti K(i) do të përbëhet nga bitet 14, 17,…, 29, 32 të sekuencës C(i) D(i). Kështu:

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

Diagrami bllok i algoritmit të llogaritjes së çelësit është paraqitur në Fig. 4.

Oriz. 4.

Rivendosja e tekstit origjinal kryhet duke përdorur këtë algoritëm, por së pari përdorni tastin K(15), pastaj K(14) e kështu me radhë. Tani duhet të kuptoni pse autori rekomandon me këmbëngulje përdorimin e matricave të dhëna. Nëse jeni mashtrues, mund të përfundoni me një kod shumë sekret, por nuk do të jeni në gjendje ta hapni vetë!

Shënim: Një nga sistemet më të famshme kriptografike me çelës privat është DES – Standardi i Enkriptimit të të Dhënave. Ky sistem ishte i pari që mori statusin e një standardi shtetëror në fushën e kriptimit të të dhënave. Dhe megjithëse standardi i vjetër amerikan DES tani ka humbur statusin e tij zyrtar, ky algoritëm ende meriton vëmendje kur studion kriptografinë. Ky leksion shpjegon gjithashtu se çfarë është DES e dyfishtë, një sulm "takim në mes" dhe si të zbutet ai. Ky leksion gjithashtu diskuton shkurtimisht standardin e ri amerikan për shifrat e bllokut, algoritmin Rijndael.

Qëllimi i ligjëratës: njohin nxënësin me informacionin bazë rreth algoritmit të enkriptimit DES.

Informata themelore

Një nga sistemet më të famshme kriptografike me çelës privat është DES – Standardi i enkriptimit të të dhënave. Ky sistem ishte i pari që mori statusin e një standardi shtetëror në fushën e kriptimit të të dhënave. Ai u zhvillua nga specialistë të IBM dhe hyri në fuqi në SHBA në 1977. Algoritmi DES përdoret gjerësisht në ruajtjen dhe transmetimin e të dhënave ndërmjet sistemeve të ndryshme kompjuterike; në sistemet postare, sistemet elektronike të vizatimit dhe shkëmbimet elektronike informacion tregtar. Standard DES u zbatua si në softuer ashtu edhe në harduer. Ndërmarrjet nga vende të ndryshme kanë nisur prodhimin masiv të pajisjeve dixhitale duke përdorur DES për enkriptimin e të dhënave. Të gjitha pajisjet iu nënshtruan certifikimit të detyrueshëm për përputhjen me standardin.

Përkundër faktit se ky sistem prej disa kohësh nuk ka statusin e një standardi qeveritar, ai ende përdoret gjerësisht dhe meriton vëmendje kur studion shifrat e bllokut me një çelës privat.

Gjatësia e çelësit në algoritëm DESështë 56 bit. Është me këtë fakt që polemika kryesore në lidhje me aftësinë për të DES rezistojnë sulmeve të ndryshme. Siç e dini, çdo shifër blloku me një çelës privat mund të thyhet duke provuar të gjitha kombinimet e mundshme të çelësave. Me një gjatësi çelësi prej 56 bit, janë të mundshëm 2 56 çelësa të ndryshëm. Nëse një kompjuter kërkon 1 000 000 çelësa në një sekondë (që është afërsisht e barabartë me 2 20), atëherë do të duhen 2 36 sekonda ose pak më shumë se dy mijë vjet për të kërkuar nëpër të 2 56 çelësat, gjë që, natyrisht, është e papranueshme për sulmuesit.

Megjithatë, sistemet kompjuterike më të shtrenjta dhe më të shpejta janë të mundshme sesa Kompjuter personal. Për shembull, nëse është e mundur të kombinohen një milion procesorë për llogaritjet paralele, atëherë koha maksimale e zgjedhjes së çelësit reduktohet në afërsisht 18 orë. Kjo kohë nuk është shumë e gjatë dhe një kriptanalist i pajisur me pajisje kaq të shtrenjta mund të thyejë lehtësisht të dhënat e koduara me DES në një kohë të arsyeshme.

Në të njëjtën kohë, mund të vërehet se sistemi DES Mund të përdoret në aplikacione të vogla dhe të mesme për të enkriptuar të dhënat me vlerë të vogël. Për enkriptimin e të dhënave me rëndësi kombëtare ose që kanë vlerë të rëndësishme tregtare, sistemi DES sigurisht që nuk duhet të përdoret aktualisht. Në vitin 2001, pas një konkursi të shpallur posaçërisht, në Shtetet e Bashkuara u miratua një standard i ri i kodit të bllokut, i quajtur AES (Standardi i avancuar i enkriptimit), e cila bazohej në shifrën Rijndael, zhvilluar nga specialistë belgë. Ky shifër diskutohet në fund të leksionit.

Cilësimet kryesore DES: madhësia e bllokut 64 bit, gjatësia e çelësit 56 bit, numri i raundeve - 16. DESështë një rrjet klasik Feishtel me dy degë. Algoritmi konverton një bllok të dhënash hyrëse 64-bit në një bllok daljeje 64-bit gjatë disa raundeve. Standard DES ndërtuar mbi përdorimin e kombinuar të ndërrimit, zëvendësimit dhe gama. Të dhënat e koduara duhet të jenë në formë binare.

Enkriptimi

Struktura e përgjithshme DES treguar në Fig. 4.1. Procesi i kriptimit të çdo blloku 64-bitësh të të dhënave të papërpunuara mund të ndahet në tre faza:

  1. përgatitja fillestare e një blloku të dhënash;
  2. 16 raunde të "ciklit kryesor";
  3. përpunimi përfundimtar i një blloku të dhënash.

Në fazën e parë kryhet ndërrimi fillestar Blloku i tekstit me burim 64-bitësh, gjatë të cilit bitët riorganizohen në një mënyrë specifike.

Në fazën tjetër (kryesore), blloku ndahet në dy pjesë (degë) nga 32 bit secila. Dega e djathtë transformohet duke përdorur një funksion F dhe funksionin përkatës çelës i pjesshëm, i marrë nga çelësi kryesor i enkriptimit duke përdorur një algoritëm të veçantë të konvertimit të çelësit. Pastaj të dhënat shkëmbehen midis degëve të majtë dhe të djathtë të bllokut. Kjo përsëritet në një cikël 16 herë.

Së fundi, faza e tretë riorganizon rezultatin e marrë pas gjashtëmbëdhjetë hapave të lakut kryesor. Ky permutacion është anasjellta e ndërrimit fillestar.


Oriz.

4.1. DES.

Le të hedhim një vështrim më të afërt në të gjitha fazat e konvertimit kriptografik sipas standardit

Në fazën e parë, blloku i të dhënave burimore 64-bit i nënshtrohet një ndryshimi fillestar. Në literaturë, ky operacion nganjëherë quhet "zbardhje". Gjatë ndërrimit fillestar, pjesët e bllokut të të dhënave riorganizohen në një mënyrë të caktuar. Ky operacion shton një "kaos" në mesazhin origjinal, duke reduktuar mundësinë e përdorimit të kriptanalizës duke përdorur metoda statistikore.

Njëkohësisht me ndërrimin fillestar të bllokut të të dhënave, kryhet një ndërrim fillestar i 56 biteve të çelësit. Nga Fig. 4.1. Mund të shihet se në secilin prej raundeve përdoret çelësi i pjesshëm përkatës 48-bit K i. Tastet K i merren duke përdorur një algoritëm specifik, duke përdorur çdo bit të çelësit fillestar disa herë. Në çdo raund, çelësi 56-bit ndahet në dy gjysma 28-bitësh. Gjysmat më pas zhvendosen majtas një ose dy bit në varësi të numrit të rrumbullakët. Pas zhvendosjes, 48 ​​nga 56 bit zgjidhen në një mënyrë të caktuar. Meqenëse kjo jo vetëm zgjedh një nëngrup bitësh, por gjithashtu ndryshon rendin e tyre, ky operacion quhet "ndërrimi i kompresimit". Rezultati i tij është një grup prej 48 bitësh. Mesatarisht, çdo bit i çelësit origjinal 56-bit përdoret në 14 nga 16 nënçelësat, edhe pse jo të gjithë bitët përdoren të njëjtin numër herë.


Më pas kryhet cikli kryesor i transformimit, i organizuar duke përdorur rrjetin Feishtel dhe i përbërë nga 16 raunde identike. Në këtë rast, në çdo raund (Fig. 4.2) fitohet një vlerë e ndërmjetme 64-bitëshe, e cila më pas përpunohet në raundin tjetër.

Oriz.

Së pari, ana e djathtë e bllokut R i zgjerohet në 48 bit duke përdorur një tabelë që specifikon ndryshimin plus zgjerimin me 16 bit. Ky operacion përputhet me madhësinë e gjysmës së djathtë me madhësinë e çelësit për të kryer një operacion XOR. Përveç kësaj, duke kryer këtë operacion, varësia e të gjitha pjesëve të rezultatit nga pjesët e të dhënave burimore dhe çelësi rritet më shpejt (ky quhet "efekti i ortekëve"). Sa më i fortë të jetë efekti i ortekut kur përdorni një ose një algoritëm tjetër të kriptimit, aq më mirë.

Pas kryerjes së ndërrimit të zgjerimit, vlera 48-bitëshe që rezulton XORohet me nënçelësin 48-bit K i. Pastaj vlera rezultuese 48-bit futet në hyrjen e bllokut të zëvendësimit S (nga anglishtja. Zëvendësimi - zëvendësim), rezultat që është një vlerë 32-bitësh. Zëvendësimi kryhet në tetë blloqe zëvendësuese ose tetë kuti S. Kur ekzekutohet, DES duket mjaft i komplikuar në letër, e lëre më zbatimin e softuerit të tij! Zhvilloni një program që funksionon në mënyrë korrekte dhe optimale plotësisht në përputhje me DES, ndoshta, vetëm programuesit me përvojë mund ta bëjnë këtë. Disa vështirësi lindin kur implementimi i softuerit, për shembull, ndërrimi fillestar ose ndërrimi me zgjerim. Këto vështirësi lidhen me atë që fillimisht ishte planifikuar të zbatohej DES vetëm harduer. Të gjitha operacionet e përdorura në standard kryhen lehtësisht nga njësitë e harduerit dhe nuk lindin vështirësi në zbatim. Sidoqoftë, disa kohë pas publikimit të standardit, zhvilluesit e softuerit vendosën të mos qëndrojnë në këmbë dhe gjithashtu të ndërmarrin krijimin e sistemeve të kriptimit. Me tutje DES u zbatua si në harduer ashtu edhe në softuer.

Artikujt më të mirë mbi këtë temë