Digitale Signaturen - ElGamal Signaturverfahren

Digitale Signaturen - ElGamal
Signaturverfahren
1. Asymmetrische Chiffrierverfahren
Im Gegensatz zu symmetrischen Verfahren, wo beide Seiten (Sender und Empfänger) den
gleichen Schlüssel benötigen, wird bei asymmetrischen Verfahren mit der public-private-key
Methode gearbeitet.
Der Sender erstellt ein Schlüsselpaar von dem ein Teil veröffentlicht und ein Teil geheim gehalten
wird. Zum verschlüsseln seiner Nachricht nutzt er den geheimen Teil, der Empfänger nutzt zum
entschlüsseln den öffentlichen Teil.
2. Digitale Signaturen
Basierend auf den Methoden der asymmetrischen Verschlüsselung lassen sich Daten auch
signieren. Durch die Signatur wird sowohl die Authentizität als auch die Integrität der Daten
sichergestellt. Um etwa eine Nachricht zu signieren wird i.A. ihr hash-Wert mittels (öffentlich
bekannter und dem Signaturverfahren zugehörigen) hash-Funktion ermittelt, dieser wird
anschließend mit dem geheimen Schlüssel verschlüsselt und den Daten beigefügt.
Der Empfänger wendet ebenfalls die hash-Funktion auf die Daten an und gleicht das Ergebnis mit
der via öffentlichen Schlüsselteil entschlüsselten Signatur ab. Stimmen die hash-Werte überein
so wurde die "Echtheit" der Daten verifiziert.
3. ElGamal Signaturverfahren
Das Verfahren beruht auf dem Problem der Berechenbarkeit des diskreten Logarithmus in
bestimmten zyklischen Gruppen. Der Signatur-Aussteller wählt eine große Primzahl p (p > 10300)
und wählt aus der über p definierten zyklischen Gruppe folgende Elemente:
a... beliebiges Element der Gruppe mit 1 < a < p-2
α...beliebiges erzeugendes Element der Gruppe
b ≡ αa mod p
Es ergeben sich die Schlüsselpaarteile public-key (α,β,p) sowie private-key (a)
Jetzt wird der hash-Wert (h(m)) der zu signierenden Datei signiert:
i... beliebiges Element der Gruppe mit 1 < i < p-2 und ggT(i,p-1) = 1
i-1 mod p-1
r ≡ ai mod p
s ≡ i-1(h(m) -ar) mod p-1
Als Signatur liegt nun das Paar (r,s) vor.
Der Empfänger kennt h(m), den publick-key (α,β,p) sowie das Signaturpaar (r,s).
Er berechnet:
X ≡ αh(m) mod p
Y ≡ brrs mod p
Gilt X = Y so ist Echtheit sowie Unversehrtheit der Daten bestätigt.