Standardi i Avancuar i Kriptimit

Skema e përgjithësuar e AES.|parapamje|250x250px**Standardi i Avancuar i Kriptimit** (anglisht: *Advanced Encryption Standard*, AES) është algoritëm që përdoret për kriptim elektronik të të dhënave i krijuar nga NIST (U.S. National Institute of Standards and Technology) në vitin 2001. Ky algoritëm ë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 çelës 128/192/256 bitësh. AES operon me matricë 4x4 .

Varësisht nga gjatësia e çelësit ndryshon edhe numri i cikleve apo 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

## Kriptimi
### Key Schedule
Përmes këtij plani merret çelësi kryesor dhe derivohen nënçelë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. Numri i çelësave është sa numri i raundeve +1 , për shkak të procesit key whitening (sepse para nisjes së raundit të parë shtohet XOR me një çelës). Derivimi i çelësave bëhet në mënyrë rekurzive ashtu që për të fituar çelësin Ki duhet të dijmë çelësin Ki-1. AES key schedule është e orientuar në fjalë, ku një fjalë = 32bit.
Ekzistojnë plane të ndryshme për çelësat 128,192,256 bit.

## Shtresa ku shtohet çelësi
Një subkey 128 bitësh derivohet nga çelësi kryesor përmes një plani (Rijndael's key schedule) ku gjatësia e çelësit është sa e gjendjes (state).
Pastaj secili byte i këtij çelësi kombinohet me byte-in përkatës të gjendjes përmes veprimit  Bitwise OR (XOR) ⊕.
parapamje|majtas

## Shtresa e S-Box
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
parapamje|majtas
Shtresa e parë e manipulmit të AES është Byte Subtitution layer. Kjo shtresë mund të paramendohet sikurse 16 S-Box-a paralele ku secila ka 8 bit në hyrje dhe 8 bit në dalje (për dallim nga DES-i ku janë përdorur 8 S-Box-a të ndryshëm). Në këtë shtresë 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
reverzibil që nevojitet për dekriptim.

## Shtresa e difuzionit
### Zhvendosja e rreshtave
Rreshti 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 për n-1, kurse për bllok 256 bit reshtat 2,3,4 zhvendosen për 1,3,4 sipas rijndael cipher.
parapamje|majtas

### Zhvendosja e kolonave
parapamje|majtas

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|majtas
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
Tek AES-i çdo shtresë është e kthyeshme (invertibile). Këtu shtresat inverze janë të ngjajshme me ato kriptuese. 
Këtu operacionet janë të ngjajshme vetëm se plani i çelësit (Subkey Schedule) duhet të jetë i kundërt (revers) pasi që 
radhitja e nënçelësave është e kundërt. Dihet që veprimi XOR është inverz.

### Zhvendosja inverse e kolonave
Këtu kemi shumëzim me matricën inverze
frameles|majtas

### Zhvendosja inverse e rreshtave
Këtu kemi zhvendosje në drejtim të kundërt. 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|majtas

### S-Boxat inverse
Pasi që AES-i ka S-Box-a bijektiv, kemi S-Box inverz : Ai=S-1(Bi)=S-1(S(Ai)).
### Decryption Key Schedule
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
AES-i përdoret në paisje të ndryshme ,nga smart kartelat 8 bitëshe deri te kompjuterët e performancave të larta.
Në  Pentium Pro, AES-i kripton 11 MB/s për një procesor me shpejtësi 200 MHz. Në një Pentium M1.7 GHz kripton 60 MB/s. 

Ndërkaq në procesorin Intel Core i3/i5/i7 kripton 700 MB/s për thread.

### AES dhe rëndësia e tij 
AES (Advanced Encryption Standard) është një algoritëm kriptimi 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 çelësa,

12 cikle për 192 bit çelësa dhe

14 cikle për çelësat 256 bit.

Rëndësia dhe forca e gjithë AES algoritmit qëndron ne faktin se (128, 192 dhe 256) janë të mjaftueshme për t'i mbrojtur informatat e klasifikuara deri në nivelin sekret.

AES është i bazuar në një parim të projektimit të njohur si një rrjet "Ndërrim Zëvendësimi" .

Ai është i shpejtë si në Software ashtu edhe në Hardware.

Ndryshe nga DES-i, AES nuk përdor FEISTEL NETWORK.

AES vepron mbi një matricë 4 × 4 bytes. Me 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 kriptimi kyç.

Një raund i grupit të kundërt janë aplikuar për të transformuar ciphertextin në plaintext origjinal duke përdorur të njëjtin kriptim kyç.

### Siguria e AES-it 
Siguria e AES-it po qëndron në atë se si të mbrojmë dhe të ofrojmë një siguri më të madhe kundër sulmeve që njihen si:
Informatika Kuantike". Shumica e çelësave 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ë kriptimit
#Gjatësia kyçe e algoritmeve simetrike.
#Gjatësia kyçe e algoritmeve josimetrike.
#Efekti i sulmeve në informatiken kuantike etj.

## Referime 
* Nicolas Courtois, Josef Pieprzyk, "Cryptanalysis of Block Ciphers with Overdefined Systems of Equations". pp267&ndash;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