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

Hapi i parë në algoritmin des është. Modaliteti i reagimit të shifrës

Shënim: Një nga më të famshmit sistemet kriptografike Me çelës privat DES - Standardi i enkriptimit të të dhënave. Ky sistem ishte i pari që mori statusin standard shtetëror në fushën e enkriptimit 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ë. Për më tepër, ky leksion shpjegon se çfarë është DES e dyfishtë, një sulm "takim në mes" dhe si ta rregullojmë atë. I njëjti leksion diskuton shkurtimisht standard i ri SHBA për një shifër blloku - algoritmi Rijndael.

Qëllimi i ligjëratës: të njohë nxënësin me informacionin bazë për algoritmin Kriptimi DES.

Informata themelore

Një nga sistemet më të njohura 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ë firmës IBM dhe hyri në fuqi në SHBA në 1977. Algoritmi DES përdoret gjerësisht për ruajtjen dhe transferimin e të dhënave ndërmjet sistemeve të ndryshme kompjuterike; v sistemet e postës, v sistemet elektronike vizatime dhe shkëmbim elektronik informacion tregtar... Standard DES implementuar si softuer ashtu edhe harduer. Ndërmarrjet vende të ndryshme filloi prodhimi masiv pajisje dixhitale duke përdorur DES për të enkriptuar të dhënat. Të gjitha pajisjet kaluan certifikimit të detyrueshëm për respektimin e standardit.

Përkundër faktit se për disa kohë ky sistem nuk ka pasur statusin e një standardi shtetëror, ai ende përdoret gjerësisht dhe meriton vëmendje kur studiohen shifrat e bllokut të çelësave 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ë DES rezistojnë sulmeve të ndryshme. Siç e dini, çdo shifër blloku me një çelës privat mund të prishet duke provuar të gjitha kombinimet e mundshme të çelësave. Me një gjatësi çelësi prej 56 bit, 2 56 janë të mundshme çelësa të ndryshëm... Nëse një kompjuter numëron 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 për t'u përsëritur në të gjithë 2 56 çelësat, ose pak më shumë se dy mijë vjet, gjë që, natyrisht, është e papranueshme për ndërhyrës.

Megjithatë, ato më të shtrenjta dhe më të shpejta janë të mundshme. sistemet kompjuterike, si Kompjuter personal ... Për shembull, nëse është e mundur të kombinohen një milion procesorë për llogaritjen paralele, atëherë koha maksimale zgjedhja e çelësit reduktohet në rreth 18 orë. Kjo kohë nuk është shumë e gjatë dhe një kriptanalist i pajisur me një teknikë kaq të shtrenjtë mund të kryejë një sulm të koduar me DES në një kohë të arsyeshme.

Në të njëjtën kohë, mund të vërehet se sistemi DES mund të përdoret mirë në aplikacione të përmasave të vogla dhe të mesme për enkriptimin e të dhënave me pak vlerë. Për enkriptimin e të dhënave me rëndësi kombëtare ose të sistemit të vlerave tregtare të rëndësishme DES aktualisht, natyrisht, nuk duhet të përdoret. Në vitin 2001, pas një konkursi të shpallur posaçërisht në Shtetet e Bashkuara, u miratua një standard i ri për një shifër blloku, 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 eshte nje rrjet klasik Feistel me dy degë. Algoritmi konverton një bllok hyrës 64-bitësh të të dhënave në një bllok dalës 64-bit në disa raunde. Standard DES ndërtuar mbi përdorimi i kombinuar permutacionet, zëvendësimet dhe lojërat. Të dhënat e koduara duhet të jenë në formë binare.

Enkriptimi

Struktura e përgjithshme DESështë paraqitur në Fig. 4.1. Procesi i enkriptimit për çdo bllok 64-bitësh të të dhënave origjinale mund të ndahet në tre faza:

  1. përgatitja fillestare e bllokut të të dhënave;
  2. 16 raunde të "lakit kryesor";
  3. përpunimi përfundimtar i bllokut të të dhënave.

Në fazën e parë, ndërrimi fillestar 64-bit blloku i burimit teksti, gjatë të cilit bitet rirenditen në një mënyrë të caktuar.

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

Më në fund, në fazën e tretë, rezultati i marrë pas gjashtëmbëdhjetë hapave të lakut kryesor riorganizohet. Ky ndërrim është e kundërta e ndërrimit fillestar.


Oriz. 4.1.

Le të shqyrtojmë më në detaje të gjitha fazat e transformimit kriptografik sipas standardit DES.

Në hapin e parë, blloku 64-bit i të dhënave origjinale i nënshtrohet një ndryshimi fillestar. Në literaturë, ndonjëherë ky operacion quhet "zbardhje". Gjatë ndërrimit fillestar, bitet e bllokut të të dhënave rirenditen në një mënyrë të caktuar. Ky operacion i jep njëfarë "rastësie" mesazhit origjinal, duke reduktuar mundësinë e përdorimit të kriptanalizës me metoda statistikore.

Njëkohësisht me ndërrimin fillestar të bllokut të të dhënave, kryhet një ndërrim fillestar prej 56 bitësh të çelësit. Nga fig. 4.1. shihet se në secilin nga raundet përdoret çelësi i pjesshëm përkatës 48-bit K i. Tastet K i merren sipas një algoritmi të caktuar, duke përdorur disa herë secilin prej biteve të çelësit fillestar. Në çdo raund, çelësi 56-bit ndahet në dy gjysma 28-bitësh. Pastaj gjysmat zhvendosen majtas me 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 të biteve, por edhe ndryshon renditjen e tyre, ky operacion quhet "permutacion me komprimim". Rezultati i tij është një grup prej 48 bitësh. Mesatarisht, çdo bit i tastit origjinal 56-bit përdoret në 14 nga 16 nënçelësat, megjithëse jo të gjithë bitët përdoren të njëjtin numër herë.

Më pas, kryhet cikli kryesor i transformimit, i organizuar sipas rrjetit Feistel 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. 4.2.

Degët e majta dhe të djathta të secilës vlerë të ndërmjetme trajtohen si vlera të veçanta 32-bitësh, të shënuara me L dhe R.

Së pari, ana e djathtë e bllokut R i zgjerohet në 48 bit duke përdorur një tabelë që përcakton permutacionin plus shtrirjen 16 bit. Ky operacion ndryshon madhësinë e gjysmës së djathtë për të përputhur me madhësinë e çelësit për operacionin XOR. Përveç kësaj, për shkak të këtij operacioni, varësia e të gjitha pjesëve të rezultatit nga pjesët e të dhënave origjinale dhe çelësi rritet më shpejt (ky quhet "efekti i ortekëve"). Sa më shumë të manifestohet 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 48-bit që rezulton futet në hyrjen e bllokut të zëvendësimit S (nga anglishtja. Zëvendësimi - zëvendësimi), rezultati e cila është një vlerë 32-bit. Zëvendësimi kryhet në tetë kuti zëvendësimi ose tetë kuti S. Kur e bësh këtë DES në letër duket mjaft e ndërlikuar, 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 programues me përvojë... Disa vështirësi lindin kur implementimi i softuerit, për shembull, një ndërrim fillestar ose një ndërrim me zgjerim. Këto vështirësi janë për faktin se fillimisht ishte planifikuar të zbatohej DES vetëm harduer. Të gjitha operacionet e përdorura në standard kryhen lehtësisht nga njësitë harduerike dhe nuk ka vështirësi me zbatimin. Sidoqoftë, disa kohë pas publikimit të standardit, zhvilluesit e softuerit vendosën të mos qëndrojnë mënjanë dhe gjithashtu të fillojnë të krijojnë sisteme të kriptimit. Me tutje DES implementuar si në harduer ashtu edhe në softuer.

Standardi DES projektuar 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ë i SHBA. Që atëherë, DES është bërë një standard jo vetëm në emër, por në fakt. Shfaqet software dhe mikrokompjuterë të specializuar të projektuar për enkriptimin dhe deshifrimin e informacionit në rrjetet e transmetimit të të dhënave.

DES është deri tani algoritmi më i përhapur i përdorur në sistemet e sigurisë. informacion tregtar... 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 56 bit i gjatë;

· Pasi të keni koduar një mesazh me një paketë, mund të përdorni çdo tjetër për të deshifruar;

Thjeshtësia relative e algoritmit ofron shpejtësi e lartë përpunimi i informacionit;

· Qëndrueshmëri mjaftueshëm e lartë e algoritmit.

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

Procesi i enkriptimit përbëhet nga një shkëmbim fillestar i biteve të një blloku 64-bitësh, gjashtëmbëdhjetë cikle enkriptimi dhe në fund një shkëmbim i kundërt i biteve (Fig. 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 u zgjodhën nga zhvilluesit në mënyrë të tillë që ta bënin procesin e deshifrimit sa më të vështirë të jetë e mundur duke marrë me mend çelësin. Struktura e algoritmit DES është paraqitur në Fig. 2.

Oriz. 2.

Le të lexohet nga skedari blloku tjetër 8 bajt T, i cili transformohet duke përdorur matricën e ndërrimit fillestar të IP (Tabela 1) si më poshtë: biti 58 i bllokut T bëhet biti 1, biti 50 - biti 2, etj. do të rezultojë në: T (0) = IP (T).

Sekuenca rezultuese e biteve T (0) ndahet në dy sekuenca me nga 32 bit secila: L (0) - bit majtas ose më domethënës, R (0) - bit djathtas ose më pak domethënës.

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 i-të përsëritja 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ëshe R (i-1), e marrë në përsëritjen e (i-1), dhe çelësi 48-bit K (i), i cili është rezultat i transformimit 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ë, përftohen 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 ndërrohen në përputhje me matricën IP -1 (Tabela 2).

Tabela 2: IP -1 matrica e ndërrimit të kundërt

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 janë të lidhura si më poshtë: vlera e elementit të parë të matricës IP -1 është 40, dhe vlera e elementit të 40 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, e kështu me radhë.

Procesi i deshifrimit të të dhënave është i kundërt me procesin e kriptimit. Të gjitha veprimet duhet të kryhen në rend i kundërt... Kjo do të thotë që të dhënat e deshifruara fillimisht riorganizohen në përputhje me matricën IP-1, dhe më pas të njëjtat veprime kryhen në sekuencën e biteve R (16) L (16) si në procesin e kriptimit, 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ë, përftohen 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 është përcaktuar në tabelë. 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, së cilës i shtohet moduli 2 (operacioni xor) me një çelës 48-bit K (i). Sekuenca 48-bitëshe që rezulton ndahet 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 përcaktohen me tabelë. 4.

Tabela 4

Në tryezë. 4. Kërkon sqarime të mëtejshme. Le të hyjë blloku 6-bit B (j) = b1b2b3b4b5b6 në hyrjen e funksionit të matricës Sj, atëherë numri dy-bitësh b1b6 tregon numrin e rreshtit të matricës dhe b2b3b4b5 është numri i kolonës. Rezultati i Sj (B (j)) është një element 4-bit i vendosur në kryqëzimin e rreshtit dhe kolonës së specifikuar.

Për shembull, B (1) = 011011. Pastaj S1 (B (1)) ndodhet në kryqëzimin e rreshtit 1 dhe kolonës 13. Kolona 13 e rreshtit 1 është vendosur në 5. Pra S1 (011011) = 0101.

Duke aplikuar operacionin e përzgjedhjes në 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, pjesët e kësaj sekuence duhet të ndërrohen. Për këtë përdoret funksioni i ndërrimit P (Tabela 5). Në sekuencën hyrëse, bitet ndërrohen 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 transferimit P

Në këtë mënyrë,

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

Për të përfunduar përshkrimin e algoritmit të kriptimit të të dhënave, mbetet të jepet një algoritëm për marrjen e çelësave 48-bit K (i), i = 1 ... 16. Në çdo përsëritje, përdoret një vlerë e re kryesore K (i), e cila llogaritet nga çelësi fillestar K. K është një bllok 64-bitësh me tetë bit barazie të vendosura në pozicionet 8,16,24,32,40,48, 56, 64.

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

Tabela 6

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

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 të çelësit 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. Tabela e zhvendosjes 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 kryesore e pas-përpunimit 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). Në këtë mënyrë:

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

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

Oriz. 4.

Rimëkëmbja teksti burimor kryhet sipas këtij algoritmi, por së pari përdorni tastin K (15), pastaj - K (14) e kështu me radhë. Tani duhet të jetë e qartë për ju pse autori rekomandon fuqimisht përdorimin e matricave të dhëna. Nëse filloni të jeni të drejtë, duhet të keni marrë një kod shumë sekret, por ju vetë nuk mund ta zbuloni atë!

Të cilën ANSI e quan DEA (Data Encryption Algorithm), dhe ISO - DEA-1, është bërë një standard botëror në 20 vjet. Gjatë viteve të ekzistencës së tij, ai i ka rezistuar sulmeve të ndryshme dhe, nën disa kufizime, konsiderohet ende i sigurt kriptografikisht.

DES është një shifër blloku që kodon të dhënat në blloqe 64-bitësh. Në njërën skaj të algoritmit, futet një bllok 64-bitësh i tekstit të thjeshtë, dhe në skajin tjetër, del një bllok teksti shifror 64-bitësh. DES është algoritmi simetrik: I njëjti algoritëm dhe çelës përdoren për enkriptim dhe deshifrim (përveç ndryshimeve të vogla në përdorimin e çelësit). Gjatësia e çelësit është 56 bit. (Çelësi zakonisht përfaqësohet 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 pjesë të rëndësishme byte kyç.) Çelësi, i cili mund të jetë çdo numër 56-bitësh, mund të ndryshohet në çdo kohë.

Rezistenca e kriptove përcaktohet plotësisht nga çelësi. Blloku themelor i ndërtimit të DES është kombinimi i permutacioneve 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ë e marrë si rezultat i përsëritjes së i-të, K i është një çelës 48-bitësh për ciklin i, dhe f është një funksion që kryen të gjitha zëvendësimet, permutacionet dhe XOR me një kyç, atëherë një cikël konvertimi mund të mendohet si:

Duke marrë parasysh zëvendësimin F i (*) dhe ndërrimin T (*), cikli i transformimit mund të paraqitet siç është bërë në Fig.

Mund të shihet se çdo cikël DES është një shifër kompozicionale me dy transformime të njëpasnjëshme - 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 që nga

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)

Dhe zëvendësimi

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 pronë e dobishme: I njëjti algoritëm përdoret për enkriptim dhe deshifrim. Dallimi i vetëm është se çelësat duhet të përdoren në rend të kundërt.


Kjo do të thotë, nëse çelësat K 1, K 2, K 3, ..., K 16 janë përdorur për kriptim, atëherë çelësat e deshifrimit do të jenë K 16, K 15, K 14, ..., K 1. Algoritmi përdor vetëm aritmetikë standarde të numrave 64-bit dhe operacionet logjike, kështu që është e lehtë për t'u zbatuar në harduer.

DES funksionon në një bllok 64-bitësh të tekstit të thjeshtë. Pas ndërrimit fillestar, blloku ndahet në gjysmën e djathtë dhe të majtë me nga 32 bit secila. Më pas kryhen 16 transformime (funksioni f), në të cilin të dhënat kombinohen me çelësin. Pas ciklit të gjashtëmbëdhjetë, gjysma e djathtë dhe e majtë kombinohen dhe algoritmi përfundon me ndërrimin përfundimtar (inversi me origjinalin). Në çdo cikël (shih Fig.), bitet kyçe zhvendosen dhe më pas zgjidhen 48 bit nga 56 bit kyç. Gjysma e djathtë e të dhënave zgjerohet në 48 bit me anë të një ndryshimi përhapës, XOR 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 riorganizohet sërish. Këto katër operacione kryhen nga funksioni f.

Pastaj rezultati i funksionit f lidhet 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 gjysma e vjetër e djathtë bëhet një gjysmë e re e majtë. Këto hapa përsëriten 16 herë, duke formuar 16 raunde 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. Kriptoalgoritmi 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ë të 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 shkon në hyrjen e kutisë së vet S. GOST përdor tetë kuti S të ndryshme, 4 bitet e para hyjnë në kutinë e parë S, 4 bitat e dyta në kutinë e dytë S, e kështu me radhë. Çdo kuti S është një ndërrim i numrave nga 0 në 15. Për shembull, një kuti S 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 bashkohen në një fjalë 32-bitëshe, më pas e gjithë fjala zhvendoset ciklikisht majtas 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 kriptimi, por rendi i nënçelësave k i është i përmbysur. Standardi nuk përcakton 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 është një çelës 56-bit, dhe në GOST është një çelës 256-bit. Nëse shtojmë permutacione sekrete të kutive S, atëherë sasia totale e informacionit sekret GOST do të jetë afërsisht 610 bit;
  • Kutitë DES S kanë hyrje dhe dalje 4-bitëshe dhe kutitë S GOST kanë hyrje dhe dalje 4-bitësh. Tetë kuti S përdoren në të dy algoritmet, por kutia S GOST është e barabartë me një të katërtën e kutisë S DES;
  • DES përdor një ndryshim të parregullt të quajtur P-box, dhe GOST përdor një zhvendosje rrethore 11-bit majtas;
  • DES ka 16 cikle, dhe GOST - 32.

Një sulm i fuqisë ndaj GOST është absolutisht i pashpresë. GOST përdor një çelës 256-bit, dhe nëse merren parasysh kutitë sekrete S, gjatësia e çelësit do të jetë edhe më e madhe. GOST duket të jetë më i qëndrueshëm ndaj kriptanalizës diferenciale dhe lineare sesa DES. Megjithëse kutitë S të rastësishme GOST, me disa zgjedhje, nuk garantojnë forcë të lartë kriptografike në krahasim me kutitë fikse DES S, sekreti i tyre rrit rezistencën GOST ndaj kriptanalizës diferenciale dhe lineare. Për më tepër, efektiviteti i këtyre metodave kriptanalitike varet nga numri i cikleve të transformimit - sa më shumë cikle, aq më e vështirë është kriptanaliza. GOST përdor dy herë më shumë cikle sesa DES, gjë që, ndoshta, çon në mospërputhje të 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ë për shkak të reduktimit të efekteve të ortekëve; është e arsyeshme të supozohet se mungesa e një operacioni të tillë në GOST ndikon negativisht në forcën e tij kriptografike. Nga pikëpamja e fuqisë 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. Permutacioni DES rrit efektin e ortekëve. Në GOST, një ndryshim në një bit hyrës ndikon në një bllok S të një cikli konvertimi, i cili më pas prek dy blloqe S të ciklit tjetër, 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ë rezultatit; në DES duhen vetëm pesë cikle. Sidoqoftë, GOST përbëhet nga 32 cikle, dhe DES vetëm 16.

Zhvilluesit e GOST u përpoqën të arrinin një ekuilibër midis fuqisë kriptografike dhe efikasitetit. Duke marrë si bazë ndërtimin e Feistel-it, ata zhvilluan një kriptoalgoritëm 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. Megjithatë, pyetja nëse përpjekjet e zhvilluesve janë kurorëzuar me krijimin e një algoritmi më kriptografik se DES mbetet e hapur.

Vorobieva E., Lukyanova A.

Algoritmi më i zakonshëm dhe më i njohur i enkriptimit simetrik është DES (Standardi i enkriptimit të të dhënave). Algoritmi u zhvillua në 1977, dhe në 1980 u miratua nga NIST (Instituti Kombëtar i Standardeve dhe Teknologjisë, SHBA) si standard.

DES është një rrjet klasik Feistel me dy degë. Të dhënat janë të koduara në blloqe 64-bit duke përdorur një çelës 56-bit. Algoritmi konverton hyrjen 64-bit në dalje 64-bit në disa raunde. Gjatësia e çelësit është 56 bit. Procesi i kriptimit ka katër faza. Hapi i parë është kryerja e një ndryshimi fillestar (IP) të tekstit burimor 64-bit (zbardhja), gjatë të cilit bitet rirenditen sipas tabelë standarde... Faza tjetër përbëhet nga 16 raunde të të njëjtit funksion që përdor operacionet e ndërrimit dhe zëvendësimit. Në fazën e tretë, gjysma e majtë dhe e djathtë e prodhimit të përsëritjes së fundit (të 16-të) kthehen mbrapsht. Së fundi, në hapin e katërt, rezultati IP-1 i marrë në hapin e tretë riorganizohet. Permutacioni IP-1 është i kundërt me ndryshimin fillestar.

Fig. 4. Algoritmi DES

Figura tregon mënyrën se si përdoret një çelës 56-bit. Fillimisht, çelësi futet në hyrjen e funksionit të ndërrimit. Pastaj, për secilin nga 16 raundet, nënçelësi K i është një ndërrim ciklik majtas dhe kombinim ndërrimi. Funksioni i ndërrimit është i njëjtë për çdo raund, por nënçelësat K i janë të ndryshëm për çdo raund për shkak të zhvendosjes së përsëritur të bitave të çelësave.

Permutacioni fillestar dhe anasjellta e tij përcaktohen nga tabela standarde. Nëse M është 64 bit i rastësishëm, atëherë X = IP (M) është 64 bit i ndërruar. Nëse aplikojmë funksionin e ndërrimit të anasjelltë Y = IP-1 (X) = IP-1 (IP (M)), marrim sekuencën origjinale të biteve.

Përshkrimi i raundit des

Merrni parasysh sekuencën e transformimeve të përdorura në çdo raund.

Fig. 5. Ilustrim i një raundi të algoritmit DES

Blloku i hyrjes 64 bit kalon në 16 raunde, dhe në çdo përsëritje fitohet një vlerë e ndërmjetme 64-bit. Ana e majtë dhe e djathtë e secilës vlerë të ndërmjetme trajtohen si vlera të veçanta 32-bitësh, të emërtuara L dhe R. Çdo përsëritje mund të përshkruhet si më poshtë:

R i = L i -1 F (R i -1, K i)

Kështu, dalja e gjysmës së majtë të L i është e barabartë me hyrjen e gjysmës së djathtë të R i-1. Dalja e gjysmës së djathtë të R i është rezultat i XORing L i-1 dhe një funksioni F në varësi të R i-1 dhe K i.

Le të shqyrtojmë më në detaje funksionin F. R i, i cili futet në hyrjen e funksionit F, është i gjatë 32 bit. Fillimisht, R i zgjerohet në 48 bit duke përdorur një tabelë që përcakton një permutacion plus një shtrirje 16 bit. Zgjerimi bëhet në mënyrën e mëposhtme. 32 bit ndahen në grupe me 4 bit dhe më pas zgjerohen në 6 bit duke bashkuar bitet më të jashtme nga dy grupe ngjitur. Për shembull, nëse është pjesë e mesazhit hyrës

Efgh ijkl mnop. ... ...

atëherë zgjerimi rezulton në mesazh

Defghi hijklm lmnopq. ... ...

Pas kësaj, për vlerën 48-bit që rezulton, kryhet një operacion XOR me një nënçelës 48-bit K i. Pastaj vlera rezultuese 48-bit futet në hyrjen e funksionit të zëvendësimit, rezultati i të cilit është një vlerë 32-bit.

Zëvendësimi përbëhet nga tetë kuti S, secila prej të cilave merr 6 bit si hyrje dhe prodhon 4 bit në dalje. Këto transformime përcaktohen nga tabela të veçanta. Bitët e parë dhe të fundit të hyrjes S-box përcaktojnë numrin e rreshtit në tabelë, 4 bitet e mesme përcaktojnë numrin e kolonës. Kryqëzimi i rreshtit dhe kolonës përcakton daljen 4-bit. Për shembull, nëse hyrja është 011011, atëherë numri i rreshtit është 01 (rreshti 1) dhe numri i kolonës është 1101 (kolona 13). Vlera në rreshtin 1 dhe kolonën 13 është 5, d.m.th. dalja është 0101.

Më pas vlera 32-bitëshe që rezulton përpunohet duke përdorur ndërrimin P, qëllimi i të cilit është të rirenditni bitët sa më shumë që të jetë e mundur në mënyrë që në raundin tjetër të enkriptimit, me një probabilitet të lartë, çdo bit të përpunohet nga një tjetër S- kuti.

Çelësi për një raund të vetëm K i përbëhet nga 48 bit. Tastet K i fitohen me algoritmin e mëposhtëm. Për çelësin 56-bit të përdorur si hyrje në algoritëm, fillimisht kryhet një ndërrim në përputhje me tabelën Zgjedhja e Permuted 1 (PC-1). Çelësi 56-bit që rezulton ndahet në dy pjesë 28-bitësh, të përcaktuara përkatësisht C0 dhe D0. Në çdo raund, C i dhe D i zhvendosen në mënyrë të pavarur ciklike majtas 1 ose 2 bit, në varësi të numrit të raundit. Vlerat që rezultojnë janë të dhëna për raundin tjetër. Ato janë gjithashtu një hyrje në Permuted Choice 2 (PC-2), i cili prodhon një dalje 48-bit që është hyrja në F (R i-1, K i).

Procesi i deshifrimit është i ngjashëm me procesin e kriptimit. Teksti shifror përdoret në hyrje të algoritmit, por çelësat K i përdoren në rend të kundërt. K 16 përdoret në raundin e parë, K 1 përdoret në raundin e fundit. Le të jetë prodhimi i raundit të i-të të enkriptimit L i || R i. Atëherë hyrja përkatëse e raundit (16-i) -të të deshifrimit do të jetë R i || L i.

Pas raundit të fundit të procesit të deshifrimit, dy gjysmat e daljes ndërrohen në mënyrë që hyrja e ndërrimit përfundimtar IP-1 të jetë R 16 || L 16. Prodhimi i kësaj faze është tekst i thjeshtë.

Algoritmi DES

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

· Përdoret vetëm një çelës 56 bit i gjatë;

· Pasi të keni koduar një mesazh me një paketë, mund të përdorni çdo tjetër për të deshifruar;

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

· Qëndrueshmëri mjaftueshëm e lartë e algoritmit.

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

Procesi i enkriptimit përbëhet nga një ndërrim fillestar i biteve të një blloku 64-bitësh, gjashtëmbëdhjetë cikle enkriptimi dhe së fundi, një ndërrim i kundërt i biteve (Fig. 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 u zgjodhën nga zhvilluesit në mënyrë të tillë që ta bënin procesin e deshifrimit sa më të vështirë të jetë e mundur duke marrë me mend çelësin. Struktura e algoritmit DES është paraqitur në Fig. 2.

Fig. 2. Struktura e algoritmit të enkriptimit DES

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

Sekuenca rezultuese e biteve T (0) ndahet në dy sekuenca me nga 32 bit secila: L (0) - bit majtas ose më domethënës, R (0) - bit djathtas ose më pak domethënës.

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-të përsëritja 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ëshe R (i-1) e marrë në përsëritjen e (i-1) dhe çelësi 48-bit K (i), i cili është rezultat i transformimit 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ë, përftohen 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 ndërrohen në përputhje me matricën IP -1 (Tabela 2).

Tabela 2: IP -1 matrica e ndërrimit të kundërt

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 janë të lidhura si më poshtë: vlera e elementit të parë të matricës IP -1 është 40, dhe vlera e elementit të 40 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, e kështu me radhë.

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 e deshifruara fillimisht riorganizohen në përputhje me matricën IP-1, dhe më pas të njëjtat veprime kryhen në sekuencën e biteve R (16) L (16) si në procesin e kriptimit, 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ë, përftohen 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.


Fig. 3. Llogaritja e funksionit f (R (i-1), K (i))

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 - konvertoni bllokun 6-bit në 4-bit,

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

Funksioni i zgjerimit E është përcaktuar në tabelën 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, së cilës i shtohet moduli 2 (operacioni xor) me një çelës 48-bit K (i). Sekuenca 48-bitëshe që rezulton ndahet 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ën 4.

Tabela 4

Tabela 4. kërkohet sqarim i mëtejshëm. Le të hyjë blloku 6-bit B (j) = b1b2b3b4b5b6 në hyrjen e funksionit të matricës Sj, atëherë numri dy-bitësh b1b6 tregon numrin e rreshtit të matricës dhe b2b3b4b5 është numri i kolonës. Rezultati i Sj (B (j)) është një element 4-bit i vendosur në kryqëzimin e rreshtit dhe kolonës së specifikuar.

Për shembull, B (1) = 011011. Pastaj S1 (B (1)) ndodhet në kryqëzimin e rreshtit 1 dhe kolonës 13. Kolona 13 e rreshtit 1 është vendosur në 5. Pra S1 (011011) = 0101.

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

Së fundi, për të marrë rezultatin e funksionit të enkriptimit, pjesët e kësaj sekuence duhet të ndërrohen. Për këtë përdoret funksioni i ndërrimit P (Tabela 5). Në sekuencën hyrëse, bitet ndërrohen 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 transferimit P

Në këtë mënyrë,

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

Për të përfunduar përshkrimin e algoritmit të kriptimit të të dhënave, mbetet të jepet një algoritëm për marrjen e çelësave 48-bit K (i), i = 1 ... 16. Në çdo përsëritje, përdoret një vlerë e re kryesore K (i), e cila llogaritet nga çelësi fillestar K. K është një bllok 64-bitësh me tetë bit barazie të vendosura në pozicionet 8,16,24,32,40,48, 56, 64.

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

Tabela 6

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

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ëhet nga bitet 63, 55, ..., 12, 4 të çelësit K. Pas përcaktimit të C (0) dhe D (0), C (i) dhe D (i), i = 1 ... 16, janë të përcaktuara 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ën 7.

Tabela 7

Tabela e zhvendosjes për llogaritjen e çelësit

Numri i përsëritjes Shift (bit)
01 1
02 1
03 2
04 2
05 2
06 2
07 2
08 2
09 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

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

Tabela 8: Matrica kryesore e pas-përpunimit 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). Në këtë mënyrë:

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

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

Fig. 4. Blloku i algoritmit për llogaritjen e çelësit K (i)

Rivendosja e tekstit origjinal kryhet duke përdorur këtë algoritëm, por së pari përdorni çelësin

K (15), pastaj - K (14) dhe kështu me radhë. Tani duhet të jetë e qartë për ju pse autori rekomandon fuqimisht përdorimin e matricave të dhëna. Nëse filloni të jeni të drejtë, duhet të keni marrë një kod shumë sekret, por ju vetë nuk mund ta zbuloni atë!

Mënyrat e funksionimit DES

Për përmbushjen e plotë të të gjitha kërkesave për sistemet komerciale kriptimi, zbatohen disa mënyra të funksionimit të algoritmit DES. Mënyrat më të përhapura janë:

· Libri i kodeve elektronike (Electronic Codebook) - ECB;

Zinxhirimi i Blloqeve Shifrore - CBC;

· Feedback dixhital (Cipher Feedback) - CFB;

· Komentet e jashtme (Output Feedback) - OFB.

Në këtë mënyrë skedar origjinal M ndahet në blloqe 64-bitësh (8 bajt secili): M = M (1) M (2) ... M (n). Secili prej këtyre blloqeve është i koduar në mënyrë të pavarur duke përdorur të njëjtin çelës enkriptimi (Figura 5). Avantazhi kryesor i këtij algoritmi është lehtësia e zbatimit të tij. Disavantazhi është rezistenca relativisht e dobët kundër kriptanalistëve të aftë.

Artikujt kryesorë të lidhur