AES (ang. Advanced Encryption Standard)
A. jest poprzednikiem DES (ang. Data Encryption Standard).
B. nie może być zaimplementowany sprzętowo.
C. nie może być wykorzystywany przy szyfrowaniu plików.
D. wykorzystuje symetryczny algorytm szyfrujący.
AES, czyli Advanced Encryption Standard, wykorzystuje symetryczny algorytm szyfrujący, więc ta odpowiedź jest właściwa. Symetryczny oznacza, że do szyfrowania i odszyfrowywania używa się tego samego klucza tajnego. W praktyce jest to bardzo ważne, bo AES jest szybki i nadaje się do ochrony dużej ilości danych, na przykład całych dysków, kopii zapasowych, archiwów ZIP, baz danych czy transmisji w VPN. Standard został opisany przez NIST w FIPS 197 i zastąpił starszy DES, który ma za krótki klucz 56-bitowy jak na dzisiejsze realia. AES pracuje na blokach 128-bitowych i może używać kluczy 128, 192 albo 256 bitów. Z mojego doświadczenia warto pamiętać, że sam AES to tylko szyfr blokowy, a w prawdziwych systemach dobiera się jeszcze tryb pracy, np. GCM, CBC albo CTR. Dobrą praktyką jest używanie trybów uwierzytelnionych, szczególnie AES-GCM, bo oprócz poufności daje też kontrolę integralności danych. Trzeba też pilnować losowych wektorów IV lub nonce, poprawnego zarządzania kluczami i nie wpisywać haseł jako klucza bez funkcji typu PBKDF2, bcrypt, scrypt albo Argon2.
W tym pytaniu łatwo pomylić kilka pojęć, bo nazwy DES i AES brzmią podobnie i oba dotyczą szyfrowania blokowego. AES nie jest jednak poprzednikiem DES. Historycznie było odwrotnie: DES, czyli Data Encryption Standard, był starszym standardem, a AES został wybrany przez NIST jako jego następca, opisany w FIPS 197. DES ma klucz efektywny 56 bitów, co dziś jest zdecydowanie za mało, bo taki klucz można atakować metodą brute force przy użyciu współczesnego sprzętu. AES z kluczami 128, 192 i 256 bitów jest dużo bezpieczniejszym rozwiązaniem, o ile jest użyty poprawnie. Nieprawdą jest też, że AES nie nadaje się do szyfrowania plików. Właśnie takie zastosowania są bardzo typowe: szyfrowanie kontenerów VeraCrypt, dysków BitLocker, LUKS w Linuksie, kopii zapasowych albo archiwów. Oczywiście program zwykle nie szyfruje pliku samym gołym AES-em, tylko używa konkretnego trybu pracy oraz mechanizmu wyprowadzenia klucza z hasła. Tu często pojawia się błąd myślowy: ktoś zakłada, że skoro AES szyfruje bloki danych, to nie poradzi sobie z plikiem o dowolnym rozmiarze. W praktyce robi się to przez tryby pracy i ewentualne dopełnianie danych. Nie jest też prawdą, że AES nie może być zaimplementowany sprzętowo. Wręcz przeciwnie, jest często wspierany sprzętowo, np. przez instrukcje AES-NI w procesorach Intel i AMD albo przez moduły kryptograficzne w układach embedded. Dzięki temu szyfrowanie jest szybsze i mniej obciąża procesor. Moim zdaniem najważniejsze skojarzenie do zapamiętania jest proste: AES to nowoczesny, symetryczny szyfr blokowy, a bezpieczeństwo zależy nie tylko od algorytmu, ale też od trybu pracy, jakości kluczy i poprawnej implementacji.