Jak działa AES?
Podstawowa obsługa
AES można opisać jako iteracyjny i symetryczny, zaszyfrowany blok. AES używa struktury pętli do wielokrotnego przeprowadzania rearanżacji danych lub permutacji. Pętla zastępuje jedną jednostkę danych inną dla danych wejściowych. Procedura szyfrowania używa tego samego klucza do szyfrowania i odszyfrowywania danych i stosuje ten klucz do bloków danych o stałej długości.
Kluczowy program
Procedura szyfrowania AES przechowuje podstawowy klucz szyfrujący w tablicy. Macierz to grupa obiektów o tych samych atrybutach, które można adresować indywidualnie. Macierz składa się z czterech rzędów, z których każdy zawiera cztery, sześć lub osiem bajtów, w zależności od wielkości klucza. Za kulisami, procedura szyfrowania wykorzystuje tę macierz do generowania tabeli, znanej jako program kluczowy, która zawiera kilka kluczy. Te klucze są nazywane okrągłymi klawiszami, aby odróżnić je od oryginalnego klucza głównego.
Macierz statusu
AES używa klucza szyfrowania, który może mieć długość 128, 192 lub 256 bitów i jest stosowany w jednostkach danych, zwanych blokami, z których każdy ma 128 bitów. Algorytm AES rozpoczyna się od skopiowania każdego 16-bitowego bloku do dwuwymiarowej tablicy o nazwie State, aby utworzyć tablicę bajtów 4x4. Algorytm wykonuje operację wyłączności "O", która zwraca "true", jeśli jeden lub drugi z jej argumentów jest prawdziwy. Jest to znane jako "AddRoundKey" i znajduje się między pierwszymi czterema wierszami programu kluczowego a macierzą stanów.
Operacje matematyczne
Po wyłącznej początkowej operacji "O" algorytm szyfrowania AES wchodzi do głównej pętli, w której wielokrotnie wykonuje cztery różne operacje matematyczne w macierzy stanu: "SubBytes", "ShiftRows", "MixColumns" i "AddRoundKey", Operacje te wykorzystują kombinację dodawania, mnożenia, rotacji i podstawiania w celu zaszyfrowania każdego bajtu w macierzy stanu. Główna pętla działa 10, 12 lub 14 razy w zależności od rozmiaru klucza szyfrującego. Po zakończeniu wykonywania algorytm kopiuje macierz stanu do jej wyjścia w postaci zaszyfrowanego tekstu.