it-swarm.com.de

Warum sollte eine verschlüsselte Datei ~ 35% größer sein als eine unverschlüsselte?

Laut ownCloud-Dokumentation können Dateigrößen, wenn Sie die Verschlüsselung aktivieren, ~ 35% größer sein als ihre unverschlüsselten Formulare.

Nach meinem Verständnis der Verschlüsselung sollten die Dateigrößen mehr oder weniger identisch sein (möglicherweise einige aufgefüllte 0-Bits am Ende, um ein Vielfaches der Schlüsselgröße zu erhalten).

Ist das falsch Wenn nicht, warum?

42
warren

Höchstwahrscheinlich ist die verschlüsselte Datei base64-codiert, was eine Erhöhung der Datei um 33,3% bedeuten würde (Sie codieren drei Datenbytes in vier Byte base64-Daten). Wenn Sie alle 64 Zeichen eine neue Zeile einfügen, um das Lesen zu erleichtern (wie dies durch ASCII Rüstung in openssl, GPG, PGP) erfolgt, wird die Größe um 65/64 erhöht.

Die Kombination dieser beiden Effekte führt dazu, dass die neue Datei (4/3) * (65/64) = 135,4% der Größe des Originals oder eine Erhöhung der Dateigröße um 35,4% beträgt.

Ich habe die Berechnung in diese Antwort hier durchlaufen.

Sie haben jedoch Recht, dass die Verschlüsselung die Dateigröße nicht wesentlich ändern muss. Möglicherweise werden ein paar Datenblöcke hinzugefügt, wenn ein Header, ein Initialisierungsvektor/eine Initiale, eine Auffüllung vorhanden ist, um einen vollständigen Block und/oder einen MAC zur Überprüfung der Integrität zu erstellen. Diese Änderungen sind jedoch für große Dateien unbedeutend (z. B. Hinzufügen von vier) Blöcke für eine AES-codierte Datei mit 1 MB würden die Datei um 0,006% vergrößern.

Um die Dateigröße jedoch nicht zu erhöhen, müssen Sie die verschlüsselten Daten als beliebige Binärdatei speichern und weitergeben können. Beliebige Binärdateien werden häufig über E-Mails blockiert, um die Verbreitung von Computerviren zu verhindern, und sind außerhalb von Hexeditoren oft nur schwer zu öffnen. Base64-codierte Dateien lassen sich leichter weitergeben und sind portabler als Binärdateien eines unbekannten Dateityps.

79
dr jimbob

Wenn die Dateien komprimiert werden, kann diese Diskrepanz auftreten.

Komprimierungsalgorithmen funktionieren am besten mit nicht zufälligen Daten. Die Verschlüsselung zielt darauf ab, Zufälligkeit aus Informationen zu erzeugen. Informationen sind im Allgemeinen leicht zu komprimieren, da sie Muster aufweisen. Wenn Sie es jedoch verschlüsseln, löschen Sie im Allgemeinen alle Muster (und Informationen).

Beispiel: 2,75 GB E-Mail-Archivdateien können problemlos auf <0,5 GB komprimiert werden. Wenn diese E-Mail-Archive jedoch verschlüsselt wären, wäre die komprimierte Version viel näher an 2,75 GB.

7
d1str0

Normalerweise gibt die% -Markierung an, dass die Datei nach der Verschlüsselung möglicherweise Base64-codiert ist und über jeden Block eine Prüfsumme erhält, um Beschädigungen zu vermeiden. Base64 codiert Zeichen von 8 Bit in Zeichen von 6 Bit, was bedeutet, dass die betreffende Datei um etwa 30% größer wird, da mehr Zeichen erforderlich sind, um die gesamte Datei zu rendern. Wenn Sie eine Prüfsumme pro Block hinzufügen, erhalten Sie bis zu 35%.

Normalerweise erhöht die Verschlüsselung selbst den Overhead. Normalerweise ist der Overhead Kopf- und Fußzeile, eventuell verschlüsselter Schlüssel, Parameter, Salze, Prüfsumme und auch eine Blockgröße minus 1, denn wenn die verschlüsselten Daten nicht gleichmäßig mit der Blockgröße teilbar sind, müssten Sie mit bis zu Block auffüllen Größe - 1.

Alle diese Daten im vorherigen Satz würden jedoch jeder Datei eine statische Datenmenge hinzufügen, unabhängig von ihrer Größe, selbst wenn sie 1 oder 100 GB groß ist.

Die in% ausgedrückte Datenvergrößerung besagt, dass es sich um einen Neukodierungsprozess wie base64 oder etwas Ähnliches handelt.

3