Systemy szyfrowania z akluczem jawnym W systemach szyfrowania konwencjonalnego klucze stosowane do szyfrowania i deszyfrowania danego komunikatu są takie same. Nie jest to warunek konieczny. Można stworzyć algorytm kryptograficzny, który opiera się na jednym kluczu do szyfrowania, i innym, lecz związanym z pierwszym, kluczu do deszyfrowania. Algorytmy takie mają następującą ważną cechę:
Nie jest możliwe na drodze obliczeń określenie klucza deszyfrującego przy znajomości algorytmu kryptograficznego i klucza szyfrującego.
Ponadto niektóre algorytmy, np. RSA, wykazują także następującą cechę:
Któregokolwiek z (związanych ze sobą) kluczy można użyć do szyfrowania, drugiego zaś do deszyfrowania.
Powyższy rysunek ilustruje proces szyfrowania z kluczem jawnym. Główne etapy tego procesu są następujące:
Każdy system końcowy w sieci generuje parę kluczy do szyfrowania i deszyfrowania otrzymanych komunikatów.
Każdy system publikuje swój klucz szyfrujący przez umieszczenie go w publicznym rejestrze do pliku. To jest klucz jawny. Drugi klucz pozostaje prywatny.
Jeżeli A chce wysłać komunikat do B , szyfruje go za pomocą klucza jawnego B .
Gdy B otrzymuje komunikat, deszyfruje go za pomocą prywatnego klucza B . Żaden inny odbiorca nie może odszyfrować komunikatu, ponieważ tylko B zna swój prywatny klucz.
Przy stosowaniu takiej metody wszyscy użytkownicy mają dostęp do kluczy publicznych, a klucze prywatne są generowane lokalnie przez każdego uczestnika i nie muszą być nigdy przesyłane.
Dopóki system ma kontrolę nad swoim kluczem prywatnym, dopóki nadchodzące do niego komunikaty są bezpieczne. W każdej chwili system może zmienić swój klucz prywatny i ogłosić odpowiadający mu klucz jawny, który zastąpi stary.
W poniższej tabeli zebrano niektóre najważniejsze aspekty szyfrowania konwencjonalnego i szyfrowania z kluczem jawnym. Dla odróżnienia klucz stosowany w szyfrowaniu konwencjonalnym nazywany będzie kluczem tajnym . Klucze stosowane w szyfrowaniu z kluczem jawnym nazywane są kluczem jawnym i kluczem prywatnym . W dalszej części stosowane będą następujące oznaczenia:
Klucz tajny K m , gdzie m oznacza jakieś określenie, np. K s to klucz sesji.
Klucz jawny KU a (dla użytkownika A), a odpowiadający mu klucz prywatny KR a . Szyfrowanie Szyfrowanie konwencjonalne Szyfrowanie z kluczem jawnym Niezbędne do działania
Ten sam algorytm i ten sam klucz używany do szyfrowania i deszyfrowania.
Jeden algorytm jest używany do szyfrowa-nia i deszyfrowania, wraz z parą kluczy: jeden do szyfrowania, drugi do deszyfrowania.
(…)
…, który śledzi Y i ma dostęp do KUb, lecz nie ma dostępu do KRb lub X, musi starać się uzyskać X i/lub KRb. Zakładamy, że przeciwnik zna algorytm szyfrowania (E) i deszyfrowania (D). Jeśli interesuje go tylko jeden konkretny komunikat, skoncentruje się na uzyskaniu X przez generowanie hipotetycznego tekstu jawnego . Częstokroć jednak przeciwnikowi zależy na możliwości odczytania również przyszłych komunikatów…
… (podpisu cyfrowego). Ponadto nie można zmienić komunikatu nie mając dostępu do klucza prywatnego A, więc komunikat jest uwierzytelniony zarówno pod względem nienaruszalności danych.
W powyższym systemie cały komunikat jest zaszyfrowany, co wprawdzie zapewnia autentyczność autora i komunikatu, jednak wymaga przechowywania dużych ilości danych. Każdy dokument musi być przechowywany w postaci jawnej…
…, że chcemy wysyłać komunikaty w blokach n-bitowych. Zdefiniujmy:
wektor ładunku a=(a1, a2, ..., an) ai liczba całkowita blok tekstu jawnego x=(x1, x2, ..., xn) xi liczba binarna
odpowiadający tekst zaszyfrowany S=a . x= Niech wektor ładunku a będzie listą elementów, które mogą potencjalnie zostać włożone do plecaka, gdzie każdy element jest równy wadze odpowiedniego elementu ładunku. Niech x będzie wyborem…
… oblicza więc sumę
S = a . x
Generowanie klucza
Łatwy problem plecakowy, a'
1
3
7
13
26
65
119
267
Czynnik w=467 Dzielnik m=523 w -1= 28(mod 523)
Trudny problem plecakowy, a
467
355
131
318
113
21
135
215
Klucz jawny, KU=a Klucz prywatny, KR={w-1, m, a'}
Szyfrowanie
Tekst jawny = 01001011
Tekst zaszyfrowany = 0*467+1*355+0*131+0*318+1*113+0*21+1*135+1*215 = 818
Deszyfrowanie
818*w-1 = 818*28 = 415(mod 523…
…, będzie więc starał się uzyskać KRb, generując hipotetyczny klucz .
Jak wspomniano wcześniej, którykolwiek z dwóch powiązanych kluczy może być zastosowany do szyfrowania, wtedy drugi można zastosować do deszyfrowania. Umożliwia to zastosowanie innego systemu kryptograficznego. System przedstawiony na powyższym rysunku zapewnia poufność, a na kolejnym rysunku przedstawione zostanie zastosowanie szyfrowania z kluczem…
… do dokumentu bez powstania różnicy w tej wartości było niemożliwe. Jeśli wartość uwierzytelniająca została zaszyfrowana za pomocą prywatnego nadawcy, pełni ona rolę sygnatury potwierdzającej pochodzenie, treść i kolejność. Technika ta umawiana jest w części sygnatury cyfrowe.
Należy podkreślić, że opisany powyżej proces szyfrowania nie zapewnia poufności. Przesyłany komunikat jest zabezpieczony…
… - liczba całkowita większa od (prywatna, wybrana) w - liczba całkowita względnie pierwsza z m (prywatna, wybrana)
w -1 - odwrotność w, modulo m (prywatna, obliczona)
a - równy w a' mod m (jawny, obliczony)
Klucz prywatny składa się z trojki {w -1, m, a'}, a klucz jawny stanowi wartość a. Przypuśćmy, że użytkownik A opublikował swój klucz jawny a i że użytkownik B zamierza wysłać komunikat x do A. B…
... zobacz całą notatkę
Komentarze użytkowników (0)