Algoritmi i gjenerimit të nënçelësave të DES-it

Key schedule është një algoritëm që, duke e pasur të dhënë çelësin llogarit nën çelësat. 
DES-i përdor strukturën e Feistel-it me 16 runde. DES-i po ashtu është block-ciper qe do të thotë se operon ne blloqet e plaintextit i cili është i një gjatësie te dhënë 64 bit dhe jep cipertextin me gjatësi të njëjtë. Kemi 264 mundësi të ndryshme për ti radhitur 64 bit çelës, bitët janë në binar (0 ose 1).
Secili bllok 64 bit ndahet ne 2 blloqe 32 bit-she (L dhe R). Leximi bëhet nga e djathta në të majtë . 
Madhësia e çelësit është 64 bit por çdo i 8 bit, pra 1 bit i çdo bajti përdoret si bit për paritet.Si rezultat do e kemi çelësin 56 bitësh, ky eliminim duket tek krijimi i nën çelësave.
Hapi i parë
Çelësi 64 bit hyn ne PC-1:
Çelësi 64 bit hyn në një rund të permutacionit siç shihet në tabelë:

Biti i 57 i çelësit origjinal K do te bëhet biti i parë i çelësit të permutacionit K+, biti 49 i çelësit K do të bëhet biti i dytë i çelësit K+ e kështu me radhë. Ne dalje të permutacion kemi 56 bit çelës.

Hapi i dytë
Nga çelësi 56 bit krijohen çiftet e çelësave CnDn ( n=1,2,3...,16).
Ndahet çelësi K+ në dy gjysma , gjysma e djathtë C0 dhe e majtë D0 ,secila gjysme me nga 28 bit. 
Me C0 dhe D0  e përcaktuar  ne tani krijojmë 16 blloqe Cn dhe Dn, 1<=n<=16. Secili qift Cn dhe Dn formohet nga qift i mëparshëm Cn-1 dhe D n-1, respektivisht prej n=1,2,...16 duke e përdorur skemën e mëposhtme të left-shift ( e zhvendosim secilin bit për një pozite nga e majta) , përveç bitit të parë i cili cirkulohet në fund të bllokut.

Pra C3 dhe D3 janë të marrura nda C2 dhe D2 me nga 2 left-shift, dhe C16 me D16 janë te marrura nga C15 dhe D15 me nga një left-shift. Me left-shift kuptojmë  rotacioni i bitit për një pozitë nga e majta.

Hapi i tretë
Gjenerimi i 16 nën çelësat secili nga ta është nga 48 bit i gjatë.
Tani krijohet çelësi Kn duke zbatuar PC2 ne secilin qift CnDn .

Secili çift i çelësave para se të hyjë hy në PC-2 ka 56 bit por PC2 i përdor vetëm 48 bit. 
Biti i parë i Kn do të jetë biti 14 i CnDn, biti i dytë do të jetë biti i 17 i CnDn dhe kështu me radhë duke përfunduar në bitin e 32 i cili do te jete biti i 48 i CnDn.  
Strategjia e përdorur për krijimin e çelësave te ndryshëm për secili rund nga çelësi kryesor e ka për qëllim prezantimin e Konfuzionit në procesin e enkriptimit. Çdo bit i çelësit duhet te afektoj sa më shumë bita që të jetë e mundur të bllokut  të ciphertext në dalje.

 Referime 

Kategoria:Shkencë
Kategoria:Programim kompjuterik
Kategoria:Siguria informatike