A führt die folgenden Schritte durch:
A führt die folgenden Schritte durch:
B führt die folgenden Schritte durch:
![]() |
![]() |
![]() |
|
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
Die ElGamal-Signatur basiert daher auch auf dem DLP. Für die ElGamal-Signatur
gelten dieselben Hinweise, wie für die ElGamal-Verschlüsselung: Die
Signatur ist etwas doppelt so lang, wie der Text, jedoch gilt auch
hier, daß üblicherweise nur kleine Mengen an Text (nämlich der Hash-Wert
der Nachricht ) signiert werden, so daß dies in den meisten
Fällen kein Problem ist.
Die Verwendung einer Hash-Funktion ist aber ohnehin aus Gründen der
Sicherheit zwingend erforderlich: Wird bei dem Signatur-Verfahren
keine Hash-Funktion auf die Nachricht angewendet, dann wird
in Schritt
durch
berechnet. In diesem Fall kann ein Angreifer E eine beliebige
Signatur ohne Kenntnis des geheimen Schlüssels
erzeugen,
indem E folgende Schritte (anstelle des 2. Schrittes) ausführt:
![]() |
![]() |
![]() |
|
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
Außerdem muß für jede Signatur eine neue Zufallszahl gewählt
werden, andernfalls kann ein Angreifer mit hoher Wahrscheinlichkeit
und den geheimen Schlüssel
aufdecken: Seien
und
die Signaturen von
und
. Dann ist
und
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
Die Wahl eines unterschiedlichen für jede Signatur führt
nebenbei auch dazu, daß bei ansonsten gleichen Parametern ein Text
unterschiedliche Signaturen erzeugen kann.