Standard sygnatury cyfrowej DSS
Standard sygnatury cyfrowej DSS
korzysta z algorytmu SHA opisanego poniżej. DSS ukazał się w roku
1993.
Zapewnia on tylko funkcje sygnatury cyfrowej i nie może być używany
do szyfrowania lub wymiany kluczy jak RSA, jednakże jest techniką
klucza jawnego.
Metoda DSS korzysta z funkcji haszującej.
Na dane wejściowe składają się wyniki haszowania oraz liczby losowej
k, generowanej specjalnie dla danej sygnatury. Jest ona też uzależniona
od klucza prywatnego nadawcy (KRa) i zbioru parametrów
znanych grupie komunikujących się stron.Zbiór ten możemy traktować
jako globalny klucz jawny (KUG).
W rezultacie otrzymujemy sygnaturę złożoną z dwóch składników,
oznaczonych s i r.
Po stronie odbiorcy generuje się
wynik haszowania dla komunikatu. Wynik ten wraz z sygnaturą stanowi
dane wejściowe dla funkcji weryfikującej, która jest także uzależniona
od globalnego klucza jawnego oraz klucza jawnego nadawcy. (KUa),
który jest parą z kluczem prywatnym nadawcy. Wynikiem funkcji
weryfikującej jest wartość, która powinna być równa składnikowi
r sygnatury, jeżeli jest ona ważna.
Funkcja sygnatury ma taką własność, że tylko nadawca, znając swój
klucz prywatny, może wyprodukować ważną sygnaturę.
Opis funkcji haszującej SHA
Algorytm SHA został utworzony przez
NIST i opublikowany jako federalny standard przetwarzania informacji.
Jest oparty na algorytmie MD5, ale budowa przypomina MD4.
Algorytm tez korzysta z danych wejściowych
w postaci komunikatu o długości mniejszej niż 264 bity i daje
w wyniku 160-bitowy wyciąg. Dane wejściowe przekształca się w
512-bitowych blokach.
Algorytm składa się z kilku etapów:
Etap pierwszy:
Komunikat jest dopełniany tak, by jego długość w bitach przystawała
do 448 mod 512. Dopełnienie jest dodawane zawsze, nawet gdy komunikat
jest już pożądanej długości. Składa się ono z pojedynczego bitu
1, po którym nastepuje odpowiednia liczba bitów 0.
Etap drugi:
Do komunikatu dodaje się 64-bitowy blok. Jest on traktowany jako
nieujemna 64-bitowa liczba całkowita i jest w niej zawarta długość
komunikatu przed dopełnieniem.
Wynikiem pierwszych dwóch kroków jest komunikat o długości równej
całkowitej wielokrotności 512-bitów. Można go przedstawić jako
sekwencję 512-bitowych bloków Y0, Y1, ...,
YL-1. Całkowita długość komunikatu wynosi zatem L*512bitów.
Etap trzeci:
Stosuje się bufor 160-bitowy do przechowywania pośrednich i końcowych
wartości funkcji haszującej. Można go przedstawić jako pięć 32-bitowych
rejestrów (A, B, C, D, E).
Etap czwarty:
Przetwarzanie komunikatu w blokach 512-bitowych. Jest to główny
etap algorytmu SHA. Składa się on z 80 etapów przetwarzania.
Etap piąty:
Po przetworzeniu wszystkich L bloków 512-bitowych, wynikiem L-tego
stadium jest 160-bitowy wyciąg.
Algorytm pokazany jest na
rysunku. |