it-swarm.com.de

Gibt es einen Verschlüsselungsalgorithmus, mit dem eine einzelne Nutzlast basierend auf dem Kennwort zwei verschiedene Ausgaben haben kann?

Angenommen, ich habe einige vertrauliche Informationen, die verschlüsselt sind, und ich bin gezwungen, dieses Passwort offenzulegen.

Mein Ziel ist es, dass entschlüsselte Nutzdaten sinnvoll erscheinen und das Passwort gültig ist.

Gibt es einen solchen Algorithmus, mit dem ein nterschiedliches Kennwort auf dieselbe Nutzlast angewendet werden kann, sodass die alternativen entschlüsselten Daten offengelegt werden?

61

Bei vielen gängigen Algorithmen ist es durch Ändern des Schlüssels durchaus möglich, beliebige Daten im ersten Block abzurufen. Probleme treten auf, wenn die Daten länger sind als die Schlüsselblockgröße. Der Rest der Daten (über den ersten Block hinaus) würde nach dem Austausch von Schlüsseln zufällig aussehen, vorausgesetzt, Sie verwenden eine sichere Verkettungsmethode. Sie könnten eine unsichere Verkettungsmethode verwenden, aber ich würde sie nicht empfehlen.

Sie können XOR OTP-Verschlüsselung verwenden. Dies unterscheidet sich von den meisten Verschlüsselungen, bei denen der Schlüssel mathematisch wiederverwendet wird. Bei OTP (One Time Pad) hat der Schlüssel die gleiche Länge wie die Daten. Mit XOR (einem der häufigsten OTP) haben Sie die Flexibilität, die gewünschte Nachricht willkürlich zu erzeugen.
(Ihr Gegner ist sich dieser Möglichkeit möglicherweise bewusst?)

Erstellen Sie zunächst Dateien gleicher Länge:

  • originale Nachricht
  • zufällige Daten (der echte Schlüssel)

XOR zusammen gibt dir

  • verschlüsselte Nachricht

dann nehme

  • gefälschte Nachricht
  • verschlüsselte Nachricht

XOR zusammen gibt dir

  • gefälschter Schlüssel

Zum Entschlüsseln nehmen

  • verschlüsselte Nachricht
  • echter oder gefälschter Schlüssel

XOR sie zu bekommen

  • echte oder gefälschte Nachricht

Als @ Alpha3031 kommentiert könnten Sie tatsächlich eine Nachricht (z. B. die gefälschte) mit herkömmlichem AES verschlüsseln (häufiger und erfordert eine kleinere Schlüsseldatei) und dann XOR ( seltener), um den anderen zu produzieren. (z. B. die eigentliche Nachricht?)

XOR kann auf alle Dateien angewendet werden, die ausreichend unvorhersehbar/zufällig sind. (z. B. verschlüsselte Daten)

25
Bryan Field

Die theoretische Frage hier ist eine Größen-/Entropiefrage. Die Schlüsselregel lautet, dass die Entropie der verschlüsselten Nachricht mit der Entropie der ursprünglichen Nachricht übereinstimmt. Wenn der Algorithmus keine Komprimierung beinhaltet, entspricht die Größe der verschlüsselten Nachricht der Größe der ursprünglichen Nachricht.

Damit die verschlüsselte Nachricht je nach benötigtem Schlüssel auf zwei verschiedene Arten dekodiert werden kann, enthält sie zwei verschiedene Nachrichten. Eine Möglichkeit wäre, eine echte Nachricht mit einem Schlüssel und eine gefälschte Nachricht mit einem anderen Schlüssel zu verschlüsseln und beide codierten Nachrichten (nach dem Auffüllen der kürzeren) beispielsweise mit jeweils einem Byte zu kombinieren. Vorausgesetzt, Sie fügen zu Beginn der Nachrichten eine bekannte ID hinzu, bevor Sie sie verschlüsseln, konnte der Algorithmus zum Zeitpunkt der Dekodierung nur die Nachricht zurückgeben, die die richtige ursprüngliche ID hatte.

Das Problem ist, dass es zwei verschiedene Nachrichten + einige zusätzliche Informationen gibt. Und eine verschlüsselte Nachricht länger als die ursprüngliche zu haben, ist nicht so plausibel ...

Das ist der Grund, warum ich keinen Algorithmus kenne, der plausible Verleugnung implementiert, sondern nur Container , das ist ein vollständig verschlüsseltes Dateisystem. Dies wurde im exzellenten TrueCrypt implementiert, bevor die Unterstützung eingestellt wurde. Glücklicherweise bietet es eine Abzweigung des Projekts immer noch an, VeraCrypt .

VeraCrypt bietet tatsächlich versteckte Volumes an. Tatsächlich wird ein Teil des leeren Raums eines normalen Volumes verwendet, um ein bestimmtes Volume mit einem bestimmten Schlüssel zu speichern. Wenn Sie einen Schlüssel vorlegen, wird versucht, ein verstecktes Volume zu finden, wenn nicht ein normales Volume. Wenn Sie das normale Volume im normalen Modus öffnen, lässt nichts vermuten, dass es auch ein verstecktes Volume enthält. Es verfügt lediglich über nicht genutzten Speicherplatz, was für ein Dateisystem keine Überraschung ist. Wenn Sie in diesem Modus viele Daten schreiben, werden Sie natürlich die verborgenen Volumendaten überschreiben und definitiv zerstören. Es gibt jedoch einen speziellen Modus, um beide Tasten zu vergeben und das externe Volume zu verwenden, ohne dass das Risiko besteht, das interne zu überschreiben.


Oben war der technische Teil. Eine plausible Verleugnung erfordert jedoch auch, dass sich der Inhalt des externen Containers lohnt, da die Fähigkeit versteckter Container ein bekanntes Merkmal ist. IMHO gibt es zwei akzeptable Möglichkeiten:

  • Sortieren Sie Ihre Informationen in 3 Klassen, einfach, vertraulich und geheim, und speichern Sie sie entsprechend: einfach außerhalb des Containers, vertraulich im externen Teil (verwenden Sie den doppelten Kennwortzugriff ) und geheim im versteckten Teil. Da der externe Container mehr als unschuldige Dateien enthält, ist die Existenz eines versteckten Containers nicht ersichtlich. Sie müssen jedoch den externen Container tatsächlich verwenden, mindestens so viel wie den inneren, und bereit sein, seinen Inhalt offenzulegen

  • Verwenden Sie den externen Behälter als Hauptspeicher. Dies ist eine häufige Verwendung auf Unternehmens-Laptops, da dadurch sichergestellt wird, dass im Falle eines Diebstahls oder Verlusts des Laptops keine vertraulichen Informationen sofort verfügbar sind (befasst sich mit dem Vertraulichkeitsteil der Sicherheit ...). Die Rückseite ist, dass Sie den Container beim Booten als einen einzelnen Container bereitstellen und ihn bei normaler Verwendung sofort aushängen sollten, um ihn manuell im Dual-Modus erneut bereitzustellen.

Und je nachdem, wer der Gegner ist, gibt es auf VeraCrypt-Seiten über plausible Verleugnung und Sicherheitsanforderungen für versteckte Volumes zusätzliche Hinweise, z. B. die Verwendung des versteckten Volumes beim Booten von einer schreibgeschützten CD /DVD...

Technische Sicherheit ist wie immer nur ein Teil der globalen Sicherheit. Wenn die Informationen so sensibel sind, dass Sie um Ihre physische Integrität fürchten können, sollten Sie physische Sicherheitsmaßnahmen ergreifen und sich nicht nur auf plausible Verleugnung verlassen: Es ist ein nützliches Tool, das helfen kann, sichere Informationen zu verbergen, aber keine magische Silberkugel. Nur Snake Oil Company kann diese ...

35
Serge Ballesta

Kryptografische Tarnung

CA Technologies hat eine Technologie patentiert, die als Cryptographic Camouflage bekannt ist.

Ein sensibler Punkt in der Kryptographie mit öffentlichen Schlüsseln ist der Schutz des privaten Schlüssels. Wir beschreiben eine Methode zum Schutz privater Schlüssel mithilfe kryptografischer Tarnung. Insbesondere verschlüsseln wir den privaten Schlüssel nicht mit einem Kennwort, das für einen umfassenden Angriff zu lang ist. Stattdessen verschlüsseln wir es so, dass nur ein Passwort es korrekt entschlüsselt, aber viele Passwörter entschlüsseln es, um einen Schlüssel zu erzeugen, der gültig genug aussieht, um einen Angreifer zu täuschen. Für bestimmte Anwendungen schützt diese Methode einen privaten Schlüssel vor Wörterbuchangriffen, wie dies bei einer Smartcard der Fall ist, jedoch vollständig in Software.

Ja, Sie können eine Nachricht (in diesem Fall einen Schlüssel) nehmen und so verschlüsseln, dass es einen richtigen Schlüssel und viele "falsche" Schlüssel gibt, die falschen Klartext erzeugen.

6
John Wu

Was Sie fragen, ist, wie Sie eine plausible Verleugnung zusätzlich zur geheimen Verschlüsselung implementieren können. Es gibt zwar keine spezifischen Algorithmen, um dies zu tun, aber Sie können dies auf Anwendungsebene einfach implementieren - kombinieren Sie einfach zwei symmetrische Container in einem und versuchen Sie jedes Kennwort für jeden Container.

Ich erinnere mich, dass TrueCrypt in der Vergangenheit über eine solche Funktion verfügte, obwohl ich nicht sicher war, ob die Implementierung etwas tat, was ich vorschlug oder anders implementierte.

5
pFarb

Ja, mit Vorbehalten.

Bedarf:

1) Wenn Sie das Verschlüsselungsprogramm bereitstellen, kann es einer sorgfältigen Prüfung nicht standhalten.

2) Die gefälschte Nachricht muss Text oder ähnliches sein - niedrige Entropie.

3) Dies ist eine Größenbeschränkung für die gefälschte Nachricht - sie muss wahrscheinlich mindestens nahe an der Größe der realen Nachricht liegen. Wenn die reale binär ist, muss die Fälschung wesentlich größer sein. Jedes Paar gefälschter und echter Nachrichten kann ausprobiert werden. Wenn die Größen falsch sind, werden sie abgelehnt.

Algorithmus:

Die ausgabeverschlüsselte Datei hat immer genau die Größe der gefälschten Eingabedatei. Dies sieht so aus, als würde es einfach verschlüsselt, aber in Wirklichkeit werden sowohl die gefälschten als auch die echten Dateien vor dem Verschlüsseln komprimiert. Die verschlüsselte Datei wird mit Kauderwelsch auf die Größe der gefälschten Datei aufgefüllt. Wenn die beiden Dateien mehr als die unkomprimierte gefälschte Größe ergeben, werden sie abgelehnt.

Um die Datei zu extrahieren, nehmen Sie das angegebene Kennwort, entschlüsseln die reale Datei und führen sie über den Dekomprimierer aus. Wenn der Dekomprimierer ein Problem hat, versuchen Sie es erneut mit der gefälschten Datei. Wenn der Dekomprimierer immer noch ein Problem hat, geben Sie einfach Kauderwelsch in der Größe der Eingabedatei aus.

2
Loren Pechtel

Wie @Serge Ballesta bereits bemerkt hat, darf der Informationsgehalt der verschlüsselten Nachricht nicht kleiner sein als der Informationsgehalt der wahren Nachricht plus der Informationsgehalt der gefälschten Nachricht. Daher wäre jede verschlüsselte Nachricht, die erheblich größer als die gefälschte Nachricht ist, automatisch verdächtig.

Denken Sie andererseits daran, dass für Menschen lesbare Inhalte viel Redundanz aufweisen, was im Grunde genommen ein "freier Speicherort für Informationen" ist. Um einige Beispiele zu nennen: Verstecken von Nachrichten in Bild und Ton oder Ändern des Textes durch Synonyme, Phrasen usw. In diesem Licht wäre das "spezielle Passwort", die normalerweise entschlüsselte Datei durch einen zusätzlichen Decoder (normalerweise auch verschlüsselt) zu leiten es sieht aus wie Lärm).

Um ein einfaches konkretes Beispiel zu geben (um sicherzugehen, dass es klar ist: Es ist nur ein Beispiel, um die Idee zu veranschaulichen, verwenden Sie es bitte nirgendwo), stellen Sie sich eine einfache Substitutions-Chiffre vor, in der jeder Buchstabe mehrere Darstellungen hat, um eine Frequenzanalyse zu vermeiden. Anstatt jedoch eine zufällige Ersetzung auszuwählen, wählen Sie diejenige aus, die durch den Chiffretext der versteckten Nachricht vorgegeben wird (die zufällig genug aussehen sollte).

Hoffe das hilft ;-)

1
dtldarek

Wenn Sie etwas "Betrug" zulassen.

Verschlüsselung :

  • Nimm 2 verschiedene Nutzlasten
  • Schreiben Sie sie auf
  • Escape ihre Bytes als esadezimalen Text (Zeichen von 0 bis 9 und von A bis F)
  • Nehmen Sie ein Zeichen aus 1 Nutzlast und 1 Zeichen aus einer anderen Nutzlast. Jedes dritte Byte wird zufällig ausgegeben.
  • da Nutzdaten am Ende eines Esadezimaltextes unterschiedliche Längen haben können, hat er das Zeichen "G" und dann so viele zufällige Zeichen wie nötig.

Das Passwort setzt sich wie folgt zusammen :

  • 127 Bit zum Entschlüsseln des Streams
  • 1 Bit zur Auswahl der Nutzlast
  • 128 Bit zum Entschlüsseln der Nutzdaten.

Grundsätzlich erhalten Sie 1 Paket mit der Größe von 3 Nutzdaten, es muss entschlüsselt werden, dann müssen Sie eine Gruppe von Bytes auswählen und auch entschlüsseln.

Entschlüsselung :

  • Entschlüsseln Sie den Stream mit dem ersten Teil des Passworts
  • Wählen Sie die Nutzlast aus (jedes erste oder zweite Zeichen alle 3 Zeichen).
  • Entkomme Charaktere
  • entschlüsseln Sie auch das Paket.

Es ist offensichtlich, dass dieses Dateiformat 2 Nutzdaten enthält. Was nicht offensichtlich ist, ist, dass Sie Müll und nur 1 echte Nutzlast anstelle von 2 darin ablegen können.

1
CoffeDeveloper