Algorytm Rijndael

Nasza ocena:

3
Pobrań: 280
Wyświetleń: 2079
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Algorytm Rijndael - strona 1 Algorytm Rijndael - strona 2 Algorytm Rijndael - strona 3

Fragment notatki:

Zygmunt Kubiak. Notatka składa się z 8 stron.
RIJNDAEL Podstawy matematyczne Będziemy rozpatrywali bajty
b = b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 , b i ∈ { 0, 1}
jako reprezentacje elementów ciała skończonego GF (2 8 ).
Reprezentacja elementów ciała w bazie wielomianowej :
b 7 x 7 + b 6 x 6 + b 5 x 5 + b 4 x 4 + b 3 x 3 + b 2 x 2 + b 1 x 1 + b 0 daje wzajemnie jednoznaczną odpowiedniość między elementami tego ciała a bajtami. Struktura algebraiczna ciała GF(2 8 ) określa działania na bajtach.
Dodawanie jest binarnym dodawaniem (wielomianów) bajtów - jest to bitowa operacja EXOR oznaczana ⊕.
Mnożenie w GF(2 8 ) jest zdefiniowane jako mnożenie binarnych wielomianów modulo określony nierozkładalny binarny wielomian stopnia 8. Dla Rijndaela wielomianem tym jest:
m(x) = x 8 + x 4 + x 3 + x + 1.
Przykład (x 6 + x 4 + x 2 + x + 1) (x 7 + x + 1) = (x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1) mod m(x) = x 7 + x 6 + x 4 + x 3 + 1.
Operacja modulo polega na braniu reszty z dzielenia przez wielomian m(x). Powyższa operacja mnożenia w GF(2 8 ) określa operację mnożenia bajtów oznaczaną •. Dla niezerowego wielomianu b(x) ∈ GF(2 8 ) określony jest element odwrotny b -1 (x) wzorem:
b(x) • b -1 (x) = 1 mod m(x).
Określa to z kolei dla niezerowego bajtu b bajt odwrotny b -1 taki, że
b •b -1 = 00000001.
Jeśli pomnożymy wielomian b(x) przez x to wynik x • b(x) otrzymujemy redukując wielomian
b 7 x 8 + b 6 x 7 + b 5 x 6 + b 4 x 5 + b 3 x 4 + b 2 x 3 + b 1 x 2 + b 0 x
modulo m(x). Jeśli b 7 = 0 to redukcja jest operacją identycznościową. Jeśli b 7 = 1 to musimy odjąć (to samo co dodać) m(x); tzn. wykonać operację EXOR. Na poziomie bajtów mnożenie przez x (w zapisie szesnastkowym `02' = 0000010) może być zaimplementowane jako lewe przesunięcie, a następnie jako warunkowa operacja EXOR z bajtem `1B' reprezentującym wielomian m(x) bez wyrazu x 8 . Powyższa operacja oznaczona jest przez
a = xtime (b).
Mnożenie przez wyższe potęgi x może być zaimplementowane jako wielokrotne wykonanie operacji xtime. Dołączenie operacji dodawania daje nam implementacje mnożenia przez dowolny wielomian.
Wielomiany o współczynnikach z ciała GF(2 8 ). 4-bajtowy wektor odpowiada wielomianowi o współczynnikach z GF(2 8 ) stopnia mniejszego niż 4. Wielomiany o współczynnikach z GF(2 8 ) dodajemy wykonując operację EXOR na bajtach reprezentujących te współczynniki. Operacja mnożenia wielomianów jest bardziej skomplikowana. Niech
a(x) = a 3 x 3 + a 2 x 2 + a 1 x + a 0 ,
b(x) = b 3 x 3 + b 2 x 2 + b 1 x + b 0 będą wielomianami o współczynnikach z ciała GF(2

(…)

….
Klucz główny szyfru jest przekształcany do tzw. klucza rozszerzonego (ang. expanded key) składającego się z 11 słów 32 bitowych co stanowi 1408 bitów.
Podklucze kolejnych rund są brane z klucza rozszerzonego w następujący sposób: podklucz do rundy nr.0 stanowią pierwsze 4 słowa klucza rozszerzonego, następny podklucz stanowią kolejne 4 słowa i tak dalej.
Klucz rozszerzony jest jednowymiarową tablicą o 4-bajtowych elementach składająca się z 44 słów o długości 32 bitów. Pierwsze 4 słowa stanowią klucz główny szyfru, następne słowa zdefiniowane są rekurencyjnie przy pomocy słów wcześniejszych. Klucz rozszerzony składa się ze słów
W[0], W[1], ..., W[43].
Przedstawiamy algorytm generowania klucza rozszerzonego w postaci pseudo-kodu
KeyExpansion(CipherKey, W)
{
for (i=0; i<4; i++) W[i] = CipherKey…
… w pozostałych rundach. Jest to odpowiednikiem braku przestawienia lewej i prawej połowy stanu w algorytmie DES.
Specyfikacja algorytmu
W Rijndaelu długość bloków szyfrowanych i długość klucza może wynosić odpowiednio 128, 192 i 256 bitów. Przedstawimy wersję algorytmu gdy długość bloków szyfrowanych wynosi 128 oraz długość stosowanego klucza także wynosi 128 bitów. Poszczególne postaci tekstu jawnego
... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz