03.08.2013 Aufrufe

Sicherheit in Rechnernetzen: - Professur Datenschutz und ...

Sicherheit in Rechnernetzen: - Professur Datenschutz und ...

Sicherheit in Rechnernetzen: - Professur Datenschutz und ...

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.

68<br />

A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />

67<br />

A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />

3.4.2 Anforderungen an Pseudozufallsbitfolgengeneratoren<br />

Das Folgende steht ausführlicher <strong>in</strong> [BlBS_86].<br />

Was ist e<strong>in</strong> Pseudozufallsbitfolgengenerator (PBG)?<br />

E<strong>in</strong> Pseudozufallsbitfolgengenerator (PBG) tut folgendes:<br />

kannte. Dies liegt anschaulich daran, daß W nicht weiß, welche Wurzel außerhalb bekannt ist.<br />

Genauer: Das Ergebnis w' von W hängt nur von den E<strong>in</strong>gaben zu W ab, d.h. (n, x), <strong>und</strong> evtl.<br />

<strong>in</strong>ternen Zufallsentscheidungen von W. Heißen also die vier Wurzeln von x etwa ±w' <strong>und</strong> ±w",<br />

so hätte W als Ausgabe w' gehabt, ganz egal ob außen w = ±w' oder w = ±w" gewählt wurde,<br />

denn das sieht man x nicht an. Da außen zufällig gewählt wird, treten alle 4 Werte<br />

gleichwahrsche<strong>in</strong>lich als w auf. Mit Wahrsche<strong>in</strong>lichkeit 1/2 ist also w ≠ ±w', was noch zu zeigen<br />

war. 62<br />

Er erzeugt aus e<strong>in</strong>em echt zufällig gewählten kurzen Startwert (seed) e<strong>in</strong>e lange Pseudozufallsbitfolge.<br />

Also (siehe Bild 3-17):<br />

• Man nimmt an, daß es auch schwer ist, zu testen, ob x ∈ ZZ *<br />

n e<strong>in</strong> Quadrat ist, aber dies konnte<br />

man bisher nicht beweisen. Man macht daher e<strong>in</strong>e Quadratische-Reste-Annahme („quadratic<br />

residuosity assumption“, ähnlich der Faktorisierungsannahme). Man muß dabei zwei E<strong>in</strong>schränkungen<br />

machen:<br />

1. Es gibt e<strong>in</strong>en schnellen Algorithmus zur Berechnung von Jacobi-Symbolen, auch wenn p <strong>und</strong><br />

• Es gehört dazu e<strong>in</strong> Schlüssel- <strong>und</strong> Startwertgenerieralgorithmus. Er bilde aus dem<br />

<strong>Sicherheit</strong>sparameter l e<strong>in</strong>en Schlüssel n <strong>und</strong> e<strong>in</strong>en Startwert s der Länge l.<br />

(An dieser Stelle würde e<strong>in</strong> Schlüssel oder e<strong>in</strong> Startwert genügen. Aber bei späterer<br />

Verwendung <strong>in</strong> asymmetrischen Systemen ist es <strong>in</strong>teressant, daß der Schlüssel n öffentlich<br />

se<strong>in</strong> darf, während der Startwert s immer geheim bleiben muß.)<br />

• Der eigentliche Bitfolgengenerieralgorithmus PBG ist e<strong>in</strong> Algorithmus, der mit dem Schlüssel<br />

n aus dem kurzen Startwert s e<strong>in</strong>e (beliebig lange) Bitfolge b0 b1 b2 … erzeugt. Allerd<strong>in</strong>gs<br />

darf nur e<strong>in</strong> polynomial (<strong>in</strong> l) langes Anfangsstück dieser Folge verwendet werden.<br />

• PBG ist determ<strong>in</strong>istisch, d.h. aus dem gleichen Startwert <strong>und</strong> Schlüssel wird jedesmal<br />

dieselbe Bitfolge.<br />

q nicht bekannt s<strong>in</strong>d (mit dem sog. quadratischen Reziprozitätsgesetz). Dieser wird im<br />

folgenden nicht gebraucht. Es bedeutet aber, daß jemand, dem man x mit ( x<br />

) = –1 vorlegt,<br />

n<br />

sehr wohl bestimmen kann, daß x ∉ QRn. Man beschränkt die Annahme daher auf die x mit<br />

( x<br />

) = +1.<br />

n<br />

2. Man kann für zufälliges x mit ( x<br />

) = +1 natürlich schon durch re<strong>in</strong> zufälliges Raten mit<br />

n<br />

Wahrsche<strong>in</strong>lichkeit 1/2 richtig raten, ob x ∈ QRn. Man verlangt daher nur, daß ke<strong>in</strong><br />

polynomialer (Rate-) Algorithmus R es wesentlich besser kann.<br />

Sei noch qr das Prädikat, ob etwas e<strong>in</strong> quadratischer Rest ist, d.h.<br />

• PBG ist effizient, also <strong>in</strong> polynomialer Zeit berechenbar.<br />

qr(n, x) := true, falls x ∈ QR n , <strong>und</strong> qr(n, x) := false sonst.<br />

Die Annahme lautet damit<br />

• PBG ist sicher, d.h. die Ergebnisse s<strong>in</strong>d durch ke<strong>in</strong>en polynomialen Test von echten<br />

Zufallsfolgen unterscheidbar. (Genauer siehe unten.)<br />

Annahme: Für jeden (probabilistischen) polynomialen Algorithmus R <strong>und</strong> jedes Polynom Q gilt:<br />

Es existiert e<strong>in</strong> L, so daß für alle l ≥ L gilt: Wenn p, q als zufällige Primzahlen der Länge l<br />

gewählt werden, n := p•q, <strong>und</strong> x zufällig unter den Restklassen mit Jacobi-Symbol +1, so gilt:<br />

echte<br />

Zufallszahl<br />

l<br />

<strong>Sicherheit</strong>sparameter<br />

1<br />

+<br />

Q(l) .<br />

W(R (n, x) = qr(n, x)) ≤ 1<br />

2<br />

Schlüssel<strong>und</strong>Startwertgenerierung<br />

• Wählen e<strong>in</strong>es zufälligen Quadrats ist leicht: Man wählt e<strong>in</strong>fach e<strong>in</strong> beliebiges w ∈ ZZ *<br />

n <strong>und</strong><br />

quadriert es. Da jedes x gleich viele (für Spezialisten: genau 4) Wurzeln hat, wird jedes Quadrat<br />

gleichwahrsche<strong>in</strong>lich gewählt.<br />

s<br />

n,<br />

Schlüssel <strong>und</strong><br />

Startwert<br />

lange Bitfolge<br />

b b b ...<br />

0 1 2<br />

PBG<br />

Geheimer Bereich<br />

Bild 3-17: Pseudozufallsbitfolgengenerator<br />

Verwendung als Pseudo-one-time-pad<br />

E<strong>in</strong>e wichtige Anwendung ist, die Pseudozufallsbits statt e<strong>in</strong>em one-time-pad (siehe §3.2) als symmetrisches<br />

Konzelationssystem zu verwenden (siehe Bild 3-18): Statt e<strong>in</strong>er echten Zufallsfolge wird e<strong>in</strong>e<br />

Pseudozufallsfolge bitweise modulo 2 zum Klartext addiert. Diese Idee stammt von de Vigenère<br />

(1523-1596), dem zu Ehren das Pseudo-one-time-pad manchmal Vigenère-Chiffre genannt wird.<br />

62<br />

Ganz formal: Die Annahme, W sei e<strong>in</strong> „guter“ Wurzelziehalgorithmus, ist gerade der Gegensatz zur Fußnote zu<br />

"Wurzelziehen mod n schwer". Es existiert also doch e<strong>in</strong> Polynom Q, so daß doch für unendlich viele l gilt: Wenn<br />

p, q als zufällige Primzahlen der Länge l gewählt werden, n := p•q, <strong>und</strong> x zufällig aus QRn , so gilt<br />

W(W (n, x) ist Wurzel aus x) > 1<br />

. (1)<br />

Q(l)<br />

Zeigen müssen wir, daß F der Faktorisierungsannahme widerspricht, d.h. daß es e<strong>in</strong> Polynom R gibt, so daß für<br />

unendlich viele l gilt: Wenn p, q als zufällige Primzahlen der Länge l gewählt werden <strong>und</strong> n := p•q, so gilt<br />

W(F (n) = (p; q)) > 1<br />

. (2)<br />

R(l)<br />

Dies wird für R := 2Q <strong>und</strong> dieselben l's wie <strong>in</strong> (1) gezeigt: Sei e<strong>in</strong> solches l gegeben. Man entnimmt der<br />

Beschreibung von F , daß dort x zufällig aus QRn gewählt wird (denn jedes dieser x'e hat genau 4 Wurzeln, kommt<br />

also bei 4 der gleichwahrsche<strong>in</strong>lichen w's vor). Beim Aufruf von W liegen also alle Voraussetzungen von (1) vor,<br />

so daß (1) gilt. Nun folgt wie oben im Haupttext, daß <strong>in</strong> der Hälfte der Fälle w ≡| ± w' <strong>und</strong> somit F erfolgreich ist.<br />

Insgesamt gilt dies also mit Wahrsche<strong>in</strong>lichkeit 1/(2•Q(l)), wie behauptet.<br />

Damit haben wir ganz formal gezeigt: „Wurzelziehen leicht ⇒ Faktorisieren leicht“.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!