AES

Powszechnie stosowany standard szyfrowania symetrycznego uznawany za bardzo bezpieczny. Wykorzystywany m.in. do szyfrowania dysków, sieci Wi-Fi i komunikacji.

AES (Advanced Encryption Standard) to standard szyfrowania symetrycznego, czyli takiego, w którym ten sam klucz służy do zaszyfrowania i odszyfrowania danych. Powstał z algorytmu o nazwie Rijndael i w 2001 roku został zatwierdzony przez amerykański NIST jako standard FIPS 197. Od tamtej pory jest właściwie domyślnym wyborem wszędzie tam, gdzie trzeba szybko i bezpiecznie zaszyfrować dane. Pracuje na blokach 128-bitowych i obsługuje klucze o długości 128, 192 lub 256 bitów (stąd nazwy AES-128, AES-192, AES-256).

Jak to działa i do czego służy

AES to szyfr blokowy: dzieli dane na 128-bitowe kawałki i przepuszcza każdy przez kilka rund mieszania (podstawienia, przestawienia bajtów, operacje na kolumnach i dodawanie klucza rundy). Liczba rund zależy od długości klucza: 10 dla AES-128, 12 dla AES-192 i 14 dla AES-256. Im więcej rund, tym mocniej dane są „przemieszane”, ale też nieco wolniej.

Sam szyfr to jednak nie wszystko. W praktyce używasz AES w jakimś trybie pracy, który mówi, jak łączyć ze sobą kolejne bloki. Dziś standardem jest AES-GCM — daje on nie tylko poufność, ale i uwierzytelnienie (wykrywa, czy ktoś podmienił szyfrogram). Spotkasz AES dosłownie wszędzie: w szyfrowaniu dysków (BitLocker, FileVault, LUKS), w sieciach Wi-Fi (WPA2/WPA3), w TLS chroniącym HTTPS, w VPN-ach i menedżerach haseł.

Przykład z praktyki

Chcesz zaszyfrować plik z linii poleceń? Z OpenSSL wygląda to tak:

openssl enc -aes-256-gcm -pbkdf2 -salt -in tajne.txt -out tajne.enc

Używasz tu AES-256 w trybie GCM, a -pbkdf2 sensownie wyprowadza klucz z Twojego hasła. Warto wiedzieć, że nowoczesne procesory mają sprzętowe wsparcie AES (instrukcje AES-NI), więc szyfrowanie kosztuje grosze wydajności — sprawdzisz to na Linuksie przez grep aes /proc/cpuinfo.

Częste błędy i mity

„AES jest nie do złamania, więc jestem bezpieczny” — sam algorytm faktycznie nie ma znanych praktycznych ataków, ale to nie chroni przed błędną implementacją. Najczęstsze wpadki to: użycie starego trybu ECB (powtarzalne bloki zdradzają wzorce w danych — słynny „pingwin ECB”), powtórzenie tej samej pary klucz+nonce w GCM oraz wyprowadzanie klucza wprost z hasła bez funkcji typu PBKDF2/Argon2. Pamiętaj też: większy klucz nie naprawi złego trybu. AES-256 z ECB jest słabszy niż AES-128 z GCM.

Pojęcia powiązane

Szyfrowanie symetryczne kontra asymetryczne (RSA, ECC), tryby pracy szyfru (GCM, CBC, ECB), wektor inicjujący (IV/nonce), funkcje wyprowadzania klucza (PBKDF2, Argon2), TLS, WPA2/WPA3 oraz instrukcje AES-NI.