C04 El Gamal-Verschlüsselung mit einem String

Da es nur sehr wenige asymmetrische Verschlüsselungsroutinen gibt, stelle ich Euch hier die zweite Variante vor. Es handelt sich um die El Gamal-Verschlüsselung, welche auf Basis der diskreten Algorithmen arbeiten („DSA“). Innerhalb der Standard-Java-Umgebung (zumindest bis Version 8 Build 191) ist dieses Verfahren nicht implementiert, daher benötigen wir hier eine separate Library und nutzen Bouncy Castle.

Sehr auffallend ist die deutliche Verlängerung des verschlüsselten Textes: bei einem Klartext von 29 Byte Länge und 2048-Bit Schlüsseln entsteht ein 512 Byte langer Ciphertext. Weiterhin dauert die Erzeugung eines El Gamal Schlüsselpaares deutlich länger als bei den symmetrischen Varianten. Ihr könnt ja einmal versuchen, statt der 2048-Variante (mein Programm) die 4096er- oder 9192er-Version zu nutzen – Eurer Rechner wird dann eine ganze Weile beschäftigt sein!

Verschlüsselungssteckbrief
Name des Verfahrens El Gamal
Langname El Gamal Verschlüsselung
Art der Chiffre Kompletter Plaintext
Blocklänge (Byte)
Schlüssellänge (Byte/Bit) 32/256, 64/512, 128/1024, 256/2048, 512/4096, 1024/9192
Padding genutzt Nein
Sicherheit nur ab 2048 Bit Schlüssellänge
Besonderes Geeignet nur für kleine Datenmengen

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

Hier die Ausgabe auf der Konsole:

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

Letzte Aktualisierung: 26.12.2018