Algorytm DES: opis i przykład

Standard szyfrowania danych (DES) to standard szyfrowania danych, opracowany w Stanach Zjednoczonych w latach 80. XX wieku. Wśród szyfrów jest uważany za "emeryta", pozostając pracującym koniem kryptografii. DES nie nadaje się do szybkich inżynierii i dużych ilości danych z powodu ograniczeń 56 bitów na klucz i 64 bitów na dane. Jednak wciąż jest w użyciu.

Czym są szyfry blokowe?

DES - blokowy algorytm szyfrowania. W ciągu ostatnich 20-30 lat stworzono wiele szyfrów blokowych, ale aby stworzyć bezpieczny szyfr, zadanie jest dość skomplikowane. Ważne jest, aby szyfr miał cechy, które umożliwią mu funkcjonowanie w wielu obszarach i branżach. Szyfrowanie blokowe składa się z kilku iteracji naprzemiennego użycia jakiegoś szyfru. Każda iteracja nazywa się rundą. Jak pokazuje praktyka, nawet niektóre z prymitywnych algorytmów o spójnym użyciu mogą tworzyć niezawodne szyfry. Algorytm DES jest przykładem, który pozostał stabilny i niewrażliwy przez 20 lat.


To podejście w rozwoju szyfrów znacznie ułatwia i upraszcza analizę bezpieczeństwa. Na przykład, atak testowy na szyfrze blokowej rozpoczyna się od minimalnej liczby rund i postępuje metodycznie wraz ze wzrostem liczby rund.

Korzystanie z DES

Chociaż DES jest przestarzały i nie spełnia obecnych wymagań, może być użyty, na przykład, jako 3DES, gdy szyfruje się trzy razy z rzędu. To podejście usuwa ograniczenie wielkości klucza, ale zaszyfrowany blok danych pozostaje niezmieniony. W swoim własnymCzas DES był wystarczająco szybki i kryptograficzny. W tej chwili tak nie jest, a 3DES jest trzy razy wolniejsze. Niemniej DES, jest nadal używany w niektórych systemach, ale jego zastosowanie w nowych projektach jest zabronione.


Oficjalny algorytm DES był standardem w Stanach Zjednoczonych do 1998 r. W 1997 roku zaczął tworzyć nowy standard, który został powołany AES (Advanced Encryption System), i chociaż cryptanalysis pokazuje, że próba złamania DES prowadzi do wielu układów równań nieliniowych, metody analityczne nie są w stanie pomóc w rozwiązaniu problemu - jego słabym punktem jest mały zestaw możliwych kluczy . Ich liczba jest 2 i 56 może przejąć wszystkich opcji, za pomocą nowoczesnych technologii w stosunkowo krótkim czasie.

Jedną Algorytm okrągłodennej

Dla jasności przedstawienia i opisu algorytmu DES, stosując wzór (obliczenia wykres liniowy) 4,1 przedstawia konstrukcję jednego cyklu.
Każdy prostokąt na wykresie liniowym reprezentuje pewien rodzaj obliczeń, a strzałka w lewo wskazuje, gdzie będą przesyłane wyniki bloku. Plus, krążyły w operacji okręgu wyznaczony „który wyklucza lub” nazywa XOR programowania. Operacja ta jest nazwana „bitowe dodając” lub „dodawanie bez przesunięcia.” Sieć może znaleźć algorytm DES na C i przestudiować go dla lepszego zrozumienia. DES akceptuje 64-bitowy blok tekstowy. Przechodzi przez początkowe przegrupowanie zgodnie z pewną zasadą. Analizując algorytm okazało się, że znaczenie w tej permutacji jest małe, ponieważ nie daje żadnego efektu kryptograficznego. TekstJednostka podzielona jest na 2 równe części: prawą (R) i lewą (L). Następnie zaszyfrowane części są zmieniane i łączone, a na zakończenie rundy 64-bitowy blok danych jest szyfrowany.

Algorytm ogólny

Algorytm DES obejmuje 16 rund, które są przeprowadzane zgodnie ze schematem opisanym powyżej. Wszystkie rundy są ponumerowane przez i, gdzie i = (1; 16). Każda i-ta runda pary (Li-1 Ri-1) otrzymuje nową parę (Li, Ri) za pomocą klucza Ki. Główne przekształcenia mają miejsce w funkcji F.

Algorytm funkcji F

Jak widać na rysunku 4.1 R przechodzi przez operację "Ekspansja". Ten blok powiela serię bitów od R i uzupełnia je o 48-bitową wartość. Otrzymany wynik przechodzi przez bitowe dodanie z 48-bitowym klawiszem Ke. Rezultat tej operacji jest przekazywany do bloku S. Blok S zawiera 8 małych macierzy zastępczych, które są wybierane w specjalny sposób.
Każda macierz otrzymuje na wejściu 6 bitów informacji i wydaje 4-bitową wartość. W rezultacie blok S odbiera dane 48-bitowe na wejściu, a na wyjściu wynik jest wartością 32-bitową.
Ta 32-bitowa wartość przechodzi przez inną operację permutacji, po czym jest sumowana przez operację xor L. Wreszcie prawa i lewa część zmieniają się miejscami i runda się kończy. Jak już wspomniano, 16 takich algorytmów wykonuje takie rundy. Tutaj nie przeładujemy artykułu przykładami, które zajmują dużo miejsca. Prace algorytmu szyfrowania DES i przykłady można przeglądać online.

Kod Fiesteela

Algorytm DES oparty jest na szyfrowaniu Fiesteela.Jego pomysł jest bardzo wyrafinowany. Każda runda składa się z L z wartości F (R Ki) oraz zmiana L stanowiska R. Feystelya kluczową cechę algorytmu jest to, że szyfrowanie i deszyfrowanie identycznych etapach, L i R są odwracane, a następnie przeprowadzić operację dodawania L i F (R, Ki). Dzięki temu procedury szyfrowania i odszyfrowywania są proste i łatwe do zrozumienia.
W szyfru Feystelya często wprowadza interesujący zmiany - zniesienie permutacji L i R w ostatniej iteracji. Dzięki temu algorytmy szyfrowania i odszyfrowywania są całkowicie symetryczne. Różnica polega tylko na użyciu klawiszy Ke. Zasada ta okazała się bardzo przyjazna dla użytkownika na poziomie programu, ponieważ szyfrowanie i deszyfrowanie odbywa się za pomocą jednej funkcji. Na przykład, laconic DES wdrożenia algorytmu szyfrowania w C

klucz szyfrowania

szyfrowanie danych przy użyciu klawiszy 48-bitowe DES szesnaście. Jeden klucz na rundę. Każdy klucz jest tworzony przez próbkowanie 48 bitów z 56-bitowego klucza głównego. Tworzenie kluczy lub innych rund zależy od mechanizmu wyszczególnionego w dokumentacji DES. W skrócie, algorytm dla próbki i klucza jest następujący. Bat jest dodawany do głównego klucza w pozycji 81624 324048 5664. Odbywa się to w taki sposób, że każdy bajt zawiera nieparzystą liczbę jednostek. Zgodność z regułami pomaga zidentyfikować błędy podczas przełączania kluczy. Następnie, za pomocą specjalnej tabeli, wraz z kluczowych zmian i ulega przegrupowaniu, z wyjątkiem kawałków, które zostały dodane. Tak więcniezbędny klucz został uzyskany.

Komponenty DES

Każdy składnik algorytmu DES rozwiązuje określony problem:
  • Algorytm Fiestela upraszcza szyfrowanie i odszyfrowywanie, zapewniając jednocześnie mieszanie obu stron tekstu.
  • Bezpośrednie dodawanie części tekstowych za pomocą interfejsów klawiszy otwiera dane za pomocą klucza i szyfruje je.
  • Tablice typu S i bloków sprawiają, że algorytm jest nieliniowy, zwiększając jego odporność na różne ataki.
  • Ekspansja, blok S i permutacje zapewniają dyfuzję algorytmu - efekt lawinowy. Innymi słowy, jeśli dane wejściowe F zmienią co najmniej 1 bit, to spowoduje to jednocześnie zmianę zestawu bitów. Jeśli w szyfrze nie zostanie zaobserwowany efekt lawiny, zmiany w otwartych danych spowodują zmiany w postaci zaszyfrowanej, które można śledzić i wykorzystać do hakowania. W kryptografii istnieje kryterium efektu lawinowego. Algorytm spełnia go, jeśli przynajmniej jedna połowa zaszyfrowanych danych zostanie zmieniona przy zmianie 1-sza otwartych danych. Algorytm DES go spełnia, zaczynając od 4 rund. Podsumowanie - w przypadku zmiany 1 bit otwartych danych w szyfrze DES, 29 bitów zostanie zmienionych.

    Problemy z bezpieczeństwem w DES

    Oczywistym problemem DES jest wybór kluczy szyfrowania ogólnego. Co się stanie, jeśli wybierzesz zero jako klucz (wszystkie kluczowe bity to 0)? Spowoduje to, że próbkowanie wszystkich kluczy do szyfrowania w każdej rundzie będzie takie samo, a wszystkie klucze będą wynosić zero. Nie tylko to, 16 zaszyfrowanych pójdzie z jednym kluczem, ponieważ algorytmy szyfrowania i deszyfrowania DESróżnią się jedynie kolejnością użycia kluczy, będą całkowicie identyczne. Cały sens szyfrowania zostanie utracony.
    DES ma 4 klucze, które są nazywane słabymi, co skutkuje opisanym efektem. DES ma 12 średnio słabych i 48 pseudo-słabych klawiszy, które powodują ograniczenie zmian generowanych kluczy w rundach. Innymi słowy, istnieje możliwość, że w 16 cyklach szyfrowania nie stosuje się 16 różnych kluczy 4 i 8: 2, a nawet mniej Oczywistą wadą DES jest właściwością komplementarności. Oznacza to, że jeśli zaszyfrujesz za pomocą tekstu i dodatków klucza open source, wynikiem będzie wartość będąca dodatkiem do zaszyfrowanego tekstu. Ta bezsensowna właściwość może doprowadzić do udanych ataków na projekty korzystające z DES w celu zapewnienia bezpieczeństwa.

    Problem klucza szyfrowania

    ma podstawowe znaczenie dla DES i jest uważany za główny powód odrzucenia tego algorytmu. Ponieważ rozmiar klucza DES wynosi 56 bitów, a następnie przez wszystkie klucze muszą zobaczyć 2 56 opcje. Czy to tak dużo? Jeśli wykonasz 10 milionów kluczowych kontroli na sekundę, sprawdzenie zajmie około 2000 lat. Wygląda na to, że algorytm jest dość stabilny. Był więc ubiegłego wieku podczas tworzenia komputerowej takiej mocy było prawie niemożliwe pod względem technicznym i finansowym. Jeśli komputer z miliona żetonów, a następnie iteracyjne nad zestawu kluczy DES trwa 20 godzin. Pierwszy taki algorytm komputerowy do odszyfrowania DES pojawił się w 1998 roku, któryporadził sobie z zadaniami przez 56 godzin. Nowoczesne technologie sieci i równoległe procesy pozwalają jeszcze bardziej skrócić ten czas.

    Kryptoanaliza i DES

    Można bez przesady stwierdzić, że DES było przyczyną pojawienia się nauk stosowanych, zwanych "analizą kryptograficzną". Od początku pojawienia się DES próbowano go przełamać, przeprowadzono badania naukowe nad jego badaniem. Wszystko to doprowadziło do powstania takich obszarów matematyki, jak:
  • liniowa kryptoanaliza - badanie i wykrywanie związku między otwartym źródłem a szyfrowaniem;
  • kryptoanaliza różnicowa - badanie i analizowanie zależności między kilkoma tekstami open source a ich zaszyfrowanymi wersjami;
  • kryptoanaliza na połączonych kluczach - badanie zależności między zaszyfrowanymi tekstami odebranymi na kluczu podstawowym i kluczami powiązanymi z podstawowymi w jakikolwiek sposób.
  • DES przetrwał 20 lat globalnej kryptoanalizy i ataków, ale pozostał silnym szyfrem. Ale kto szuka - będzie on zawsze znajdzie
  • Byham i Shamir, naukowcy z Izraela w 1991 roku wykazały, że przy użyciu kryptoanalizy różnicowej DES może wykonać atak w których kluczowym jest obliczana przy założeniu, że atak jest 2 47 specjalnie wybranych par otwarte i zaszyfrowane teksty.
  • Japoński naukowiec Mitsui Matsui w 1993 r. Wykazał, że klucz można obliczyć za pomocą liniowej kryptoanalizy. Aby to zrobić, wystarczy znać tylko 2 47 par otwartego tekstu i odpowiednią zaszyfrowaną wersję.
  • Co więcej, techniki hakowania zostały nieco zmienione, ulepszone i uproszczone, a także kilka nowychsposoby łamania. Są one jednak zbyt skomplikowane, w ich tle kompletny przegląd wszystkich kluczowych opcji wydaje się najbardziej odpowiednim atakiem na DES.

    Powiązane publikacje