Advanced Encryption Standard (AES) je specifikace pro šifrování elektronických dat zavedená americkým Národním institutem pro standardy a technologie (NIST) v roce 2001. AES je dnes široce používán, protože je mnohem silnější než DES a trojitý DES, přestože je těžší. provádět.
Body k zapamatování
- AES je bloková šifra.
- Velikost klíče může být 128/192/256 bitů.
- Šifruje data v blocích po 128 bitech.
To znamená, že jako vstup potřebuje 128 bitů a jako výstup vydává 128 bitů šifrovaného textu. AES se opírá o princip substitučně-permutační sítě, což znamená, že se provádí pomocí řady propojených operací, které zahrnují nahrazení a promíchání vstupních dat.
výukový program pro mikroslužby
Práce se šifrou:
AES provádí operace s bajty dat spíše než s bity. Protože velikost bloku je 128 bitů, šifra zpracovává 128 bitů (neboli 16 bajtů) vstupních dat najednou.
Počet kol závisí na délce klíče takto:
- 128bitový klíč – 10 kol
- 192bitový klíč – 12 kol
- 256bitový klíč – 14 kol
Vytvoření kulatých klíčů:
Algoritmus Key Schedule se používá k výpočtu všech kulatých klíčů z klíče. Počáteční klíč se tedy používá k vytvoření mnoha různých kulatých klíčů, které budou použity v odpovídajícím kole šifrování.

Šifrování:
AES považuje každý blok za 16bajtovou (4 bajty x 4 bajty = 128) mřížku v uspořádání sloupců major.
[ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>
Každé kolo se skládá ze 4 kroků:
- SubBytes
- ShiftRows
- MixColumns
- Přidat kulatý klíč
Poslední kolo nemá kolo MixColumns.
SubBytes provádí substituci a ShiftRows a MixColumns provádějí permutaci v algoritmu.
Dílčí bajty:
Tento krok implementuje substituci.
V tomto kroku je každý bajt nahrazen jiným bajtem. Provádí se pomocí vyhledávací tabulky nazývané také S-box. Tato substituce se provádí tak, že bajt není nikdy nahrazen sám sebou a také není nahrazen jiným bytem, který je komplimentem aktuálního bajtu. Výsledkem tohoto kroku je matice 16 bajtů (4 x 4 ) jako dříve.
Další dva kroky implementují permutaci.
ShiftRows:
Tento krok je přesně takový, jak zní. Každý řádek je posunut o určitý počet.
- První řada není posunuta
- Druhá řada se posune jednou doleva.
- Třetí řada je posunuta dvakrát doleva.
- Čtvrtá řada je posunuta třikrát doleva.
(Provede se kruhový posun doleva.)
pořadí podle náhodného sql
[ 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:
Tento krok je v podstatě maticové násobení. Každý sloupec je násoben specifickou maticí a tím se mění pozice každého bajtu ve sloupci.Tento krok je v posledním kole přeskočen.
Po všech těchto kolech je vráceno zpět jako výstup 128 bitů zašifrovaných dat. Tento proces se opakuje, dokud všechna data, která mají být zašifrována, neprojdou tímto procesem.
Dešifrování:
Fáze v kolech lze snadno vrátit zpět, protože tyto fáze mají protiklad, který při provedení vrátí změny. Každých 128 bloků projde 10, 12 nebo 14 koly v závislosti na velikosti klíče.Fáze každého kola dešifrování jsou následující:
- Přidejte kulatý klíč
- Inverzní MixColumns
- ShiftRows
- Inverzní dílčí bajt
Proces dešifrování je proces šifrování prováděný obráceně, takže vysvětlím kroky s výraznými rozdíly.
Inverzní MixColumns:
Tento krok je podobný kroku MixColumns v šifrování, ale liší se maticí použitou k provedení operace.[ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>Inverzní podbajty:
Inverzní S-box se používá jako vyhledávací tabulka a pomocí které se při dešifrování nahrazují bajty.Aplikace:
AES je široce používán v mnoha aplikacích, které vyžadují bezpečné ukládání a přenos dat. Některé běžné případy použití zahrnují:
Zabezpečení bezdrátového připojení: AES se používá k zabezpečení bezdrátových sítí, jako jsou sítě Wi-Fi, k zajištění důvěrnosti dat a zabránění neoprávněnému přístupu. Šifrování databáze: AES lze použít k šifrování citlivých dat uložených v databázích. To pomáhá chránit osobní informace, finanční záznamy a další důvěrná data před neoprávněným přístupem v případě narušení dat. Zabezpečená komunikace: AES je široce používán v protokolech, jako je internetová komunikace, e-mail, rychlé zasílání zpráv a hlasové/video hovory. Zajišťuje, že data zůstanou důvěrná. Úložiště dat: AES se používá k šifrování citlivých dat uložených na pevných discích, discích USB a dalších úložných médiích a chrání je před neoprávněným přístupem v případě ztráty nebo krádeže. Virtuální privátní sítě (VPN): AES se běžně používá v protokolech VPN k zabezpečení komunikace mezi zařízením uživatele a vzdáleným serverem. Zajišťuje, že data odeslaná a přijatá prostřednictvím VPN zůstanou soukromá a nemohou být dešifrována odposlechy. Zabezpečené ukládání hesel: K bezpečnému ukládání hesel se běžně používá šifrování AES. Namísto ukládání hesel ve formátu prostého textu se ukládá zašifrovaná verze. To přidává další vrstvu zabezpečení a chrání přihlašovací údaje uživatele v případě neoprávněného přístupu k úložišti. Šifrování souborů a disků: AES se používá k šifrování souborů a složek v počítačích, externích úložných zařízeních a cloudových úložištích. Chrání citlivá data uložená na zařízeních nebo během přenosu dat, aby se zabránilo neoprávněnému přístupu.
Souhrn :
Instrukční sada AES je nyní integrována do CPU (nabízí propustnost několik GB/s) pro zvýšení rychlosti a zabezpečení aplikací, které používají AES pro šifrování a dešifrování. Přestože je to již 20 let od jeho zavedení, nepodařilo se nám prolomit algoritmus AES, protože je i se současnou technologií neproveditelný. Do dnešního dne zůstává jediná zranitelnost v implementaci algoritmu.