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.

c) Für jeden anderen muß es praktisch unmöglich sein, zu einer gegebenen<br />

Nachrischt eine gültige Unterschrift von X zu erzeugen.<br />

d) Jedermann (nicht nur der Empfänger) soll in der Lage sein, für ein Paar<br />

(m, S) zu entscheiden, ob S eine zu m passende Signatur von X ist oder<br />

nicht. Der Empfänger soll nach dem Dialog jedem (z.B. einem Gericht)<br />

beweisen können, daß X die Nachricht m unterschrieben an ihn geschickt<br />

hat. Insbesondere soll das elektronische Unterschreiben von Verträgen<br />

ermöglicht werden.<br />

Sei (G, g) eine Einweggruppe, l = ord(g) <strong>und</strong> b = floor(log 2 (l)) die (ungefähre)<br />

Bitlänge von l. Ein üblicher Wert könnte (b = 160 oder b = 300 sein.) In<br />

der Praxis wird üblicherweise ein Hash-Wert der Nachricht unterschrieben. Das<br />

führt dazu, daß die Unterschrift immer die selbe (vielleicht ein paar h<strong>und</strong>ert<br />

Bit) Länge hat, selbst wenn die Nachricht sehr groß ist.<br />

Sei h : {0, 1} ∗ → {0, · · · , 2 b } eine Hash-Funktion. h ordnet also jedem (evtl.<br />

sehr langen) Bitvektor einen Kontrollwert (man sagt auch “Hash” oder “Fingerprint”)<br />

h(x) zu, dessen Bitlänge b ist.<br />

Wir verlangen, daß h die folgenden Eigenschaften hat.<br />

a) h(x) ist aus x schnell berechenbar.<br />

b) h ist eine Einweg-Funktion: Es ist praktisch unmöglich zu y ∈ {0, · · · , 2 b }<br />

ein x mit h(x) = y zu finden.<br />

c) h ist kollisionsresistent: Es ist praktisch unmöglich, zwei Bitvektoren x 1 ≠<br />

x 2 mit h(x 1 ) = h(x 2 ) zu finden.<br />

Gängige Hashfunktionen sind MD4, MD5, SHA1, WHIRLPOOL, RIPE-MD.<br />

Die Konstruktion von Hashfunktionen ist ein interessantes Thema; wir können<br />

aus Zeitgründen nicht näher darauf eingehen.<br />

Sei bv : G → {0, 1} ∗ eine leicht berechenbare Injektion. Eine solche Abbildung<br />

wird ohnehin gegeben sein, wenn man G auf dem Rechner realisiert: Die Elemente<br />

von G werden dann ohnehin intern als Bitvektor gespeichert. Für γ ∈ G<br />

sei h ′ (γ) = h(bv(γ)).<br />

Wir fassen zusammen:<br />

Für einen Bitvektor m ∈ {0, 1} ∗ ist h(x) ein b-Bit-Hash.<br />

Für ein Element γ ∈ G der Einweggruppe ist h ′ (x) ein b-Bit-Hash.<br />

Die Daten (G, g), l = ord(g), b, h <strong>und</strong> h ′ sind öffentlich bekannt. Wir<br />

gehen wieder von einer Gruppe von Usern aus. Wie in den beiden vorigen Abschnitte<br />

wählt jeder User X zufällig ein d X ∈ {2, · · · , ord(g)−1} (nicht zu klein)<br />

<strong>und</strong> berechnet E X := g d X<br />

∈ G.<br />

d X bleibt geheim (nur User X kennt d X ) <strong>und</strong> E X wird öffentlich gemacht.<br />

Vgl. das erste Beispiel in Abschnitt 5.3<br />

79

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!