Ograniczona ilość pamięci Jeśli chcemy złamać dwukrotnego DESa, ale mamy jedynie pamięć rzędu zamiast wymaganych możemy zastosować następujący sposób: Iterujemy po wszystkich możliwych 16-bitowych prefiksach, i dla każdego z nich: Generujemy tablicę, ale zachowujemy tylko tę część której elementy zaczynają się od aktualnie wybranego prefiksu Szukamy klucza.
Wymagana ilość operacji to Jest to więcej od pełnego meet in the middle ale mniej od naiwnego łamania 2DESa Zależnie od ilości pamięci, jaką dysponujemy możemy też wybrać inne kompromisowe rozwiązania.
Przykładowe obliczenia Załóżmy, że mamy następujący 16-bitowy szyfr (16-bitowe szyfry mogą służyć jedynie jako przykład obliczeń, nie do poważnych zastosowań): Szyfrujemy blok za pomocą AES, przy czym ostatnie 8 bitów klucza AESa to pierwsza połowa naszego klucza, reszta bitów wynosi 0. Szyfrujemy otrzymany wynik za pomocą AES, przy czym ostatnie 8 bitów klucza AESa to druga połowa naszego klucza, reszta bitów wynosi 0.
Szyfrowanie bloku tym algorytmem można wykonać następująco (xxyy to klucz):
$ echo -n 'WiadomośćWiadomo' | openssl enc -aes-128-ecb -K 000000000000000000000000000000xx -iv 0 -nopad -nosalt | openssl enc -aes-128-ecb -K 000000000000000000000000000000yy -iv 0 -nopad -nosalt >WYNIK