Dr inż. Robert Wójcik


Standard szyfrowania symetrycznego DES



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

Standard szyfrowania symetrycznego DES
W 1977 r. Narodowe Biuro Normalizacji w USA (National Bureau of Standards) wprowadziło oficjalnie normę kryptograficzną Data Encryption Standard do szyfrowania informacji nieutajnianych przez agendy rządowe.
DES szyfruje 64-bitowe bloki danych przy użyciu klucza o długości 56 bitów. Do szyfrowania i deszyfrowania używa się takiego samego algorytmu.
Opis algorytmu
Podstawą działania algorytmu DES oraz innych algorytmów symetrycznych jest struktura nazywana siecią Feistela, która została opublikowana przez pracownika IBM Horsta Feistela.
Sieć (schemat) Feistela pozwala na szyfrowanie i deszyfrowanie informacji tym samym algorytmem, mimo iż sama funkcja szyfrująca f nie jest odwracalna. Sieć Feistela generuje z tekstu jawnego szyfrogram, a z szyfrogramu tekst jawny. Jej zastosowanie znacznie uprościło konstruowanie algorytmów szyfrujących, gdyż nie trzeba się troszczyć o odwracalność funkcji szyfrującej f.
Źródło: https://pl.wikipedia.org
Tekst jawny dzieli się na dwa równe bloki Li oraz Ri. Funkcja f jest właściwym algorytmem szyfrującym. Jako wynik otrzymuje się szyfrogram, który jest wykorzystywany w kolejnej rundzie. Numer kolejnej rundy oznaczany jest indeksem i, to oznacza iż wynik szyfrowania jest ponownie i-krotnie szyfrowany, co polepsza jakość szyfrowania.

Algorytmy zbudowane na bazie sieci Feistela:

- DES; - 3DES; - Twofish; - FEAL.


Na rysunku poniżej pokazano schemat blokowy algorytmu DES.
Li = Ri-1, Ki – klucz wejściowy po i-tej modyfikacji; K1, K2, …
Ri = Li-1 + f(Ri-1, Ki).

W algorytmie DES 64-bitowy blok wejściowy jest poddany permutacji początkowej IP zgodnie z tabelą poniżej.


Permutacja początkowa IP

Permutacja IP z ciągu bitów t1 , t2 , t3 , …, t64 tworzy ciąg t58 , t50 , t42, …, t7 . Podobnie będą zapisane pozostałe permutacje algorytmu DES.
Po wykonaniu permutacji początkowej blok wejściowy jest dzielony na dwa bloki: lewy L0 i prawy R0. Dalsze operacje są wykonywane oddzielnie na każdym z tych bloków. Blok R0 jest przesuwany na lewo, a blok L0 przekształcany z zastosowaniem funkcji szyfrującej f(x) i umieszczany z prawej strony.
Funkcja szyfrująca składa się z podstawień i permutacji, a jej parametrami są blok R0 i klucz K1. Operacje te powtarza się szesnaście razy. Każdy z tych cykli można opisać zależnościami:
Li = Ri-1, Ki – klucz wejściowy po i-tej modyfikacji; K1, K2, …
Ri = Li-1 + f(Ri-1, Ki).
Po ostatniej iteracji nie zmienia się pozycji części lewej i prawej, lecz łączy się je razem i wykonuje permutację końcową IP1.
Permutacja końcowa IP1





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


©operacji.org 2019
wyślij wiadomość

    Strona główna