Czym jest szyfrowanie AES?
AES w kryptografii oznacza Advanced Encryption Standard, czyli szybki, wydajny i bezpieczny algorytm szyfrowania certyfikowany przez amerykański Narodowy Instytut Norm i Technologii (NIST). To szyfr z kluczem symetrycznym, który używa tego samego klucza zarówno do szyfrowania, jak i odszyfrowywania danych. Jest to stosunkowo szybkie, dzięki czemu idealnie nadaje się do szyfrowania dużych ilości danych w spoczynku.
Ze względu na swoją siłę i niezawodność AES jest jednym z najpopularniejszych i najczęściej stosowanych rodzajów szyfrowania używanych w zabezpieczeniach sieci bezprzewodowych, szyfrowaniu danych i szyfrowaniu dysków, systemach płatności online, przestrzeni dyskowej w chmurze, zarządzaniu hasłami, a nawet w zastosowaniach rządowych i wojskowych. Rząd USA używa szyfrowania AES do zabezpieczania swoich informacji niejawnych, co przyczyniło się do jego popularności.

Czy algorytm AES jest bezpieczny?
Tak. W 2000 roku, po bardzo dokładnym(nowe okno) i otwartym procesie wyboru, NIST ogłosił, że AES (znany do tamtej pory jako algorytm Rijndael, stworzony przez Vincenta Rijmena i Joan Daemena) zastąpi DES jako jego zalecany(nowe okno) „niejawny, publicznie ujawniony algorytm szyfrowania zdolny do ochrony wrażliwych informacji rządowych w następnym stuleciu”.
Według NIST wszystkie długości klucza algorytmu AES są uznawane za "wystarczające" do ochrony informacji niejawnych do poziomu "Tajne". W przypadku informacji „Ściśle tajnych” wymagany jest AES-192 lub AES-256.

Ataki brute force
Najbardziej podstawową formą ataku możliwą na każdy szyfr szyfrowania jest atak brute force, który polega na wypróbowywaniu każdej możliwej kombinacji klucza, aż zostanie znaleziona właściwa.
Frontier(nowe okno) to najpotężniejszy publicznie znany superkomputer na świecie. Gdyby przeznaczył całą swoją moc obliczeniową na atak brute force na AES-128, nadal potrzebowałby około 10–12 bilionów lat, aby wyczerpać wszystkie możliwe kombinacje dla AES-128. To znacznie dłużej niż wiek wszechświata. Dlatego nawet przy mniejszych rozmiarach bitowych AES jest wysoce odporny na ataki brute force ze strony konwencjonalnych komputerów.
AES-256 jest 340 miliardów miliardów miliardów miliardów (2¹²⁸) razy trudniejszy do złamania metodą brute force niż AES-128.
Chociaż algorytm Grovera(nowe okno) teoretycznie zmniejsza bezpieczeństwo kluczy symetrycznych o połowę wobec zagrożeń kwantowych(nowe okno), nadal są one stosunkowo odporne na komputery kwantowe, zwłaszcza przy użyciu klucza 256-bitowego.
Ataki na klucze
Na przestrzeni lat kryptografowie opublikowali szereg teoretycznych ataków na klucze AES, ale wszystkie są albo niewykonalne w praktyce, albo skuteczne jedynie wobec implementacji AES, które używają zmniejszonej liczby rund (patrz niżej).
Najbardziej udaną próbą był teoretyczny atak biclique(nowe okno) opublikowany w 2011 roku, który może skrócić czas potrzebny do złamania AES metodą brute force czterokrotnie. Mimo to nadal potrzeba byłoby miliardów lat, aby złamać AES metodą brute force na jakimkolwiek obecnym lub możliwym do przewidzenia sprzęcie komputerowym.
Żaden znany atak na klucz nie jest praktyczny wobec poprawnie zaimplementowanego AES-128 lub wyższego.
Ataki boczne
Atak boczny próbuje zmniejszyć liczbę kombinacji wymaganych do przeprowadzenia skutecznego ataku brute force poprzez szukanie wskazówek w komputerze wykonującym obliczenia szyfrowania. Wskazówki można uzyskać, badając:
- Czas działania — ile czasu komputer potrzebuje na wykonanie operacji
- Wycieki elektromagnetyczne
- Wskazówki dźwiękowe
- Wskazówki wizualne (wychwycone za pomocą kamery o wysokiej rozdzielczości).
W szczególności ataki cache-timing okazały się dość skuteczne w skutecznym łamaniu AES. W najbardziej znaczącym przykładzie badacze w 2016 roku byli w stanie odzyskać(nowe okno) klucz AES-128 przy użyciu „zaledwie około 6–7 bloków zwykłego tekstu lub szyfrogramu (teoretycznie wystarczyłby nawet pojedynczy blok)”.
Można jednak zrobić wiele, aby ograniczyć zagrożenie atakami bocznymi:
- Poprawnie zaimplementowany AES może zapobiegać sposobom, na jakie dane mogą wyciekać.
- Sprzęt integrujący zestaw instrukcji AES dodatkowo zmniejsza powierzchnię ataku bocznego dla AES.
- Techniki randomizacji można stosować, aby zaburzyć zależność między danymi chronionymi przez AES a wszelkimi danymi z wycieku, które mogłyby zostać zebrane przy użyciu ataku bocznego.
W wielu przypadkach ataki boczne wymagają, aby atakujący znajdował się blisko urządzenia lub miał do niego fizyczny dostęp podczas odszyfrowywania danych, chociaż zdalne ataki są możliwe, jeśli na urządzeniu zainstalowano złośliwe oprogramowanie, szczególnie w przypadku ataków opartych na czasie.
Jak działa AES
AES to szyfr blokowy, który szyfruje i odszyfrowuje dane w blokach 128-bitowych przy użyciu kluczy 128-bitowych, 192-bitowych lub 256-bitowych. Jak wspomniano wcześniej, do szyfrowania i odszyfrowywania danych używany jest ten sam klucz. AES używający klucza 128-bitowego jest często określany jako AES-128, i analogicznie w przypadku AES-192 oraz AES-256.

Dane są szyfrowane przy użyciu wielu rund, z których każda składa się z serii operacji matematycznych.
Proces zaczyna się od użycia algorytmu harmonogramu klucza Rijndaela do wyprowadzenia serii nowych kluczy rund z oryginalnego tajnego klucza. Jest to znane jako rozszerzanie klucza.
Każda runda składa się następnie z jednej lub większej liczby (lub kombinacji) następujących operacji:
1. Add RoundKey: wykonywana jest operacja XOR(nowe okno), aby połączyć dane przeznaczone do zaszyfrowania (szyfrogram) z każdym kluczem rundy.

2. Sub Bytes: tabela podstawień jest używana do dalszego mieszania danych. Pomyśl zasadniczo o prostych szyfrach podstawieniowych, których używałeś w dzieciństwie, gdy zastępowałeś każdą literę w wiadomości inną, znajdującą się o określoną liczbę miejsc dalej w alfabecie.

3. Shift Rows: każdy 128-bitowy blok danych składa się z 16-bajtowego bloku 4x4. Ta operacja przesuwa każdy bajt w wierszu bloku o określone przesunięcie w lewo.

4. MixColumns: na każdej kolumnie w bloku wykonywane jest dodatkowe odwracalne przekształcenie liniowe.

Ta seria przekształceń stanowi jedną rundę, która jest następnie powtarzana na danych określoną liczbę razy, zależnie od rozmiaru klucza:
- AES-128 — 10 rund
- AES-192 — 12 rund
- AES 256 — 14 rund
Aby odszyfrować dane, wszystkie kroki użyte do ich szyfrowania są po prostu wykonywane w odwrotnej kolejności. Wymaga to oryginalnego tajnego klucza do odwrócenia procesu przy użyciu każdego odwrotnego klucza rundy.
Dlaczego AES-256 jest preferowany względem AES-192 lub AES-128?
Złamanie AES-128 metodą brute force przy obecnej i możliwej do przewidzenia technologii zajęłoby więcej czasu niż wynosi wiek wszechświata. Legendarny kryptograf Bruce Schneier twierdził(nowe okno) nawet, że AES-128 może być silniejszy niż AES-256 dzięki mocniejszemu harmonogramowi klucza — algorytmowi, który oblicza wszystkie klucze rund na podstawie oryginalnego tajnego klucza.
Mimo to AES-256 stał się de facto złotym standardem szyfrowania z kluczem symetrycznym. Jest on często postrzegany (choć nie bez kontrowersji) jako silniejszy wybór, ponieważ większy rozmiar klucza daje dodatkowy margines bezpieczeństwa, dzięki czemu zaszyfrowane dane pozostaną bezpieczne, nawet jeśli zostanie znaleziony sposób na znaczne osłabienie algorytmu. Argument ten zyskał na sile, ponieważ potrzeba odporności postkwantowej staje się coraz bardziej pilna.
AES-CBC a AES-GCM
Jeszcze do niedawna AES był zwykle używany w trybie cipher block chaining (CBC), w którym każdy blok zwykłego tekstu jest poddawany operacji XOR z poprzednim blokiem szyfrogramu przed zaszyfrowaniem. W przypadku użycia w trybie CBC do weryfikacji danych wymagany jest algorytm haszujący HMAC(nowe okno), taki jak HMAC-SHA256.
Coraz częściej jednak AES jest używany w trybie Galois/counter (GCM), który wykorzystuje tryb licznika(nowe okno) szyfrowania. Jego główną zaletą jest to, że wykorzystuje pole Galois(nowe okno) do weryfikacji danych bez potrzeby stosowania zewnętrznego algorytmu. Jest więc wydajniejszy niż użycie osobnego algorytmu uwierzytelniania, który może powodować duży narzut obliczeniowy.
Chociaż AES-CBC z uwierzytelnianiem HMAC jest ogólnie uważany za bezpieczny, CBC jest potencjalnie podatny na ataki paddingowe(nowe okno), takie jak POODLE(nowe okno). GCM nie jest.
AES ze sprzętowym przyspieszeniem
Większość nowoczesnych procesorów CPU zawiera zestaw Advanced Encryption Standard New Instructions (AES-NI(nowe okno)), czyli zestaw instrukcji sprzętowych wykonujących operacje AES bezpośrednio na procesorze. To sprawia, że AES jest znacznie szybszy, a także pomaga zapobiegać atakom bocznym opartym na czasie, ponieważ operacje zachodzą wewnątrz bezpiecznych jednostek wykonawczych procesora, więc występuje mniej obserwowalnych różnic czasowych, które atakujący mógłby wykorzystać.
Proton i AES
Szeroko wykorzystujemy AES do zabezpieczania produktów Proton:
Wydarzenia i kontakty są zabezpieczane przy użyciu AES-256 w połączeniu z ECC do wymiany kluczy, aby zapewnić Ci prywatność dzięki szyfrowaniu end-to-end.
Proton VPN koncentruje się głównie na szybkim i wydajnym protokole VPN WireGuard® (który używa ChaCha20), ale połączenia OpenVPN używają AES-256.
Proton Pass przechowuje hasła, notatki, tożsamości i inne elementy w Twoim bezpiecznym sejfie przy użyciu AES-256.
Proton Drive szyfruje wszystkie przesłane pliki end-to-end przy użyciu AES-256 i ECC do wymiany kluczy. Proton Docs i Proton Sheets również używają AES-256 z opartą na ECC wymianą kluczy, chociaż ich implementacja szyfrowania różni się od ogólnego schematu szyfrowania plików w Proton Drive.
Proton Mail przechowuje wiadomości i załączniki przy użyciu AES-256 za pośrednictwem standardu OpenPGP. Nawet Twój klucz prywatny, który odblokowuje Twoje wiadomości, jest szyfrowany przy użyciu AES-256 przed zapisaniem na serwerze.
Proton Meet używa Messaging Layer Security (MLS) do szyfrowania dźwięku, obrazu i wiadomości na czacie, zapewniając forward secrecy (PFS) oraz post-compromise security (PCS) dla całej komunikacji. Wszystkie dane spotkań są zaszyfrowane end-to-end przy użyciu AES-256-GCM.
Ograniczanie ataków na szyfrowanie AES
Bezpieczeństwo jest tak silne, jak jego najsłabsze ogniwo, którym zwykle jest Twoje hasło. Oznacza to, że socjotechnika, ataki polegające na próbie wyłudzenia informacji i keyloggery(nowe okno) również stanowią zagrożenie dla danych zaszyfrowanych przy użyciu AES. Dlatego nawet gdy używany jest AES, powinieneś zastosować następujące środki ostrożności:
- Używaj zaszyfrowanego menadżera haseł
- Używaj sprzętowych kluczy bezpieczeństwa (takich jak YubiKey) dla dodatkowej warstwy ochrony
- Jeśli jesteś częścią organizacji, regularnie szkol pracowników z zakresu bezpieczeństwa, aby zapobiegać atakom polegającym na próbie wyłudzenia informacji
Przejmij kontrolę nad swoimi danymi
Proton został stworzony, aby chronić Twoje dane od samego początku. Dzięki szyfrowaniu end-to-end, aplikacjom open-source i niezależnym audytom, Twoje informacje pozostają Twoje.
Często zadawane pytania dotyczące szyfrowania AES
- Co jest lepsze: AES czy DES?
- Co jest lepsze: AES czy RSA?
- Jak silne jest bezpieczeństwo AES?
Dowiedz się więcej o szyfrowaniu
Słowniczek pojęć związanych z szyfrowaniem


