Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
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“.