Jak można złamać szyfrowanie RSA 2048?


Najlepsza odpowiedź

W polu analizy kryptograficznej istnieje ogromna różnica między „ crack „i” break „.

Łamiesz hasło w najprostszym sensie, próbując odblokować system za pomocą wszystkie możliwe iteracje tego hasła, metoda znana jako łamanie brutalnej siły. Jeśli znasz zasady rządzące tworzeniem i używaniem hasła, wiesz również z wyprzedzeniem, ile czasu / wysiłku wiąże się z tym szyfrem. Każdy algorytm ma wcześniej znane oczekiwanie w zakresie wysiłku obliczeniowego wymaganego do jego złamania.

Mówi się, że algorytm, taki jak MD5 lub SHA-1 (prawdziwe przykłady), jest zepsuty, gdy znajdziesz jakiś rodzaj kolizja, która redukuje ten oczekiwany wszechświat (każde możliwe rozwiązanie wzoru używanego do tworzenia klucza / hasła).

Aby uprościć, pozwól, że przeprowadzę Cię przez prawdziwy przykład WPS (Wi-Fi Protected Setup ). WPS został stworzony, aby ułatwić użytkownikom zabezpieczenie ich sieci Wi-Fi. Składał się z ośmiocyfrowego kodu PIN, który był wymieniany między żądającym użytkownikiem a routerem po naciśnięciu jednego przycisku.

Twórcy systemu znali wcześniej oczekiwany wszechświat: 8 liczb daje 100 000 000 możliwych kombinacje (10 ^ 8). Jednak implementacja protokołu podzieliła tę liczbę na dwie czterocyfrowe kombinacje, które zostały sprawdzone osobno.

Oznaczało to, że w rzeczywistości wystarczyłoby wypróbować tylko 10 000 (10 ^ 4) + 10.000 (10 ^ 4) kombinacje, w najgorszym przypadku, w celu złamania kodu PIN. Wasz wszechświat 100 milionów kombinacji nagle spadł do zaledwie 20 000 kombinacji. Algorytm jest faktycznie uszkodzony . Następnie możesz spróbować go złamać – tak jak by to było, gdyby nie było zepsute – ale ponieważ jest zepsute, twoje szanse na sukces są znacznie większe, wymagając tylko co najwyżej 20 000 prób zamiast 100 milionów.

Wniosek z tego:

Łamanie i łamanie to różne rzeczy. Zepsuty szyfr nie oznacza, że ​​jest niebezpieczny, po prostu że jest teraz łatwiejsze do złamania. W zależności od wartości tego, co jest przez niego chronione, bycie zepsutym nie oznacza śmierci dla danego systemu, a jedynie zrozumienie, że jest teraz mniej bezpieczny niż pierwotnie oczekiwano.

RSA-2048 zostanie złamany, jeśli ktoś znajdzie sposób na tworzenie kolizji, które z natury zmniejszają oczekiwaną liczbę kombinacji do złamania szyfru. RSA 2048 można złamać, jak każdy inny szyfr, za pomocą brutalnej siły.

Odpowiedź

RSA, samo w sobie, ma tylko kilka ataków na publiczny moduł (zwykle jest to półpierwsza lub dwie duże losowo wybrane liczby pierwsze mnożone razem). Najbardziej wydajnym klasycznym algorytmem rozwiązywania problemu faktoryzacji, który pozwala na wyprowadzenie klucza prywatnego za pomocą podstawowej arytmetyki, jest General Number Field Sieve (GNFS). Ten algorytm działa w czasie poniżej wykładniczym i nie można go używać w prawidłowo zaimplementowanych systemach RSA-2048-bitowych.

Istnieje również Algorytm Shora, ale typowy napastnik nie może go zamontować na RSA-2048. Producenci komputerów kwantowych prowadzą oligopol, w szczególności kierowany przez D-Wave. Ich uzyskanie jest nie tylko niezwykle kosztowne, ale także wymaga specjalistycznego sprzętu do ich obsługi i konserwacji. Żaden chip nie został stworzony z wystarczającą trwałością informacji i mocą, aby złamać więcej niż kilka bitów.

Jak wspomniano wcześniej, kryptosystem jest niczym bez poprawnej implementacji. Większość implementacji RSA wykorzystuje również algorytm odcisków palców klucza publicznego, zwykle hash. Poza tym znalezienie faktoryzacji liczb pierwszych jest możliwe za pomocą jednego exploita, który jest zarówno niesamowicie rzadki, jak i statystycznie nieistotny pod względem wskaźnika sukcesu. Jak zauważył Euclid , istnieją nieskończone liczby pierwsze, ale nie tylko nieskończone liczby pierwsze, ale jest ich dużo w określonej przestrzeni kluczowej. Jeśli zdarzy się, że dwa moduły mają tę samą liczbę pierwszą, znalezienie ich faktoryzacji jest łatwe. Korzystając z algorytmu największego wspólnego dzielnika , który działa w czasie liniowym (można go łatwo uruchomić na urządzeniu, na którym przeglądasz, w ciągu milisekund), wspólny czynnik może zostać znalezione, a następnie podzielone z modułów, aby uzyskać dwie pozostałe brakujące liczby pierwsze. Prowadzi to do dostępu do obu kluczy. Żadna poprawna implementacja RSA nigdy nie wykorzystywałaby ponownie liczb pierwszych dla oddzielnych kluczy, zamiast tego wybierałaby je całkowicie losowo. Ponieważ istnieje wiele możliwych modułów w 2048-bitowej przestrzeni klucza, które można zapisać jako liczbę liczb pierwszych o długości 2048 wybierz 2 (lub wyższą niż 2, jeśli pracujesz z niestandardowymi modułami), szanse dwóch kluczy nawet współdzielących dwie liczby pierwsze są znikome . Innymi słowy, pobranie wszystkich kluczy z serwera kluczy i uruchomienie na nich algorytmu GCD jest po prostu stratą czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *