Dr inż. Robert Wójcik



Pobieranie 2,08 Mb.
Strona9/13
Data14.02.2018
Rozmiar2,08 Mb.
1   ...   5   6   7   8   9   10   11   12   13

Obliczanie funkcji szyfrującej f
Funkcja szyfrująca f (Ri1, Ki ) realizuje szereg operacji opisanych poniżej.
Danymi wejściowymi funkcji f są: 32-bitowy blok Ri1 i 48-bitowy klucz Ki . Na bloku 32-bitowym Ri1 wykonuje się permutację rozszerzającą E.
Permutacja rozszerzająca E

W wyniku tej permutacji tworzy się ciąg 48-bitowy. Następnie ciąg ten jest dodawany modulo 2 do klucza Ki za pomocą bramki Ex-OR, a blok wyjściowy dzieli się na osiem ciągów 6-bitowych. Każdy z tych ciągów zostaje poddany operacji podstawienia w następujący sposób. Pierwszy i ostatni bit ciągu 6-bitowego określa numer wiersza tablicy podstawienia Si od 0 do 3, a cztery bity środkowe – numer jej kolumny od 0 do 15. Opisane etapy pokazano na rysunku.

Tablice podstawień dla kolejnych iteracji S1 do S8 pokazano w tabeli poniżej. Na przykład, jeśli na wejściu elementu S1 będzie ciąg binarny 110010, to liczba dziesiętna odpowiadająca ciągowi wyjściowemu będzie w 2 wierszu i 9 kolumnie. Liczba ta wynosi 12, co odpowiada ciągowi binarnemu 1100.


Tablice podstawień funkcji f

Opisany wyżej proces podstawień jest procesem nieliniowym i stanowi krytyczny etap w algorytmie. Zapewnia on w znacznym stopniu bezpieczeństwo szyfru, gdyż jest trudny do przeanalizowania.


Wyniki podstawień zrealizowanych z wykorzystaniem bloków Si łączymy razem w jeden ciąg 32-bitowy. Na ciągu tym wykonuje się permutację P według tabeli poniżej.
Permutacja P

Uzyskany w ten sposób ciąg binarny jest dodawany modulo 2 do Li1 za pomocą bramki Ex-OR, w rezultacie czego powstaje blok

Ri = Li-1 + f(Ri-1, Ki).

1   ...   5   6   7   8   9   10   11   12   13


©operacji.org 2017
wyślij wiadomość

    Strona główna