Co to jest kryptoanaliza różnicowa?

Kryptoanaliza różnicowa to nazwa różnych metod ataku kryptograficznego na szyfry blokowe przy użyciu ataku ze znanym tekstem jawnym. Kryptoanaliza różnicowa polega na zaszyfrowaniu znanego tekstu jawnego lub tekstu niezaszyfrowanego przy użyciu wybranego klucza szyfrowego w celu określenia sposobu działania procesu szyfrowania. Dwa wejścia są wybierane ze stałą różnicą między nimi, przy czym różnicę między dwoma wejściami można określić za pomocą różnych operacji, w tym użycia operacji eXclusive OR (XOR). Kiedy para wejściowa przechodzi przez kod kryptoanalizy różnicowej, para wyjściowa jest tworzona przy użyciu klucza szyfrowego. Dane wejściowe są znane, więc kryptograf obserwuje wzorce zmian w danych wyjściowych.

Po odebraniu danych wyjściowych kryptograf przypisuje prawdopodobieństwa do pewnych par wejścia-wyjścia, aby określić, który klucz szyfru spowodował określone zmiany w parach danych wyjściowych. Różne klucze szyfrujące mają różne prawdopodobieństwa wystąpienia pewnych danych wyjściowych dla każdego wejścia. Te prawdopodobieństwa pozwalają kryptografowi na dokonywanie świadomych domysłów co do różnych aspektów klucza na podstawie wzorców wejściowych i wyjściowych.

Ta metoda została pierwotnie opracowana pod koniec lat 1980. przez Eli Bidhama i Adi Shamira. Miał on na celu atakowanie szyfrów blokowych i sprawdzanie słabości algorytmu szyfrowania danych (DES) amerykańskiego Narodowego Biura Standardów, używanego jako federalny standard przetwarzania informacji do szyfrowania poufnych, niesklasyfikowanych danych. W 1994 r. Don Coppersmith, jeden z inżynierów oprogramowania IBM, który pomagał zaprojektować DES, powiedział, że IBM był już zaznajomiony z kryptoanalizą różnicową i pracował nad uodpornieniem DES na ataki.

Aby pomyślnie określić, jaki klucz szyfru jest używany w tym procesie, należy spełnić określone wymagania. Jest to najbardziej skuteczne, gdy kryptograf może sam wybrać tekst jawny i otrzymać zaszyfrowany tekst wyjściowy. Kryptoanaliza różnicowa najlepiej nadaje się do iteracyjnych szyfrów blokowych. Tego typu szyfry szyfrują tekst jawny przy użyciu tej samej transformacji w kilku rundach przy użyciu podklucza.

Projektanci szyfrów i kodów kryptograficznych pracują nad tym, aby ich kod nie był podatny na tego typu znane ataki. Jednym z nich jest użycie kluczy wiadomości i ograniczenia ilości zaszyfrowanego tekstu otrzymanego przy użyciu pojedynczego klucza wiadomości. Jest to słabość kryptoanalizy różnicowej ze względu na jej zależność od dużej ilości tekstu jawnego.

Metoda kryptoanalizy różnicowej polega na wykorzystaniu określonych tabel do wyboru pary wejściowej. Wiedząc o tym, system szyfrowania może chronić się przed atakiem na różne sposoby. Nie ma znaczenia, czy kod jest skonfigurowany tak, aby wybierać z większej liczby tabel niż oczekiwano, wybierać spośród wszystkich różnych tabel, czy też mieszać wyniki tabeli, gdy tylko wyniki zostaną określone.