Frage:
Wie Sie feststellen können, ob eine Datei entschlüsselt ist oder nicht
juan michelle
2016-04-08 19:45:07 UTC
view on stackexchange narkive permalink

Für die Schule muss ich eine Übung machen, in der ich Dateien durch Brute-Force-Angriffe entschlüsseln muss.

Es gibt viele verschiedene Dateien in verschiedenen Dateiformaten. Die Dateien wurden mit XOR oder dem Caesar-Algorithmus verschlüsselt.

Ich weiß, wie ich jeden möglichen Schlüssel zum Entschlüsseln der Dateien ausprobieren kann, aber wie kann ich wissen, ob die Datei mit dem richtigen Schlüssel entschlüsselt wird oder nicht?

http://stackoverflow.com/questions/1135186/whats-wrong-with-xor-encryption ||http://stackoverflow.com/questions/1984984/how-to-check-whether-decrypting-was-successful ||http://crypto.stackexchange.com/questions/15896/how-do-decryption-algorithms-determine-whether-your-attempted-passphrase-is-corr ||http://crypto.stackexchange.com/questions/5921/how-and-why-can-a-decryption-program-tell-me-that-a-key-is-incorrect ||http://crypto.stackexchange.com/questions/1468/how-does-gpg-verify-succesful-decryption
Im Allgemeinen ist dies nicht möglich, und genau deshalb sind einmalige Pads sicher.
Sehen Sie sich die Verteilung der Daten an - erstellen Sie gegebenenfalls ein Histogramm.Die meisten Arten der Verschlüsselung wurden absichtlich entwickelt, um eine ziemlich einheitliche Datenverteilung zu erzielen, die nicht von zufälligen Daten zu unterscheiden ist - jedoch nicht von einem JPEG oder anderen Dateiformaten, die eine vage, aber sichtbar verzerrte Datenverteilung aufweisen.ein Muster.Wenn Sie Ein-Byte-XORing oder einfache Substitutions-Chiffren ausführen, führen Sie einfach ein Brute-Force-Skript aus.Möglicherweise handelt es sich um eine Ein-Byte-XOR-Taste (nur 255 mögliche Ausgaben) oder um eine feste Umschalttaste (nur [Anzahl der Buchstaben im Alphabet] mögliche Ausgaben).
Das klingt nach einer ziemlich coolen Übung.Welche Universität / welcher Kurs ist das?Veröffentlicht der Professor Vorlesungsunterlagen online?
Es ist ein kleiner Teil eines Kurses zum Lastausgleich bei Epitech (Frankreich).Wir müssen eine Benutzeroberfläche erstellen, in der der Benutzer Dateien verschlüsselt oder nicht verschlüsselt ablegt, und wir müssen die Aufgaben verteilen, um einige Daten (E-Mail, Telefonnummer, IP) über viele Prozesse und Computer über ein Netzwerk zu finden.Das Thema ist nicht online verfügbar, aber wenn Sie es möchten, kann ich es Ihnen senden.
Sieben antworten:
Dan Ambrogio
2016-04-08 19:56:01 UTC
view on stackexchange narkive permalink

Sie können es wirklich nicht, wenn Sie nur Text verschlüsseln / entschlüsseln.

Wenn Sie wissen, dass die verschlüsselte Zeichenfolge "kdo" ist und die Verschlüsselungsmethode eine Caesar-Verschiebung ist, könnte der Klartext dies auch tun so einfach sei "IBM" wie "HAL". Sie müssten eine Vorstellung davon haben, wie der Klartext "aussieht". Wenn Sie beispielsweise wissen, dass der Klartext der Name eines Stanley Kubrick-Zeichens ist, haben Sie eine gute Vorstellung davon, welches es sein sollte.

Wenn Sie eine längere Zeichenfolge haben, ist es viel einfacher, sie einzugrenzen Dinge runter. Eine große Textdatei hat viel weniger verständliche Ergebnisse als das obige dreistellige Beispiel. Sie müssen jedoch noch selbst feststellen, ob es entschlüsselt wurde.

Wenn Sie dagegen eine gesamte Datei in einem bestimmten Format (.docx usw.) entschlüsseln, können Sie sich ziemlich sicher sein, dass Die Datei wird entschlüsselt, wenn das Analyseprogramm (Word usw.) sie lesen kann.

Da es sich um eine Schulaufgabe handelt, ist zu erwarten, dass auf einfache Weise Klartext erkannt wird - wahrscheinlich im Unterricht besprochen und dessen Histogramm wahrscheinlich dem Englischen nahe kommt (oder in welcher Sprache auch immer die Klasse unterrichtet wird).
Nur eine Randnotiz, aber tatsächlich gibt es Möglichkeiten zu erkennen, ob eine Datei mit dem richtigen Schlüssel entschlüsselt wurde.Sie sind zwar ziemlich komplex und höchstwahrscheinlich nicht relevant für OP-Fragen, aber Sie können die Spracherkennung verwenden, um festzustellen, ob die Datei korrekt entschlüsselt wurde.Dateien mit einem Header können analysiert werden, indem überprüft wird, ob der Header korrekt entschlüsselt wurde. Dies entspricht der Sprachprüfung.Tatsächlich ist der Test, den Sie für docx-Dateien vorgeschlagen haben, eine - nicht gerade elegante - Implementierung genau dieses Ansatzes.
cremefraiche
2016-04-10 15:58:55 UTC
view on stackexchange narkive permalink

Sie können absolut mit unterschiedlicher Sicherheit feststellen, ob eine Datei oder sogar eine Zeichenfolge erfolgreich entschlüsselt wurde. Die meisten Herausforderungen bei Kryptopalen hängen davon ab. Ich habe begonnen, ein Tool für Bruteforce und Analyse von Chiffretext zu entwickeln, das genau diese Aufgabe automatisiert. Sie finden es hier, wenn Sie einen Blick darauf werfen möchten.
(es muss viel aufgeräumt werden, beurteilen Sie mich nicht)

Mein ursprüngliches Ziel in diesem Projekt war es, meine Effizienz bei CTF-Krypto-Herausforderungen mit einem einfachen Brute-Force-Tool zu verbessern, aber ich Ich fange an, viel mehr Analysen zu implementieren. So wie es aussieht, kann es alle Caesar-, Single-Byte-XOR-, Atbash- und einige Codierungen bruteforce, wobei das Wiederholungsschlüssel-XOR entwickelt, aber noch nicht integriert ist.

So funktioniert es jetzt

  • verwendet eine eingegebene Chiffretextzeichenfolge oder eine Datei mit durch Zeilenumbrüche getrennten Chiffretextzeichenfolgen.
  • versucht nach jeder Entschlüsselung mit dem gesamten Schlüsselbereich der unterstützten Chiffren
  • zu entschlüsseln Wenn Sie versuchen, eine Erkennungsfunktion für Klartext auszuführen, um festzustellen, ob der entschlüsselte Text Englisch ist.
  • zeigt höchstwahrscheinlich Vermutungen an.

Das eine, was diesen Prozess schwierig macht, ist, wie die Schwellenwerte sind Für Englisch muss die Erkennung abhängig von der Länge des Ciphetextes angepasst werden. Standardmäßig müssen 60% des Klartextes Wörter und 75% des Klartextes Buchstaben sein, um eine Übereinstimmung zu registrieren. Diese Einstellung liefert selten falsch positive und noch seltener falsch negative Ergebnisse bei Klartexten mittlerer bis langer Länge (alles über ein paar Zeichenfolgen). Bei Verwendung in kurzen Chiffretexten tauchen jedoch einige falsch positive Ergebnisse auf und viele falsch negative Ergebnisse kommen durch. Beim Testen musste ich die Schwellenwerte um 30% oder mehr senken, um eine Übereinstimmung bei einigen kurzen Zeichenfolgen zu erkennen, und dabei viel mehr Fehlalarme generieren, die ich durchsehen muss, um die tatsächliche Übereinstimmung zu finden.

Ich empfehle dringend, die Cryptopals-Herausforderungen von Anfang an durchzuarbeiten, wenn Sie mehr über das Herstellen von Orakeln und das Brechen von Krypto erfahren möchten. Es beginnt einfach und entwickelt sich zu realen Angriffen, wie zum Beispiel einem Bleichenbacher-Orakel, das Teil dessen ist, was den DROWN -Angriff zum Funktionieren bringt.

tl; dr

Sie müssen ein Modul erstellen, das Englisch erkennt, und es auf das Ergebnis jedes Entschlüsselungsversuchs anwenden. oder einfach meine Mine und es besser machen.
In Fällen, in denen der Klartext nicht Englisch oder eine andere Sprache sein wird, ist eine erweiterte Analyse erforderlich.

Was erwartet der Lehrer von Ihnen?Dies ist wahrscheinlich eine Aufgabe, die seit Jahren durchgeführt wird. Sie werden wissen, was die Schüler versuchen werden.Also haben sie ein oder zwei französische oder chinesische Dokumente oder ein kompiliertes Programm ohne viel Text eingefügt.Wie erkennt man das?
@SPRBRN Wenn seine Aufgabe darin besteht, Dateien durch Brute-Force-Angriffe zu entschlüsseln, würde der Lehrer genau dies von ihm erwarten.Hast du einen anderen Weg?Ich bezweifle sehr, dass der Lehrer von den Schülern erwartet, dass sie jeden Entschlüsselungsversuch manuell für jeden einzelnen Schlüssel in den Schlüsselbereichen aller gängigen klassischen Chiffren betrachten.Wenn Sie wirklich Französisch oder Chinesisch erkennen müssen, können Sie dieselbe Strategie mit Wörterbüchern dieser Länder implementieren.Was ich nicht verstehe ist, warum du denkst, dass ihr Lehrer dies tun würde.Als würde der Lehrer absichtlich versuchen, die Leute davon abzuhalten, Englisch zu analysieren?
Steve Sether
2016-04-08 23:26:42 UTC
view on stackexchange narkive permalink

Wenn Sie eine Vorstellung davon haben, was der Klartext ist, können Sie diese Wissensschätzung verwenden, wenn Sie den Chiffretext möglicherweise geknackt haben.

Wenn Sie beispielsweise der Meinung sind, dass der Klartext Englisch ist, beginnen Sie mit der Suche für englische Wörter in Ihrem Entschlüsselungsversuch.

Wenn Sie glauben, dass der Klartext eine Zip-Datei ist, haben Zip-Dateien am Anfang der Datei eine Signatur. Suchen Sie nach dieser Signatur.

Wenn Sie der Meinung sind, dass der Klartext eine E-Mail ist, suchen Sie nach verräterischen E-Mail-Headern.

Im Allgemeinen können Sie versuchen, nach dem "Informationsgehalt" der zu suchen Entschlüsselungsversuch. Klartext hat normalerweise einen geringeren Informationsgehalt als Chiffretext, obwohl dies für eine einfache Cäsar-Chiffre nicht gilt.

Sie müssen jedoch zunächst ein wenig einfärben, was der Klartext enthalten könnte, selbst wenn (wie oben) Es ist lediglich "eine niedrigere Punktzahl für den Informationsgehalt als der Chiffretext".

Kevin
2016-04-09 04:00:38 UTC
view on stackexchange narkive permalink

Die anderen Antworten hier sind für den allgemeinen Fall hervorragend. Bei einer Klassenaufgabe vermute ich, dass die Professoren es sehr einfach machen möchten, festzustellen, wann Sie die Datei entschlüsselt haben.

Zum Beispiel sind es die Dateien, die Sie entschlüsseln, Textdateien, die eine Nachricht anzeigen, wenn sie sind richtig entschlüsselt? In diesem Fall können Sie ein Wörterbuch in Ihrer Sprache verwenden und prüfen, ob sich ein großer Teil der Wörter in der Nachricht im Wörterbuch befindet. Wenn Sie Englisch verwenden, würde ich einen Schwellenwert von 50% der Wörter in einem englischen Wörterbuch als eine gute Zahl schätzen - eine falsch entschlüsselte Datei ist fast vollständig Kauderwelsch, aber Sie möchten den richtigen Klartext nicht ignorieren Wenn es ein paar Wörter enthält, wie Eigennamen oder Fachjargon, die nicht zufällig in Ihrem Wörterbuch enthalten sind.

Cricco95
2016-04-08 19:55:13 UTC
view on stackexchange narkive permalink

Wenn es sich bei der verschlüsselten Datei um einen Text handelt, müssen Sie überprüfen, ob die Phrasen in der Datei einen Sinn haben oder nicht, aber wenn Sie etwas entdecken müssen, bei dem es sich nicht um ein Wort oder eine Phrase (z. B. Passwort oder zufällige Buchstaben) handelt muss alle verschiedenen Möglichkeiten ausprobieren. Zum Beispiel habe ich ein Login-Passwort (zufällige Buchstaben), das mit Caesar-Chiffre verschlüsselt ist. Ich muss im schlimmsten Fall alle 26 Möglichkeiten (vorausgesetzt wir verwenden internationales Kleinbuchstaben) versuchen, um zu überprüfen, ob das Passwort korrekt ist.

Filip Haglund
2016-04-11 13:19:43 UTC
view on stackexchange narkive permalink

Viele Dateiformate beginnen mit einer magischen Zahl (einer Bytefolge), nach der Sie suchen können. Wikipedia hat eine Liste.

Felipe Pereira
2016-04-08 23:32:00 UTC
view on stackexchange narkive permalink

Andere Antworten haben die meisten Aspekte abgedeckt, aber ein weiterer Punkt ist, dass Sie, wenn Sie Zugriff auf die API haben, mit der die verschlüsselten Dateien erstellt wurden, Ihre eigene Wissensdatei verschlüsseln und sie brutal erzwingen können (hier Sie haben etwas gegen zu vergleichen).

Sobald Sie den Schlüssel erhalten haben, verwenden Sie ihn für die anderen Dateien.

Ich bin nicht der Downvoter, aber Ihr Plan hat eine Lücke.Die API oder Funktion, die den Text verschlüsselt, würde zusätzlich zum Klartext einen Verschiebungswert (im Fall einer Caesar-Chiffre) oder ein Kennwort als Eingabe verwenden.Ihr Plan wäre eine großartige Möglichkeit, den Code einem Komponententest zu unterziehen, garantiert jedoch nicht oder beweist nicht, dass die Ausgabe bei der Ausführung mit realen Daten der entschlüsselte Text ist.
@Freiheit danke für Ihr Feedback. Ich denke, Sie sind korrekt, falls der Verschiebungswert oder das Kennwort für jede Datei eindeutig ist. Wenn es jedoch geteilt wird, könnte mein Ansatz dazu beitragen, mögliche Verschiebungswerte für Kandidaten schneller zu finden (in diesem Fall gehe ich von der einfachsten Option aus, ageteilte Schicht / Passwort)


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...