Data Encryption Standard
DES (ang. Data Encryption Standard) – symetryczny szyfr blokowy zaprojektowany w 1975 roku przez IBM na zlecenie ówczesnego Narodowego Biura Standardów USA (obecnie NIST). Od 1976 do 2001 roku stanowił standard federalny USA, a od roku 1981 standard ANSI dla sektora prywatnego (znany jako Data Encryption Algorithm). Od kilku lat uznawany jest za algorytm niezapewniający odpowiedniego bezpieczeństwa, głównie ze względu na niewielką długość klucza, która sprawia, że jest bardzo podatny na atak siłowy. W 2001 roku w USA został zastąpiony w ramach standardu federalnego przez AES. Jest jednym z najlepiej przeanalizowanych algorytmów szyfrujących[2]. HistoriaDES powstał jako część zapoczątkowanego w 1972 roku przez Narodowe Biuro Standardów USA programu zabezpieczania informacji, w ramach którego planowano stworzyć jeden algorytm kryptograficzny do szyfrowania danych – taki sam dla ich przechowywania i przesyłania. 15 maja 1973 roku po konsultacjach z NSA w Rejestrze Federalnym opublikowane zostały wymagania projektowe stawiane potencjalnemu algorytmowi: miał zapewniać duży stopień bezpieczeństwa, być kompletnie określony i nietrudny do zrozumienia oraz łatwy do zaimplementowania sprzętowego. Miał ponadto spełniać warunki umożliwiające jego eksport. Dodatkowo jego bezpieczeństwo, zgodnie z zasadą Kerckhoffsa, nie mogło opierać się na tajności algorytmu, lecz na kluczu[2][3]. Wymagania te były, jak na owe czasy, tak rygorystyczne, że pomimo dużej liczby zgłoszeń pierwsza tura konkursu nie wyłoniła zadowalającego algorytmu. W związku z tym 27 sierpnia 1974 NBS ponownie opublikował informacje o zapotrzebowaniu na algorytm kryptograficzny. Wkrótce potem IBM zgłosił do konkursu swój algorytm, oparty na szyfrze blokowym Lucifer, spełniający podane kryteria. Nad rozwojem zgłoszonego szyfru pracowali Roy Adler, Don Coppersmith, Horst Feistel, Edna Grossman, Alan Konheim, Carl Mayer, Bill Notz, Lynn Smith, Walt Tuchman oraz Bryant Tuckerman. W celu oceny bezpieczeństwa algorytmu NBS zwróciło się o pomoc do NSA, a IBM rozpoczął procedurę jego patentowania[4]. Szczegóły algorytmu oraz oświadczenie IBM zezwalające na jego wykorzystanie w dowolnym celu zostały opublikowane 17 maja 1975 roku w Rejestrze Federalnym, a kilka miesięcy później, 1 sierpnia 1975 roku, Narodowe Biuro Standardów wydało komunikat zachęcający wszystkich zainteresowanych do wypowiedzenia się na temat jego bezpieczeństwa i przydatności. Po wielu ocenach krytycznych oraz zarzutach wobec NSA o celowe osłabienie szyfru poprzez skrócenie długości klucza oraz modyfikację S-bloków zorganizowano dwie konferencje naukowe, mające na celu ocenić algorytm. Na pierwszej z nich szyfr oceniono od strony matematycznej, na drugiej natomiast omawiano sensowność wydłużenia klucza[2]. 23 listopada 1976 Data Encryption Standard został zaakceptowany jako standard federalny – możliwe było jego używanie do szyfrowania wszelkich nietajnych danych rządowych USA. Publikacja pełnego opisu algorytmu odbyła się 15 stycznia 1977 roku w ramach dokumentu FIPS PUB 46 – Data Encryption Standard. Pozostałe dokumenty związane ze standardem zostały opublikowane w roku 1980 (FIPS PUB 81 – DES Modes of Operation[5]) oraz w roku 1981 (FIPS PUB 74 – Guidelines for Implementating and Using the NBS Data Encryption Standard[6]). Algorytm kilkukrotnie (1983, 1988 – FIPS-46-1, 1993 – FIPS-46-2 oraz 1999 – FIPS-46-3) zdobywał certyfikat przedłużający jego ważność jako standardu federalnego[7]. Ostatecznie został wycofany w 2001 roku, kiedy standardem federalnym stał się Advanced Encryption Standard[2]. W 1981 roku ANSI uznało DES za standard sektora prywatnego (ANSI X3.92-1981), jednocześnie przemianowując go na Data Encryption Algorithm. Chronologia
Kontrowersje związane z udziałem NSAGdy 1 sierpnia 1975 Narodowe Biuro Standardów wydało komunikat zachęcający wszystkich zainteresowanych do oceny algorytmu, pojawiło się wiele głosów oskarżające NSA o celowe osłabienie szyfru w taki sposób, aby nikt poza nimi nie mógł go złamać. Podstawowym zarzutem było osłabienie klucza szyfrującego – w algorytmie Lucifer, na którym opierał się DES, klucz ten miał początkowo 128 bitów, NSA zdołało jednak przekonać IBM do jego skrócenia do 56 bitów. Podejrzewano także, że NSA umieściło w S-blokach tylne wejście, umożliwiające im proste odszyfrowanie szyfrogramów. Alan Konheim, jeden z twórców DES, stwierdził, że wysłane do NSA struktury S-bloków zostały zmienione przez Agencję. Sprawa podejrzanej ingerencji NSA w strukturę szyfru była w 1978 roku badana przez Komisję Wywiadu Senatu USA, która w nieutajnionym podsumowaniu zwolniła Agencję Bezpieczeństwa z zarzutów[2]. Zarzuty związane z osłabieniem S-bloków były nieuzasadnione. Okazało się bowiem, że DES jest wyjątkowo odporny na kryptoanalizę różnicową, opublikowaną w roku 1990 przez Eli Bihama i Adi Shamira (nie byli oni pierwszymi odkrywcami). Zarówno IBM, jak i NSA znały już wcześniej tę technikę kryptoanalizy i zaprojektowali S-bloki w taki sposób, aby były na nią odporne. Algorytm![]() DES jest szyfrem blokowym z blokami o długości 64 bitów. Do szyfrowania i deszyfrowania danych wykorzystywanych jest 56 bitów klucza, który zapisany jest w postaci 64-bitowego ciągu, w którym co 8 bit jest bitem kontrolnym i może służyć do kontroli parzystości. Kilka z kluczy uważanych jest za klucze słabe oraz klucze półsłabe[2]. Algorytm szyfrowania danych jest następujący[13]: na początku tekst jawny, który ma zostać zaszyfrowany, dzielony jest na bloki 64-bitowe. Następnie dla każdego bloku wykonywane są następujące operacje:
Deszyfrowanie polega na zastosowaniu tych samych operacji w odwrotnej kolejności (różni się od szyfrowania tylko wyborem podkluczy, który teraz odbywa się od końca). Tryby pracy algorytmuW dokumencie DES Modes of Operation określono cztery tryby pracy algorytmu[14]:
Kryptoanaliza algorytmuPomimo tego, że DES jest jednym z najlepiej przeanalizowanych szyfrów blokowych, nadal najbardziej praktycznym atakiem na niego jest atak brutalny. Istnieją skuteczniejsze metody kryptoanalizy szyfru, jednak z powodu narzuconych wymagań rozważane były tylko teoretycznie. Atak siłowyAtak brutalny jest jedną z najpopularniejszych metod łamania wszelkich szyfrów. Polega on na wygenerowaniu wszystkich możliwych kluczy i sprawdzeniu, który z nich umożliwia odszyfrowanie szyfrogramu. W przypadku tego ataku długość klucza definiuje trudność złamania szyfru. Już krótko po opublikowaniu algorytmu pojawiły się teoretyczne rozważania na temat możliwości budowy urządzeń łamiących szyfr w rozsądnym czasie. W 1977 Diffie i Hellman zasugerowali, że za 20 milionów dolarów można zbudować wyspecjalizowane urządzenie, które będzie w stanie odtworzyć klucz szyfrujący w ciągu jednego dnia. W 1981 roku Diffie dokonał korekty tego stwierdzenia i oświadczył, że odtworzenie klucza będzie możliwe w ciągu dwóch dni, pod warunkiem, że atakujący będzie miał do dyspozycji specjalistyczny sprzęt o wartości 50 milionów dolarów. W 1993 Michael Weiner zaproponował maszynę, która potrafiła by złamać DES w ciągu 2,5 godzin – miała kosztować milion dolarów. Nikt jednak publicznie nie przyznał się do skonstruowania takiego urządzenia[2]. Praktyczna możliwość złamania szyfru została zademonstrowana publicznie pod koniec lat dziewięćdziesiątych. W styczniu 1997 RSA Security zaoferowała 10 000 dolarów pierwszej drużynie, która zaprezentuje urządzenie łamiące szyfr DES. Zwycięzcą konkursu zostali uczestnicy projektu DESCHALL założonego przez Rocke’a Versera, Matta Curtina oraz Justina Dolske’a, którzy 18 czerwca 1997 roku jako pierwsi w znanej historii złamali szyfr DES – zajęło im to 96 dni. Projekt ten do łamania szyfru wykorzystywał nieużywane cykle zegara tysięcy rozsianych po całym internecie komputerów[8]. Kolejną edycję konkursu – w 1998 – wygrał projekt distributed.net, który zdobył klucz w 41 dni. W tym samym roku Electronic Frontier Foundation zademonstrowało warte 250 000 dolarów urządzenie DES Cracker, które z szyfrem uporało się w 56 godzin[9]. Rok później, 19 stycznia 1999, distributed.net oraz RSA Labs złamały szyfr w niecałe 24 godziny[10]. Pozostałe atakiIstnieje kilka ataków, które w teorii są skuteczniejsze od metody brutalnej. Jednym z nich jest atak w wykorzystaniem kryptoanalizy różnicowej, który polega na porównywaniu par szyfrogramów powstałych w wyniku zaszyfrowania tym samym kluczem pewnych tekstów jawnych, różniących się w pewien szczególny sposób. Przeprowadzenie tego ataku wymaga przygotowania dużej ilości danych i z tego powodu jest on niepraktyczny[2][15]. Innym niepraktycznym atakiem jest kryptoanaliza metodą powiązanych kluczy (ang. related-key attack), w której rozpatrywane są różnice pomiędzy kluczami szyfrującymi[2]. Klucze słabe i półsłabe
Niektóre klucze stosowane w algorytmie DES nazywane są kluczami słabymi. Przy wykorzystaniu takiego klucza podklucz wykorzystywany do szyfrowania będzie taki sam w każdym cyklu. Do kluczy słabych w DES należą następujące klucze (zapis w systemie szesnastkowym):
Dodatkowo stwierdzono, że istnieje sześć par takich kluczy, które dany tekst jawny szyfrują do takiego samego szyfrogramu – klucze takie nazywane są kluczami półsłabymi. Oznacza to także, że tekst zaszyfrowany jednym kluczem półsłabym może zostać odszyfrowany za pomocą drugiego klucza z pary. Modyfikacje DESIstnieje wiele różnych modyfikacji algorytmu DES. Do najważniejszych z nich zaliczane są[2]:
Przypisy
Linki zewnętrzne
|