Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
78<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
77<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
R<br />
f<br />
0<br />
f<br />
1<br />
Daraus folgt ( 2<br />
n<br />
) = –1.<br />
Nehmen wir nun an, jemand habe e<strong>in</strong>e Kollision gef<strong>und</strong>en, also x, y mit f0 (x)=f1 (y). Dann gilt<br />
s(1)<br />
s(0)<br />
Bild 3-22: M<strong>in</strong>i-GMR für e<strong>in</strong>e 1-Bit-Nachricht. s(0) <strong>und</strong> s(1) s<strong>in</strong>d die möglichen Signaturen.<br />
<strong>Sicherheit</strong>, Skizze: E<strong>in</strong>en echten aktiven Angriff gibt es hier nicht, da nur e<strong>in</strong>e Nachricht signiert<br />
wird. Es kann aber se<strong>in</strong>, daß e<strong>in</strong> Fälscher die Signatur unter m = 0 erhalten hat <strong>und</strong> daraus die unter<br />
m=1 fälschen möchte oder umgekehrt. Man ahnt anhand von Bild 3-22, daß das heißt, daß der<br />
Angreifer e<strong>in</strong>e Kollision f<strong>in</strong>det.<br />
Ganz so e<strong>in</strong>fach ist es aber nicht: Er hat ja bei der e<strong>in</strong>en Hälfte der Kollision die Hilfe des<br />
Unterzeichners gehabt, der das Geheimnis kennt <strong>und</strong> sowieso Kollisionen berechnen kann. Wir<br />
müssen zeigen, daß der Fälscher auch ohne diese Hilfe an irgende<strong>in</strong>e Kollision kommt:<br />
O.B.d.A. wird nur der erste Fall betrachtet, also m = 0 ist gegeben. Wir nehmen an, daß es<br />
hierfür e<strong>in</strong>en guten Fälschungsalgorithmus F mit E<strong>in</strong>gabe (n, R, s(0)) gäbe, <strong>und</strong> zeigen, daß es dann<br />
auch e<strong>in</strong>en guten Kollisionsf<strong>in</strong>de-Algorithmus K gibt:<br />
K : E<strong>in</strong>gabe n.<br />
Wähle e<strong>in</strong>e „Signatur“ S0 ∈ Dn zufällig. (Hier wird gebraucht, daß das alle<strong>in</strong> mit dem öffentlichen<br />
Schlüssel geht. Da S0 nicht mit dem Signieralgorithmus gewählt wird, wird es nicht mit s(0)<br />
bezeichnet. Entsprechendes gilt unten für die Bezeichnung S1 statt s(1).)<br />
Berechne R := f0(S0 ).<br />
Verwende nun F mit E<strong>in</strong>gabe (n, R, S0 ). Wenn F erfolgreich ist, nenne das Ergebnis S1 .<br />
Ausgabe: (S0 , S1 ).<br />
x2 ≡ ± (2y) 2 mod n.<br />
Das Vorzeichen „–“ ist nicht möglich, weil –1 ke<strong>in</strong> Quadrat mod n ist. Also s<strong>in</strong>d x <strong>und</strong> 2y zwei<br />
Wurzeln derselben Zahl. Nach §3.4.1.9 können wir damit def<strong>in</strong>itiv faktorisieren, wenn sie wesentlich<br />
verschieden s<strong>in</strong>d, d.h.<br />
x ≠ ±2y.<br />
Dies folgt daraus, daß sie schon verschiedene Jacobi-Symbole haben: Wegen x, y ∈ Dn haben x <strong>und</strong><br />
y das Jacobi-Symbol +1, <strong>und</strong> wegen §3.4.1.8 gilt<br />
( ±2y<br />
) = (±1)<br />
• (2)<br />
• (y)<br />
= 1 • (–1) • 1 ≠ 1 = (x<br />
n n n n n ).<br />
Das Umkehren mittels Geheimnis geht so: Ist x = f –1<br />
0 (y) gesucht, so testet man zunächst, ob y selbst<br />
e<strong>in</strong> Quadrat ist (s. §3.4.1.7). Andernfalls ist nach Def<strong>in</strong>ition von f0 : y = –x2 , d.h. –y = x2 . Man zieht<br />
also die Wurzel aus y bzw. –y nach dem Verfahren aus §3.4.1.8. Die so erhaltene Wurzel w ist selbst<br />
e<strong>in</strong> Quadrat (vgl. §3.4.1.6), hat also das Jacobi-Symbol +1. Je nachdem, ob sie < oder ≥ n/2 ist,<br />
setzt man x = +w bzw. –w.<br />
Für f –1<br />
1 (y) ist zusätzlich nach dem Wurzelziehen modulo n durch 2 zu dividieren. Da 2 das<br />
Jacobi-Symbol –1 hat, f –1<br />
1 (y) aber im Def<strong>in</strong>itionsbereich der Permutationen liegen, also Jacobi-<br />
Symbol 1 haben muß, muß wegen der Multiplikativität des Jacobi-Symbols der Wert nach dem<br />
Wurzelziehen Jacobi-Symbol –1 haben. Hierzu werden nach dem Wurzelziehen mod p <strong>und</strong> mod q die<br />
Ergebnisse mit unterschiedlichem Vorzeichen <strong>in</strong> den CRA e<strong>in</strong>gesetzt.<br />
Klar ist, daß dieses K immer e<strong>in</strong>e Kollision f<strong>in</strong>det, wenn se<strong>in</strong> Aufruf von F erfolgreich ist. Zu zeigen<br />
ist also nur, daß F hier genauso oft erfolgreich ist, wie wenn es mit e<strong>in</strong>er „echten“ Referenz <strong>und</strong><br />
Signatur aufgerufen wird. Echte Referenzen s<strong>in</strong>d zufällig, <strong>und</strong> das hiesige R ist auch zufällig (weil S0 zufällig ist <strong>und</strong> f0 e<strong>in</strong>e Permutation ist, also jedes R bei genau e<strong>in</strong>en S0 vorkommt). Bei diesem R ist<br />
S0 die (e<strong>in</strong>zige) richtige Signatur.<br />
3.5.3 Gr<strong>und</strong>signaturen: Große Tupel kollisionsresistenter Permutationen<br />
Allgeme<strong>in</strong>eres: Wenn man kollisionsresistente Permutationenpaare mit Geheimnis präzis def<strong>in</strong>iert<br />
(s. [GoMR_88]), benötigt man nicht nur e<strong>in</strong> Paar (f0, f1), sondern e<strong>in</strong>e ganze Familie davon <strong>in</strong><br />
Abhängigkeit von e<strong>in</strong>em Schlüssel, damit jeder, der so e<strong>in</strong> Paar braucht, e<strong>in</strong>s wählen kann, von dem<br />
nur er das Geheimnis kennt. Dazu gehört e<strong>in</strong> Schlüsselgenerierungsalgorithmus gen, mit dem man<br />
das Geheimnis <strong>und</strong> den öffentlichen Schlüssel wählen kann.<br />
Bei der konkreten Konstruktion war das automatisch der Fall: gen ist der Algorithmus zur Wahl<br />
von p <strong>und</strong> q, die das Geheimnis s<strong>in</strong>d, <strong>und</strong> zur Berechnung des öffentlichen Schlüssels n. Für jedes n<br />
ergibt sich e<strong>in</strong> anderes Paar, man müßte also genauer f (n)<br />
0 , f1<br />
(n) schreiben.<br />
Die Kollisionsresistenz wird wieder so def<strong>in</strong>iert, daß ke<strong>in</strong> polynomialer Algorithmus für lange<br />
Schlüssel mit signifikanter Wahrsche<strong>in</strong>lichkeit Kollisionen f<strong>in</strong>det, analog zur Faktorisierungsannahme.<br />
Außerdem braucht man, daß man alle<strong>in</strong> mit dem öffentlichen Schlüssel effizient e<strong>in</strong> zufälliges<br />
Element des jeweiligen Def<strong>in</strong>itionsbereichs wählen kann. Konkret geht das so:<br />
Wir bauen jetzt als zweiten Schritt GMR so aus, daß e<strong>in</strong>e beliebig lange Nachricht signiert werden<br />
kann (aber nach wie vor nur e<strong>in</strong>e e<strong>in</strong>zige).<br />
Die Idee ist dieselbe wie oben für e<strong>in</strong> Bit: Man hätte gern für jede dieser Nachrichten e<strong>in</strong>e<br />
Funktion fm (so wie oben f0 <strong>und</strong> f1 für die zwei Nachrichten m = 0 bzw. 1). Als öffentlichen<br />
Schlüssel wählt man wieder zusätzlich zu n e<strong>in</strong>e Referenz R69 , <strong>und</strong> die Signatur unter die Nachricht<br />
m soll<br />
Wahl e<strong>in</strong>es zufälligen Elementes aus Dn: Man wählt z ∈ ZZ *<br />
n zufällig <strong>und</strong> quadriert es; ist z2 < n/2, so wählt man x := z2 , andernfalls x := –z2 .<br />
s(m) := f m –1 (R)<br />
3.5.2 M<strong>in</strong>i-GMR für e<strong>in</strong>e Nachricht aus nur e<strong>in</strong>em Bit<br />
se<strong>in</strong> (Bild 3-23), wobei man f m –1 wieder nur mit Hilfe des Geheimnisses berechnen kann.<br />
Wenn nur e<strong>in</strong>e Nachricht signiert werden soll, <strong>und</strong> diese nur e<strong>in</strong> Bit lang se<strong>in</strong> wird, kann man e<strong>in</strong>fach<br />
e<strong>in</strong> kollisionsresistentes Permutationenpaar nehmen: Der geheime Signierschlüssel s ist (p, q); der<br />
öffentliche Testschlüssel t besteht aus n <strong>und</strong> e<strong>in</strong>er sogenannten Referenz R, die der Unterzeichner<br />
zufällig aus Dn wählt.<br />
Die Signatur unter die Nachricht m = 0 ist f –1<br />
0 (R), die unter m = 1 ist f1 –1 (R) (Bild 3-22).<br />
69<br />
Für diesen vere<strong>in</strong>fachten Fall, daß die Referenz dem Angreifer vor se<strong>in</strong>er Wahl der zu signierenden Nachricht bekannt<br />
ist, ist die <strong>Sicherheit</strong> von GMR nicht bewiesen; wir sehen auch nicht, wie sie bewiesen werden könnte.