są generowane przez te układy, i-ty bit aji generowany przez nasz zestaw jest wybierany tak, że ji oznacza pozycję i-tej jedynki w ciągu b. Aczkolwiek nie ma żadnych opracowań teoretycznych dowodzących przydatności tego algorytmu, uzyskiwane wyniki wydają się mieć dobre własności.
Ponieważ długość kluczy DES może się obecnie wydawać niewystarczająca by oprzeć się próbom kryptoanalizy metodą brute force oraz w obawie przed ewetualnymi tylnymi drzwiami, podejmuje się próby drobnych modyfikacji algorytmu w celu zwiększenia bezpieczeństwa. Jedną z praktycznie stosowanych metod jest trzykrotny DES (DES E-D-E), w którym używa się dwóch zwykłych kluczy Si i S2. Tekst jawny jest najpierw szyfrowany kluczem SWynik tej operacji jest deszyfrowany kluczem S2, a to powtórnie szyfrowane kluczem S\. Odkodowywanie przebiega w sposób odwrotny.
Nie tylko sam algorytm szyfrowania podlega modyfikacjom. Istnieją również alternatywne metody generowania kluczy o lepszych właściwościach niż LFSR. Na przykład komitet ANSI za standard uznał generator X9.17. Oznaczmy przez Ek kodowanie trzykrotnym DES z kompletem kluczy k = {Si, S2}. Klucze k powinny być zarezerwowane tylko na potrzeby generatora. Potrzebujemy również losowego i tajnego zarodka s o długości 64 bitów. W celu wygenerowania m 64-bitowych ciągów xi najpierw obliczamy wartość tymczasową I = Ek (D), gdzie D jest 64-bitową reprezentacją aktualnego czasu z największą możliwą w systemie rozdzielczością. Teraz m-krotnie iterujemy podstawienia:
Xi = Ek{I ® s) s = Ek (xi ® I)
Aby otrzymać prawidłowe klucze DES powinniśmy jeszcze w każdej sekwencji X{ co ósmy bit ustawić na bit kontroli parzystości.
3.2 Podpis cyfrowy DSA
Podpis cyfrowy, podobnie jak ten tradycyjny, służy do identyfikacji autora dokumentu, w tym celu podrobienie podpisu przez osobą trzecią jak i kopiowanie podpisu z jednego dokumentu na drugi powinno być niewykonalne.
Digital Signature Algorithm (DSA) został zaproponowany przez amerykański National Institute of Standards and Technology (NIST) i stał się standardem Fe-deral Information Processing Standard (FIPS 186) pod nazwą Digital Signature Standard (DSS). DSA nie podpisuje właściwego dokumentu, tylko wartość jednokierunkowej funkcji hashującej SHA1 dla tego dokumentu. Ponieważ siła DSA opiera się na trudności obliczania dyskretnych logarytmów, jego bezpieczeństwo zależy od wielkości liczb dla których potrafimy takie logarytmy obliczać.
Algorytm DSA jest kilkuetapowy:
Czynności wstępne: wybiera się następujące liczby
— p - liczba pierwsza o L-bitowym rozwinięciu dwójkowym, gdzie L jest podzielne przez 64 i L € [512,1024];
— q - dzielnik p— 1 o 160-bitowym rozwinięciu binarnym; jeśli p nie posiada takiego dzielnika, to wybieramy inne p.