AES (Uzlabots šifrēšanas standarts) — simetriskā bloka šifrēšana
Kriptogrāfijā Advanced Encryption Standard (AES) ir simetriskās atslēgas bloka šifrēšanas algoritms, ko 2001. gadā izvēlējās Nacionālais standartu un tehnoloģiju institūts (NIST). Tas tika izvēlēts datu šifrēšanai. To plaši izmanto visā pasaulē. Uzlabotais šifrēšanas standarts ir aizstājis datu šifrēšanas standartu (DES).
Kopš 2008. gada AES ir viens no populārākajiem algoritmiem, ko izmanto simetriskajā kriptogrāfijā. Tas ir pieejams programmētājiem un plašai sabiedrībai ar dažādām programmatūras pakotnēm.
Kas ir AES — īss pārskats
AES ir bloka šifrēšanas algoritms ar fiksētu bloka garumu 128 biti. Tam ir trīs atbalstītās atslēgas garuma variācijas: 128, 192 un 256 biti. Atbilstoši atslēgas garumam mainās arī izpildes kārtu (rounds) skaits: 10, 12 vai 14 kārtas. AES pamatā ir Rijndael konstrukcija, ko izstrādāja Joan Daemen un Vincent Rijmen — NIST izvēlēja tieši šo kandidātu par AES uzvarētāju.
Tehniskā uzbūve un darbības princips
AES šifrēšanas pamatdarbības tiek veiktas uz 4x4 baitu matricu (stāvokļa bloks). Katrā kārtā izmanto virkni lineāru un nelināru transformāciju. Galvenās darbības ir:
- SubBytes — baitu aizstāšana ar S-kastīti (statisku permutāciju / nelināru transformāciju);
- ShiftRows — rindu cikliska nobīde, kas nodrošina difūziju starp rindu elementiem;
- MixColumns — lineāra transformācija, kas sajauc katras kolonnas baitu saturu, rada papildu sajaukšanu (mixing);
- AddRoundKey — bitu ekskluzīva vaišana (XOR) ar katras kārtas atslēgu, kas iegūta no galvenās atslēgas, izmantojot atslēgas paplašināšanas (key schedule) algoritmu.
AES izpilde ietver pirmo AddRoundKey, tad N‑1 pilnas kārtas (SubBytes → ShiftRows → MixColumns → AddRoundKey) un pēdējā kārtā MixColumns tiek izlaista.
Režīmi un praktiskā lietošana
AES kā bloka šifrā nevar tieši apstrādāt lielus datu straumes bez režīma. Parastākie darbības režīmi ir:
- ECB — vienkāršs, bet nedrošs režīms (nav ieteicams), jo identiski bloki rezultējas identiskā šifratekstā;
- CBC — plaši izmantots, nodrošina atkarību starp bloks, bet prasa pareizu inicializācijas vektoru (IV);
- CTR — straumes režīms ar skaitītāju (counter), labi paralelizējams;
- GCM — autentificēta šifrēšana (AEAD), kas sniedz gan konfidencialitāti, gan integritātes pārbaudi (vēlams mūsdienīgām lietojumprogrammām);
- CCM — vēl viens AEAD režīms, īpaši populārs iebūvētās sistēmās un bezvadu protokolos.
Praktiskās pielietošanas piemēri: TLS/HTTPS, IPsec, VPN, disku šifrēšana, failu šifrēšana, bezvadu tīklu drošība (piem., WPA2 izmanto AES-CCMP), dažādas programmatūras paketes un ierīces.
Drošība un kriptoanalīze
AES tiek uzskatīts par drošu rūpnieciskai un valstiskai lietošanai, ja tiek izmantoti atbilstoši atslēgas garumi un droši režīmi. Nav zināmu praktisku uzbrukumu, kas ļautu atklāt pilnu AES atslēgu par saprātīgu laiku, ja tiek izmantota pilna atslēga (128/192/256 biti) un pareiza izmantošana. Tomēr ir svarīgi ņemt vērā sekojošo:
- Ir uzrādītas teorētiskas vājības vai daļēji efektīvas metodes pret samazinātām kārtām vai ar specifiskām maldinošām atslēgām (related-key attacks) — tās neapdraud labi īstenotu AES ar pilnu kārtu skaitu praksē.
- Ir bijuši speciāli uzbrukumi, piemēram, biclique uzbrukums, kas nedaudz samazina teoretisko darba kārtību pret AES, taču praktiskā ietekme uz drošību ir minimāla.
- Reāla drošības problēma bieži rodas nevis no matemātiskām vājībām, bet no nepareizas ieviešanas — piemēram, puskanālu (side-channel) uzbrukumi, laika izceltas informācijas izmantošana, vājas nejaušības avotu atlases IV/nonce ģenerēšanā utt.
Implementācijas un optimizācija
AES labi piemērots gan programmatūras, gan aparatūras realizācijām. Mūsdienu procesori (Intel, AMD, ARM u.c.) bieži satur AES‑NI vai līdzīgu instrukciju komplektu, kas paātrina AES darbības un padara tās drošākas pret daudziem laika atkarīgajiem uzbrukumiem. Lai nodrošinātu drošību, jāievēro sekojošais:
- Izmantojiet pārbaudītas kriptogrāfijas bibliotēkas (OpenSSL, libsodium, BoringSSL utt.) nevis rakstiet savu AES īstenojumu no nulles;
- Izvairieties no nedrošiem režīmiem (piem., ECB) un izmantojiet AEAD režīmus (piem., GCM, CCM) ja nepieciešama arī datu autentifikācija;
- Rūpējieties par drošu atslēgu pārvaldību, atslēgu ģenerēšanu ar kvalitatīvu nejaušības avotu un drošu atslēgu glabāšanu;
- Aizsargājiet pret puskanālu uzbrukumiem (konstant‑time kods, maskēšana, speciālas aparatūras metodes) īpaši iebūvētajās vai ierīču vidēs.
Standarti, adopcija un licences
AES tika standartizēts kā FIPS 197 (NIST standarts). Tā plaša adopcija padarīja to par de facto standartu valsts un komerciālajai šifrēšanai. AES ir brīvi izmantojams — tas nav nepieciešams licencēt vai maksāt nodevas par tā lietošanu.
Praktiski ieteikumi
- Izmantojiet AES-256 vai AES-128 atbilstoši drošības prasībām (AES-256 sniedz lielāku atslēgas telpu, bet AES-128 joprojām tiek uzskatīts par drošu un bieži ātrāku);
- Izvēlieties AEAD režīmus (piem., AES-GCM) ja nepieciešama gan konfidencialitāte, gan autentifikācija;
- Vienmēr pareizi ģenerējiet un pārvaldiet IV/nonce — nekad neatkārtoti izmantojiet to pašā atslēgā, it īpaši GCM režīmā;
- Izmantojiet pārbaudītas bibliotēkas un sekojiet drošības ieteikumiem un atjauninājumiem no kriptogrāfijas kopienas.
Kopsavilkums
AES ir robusts, plaši atzīts un plaši izmantots simetrisks bloka šifrēšanas standarts. Tas nodrošina labu veiktspēju un drošību, ja tiek pareizi izmantots ar drošiem režīmiem un atbilstošu atslēgu pārvaldību. Tās popularitāte tulkojas tiešā lietošanā daudzās protokolu un produktu realizācijās visā pasaulē.


VeraCrypt ir programma, kas nodrošina iespēju šifrēšanai izmantot AES.
Vēsture
AES ir Rijndael (izrunā: [rɛindaːl]) bloka šifrs, ko izstrādājuši beļģu programmētāji Vincents Rijmens un Joans Dēmens.
Nacionālais Standartizācijas un tehnoloģijas institūts rīkoja konkursu par publiski pieejamu simetriskā atslēgas šifrēšanas algoritmu un 1997. gadā sāka pieņemt pieteikumus.
1998. gadā pirmajā AES konferences kārtā tika atlasīti piecpadsmit algoritmi. Pēc tam, kad NIST lūdza komentārus, rīkoja otro AES konferenci, kurā pieci labākie algoritmi bija MARS, RC6, Rijndael, Serpent un Twofish.
Līdz 2000. gadam un trešās AES konferences beigām NIST izvēlējās Rijndael par AES priekšlikumu. AES projektam NIST izvēlējās trīs Rijndael saimes locekļus, katrs ar 128 bitu bloka lielumu, bet ar trīs dažādiem atslēgas garumiem: 128, 192 un 256 biti.
Uzlabotais šifrēšanas standarts (AES) tika publicēts kā federālais informācijas apstrādes standarts 2001. gada 26. novembrī.
Sīkāka informācija
AES ir fiksēts 128 bitu bloka lielums un trīs atslēgas lielumi - 128, 192 vai 256 biti.
"Visu AES algoritma atslēgu garumu (t.i., 128, 192 un 256) konstrukcija un stiprums ir pietiekams, lai aizsargātu klasificētu informāciju līdz pat SLEPENI līmenim. Informācijai ar sevišķi slepenu (TOP SECRET) pakāpi būs jāizmanto 192 vai 256 atslēgas garumi. AES ieviešana produktos, kas paredzēti valsts drošības sistēmu un/vai informācijas aizsardzībai, pirms to iegādes un izmantošanas ir jāpārbauda un jāsertificē NSA."
AES ir ātrs gan programmatūras, gan aparatūras ziņā, ir salīdzinoši viegli īstenojams un prasa maz atmiņas.
Standarta
Uzlabotais šifrēšanas standarts (AES) ir definēts:
- FIPS PUB 197: uzlabotais šifrēšanas standarts (AES)
- ISO/IEC 18033-3: Bloka šifri
Saistītās lapas
- DES-X
- Datu šifrēšanas standarts (DES)
- Trīskāršais DES (TDES)
Jautājumi un atbildes
J: Kas ir uzlabotais šifrēšanas standarts (AES)?
A: Uzlabotais šifrēšanas standarts ir simetriskā atslēgas bloka šifrēšanas algoritms, ko izmanto datu šifrēšanai.
Q: Kad un kas izvēlējās AES?
A: AES 2001. gadā izvēlējās Nacionālais standartu un tehnoloģiju institūts (NIST).
J: Ko aizstāja AES?
A: AES ir aizstājis datu šifrēšanas standartu (DES).
J: Kad AES kļuva par vienu no populārākajiem algoritmiem, ko izmanto simetriskajā kriptogrāfijā?
A: Kopš 2008. gada AES kļuva par vienu no populārākajiem algoritmiem, ko izmanto simetrisko atslēgu kriptogrāfijā.
J: Kam ir piekļuve AES?
A.: AES ir pieejams programmētājiem un plašai sabiedrībai, izmantojot dažādas programmatūras paketes.
J: Kāda veida šifrēšanas algoritms ir AES?
A: AES ir simetriskā atslēgas bloka šifrēšanas algoritms.
J: Kāds ir AES galvenais mērķis?
A: AES galvenais mērķis ir šifrēt datus.