Kann ich eine verschlüsselte Datei selbst wenn jemand geändert entschlüsseln?

StackOverflow https://stackoverflow.com/questions/2643813

  •  27-09-2019
  •  | 
  •  

Frage

Achtung: Diese Frage stark bearbeitet wurde. Ich versuchte mein Bestes, den Namen des Autors Absichten zu erraten. Sehen Sie bitte die Originalfassung .


Ich bin nicht sicher, wie das GPG Kommandozeilen-Tool verwenden, dass wir zu verschlüsseln Dateien verwenden.

File.txt ist eine einfache Textdatei:

Testing
hello world  
My security things.

Dies ist, wie ich verschlüsseln Sie die Datei:

gpg --symmetric File.txt 

Das gibt mir eine neue, verschlüsselte Datei: File.txt.gpg

Wenn jemand nun die verschlüsselte Datei ändert, bin ich nicht mehr in der Lage, es zu entschlüsseln.

$ gpg --decrypt File.txt.gpg 
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: eof

Wie kann ich den Inhalt meiner Datei zu erhalten, auch wenn jemand es geändert hat?

War es hilfreich?

Lösung

Die typische symmetrische Verschlüsselung Modalität arbeitet auf Datenblöcke und die Ergebnisse jedes Blocks verwendet werden, um den nächsten Block zu verschlüsseln.

Ein Block ist in der Regel 128 bis 256 Bit lang. Wenn ein Bit innerhalb eines Blocks beschädigt ist, dann kann der gesamte Block nicht entschlüsselt werden. Ist dies nicht der Fall wäre, dann wäre es möglich, einige Informationen über den Inhalt des Blocks auch ohne den Schlüssel zu bekommen. Ein wichtiger Bestandteil eines jeden guten Verschlüsselungsalgorithmus ist, dass eine Veränderung eines einzelnen Bits entweder im Klartext oder die Chiffriertext Änderungen an einem beliebigen Anzahl von Bits in dem entsprechenden Chiffriertext oder Klartext führen kann.

Ein weiteres wichtiges Merkmal des Verschlüsselungsmechanismus ist, dass identische Blöcke in dem Klartext sind nicht in der Chiffriertext zu identischen Blöcken verschlüsselt. Wenn sie waren, dann wäre es möglich, Informationen über den Inhalt des Klartextes zu gewinnen. Zum Beispiel könnte Bitmap-Bilddatei lesbar sein, wenn verschlüsselt, wenn jeder Block genau die gleiche Art und Weise verschlüsselt wurde, weil des Musters, die entstehen. Aus diesem Grund werden manchmal die Ergebnisse nur einen Block von Verschlüsselung verwendet, um den nächsten Block zu verschlüsseln. Darüber hinaus gibt es gemeinsame Modalitäten, bei denen nur der Schlüssel für die Verschlüsselung der nachfolgenden Blöcke betrifft, nicht der Klartext.

Wenn die Ergebnisse der Verschlüsselung eines Blocks beeinflussen, wie die folgenden Blöcke verschlüsselt sind, dann Korruption auf ein einzelnes Bit in einem einzigen Block wird den Rest des Chiffriertext verursachen, die diesen Block nicht behebbar zu sein, folgt.

Andere Tipps

Die Beantwortung der ursprünglichen Frage in juristischer Hinsicht;

Wenn Sie nicht genau wissen, was jemand Änderungen an Ihrer verschlüsselten Datei, Ihr Inhalt ist weg, und man kann es wohl nicht zurückbekommen.

Das ist, warum verschlüsselte Dateien verwendet werden, Ihre Daten zu sichern; sie sind wirklich, wirklich schwer zu arbeiten rückwärts.

Sie sollten produzieren und vertreiben eine verdauen die verschlüsselte Datei zusammen mit der verschlüsselten Datei selbst.

Bevor Sie die Datei zu entschlüsseln, berechnen die verdauen und prüfen, ob wird an den man gleich. Wenn die Digests nicht übereinstimmen dann die verschlüsselte Datei beschädigt wurde und ist ungültig.

Sie können nicht eine Datei verschlüsseln, ändern Sie es dann und so tun, als immer noch gültig verschlüsselt sein.

Es gibt keine Möglichkeit, Sie in der Lage sein werden, dies zu tun mit nur der verschlüsselten Datei.

Ich glaube, was Sie suchen Datenredundanz . CDs zum Beispiel haben es. Sie können einen Kratzer auf dem einem machen und die ganzen Daten noch lesbar ist, trotz der Tatsache, dass viele Daten mit dem Kratzer verloren gegangen.

Der einfachste Weg, es zu tun ist, zu speichern, einfach die Datei zweimal, eine Prüfsumme Sie feststellen können, wenn einer von ihnen modifiziert wurde. Fortgeschrittenere Techniken lappen Prüfsummen und Paritätsbits Verwendung / Bytes. Ein Überblick über Fehlererkennung und Korrekturtechniken auf Wikipedia gefunden werden kann.

Ich empfehle Sie es selbst nicht umsetzen. Es ist viel einfacher und sicherer, nur eine bereits bestehende Implementierung zu verwenden. (Ich bin sicher, es gibt einige da draußen, aber ich kenne sie nicht.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top