Dr inż. Robert Wójcik



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

Generowanie kluczy
Kolejnym zagadnieniem jest sposób tworzenia kluczy Ki. Klucz pierwotny 64-bitowy K wprowadzony do systemu kryptograficznego służy do generowania 16 kluczy wtórnych Ki zawierających po 48 bitów i używanych w procesie szyfrowania i deszyfrowania.
Klucz pierwotny K po odrzuceniu ośmiu bitów parzystości (8, 16, 24, 32, 48, 56, 64, 72) jest poddany permutacji PC-1, pokazanej w tabeli PC-1.
Otrzymany 56-bitowy blok klucza dzieli się na dwa bloki 28-bitowe C0 i D0. Bloki te są oddzielnie przesuwane cyklicznie w lewo, w wyniku czego powstają ciągi C1 i D1. Liczbę przesunięć w lewo bloków klucza dla kolejnych cykli podano w tabeli przesunięć.
Na schemacie generatora klucza przesunięcia są realizowane w blokach LSi. Po przesunięciu bloków kluczy w lewo łączy się je razem za pomocą operatora konkatenacji i poddaje permutacji PC-2 pokazanej w tabeli PC-2.

Schemat generatora klucza


Permutacja klucza PC-1



Permutacja klucza PC-2


Permutacja PC-2 jest permutacją z kompresją. Wybiera ona 48 bitów z ciągu 56-bitowego. Otrzymany w ten sposób 48-bitowy klucz jest wykorzystywany w procesie szyfrowania lub deszyfrowania. Do deszyfrowania używa się kluczy w odwrotnej kolejności.
Tabela przesunięć kluczy w lewo



Deszyfrowanie w algorytmie DES
Proces deszyfrowania przebiega według tego samego algorytmu, ale w pierwszej iteracji używa się klucza K16, w drugiej K15 itd.
Wynika to z faktu, że permutacja końcowa IP1 jest odwróceniem permutacji początkowej IP, a proces szyfrowania przebiega w kolejności odwrotnej:
Ri-1 = Li, Ki – klucz wejściowy po i-tej modyfikacji; K16, K15, …
Li-1 = Ri + f(Li, Ki).
W algorytmie DES stosuje się klucz 56-bitowy. Liczba kluczy możliwych do wygenerowania wynosi 256. Jednak połowę tych kluczy stanowią klucze komplementarne, które zawierają zera w miejscu jedynek i odwrotnie.

Ponieważ w wyniku szyfrowania komplementarnego tekstu jawnego za pomocą klucza komplementarnego otrzyma się również szyfrogram komplementarny, więc podczas brutalnego ataku na szyfr wystarczy przetestować tylko 255 = 3,6 ⋅1016 kluczy.


Najprostszym sposobem zwiększenia rozmiaru klucza oraz mocy szyfru jest dwukrotne szyfrowanie z dwoma niezależnymi kluczami lub szyfrowanie trzykrotne jak to ma miejsce w algorytmie 3DES.

Algorytm 3DES
Jest stosowany w praktyce w wielu zastosowaniach, np. szyfrowanie transmisji w tunelach VPN, szyfrowanie plików na dyskach.
W algorytmie tym wykorzystywane są dwa klucze S1 i S2, każdy będący zwykłym kluczem DES-a 56-bitowym.
Szyfrowanie tekstu jawnego składa się z następujących etapów:


  • tekst jawny M jest szyfrowany kluczem S1, tj. C1 = ES1(M);




  • wynik kroku 1 jest deszyfrowany kluczem S2, tj. C2 = DS2(C1);




  • wynik kroku 2 jest ponownie szyfrowany kluczem S1, tj.

C3 = ES1(C2).
Deszyfrowanie jest realizowane w sposób odwrotny, tj.:


  • kryptogram deszyfrowany jest kluczem S1, tj. C2 = DS1(C3).




  • wynik kroku 1 jest szyfrowany kluczem S2, tj. C1 = ES2(C2).




  • wynik kroku 2 jest ponownie deszyfrowany kluczem S1, tj.

M = DS1(C1).
Ostatecznie otrzymujemy: M = DS1( ES2( DS1(C3) ) ).


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


©operacji.org 2017
wyślij wiadomość

    Strona główna