18.11.2013 Aufrufe

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Erzeugung der ElGamal-Signatur: Um die Signatur zu m ∈ {0, 1} ∗ zu<br />

erzeugen wählt User X zufällig ein k ≥ 2 <strong>und</strong> berechnet<br />

S X (m) = ( g k , [k] −1 [h(m) − d<br />

}{{}<br />

X h ′ (g k )]).<br />

} {{ }<br />

=:γ∈G<br />

=:s∈Z/l<br />

[x] steht für die Restklasse von x in Z/l. Dabei ist unbedingt für jede<br />

Nachricht ein neues k zu verwenden. User X könnte die bereits verwendeten<br />

k’s wie Tan-Nummern abstreichen.<br />

Satz 5.5.1 Es gilt γ s E h′ (γ)<br />

X<br />

= g h(m) .<br />

Beweis: γ s = g [k][k]−1 ([h(m)]−[d X h ′ (g k ))]) = g h(m) g −d X h ′ (γ) = g h(m) E −h′ (γ)<br />

X<br />

. □<br />

Man beachte: In die Formel für S X (m) geht der geheime Exponent d X ein. Dies<br />

führt dazu, daß nur Xaver S X (m) aus m berechnen kann. Ganz im Gegensatz<br />

dazu kann jeder, der γ <strong>und</strong> s vorgelegt bekommt, die beiden in obigem Satz<br />

vorkommenden Werte γ s E h′ (γ)<br />

X<br />

<strong>und</strong> g h(m) berechnen. Dazu braucht man nur<br />

den öffentlichen Schlüssel E X von User X <strong>und</strong> die öffentlichen Hashfunktionen<br />

h <strong>und</strong> h ′ zu benutzen.<br />

Verifizieren einer ElGamal-Signatur: Der Verifizierer V bekommt (m, S)<br />

vorgelegt, wobei S = (γ, s) ∈ G × Z/l. Er soll prüfen, ob S eine gültige Unterschrift<br />

von X zu der Nachricht m ist.<br />

V berechnet γ s E h′ (γ)<br />

X .<br />

V berechnet g h(m)<br />

Nur wenn diese beiden Werte übereinstimmen akzeptiert V die Unterschrift.<br />

Zur Sicherheit:<br />

a) Natürlich gilt d X = Log g (E X ). Dieser Logarithmus ist praktisch nicht<br />

berechenbar. Wenn es einem Angreifer dennoch gelingt ihn zu berechnen,<br />

so kommt er in den Besitz von d X . Wer d X hat, der kann zu beliebigen<br />

Nachrichten m Unterschriften von X erzeugen.<br />

b) Sei m eine Nachricht <strong>und</strong> S X (m) = (γ, s) eine Unterschrift von X zu m.<br />

Viele Leute können in den Besitz von (m, S X (m)) = (m, γ, s) kommen;<br />

zumindest der Empfänger <strong>und</strong> die potentiellen Verifizierer.<br />

Nimm an, Oskar kennt eine gültige, signierte Nachricht (m, γ, s) von X <strong>und</strong><br />

es gelingt ihm, k = Log g (γ) zu berechnen. Es gilt [k]s = [h(m)]−[d X h ′ (γ)]<br />

<strong>und</strong> somit<br />

[d X ] = [h ′ (γ)] −1 ([h(m)] − [k]s).<br />

Mit dieser Gleichung kann Oskar [d X ] berechnen. (Er kennt alle Größen<br />

der rechten Seite dieser Gleichung.) In Kenntnis von [d X ] kann er nach<br />

Belieben Unterschriften von X zu beliebigen Nachrichten erzeugen.<br />

Dieser Angriff scheitert üblicherweise, da der diskrete Logarithmus k =<br />

Log g (γ) praktisch nicht berechnet werden kann.<br />

80

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!