B12 AES Modus GCM Kein Padding Zufalls GCM Nonce String

Der hier vorgestellte Betriebsmodus GCM (Galois Counter Mode) führt nicht nur eine Verschlüsselung aus, sondern schützt die verschlüsselten Daten (ciphertext) auch vor einer Veränderung. Damit ist der GCM-Modus eine Kombination des AES CTR-Betriebsmodus mit einem „Keyed-Hash Message Authentication Code“ (MAC), also einer Art Prüfsumme.

Dieser Modus sieht in der Implementierung etwas schwieriger aus, aber der Mehraufwand lohnt sich, denn er sichert die Übertragung vor einer beabsichtigten oder unbeabsichtigten Veränderung der geheimen Daten.

Hierzu nutzt der Modus einen zusätzlichen „Hash-Tag“, der die Datenmenge geringfügig erhöht. Der GCM-Modus bietet zusätzlich noch die Verwendung von ergänzenden Daten an – dieses zeige ich Euch im Beispiel B14.

Wichtig ist es, den Zufalls-GCM Nonce zusammen mit den verschlüsselten Daten an den Empfänger zu übermitteln, denn nur so kann er die Daten wieder entschlüsseln.

Auch wenn ich angebe, das hier kein Padding genutzt wird, so kann dennoch eine beliebige Anzahl an Daten verschlüsselt werden. Der Grund liegt im CTR-Modus (als einem Teil des GCM Modus) – er arbeitet als Stream-Cipher und damit unabhängig von einer festen Blockgröße.

Hier der Steckbrief des Verfahrens:

Verschlüsselungssteckbrief
Name des Verfahrens AES/GCM/NOPADDING
Langname GCM Galois_Counter Mode
Art der Chiffre Blockchiffre, auch Stream-Chiffre
Blocklänge (Byte) 16
Schlüssellänge (Byte/Bit) 16/128, 24/192, 32/256
Padding genutzt Nein
Sicherheit sicher bei Nutzung von unterschiedlichen GCM Nonces
Besonderes Benötigt einen GCM Nonce, der als Zufallszahl erzeugt wird

Bitte die nachfolgende Routine nur nach einer gründlichen Überprüfung für den Echteinsatz nutzen. Aus kryptographischer Sicht dürfte sie für viele Einsatzgebiete nutzbar sein.

Die Konsolenausgabe sieht so aus:

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

Letzte Aktualisierung: 15.11.2018