Dallime mes rishikimeve të "Algoritmi simetrik AES"

ridrejtim pasi e njejta permbajtje
v (→‎top: Referencat -> Referimet duke përdorur AWB)
(ridrejtim pasi e njejta permbajtje)
Etiketa: Ridrejtim i ri
 
#RIDREJTO [[AES]]
<h3>Shpjegimi i përgjithshëm</h3>
<hr/>
AES(Advanced Encryption Standard) është algoritëm që përdoret për enkriptim elektronik të të dhënave i krijuar nga NIST<br/>
( U.S. National Institute of Standards and Technology) në vitin 2001. Ky algoritë është krijuar si zëvendësim i algoritmit<br/>
DES, dhe është implementuar në qeverinë e shteteve të bashkuara të amerikës, dhe përdoret në gjith globin.<br/>
Është krijuar përmes algoritmit Rijndael nga Joan Daemen and Vincent Rijmen. AES përmbanë algoritmin Rijndael me bllok me<br/>
madhësi 128 bitshe, me qelës 128/192/256 bitësh. AES operon me matricë 4x4 .
<br/>
[[Skeda:AES.png|i kornizuar|majtas|AES skema e përgjithësuar]]
 
Varësisht nga gjatësia e qelësit ndryshon edhe numri i roundeve:
<ul>
<li>Çelësi 128 bit ka 10 raunde</li>
<li>Çelësi 192 bit ka 12 raunde</li>
<li>Çelësi 256 bit ka 14 raunde</li>
</ul>
AES-i përbëhet nga të ashtuquajturat shtresa. Secila shtresë manipulon me 128 bitët e të dhënave. Kemi 3 shtresa:<br/>
<ul>
<li>Shtresa ku shtohet çelësi</li>
<li>Shtresa e S-Box</li>
<li>Shtresa e difuzionit</li>
</ul>
 
<h2>Enkriptimi</h2>
<h3>Key Schedule</h3>
<hr/>
Përmes këtij plani merret qelesi kryesor dhe derivohen nënqelësat(subkey) prej tij për tu përdorur në AES. Te AES-i një shtim XOR<br/>
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ë<br/>
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ë<br/>
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.<br/>
Ekzistojnë plane të ndryshme për qelësat 128,192,256 bit.
 
<h3>Shtresa ku shtohet çelësi</h3>
<hr/>
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).<br/>
Pastaj secili byte i këtij qelësi kombinohet me byte-in përkatës te gjendjes përmes veprimit Bitwise OR (XOR) ⊕.
[[Skeda:AES-AddRoundKey.svg|parapamje|majtas]]
 
<h3>Shtresa e S-Box</h3>
<hr/>
Secili element (byte) ai,j nga matrica e gjendjes transformohet në S(ai,j ) duke u bazuar në tabela me veprime speciale matematikore.<br/>
S(a<sub>i,j</sub>)⊕a<sub>i,j</sub>≠0xFF dhe S(a<sub>i,j</sub>)≠a<sub>i,j</sub>
[[Skeda:AES-SubBytes.svg|parapamje|majtas]]
Shtresa e parë e manipulmit të AES është Byte Subtitution layer. Kjo shtresë mund të paramendohet<br/>
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ë<br/>
perdorur 8 S-Box-a të ndryshëm). Në këtë shresë secili byte Ai zëvendësohet me një byte <br/>
Bi (S(Ai) = Bi), ku S(Ai)+ S(Bi)≠ S(Ai+Bi) .<br/>
Secili nga 28=256 elementet hyrëse planifikohet me një element në dalje duke e bërë kështu S-Box-in<br/>
reversibil qe nevojitet për dekriptim.
 
<h3>Shtresa e difuzionit</h3>
<hr/>
''' Zhvendosja e rreshtave '''
<br/>
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. <br/>
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 <br/>
1,3,4 sipas rijndael cipher.
[[Skeda:AES-ShiftRows.svg|parapamje|majtas]]
 
''' Zhvendosja e kolonave '''
[[Skeda:AES-MixColumns.svg|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 <br/>
kthen 4 byte në dalje. Gjatë këtij operacioni secila kolonë shumëzohet me matricë fikse :<br/>
[[Skeda:MatricaAES.png|frameles|majtas]]
Shumëzimi me 1 - nuk ka ndryshim<br/>
Shumëzimi me 2 - zhvendose majtas<br/>
Shumëzimi me 3 - zhvendose majtas dhe XOR me një vlerë të pa zhvendosur.<br/>
Nëse pas zhvendosjes vlera e tejkalon 0xFF atëher vlera XOR me 0x1B.
 
<h2>Dekriptimi</h2>
Tek AES-i qdo shtresë është e kthyeshme (invertibile). Këtu shtresat inverze janë të ngjajshme me ato enkriptuese. <br/>
Këtu operacionet janë të ngjajshme vetëm se plani i qelësit (Subkey Schedule) duhet të jetë i kundert (revers) pasi që <br/>
radhitja e nënqelësave është e kundërt. Dihet që veprimi XOR është inverz.<br/>
<h3>Zhvendosja inverse e kolonave</h3>
<hr/>
Këtu kemi shumëzim me matricën inverze<br/>
[[Skeda:MatricaAES2.png|frameles|majtas]]
 
<h3>Zhvendosja inverse e reshtave</h3>
<hr/>
Këtu kemi zhvendosje në drejtim të kundert. Rreshti 1 nuk pëson ndryshim, kurse rreshti 2 zhvendoset për një djathtas,<br/>
rreshti 3 për dy djathtas, rreshti 4 për 3 djathtas<br />
[[Skeda:MatricaAES3.png|frameles|majtas]]
 
<h3>S-Boxat invers</h3>
<hr/>
Pasi që AES-i ka S-Box-a bijektiv, kemi S-Box inverz : Ai=S-1(Bi)=S-1(S(Ai)).
<h3>Decryption Key Schedule</h3>
<hr/>
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ë.
<h2>Performanca </h2>
AES-i përdoret në paisje të ndryshme ,nga smart kartelat 8bitëshe deri te kompjuterët e performancave të larta.<br/>
Në Pentium Pro, AES-i enkripton 11 MB/s për një procesor me shpejtësi 200&nbsp;MHz. Në një Pentium M 1.7&nbsp;GHz enkripton 60 MB/s. <br/>
Ndërkaq në procesor Intel Core i3/i5/i7 enkripton 700 MB/s per thread.
 
<h2>Referimet</h2>
* 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, [https://archive.is/20130105232834/http://wiki.crypto.rub.de/Buch/sample_chapters.php "The Advanced Encryption Standard"], Chapter 4 of "Understanding Cryptography, A Textbook for Students and Practitioners". Springer, 2009.
 
[[Kategoria:Programimi kompjuterik]]
[[Kategoria:Siguria informatike]]