1. Maszyny rotorowe Enigma

Podobne dokumenty
2 Kryptografia: algorytmy symetryczne

Szyfry kaskadowe. permutacyjnej (SPP).

Szyfry kaskadowe. Szyfry kaskadowe

1.1. Standard szyfrowania DES

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

Zarys algorytmów kryptograficznych

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Implementacja algorytmu DES

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Bezpieczeństwo danych i systemów informatycznych. Wykład 5

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Algorytmy podstawieniowe

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Algorytmy podstawieniowe

Kodowanie informacji. Kody liczbowe

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Szyfrowanie informacji

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

INśYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 1 WSTĘP DO KRYPTOGRAFII

Tajna wiadomość. Scenariusz lekcji

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Arytmetyka liczb binarnych

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

1.10. Algorytmy asymetryczne z kluczem publicznym

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

Systemy liczenia. 333= 3*100+3*10+3*1

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Bezpieczeństwo danych, zabezpieczanie safety, security

Kryptografia szyfrowanie i zabezpieczanie danych

Bezpieczeństwo systemów i sieci komputerowych

Authenticated Encryption

Algorytmy i struktury danych

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

0 + 0 = 0, = 1, = 1, = 0.

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

kryptografię (z gr. κρυπτός oraz γράφω gráfo pisać ), czyli gałąź wiedzy o utajnianiu wiadomości;

LICZNIKI Liczniki scalone serii 749x

Metody szyfrowania danych

1.1. Pozycyjne systemy liczbowe

Kryptologia. Bezpieczeństwo komunikacji elektronicznej

Układy kryptograficzne z uŝyciem rejestrów LFSR

Systemy liczbowe używane w technice komputerowej

AKADEMIA TECHNICZNO - ROLNICZA W BYDGOSZCZY PRACA MAGISTERSKA. Wydział Telekomunikacji i Elektrotechniki

Algorytmy asymetryczne

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Ćwiczenie nr 1: Systemy liczbowe

Wykład 5. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Rijndael szyfr blokowy

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Algorytmy i struktury danych. Wykład 4

SYSTEMY LICZBOWE 275,538 =

Laboratorium nr 1 Szyfrowanie i kontrola integralności

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Czym jest kryptografia?

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Mikrooperacje. Mikrooperacje arytmetyczne

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Matematyczne aspekty rozszyfrowania Enigmy

Przykład. Przykład. Litera Homofony C F H I M

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

LABORATORIUM Systemy teletransmisji i transmisja danych

3. Macierze i Układy Równań Liniowych

Temat 7. Dekodery, enkodery

ŁAMIEMY SZYFR CEZARA. 1. Wstęp. 2. Szyfr Cezara w szkole. Informatyka w Edukacji, XV UMK Toruń, 2018

Tranzystor JFET i MOSFET zas. działania

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Wykład 4 Temat: Algorytm symetryczny Twofish: cele projektowane, budowa bloków, opis algorytmu, wydajność algorytmu.

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Ataki kryptograficzne.

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Programowanie sterowników PLC wprowadzenie

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Załóżmy, że musimy zapakować plecak na wycieczkę. Plecak ma pojemność S. Przedmioty mają objętości,,...,, których suma jest większa od S.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Układy równań liniowych. Ax = b (1)

5. Administracja kontami uŝytkowników

Algorytmy zachłanne. dr inż. Urszula Gałązka

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

CAST, 3DES, GOST, IDEA, RC2, RC4,

Spis treści. spis treści wygenerowany automatycznie

Czytnik kart magnetycznych

INSTRUKCJA OBSŁUGI KOMPUTERA TP 1

WSIZ Copernicus we Wrocławiu

Luty 2001 Algorytmy (7) 2000/2001

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Transkrypt:

Połączenie podstawowych metod szyfrowania, czyli pojedynczych podstawień lub przestawień, daje szyfr złoŝony nazywany szyfrem kaskadowym lub produktowym (ang. product cipher). Szyfry takie są połączeniem algorytmów podstawieniowych lub przestawieniowych i podstawieniowych. Mają one lepsze własności kryptograficzne niŝ samo podstawienie lub przestawienie. Charakterystykę tych szyfrów podał Shannon (patrz materiał z laboratorium nr 1). Szyfry kaskadowe umoŝliwiają zmniejszenie nadmiarowości tekstu jawnego i zwiększenie bezpieczeństwa szyfru. W tym celu stosuje się dwie podstawowe techniki: mieszania (ang. confusion) i rozpraszania (ang. difusion). Mieszanie zmniejsza związek między tekstem jawnym a kryptogramem i jest realizowane poprzez podstawienie. Jednak same szyfry podstawieniowe, nawet złoŝone, nie są skutecznym zabezpieczeniem (przykładowo algorytm maszyny rotorowej Enigma został złamany, i to bez uŝycia komputerów). Rozproszenie umoŝliwia rozprzestrzenienie nadmiarowości tekstu jawnego po całym kryptogramie i jest realizowane za pomocą przestawienia. W szyfrach strumieniowych uŝywa się wyłącznie techniki mieszania, a w szyfrach blokowych zarówno mieszania, jak i rozpraszania. UŜycie wyłącznie techniki rozpraszania nie jest skuteczne i takie algorytmy moŝna łatwo złamać. 1. Maszyny rotorowe Na początku XX wieku wynaleziono wiele urządzeń do szyfrowania tekstów. Głównym elementem tych maszyn był wirnik, zwany rotorem, do wykonywania podstawień. Maszyna rotorowa miała kilka rotorów i realizowała szyfr Vigenere a z bardzo długim okresem. Klucz szyfrujący określony był sposobem okablowania rotorów i ich połoŝeniem (ze zmianą rotorów następowała zmiana klucza). 1.1. Enigma Wynaleziona została przez matematyków niemieckich jeszcze w latach międzywojennych. Początkowo Enigmy uŝywały placówki handlowe, a w czasie II wojny światowej była powszechnie uŝywana przez armię niemiecką. Zaufanie wojska niemieckiego do tego szyfrowania było całkowite, poparte autorytetem matematyków, wynalazców Enigmy. Wszelkie informacje, przesyłane drogą radiową, były kodowane za pomocą Enigmy. Szyfr, uznawany przez Niemców za nierozwiązywalny, został złamany przez polskich matematyków: Mariana Rojewskiego, Jerzego RóŜyckiego i Henryka Zygalskiego, którzy opracowali takŝe metody i urządzenia (komputery mechaniczne, realizujące specyficzne algorytmy) do czytania zakodowanych informacji na bieŝąco. Rozwiązanie tajemnicy Enigmy było jedną z najbardziej chronionych tajemnic w czasie II wojny światowej. Schemat blokowy maszyny Enigma przedstawia poniŝszy rysunek:

Rotor Klawiatura Łącznica Płyta wyjściowa Rysunek 1 - Schemat blokowy Enigmy Litery tekstu jawnego wprowadzano z 26-znakowej, elektrycznej klawiatury, a znaki kryptogramu podświetlano na płycie wyjściowej za pomocą Ŝarówek, które oświetlały odpowiednie litery. Struktura połączeń maszyny umoŝliwiała zarówno szyfrowanie, jak i deszyfrowanie dokumentów. Elementami szyfrującymi maszyny były obracający się rotor oraz łącznica. W Enigmie rotor miał od czterech do ośmiu wirników. Łącznica umoŝliwiała zamianę 12 liter spośród 26 liter alfabetu, co zwiększało ogólną liczbę kluczy. KaŜdy z wirników miał 26 pozycji, a okres dla maszyny z n rotorami jest równy 26 n (np. maszyna z czterema wirnikami ma okres 26 4 = 456976). Całkowita liczba moŝliwych do uzyskania kluczy wynosiła około 2 10 20. Na wirnikach o kształcie walca, znajdujących się w rotorze, rozmieszczono promieniście na obydwu podstawach 26 elektrycznych styków. Styki jednej podstawy były nieregularnie połączone ze stykami drugiej. Wirniki były osadzone na wspólnej osi i stykały się ze sobą. Łącznica była dodatkowym, statycznym wirnikiem. Połączenia na łącznicy operator ustawiał ręcznie, przy uŝyciu wtyczek: W o ś W 3 W 2 W 1 Ł K Rysunek 2 Ogólny schemat przepływu prądu w Enigmie Z Drugim statycznym wirnikiem był walec odwracający, który zamykał z jednej strony obwód elektryczny wirników. Obwód, którego uproszczony schemat przedstawia powyŝszy rysunek nr 2, zamykał się po naciśnięciu jednego z przycisków klawiatury. W rezultacie następował przepływ prądu przez łącznicę, wirniki szyfrujące, łącznicę i wyświetlacz. Jednocześnie pierwszy wirnik obracał się o 1/26, czyli o jeden znak. Pozostałe wirniki obracały się znacznie rzadziej. Właśnie obracające się wirniki powodowały, Ŝe po naciśnięciu tego samego klawisza za kaŝdym razem na wyświetlaczu pojawiały się róŝne znaki i odwrotnie, po wpisaniu wcześniej wyświetlonych znaków pojawiały się te wciskane wcześniej znaki, powtórzone odpowiednią liczbę razy. 2. Algorytm Lucifer Został zaprojektowany na początku lat 70-tych XX wieku w firmie IBM. Szyfr składa się z wykonywanych na przemian podstawień i permutacji. Urządzenia realizujące te operacje nazwano skrzynkami podstawień S (ang. S-box) i skrzynkami permutacji P. Schemat algorytmu Lucifer przedstawia następny rysunek:

Rysunek 3 - Schemat algorytmu Lucifer Skrzynka permutacji ma 128 wejść i tyle samo wyjść i słuŝy do zmiany kolejności bitów. Uproszczona skrzynka permutacji o 8 wejściach (część rysunku oznaczony jako a ): Rysunek 4 - Uproszczona skrzynka permutacji algorytmu Lucifer Skrzynka podstawień zawiera dwa układy, zamieniające liczbę n-bitową w liczbę 2 n -bitową i na odwrót, jak ilustruje to rysunek nr 4, część b. Istnieje moŝliwość zmiany połączeń między tymi układami. Układy wykonują przekształcenia nieliniowe, wskutek czego liczby jedynek i zer są róŝne na wejściu i wyjściu skrzynki podstawień. W algorytmie Lucifer ustalono dwa rodzaje połączeń, oznaczone przez 0 i 1, które moŝna wybierać kluczem zewnętrznym. Całkowita liczba skrzynek S w układzie wynosi 512. Skrzynkami steruje się za pomocą 128-bitowego klucza. Do zmiany ciągu klucza (128-bitowego) na ciąg 512-bitowy słuŝy specjalny algorytm. Metody zastosowane w algorytmie Lucifer posłuŝyły do stworzenia algorytmu DES, który na wiele lat wyznaczył standard szyfrowania. 3. DES standard szyfrowania danych DES (ang. Data Encryption Standard) został wprowadzony w 1977 r. przez Narodowe Biuro Normalizacji w USA (ang. National Bureau of Standards) jako oficjalna norma kryptograficzna do szyfrowania informacji, które nie są utajniane przez agendy rządowe. DES szyfruje 64-bitowe bloki danych przy uŝyciu 56-bitowego klucza. Do szyfrowania i deszyfrowania uŝywa się takiego samego algorytmu. Schemat algorytmu DES:

3.1. Opis działania algorytmu Rysunek 5 - Schemat algorytmu DES Blok wejściowy o wielkości 64 bitów jest poddawany permutacji wejściowej IP (ang. Initial Permutation) zgodnie z tabelą: 58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 64 56 48 40 32 24 16 08 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 61 53 45 37 29 21 13 05 63 55 47 39 31 23 15 07 Tabela 1 - Permutacja wejściowa IP Permutacja IP z ciągu bitów t 1,t 2,t 3, t 64 tworzy ciąg t 58,t 50,t 42,,t 7. W taki sam sposób zapisywane są pozostałe permutacje w algorytmie DES. Po wykonaniu IP, blok wejściowy jest dzielony na dwa bloki: lewy L 0 i prawy R 0. Dalsze operacje są wykonywane oddzielnie na kaŝdym z tych bloków. Blok R 0 jest przesuwany w lewo, a blok L 0 przekształcany z zastosowaniem funkcji szyfrującej f(x) i umieszczany z prawej strony. Funkcja szyfrująca f(x) składa się z podstawień i permutacji, a jej parametrami są blok R 0 i klucz K 1.

Wszystkie omówione operacje powtarzane są 16 razy. KaŜdy z cykli moŝna opisać zaleŝnościami: L i = R i-1 R i = L i-1 f(r i-1, K i ) Po ostatniej, 16-tej iteracji, zamiast zmieniać pozycję części lewej i prawej łączy się je i wykonuje permutację końcową IP -1 wg tabeli: 40 08 48 16 56 24 64 32 39 07 47 15 55 23 63 31 38 06 46 14 54 22 62 30 37 05 45 13 53 21 61 29 36 04 44 12 52 20 60 28 35 03 43 11 51 19 59 27 34 02 42 10 50 18 58 26 33 01 41 09 49 17 57 25 Tabela 2 - Permutacja końcowa 3.2. Obliczanie funkcji szyfrującej f Funkcja szyfrująca f(r i-1, K i ) zawiera szereg operacji, pokazanych na poniŝszym rysunku: Rysunek 6 - Schemat funkcji szyfrującej f Dane wejściowe do funkcji to 32-bitowy blok R i-1 i 48-bitowy klucz K i. Na bloku 32- bitowym R i-1 wykonuje się permutację rozszerzającą E wg tabeli: 32 01 02 03 04 05 04 05 06 07 08 09 08 09 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 01 Tabela 3 - Permutacja rozszerzająca E W wyniku permutacji otrzymujemy 49-bitowy ciąg, który jest dodawany modulo 2 do klucza K i przy pomocy bramki Ex-OR (mówiąc inaczej wykonywana jest operacja XOR). 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ślają numer wiersza tablicy podstawienia S (z zakresu 0 3), a pozostałe cztery środkowe bity określają numer kolumny (z zakresu 0 15). Tablice podstawień S dla kolejnych iteracji S 1 S 8 pokazano w tabeli: S i Wiersz Kolumna 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 07 S 1 1 00 15 07 04 14 02 13 01 10 06 12 11 09 05 03 08 2 04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00 3 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13 S 2 0 15 01 08 14 06 11 03 04 09 07 02 13 12 00 05 10

S 3 S 4 S 5 S 6 S 7 S 8 1 03 13 04 07 15 02 08 14 12 00 01 10 06 09 11 05 2 00 14 07 11 10 04 13 01 05 08 12 06 09 03 02 15 3 13 08 10 01 03 15 04 02 11 06 07 12 00 05 14 09 0 10 00 09 14 06 03 15 05 01 13 12 07 11 04 02 08 1 13 07 00 09 03 04 06 10 02 08 05 14 12 11 15 01 2 13 06 04 09 08 15 03 00 11 01 02 12 05 10 14 07 3 01 10 13 00 06 09 08 07 04 15 14 03 11 05 02 12 0 07 13 14 03 00 06 09 10 01 02 08 05 11 12 04 15 1 13 08 11 05 06 15 00 03 04 07 02 12 01 10 14 09 2 10 06 09 00 12 11 07 13 15 01 03 14 05 02 08 04 3 03 15 00 06 10 01 13 08 09 04 05 11 12 07 02 14 0 02 12 04 01 07 10 11 06 08 05 03 15 13 00 14 09 1 14 11 02 12 04 07 13 01 05 00 15 10 03 09 08 06 2 04 02 01 11 10 13 07 08 15 09 12 05 06 03 00 14 3 11 08 12 07 01 14 02 13 06 15 00 09 10 04 05 03 0 12 01 10 15 09 02 06 08 00 13 03 04 14 07 05 11 1 10 15 04 02 07 12 09 05 06 01 13 14 00 11 03 08 2 09 14 15 05 02 08 12 03 07 00 04 10 01 13 11 06 3 04 03 02 12 09 05 15 10 11 14 01 07 06 00 08 13 0 04 11 02 14 15 00 08 13 03 12 09 07 05 10 06 01 1 13 00 11 07 04 09 01 10 14 03 05 12 02 15 08 06 2 01 04 11 13 12 03 07 14 10 15 06 08 00 05 09 02 3 06 11 13 08 01 04 10 07 09 05 00 15 14 02 03 12 0 13 02 08 04 06 15 11 01 10 09 03 14 05 00 12 07 1 01 15 13 08 10 03 07 04 12 05 06 11 00 14 09 02 2 07 11 04 01 09 12 14 02 00 06 10 13 15 03 05 08 3 02 01 14 07 04 10 08 13 15 12 09 00 03 05 06 11 Tabela 4 - Tablice podstawień funkcji f (S-bloki) Jeśli na wejściu elementu S 1 będzie ciąg bitów 110010 2, to liczba dziesiętna, odpowiadająca ciągowi wyjściowemu, będzie w 2. wierszu i 9. kolumnie i będzie wynosiła 12, co odpowiada binarnemu ciągowi 1100 2. Przedstawiony powyŝej proces podstawień jest nieliniowy i stanowi krytyczny element algorytmu. Zapewnia on w znacznym stopniu bezpieczeństwo szyfru, gdyŝ jest bardzo trudny do analizy. Tablice podstawień na rys. (3.4.4) TU NR RYS są reprezentowane przez S-bloki. Ciągi tych bloków łączy się razem w jeden ciąg 32-bitowy. Na ciągu tym wykonuje się permutację P wg poniŝszej tabeli: 16 07 20 21 29 12 28 17 01 15 23 26 05 18 31 10 02 08 24 14 32 27 03 09 19 13 30 06 22 11 04 25 Tabela 5 - Permutacja P Uzyskany w ten sposób ciąg binarny jest XORowany z L i-1, w rezultacie czego powstaje blok R i, jak pokazano na rys. (3.4.4) TU NR RYS. 3.3. Generowanie kluczy K i Klucz K, mający długość 64 bitów, wprowadzany do algorytmu DES, słuŝy do wygenerowania 16 kluczy wtórnych, zawierających po 48 bitów i uŝywanych w procesie szyfrowania i deszyfrowania. Schemat blokowy algorytmu generowania kluczy przedstawia poniŝszy rysunek:

Rysunek 7 - Schemat algorytmu generowania kluczy Klucz pierwotny K po odrzuceniu ośmiu bitów parzystości jest poddawany permutacji PC-1, pokazanej w tabeli: 57 49 41 33 25 17 09 01 58 50 42 34 26 18 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 21 13 05 28 20 12 04 Tabela 6 - Permutacja PC-1 Otrzymany 56-bitowy blok klucza jest dzielony na dwa bloki 28-bitowe C 0 i D 0. Bloki te są oddzielnie przesuwane cyklicznie w lewo, tworząc ciągi C 1 i D 1. Liczbę przesunięć w lewo bloków klucza podano w tabeli: Cykl i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Przesunięcia 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Tabela 7 - Tablica przesunięć kluczy w lewo Na rysunku (3.4.6 TU NR RYS) przesunięcia są realizowane w blokach LS i. Po przesunięciu kluczy w lewo są one łączone razem i poddawane permutacji PC-2, pokazanej w tabeli: 14 17 11 24 01 05 03 28 15 06 21 10 23 19 12 04 26 08 16 07 27 20 13 02 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Tabela 8 - Permutacja PC-2 Permutacja PC-2 jest permutacją kompresującą, gdyŝ wybiera ona 48 bitów z ciągu 56- bitowego. Otrzymany klucz 48-bitowy jest wykorzystywany w procesie szyfrowania lub deszyfrowania.

Proces deszyfrowania przebiega identycznie, jak proces szyfrowania, z tym, Ŝe klucze są uŝywane w odwrotnej kolejności w pierwszej iteracji uŝywany jest klucz K 16, potem K 15 itd. Wynika to z faktu, Ŝe permutacja końcowa IP -1 jest odwróceniem permutacji IP, a proces szyfrowania przebiega w kolejności odwrotnej: R i-1 = L i L i-1 =R i f(l i, K i ) W algorytmie DES stosuje się 56-bitowe klucze, a zatem liczba moŝliwych kluczy wynosi 2 56. Połowę z tych kluczy stanowią klucze komplementarne, zapewniające 0 w miejscach 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 2 55 = 3,6 10 16 kluczy. Przyjęty sposób generowania podkluczy dla kaŝdego cyklu algorytmu powoduje, Ŝe niektóre klucze są uznawane za słabe. Klucze takie generują 16 jednakowych kluczy wtórnych. Jest ich tylko cztery, zawarte są w poniŝszej tabeli (w formie heksadecymalnej): Pierwotny klucz słaby Ciąg klucza słabego 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F E F E F E F E F E F E F E F E F F F F F F F F F F F F F F F 1 F 1 F 1 F 1 F 1 F 1 F 1 F 1 F 0 0 0 0 0 0 0 0 F F F F F F F E 0 E 0 E 0 E 0 E 0 E 0 E 0 E 0 F F F F F F F F 0 0 0 0 0 0 0 Tabela 9 - Słabe klucze algorytmu DES 3.4. Modyfikacje algorytmu DES Istnieje kilka modyfikacji algorytmu DES, które pozwalają na zwiększenie mocy szyfru i rozmiaru klucza. MoŜna do nich zaliczyć trzykrotnego DESa oraz DESX. 3.4.1. Trzykrotny DES Polega na zastosowaniu dwóch kluczy: K 1 i K 2. Algorytm szyfrowania dany jest następującym wzorem: 1 C = DES DES ( DES ( M ))) K ( 1 K2 K1 Najpierw szyfrujemy wiadomość M kluczem K 1, otrzymany kryptogram deszyfrujemy uŝywając klucza K 2 i wynik szyfrujemy raz jeszcze kluczem K 1. Algorytm deszyfrowania odpowiada równaniu: 1 1 M = DES K ( DES ( DES ( M ))) 1 K2 K1 3.4.2. DESX Algorytm DESX przewiduje zastosowanie trzech kluczy: K zew, K wew oraz K des. Pierwsze dwa bloki są 64-bitowe. Szyfrowanie dane jest wzorem: C = K XOR DES ( M XOR K ) wew zew Kdes Deszyfrowanie odpowiada następującemu równaniu: 1 C = K XOR DES ( C XOR K wew Bezpieczeństwo kryptogramów DESX jest bardzo wysokie; nawet stosując techniki kryptoanalizy róŝnicowej naleŝy przetestować około 2 120 = 10 36 kluczy. K des zew )