Jak działa algorytm szyfrowania Rijndael?
Znany również pod skrótem AES
Bezpieczne przesyłanie ściśle poufnych informacji bez umożliwienia dostępu osobom nieuprawnionym od zawsze stanowiło wyzwanie. Wczesne „tajne języki” – na przykład proste przesunięcia liter – przy współczesnej mocy obliczeniowej są trywialne do złamania. Dziś chronimy dane za pomocą metod kryptograficznych, które są precyzyjnie zdefiniowane matematycznie i których bezpieczeństwo zostało publicznie poddane ocenie.
Takie metody wykorzystują klucz, który znają wyłącznie nadawca i odbiorca. Szyfrowanie i deszyfrowanie odbywa się zgodnie z algorytmem szyfrowania – jasno opisanym procesem matematycznym.
Password Depot szyfruje Państwa poufne dane przy użyciu algorytmu Rijndael, który został znormalizowany jako AES (Advanced Encryption Standard).
Poniżej wyjaśniamy działanie tego algorytmu i przedstawiamy jego techniczny kontekst.
Advanced Encryption Standard (AES) – znormalizowany wariant Rijndael
Amerykańskie National Bureau of Standards (obecnie NIST) znormalizowało w 1977 roku DES; standard ten został w 2005 roku wycofany, ponieważ nie był już wystarczająco bezpieczny (komunikat NIST). Jako następcę NIST wybrał w 2001 roku Rijndael i na jego podstawie ustandaryzował Advanced Encryption Standard (AES) (FIPS 197).
Ważne: AES to podzbiór rodziny Rijndael. W AES rozmiar bloku jest ustalony na 128 bitów i dozwolone są klucze o długości 128, 192 lub 256 bitów (Uwaga NIST, FIPS 197 (PDF)).
AES jest dopuszczony do ochrony informacji instytucji rządu USA aż do poziomu TOP SECRET (zob. CNSSP‑15 Fact Sheet oraz aktualne CNSA‑2.0‑FAQ NSA).
Jak działa Rijndael/AES (krótki przegląd)
Rijndael to szyfr typu sieć podstawieniowo-permutacyjna-Chiffre. Podstawowe idee to podstawienia na poziomie bajtów, transformacje liniowe oraz XOR-powiązania.
Przebieg na poziomie bloku (128-bitowy „stan”)
- Rozszerzanie klucza (Key Schedule): Z klucza wyprowadzanych jest Nr + 1 kluczy rundy (np. 11 dla AES-128, 13 dla AES-192, 15 dla AES-256). Źródło: FIPS 197.
- Runda początkowa: AddRoundKey – blok tekstu jawnego (jako macierz 4×4 bajtów) jest łączony operacją XOR z pierwszym kluczem rundy.
- Rundy 1 … Nr:
- SubBytes: Każdy bajt jest zastępowany za pomocą S-Box (odwrotność multiplikatywna w GF(28) plus transformacja afiniczna ze stałą
0x63). Źródło: FIPS 197. - ShiftRows: wiersze macierzy stanu są cyklicznie przesuwane.
- MixColumns: kolumny są mieszane przez mnożenie macierzowe w GF(28).
- AddRoundKey: XOR z odpowiednim kluczem rundy.
- SubBytes: Każdy bajt jest zastępowany za pomocą S-Box (odwrotność multiplikatywna w GF(28) plus transformacja afiniczna ze stałą
Uwaga: W ostatniej rundzie pomija się MixColumns. Liczba rund wynosi 10/12/14 dla kluczy o długości 128/192/256 Bit (FIPS 197).
AES może być implementowany w oprogramowaniu, firmware lub sprzęcie (FIPS 197). Do praktycznego zastosowania są Tryby działania są używane, np. CBC, CTR lub GCM (uwierzytelnione szyfrowanie). Zalecenia znajdą Państwo w dokumentach NIST SP 800–38A oraz NIST SP 800–38D (GCM/GMAC).
Ważne dla właściwego zrozumienia: AES to szyfr symetryczny do szyfrowania danych. Wymiana kluczy odbywa się zazwyczaj z użyciem metod asymetrycznych ((EC)DH/RSA). Jednak AES może bezpiecznie opakowywać klucze („Key Wrap”) – por. NIST SP 800–38F.
Oficjalna specyfikacja
Dokument referencyjny znajdą Państwo tutaj: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Ataki Brute-Force
Brute-Force oznacza, że atakujący wszystkie możliwe klucze. Klasyczne metody, takie jak DES z kluczami o długości zaledwie 56 bitów, można dziś w praktyce złamać – dlatego NIST w 2005 roku oficjalnie wycofał (NIST).
Nowoczesne metody, takie jak AES z kluczami o długości 128/192/256 bitów, dysponują natomiast astronomicznie dużą przestrzenią kluczy. W praktyce mniejsze znaczenie ma sam algorytm niż wyprowadzanie klucza z hasła oraz jakość hasła głównego.
Password Depot dodatkowo utrudnia ataki brute force dzięki funkcji opóźnienia: po błędnym wpisaniu hasła głównego program pozostaje zablokowany przez kilka sekund.
Wniosek: Przy prawidłowej implementacji, odpowiednich trybach pracy (np. GCM) i wystarczającej długości klucza AES jest z dzisiejszej perspektywy uznawany za rozwiązanie bardzo bezpieczne w długim okresie.
Więcej o atakach brute force.
Dodatkowe źródła
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (oryginalna specyfikacja)
- NIST: AES jest podzbiorem Rijndael (rozmiar bloku 128 bitów)
- NIST SP 800–38A – tryby działania (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (szyfrowanie uwierzytelnione)
- NIST SP 800–38F – AES Key Wrap
- CNSSP–15 Fact Sheet – zastosowanie AES do informacji tajnych/ściśle tajnych
- NSA: CNSA 2.0 FAQ – aktualne wymagania
- NIST: wycofanie DES (tło)
Zrozumieć ataki Brute‑Force
Dowiedz się, dlaczego długość hasła ma kluczowe znaczenie i jak się chronić.
Więcej o atakach Brute‑Force