Funksionet transformuese të AES-itAES-i[1] është një nga algoritmet më të njohura simetrike për kriptimin e të dhënave. Teksti hyrës i njohur si plaintekst është 128 bita kurse çelësi mund të jetë 128 bita, 192 ose 256 bita që korrespondon në tri llojet e AES që janë AES-128,AES-192 dhe AES-256. Blloku 128 bitësh i plaintekst formon matricën STATE tek e cila 4 bajtat e parë zënë kolonën e parë, 4 bajtat e dytë zënë kolonën e dytë e kështu me radhë. Matrica STATE modifikohet pas çdo faze të enkriptimit dhe dekriptimit. Nëse çelësi është 128 bita procesi i kriptimit i ka 10 cikle ,për çelësin 192 bitësh procesi ka 12 cikle,e për 256 bitësh kriptimi i ka 14 cikle. Ai bazohet në katër funksione transmetuese të cilat do t'i shqyrtojmë më hollësisht.
Zëvendësimi i bajtave[2]Substitute byte - Zëvëndësimi i bajtve është transformimi i parë në kuadër të një cikli të AES-it i cili konsiston në një tabelë. Tek AES-i definohet një matricë 16x16 e quajtur S-box e cila përmban të gjitha 256 vlerat e permutacioneve 8 bitëshe. STATE është vlera 128 bitëshe e bllokut hyrës i ndarë në matricë 4x4 i cili modifikohet pas qdo faze të enkriptimit dhe të dekriptimit dhe pas ciklit final në dalje na jep një matricë. Secili bajt i STATE vendoset në atë mënyrë që 4 bitat më të majtë përdoren si rresht kurse 4 bitat më të djathtë përdoren si kolonë e kështu me radhë.Keto vlera të rreshtave dhe kolonave më pastaj shërbejne si indekse në S-Box për të marrë vlerën 8 bitëshe në dalje. Pra secili bajt zëvëndësohet nga bajti tjetër ashtu që rreshti caktohet nga 4 bitat e majtë kurse kolona nga 4 bitat e djathtë. Në tabelën e mëposhtme nëse s1,1={1,2} mirret rreshti i parë dhe kolona e dytë ne këtë rast vlera = C9
Pra siq mund të vërehet se ky lloj transformimi kalon nëpër disa faza kryesore siq janë:
b1’=b1⊕b(i+4)mod 8⊕b(i+5)mod 8⊕b(i+6)mod 8⊕b(i+7)mod8⊕ci për 0 <i <8 ku bi është biti i-të i bajtit dhe ci është biti I i-te i bajtit të c .Shenja (‘) tregon se variabla do të ndryshohet vazhdimisht nga vlerat e vendosura në anën e majtë.
Zhvendosja e rreshtave[3]![]() Transformimi i dytë në kuadër të një cikli tek AES-i është edhe zhvendosja apo shiftimi i rreshtave. Rreshti i parë nuk zhvendoset apo nuk shiftohet fare kurse për rreshtin e dytë aplikohet një shiftim apo zhvendosje majtas,për rreshtin e tretë aplikohen 2 shiftime majtas kurse për të katërtin aplikohen 3 shiftime majtas. Në formë matematikore ky proces mud tëshprehet si vijon: S’r,c=Sr,(c+shift(r+NB))mod NB për 0<r<4 dhe 0 <c <NB Ku vlera e zhvendosjes shift(r,NB) varet nga numri i rreshtit r kurse psh Nb=4 atehere Shift(1,4)=1; shift(2,4)=2; shift(3,4)=3; Një lëvizje e tillë i vendos bajtat në pozitë më të ulët,përderisa bajti me I ulët rrotullohet dhe vendoset në qendër të rreshtit (vlerat më te larta te c në rreshtin tjetër).Inverse Rows Transformation aplikon zhvendosjen apo shiftimin në anën e kundërt.
Përzierja e kolonaveOperon me secilën kolonë individualisht. Secilit bajt të secilës kolonë i vendoset një vlerë e re e cila është si funksion i të gjithë 4 bajtave të asaj kolone.Ky transformim i çdo kolone si një polinom,d.m.th kolonat konsiderohet si një shprehje polinomiale GF(28) dhe shumëzohet me x4+1 dhe nje polinom tjeter : s(x) a(x) ⊕s(x) ![]()
Kjo mund të shprehet në një matricë përmes formulës Si rezulat i këtij pjestimi 4 bajtat e një kolone zëvendesohen si vijon:
Gjenerimi i çelësave![]() Në këtë fazë të fundit të transformimeve të AES-i 128 bitat e tabelës STATE bëhen XOR me 128 bitat e qelësit(round key).Ky operacion shihet si një lloj veprimi në mes të 4 bajteve të state dhe një fjalë të çelësit.Matrica e parë është STATE kurse e dytë RoundKey. Secili çelës i ciklit(Round Key) konsiston në një Nb fjalët e çelësit.Këto Nb fjalë i shtohen secilës kolonë në STATE matricën ashtu që :
Vegza dhe referencat
|