- Elgamal-Kryptosystem
-
Das Elgamal-Kryptosystem (auch al-Dschamal-Kryptosystem) ist ein Schema zur Verschlüsselung, das auf dem mathematischen Problem des diskreten Logarithmus beruht. Elgamal ist ein asymmetrischer Verschlüsselungsalgorithmus aufbauend auf der Idee des Diffie-Hellman-Algorithmus, der mit diesen diskreten Logarithmen arbeitet.
Verwandt mit dem hier beschriebenen Verschlüsselungsverfahren (aber nicht mit diesem identisch) ist das Elgamal-Signaturverfahren. Elgamal unterliegt keinem Patent.
Inhaltsverzeichnis
Geschichte
Das Elgamal-Kryptosystem wurde 1985 von Taher Elgamal (Tahir al-Dschamal) entwickelt.
Schlüsselerzeugung
Wie alle asymmetrischen Kryptosysteme verwendet auch das Elgamal-Kryptosystem einen öffentlichen und einen geheimen Schlüssel. Der öffentliche Schlüssel dient der Verschlüsselung und kann veröffentlicht werden, während der geheime Schlüssel der Entschlüsselung dient und nur den Empfängern der Nachricht bekannt sein darf.
Es folgt nun eine genaue mathematische Beschreibung der Schlüsselerzeugung:
Zur Schlüsselerzeugung benötigt man eine Primzahl p, sodass p − 1 einen großen Primfaktor q besitzt. Typischerweise wird q vorgewählt und man errechnet p = 2q + 1 und prüft dann die Primzahleigenschaft von p (Sophie-Germain-Primzahl). Außerdem benötigt man eine Primitivwurzel (manchmal auch "Generator" genannt) der Ordnung p − 1 und ein gleichverteilt zufälliges . Man berechne außerdem . Hierbei steht mod für den Modulo-Operator. Für eine Erläuterung solcher Kongruenzbedingungen siehe Modulo.
Der öffentliche Schlüssel besteht nun aus dem Tripel (p,g,A). Der geheime Schlüssel entspricht a. Die so erzeugten Schlüssel lassen sich auch für die Elgamal-Signatur verwenden.
Seien beispielhaft p = 17 und a = 6. Als Primitivwurzel sei g = 3 gewählt. Man berechne .
Somit ergibt sich im Beispiel der öffentliche Schlüssel (p = 17,g = 3,A = 15) und der geheime Schlüssel a = 6.
Verschlüsselung
Man kann sich eine Verschlüsselung so vorstellen, dass ein Text, etwa aus einem Buch, durch ein geeignetes Verfahren in eine Zeichenfolge gewandelt wird, die nicht mehr ohne größeren Aufwand lesbar ist.
Nebenstehende Abbildung veranschaulicht die Verschlüsselung von Klartexten mit asymmetrischen Kryptosystemen wie dem in diesem Artikel beschriebenen. Ein Klartext wird in einen Geheimtext unter Verwendung eines öffentlichen Schlüssels verwandelt. Zur Handhabung im Rechner verwendet man jedoch eine Folge von Zahlen, in die sich ein solcher Textabschnitt jedoch leicht verwandeln lässt.
Für das Elgamal-Kryptosystem wird nachfolgend dieser Prozess auf mathematischem Weg präzisiert:
Der Klartext m ist aus der Menge zu wählen. Man wähle nun zufällig ein . Nun berechne man und . Der Geheimtext besteht nun aus dem Paar (B,c).
In unserem Beispiel sei der Klartext m = 9. Willkürlich sei b = 5 gewählt. So berechne sich und . Somit ergibt sich der Geheimtext (B = 5,c = 1).
Entschlüsselung
Auch die Entschlüsselung in asymmetrischen Kryptosystemen im Allgemeinen und im Elgamal-Kryptosystem im Speziellen ist nebenstehend in einer Abbildung dargestellt. Der zuvor durch Verschlüsselung entstandene Geheimtext wird unter Verwendung des geheimen Schlüssels wieder in den Klartext gewandelt.
Das genaue mathematische Vorgehen wird nun beschrieben:
Zur Entschlüsselung ist mit x = p − 1 − a zu berechnen. Dies lässt sich folgendermaßen veranschaulichen:
(vgl. kleiner fermatscher Satz) .
Im Beispiel gilt .
oder einfach zum selber nachrechnen: wobei mit hoch − 1 die multiplikative Inverse nach EEA gemeint ist.
Bewertung
Sicherheit
Die Sicherheit von Elgamal hängt eng mit mehreren mathematischen Standardproblemen zusammen.
Das Brechen von Elgamal durch Berechnen des geheimen Schlüssels aus dem öffentlichen ist genau das Diskreter-Logarithmus-Problem. Es gibt derzeit jedoch keine effizienten Algorithmen zur Berechnung diskreter Logarithmen, so dass sich diese – für genügend große Moduln – nicht in „annehmbarer“ Zeit berechnen lassen.
Das Lösen des Diffie-Hellman-Problems (CDH) ist äquivalent zum Invertieren der Elgamal-Verschlüsselung. Das bedeutet, dass jeder, der mit einer gewissen Wahrscheinlichkeit zu einem beliebigen Elgamal-Chiffrat den zugehörigen Klartext finden kann, mit der gleichen Wahrscheinlichkeit CDH lösen, also zu gegebenen ga,gb bestimmen kann. Wer CDH lösen kann, der findet auch zum öffentlichen Schlüssel ga und dem ersten Teil des Chiffrats gb das gemeinsame gab und somit die Nachricht. Umgekehrt kann jeder, der zum öffentlichen Schlüssel ga und Chiffrat gb,gabm die Nachricht m findet, auch aus gabm gab berechnen und somit CDH lösen.
Die stärkere Sicherheitseigenschaft IND-CPA ist äquivalent zum Decisional-Diffie-Hellman-Problem.
Alle drei Annahmen sind Standardannahmen in der Kryptographie. Deshalb wird heute davon ausgegangen, dass das Elgamal-Kryptosystem nicht in vertretbarer Zeit im Sinne der obigen Sicherheitsbegriffe gebrochen werden kann.
Effizienz
Zur Verschlüsselung sind beim Elgamal-Kryptosystem zwei modulare Exponentiationen nötig: und . Da diese nachrichtenunabhängig sind, sind sie vorberechenbar und abspeicherbar. Die Folge ist nur noch eine Multiplikation modulo p.
Das Verfahren erfordert zur Entschlüsselung eine modulare Exponentiation. Im Gegensatz zum Rabin-Kryptosystem lässt es sich nicht mit dem chinesischen Restsatz beschleunigen.
Um jedoch Angriffe zu vermeiden, sollte immer ein neues b für jede neue Nachricht gewählt werden. So steigt zwar der Datenaufwand und die Anzahl der Verschlüsselungsschritte, jedoch ist es einem Angreifer nicht möglich, mit einem einmal gefundenem m alle vorherigen und nachfolgenden Nachrichten zu entschlüsseln. Dies hängt damit zusammen, dass sich bei bekanntem m1 und c1 nach auflösen und ausrechnen lässt. Daraus folgt wiederum, dass zu umgestellt werden kann und da c2 öffentlich ist, sich die Nachricht m2 bestimmen lässt (siehe Known-Plaintext-Angriff).
Literatur
- Johannes Buchmann: Einführung in die Kryptographie, 3., erweiterte Auflage. Springer, Berlin u. a. 2004, ISBN 3-540-40508-9.
- Dietmar Wätjen: Kryptographie, 1. Auflage. Spektrum Akademischer Verlag, Heidelberg, 2004, ISBN 3-8274-1431-8.
Wikimedia Foundation.