INŻYNIERIA BEZPIECZECSTWA
LABORATORIUM
SZYFRY SYMETRYCZNE (DES i 3DES)
Historia DES
W 1972 roku ówczesne Narodowe Biuro Standardów USA postanowiło wdrożyć program
zabezpieczenia informacji. Celem programu było stworzenie jednego algorytmu
kryptograficznego. 15 maja 1973 roku w rejestrze federalnym opublikowano wymagania
stawiane algorytmowi, wymagania te zostały zatwierdzone przez National Security Agency
(NSA). Algorytm miał być łatwy do zaimplementowania sprzętowego, zapewnić duży stopień
bezpieczeństwa, być kompletnie określony oraz zapewnić warunki umożliwienia eksportu.
Ważną cechą algorytmu miało być bezpieczeństwo nie opierające się na tajności, lecz na
kluczu algorytmu. W pierwszej turze konkursu nie wyłoniono zwycięzcy, drugą turę
opublikowano 27 sierpnia 1974 roku. Konkurs wygrała firma IBM, algorytm zaproponowany
przez tą firmę opierał się na szyfrze blokowym Lucyfer i spełniał wszystkie kryteria podane
przez NBS. Twórcami algorytmu byli Roy Adler, Horst Feistel, Don Coppersmith, Edna
Grossman, Alan Konheim, Carl, Mayer, Lynn Smith, Walt Tuchman, Bill Notz, oraz Bryant
Tuckerman. Algorytm otrzymał pozytywną opinię NSA. IBM opatentował go w roku 1975.
DES został zatwierdzony jako standard federalny 23 listopada 1976 roku. Stosowany był do
szyfrowania nietajnych danych rządowych USA. Pełen opis algorytmu został opublikowany
15 stycznia 1977 roku zawarty jest on w dokumencie FIPS PUB 46 - Data Encryption
Standard. Algorytmowi wydawano certyfikat przedłużający jego ważność jako standardu
federalnego w kolejno w latach 1983, 1988, 1993, 1999. W 1981 roku został wdrożony przez
American National Standard Institute jako standard dla sektora prywatnego. W 2001 roku
DES został zastąpiony przez AES (Advenced Encryption Standard) gdyż nie zapewnia
odpowiedniego bezpieczeństwa, klucz DES jest bardzo podatny na atak siłowy.
Opis algorytmu
DES jest to szyfr blokowy. Dzieli on dane wejściowe na bloki o rozmiarze 64-bitów. Klucz
szyfrujący ma 56-bitów. Klucz zapisany jest jako 64-bitowy ciąg, co 8 bit w kluczu jest bitem
kontrolnym, służy do sprawdzania parzystości. Do szyfrowania i deszyfrowania danych
używa się tego samego algorytmu.
Proces szyfrowania można podzielić na 3 etapy:
Etap I 64-bitowy blok tekstu jawnego przechodzi przez permutacje wejściową IP.
Permutacja ta przestawia bity bloku wejściowego, przygotowując w ten sposób dane dla
drugiego etapu szyfrowania. Permutacja wejściowa została zaprezentowana w tabeli poniżej.
Tabela 1. Permutacja wejściowa IP algorytmu DES
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 19 5
63 55 47 39 31 23 15 7
Etap II wykonywane jest 16 iteracji tej samej funkcji F, w skład funkcji wchodzą
podstawienia i permutacje.
Dane do szyfrowania
Permutacja wejściowa
L0 R0
K1
Permutacja wejściowa
Permutacja wejściowa
f
L1=R0 R1=L0+f(R0,K1)
K2
Permutacja wejściowa
0
Permutacja wejściowa
Permutacja wejściowa
Permutacja wejściowa
f
L2=R1 R2=L1+f(R1,K2)
Kn
Permutacja wejściowa
0
Permutacja wejściowa
Permutacja wejściowa
Permutacja wejściowa
f
f
f
f
L15=R14 R15=L14+f(R14,K15)
K16
Permutacja wejściowa
0
Permutacja wejściowa
Permutacja wejściowa
Permutacja wejściowa
f
R16=L15+f(R15,K16) L16=R15
Permutacja wejściowa
0
Permutacja wejściowa
Permutacja wyjściowa
Kryptogram
Rysunek 1. Schemat szyfrowania algorytmem DES
Kroki algorytmu:
1. Blok tekstu (64-bity) jest poddawany permutacji wejściowej IP.
2. Po wykonaniu permutacji zostaje on podzielony na dwa 32-bitowe bloki L0 i R0.
3. Blok R0 zostaje przesunięty w prawo. L1 = R0
4. Blok L0 zostaje poddany funkcji szyfrującej f z zastosowaniem klucza K1, następnie
umieszczany jest z prawej strony. R1 = L0 mod (R0, K1)
5. Operacje na blokach wykonywane sÄ… 16 razy.
6. Końcowym etapem algorytmu jest permutacja wyjściowa IP-1.
Etap III Wynik 16-tej iteracji Å‚Ä…czony jest w 1 blok 64-bitowy i poddawany permutacji
wyjściowej IP-1, jest to odwrotność permutacji IP. Po dokonaniu tej czynności otrzymujemy
64-bitowy blok szyfrogramu.
Tabela 2. Permutacja wyjściowa IP-1 algorytmu DES
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
Funkcja szyfrujÄ…ca f:
Blok Ri-1 (32-bity), zostaje poddany permutacji rozszerzajÄ…cej E tworzÄ…c blok 48-bitowy.
Blok ten zostaje poddany operacji xorowania wraz z 48-bitowym kluczem Ki. Wynik operacji
dzieli się na 8, 6-cio bitowych bloków S1, & , S8. Każdy z bloków jest wejściem do skrzynek
podstawieniowych. Skrzynki przekształcają 6-cio bitowe bloki wejściowe w bloki 4-bitowe.
Wynik operacji poddawany jest permutacji końcowej.
Ri-1 (32-bity)
E
(
3
48-bitów Ki (48-bitów)
2
-
XOR
b
it
y
)
S1 S2 S3 S4 S5 S6 S7 S8
P
Wynik (32-bity)
Rysunek 2. Schemat funkcji szyfrujÄ…cej
Algorytm generowania kluczy wtórnych:
Klucz n = 56-bitów
Rotacja Rotacja
Permutacja zwężająca
Ki
Klucz n+1 = 56-bitów
Rysunek 3. Schemat generowania kluczy wtórnych
Klucz wejściowy ma 64-bity długości. Jest on podawany na wejście algorytmu po odrzuceniu
8 bitów parzystości. Otrzymany 56-bitowy blok dzieli się na 2 bloki po 28-bitów i poddaje się
je rotacji. Następnie bloki łączy się i poddaje permutacji kompresującej. Wynikiem jest 48-
bitowy klucz wtórny.
Do deszyfracji danej 64-bitowej używany jest taki sam algorytm z jedna zmiana tzn. część
środkowa przy deszyfracji rozpoczyna się od kroku 16 i kończy na 0 odwrotnie niż przy
szyfrowaniu.
Dwa tryby pracy algorytmu DES
Rysunek 5.Dwa tryby pracy algorytmu DES
Algorytm DES może być implementowany w różnych trybach pracy. Na rysunku 5
przedstawione są dwa z nich: Electronic CodeBook (ECB) i Output FeedBack (OFB). Wybór
trybu pracy algorytmu uzależniony jest od rodzaju danych wejściowych oraz od
wykorzystania kodowanych informacji. Podstawowa różnica obu trybów jest to, ze tryb OFB
nie wymaga specjalnego urządzenia deszyfrującego. Sygnał wejściowy jest bramkowany
funkcja XOR z kluczem szyfrującym. Wystarczy dokonać tej samej operacji po stronie
odbiorcy, aby otrzymać sygnał odszyfrowany. Układ ten wymaga jednak synchronizacji
nadawcy z odbiorca w celu dołączenia na wejście bramki tych samych sygnałów klucza i
danych.
3DES:
3DES jest modyfikacjÄ… algorytmu DES. Polega on na trzykrotnym przetworzeniu tekstu
jawnego algorytmem DES. Do szyfrowania potrzebne są 3 różne klucze.
·ð Wiadomość jest szyfrowana kluczem 1.
·ð Wiadomość jest deszyfrowana kluczem 2.
·ð Wiadomość jest ponownie szyfrowana kluczem 3.
Proces szyfrowania można zapisać następująco:
C kryptogram
m tekst jawny
C = E3(D2(E1(m))) E1 operacja szyfrowania z kluczem 1
D2 operacja deszyfrowania z kluczem 2
E3 operacja szyfrowania z kluczem 3
3DES ma siłę 168-bitów, (3 * 64-bity klucza ( 3 * 8-bitów parzystości)). 3DES jest jednak
podatny na atak Meet In the Middle co zmniejsza jego siłę do 2 112-bitów.
CRYPTOOL I SZYFROWANIE DES
-Uruchamiamy Cryptool 1.4.30
-tworzymy plik który ma zostać zaszyfrowany
-z paska opcji wybieramy szyfrowanie -> symetryczne-> i wybieramy szyfr który nas
interesuje czyli DES (des z ecb, des z cbc, 3des z ecb, 3des z cbc),
Rysunek 6. Uruchamianie metody DES
- wprowadzamy klucz używając wartości heksadecymalnych (09, AF), którym chcemy
zaszyfrować dany tekst.
Rysunek 7. Okno z kluczem szyfrujÄ…cym
-wybieramy przycisk szyfruj i pojawia siÄ™ okno z zaszyfrowanym tekstem jawnym
Rysunek 8. Przykładowy tekst zaszyfrowany szyfrem DES(ECB)
Rysunek 9. Przykładowy tekst zaszyfrowany szyfrem DES(CBC)
Rysunek 10. Zaszyfrowany tekst szyfrem 3DES(ECB)
Rysunek 10. Zaszyfrowany tekst szyfrem 3DES(CBC)
Jak widać pierwszy 64 bitowy blok danych szyfrowany DES i 3DES wygląda identycznie w
obu wynikach, natomiast pozostałe bloki różnią się.
Przebieg deszyfrowania wyglÄ…da podobnie:
- z paska opcji wybieramy szyfrowanie -> symetryczne-> i wybieramy metodę, który nas
interesuje czyli DES (des z ecb, des z cbc, 3des z ecb, 3des z cbc),
-wprowadzamy klucz, którym szyfrowaliśmy tekst
-wybieramy przycisk deszyfruj i wyświetla się plik w którym pojawia się tekst odszyfrowany
SZYFROWANIE ALGORYTMU DES ZA POMOC CRYPTOOL 2 BETA
Rysunek 11. Szyfrowanie algorytmu DES w Cryptool 2 beta
Rysunek 12. Szyfrowanie algorytmu 3DES w Cryptool 2 beta
Zadania :
Zad.1. Wyszukaj bibliotekÄ™ szyfrujÄ…cÄ… algorytmem DES, i zbuduj za jej pomocÄ… aplikacjÄ™
szyfrującą i deszyfrującą. (wejściem programu powinny być 2 pliki : plik z danymi do
zaszyfrowania lub deszyfrowania oraz plik z kluczem).
Wyszukiwarka
Podobne podstrony:
W7 Kodowanie i Kryptografia Szyfry symetryczne 2gszyfry symetryczne idea, rc4Ghost in the Shell 2 0 (2008) [720p,BluRay,x264,DTS ES] THORATriumf woli (Triumph des Willens)Die Ärzte Ich weiß nicht (ob es Liebe ist)Die Prinzen Es ist wie es istLautinventar des Deutschen PhonetikIWK V GB IT ES DE FR RUS 08Georg?nzer Ich liebte esW02 manual ES v 1README eswięcej podobnych podstron