INŻYNIERIA BEZPIECZECSTWA
LABORATORIUM
Szyfry symetryczne (idea, rc)
1. Szyfrowanie symetryczne
Kryptografia symetryczna to taki rodzaj szyfrowania, w którym tekst jawny ulega
przekształceniu na tekst zaszyfrowany za pomocą pewnego klucza, natomiast do
odszyfrowania niezbędna jest znajomość tego samego klucza.
Bezpieczeństwo takiego szyfrowania zależy od:
ilości możliwych kluczy,
długości klucza,
odporności na ataki inne niż brute force (rozpatrzenie wszystkich możliwych
przypadków po kolei).
Tekst jawny, nadawany przez nadawcę, podlega konwersji. Za pomocą SZYFRATORA
(szyfrowanie tekstu jawnego) otrzymuje się tekst tajny. Kanałem publicznym informacja
przesyłana jest do DESZYFRATORA (deszyfrowanie tekstu tajnego) w rezultacie jego
działania otrzymywany jest ponownie tekst jawny.
Szyfrowanie odbywa się z pomocą klucza prywatnego wspólnego dla nadawcy i odbiorcy
jest to jeden i ten sam klucz stosowany do operacji szyfrowania i deszyfracji.
Klucz symetryczny musi być zatem znany zarówno nadawcy jak i odbiorcy przesyłki. Służy
on więc zarówno do zakodowania, jak i odkodowania danych. Z oczywistych względów klucz
ten musi być tajny. Podstawowym problemem związanym ze stosowaniem tej metody
szyfrowania jest bezpieczny sposób przekazania klucza pomiędzy osobami, które chcą się
porozumieć. Konieczność ochrony klucza tajnego uniemożliwia przekazanie go za
pośrednictwem kanałów elektronicznych (w formie jawnej), gdyż mógłby on zostać
przechwycony i wykorzystany do odkodowania danych przez osoby niepowołane.
Kryptografia symetryczna wymaga więc wcześniejszego uzgodnienia klucza, co w
kontaktach, np. klient bank może nastręczać poważne problemy.
W przypadku szyfrowania symetrycznego powstaje poważny problem musi istnieć
bezpieczny kanał przesyłania klucza. W tym celu zbudowano specjalne, kryptograficzne
mechanizmy wymiany kluczy. Są one wymieniane nie za pomocą nośników danych (typu:
dyskietka, pamięć flash, karta pamięci) i kuriera, tylko przez sieć (jak informacje szyfrowane
za ich pomocą). Jest przy tym założenie, że życie klucza jest stosunkowo krótkie i nawet
przechwycenie go przez kogoś niepowołanego nie da tej osobie wystarczającej ilości czasu na
dokonanie włamania. Okazuje się, że szyfrowanie symetryczne charakteryzuje się ogromną
trudnością złamania szyfru poziom ochrony jest wysoki. Dodatkowo szyfrowanie takie
odbywa się z reguły na podstawie operacji podstawiania bądz przestawiania, a więc za
pomocą operacji stosunkowo prostych do wykonania w systemie. W związku z tym nie ma
opóznień algorytmy są stosunkowo szybkie.
Można wyróżnić następujące zalety kryptografii symetrycznej:
algorytmy oparte o klucze symetryczne umożliwiają szybkie szyfrowanie danych;
klucze symetryczne są relatywnie krótkie;
algorytmy oparte o klucze symetryczne są wykorzystywane do konstruowania innych
mechanizmów kryptograficznych, takich jak: funkcja hash, czy podpis elektroniczny;
proste transformacje oparte o klucz symetryczny są proste do analizy i mogą służyć do
konstrukcji mocnych szyfrów;
algorytmy oparte o klucze symetryczne uważa się za mocne kryptologicznie ze
względu na długi okres ich weryfikacji.
Za wady kryptografii asymetrycznej uznaje się:
konieczność utrzymania w tajemnicy klucza symetrycznego po obu stronach kanału
komunikacji (w przypadku komunikacji dwustronnej);
potrzeba stosowania ogromnej liczby kluczy w dużych sieciach (w przypadku wielu
komunikujących się osób);
konieczność udostępnienia kluczy tajnych zaufanej trzeciej stronie znanej wówczas
w terminologii angielskiej uncoditionally trusted TTP;
konieczność częstej wymiany kluczy (zwykle ustalenie nowego klucza dla każdej
sesji), co podyktowane jest względami bezpieczeństwa.
2. Podział szyfrów symetrycznych
Algorytmy szyfrujące z kluczem symetrycznym (klucz deszyfrujący daje się uzyskać na
podstawie klucza szyfrującego) dzielą się na dwa rodzaje: algorytmy blokowe i algorytmy
strumieniowe.
Szyfratory blokowe pracują w taki sposób, że wiadomość jawną dzielą na ciągi o
złożonej długości znaków (bloki) i szyfrują te ciągi oddzielnie. W wyniku procesu
szyfrowania powstaje tyle samo bloków wiadomości zaszyfrowanych i SA one tej samej
długości co bloki jawnych wiadomości wejściowych. Zwykle bloki są krótkie (np. 64 bity) i
wtedy dla przesłania wiadomości wejściowej trzeba wysłać wiele bloków. Analogicznie nie
przebiega deszyfracja.
Szyfratory strumieniowe pracują w taki sposób, że szyfrowanie zachodzi
nieprzerwanie dla ciągu symboli tworzącego całą wiadomość jawną. działają w taki sposób że
generują ciąg szyfrujący o długości równej długości wiadomości, kolejne bity klucza łączy się
z kolejnymi bitami wiadomości za pomocą operacji XOR (przed przesłaniem szyfrogramu
nadawca i odbiorca muszą zsynchronizować swoje generatory klucza). Podczas kodowania
generowany jest potencjalnie nieskończony strumień szyfrujący i XOR-wany jest z
wiadomością. Odszyfrowywanie zakodowanej wiadomość i odbywa się w identyczny sposób
generowany jest strumień szyfrujący, i XOR-owany z szyfrogramem. Szyfry strumieniowe
są szczególnym przypadkiem szyfrów blokowych, dla którego długość bloku wynosi jeden
3. Przykład blokowego szyfru symetrycznego algorytm IDEA
Symetryczny szyfr blokowy IDEA wykorzystuje 128-bitowy klucz i operuje 64-itowymi
blokami tekstu jawnego i zaszyfrowanego. Struktura algorytmu została tak zaprojektowana,
aby proces szyfrowania był identyczny z procesem deszyfrowania.
Szyfr blokowy przekształca słowa o ustalonej długości (czyli bloki) w słowa o takiej samej
długości.
Budowa algorytmu
IDEA operuje na 64-bitowych blokach wykorzystując klucz 128-bitowy.
Na podstawie tego klucza generowane są 52 podklucze, każdy po 16 bitów.
Generowanie odbywa się w następujący sposób:
1. W pierwszej kolejności klucz rozbijany jest na osiem 16-bitowych kawałków.
Stanowią one pierwsze 8 kluczy.
2. Następnie klucz 128-bitowy przesuwany jest cyklicznie o 25 bitów w lewo (tj.
25 najstarszych bitów wchodzi zatem ponownie po prawej stronie) i
natychmiast rozbijane jest na kolejne 8 podkluczy.
3. Kolejno wykonywane jest jeszcze 15 takich rund.
4. W siedemnastej rundzie wybierane są już tylko 4 klucze od strony najstarszych
bitów.
Szyfrowanie przy użyciu IDEI przebiega w 8 rundach, jest to więc algorytm złożony.
W każdej rundzie wykorzystuje się 6 kluczy.
W każdej z rund blok rozbijany jest na 16-bitowe ćwiartki, które łączone są trzema
niekompatybilnymi ze sobą operacjami; każda z tych operacji przetwarza wyłącznie
16-bitowe liczby. Dzięki temu IDE łatwiej zaimplementować sprzętowo, a co więcej,
działa efektywnie nawet na 16-bitowych procesorach.
Na zakończenie na 4 blokach 16-bitowych wykonujemy końcową transformację przy
użyciu ostatnich 4 kluczy i łączymy je w kryptogram.
Operacje wykorzystywane w algorytmie IDEA, to:
dodawanie modulo 2 odpowiednich bitów (XOR),
dodawanie liczb modulo2ąv ,
mnożenie liczb modulo 2ąv +1
Ogólna zasada szyfrowania:
Wiadomość jawna zaznaczona jest jako Dane64 bit, a wiadomość zaszyfrowana jako
Wynik64 bit. Szyfrowane przebiega w dziewięciu iteracjach. Wyniki każdej z iteracji są
danymi wejściowymi dla następnej iteracji.
Pierwsza iteracja
Przekształcenie początkowe to zliczynowanie (lub zsumowanie) czterech 16bitowych słów
utworzonych z wiadomości wejściowej z czterema 16bitowymi podkluczami utworzonymi z
klucza. Tak utworzone cztery 16bitowe słowa są podawane do bloku mieszania wstępnego i
mieszania końcowego. Mieszanie wstępne polega na tym, że utworzone w poprzednim bloku
cztery 16bitowe słowa są parami poddawane operacji XOR. Powstałe w ten sposób dwa
16bitowe słowa są argumentami dla ponownego mnożenia z dodawaniem z dwoma
następnymi podkluczami. Blok mieszania końcowego ma na wejściu 6 słów 16bitowych
tworząc z nich, poprzez sumowanie modulo 2, cztery 16bitowe słowa wyjściowe z danej
iteracji. Ostatnia iteracja jest uproszczona, na rysunku poniżej pokazano cały proces
szyfrowania, czyli dziewięć kolejnych iteracji. Na wyjściu ostatniej iteracji jest wiadomość
zaszyfrowana.
Schemat działania szyfru przedstawiono na rysunku poniżej:
rys. a. Schemat działania algorytmu IDEA
- operacja XOR
- mnożenie modulo 216 +1
- dodawanie modulo 216
Ki(r ) - i-ty podklucz r-tej rundy
Generowanie kluczy
Zastosowane w procesie szyfrowania podklucze są tworzone ze 128 bitowego klucza.
Trzeba wygenerować 6x8=48 podkluczy dla pierwszych ośmiu iteracji oraz ostatniej iteracji
jeszcze dodatkowo 4 podklucze. Razem daje to konieczność wyliczenia 52 szesnastobitowych
słów ze 128bitowego klucza. Słowa te powstają w wyniku rotacji 128bitowego klucza
zródłowego o 25bitów (czyli przesunięcie cykliczne o 25 pozycji) i podziału na szesnastkowe
części. Proces ten powtarzany jest aż do osiągnięcia wymaganej liczby kluczy.
Deszyfrowanie
Deszyfrowanie algorytmem IDEA przebiega wg schematu przedstawionego na rys. a,
w którym zamiast X1, X2, X3, X4 na wejściu podaje się bloki Y1,Y2,Y3,Y4
kryptogramu oraz klucz K (ten sam co przy szyfrowaniu).
Z klucza K generuje się podklucze Ki(r ) .
Generuje się podklucze deszyfrujęce K' (r ) wg schematu przedstawionego w tablicy
i
b.
Tablica b. Tworzenie podkluczy deszyfrujących K' (r ) na podstawie podkluczy szyfrujących
i
-1
Ki(r ) w algorytmie IDEA (dla Ki = 0 przyjmuje się (Ki) = 0; 216 -1mod216 +1 ).
3.1 Szyfrowanie symetryczne algorytmem IDEA - za pomocą
programu CrypTool 1.4.30
Po uruchomieniu programu należy stworzyć plik z tekstem jawnym (Plik ->Nowy
/Ctrl+N/) bądz otworzyć plik już istniejący (Plik -> Otwórz / Ctrl+O).
Następnie w pasku zadań programu wybieramy opcje Szyfrowanie, a następnie
Symetryczne > IDEA > Szyfruj
** IDEA wykorzystuje klucz 128-bitowy, zatem inna opcja wyboru klucza nie istnieje
Wartość klucza zmieniamy wpisując ręcznie wartości heksadecymalne:
Oto wynik po zastosowaniu w pierwszym kroku szyfrowania, a w drugim deszyfracji.
(Aby przeprowadzić deszyfrowanie z menu programu wybieramy Szyfrowanie >
Symetryczne > IDEA > Deszyfruj)
Algorytm IDEA w celu szyfrowania/deszyfrowania wykorzystuje ten sam klucz, zatem w
momencie podania nieprawidłowego klucza otrzymamy komunikat:
Zadania do samodzielnego wykonania:
1. W programie CrypTool wczytaj plik Cry-IDEA-zad1.hex
2. Przy użyciu funkcji Kryptoanaliza > Szyfrowanie > IDEA wywnioskuj ile
czasu zajęłoby kryptoanalitykowi rozszyfrowanie tekstu jawnego zawartego w
w/w pliku?
3. Przy użyciu klucza podanego w pliku KluczIDEA-zad1.txt rozszyfruj
zaszyfrowany plik.
4. Czy według Ciebie algorytm symetryczny IDEA znajduje zastosowanie w
kryptografii? Jaki jest stopień bezpieczeństwa dla wiadomości szyfrowanych
tym algorytmem? Czy używanie kanału komunikacyjnego jest wystarczająco
bezpieczne?
4. Przykład strumieniowego szyfru symetrycznego algorytm
RC4- Ron's Code/Rivest Cipher
W kryptografii, szyfrowanie strumieniowe jest szyfrowaniem, w którym szyfrowaniu
podlega na raz jeden bit (czasem jeden bajt).
Algorytm RC4 został opracowany w 1987 przez znanego kryptografa Rona Rivesta (RC
to skrót nazwy Rivest Cipher).. Długość klucza dla RC4 to 40 lub 128 bitów, w zależności od
długości klucza tworzony jest ciąg bajtów, który wykorzystuje się jako klucz jednorazowy.
Jest to prosta i szybka metoda szyfrowania strumieniowego, oparta operacji XOR.
Ponieważ algorytm ten doskonale nadaje się do implementacji w oprogramowaniu, bardzo
szybko zastosowano go w wielu produktach komercyjnych, m.in w Lotus Notesie, Oracle
Secure SQL i Netscape Nawigatorze.
Budowa algorytmu
RC4 generuje pseudolosowy strumień bitów (strumień szyfrujący). W celu zaszyfrowania
wykonywana jest operacja XOR na tekście oryginalnym i strumieniu szyfrującym. W celu
odszyfrowania analogicznie wykonywana jest operacja XOR na tekście zaszyfrowanym i
strumieniu szyfrującym.
W celu wygenerowania strumienia szyfrującego wykorzystuje się tajny stan początkowy,
składający się z dwóch części:
Permutacji 256-elementowej wszystkich możliwych stanów (oznaczanej pózniej S).
Dwóch 8-bitowych wskazników (oznaczanych "i" i "j").
Permutacja jest zainicjalizowana za pomocą klucza o długości zazwyczaj pomiędzy 40
i 256 bit (procedura inicjowania klucza). Następnie tworzony jest strumień bitów
wyjściowych za pomocą algorytmu pseudolosowej generacji.
Siła wspomnianego algorytmu polega na tym, że za pomocą prostej metody z
wprowadzonego klucza S wytwarzany jest długi, pseudolosowy klucz wewnętrzny P. Dopiero
tego klucza RC4 używa do szyfrowania otwartego tekstu. Jeżeli klucz S składa się z n bitów
od S(0) do S(n-1), wówczas rozpoczyna się obliczanie:
i, j = 0
P[ k ] = k z k=0, ... ,256
powtarzane 256 razy
j = j + P[ i ] + S[ i ] mod 256
zamień P[ i ] i P[ j ]
i = i + 1 mod n
Bit klucza K[ i ] niezbędny do zaszyfrowania lub odszyfrowania bitu wiadomości i
oblicza się według wzoru:
i = i + 1 mod 256
j = j + P[ i ] mod 256
zamień P[ i ] i P[ j ]
t = P[ i ] + P[ j ] mod 256
K[ i ] = P[ t ]
Za pomocą zmiennych i oraz j, a także permutacji P RC4 może zapisać 258 różnych
informacji o stanie. 256 bitów to permutacje 0, ..., 255, o równym rozkładzie.
Nadawca chce przesłać wiadomość do Odbiorcy. Obojgu znany jest klucz szyfrujący.
Mają ten sam generator strumienia. Nadawca bajt po bajcie XORuje wiadomość z kluczem i
wysyła do Odbiorcy.
4.1 Szyfrowanie symetryczne algorytmem RS4 - za pomocą programu
CrypTool 1.4.30
W pasku zadań programu wybieramy opcje Szyfrowanie, a następnie Symetryczne >
RS4 > Szyfruj
** Wybieramy długość klucza oraz wpisujemy go ręcznie używając wartości heksadecymalnych
Wynik dla operacji szyfrowania:
Oto wynik po zastosowaniu w pierwszym kroku szyfrowania, a w drugim deszyfracji.
(Aby przeprowadzić deszyfrowanie z menu programu wybieramy Szyfrowanie >
Symetryczne > RC4 > Deszyfruj)
Zadania do samodzielnego wykonania:
1. W programie CrypTool wczytaj plik Cry-RC4-zad1.hex
2. Przy użyciu funkcji Kryptoanaliza > Szyfrowanie > IDEA wywnioskuj ile
czasu zajęłoby kryptoanalitykowi rozszyfrowanie tekstu jawnego zawartego w
w/w pliku?
3. Przy użyciu klucza podanego w pliku KluczRC4-zad1.txt rozszyfruj
zaszyfrowany plik.
4. Czy według Ciebie algorytm symetryczny RC4 znajduje zastosowanie w
kryptografii? Jaki jest stopień bezpieczeństwa dla wiadomości szyfrowanych
tym algorytmem? Czy używanie kanału komunikacyjnego jest wystarczająco
bezpieczne?
5. Po przeprowadzeniu deszyfracji przeanalizuj wyniki metody brute force. Czy
ta metoda jest według Ciebie wydajna?
Wyszukiwarka
Podobne podstrony:
szyfry symetryczne des=esW7 Kodowanie i Kryptografia Szyfry symetryczne 2g15 THE IDEA OF DHATU VADA1 SGU stropy płaskie ideaIdea polityki filozoficznej konspektSymetria w fizyce (rozdział 3)Idea pejzażu społecznego i nowa topografiaZwarcia symetryczne trójfazowe w systemie elektroenergetycznym20 Sk éadowe symetryczne i filtryGŁÓWNA IDEA WŁODZIMIERZA SOŁOWJOWAwięcej podobnych podstron