Ich schreibe eine Android-Anwendung, die zum Verschlüsseln und Entschlüsseln von Dateien mit AES 256. Ich benutze AES-CBC-Modus und PBKDF2 zum Ableiten des AES-Schlüssels von einem Benutzer eingegebenes Passwort. Außerdem erzeuge ich ein sicheres, pseudozufälliges Salz für den Verschlüsselungsschlüssel jeder Datei. Ich speichere die IV und das Salz mit der verschlüsselten Datei, damit ich sie später erneut lesen und neu generieren kann, um die Datei entschlüsseln zu können.Speichert das Speichern des Salzes zusammen mit der verschlüsselten Datei die Sicherheit?
Meine Frage: Speichert das Salz zusammen mit der verschlüsselten Datei die Sicherheit und irgendeine Bedeutung des Salzes selbst? Kann ein Angreifer, der das Salz und die IV kennt, keinen Offline-Brute-Force-Angriff gegen die verschlüsselte Datei durchführen, um den Verschlüsselungsschlüssel herauszufinden?
Was aber, wenn der Angreifer eine Rainbow-Tabelle mit einem gültigen Salz erstellt, das er im Klartext aus der Datei lesen kann? –
@AlexAmiryan Der Bau eines Regenbogentisches ist mindestens so teuer wie ein Brute-Force-Angriff. Wenn Sie also die Tabelle nicht wiederverwenden können (und das ist es, was Salze verhindern), ist es nutzlos, eine Tabelle zu erstellen. Führen Sie einen Brute-Force-Angriff direkt aus. – CodesInChaos