Locked History Actions

Advanced Encryption Standard

Žodis angliškai:

Advanced Encryption Standard

Santrumpa:

AES

Žodis lietuviškai:

Pažangaus šifravimo standartas

Apibrėžimas:

AES (pažangus šifravimo standartas, angl. Advanced Encryption Standard) buvo pirmasis blokinis simetrinis šifravimo algoritmas, sukurtas organizavus konkursą. Jį paskelbė Nacionalinis standartų ir technologijos institutas (angl. NIST - National Institute of Standards and Technology) 1997 m.

Konkurso tikslas buvo surasti gerą algoritmą, kuris taptų JAV valstybiniu standartu. 1998 m. kandidatų sąrašas buvo sutrumpintas iki 15. Tuomet prasidėjo išsamus testavimas. Daugumoje algoritmų buvo rastos silpnos vietos, ir 1999 m. dalyvių sąraše liko tik 5 dalyviai. Prasidėjo kitas testavomo etapas. 2000 m. NIST paskelbė turintys nugalėtoją – algoritmą, pavadintą Rijndael (nuo kūrėjų Vincent Rijmen ir Joan Daemen, tariama reindal). Šis algoritmas nebuvo įveiktas per visus bandymus. JAV vyriausybė pavadino algoritmą AES.


Paaiškinimai

Sukurtas 1997m. dviejų Belgijos šifruotojų, šis šifravimo būdas 2002 metais pakeitė DES (angl. data encryption standart), kuris iki tol buvo pagrindinis duomenų šifravimo standartas, nes pastarasis tapo nebepatikimas dėl per trumpo (56 bitų) rakto ilgio. AES yra simetrinis-blokinis šifras, kur bloko dydis 128 bitai. Rakto ilgiai gali būti 128, 192 arba 256 bitų, vadinami AES-128, AES-192, ir AES-256 atitinkamai. AES-128 naudoja 10 ciklų, AES-192 naudoja 12 ciklų, o AES-256 14 ciklų. AES suskaldo duomenis į 16 baitų (128 bitų) blokus, ir traktuoja kiekvieną bloką kaip 4x4 matricą, su kuria atlieka pakeitimus. AES pagrindinės funkcijos:

  1. Baitų sumaišymas ( SubBytes)

  2. Eilučių perstumdymas ( ShiftRows)

  3. Stulpelių sumaišymas ( MixColumns)

  4. Užšifravimas ( AddRoundKey)

Baitų sumaišymas

  • Kievienas bitas yra apdorojamas pagal S-Box. S-Box yra sukeitimo lentelė (angl. - substitution table), kur vienas baitas yra pakeičiamas kitu, remiantis naudojamu algoritmu. AES baitų sukeitimo lentelė:

aeslentele.jpg

Tam kad atlikti baitų sumaišymo sumaišymo operaciją eilutės pavyzdžiui "ABC", reik paimti kiekvieno baito šešioliktainę vertę. ASCII “A” == hex 0x42, “B” == 0x43, o “C” == 0x44. Pirmasis (kairysis), skaitmuo atitinka lentelės stulpelius, o antrasis - eilutes. 0x42 tampa 0x2c; 0x43 tampa 0x1a, o 0x44 tampa 0x1b.

Eilučių perstumdymas Antruoju veiksmu AES yra sumaišomos eilutės. Kievieno bloko nulinė eilutė nėra perstumiama, pirmoji eilutė perstumiama per vieną baitą, antroji - per du, trečioji - per tris baitus.

aeseilutes.jpg

Stulpelių sumaišymas Kiekvienas 4 baitų stulpelis yra traktuojamas kaip vienas vienas 4 baitų ilgio numeris, ir yra pakeičiamas kitu numeriu. aesstulpeliai.jpg

Užšifravimas Tikrasis šifravimas vyksta šioje stadijoje, kai kiekvienas baitas yra išskirtiuni arba užšifruojamas savo porakčiu. Poraktis yra kilęs iš rakto. aesraktas.jpg

AES ciklas Pilnas AES ciklas atrodo taip:

aesciklas.jpg


Naudota literatūra

  1. http://www.giac.org/cissp-papers/42.pdf

  2. http://searchsecurity.techtarget.com/definition/Advanced-Encryption-Standard