Cryptology Academy · Lekcja

Rozszerzanie klucza AES i rozmiary kluczy

Poznaj klucze 128-, 192- i 256-bitowe oraz proces harmonogramowania klucza.

Lekcja 3 z 413 kroki

Rozszerzanie klucza AES i rozmiary kluczy to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

AES rozszerza krótki klucz do wielu kluczy rund za pomocą schematu rozszerzania klucza. Zrozumienie tego mechanizmu jest niezbędne, aby pojąć, jak klucz przenika do każdej rundy.

Dlaczego rozszerzać klucz?

AES-128 ma 10 rund oraz początkową operację AddRoundKey. Wymaga to 11 kluczy rund × 16 bajtów = łącznie 176 bajtów. Schemat rozszerzania klucza przekształca 16-bajtowy klucz główny w pełny materiał kluczowy.

Słowa schematu klucza

Schemat klucza działa na słowach 4-bajtowych. AES-128 rozpoczyna od 4 słów (W[0..3]) pochodzących z oryginalnego klucza. Generuje W[4..43], co daje 44 słowa = 176 bajtów = 11 kluczy rund o długości 128 bitów.

SubWord

SubWord niezależnie stosuje S-box AES do każdego z 4 bajtów słowa. Zapewnia nieliniowość podczas rozszerzania klucza, zapobiegając atakom z kluczami powiązanymi.

RotWord

RotWord wykonuje cykliczne przesunięcie 4-bajtowego słowa w lewo: [a, b, c, d] → [b, c, d, a] Dzięki temu to samo słowo 32-bitowe nie powtarza się podczas rozszerzania klucza.

Stałe rund (Rcon)

Rcon[i] = [2^(i-1), 0, 0, 0] in GF(2^8). Wartość ta jest łączona operacją XOR z każdym czwartym słowem podczas rozszerzania klucza. Sprawia, że każdy klucz rundy jest inny, i zapobiega atakom przesuwającym.

Wzór rozszerzania klucza

For i ≥ 4: if i % 4 == 0: W[i] = W[i-4] XOR SubWord(RotWord(W[i-1])) XOR Rcon[i/4] else: W[i] = W[i-4] XOR W[i-1]

Schematy AES-192 i AES-256

AES-192: 6 słów wejściowych, generuje 52 słowa (12+1 rund). AES-256: 8 słów wejściowych, generuje 60 słów (14+1 rund). AES-256 dodatkowo stosuje SubWord co ósme słowo.

Bezpieczeństwo rozmiarów kluczy

AES-128 zapewnia bezpieczeństwo 128-bitowe (2^128 prób brute force). AES-256 zapewnia bezpieczeństwo 256-bitowe. Wobec przeciwników korzystających z komputerów kwantowych AES-256 zachowuje bezpieczeństwo 128-bitowe (algorytm Grovera zmniejsza je o połowę).

Wybór długości klucza AES

W większości dzisiejszych aplikacji AES-128 wystarcza. W przypadku tajemnic przeznaczonych do długotrwałej ochrony, danych niejawnych lub scenariuszy postkwantowych należy użyć AES-256. AES-192 jest rzadko używany w praktyce.

Wyprowadzanie klucza z haseł

Nigdy nie należy używać hasła bezpośrednio jako klucza AES. Należy użyć KDF: key = PBKDF2(password, salt, 600000, 32, SHA256) lub key = Argon2id(password, salt, mem=65536, t=3, p=4).

Szybkie sprawdzenie

Ile kluczy rundowych wymaga AES-128, uwzględniając początkową operację AddRoundKey?

Podsumowanie

Opanowano rozwijanie klucza AES! Następnie połączymy wszystkie elementy i zaszyfrujemy rzeczywiste pliki za pomocą AES w Pythonie z użyciem OpenSSL.
Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „Rozszerzanie klucza AES i rozmiary kluczy” jest bezpłatna?

Tak — pełny tekst „Rozszerzanie klucza AES i rozmiary kluczy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Rozszerzanie klucza AES i rozmiary kluczy”?

Poznaj klucze 128-, 192- i 256-bitowe oraz proces harmonogramowania klucza. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Rozszerzanie klucza AES i rozmiary kluczy”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Koncepcje szyfrowania symetrycznego
  2. Struktura AES: rundy i macierz stanu
  3. Rozszerzanie klucza AES i rozmiary kluczy
  4. Praktyczne szyfrowanie plików za pomocą AES
← Powrót do Cryptology Academy