B03 AES-Verschlüsselung Modus ECB String

Nun kommen wir zur ersten „richtigen“ Verschlüsselung, bei der wir den Advanced Encryption Standard oder kurz AES nutzen werden. Auch wenn die Ausgabe recht schmucklos daherkommt, ist bereits diese einfache Version eine vollständige und mit „Hausmitteln“ nicht zu knackende Verschlüsselung… wenn ein paar Punkte berücksichtigt werden (später dazu mehr).

Erst einmal der Steckbrief:

Verschlüsselungssteckbrief
Name des Verfahrens AES/ECB/NOPADDING
Langname ECB Electronic Code Book
Art der Chiffre Blockchiffre
Blocklänge (Byte) 16
Schlüssellänge (Byte/Bit) 16/128, 24/192, 32/256
Padding genutzt Nein
Sicherheit nur bei kleinen Datenmengen
Besonderes Nein

Wie arbeitet diese Routine ? Es werden immer Blöcke von exakt 16 Zeichen verschlüsselt und ausgegeben, wobei es zum vorherigen und nachfolgenden Block keine Verbindung gibt. Die Entschlüsselung erfolgt ebenso in Blöcken von 16 Byte.

Das Programm kann auf 2 Eingabezeilen reduziert werden – in Zeile 38 wird der zu verschlüsselnde Text definiert und die Zeile 47 enthält den (geheimen) Schlüssel für die Ver- und Entschlüsselung. Die Länge des Schlüssels definiert zugleich die Verschlüsselungsstärke der AES-Routine und kann 3 Längen haben: 16 Byte (entspricht 128 Bit), 24 Byte (192 Bit) oder32 Byte (256 Bit). An dieser Stelle gebe ich noch einmal den Hinweis, das Ihr Euer Java System auf unlimitierte Verschlüsselung testet, sonst kann es später zu Fehlermeldungen kommen.

Spielt also aus Spaß mal mit einem längeren Schlüsseln in dem Ihr z.B. in Zeile 47 schreibt – das Programm arbeitet wie verlangt.

final byte[] keyByte = „12345678901234561234567890123456“.getBytes(„UTF-8“);

Nun probiert einmal einen Schlüssel der ein Byte länger oder kürzer ist: nach dem Start hagelt es eine Fehlermeldung das der Schlüssel nicht passend ist.

Weiterhin könnt Ihr ausprobieren, wie das Programm auf einen plaintext reagiert, der doppelt so lang wie der Demonstrationstext ist (also 32 Zeichen lang ist). .. und was passiert, wenn der plaintext 15 oder 17 Zeichen lang ist ?

Falls es Dich interessiert, warum ich die rot geschrieben Warnung nachfolgend dort hinschreibe, solltest Du die zweite Seite aufrufen.

Bitte die nachfolgende Routine nicht für den Echteinsatz nutzen, da sie aus kryptographischer Sicht sehr angreifbar ist ! Eine optische Erläuterung für meine Einschätzung findet Ihr in der Rubrik Unsicherheit unter G01 ECB Pinguin.

Die Ausgabe des Programms sieht so aus:

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

Letzte Aktualisierung: 18.11.2018