B08 AES Modus CBC PKCS5Padding Zufalls-Initvektor String

Alle vorigen Beispiele trugen stets den Sicherheitshinweis „Nicht benutzen“ – wobei dieses aus unterschiedlichen Gründen erfolgte. Der hier beschriebene CBC-Modus bezieht einen Teil seiner Sicherheit aus der Tatsache, das der Initialisierungsvektor immer zufällig gewählt und sich für jede einzelne Verschlüsselung stets von den vorher genutzten unterscheiden sollte.

Im nachfolgenden Beispiel wird der Initialisierungsvektor mit einer Zufallsroutine erzeugt. Bitte beachtet das ich dafür nicht die „Random“-Methode sondern die „SecureRandom“-Methode benutzt habe – diese liefert aus kryptographischer Sicht wesentlich bessere Zufallszahlen.

Noch ein kleiner aber wichtiger Hinweis: damit der Empfänger der verschlüsselten Nachricht diese auch entschlüsseln kann, benötigt er neben dem Passwort auch den genutzten Initialisierungsvektor (iV). Dieser ist (im Gegensatz zum Passwort) aber nicht geheim und kann somit zusammen mit den verschlüsselten Daten verschickt werden.

Hier der Steckbrief des Verfahrens:

Verschlüsselungssteckbrief
Name des Verfahrens AES/CBC/PKCS5PADDING
Langname CBC Cipher Block Chaining
Art der Chiffre Blockchiffre
Blocklänge (Byte) 16
Schlüssellänge (Byte/Bit) 16/128, 24/192, 32/256
Padding genutzt Ja
Sicherheit sicher bei Nutzung von unterschiedlichen Initialvektoren
Besonderes Benötigt einen Initialvektor, der als Zufallszahl erzeugt wird.

Bitte die nachfolgende Routine nicht für den Echteinsatz nutzen, da sie aus kryptographischer Sicht sehr angreifbar ist !

Die Ausgabe auf der Konsole sieht nicht anders aus als in Version B07, aber: bei jedem Programmlauf wird ein neuer iV erzeugt, welcher auch einen gänzlich anderen ciphertext erzeugt.

Hier folgt das Beispiel mit Methoden:

Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Aktualisierung: 07.11.2018