H01 AES GCM Verschlüsselung Tink mit einem String

Ich starte die Google Tink Beispiele mit einem sehr einfachen Programm, das aber dennoch voll einsatzfähig und kryptographisch anspruchsvoll ist (das bedeutet, das aus Gründen der Übersichtlichkeit Programmzeilen weggelassen wurden, die zum Beispiel die nicht mehr benötigten Byte Arrays löschen).

Dieses kleine Beispiel führt eine komplette symmetrische Verschlüsselung im AES GCM-Modus mit einer Zeichenkette durch. Zuerst wird ein Schlüssel erzeugt, damit dann die Zeichenkette verschlüsselt und anschließend wieder entschlüsselt. Zusätzlich werden AAD-Daten (additional authenticaed data oder „ergänzende mitauthentifizierte Daten“) benutzt. Am Programmende wird das AAD-Byte Array verändert und die Entschlüsselung scheitert mit einer Exception.

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, 32/256
Padding genutzt Nein
Sicherheit durch Google sichergestellt
Besonderes

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 Konsole gibt diese Daten aus:

Alle Quellcodes zu Google Tink findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/H-Google-Tink. Alle Programme sind sowohl unter Java 8 als auch unter Java 11 lauffähig.

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

Letzte Aktualisierung: 22.01.2019