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.