Czy 128-bitowe zabezpieczenia nie są wystarczające dla większości praktycznych zastosowań?
Czy 128-bitowe zabezpieczenia nie są wystarczające dla większości praktycznych zastosowań?
Dlaczego ludzie kupują czerwone samochody sportowe? Nie jeżdżą szybciej niż samochody sportowe w jakimkolwiek innym kolorze ...
AES ma trzy standardowe rozmiary kluczy (128, 192 i 256 bitów). Wiele osób widzi to i myśli, że jeśli istnieją trzy różne rozmiary zamiast tylko jednego, to musi być jakaś różnica, a ponieważ wersja 256-bitowa jest nieco wolniejsza niż wersja 128-bitowa (o około 40%), to musi być „bezpieczniejszy”. Dlatego wybierają „najbezpieczniejszy” i wybierają klucze 256-bitowe.
W rzeczywistości AES ma trzy różne rozmiary kluczy, ponieważ został wybrany jako federalny algorytm USA, który może być używany w różnych obszarach pod kontrolą rządu federalnego USA, w tym armii amerykańskiej. Armia USA ma długą tradycję korzystania z kryptografii, która skrystalizowała się w wewnętrzną regulację z całą elastycznością i subtelnością, którą armie na całym świecie nieustannie demonstrują (po prostu posłuchaj „muzyki wojskowej”, a zrozumiesz, o co mi chodzi) . Niestety, zdarzyło się to już jakiś czas temu, przed wynalezieniem komputera, iw tamtym czasie większość systemów szyfrowania mogła zostać zepsuta, a te solidniejsze były również bardzo trudne i powolne w użyciu. Tak więc umysły wojskowe wpadły na pomysł, że powinny istnieć trzy „poziomy bezpieczeństwa”, tak aby najważniejsze sekrety były szyfrowane ciężkimi metodami, na które zasłużyły, ale dane o mniejszej wartości taktycznej można zaszyfrować bardziej praktycznymi, jeśli słabszymi algorytmami.
Te przepisy wymagały zatem trzech różnych poziomów. Ich konstruktorzy po prostu założyli , że niższe poziomy były z konieczności w jakiś sposób słabe, ale słabość nie była obowiązkowa . Dlatego NIST zdecydował się formalnie przestrzegać przepisów (poprosić o trzy rozmiary kluczy), ale także zrobić sprytną rzecz (najniższy poziom musiał być niezniszczalny przy użyciu przewidywalnej technologii). Ze względów bezpieczeństwa wystarcza 128 bitów (szczegóły w tej odpowiedzi). Dlatego AES akceptuje 256-bitowe klucze z powodu biurokratycznego znużenia: łatwiej było zażądać czegoś nieco bezsensownego (przesada rozmiaru klucza) niż zmienić przepisy wojskowe.
Większość ludzi nie wie lub nie obchodzi o historii i po prostu idą na całość, bo czują, że na to zasługują.
Kiedy tworzysz system bezpieczeństwa, musisz zaplanować awarię. Taka jest idea strategii obrony w głębi.
Prymitywy kryptograficzne z czasem słabną. Chociaż 128-bitowy prymityw to dużo, można wykryć lukę w szyfrze, która zmniejsza ten poziom bezpieczeństwa. Musisz więc dodać margines bezpieczeństwa, gdy prymityw podkreślający zawodzi.
Na przykład md5 generuje 128-bitowy hash, jednak używając ataku z wybranym prefiksem, osoba atakująca może spowodować kolizję o złożoności tylko 2 ^ 39.
Nie widziałem tego w odpowiedziach lub komentarzach, więc pomyślałem, że mogę to dodać jako odpowiedź. Rozmiar klucza nie zawsze ma bezpośredni związek ze złożonością algorytmu. Powszechnym błędem jest założenie, że wiadomość zaszyfrowana przy użyciu AES256 jest trudniejsza do złamania (przeciwnik uzyskuje jakiekolwiek informacje znaczeniowe podane tylko w postaci zaszyfrowanej) niż te same informacje chronione za pomocą AES128. Logicznie wydaje się, że większy rozmiar klucza zapewnia większą złożoność, ale jak w przypadku każdego systemu, implementacje są podatne na słabości.
Zakładając, że mówisz o AES 128 w porównaniu z AES 256, istnieje znana słabość funkcji rozszerzania klucza, która wpływa na AES256. Zasadniczo słabość redukuje złożoność AES256 do tej niższej niż AES128. Istnieje również podobny atak dla AES192, chociaż w tym przypadku złożoność AES192 pozostaje większa niż AES128.
Morał z tej historii, ludzie nie rozumieją krypto ... j / k (nie jestem matematykiem). Rzeczywistość jest taka, że ludzie zakładają „duży” z „bezpiecznym”. Duży pistolet jest lepszy niż mały pistolet. Większe klucze są bezpieczniejsze niż mniejsze.
W rzeczywistości implementacja kryptografii jest ważniejsza niż sam rozmiar klucza.
FWIW, szkic NIST dotyczący postu kwantowego kryptowaluty zaleca 256.
http://csrc.nist.gov/publications/drafts/nistir-8105/nistir_8105_draft.pdf
Twoje założenie wydaje mi się błędne. Nie znam żadnych dowodów na to, że „większość ludzi używa szyfrowania 256-bitowego zamiast 128-bitowego”. Rzeczywiście, gdybym miał zgadywać, podejrzewam, że jest odwrotnie.
Ostatecznie napotkasz problem podobny do oprogramowania do kompresji, zbyt duża kompresja może prowadzić do utraty danych. Chociaż nie ma skończonej liczby określającej siłę szyfrowania „teoretycznie”, nie oznacza to, że trzeba szyfrować dane na więcej niż 256 bitów. Z technicznego punktu widzenia możesz to zrobić, ale ryzykujesz, że maszyna, której uruchomienie i załadowanie systemu operacyjnego zajmie miesiąc lub lata?
Zakładam, że mówisz o kryptografii symetrycznej. Odpowiedź brzmi: nigdy nie jest wystarczająco bezpieczny (chociaż podejrzewam, że używanie kluczy 256-bitowych w porównaniu do 128-bitowych jest strategią marketingową, dzięki której klient czuje się bezpieczniejszy).
I nie zapominajmy, że obliczenia kwantowe, które znacznie zmniejszają ilość czasu potrzebnego do ataku siłowego.