AES
AES (Advanced Encryption Standard) është algoritëm që përdoret për enkriptim elektronik të të dhënave i krijuar nga NIST (U.S. National Institute of Standards and Technology) në vitin 2001. Ky algoritë është krijuar si zëvendësim i algoritmit DES, dhe është implementuar në qeverinë e shteteve të bashkuara të amerikës, dhe përdoret në gjith globin. Është krijuar përmes algoritmit Rijndael nga Joan Daemen and Vincent Rijmen. AES përmbanë algoritmin Rijndael me bllok me madhësi 128 bitshe, me qelës 128/192/256 bitësh. AES operon me matricë 4x4 .
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/6/63/AES.png)
Varësisht nga gjatësia e qelësit ndryshon edhe numri i roundeve:
- Çelësi 128 bit ka 10 raunde
- Çelësi 192 bit ka 12 raunde
- Çelësi 256 bit ka 14 raunde
AES-i përbëhet nga të ashtuquajturat shtresa. Secila shtresë manipulon me 128 bitët e të dhënave. Kemi 3 shtresa:
- Shtresa ku shtohet çelësi
- Shtresa e S-Box
- Shtresa e difuzionit
Enkriptimi
[Redakto | Redakto nëpërmjet kodit]Key Schedule
[Redakto | Redakto nëpërmjet kodit]Përmes këtij plani m 4) erret qelesi kryesor dhe derivohen nënqelësat(subkey) prej tij për tu përdorur në AES. Te AES-i një shtim XOR i subkey bëhet në hyrje dhe në dalje. Ky proces njihet si key whitening. Nurmi i qelësave është sa numri i raundeve +1 , për shkak të procesit key whitening (sepse para nisjes së raundit të parë shtohet XOR një qeles P.S. Shiko faqe 2). Derivimi i qelësav bëhet në mënyrë rekurzive ashtu që për të fituar qelësin Ki duhet të dijmë qelësin Ki-1. AES key schedule është e orientuar në fjalë ku një fjalë = 32bit. Ekzistojnë plane të ndryshme për qelësat 128,192,256 bit.
Shtresa ku shtohet çelësi
[Redakto | Redakto nëpërmjet kodit]Një subkey 128 bitësh derivohet nga qelësi kryesor përmes një plani(Rijndael's key schedule) ku gjatësia e qelësit është sa e gjendjes (state). Pastaj secili byte i këtij qelësi kombinohet me byte-in përkatës te gjendjes përmes veprimit Bitwise OR (XOR) ⊕.
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/a/ad/AES-AddRoundKey.svg/220px-AES-AddRoundKey.svg.png)
Shtresa e S-Box
[Redakto | Redakto nëpërmjet kodit]Secili element (byte) ai,j nga matrica e gjendjes transformohet në S(ai,j ) duke u bazuar në tabela me veprime speciale matematikore. S(ai,j)⊕ai,j≠0xFF dhe S(ai,j)≠ai,j
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/a/a4/AES-SubBytes.svg/220px-AES-SubBytes.svg.png)
Shtresa e parë e manipulmit të AES është Byte Subtitution layer. Kjo shtresë mund të paramendohet sikurse 16 S-Box-a paralel ku secila ka 8 bit në hyrje dhe 8 bit në dalje (për dallim nga DES-i ku janë perdorur 8 S-Box-a të ndryshëm). Në këtë shresë secili byte Ai zëvendësohet me një byte Bi (S(Ai) = Bi), ku S(Ai)+ S(Bi)≠ S(Ai+Bi). Secili nga 28=256 elementet hyrëse planifikohet me një element në dalje duke e bërë kështu S-Box-in reversibil qe nevojitet për dekriptim.
Shtresa e difuzionit
[Redakto | Redakto nëpërmjet kodit]Zhvendosja e rreshtave
[Redakto | Redakto nëpërmjet kodit]Reshti i parë mbetet i pa ndryshuar, kurse rreshti 2 zhvendoset për një majtas, rreshti 3 për dy , reshti 4 për tre. Kështu për bllok me gjatësi 128/192 bit rreshti i fundit zhvendoset per n-1, kurse për bllok 256 bit reshtat 2,3,4 zhvendosen për 1,3,4 sipas rijndael cipher.
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/6/66/AES-ShiftRows.svg/220px-AES-ShiftRows.svg.png)
Zhvendosja e kolonave
[Redakto | Redakto nëpërmjet kodit]![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/7/76/AES-MixColumns.svg/220px-AES-MixColumns.svg.png)
Në këtë fazë 4 byte të secilës kolonë kombinohen përmes transformimeve të pakthyeshme. Ky funksion merr 4 byte në hyrje dhe kthen 4 byte në dalje. Gjatë këtij operacioni secila kolonë shumëzohet me matricë fikse :
![frameles](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/4/40/MatricaAES.png)
Shumëzimi me 1 – nuk ka ndryshim Shumëzimi me 2 – zhvendose majtas Shumëzimi me 3 – zhvendose majtas dhe XOR me një vlerë të pa zhvendosur. Nëse pas zhvendosjes vlera e tejkalon 0xFF atëher vlera XOR me 0x1B.
Dekriptimi
[Redakto | Redakto nëpërmjet kodit]Tek AES-i qdo shtresë është e kthyeshme (invertibile). Këtu shtresat inverze janë të ngjajshme me ato enkriptuese. Këtu operacionet janë të ngjajshme vetëm se plani i qelësit (Subkey Schedule) duhet të jetë i kundert (revers) pasi që radhitja e nënqelësave është e kundërt. Dihet që veprimi XOR është inverz.
Zhvendosja inverse e kolonave
[Redakto | Redakto nëpërmjet kodit]Këtu kemi shumëzim me matricën inverze
![frameles](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/a/ad/MatricaAES2.png)
Zhvendosja inverse e reshtave
[Redakto | Redakto nëpërmjet kodit]Këtu kemi zhvendosje në drejtim të kundert. Rreshti 1 nuk pëson ndryshim, kurse rreshti 2 zhvendoset për një djathtas, rreshti 3 për dy djathtas, rreshti 4 për 3 djathtas
![frameles](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/2/27/MatricaAES3.png)
S-Boxat invers
[Redakto | Redakto nëpërmjet kodit]Pasi që AES-i ka S-Box-a bijektiv, kemi S-Box inverz : Ai=S-1(Bi)=S-1(S(Ai)).
Decryption Key Schedule
[Redakto | Redakto nëpërmjet kodit]Këtu në round të parë përdoret subkey i fundit, në raundin e dytë përdoret subkey i parafundit e kështu me radhë.
Performanca
[Redakto | Redakto nëpërmjet kodit]AES-i përdoret në paisje të ndryshme ,nga smart kartelat 8bitëshe deri te kompjuterët e performancave të larta. Në Pentium Pro, AES-i enkripton 11 MB/s për një procesor me shpejtësi 200 MHz. Në një Pentium M 1.7 GHz enkripton 60 MB/s.
Ndërkaq në procesor Intel Core i3/i5/i7 enkripton 700 MB/s per thread.
AES dhe rëndësia e tij
[Redakto | Redakto nëpërmjet kodit]AES (Advanced Encryption Standard) është një algoritëm enkriptimi simetrik i miratuar nga qeveria amerikane.
Standardi përfshin tri bllok shifra: AES-128, AES-192 dhe AES-256, i miratuar nga një koleksion i madh i botuar fillimisht si Rijndael, versionet e tij janë :
10 cikle për 128 bit celësa,
12 cikle për 192 bit celësa dhe
14 cikle për celësat 256 bit.
Rëndësia dhe forca e gjithë AES algoritmit qëndron ne faktin se (128, 192 dhe 256) janë te mjaftueshme për ti mbrojtur informatat e klasifikuara deri ne nivelin sekret.
AES është i bazuar ne një parim te projektimit te njohur si një rrjet "Ndërrim Zëvendësimi" .
Ai është i shpejtë si në Software ashtu edhe ne Hardware.
Ndryshe nga DES-i, AES nuk perdor FEISTEL NETWORK.
AES vepron mbi një matricë 4 × 4 bytes, Më AES llogaritjet janë bërë në një fushë të veçantë të fundme.
AES është shifër e specifikuar si një numër i raundeve të përsëritur që konverton plaintext në ciphertext. Çdo raund përbëhet nga disa hapa të përpunimit, duke përfshirë një që varet nga enkriptimi kyç.
Një raund i grupit të kundërt janë aplikuar për të transformuar ciphertextin në plaintext origjinal duke përdorur të njëjtin enkriptim kyç.
Siguria e AES-it
[Redakto | Redakto nëpërmjet kodit]Siguria e AES-it po qëndron në atë së si të mbrojmë dhe të ofrojmë një siguri me të madhe kundër sulmeve që njihen si: Informatika Kuantike". Shumica e çelesave simetrik në përdorim të përbashkët janë të dizajnuar që të kenë siguri të barabartë me gjatësinë e tyre kryesore.
Siguria e AES- Algoritmit qëndron në disa tipare, ku në kuadër të të cilave hynë :
- Madhësia kryesore e sistemit të enkriptimit
- Gjatësia kyce e algoritmeve simetrike.
- Gjatësia kyce e algoritmeve josimetrike.
- Efekti i sulmeve në informatiken kuantike etj.
Referime
[Redakto | Redakto nëpërmjet kodit]- Nicolas Courtois, Josef Pieprzyk, "Cryptanalysis of Block Ciphers with Overdefined Systems of Equations". pp267–287, ASIACRYPT 2002.
- Joan Daemen, Vincent Rijmen, "The Design of Rijndael: AES - The Advanced Encryption Standard." Springer, 2002. ISBN 3-540-42580-2.
- Christof Paar, Jan Pelzl, "The Advanced Encryption Standard", Chapter 4 of "Understanding Cryptography, A Textbook for Students and Practitioners". Springer, 2009