Słaby klucz - Weak key

W kryptografii , o słabym kluczem jest klucz , który, stosowany ze szczególnym szyfru , sprawia, że zachowuje się w jakiś szyfr niepożądany sposób. Słabe klucze zwykle stanowią bardzo małą część ogólnej przestrzeni kluczy, co zwykle oznacza, że ​​jeśli generuje się losowy klucz do zaszyfrowania wiadomości, jest bardzo mało prawdopodobne, że słabe klucze spowodują problem z bezpieczeństwem. Niemniej jednak uważa się, że pożądane jest, aby szyfr nie miał słabych kluczy. Szyfr bez słabych kluczy mówi się, że mają mieszkanie , albo liniowy , klawisz spacji .

Początki historyczne

Praktycznie wszystkie maszyny szyfrujące oparte na wirnikach (od 1925 r.) Mają wady implementacyjne, które prowadzą do tworzenia znacznej liczby słabych kluczy. Niektóre maszyny mają więcej problemów ze słabymi kluczami niż inne, tak jak robią to nowoczesne szyfry blokowe i strumieniowe.

Pierwsze maszyny szyfrujące strumieniowo, które były również maszynami wirnikowymi, miały niektóre z tych samych problemów ze słabymi kluczami, co bardziej tradycyjne maszyny wirnikowe. T52 była jedna maszyna szyfr taki strumień, który miał słabe problemów kluczowych.

Brytyjczycy po raz pierwszy wykryty T52 ruchu w lecie i na jesieni 1942. Jedno ogniwo było między Sycylii i Libii , o nazwie kodowej „ Jesiotr ”, a inny od Morza Egejskiego do Sycylii , o nazwie kodowej „ Makrela ”. Operatorzy obu łączy mieli zwyczaj szyfrowania kilku wiadomości z tymi samymi ustawieniami maszyny, generując dużą liczbę głębokości .

Było kilka (w większości niekompatybilnych) wersji T52: T52a i T52b (różniące się jedynie tłumieniem szumów elektrycznych), T52c, T52d i T52e. Podczas gdy T52a / b i T52c były kryptologicznie słabe, dwa ostatnie były bardziej zaawansowanymi urządzeniami; ruch kół był przerywany, a decyzja o tym, czy je przesunąć, czy nie, była kontrolowana przez obwody logiczne, które pobierały dane wejściowe z samych kół.

Ponadto wyeliminowano szereg błędów koncepcyjnych (w tym bardzo subtelnych). Jedną z takich wad była możliwość zresetowania strumienia klucza do stałego punktu, co doprowadziło do ponownego wykorzystania klucza przez niezdyscyplinowanych operatorów maszyn.

Słabe klucze w DES

Blok szyfrowania DES zawiera kilka przycisków specyficzne zwane „słabe” i „kluczy pół-słabych przycisków”. Są to klucze, które powodują, że tryb szyfrowania DES działa identycznie jak tryb deszyfrowania DES (chociaż potencjalnie jest to inny klucz).

Podczas działania tajny 56-bitowy klucz jest dzielony na 16 podkluczy zgodnie z harmonogramem kluczy DES ; jeden podklucz jest używany w każdej z szesnastu rund DES. Słabe klucze DES tworzą szesnaście identycznych podkluczy. Dzieje się tak, gdy klucz (wyrażony szesnastkowo ) to:

  • Naprzemienne jedynki + zera (0x0101010101010101)
  • Naprzemienne „F” + „E” (0xFEFEFEFEFEFEFEFE)
  • „0xE0E0E0E0F1F1F1F1”
  • „0x1F1F1F1F0E0E0E0E”

Jeśli implementacja nie uwzględnia bitów parzystości, odpowiednie klucze z odwróconymi bitami parzystości mogą również działać jako słabe klucze:

  • wszystkie zera (0x0000000000000000)
  • wszystkie (0xFFFFFFFFFFFFFFFF)
  • „0xE1E1E1E1F0F0F0F0”
  • „0x1E1E1E1E0F0F0F0F”

Przy użyciu słabych kluczy wynik permutowanego wyboru 1 (PC-1) w harmonogramie kluczy DES prowadzi do okrągłych kluczy zawierających albo same zera, same jedynki, albo naprzemiennie wzór zero-jedynkowy.

Ponieważ wszystkie podklucze są identyczne, a DES jest siecią Feistel , funkcja szyfrowania jest samoodwracająca; oznacza to, że pomimo jednokrotnego zaszyfrowania i uzyskania bezpiecznego, zaszyfrowanego tekstu, szyfrowanie dwukrotne daje oryginalny tekst jawny.

DES ma również półsłabe klucze , które generują tylko dwa różne podklucze, z których każdy jest używany w algorytmie osiem razy: Oznacza to, że występują w parach K 1 i K 2 i mają tę właściwość, że:

gdzie E K (M) jest algorytm szyfrowania szyfrowanie wiadomości M z kluczem K . Istnieje sześć par kluczy półsłabych:

  • 0x011F011F010E010E i 0x1F011F010E010E01
  • 0x01E001E001F101F1 i 0xE001E001F101F101
  • 0x01FE01FE01FE01FE i 0xFE01FE01FE01FE01
  • 0x1FE01FE00EF10EF1 i 0xE01FE01FF10EF10E
  • 0x1FFE1FFE0EFE0EFE i 0xFE1FFE1FFE0EFE0E
  • 0xE0FEE0FEF1FEF1FE i 0xFEE0FEE0FEF1FEF1

Istnieje również 48 prawdopodobnie słabych kluczy, które dają tylko cztery odrębne podklucze (zamiast 16). Można je znaleźć w publikacji NIST.

Te słabe i półsłabe klawisze nie są uważane za „fatalne wady” DES. Istnieje 2 56 (7,21 × 10 16 , około 72 biliardów) możliwych kluczy dla DES, z których cztery są słabe, a dwanaście półsłabe. Jest to tak mały ułamek możliwej przestrzeni kluczy, że użytkownicy nie muszą się martwić. Jeśli sobie tego życzą, mogą sprawdzić słabe lub półsłabe klucze podczas generowania kluczy. Jest ich bardzo niewiele i łatwo je rozpoznać. Należy jednak pamiętać, że obecnie DES nie jest już zalecany do ogólnego użytku, ponieważ wszystkie klucze DES mogą być brutalnie wymuszone , minęły dziesięciolecia odkąd maszyna Deep Crack łamała je w ciągu kilku dni, a jak to zwykle robią komputery, nowsze rozwiązania są znacznie tańsze w tej skali czasu. Przykłady postępów można znaleźć w artykule Deep Crack.

Lista algorytmów ze słabymi kluczami

  • DES, jak opisano szczegółowo powyżej.
  • RC4 . Słabe wektory inicjalizacyjne RC4 pozwalają napastnikowi na przeprowadzenie ataku ze znanym tekstem jawnym i są powszechnie używane do naruszania bezpieczeństwa WEP .
  • POMYSŁ . Słabe klucze IDEA można zidentyfikować w ataku na wybrany tekst jawny . Sprawiają, że relacja między sumą XOR bitów tekstu jawnego a bitami tekstu zaszyfrowanego jest przewidywalna. Nie ma listy tych kluczy, ale można je zidentyfikować po ich „strukturze”.
  • Rozdymka . Słabe klucze Blowfish wytwarzają złe S-boxy , ponieważ S-boxy Blowfish są zależne od klucza. Istnieje wybrany atak w postaci zwykłego tekstu przeciwko wariantowi Blowfish o zmniejszonej liczbie rund, który jest łatwiejszy dzięki użyciu słabych klawiszy. Nie dotyczy to pełnego 16-rundowego rozdymka.
  • GMAC . Często stosowany w konstrukcji AES-GCM. Słabe klucze można zidentyfikować na podstawie kolejności grupowej klucza uwierzytelniania H (dla AES-GCM, H jest uzyskiwany z klucza szyfrowania przez szyfrowanie bloku zerowego).
  • RSA i DSA . Sierpień 2012 Nadia Heninger, Zakir Durumeric, Eric Wustrow, J. Alex Halderman odkryli, że certyfikaty TLS, które ocenili, współdzielone klucze z powodu niewystarczającej entropii podczas generowania klucza, byli w stanie uzyskać klucze prywatne DSA i RSA hostów TLS i SSH, znając tylko publiczne klucz.

Brak słabych kluczy jako celu projektowego

Cel posiadania „płaskiej” przestrzeni klawiszy (tj. Wszystkich klawiszy jednakowo silnych) jest zawsze celem projektowania szyfru. Podobnie jak w przypadku DES, czasami dopuszczalna jest niewielka liczba słabych kluczy, pod warunkiem, że wszystkie są zidentyfikowane lub możliwe do zidentyfikowania. Algorytm, który ma nieznane słabe klucze, nie budzi dużego zaufania.

Dwa główne środki zaradcze przeciwko nieumyślnemu użyciu słabego klucza:

  • Sprawdzanie wygenerowanych kluczy z listą znanych słabych kluczy lub wbudowywanie odrzucania słabych kluczy do planowania kluczy.
  • Gdy wiadomo, że liczba słabych kluczy jest bardzo mała (w porównaniu z rozmiarem przestrzeni kluczy), generowanie klucza w sposób jednolity i losowy zapewnia, że ​​prawdopodobieństwo jego słabości jest (znaną) bardzo małą liczbą.

Duża liczba słabych kluczy to poważna wada w każdym projekcie szyfru, ponieważ będzie wtedy (być może zbyt) duża szansa, że ​​losowo wygenerowany klucz będzie słaby, zagrażając bezpieczeństwu zaszyfrowanych pod nim wiadomości. W takich przypadkach sprawdzenie losowo generowanych kluczy pod kątem słabości zajmie również więcej czasu, co będzie kusiło na skróty w interesie „wydajności”.

Jednak słabe klucze są znacznie częściej problemem, gdy przeciwnik ma pewną kontrolę nad używanymi kluczami, na przykład gdy szyfr blokowy jest używany w trybie działania mającym na celu skonstruowanie bezpiecznej kryptograficznej funkcji skrótu (np. Davies – Meyer ).

Zobacz też

Bibliografia