encyklopedia.space

AES

AES (ang. Advanced Encryption Standard) jest powszechnie stosowanym algorytmem szyfrowania symetrycznego, zatwierdzonym jako standard kryptograficzny przez amerykański NIST w 2001 roku. Zastępuje on starszy DES i jego wariant 3DES, oferując wyższy poziom bezpieczeństwa przy jednoczesnym zachowaniu wydajności implementacji sprzętowych i programowych.

Historia

Projektowanie nowego standardu szyfru symetrycznego rozpoczęło się w 1997 roku, gdy NSA i NIST ogłosiły konkurs mający wyłonić następcę DES. Do konkursu zgłoszono 15 algorytmów, z których pięć przeszło pierwszą runde selekcji. Ostatecznie zwyciężył algorytm Rijndael, opracowany przez belgijskich kryptologów Joan Daemen i Vincent Rijmen. Standard został opublikowany w dokumencie FIPS‑197 i formalnie przyjęty w 2001 roku.

Specyfikacja

AES jest algorytmem szyfrowania blokowego o stałej długości bloku 128 bitów. Obsługuje trzy długości klucza: 128, 192 i 256 bitów, co skutkuje odpowiednio 10, 12 i 14 rundami przetwarzania danych.

  • Blok danych: 128 bitów
  • Długość klucza: 128, 192 lub 256 bitów
  • Liczba rund: 10 (128‑bitowy klucz), 12 (192‑bitowy klucz), 14 (256‑bitowy klucz)
  • Operacje podstawowe: SubBytes, ShiftRows, MixColumns, AddRoundKey

Algorytm wykorzystuje tzw. S‑boksy (substitucyjne) oraz mieszanie kolumny w przestrzeni Galois’a (GF(28)), co zapewnia silne rozeznawanie różnic pomiędzy sąsiadującymi blokami danych.

Zastosowania

AES znajduje zastosowanie w wielu protokołach i systemach informatycznych, m.in.:

  • TLS/SSL – zabezpieczanie połączeń internetowych
  • IPsec – szyfrowanie ruchu w sieciach IP
  • WPA2 – zabezpieczenia sieci WLAN
  • PGP i GnuPG – szyfrowanie wiadomości e‑mail
  • BitLocker, FileVault – szyfrowanie dysków twardych
  • Systemy płatności elektronicznych oraz aplikacje rządowe i wojskowe

Bezpieczeństwo

Do tej pory AES nie został skutecznie złamany w warunkach praktycznych przy użyciu znanych ataków kryptograficznych, takich jak atak brutalny (brute‑force) czy atak kryptograficzny wykorzystujący słabe implementacje. Najważniejsze zagrożenia dotyczą natomiast:

  • Użycia słabych lub powtarzających się kluczy
  • Lewych implementacji podatnych na ataki timingowe i kanał boczny
  • Niewłaściwego zarządzania wektorami inicjalizacyjnymi (IV) w trybach operacyjnych, takich jak CBC czy CTR

Tryby operacyjne

AES może być używany w różnych trybach operacyjnych, które określają sposób przetwarzania kolejnych bloków danych. Najpopularniejsze z nich to:

  • ECB (Electronic Codebook) – najprostszy, ale niezalecany ze względu na brak losowości
  • CBC (Cipher Block Chaining) – wprowadza łańcuchowanie bloków
  • CFB (Cipher Feedback) – umożliwia szyfrowanie strumieniowe
  • OFB (Output Feedback) – podobny do CFB, ale bardziej odporny na błędy transmisji
  • CTR (Counter) – bardzo wydajny, szczególnie w implementacjach równoległych
  • GCM (Galois/Counter Mode) – zapewnia jednoczesne szyfrowanie i uwierzytelnianie danych

Implementacje i biblioteki

Wiele otwarto‑źródłowych oraz komercyjnych bibliotek implementuje AES, m.in.:

Powiązane pojęcia

Do tematyki AES związane są także następujące zagadnienia:

Bibliografia

1. FIPS PUB 197 – Advanced Encryption Standard (AES), National Institute of Standards and Technology, 2001.
2. Daemen, J., Rijmen, V. The Design of Rijndael: AES - The Advanced Encryption Standard. Springer, 2002.
3. NIST Special Publication 800‑38A – Recommendation for Block Cipher Modes of Operation, 2001.