Frage:
Wenn jemand die Verschlüsselung bricht, woher weiß er dann, dass er erfolgreich ist?
M. Evans
2011-01-18 09:56:38 UTC
view on stackexchange narkive permalink

Nehmen wir an, ich habe eine Datei mit zufälligen Bits und verschlüssele sie dann mit einem modernen Algorithmus (Blowfish, AES oder was auch immer). Wenn jemand die Datei erfasst und einen Brute-Force-Angriff darauf ausführt, woher weiß er dann, dass er sie erfolgreich entschlüsselt hat? Es wäre offensichtlich, wenn die ursprüngliche Eingabe sinnvoll wäre, aber in diesem Fall bestand die ursprüngliche Eingabe nur aus einer Reihe zufälliger Bytes. Wie würden sie, wenn überhaupt, wissen, dass dies der RICHTIGE Haufen zufälliger Bytes war?

Ihre Prämisse ist äußerst unrealistisch. In der Praxis ist das fast nie so: Die verschlüsselte Datei hat fast immer eine Struktur. Die Antworten auf die von Ihnen gestellte Frage sind in Bezug auf die reale Welt wahrscheinlich irreführend. Daher kann die beste Antwort auf diese Frage darin bestehen, die Frage zu lösen und eine andere zu stellen.
Ich denke, die Frage ist stattdessen legitim. Nehmen Sie eine verschlüsselte Binärdatei. Woher weiß eine Brute-Forcing-Software, dass die Entschlüsselung abgeschlossen ist? Ich frage mich eigentlich, warum das Verstecken von Dokumenten in Binärdateien, die sie ausdrucken, nicht öfter gemacht wird. Würde das den Cracker nicht täuschen?
@L. De: Eine ausführbare Binärdatei hat immer noch eine gewisse Struktur - fast alle zufälligen Dateien sind nicht erfolgreich ausführbar.
@D.W. - Ich habe mir gerade das Truecrypt-Dateiformat angesehen: http://www.truecrypt.org/docs/?s=volume-format-specification Es scheint, dass alle Felder außer dem SALT verschlüsselt sind.
Acht antworten:
#1
+30
PulpSpy
2011-01-18 10:02:48 UTC
view on stackexchange narkive permalink

Sie würden nicht. Das von Ihnen beschriebene Problem wird im Wikipedia-Artikel zu Unicity Distance ausführlich behandelt. Dieser Artikel verweist auch auf einen von Bruce Schneier, der möglicherweise leichter zugänglich ist.

#2
+12
Giacomo Verticale
2011-01-18 14:59:04 UTC
view on stackexchange narkive permalink

Im Allgemeinen verschlüsseln Menschen keinen zufälligen Müll. Unter der Annahme, dass dies der Fall ist, wäre ein Angriff nur mit Chiffretext unmöglich.

Beachten Sie jedoch, dass gängige kryptografische Schemata der Nachricht nicht zufällige Daten hinzufügen, z. B. Auffülldaten und Nachrichtenauthentifizierungscodes. In einigen Schemata können diese verwendet werden, um zu überprüfen, ob ein erratener Schlüssel korrekt ist.

#3
+5
Am1rr3zA
2011-01-18 15:15:03 UTC
view on stackexchange narkive permalink

Im Allgemeinen können sie die Verschlüsselung nicht aufheben (wenn Sie eine Zufallsdatei (zum Beispiel einen geheimen Schlüssel) verschlüsseln oder sogar eine Datei komprimieren), aber wenn Sniffer einen anderen Zugriff auf das Sender- oder Empfängersystem haben, können sie eine andere Art von Angriff ausführen. und kann zufällige Dateiverschlüsselung brechen. Dort lesen Sie mehr:

Eine Brute Force kann die Verschlüsselung unterbrechen. Das Problem, das das OP aufwirft, ist, dass Sie, wenn die verschlüsselten Daten als Klartext zufällig waren, nicht wissen, wann die Brute Force erfolgreich funktioniert hat, im Gegensatz zu lesbarem Klartext.
@Rory Ich verstehe es, vielleicht kann ich es nicht klar erklären, ich meine Angreifer, um zu verstehen, dass er / sie die verschlüsselte Nachricht (zufällige Nachricht) korrekt bricht und einige zusätzliche Informationen benötigt, die er / sie aus dem ausgewählten Klartext erhält und ...
#4
+3
bahamat
2011-01-18 14:36:50 UTC
view on stackexchange narkive permalink

Wenn der Klartext nur zufällig ist, wissen sie es nicht. Die meisten Dateitypen haben jedoch eine erkennbare Struktur. Wenn Sie Blob A mit Schlüssel C durch Algorithmus B führen, erhalten Sie einige Ausgaben. Wenn diese Ausgabe strukturiert ist, haben Sie einen Gewinner.

#5
+2
Rushyo
2011-01-18 22:32:04 UTC
view on stackexchange narkive permalink

Sie tun es nicht. TrueCrypt nutzt genau diese Tatsache, um eine plausible Verleugnung durch "versteckte Volumes" zu bieten: http://www.truecrypt.org/docs/?s=hidden-volume

Eine plausible Verleugnung ergibt sich aus der Tatsache, dass verschlüsselte Daten zufällig aussehen und die vor der Verschlüsselung verschlüsselten Daten nicht ändern.
Was beeinflusst in keiner Weise etwas, was ich geschrieben habe? Tatsache ist, dass Sie nicht wissen, wie die verschlüsselten Daten aussehen sollen, sodass Sie nicht wissen können, wie sie aussehen sollen. Versteckte Bände sind ein praktischer Fall für die Anwendung dieses Konzepts.
Plausible Deniability verwendet keine doppelte Verschlüsselung (verschlüsseltes Volume innerhalb des verschlüsselten Volumes), sondern legt zwei Volumes nebeneinander in derselben Datei ab. Deshalb können Sie Ihr "geheimes" Volume überschreiben, wenn Sie zu viele Daten auf das "for-cops" -Volume schreiben.
... und ich habe nie etwas über doppelte Verschlüsselung erwähnt. Sie streiten sich um einen Strohmann.
Dann haben Sie die gestellte Frage OP nicht beantwortet. Plausible Deniability entschlüsselt nicht dieselben Daten mit unterschiedlichen Schlüsseln, um unterschiedliche Ergebnisse zu erzielen. Es entschlüsselt verschiedene Daten mit verschiedenen Schlüsseln. Nur weil in einer Datei zwei Volumes vorhanden sind, wird nicht überprüft, ob der gefundene Schlüssel korrekt ist. In beiden Volumes befinden sich hochorganisierte Daten (das Dateisystem). Es ändert auch nichts an der Art und Weise, wie der Brute-Force-Angriff (oder das Wörterbuch) auf die Verschlüsselung ausgeführt wird.
„Wenn jemand die Verschlüsselung bricht, woher weiß er dann, dass er erfolgreich ist?“ „Das tun sie nicht.“ Dort wurde die Frage beantwortet. Die TrueCrypt-Referenz hat gerade etwas Geschmack und Kontext hinzugefügt. Die Methodik und die Auswirkungen auf eine bestimmte Methode zum Aufheben einer Verschlüsselung sind irrelevant / stumm
#6
+2
freddyb
2011-03-24 03:20:18 UTC
view on stackexchange narkive permalink

Ihre Frage erscheint mir zweifach. Erstens ist ein guter Verschlüsselungsalgorithmus nicht von der Zufälligkeit zu unterscheiden. Daher wird niemand Ihren Chiffretext von zufälligen Daten unterscheiden. Außerdem wird ein falsch entschlüsselter Chiffretext verwendet Schauen Sie auch zufällig aus. Daher können Sie die Zufallsdaten, die ursprünglich in die Chiffre eingegeben wurden, nicht mit einer umfassenden Schlüsselsuche finden.

Zweitens ist der Punkt, dass Personen normalerweise keine Zufallsdaten in die Chiffre einspeisen Aktuelle Verschlüsselungsstandards decken nicht nur den Algorithmus, sondern auch die verwendeten Daten ab. Normalerweise werden Ihre Daten immer mit einem bestimmten Abstand und bestimmten Metadaten vor- und mit einem Suffix versehen (Verschlüsselungsschemata haben eine feste Länge. Sie sollten irgendwie angeben, wie lange Ihr Text war). . Die Kenntnis dieser Standardbits erleichtert offensichtlich die Entscheidung zwischen dem richtigen und dem falschen Schlüssel :) Während das Auffüllen hauptsächlich praktischen Zwecken dient, kann es auch Sicherheitsmerkmale verbessern oder sogar gewährleisten (vgl. Ausgewählte Klartextangriffe auf Lehrbuch-RSA).

#7
  0
jokoon
2011-01-18 22:41:02 UTC
view on stackexchange narkive permalink

Wenn die Datei Unicode / ansi / etc ist, können Sie einen Algorithmus erstellen, um so etwas wie das erste 200-Zeichen einer Datei zu analysieren und festzustellen, ob mehr lateinische Zeichen als andere Zeichen vorhanden sind.

Ich erinnere mich Ich war ziemlich verärgert, als ich den XOR-Brute-Force-Angriff auf eine einfache Euler-Projektübung versuchte, aber es war einfach und ich musste nur nach gebräuchlichen englischen Wörtern suchen.

Ich habe irgendwo gelesen, dass in Verschlüsselungssoftware, Die Implementierung ist sehr wichtig, manchmal wichtiger als die Alorithmen. Wenn ich das lese, frage ich mich immer noch, ob es sich um offensichtliche Themen wie Pseudozufallsgeneratoren handelt oder eher um weniger offensichtliche Details wie das Ausblenden des Formats der zu verschlüsselnden Datei.

Zum Beispiel, wenn Sie verschlüsseln Wenn es sich bei einer Datei um eine PNG- oder GIF-Datei handelt, entfernen Sie unbedingt die magische Zahl / Zeichenfolge, die in diesen Dateiformaten enthalten ist. Wenn es sich um eine Textdatei handelt, verwenden Sie keine ASCII-Tabelle. Verwenden Sie beispielsweise eine eigene Zeichentabelle Setzen Sie einfach das gesamte lateinische Zeichen auf 0, die Zahlen auf 245-255 und so weiter. Sie könnten auch Permutation oder rot13 oder sonst.

Algorithmen wie AES oder Blowfish / TwoFish sind "mathematisch" sicher, da nachgewiesen wurde, dass keine Angriffe ANDERER ALS BRUTEFORCE als effizient genug getestet wurden: Sie Sie können den Text nur entschlüsseln, indem Sie den tatsächlichen Schlüssel finden.

Diese Algorithmen sind jedoch nur theoretisch effizient. Sie MÜSSEN sie unter Berücksichtigung anderer Übungsfaktoren wie Dateigröße, Komprimierungsverwendung, Textcodierung usw. implementieren.

Beachten Sie beispielsweise, dass es einfach dumm wäre, den Dateinamen im Klartext neben Ihrer verschlüsselten Datei zu speichern.

Tatsächlich sollten moderne symmetrische Chiffren (in sicheren Betriebsarten) den Rest des Dokuments geheim halten, selbst wenn der Start ein bekannter Header ist. (Dies wird als bekannter Klartextangriff bezeichnet.)
Die Sicherheit von Chiffren liegt in der Tatsache, dass niemand (wie bei vielen Menschen) gezeigt hat, wie man sie bricht. Der * einzige * Algorithmus, der mathematisch sicher ist, ist ein One-Time-Pad.
#8
  0
user6373
2011-12-27 17:58:46 UTC
view on stackexchange narkive permalink

Neben dem theoretisch ignoranten Ansatz einiger "Profis" auf diesem Gebiet gibt es eine recht einfache Antwort auf Ihre Frage: Vergleichen Sie die "Ergebnisse der Brute-Force-Entschlüsselung" mit offensichtlichen Dingen für Kategorisierungszwecke.

Lassen Sie mich Ihnen praktische Beispiele geben: Textdateien enthalten höchstwahrscheinlich "Stoppwörter" ( http://en.wikipedia.org/wiki/Stop_words). Wenn Sie nach der Entschlüsselung mehr als ein Stoppwort finden, haben Sie höchstwahrscheinlich erfolgreich Text dekodiert.

Mediendateien wie Bilder und die meisten anderen Dateitypen (Audio, Video usw.) haben spezifische Header, was die Identifizierung der Art von Daten ziemlich einfach macht. Denken Sie, Sie haben ein JPEG entschlüsselt, weil Sie einen ähnlichen Header entdeckt haben? Überprüfen Sie das Dateiformat. Sieht aus wie es richtig ist? Dann haben Sie höchstwahrscheinlich eine JPEG-Mediendatei erfolgreich entschlüsselt.

Ich könnte Bücher mit Beispielen bereitstellen ... aber Sie wissen, was ich jetzt meine, nicht wahr? ;)

Der Rest hängt von einer kleinen "menschlichen Überprüfung" ab, sodass Sie wissen, wann Sie aufhören müssen, alles, was Sie entschlüsseln möchten, brutal zu erzwingen.

Ist es praktisch? Nein. Aber es kann gemacht werden, wenn es richtig codiert ist, und es erleichtert die Arbeit. Ich habe es mehrmals in Aktion gesehen; nicht nur in einem Unternehmensumfeld.



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 2.0-Lizenz, unter der er vertrieben wird.
Loading...