• Nie Znaleziono Wyników

Systemy kryptograficzne

W dokumencie Kody korekcyjne i kryptografia (Stron 130-135)

Część 3. Kryptografia

3.2. Systemy kryptograficzne

3.2.1. System kryptograficzny z kluczem tajnym

Systemy kryptograficzne z kluczem tajnym są znane od dawna i często nazywa się je systemami konwencjonalnymi lub klasycznymi. W skład systemu kryptograficzne-go wchodzi pięć elementów:

• przestrzeń wiadomości jawnych M, • przestrzeń kryptogramów C, • przestrzeń kluczy K,

• algorytm szyfrowania E, • algorytm deszyfrowania D.

Schemat blokowy systemu kryptograficznego z kluczem tajnym, zastosowanego do ochrony kanału transmisji danych, pokazano na rys. 3.2.1. Elementami tego syste-mu kryptograficznego są: szyfrator, deszyfrator i generator klucza. Szyfrator realizuje algorytm kryptograficzny i generuje zbiór kryptogramów C z udziałem klucza krypto-graficznego k

( )

C E M= k . (3.2.1)

Kryptogram jest transmitowany kanałem transmisyjnym, a następnie deszyfrowany przez deszyfrator. Na wyjściu deszyfratora otrzymujemy odtworzony zbiór tekstów jawnych M

( )

M=D Ck . (3.2.2)

Rys. 3.2.1. System kryptograficzny z kluczem tajnym

Jeśli założymy, że kanał transmisyjny nie generuje błędów transmisyjnych, to odtworzony tekst jawny na wyjściu deszyfratora jest równy tekstowi jawnemu na

wej-Szyfrator

Ek

Deszyfrator

Dk

Tekst jawny Tekst jawny

Kryptoanalityk

Podsłuch bierny Podsłuch czynny

M Generator klucza C K K Kanał klucza C M Kanał wiadomości

ściu szyfratora. Operacje szyfrowania i deszyfrowania muszą być zdefiniowanymi jednoznacznie operacjami odwracalnymi

( )

( )

M=D C Mk k . (3.2.3)

W czasie transmisji kryptogramów może nastąpić ich przechwycenie przez krypto-analityka. Jeśli kryptoanalityk nie zmieni kryptogramu, to podsłuch taki nazywamy biernym, a jeśli nastąpi modyfikacja kryptogramu, podsłuch nazywamy czynnym. Te dwie metody podsłuchu pokazano schematycznie na rys. 3.2.1. Podsłuch bierny naru-sza poufność danych a podsłuch aktywny ich autentyczność.

W nowoczesnych systemach kryptograficznych algorytmy kryptograficzne nie są zazwyczaj tajne. Tajne algorytmy okazały się niepraktyczne w dużych systemach i dlatego stosuje się je tylko w systemach o małym stopniu zabezpieczenia. Przykła-dem stosowania tajnego algorytmu może być technika kodowania satelitarnych sy-gnałów telewizyjnych. W powszechnych systemach kryptograficznych bezpieczeń-stwo systemu zapewnia tajny klucz.

System kryptograficzny z kluczem tajnym ma wspólny klucz szyfrujący i deszy-frujący i dlatego nazywa się systemem symetrycznym lub systemem z jednym kluczem. Klucze kryptograficzne mogą być generowane za pomocą jednego generatora. Gdy klucze są przesyłane kanałami transmisyjnymi, jak to pokazano na rys. 3.2.1, wtedy kanał klucza musi być kanałem bezpiecznym.

Aby zachować poufność i autentyczność danych w systemach z tajnym kluczem, należy spełnić pewne wymagania. Poufność wymaga, aby kryptoanalityk nie mógł określić jawnej postaci danych na podstawie przechwyconego kryptogramu. Warunek poufności będzie spełniony, jeśli kryptoanalityk po przechwyceniu kryptogramu nie będzie mógł metodami obliczeniowymi określić przekształcenia deszyfrującego Dk ani tekstu jawnego M. Ażeby zachować poufności kryptogramu, należy więc chronić taj-ność przekształcenia deszyfrującego.

W celu zachowania autentyczności danych każda próba zastąpienia szyfru orygi-nalnego szyfrem fałszywym powinna być wykryta. Warunek autentyczności będzie spełniony, kiedy kryptoanalityk po przechwyceniu kryptogramu nie będzie mógł me-todami obliczeniowymi określić przekształcenia szyfrującego Ek. Również nie powin-no być możliwe doprowadzenie do ustalenia takiego kryptogramu C’, że Dk(C’) bę-dzie jednym z elementów zbioru M. W celu zachowania autentyczności kryptogramu należy więc chronić tajność przekształcenia szyfrującego.

Ponieważ w systemach symetrycznych klucze szyfrujące i deszyfrujące są takie same, a algorytmy kryptograficzne nie są tajne, zatem przekształcenia Ek i Dk łatwo można wyprowadzić z siebie. Dlatego też w takich systemach poufność i autentycz-ność nie mogą być traktowane rozdzielnie, a system musi spełniać jednocześnie wszystkie wymagania zarówno w stosunku do poufności, jak i autentyczności. Syste-my symetryczne zabezpieczają tajność przekształceń Ek i Dk dzięki stosowaniu tajnego klucza, zapewniając w ten sposób poufność i autentyczność danych.

• szyfry strumieniowe (stream ciphers), • szyfry blokowe (block ciphers).

W szyfrowaniu strumieniowym lub potokowym przetwarzaną jednostką jest bit lub znak, a w szyfrowaniu blokowym blok, zawierający najczęściej osiem znaków. Obie te metody szyfrowania mogą być używane zarówno w transmisji danych, jak i do przechowywania danych w pamięciach.

3.2.2. System kryptograficzny z kluczem jawnym

Koncepcja systemu kryptograficznego z kluczem jawnym lub publicznym została przedstawiona pierwszy raz przez Diffie i Helmana w 1976 r. [3.3]. W systemie takim zastosowano dwa różne klucze: szyfrujący oraz deszyfrujący. Jest to system asyme-tryczny albo system z dwoma kluczami.

Rys. 3.2.2. System kryptograficzny z kluczem publicznym

Schemat blokowy systemu kryptograficznego z kluczem jawnym pokazano na rys. 3.2.2. W systemie tym generator klucza generuje dwa klucze: szyfrujący K1 i deszy-frujący K2. Klucz szydeszy-frujący jest kluczem jawnym i przesyła się go do nadawcy in-formacji zwykłym kanałem bez zabezpieczeń. Każdy nadawca inin-formacji może użyć klucza szyfrującego i obliczyć kryptogram

( )

C E= k1 M . (3.2.4)

Algorytmy kryptograficzne z kluczem publicznym są tak skonstruowane, że od-wrócenie operacji szyfrującej jest niemożliwe w rozsądnym czasie. Aby odczytać wiadomość zaszyfrowaną, należy znać klucz deszyfrujący K2. Klucz deszyfrujący jest tajny i nie może być wyznaczony z klucza szyfrującego. Proces deszyfrowania określa zależność

( )

M =Dk2 C . (3.2.5) Szyfrator Ek Deszyfrator Dk

Tekst jawny Tekst jawny

Kryptoanalityk M Generator klucza C K2 K1 Kanał klucza M

Oba powyższe przekształcenia muszą być operacjami jednoznacznie odwracal-nymi

( )

( )

M =Dk2 Ck1 M . (3.2.6)

Systemy kryptograficzne z kluczem jawnym opierają się na tzw. nieodwracalnych funkcjach zapadkowych (trapdoor one-way functions). Obliczenie wartości takiej funkcji jest proste, ale odwrócenie operacji okazuje się praktycznie niemożliwe, gdy brak dodatkowych informacji. Algorytmy z kluczem jawnym opisano w rozdziale 3.5. Algorytmy te są algorytmami blokowymi.

W systemach asymetrycznych, podobnie jak w systemach symetrycznych, algo-rytmy kryptograficzne nie są tajne. Ponieważ w systemach z kluczem jawnym prze-kształcenia deszyfrującego Dk 2 nie można wyznaczyć z przekształcenia szyfrującego

Ek 1, poufność i autentyczność zapewniają oddzielne przekształcenia.

Jeśli system kryptograficzny ma konfigurację taką, jak przedstawiono na rys. 3.2.2, to poufność informacji jest zachowana, gdyż tylko odbiorca znający klucz K2 może odczytać szyfr. Autentyczność nie zostanie zachowana, ponieważ dowolny nadawca, znający przekształcenie szyfrujące, może podstawić fałszywy szyfr.

Aby zachować autentyczności informacji bez poufności, należy odwrócić kolejność operacji. Nadawca szyfruje wówczas wiadomość, używając tajnego przekształcenia Dk2, a odbiorca deszyfruje kryptogram, używając jawnego przekształcenia Ek1. Autentycz-ność w takim systemie jest zapewniona, gdyż tylko określony nadawca może stosować przekształcenia Dk2. Poufność natomiast nie jest zagwarantowana, ponieważ dowolny odbiorca znający przekształcenie Ek1 może odtworzyć zaszyfrowaną informację.

W celu osiągnięcia poufności i autentyczności informacji jednocześnie nadawca i biorca muszą stosować podwójne przekształcenia pokazane na rys. 3.2.3. Nadawca i od-biorca wykorzystują dwie pary kluczy a i b. Nadawca, który chce przesłać wiadomość określonemu odbiorcy, najpierw szyfruje wiadomość M, stosując przekształcenie tajne

Da2, a następnie wynik poddaje przekształceniu jawnemu Eb1. Odbiorca w pierwszej ko-lejności stosuje przekształcenie tajne Db2, a następnie przekształcenie jawne Ea1.

Rys. 3.2.3. Poufność i autentyczność w systemie z kluczem jawnym

Nie wszystkie algorytmy z kluczem publicznym mogą być używane w systemach zapewniających jednocześnie poufność i autentyczność. Algorytmy kryptograficzne z kluczem publicznym opisano w rozdziale 3.6. Opisany tam algorytm RSA może zapewnić poufność i autentyczność danych, a algorytm Merklego-Hellmana

gwaran-Da2 Eb1 Db2 Ea1

M M

Poufność Autentyczność

tuje tylko jedną z tych cech – albo poufność, albo autentyczność.

3.2.3. Ocena systemów kryptograficznych

Istnieje wiele kryteriów służących do oceny użytkowych właściwości systemu kryptograficznego. Pięć najważniejszych to [3.11]:

1. Stopień tajności.

Stopień tajności ocenia się za pomocą złożoności obliczeniowej. Podstaw do anali-zowania złożoności obliczeniowej szyfrów dostarcza teoria złożoności. Złożoność obliczeniowa algorytmu zależy od ilości pracy i ilości przechwyconego materiału potrzebnego do złamania szyfru. W ilości pracy uwzględnia się zasoby komputerowe, a ilość zgromadzonego materiału musi dać rozwiązanie jednoznaczne. System krypto-graficzny jest bezpieczny wówczas, gdy wzrost ilości przechwyconego materiału nie ułatwia złamania szyfru.

2. Rozmiar klucza.

Klucze kryptograficzne są transmitowane kanałami transmisyjnymi lub przechowy-wane w pamięciach. Aby nie obciążać kanałów i pamięci, rozmiar klucza powinien być jak najmniejszy. Z drugiej strony dłuższy klucz zapewnia większy stopień tajności.

3. Złożoność algorytmów szyfrującego i deszyfrującego.

Złożoność algorytmów kryptograficznych powoduje przedłużenie czasu wykonywa-nia operacji kryptograficznych i z tego względu powinny one być możliwie proste. Jed-nak bardziej złożone algorytmy kryptograficzne zapewniają wyższy stopień tajności.

4. Propagacja błędów.

W niektórych typach szyfrów nawet pojedyncze błędy transmisyjne powodują du-żą liczbę błędów na wyjściu deszyfratora. Wywołuje to stratę informacji i konieczność jej retransmisji. Dlatego też dąży się od ograniczenia propagacji błędów.

5. Zwiększenie objętości danych.

W niektórych systemach kryptograficznych wzrasta objętość danych na wyjściu szyfratora w porównaniu z jego wejściem. Ten niepożądany efekt powoduje wzrost objętości przesyłanych danych oraz jest przyczyną wielu problemów na wyjściu sys-temu kryptograficznego i dlatego powinien być ograniczony.

Wartości parametrów użytkowych systemu kryptograficznego powinny wynikać z założonego stopnia bezpieczeństwa systemu. Stopień bezpieczeństwa systemu kryptograficznego decyduje o tym, jak trudno jest złamać szyfr.

W dokumencie Kody korekcyjne i kryptografia (Stron 130-135)

Powiązane dokumenty