Abschätzungen zum Rechenaufwand.

Werbung
G. Berendt: Pferdekauf im Internet / September 2002
Pferdekauf im Internet.
G. Berendt, FU Berlin, FB Mathematik und Informatik
(e-mail: [email protected])
Wenn ich vor einigen hundert Jahren gelebt und das Bedürfnis gespürt
hätte, ein neues Pferd zu erwerben, dann wäre ich am Wochenende auf den
hiesigen Pferdemarkt gegangen, hätte mir den am wenigsten schlitzohrig
aussehenden Händler gegriffen, nach einigen Bemerkungen über das
Wetter und die hohe Politik nach gemessener Zeit dem angepriesenen Roß
in das Maul gegriffen und wäre mit Handschlag und Talern auf die Tatze
schließlich handelseinig mit ihm geworden.
Heute sieht das etwas anders aus: Zunächst würde ich via Internet – nach
Ansehen des Prospektes – bei der Firma gaul.für.dich.com ein Pferd mit
definierten Eigenschaften bestellen. Vorausgesetzt die Firma ist seriös,
würde nach einigen Tagen der Postbote mit dem Pferdelaster vorfahren
und mir das bestellte Stück gegen Empfangsbescheinigung (und
Trinkgeld) in den Garten stellen. Wenn mir das gute Tier nicht zusagt,
könnte ich es innerhalb von 14 Tagen – natürlich originalverpackt –
zurückgeben; andernfalls würde ich einige Zeit später auf meinem
Kontoauszug ein beträchtliches Minus – den Kaufpreis – registrieren.
Weder im einen noch im anderen Fall bekäme ich meinen Vertragspartner
dabei je zu Gesicht (und, wenn ich Glück habe, finde ich in meiner e-mail
in den nächsten Monaten nicht Hunderte von Angeboten über Pferdefutter
und Pferdepflege-Hardware).
Kurz gesagt, die Tatsache, dass unsere Gesellschaft unvermeidlich zu einer
Kommunikationsgesellschaft gerinnt, entpersönlicht Kommunikation in
immer stärkerer Weise: Sie wird über Computernetze betrieben, die dem
Benutzer immer weniger durchsichtig sind, und der eigentliche
Kommunikationspartner wird dabei immer weniger erkennbar oder gar
ansprechbar.
Es wäre naiv anzunehmen, dass uns dieser Trend zu besseren Menschen
macht oder das Vertrauen in die kommunikativen Beziehungen
untereinander stärkt. Das Gegenteil ist der Fall: Die modernen
Kommunikationsmethoden, sind sie denn einmal etabliert, verlangen in
1
G. Berendt: Pferdekauf im Internet / September 2002
bisher unbekanntem Umfang die gleichzeitige Einrichtung von
Sicherungsmechanismen unterschiedlichster Art: Im Internet tummeln sich
nicht nur seriöse Händler, sondern eine Unmenge von Schlitzohren und
Gaunern, die es nur auf das gute Geld ihrer Mitmenschen angelegt haben.
Betrachten wir dazu das Beispiel meines Pferdekaufs genauer: Um sich
von meiner Seriosität zu überzeugen, erwartet gaul.für.dich.com bei
meiner Bestellung von mir z.B. die Nummer meiner Kreditkarte – eine
Information, die ich natürlich in keiner Weise öffentlich machen will.
Meine gesamte Bestellung geht mithin verschlüsselt über das Netz. In der
Regel besteht der Lieferant zudem auf einer – elektronischen – Signatur
meiner Bestellung und ggf. will er auch noch Gewissheit darüber erhalten,
dass die Bestellung unverfälscht bei ihm eintrifft. Ist er hanseatisch
geprägt oder nur einfach vorsichtig, dann will er sich schließlich dessen
versichern, dass ich nicht zu einem späteren Zeitpunkt behaupten kann, ich
hätte – da ich allergisch gegen Pferde sei – überhaupt niemals ein Pferd bei
ihm bestellt.
Alle diese Sicherungen – die von dem Grundprinzip ausgehen, dass
"gesichtslose" Kommunikationspartner einander zunächst einmal zutiefst
misstrauen – bedürfen zu ihrem Funktionieren aufwendiger Überlegungen.
Das adäquate Mittel hierzu sind kryptographische Protokolle.
Was sind Protokolle ?
Protokolle sind interaktive Abfolgen von Schritten, an denen mindestens
zwei Teilnehmer mitwirken und die zu einem definierten Ergebnis führen
sollen.
Protokolle müssen gewisse Charakteristika erfüllen:
(P1) Jeder am Protokoll Beteiligte muß das Protokoll als Ganzes und alle
einer Stelle des Protokolls folgenden Schritte im voraus kennen.
(P2) Jeder am Protokoll Beteiligte muß damit einverstanden sein,
entsprechend dem Protokoll vorzugehen.
(P3) Das Protokoll muß eindeutig sein; jeder Schritt muß wohldefiniert
sein, und es darf keine Chance eines Mißverstehens existieren.
(P4) Das Protokoll muß vollständig sein; für jede mögliche
vorkommende Situation muß das Protokoll eine spezifizierte
Handlungsanweisung enthalten.
2
G. Berendt: Pferdekauf im Internet / September 2002
Was sind kryptograhische Protokolle ?
Ein kryptographisches Protokoll ist ein Protokoll, das kryptographische
Elemente enthält. Um passive oder aktive Attacken auf die mit dem
Protokoll vermittelten Informationen zu verhindern, muß ein
kryptographisches Protokoll daher zusätzlich die Eigenschaft besitzen:
(P5) Es sollte unmöglich sein, mehr zu tun oder zu erfahren, als das, was
im Protokoll spezifiziert und mitgeteilt wird.
Ein Beispiel für ein Protokoll ist etwa die
Übermittlung einer Nachricht:
(1)
A
und
B
einigen
Verschlüsselungsmechanismus.
sich
auf
einen
(2)
A und B einigen sich über einen Schlüssel.
(3)
A chiffriert eine Nachricht mit dem gemeinsamen Schlüssel
entsprechend
dem
Algorithmus
des
vereinbarten
Verschlüsselungsmechanismus.
(4)
A sendet die chiffrierte Nachricht an B.
(5)
B dechiffriert die Nachricht mit dem gleichen Schlüssel und
dem inversen Algorithmus und liest sie.
Dieses Protokoll ist nicht von vornherein kryptographisch, da ohne
zusätzliche Angaben nicht zu erkennen ist, ob die Forderung (P5) erfüllt ist
oder nicht.
Betrachten wir nun etwa die folgende konkrete Situation:
A möchte B eine codierte Nachricht zustellen, die aus Elementen (Zeichen
oder Zeichenblöcken) eines Alphabets besteht, auf das sich beide
Teilnehmer geeinigt haben (beispielsweise aus den Großbuchstaben A bis
Z). Jedes Element der Nachricht soll durch dasjenige ersetzt werden, das
um eine bestimmte Zahl modulo der Alphabetlänge verschoben ist;
Schlüssel ist also für jedes Element eine natürliche Zahl modulo der Länge
des Alphabets.
3
G. Berendt: Pferdekauf im Internet / September 2002
Die folgende Serie von Schritten, mit denen sich die Korrespondenzpartner
A und B (etwa über das Telefon) auf eine solche gemeinsame natürliche
Zahl als "Schlüssel" einigen können, definiert ein konkretes Protokoll:
P 1:
1.
Die Korrespondenzpartner A und B teilen sich gegenseitig
(öffentlich) eine ganze positive "Basis" b mit.
2.
Beide Partner wählen je eine positive ganze Zahl x bzw. y, die sie
geheim halten.
3.
A berechnet u = bx und sendet u (öffentlich) an B; B berechnet v =
by und sendet v (öffentlich) an A.
4.
A berechnet p = vx; B berechnet q = u y .
5.
Die Zahl p = q = bx y wird als Schlüssel gewählt.
Dieses Protokoll ist jedoch noch kein kryptographisches Protokoll; denn
wenn auch die Zahl p = q von keinem der Partner öffentlich bekannt
gegeben wurde, ist es für einen unbefugten Mithörer ohne große Mühe
möglich, sie zu ermitteln, wenn er nur über die Information verfügt, dass
die (ihm bekannte, da öffentlich ausgetauschte) Zahl b eine "Basis" ist: x
ist gleich log b u , y ist gleich log b v, und damit ist p = q direkt
berechenbar, da zur Berechnung eines Logarithmus einer reellen Zahl sehr
schnelle Rechenverfahren existieren. Mit Hilfe des so ermittelten
Schlüssels kann der Mithörer mithin (bei Kenntnis des Verschlüsselungs–
Algorithmus) die codierte Nachricht ohne Mühe decodieren.
Das vorliegende Protokoll kann jedoch durch einen einfachen Trick zu
einem kryptographischen Protokoll gemacht werden. Dazu untersuchen
wir den im Protokoll verwandten Verschlüsselungs–Algorithmus: In den
Schritten 3. und 4. wurden ganze Zahlen potenziert; der Mithörer musste
den Umkehralgorithmus, das Logarithmieren, anwenden. Beide Verfahren
erfordern in der Menge der reellen Zahlen vergleichbaren und zumutbaren
Aufwand. Betrachten wir das gleiche Protokoll jedoch nicht in R , sondern
in der Menge Z / n der Restklasse der ganzen Zahlen modulo n mit n als
einer positiven ganzen Zahl, dann ändert sich für genügend großes n die
Situation signifikant: Während die Potenzierung modulo n sehr einfach zu
bewerkstelligen ist, erweist es sich als nahezu hoffnungslos, den "diskreten
4
G. Berendt: Pferdekauf im Internet / September 2002
Logarithmus" in einer solchen Restklasse zu bestimmen. Wir modifizieren
das Protokoll daher wie folgt:
P 2 (Diffie-Hellmann):
1.
Die Korrespondenzpartner A und B teilen sich (öffentlich)
gegenseitig einen Primzahl-Modul n und eine Basis b<n mit.
2.
Beide Partner wählen je eine Zahl x < n bzw. y < n aus, die sie
geheim halten.
3.
A berechnet u = bx mod n und sendet u (öffentlich) an B; B
berechnet v = by mod n und sendet v (öffentlich) an A.
4.
A berechnet p = vx mod n; B berechnet q = u y mod n.
5.
Die Zahl p = q = bx y mod n wird als Schlüssel gewählt.
(Dass n als Primzahl gewählt wird, ist an dieser Stelle erforderlich, damit
Produkte von Null verschiedener Zahlen in der Restklasse nicht den Wert
Null ergeben können: Durch diese Wahl ist sicher gestellt, dass der
Restklassenring modulo n auch ein Körper ist.)
Zahlenbeispiel:
b = 7; n = 23 . Diese Zahlen werden (öffentlich) ausgetauscht.
A wählt x = 13; B wählt y = 5. Diese Zahlen werden geheim gehalten.
A berechnet u = 713 mod 23 = 20; B berechnet v = 75 mod 23 = 17.
u = 20 und v = 17 werden (öffentlich) ausgetauscht.
A berechnet den Schlüssel p = v x = 17 13 mod 23 = 10 ;
B berechnet den Schlüssel q = u y = 20 5 mod 23 = 10 .
Die modularen Funktionen f (n ) = 7 n mod 23 und f –1(n) = log 7 n mod 23
sind im folgenden graphisch dargestellt. Die bereits für einen so kleinen
Modul leicht chaotisch aussehende Verteilung der Funktionswerte lässt
plausibel erscheinen, dass für die Berechnung des "diskreten Logarithmus"
bei "großen" Modulen bislang kein genügend schneller Algorithmus
gefunden wurde (vgl. u.).
5
G. Berendt: Pferdekauf im Internet / September 2002
Werte für 7 n mod 23
25
20
15
10
5
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Werte für Log7 n mod 23
25
20
15
10
5
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
6
G. Berendt: Pferdekauf im Internet / September 2002
Abschätzungen zum Rechenaufwand.
Der Rechenaufwand zum modularen Exponentiieren ( b n mod m mit 0 < b, n < m ) ist
B = O ( (log n ) (log 2 m ) ,
der Aufwand der besten derzeit bekannten Algorithmen für die Bestimmung des diskreten Logarithmus modulo m
ist
A = O ( exp(sqrt(log n * log log n))) .
In der folgenden Tabelle sind einige Werte für A und B angegeben. In der ersten Spalte ist die Länge des Alphabets
in Byte, in der zweiten und dritten Spalte sind die Werte der zugehörigen Abschätzungen für A und B notiert. Geht
man beispielsweise davon aus, dass der für die vorkommenden Operationen verwendete Rechner 10 9 Operationen
pro sec verarbeitet, dann wird für ca. 3 * 10 16 Operationen ein Jahr benötigt. Man erkennt, dass für Alphabetlängen
von mehr als 32 Bytes (für ein ASCII-Alphabet also Textblöcke von mehr als 32 Zeichen) der Schlüsselaustausch
noch immer problemlos in Sekundenbruchteilen verläuft, während die Berechnung des diskreten Logarithmus weitaus
mehr als ein Lebensalter erfordert.
Der Falltür-Charakter der Potenzierung vs. der Berechnung des diskreten Logarithmus macht sich ab
Blocklänge von LA = 8 Bytes deutlich bemerkbar.
einer
7
G. Berendt: Pferdekauf im Internet / September 2002
LA
A
B
2
2980.957987
4096
4
3.114863016·105
3.2768·104
6
1.29045921·107
1.10592·105
8
3.238911116·108
2.62144·105
12
8.305099203·1010
8.84736·105
16
9.996529454·1012
2.097152·10 6
24
3.744563834·1016
7.077888·10 6
32
4.507385298·1019
1.6777216·107
48
8.621045299·10 24
5.6623104·10 7
64
3.026126131·10 29
1.34217728·10 8
8.861589288·10 43
1.073741824·10 9
.....
.....
.....
128
8
Herunterladen