Išplėstinis šifravimo standartas (AES) yra elektroninių duomenų šifravimo specifikacija, kurią 2001 m. nustatė JAV nacionalinis standartų ir technologijos institutas (NIST). AES šiandien plačiai naudojamas, nes yra daug stipresnis už DES ir trigubą DES, nors ir yra sunkesnis. įgyvendinti.
Taškai, kuriuos reikia prisiminti
- AES yra blokinis šifras.
- Rakto dydis gali būti 128/192/256 bitai.
- Šifruoja duomenis blokais po 128 bitus.
Tai reiškia, kad reikia 128 bitų kaip įvesties ir išvesti 128 bitus šifruoto teksto kaip išvesties. AES remiasi pakeitimo-permutacijos tinklo principu, o tai reiškia, kad jis atliekamas naudojant susietų operacijų seriją, kuri apima įvesties duomenų pakeitimą ir maišymą.
Pašalinkite pirmąjį simbolį „Excel“.
Šifro veikimas:
AES atlieka operacijas su duomenų baitais, o ne bitais. Kadangi bloko dydis yra 128 bitai, šifras vienu metu apdoroja 128 bitus (arba 16 baitų) įvesties duomenų.
Raundų skaičius priklauso nuo rakto ilgio taip:
- 128 bitų raktas – 10 šovinių
- 192 bitų raktas – 12 raundų
- 256 bitų raktas – 14 raundų
Apvalių klavišų kūrimas:
Raktų tvarkaraščio algoritmas naudojamas apskaičiuojant visus apvalius klavišus iš rakto. Taigi pradinis raktas naudojamas norint sukurti daugybę skirtingų apvalių raktų, kurie bus naudojami atitinkamame šifravimo etape.

Šifravimas:
AES kiekvieną bloką laiko 16 baitų (4 baitai x 4 baitai = 128) tinkleliu pagrindiniame stulpelio išdėstyme.
[ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>
Kiekvienas turas susideda iš 4 žingsnių:
- Subbaitai
- ShiftRows
- MixColumns
- Pridėti apvalų raktą
Paskutiniame ture nėra MixColumns raundo.
Subbaitai atlieka pakeitimą, o ShiftRows ir MixColumns atlieka permutaciją algoritme.
Subbaitai:
Šis žingsnis įgyvendina pakeitimą.
Šiame žingsnyje kiekvienas baitas pakeičiamas kitu baitu. Tai atliekama naudojant paieškos lentelę, dar vadinamą S dėžute. Šis pakeitimas atliekamas taip, kad baitas niekada nebūtų pakeistas pats savaime ir taip pat nepakeičiamas kitu baitu, kuris yra dabartinio baito papildymas. Šio žingsnio rezultatas yra 16 baitų (4 x 4) matrica, kaip ir anksčiau.
Kiti du žingsniai įgyvendina permutaciją.
ShiftRows:
Šis žingsnis yra taip, kaip skamba. Kiekviena eilutė perkeliama tam tikrą skaičių kartų.
- Pirmoji eilutė nėra perkelta
- Antroji eilutė vieną kartą perkeliama į kairę.
- Trečioji eilutė du kartus perkeliama į kairę.
- Ketvirtoji eilutė tris kartus perkelta į kairę.
(Atliekamas apskritas poslinkis į kairę.)
[ b0 | b1 | b2 | b3 ] [ b0 | b1 | b2 | b3 ] | b4 | b5 | b6 | b7 | ->| b5 | b6 | b7 | b4 | | b8 | b9 | b10 | b11 | | b10 | b11 | b8 | b9 | [ b12 | b13 | b14 | b15 ] [ b15 | b12 | b13 | b14 ]>>MixColumns:
Šis žingsnis iš esmės yra matricos daugyba. Kiekvienas stulpelis padauginamas iš konkrečios matricos ir dėl to pakeičiama kiekvieno baito padėtis stulpelyje.Šis žingsnis praleidžiamas paskutiniame raunde.
Po visų šių raundų kaip išvestis grąžinami 128 bitai užšifruotų duomenų. Šis procesas kartojamas tol, kol bus atlikti visi šifruojami duomenys.
Iššifravimas:
Raundų etapus galima nesunkiai anuliuoti, nes šie etapai turi priešingybę, kurią atlikus grąžinami pakeitimai. Kiekvienas 128 blokai pereina 10, 12 arba 14 raundų, priklausomai nuo rakto dydžio.Kiekvieno iššifravimo raundo etapai yra tokie:
- Pridėkite apvalų raktą
- Inverse MixColumns
- ShiftRows
- Atvirkštinis subbaitas
Iššifravimo procesas yra šifravimo procesas, atliekamas atvirkštine tvarka, todėl paaiškinsiu veiksmus su pastebimais skirtumais.
Inverse MixColumns:
Šis veiksmas yra panašus į MixColumns šifravimo veiksmą, tačiau skiriasi matrica, naudojama operacijai atlikti..kita java[ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>Atvirkštiniai subbaitai:
Inverse S-box naudojamas kaip peržvalgos lentelė, kurią naudojant iššifruojant pakeičiami baitai.Programos:
AES plačiai naudojamas daugelyje programų, kurioms reikalingas saugus duomenų saugojimas ir perdavimas. Kai kurie įprasti naudojimo atvejai:
Belaidis saugumas: AES naudojamas belaidžių tinklų, pvz., „Wi-Fi“ tinklų, apsaugai, siekiant užtikrinti duomenų konfidencialumą ir užkirsti kelią neteisėtai prieigai. Duomenų bazės šifravimas: AES gali būti taikomas slaptiems duomenims, saugomiems duomenų bazėse, užšifruoti. Tai padeda apsaugoti asmeninę informaciją, finansinius įrašus ir kitus konfidencialius duomenis nuo neteisėtos prieigos duomenų pažeidimo atveju. Saugus ryšys: AES plačiai naudojamas tokiuose protokoluose kaip interneto ryšys, el. paštas, momentiniai pranešimai ir balso / vaizdo skambučiai. Tai užtikrina, kad duomenys išliktų konfidencialūs. Duomenų saugykla: AES naudojama slaptiems duomenims, saugomiems standžiuosiuose diskuose, USB atmintinėse ir kitose laikmenose, užšifruoti, siekiant apsaugoti juos nuo neteisėtos prieigos praradimo ar vagystės atveju. Virtualūs privatūs tinklai (VPN): AES dažniausiai naudojamas VPN protokoluose, siekiant apsaugoti ryšį tarp vartotojo įrenginio ir nuotolinio serverio. Tai užtikrina, kad duomenys, siunčiami ir gauti per VPN, išliktų privatūs ir jų negalėtų iššifruoti klausytojai. Saugus slaptažodžių saugojimas: AES šifravimas dažniausiai naudojamas saugiam slaptažodžių saugojimui. Vietoj paprasto teksto slaptažodžių saugojimo išsaugoma šifruota versija. Tai suteikia papildomo saugumo lygio ir apsaugo vartotojo kredencialus neteisėtos prieigos prie saugyklos atveju. Failų ir disko šifravimas: AES naudojamas failams ir aplankams užšifruoti kompiuteriuose, išoriniuose saugojimo įrenginiuose ir debesies saugykloje. Jis apsaugo slaptus duomenis, saugomus įrenginiuose arba perduodant duomenis, kad būtų išvengta neteisėtos prieigos.
Santrauka:
AES instrukcijų rinkinys dabar yra integruotas į centrinį procesorių (siūlo kelių GB/s pralaidumą), kad pagerintų programų, kurios šifravimui ir iššifravimui naudoja AES, greitį ir saugumą. Nors nuo jo įvedimo praėjo 20 metų, mums nepavyko sulaužyti AES algoritmo, nes jis neįgyvendinamas net naudojant dabartines technologijas. Iki šiol vienintelis pažeidžiamumas liko įgyvendinant algoritmą.