Wie Sie den anderen Antworten entnehmen können, ist eine eindeutige IV pro verschlüsselter Datei von entscheidender Bedeutung, aber warum ist das so?
Lassen Sie uns zunächst überprüfen, warum eine eindeutige IV pro verschlüsselter Datei wichtig ist. ( Wikipedia zu IV ). Die IV fügt Ihrem Start Ihres Verschlüsselungsprozesses Zufälligkeit hinzu. Bei Verwendung eines Verschlüsselungsmodus für verkettete Blöcke (bei dem ein Block verschlüsselter Daten den vorherigen Block verschlüsselter Daten enthält) bleibt ein Problem hinsichtlich des ersten Blocks bestehen, bei dem die IV eingeht.
Wenn Sie keine IV hatten und die Verkettung verketteter Blöcke nur mit Ihrem Schlüssel verwendeten, erzeugen zwei Dateien, die mit identischem Text beginnen, identische erste Blöcke. Wenn sich die Eingabedateien auf halbem Weg ändern würden, würden die beiden verschlüsselten Dateien von diesem Punkt an bis zum Ende der verschlüsselten Datei unterschiedlich aussehen. Wenn jemand die Ähnlichkeit am Anfang bemerkte und wusste, womit eine der Dateien begann, konnte er ableiten, womit die andere Datei begann. Wenn Sie wissen, womit die Klartextdatei begann und was der entsprechende Chiffretext ist, kann diese Person den Schlüssel bestimmen und dann die gesamte Datei entschlüsseln.
Fügen Sie nun die IV hinzu. Wenn jede Datei eine zufällige IV verwenden würde, wäre ihr erster Block anders. Das obige Szenario wurde vereitelt.
Was wäre, wenn die IV für jede Datei gleich wäre? Nun, wir haben wieder das Problemszenario. Der erste Block jeder Datei wird mit demselben Ergebnis verschlüsselt. Praktisch unterscheidet sich dies nicht davon, dass die IV überhaupt nicht verwendet wird.
Kommen wir nun zu Ihren vorgeschlagenen Optionen:
Option 1. Betten Sie fest codiertes IV in die Anwendung ein und speichern Sie den Schlüssel in der Schlüsseldatei.
Option 2. Betten Sie den fest codierten Schlüssel in die Anwendung ein und speichern Sie die IV in der Schlüsseldatei.
Diese Optionen sind ziemlich identisch. Wenn zwei Dateien, die mit demselben Text beginnen, verschlüsselte Dateien erzeugen, die mit identischem Chiffretext beginnen, werden Sie abgespritzt. Das würde bei beiden Optionen passieren. (Angenommen, es gibt einen Hauptschlüssel, mit dem alle Dateien verschlüsselt werden).
Option 3. Speichern Sie sowohl den Schlüssel als auch die IV in der Schlüsseldatei.
Wenn Sie für jede Schlüsseldatei eine zufällige IV verwenden, sind Sie gut. Keine zwei Schlüsseldateien sind identisch, und jede verschlüsselte Datei muss eine Schlüsseldatei haben. Eine andere Schlüsseldatei funktioniert nicht.
PS: Wenn Sie sich für Option 3 und zufällige IVs entschieden haben, prüfen Sie, wie Sie feststellen können, ob die Entschlüsselung erfolgreich war. Nehmen Sie eine Schlüsseldatei aus einer Datei und versuchen Sie, damit eine andere Verschlüsselungsdatei zu entschlüsseln. Möglicherweise stellen Sie fest, dass die Entschlüsselung fortschreitet und zu Müllergebnissen führt. Beginnen Sie in diesem Fall mit der Untersuchung der authentifizierten Verschlüsselung .