Kiedy słyszę o metodach łamania algorytmów szyfrowania, zauważam, że często koncentruje się na tym, jak odszyfrować bardzo szybko i jak zmniejszyć przestrzeń poszukiwań. Zawsze jednak zastanawiam się, jak rozpoznać udane odszyfrowanie i dlaczego nie tworzy to wąskiego gardła. Czy często przyjmuje się, że szyfrowana/odszyfrowana para jest znana?Czy trudno jest rozpoznać pomyślne odszyfrowanie?
Odpowiedz
W kryptografii asymetrycznej zazwyczaj masz dostęp do klucza publicznego. Dlatego każde odszyfrowanie zaszyfrowanego tekstu zaszyfrowanego może zostać ponownie zaszyfrowane przy użyciu klucza publicznego i porównane z oryginalnym tekstem zaszyfrowanym, ujawniając w ten sposób, czy odszyfrowanie zakończyło się powodzeniem.
To samo dotyczy szyfrowania symetrycznego. Jeśli uważasz, że odszyfrowałeś szyfr, musisz również pomyśleć, że znalazłeś klucz. Dlatego możesz użyć tego klucza, aby zaszyfrować swój, prawdopodobnie poprawiony, odszyfrowany tekst i sprawdzić, czy zaszyfrowany wynik jest identyczny z oryginalnym zaszyfrowanym tekstem.
oprócz szyfrowania symetrycznego, każdy klawisz będzie zachowywał się w ten sposób ... –
Twoja obserwacja nie jest naprawdę przydatna do szyfrowania symetrycznego, ponieważ użyłeś klucza do wygenerowania odszyfrowanego tekst: oczywiście będzie pasować, gdy użyjesz go do ponownego zaszyfrowania. Rozważ ekstremalny przypadek jednorazowej podkładki; dla danego zaszyfrowanego tekstu możesz odgadnąć klucze, które dadzą ci * dowolny tekst w postaci zwykłego tekstu o prawidłowej długości, a wszystkie z powodzeniem ponownie zaszyfrują do właściwego tekstu zaszyfrowanego :). –
Dwa poprzednie komentarze pokazują, że ta odpowiedź jest niestety niestety. –
Od Cryptonomicon:
Jest to kompromis pomiędzy tymi dwoma skrajności, z jednej strony, nie wiedząc dowolnego tekstu jawnego w ogóle, i, z drugiej strony, wiedząc to wszystko . W Cryptonomicon, który wchodzi pod nagłówek łóżeczek. Szopka jest wykształconym odgadnięciem, które słowa lub wyrażenia mogą być obecne w wiadomości . Na przykład, jeśli odszyfrowujesz niemieckie wiadomości ze Świata od , możesz domyślać się, że tekst w postaci zwykłego tekstu zawierał wyrażenie "HElL HITLER" lub "SIEG HElL". Możesz wybrać z sekwencji dziesięciu znaków o numerze losowo i powiedzieć: "Załóżmy, że to reprezentuje HEIL HITLER .Jeśli to jest , co oznaczałoby, że o pozostałej części wiadomości?"
...
Siedząc w swoim gabinecie z świeżych przechwytuje Aretuzy, udał się do pracy, przy użyciu pogrzebowe łóżeczku: jeśli to grupa siedmiu liter odszyfrowuje do FUNERAL , jak wygląda reszta wiadomości? Szwargot? Okay, a co powiesz na tę grupę siedmiu liter: ?
Dla szyfrowania symetrycznego, w którym długość klucza jest krótsza niż długość tekstu zaszyfrowanego, gwarantowane jest, że nie będzie możliwe tworzenie wszystkich możliwych zwykłych tekstów. Możesz się domyślać, jaką formę ma twój zwykły tekst - do pewnego stopnia - prawdopodobnie wiesz, czy to obraz, czy XML, lub jeśli nawet nie wiesz o tym zbyt wiele, to możesz założyć, że będziesz w stanie uruchom na nim file
i nie otrzymuj "danych". Musisz mieć nadzieję, że istnieje tylko kilka kluczy, które dadzą ci nawet mało sensowny deszyfrowanie i tylko taki, który pasuje do formularza, którego szukasz.
Jeśli masz przykładowy tekst zwykły (lub częściowy zwykły tekst), to jest znacznie łatwiejsze.
Ogólnie rzecz biorąc, masz pojęcie o formacie pliku, który spodziewasz się uzyskać po odszyfrowaniu, a większość formatów zapewnia łatwy sposób ich identyfikacji.Na przykład prawie wszystkie formaty binarne, takie jak obrazy, dokumenty, pliki zip, itp., Mają łatwo identyfikowalne nagłówki, natomiast pliki tekstowe zawierają tylko sekwencje ASCII lub tylko poprawne sekwencje UTF-8.
- 1. Odszyfrowanie tego ataku XSS
- 2. Pomyślne projekty wykorzystujące model wodospadu?
- 3. Jak trudno jest zaktualizować maszynę wirtualną Azure
- 4. Jak rozpoznać, czy macierz homograficzna jest akceptowalna, czy nie?
- 5. Android: jak rozpoznać, czy klawiatura jest wyświetlana, czy nie?
- 6. Jak rozpoznać, który panel w Tmux jest skupiony?
- 7. Pomyślne SQL Injection pomimo PHP Magic Quotes
- 8. Jak rozpoznać, czy odwołanie do klasy jest interfejsem?
- 9. Jak rozpoznać, czy wyzwalacz jest włączony w PostgreSQL?
- 10. Pomyślne/nieudane wyskakujące okienko po przesłaniu?
- 11. Trudno zrozumieć zegar losowy Gaussa?
- 12. Trudno przeanalizować komendę czasu (bash)
- 13. Dlaczego tak trudno jest przekonwertować XML na PDF?
- 14. Jak trudno jest uruchomić aplikację Cocoa w systemie Windows?
- 15. Jak rozpoznać, kiedy zasób strony internetowej jest buforowany?
- 16. Jak rozpoznać, czy komunikat ManualResetEvent jest sygnalizowany, czy nie jest sygnalizowany?
- 17. Trudno jest zaimplementować prosty singleton w trybie szybkim.
- 18. Jak rozpoznać zawartość bajtu [] jest jpeg?
- 19. Jak rozpoznać, czy token OAuth wygasł?
- 20. jquery, jak rozpoznać div jest ukryty?
- 21. trudno zrozumieć print_r/var_dump dla obiektu
- 22. Trudno zrozumieć zachowanie przydziału pamięci Haskell
- 23. Pandy: trudno zrozumieć, jak działa scalanie
- 24. Jak rozpoznać HTML5
- 25. Git: resetuj - trudno teraz utknąłem w przeszłości
- 26. Pierwsze vim rozpoznać XML
- 27. Jak rozpoznać obiekty zmienne?
- 28. Odszyfrowanie OpenSSL kończy się niepowodzeniem, ale kod błędu to 0
- 29. jak rozpoznać powolność witryny?
- 30. Tworzenie pliku json PHP i pomyślne łączenie go z javascript
zwłaszcza w parku Bletchly z Turings "Bomby" ... Jak te maszyny wiedzieli, kiedy złamali kod? –
Bomby pracowały, szukając rozwiązań, które były wewnętrznie spójne: wiele hipotez dotyczących klucza dnia było niezgodnych z generowanymi zaszyfrowanymi tekstami, a bombki eliminowały te, pozostawiając tylko te spójne do ręcznej analizy. Zobacz http://pl.wikipedia.org/wiki/Bombe –