Techniki kryptograficzne

Techniki szyfrowania zyskują szczególne znaczenie w kontekście przesyłania danych. Zadaniem kryptografii jest zagwarantowanie tajności danych. Bez wątpienia każda osoba i każda organizacja mają prawo do ochrony swoich danych przed niepowołanym dostępem, niezależnie od tego, czy chodzi o poufne transakcje bankowe lub giełdowe, czy też o e-mail z zaproszeniem na rozmowę kwalifikacyjną, o którym nie powinien dowiedzieć się dotychczasowy pracodawca. Szczególnej ochronie muszą na przykład podlegać warunki zakupu czy rezultaty prac badawczo-rozwojowych w przedsiębiorstwach - to wiadomości najbardziej pożądane przez konkurencję.

Techniki szyfrowania zyskują szczególne znaczenie w kontekście przesyłania danych. Zadaniem kryptografii jest zagwarantowanie tajności danych. Bez wątpienia każda osoba i każda organizacja mają prawo do ochrony swoich danych przed niepowołanym dostępem, niezależnie od tego, czy chodzi o poufne transakcje bankowe lub giełdowe, czy też o e-mail z zaproszeniem na rozmowę kwalifikacyjną, o którym nie powinien dowiedzieć się dotychczasowy pracodawca. Szczególnej ochronie muszą na przykład podlegać warunki zakupu czy rezultaty prac badawczo-rozwojowych w przedsiębiorstwach - to wiadomości najbardziej pożądane przez konkurencję.

Sprawdzone i odporne na złamanie techniki kryptograficzne charakteryzują się przede wszystkim tym, że ich algorytmy zostały opublikowane i są powszechnie znane. Odczytanie zaszyfrowanej wiadomości bez znajomości klucza jest nierealne w możliwym do przyjęcia czasie i za pomocą będących do dyspozycji środków. Publikacja algorytmów szyfrujących i deszyfrujących umożliwia dogłębne sprawdzenie techniki przez analityków na całym świecie. Tylko taki algorytm, który został opublikowany przed kilku laty i jest dokładnie zbadany, może uchodzić za pewny - jeśli nie znaleziono w nim luk.

Zasadniczo wszystkie popularne algorytmy można złamać metodą kolejnych prób. O tym, czy dany algorytm jest bezpieczny, decyduje w praktyce to, czy nakłady sił i środków niezbędne do złamania algorytmu są większe od wartości zaszyfrowanej informacji. Jeżeli wypróbowanie wszystkich możliwych kombinacji nawet z wykorzystaniem najszybszych dostępnych komputerów będzie trwało dłużej, niż zaszyfrowana informacja zachowa swoją ważność, można mówić o bezpiecznym algorytmie. Algorytm szyfrujący, do którego złamania metodą kolejnych prób potrzeba więcej niż dziesięć lat, może w tym przypadku uchodzić za bezpieczny.

Technika szyfrowania symetrycznego

Technikę szyfrowania symetrycznego omówimy na podstawie trzech przykładów: zastosowania funkcji logicznej XOR, opartego na niej algorytmu RC4 i często stosowanego algorytmu Data Encryption Standard (DES).

Najprostszy klucz symetryczny opiera się na zastosowaniu funkcji logicznej XOR. Dwukrotne powiązanie znaku A ze znakiem B za pomocą funkcji XOR zwraca jako wynik pierwotny znak A. Tak więc dwukrotne użycie funkcji XOR w stosunku do identycznego znaku odpowiada odwrotnemu powiązaniu.

Aby wysłać zaszyfrowany przekaz, nadawca ustanawia powiązanie znaku A z kluczem B za pomocą funkcji XOR i wysyła rezultat. Odbiorca kojarzy otrzymany znak z kluczem B i uzyskuje pierwotny znak A.

RC4

Algorytm RC4 został opracowany w roku 1987 przez znanego kryptografa Rona Rivesta (RC to skrót nazwy Rivest Cipher). Jest to prosta i szybka metoda szyfrowania strumieniowego, oparta na opisanym już powiązaniu 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.

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.

DES

W metodzie blokowej DES szyfruje tekst jako jawny podzielony na bloki 64-bitowe.

W metodzie blokowej DES szyfruje tekst jako jawny podzielony na bloki 64-bitowe.

Data Encryption Standard (DES) został opracowany w połowie lat siedemdziesiątych przez IBM. Należy do rodziny szyfrów blokowych i dzieli wiadomość na bloki o wielkości 64 bitów. Po stronie szyfrowania składa się z trzech etapów roboczych, które mogą dostarczyć również tekst otwarty, jeżeli zostaną zrealizowane w identyczny sposób w celu odszyfrowania.

DES i dzisiaj należy do najczęściej stosowanych algorytmów szyfrowania, choć w pierwotnej postaci uchodzi za nieco przestarzały. Aktualny wariant Triple-DES (3DES) wykonuje potrójne szyfrowanie, co daje w efekcie wykładniczy wzrost stopnia bezpieczeństwa. Algorytm 3DES jest często stosowany w sektorze usług finansowych.

Permutacje

DES składa się zarówno przy szyfrowaniu, jak i odszyfrowaniu, z trzech etapów: permutacji wstępnej, szyfrowania/odszyfrowania w kilku cyklach oraz permutacji końcowej.

Permutacje przed pierwszym i po ostatnim cyklu nie służą żadnemu oczywistemu celowi kryptograficznemu. Ponieważ DES został opracowany z myślą o zastosowaniach sprzętowych, manipulacje bitami służyły zapewne dopasowaniu do skromnych rejestrów procesorów z lat siedemdziesiątych. Końcowa permutacja stanowi odwrotność permutacji początkowej - przywraca początkowy obraz bitów.

Szyfrowanie

Algorytm szyfrowania DES opiera się na kluczu o długości 64 bitów. Z kryptograficznego punktu widzenia istotnych jest tylko 56 bitów, ponieważ co ósmy jest bitem parzystości. DES tworzy najpierw z tych 64 bitów 16 różnych 48-bitowych kluczy.

W tym celu tworzy za pomocą permutacji z 56 znaczących bitów dwa 28-bitowe wzorce C[i-1] i D[i-1]. Następnie DES obraca oba częściowe klucze w zależności od cyklu o jeden lub dwa bity w lewo. W cyklach 1, 2, 9 i 16 następuje obrót o jeden bit, w pozostałych cyklach o dwa bity.

Tak utworzone klucze C[ i ] i D[ i ] stają się nowymi kluczami C[i-1] i D[i-1]. Ostatecznie kolejna permutacja tworzy z C[ i ] oraz D[ i ] dwa ciągi 24-bitowe, które łącznie stają się kluczem K[ n ].

W celu szyfrowania DES dzieli jawny tekst na bloki o długości 64 bitów, te z kolei dzieli ponownie na dwie części 32-bitowe L[ n ] i R[ n ]. Część R[ n ] mieszana jest za pomocą funkcji mieszającej. Do tego dochodzi oparte na tabeli przeliczenie na podstawie zmiennej wejściowej R[ n ] i klucza K[ n ].


Zobacz również