Kryptanaliza różnicowa jest formą kryptoanalizy mającą zastosowanie przede wszystkim do szyfrów blokowych, która polega na analizie wpływu poszczególnych różnic w parach wejściowych na różnice na wyjściu. Metoda ta została wprowadzona przez Eli Bihama i Adi Shamira pod koniec lat 1980. XX wieku i od tego czasu stała się podstawowym narzędziem w zestawie narzędzi kryptoanalityka. Standard szyfrowania danych (DES), algorytm klucza symetrycznego służący do szyfrowania danych cyfrowych, jest jednym z głównych tematów kryptoanalizy różnicowej.
Algorytm DES, zaprojektowany przez IBM na początku lat 1970. XX wieku i przyjęty jako standard federalny w 1977 r. przez Narodowy Instytut Standardów i Technologii (NIST), działa na 64-bitowych blokach danych przy użyciu 56-bitowego klucza. DES wykorzystuje 16 rund sieci Feistela, gdzie każda runda składa się z serii podstawień i permutacji określonych przez kluczowy harmonogram.
Aby zrozumieć, czy DES można złamać metodą kryptoanalizy różnicowej, ważne jest rozważenie specyfiki struktury DES i zasad kryptoanalizy różnicowej.
Struktura DES i harmonogram kluczy
DES opiera się na kombinacji operacji podstawienia i permutacji. Każda runda DES obejmuje następujące kroki:
1. Rozszerzenie (E-box): 32-bitowy półblok jest rozszerzany do 48 bitów przy użyciu permutacji rozszerzającej.
2. Miksowanie klawiszy: Rozwinięty półblok jest poddawany operacji XOR za pomocą okrągłego klucza pochodzącego z klucza głównego przy użyciu harmonogramu kluczy.
3. Podstawienie (S-box): 48-bitowy wynik jest dzielony na osiem 6-bitowych segmentów, z których każdy jest przepuszczany przez odpowiedni S-box w celu uzyskania 4-bitowego sygnału wyjściowego. Osiem 4-bitowych wyjść jest łączonych w 32-bitowy blok.
4. Permutacja (P-box): Blok 32-bitowy jest permutowany przy użyciu stałej tablicy permutacji.
5. XOR i zamiana: Permutowany blok jest poddawany operacji XOR z drugą połową bloku danych, a połówki są zamieniane.
Harmonogram kluczy generuje serię 16 okrągłych kluczy, każdy o długości 48 bitów, z oryginalnego klucza 56-bitowego. Proces ten obejmuje operacje wyboru permutowanego i przesunięcia okrężne w lewo.
Zasady kryptoanalizy różnicowej
Kryptanaliza różnicowa obejmuje badanie, w jaki sposób różnice w parach tekstu jawnego rozprzestrzeniają się w szyfrze, tworząc różnice w zaszyfrowanym tekście. Podstawową ideą jest wybranie par tekstów jawnych, które mają określoną różnicę, zaszyfrowanie ich i przeanalizowanie powstałych różnic w zaszyfrowanym tekście. Obserwując, jak te różnice ewoluują w kolejnych rundach szyfru, osoba atakująca może wywnioskować informacje o kluczu.
Kluczowe pojęcia w kryptoanalizie różnicowej obejmują:
- Mechanizm różnicowy: Różnica XOR między dwiema wartościami. Na przykład, jeśli
oraz
są dwoma tekstami jawnymi, ich różnica wynosi
.
- Charakterystyka: Sekwencja różnic opisująca sposób, w jaki różnica wejściowa rozchodzi się w kolejnych rundach szyfru.
- Prawdopodobieństwo: Prawdopodobieństwo, że dana różnica wejściowa wytworzy określoną różnicę wyjściową po określonej liczbie rund.
Zgłoszenie do DES
DES został specjalnie zaprojektowany tak, aby był odporny na kryptoanalizę różnicową, która nie była publicznie znana w momencie jego projektowania, ale została zrozumiana przez IBM i NSA. S-boxy w DES zostały starannie wybrane, aby zminimalizować prawdopodobieństwo wystąpienia cech różnicowych, co utrudnia kryptoanalizę różnicową.
Jednak Biham i Shamir wykazali, że DES nie jest odporny na kryptoanalizę różnicową. Pokazali, że chociaż pełny 16-nabojowy DES jest odporny na praktyczne ataki różnicowe, wersje szyfru o zmniejszonej rundzie są podatne. W szczególności opracowali ataki na DES z mniej niż 16 rundami.
Na przykład atak na 8-nabojowy DES można przeprowadzić ze złożonością około
wybranych tekstów jawnych, co jest znacznie skuteczniejsze niż atak brute-force na pełną przestrzeń klucza. W przypadku pełnego 16-rundowego DES złożoność kryptoanalizy różnicowej jest znacznie większa, co czyni ją niepraktyczną przy zasobach obliczeniowych dostępnych w czasie badań.
Przykład kryptoanalizy różnicowej na DES
Aby zilustrować działanie kryptoanalizy różnicowej, rozważ uproszczony przykład ze zmniejszonym okrągłym DES:
1. Wybierz mechanizm różnicowy: Wybierz konkretną różnicę wejściową
. Dla uproszczenia załóżmy
wpływa tylko na kilka bitów.
2. Generuj pary tekstu jawnego: Wygeneruj dużą liczbę par tekstu jawnego
takie
.
3. Szyfruj pary tekstu jawnego: Zaszyfruj każdą parę, aby uzyskać szyfrogramy
.
4. Analiza różnic wyjściowych: Oblicz różnicę wyjściową
dla każdej pary.
5. Zidentyfikuj cechy: Zidentyfikuj wzorce w różnicach wyjściowych, które sugerują specyficzne cechy wewnętrznej struktury szyfru.
6. Informacje kluczowe: Użyj zidentyfikowanych cech, aby wywnioskować informacje o okrągłych kluczach, a ostatecznie o kluczu głównym.
Względy praktyczne
Chociaż kryptoanaliza różnicowa jest potężnym narzędziem, jej praktyczne zastosowanie w DES wymaga znacznych zasobów obliczeniowych i dużej liczby wybranych tekstów jawnych. Nowoczesne praktyki kryptograficzne ewoluowały w kierunku stosowania bardziej złożonych i bezpiecznych algorytmów, takich jak Advanced Encryption Standard (AES), które zaprojektowano tak, aby były odporne nie tylko na kryptoanalizę różnicową, ale także na szeroką gamę innych ataków kryptoanalitycznych.
Kryptanaliza różnicowa jest dobrze ugruntowaną techniką w dziedzinie kryptografii, którą można wykorzystać do analizy, a w niektórych przypadkach łamania szyfrów blokowych, takich jak DES. Podczas gdy pełny 16-nabojowy DES jest odporny na praktyczne ataki różnicowe, wersje DES o zmniejszonej liczbie rund są podatne na ataki. Projekt DES, zwłaszcza jego S-boxów, odzwierciedla świadomość zasad kryptoanalizy różnicowej, pokazując znaczenie starannego projektowania kryptograficznego w zapewnieniu bezpieczeństwa.
Inne niedawne pytania i odpowiedzi dotyczące Data Encryption Standard (DES) — Harmonogram kluczy i deszyfrowanie:
- Pomiędzy kryptoanalizą liniową a różnicową skuteczną w łamaniu DES?
- W jaki sposób cyrpanaliza liniowa może złamać kryptosystem DES?
- Czy dwa różne wejścia x1, x2 mogą dać taki sam wynik y w standardzie szyfrowania danych (DES)?
- Czy kryptoanaliza różnicowa jest skuteczniejsza niż kryptoanaliza liniowa w łamaniu kryptosystemu DES?
- W jaki sposób DES posłużył jako podstawa nowoczesnych algorytmów szyfrowania?
- Dlaczego długość klucza w DES jest uważana za stosunkowo krótką według dzisiejszych standardów?
- Jaka jest struktura sieci Feistela i jaki ma związek z DES?
- Czym proces deszyfrowania w DES różni się od procesu szyfrowania?
- Do czego służy harmonogram kluczy w algorytmie DES?
- W jaki sposób zrozumienie harmonogramu klucza i procesu deszyfrowania DES przyczynia się do badania klasycznej kryptografii i ewolucji algorytmów szyfrowania?
Więcej pytań i odpowiedzi:
- Pole: Bezpieczeństwo cybernetyczne
- Program: Podstawy klasycznej kryptografii EITC/IS/CCF (przejdź do programu certyfikacji)
- Lekcja: Kryptosystem szyfru blokowego DES (przejdź do odpowiedniej lekcji)
- Wątek: Data Encryption Standard (DES) — Harmonogram kluczy i deszyfrowanie (przejdź do powiązanego tematu)

