23.11.2012 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.

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

7 (1011) 2 := (–1) 2 •7 ≡ 7;<br />

7 (10110) 2 := 7 2 ≡ 5.<br />

• ZZ *<br />

n bezeichnet die multiplikative Gruppe von ZZn , d.h. die Menge aller Elemente, die e<strong>in</strong> Inverses<br />

haben. (Man kann leicht zeigen, daß das wirklich e<strong>in</strong>e Gruppe ist.) Es gilt<br />

ZZ *<br />

n = {a ∈ ZZn | ggT(a, n) = 1}.<br />

Auch das Berechnen der Inversen ist „leicht“. Man verwendet den sog. erweiterten Euklidschen<br />

Algorithmus. Dieser berechnet allgeme<strong>in</strong> zu a, b ∈ ZZ den ggT <strong>und</strong> zwei ganze Zahlen u, v mit<br />

u a + v b = ggT(a, b)<br />

Das sei nur an e<strong>in</strong>em Beispiel dargestellt: a = 11, b = 47. Dazu wenden wir zunächst den<br />

normalen Euklidschen Algorithmus an, bei dem iterativ der vorige Divisor durch den vorigen Rest<br />

geteilt wird:<br />

47 = 4 •11 + 3;<br />

11 = 3 • 3 + 2;<br />

3 = 1 • 2 + 1.<br />

Nun beg<strong>in</strong>nt man mit der letzten Zeile, den ggT als L<strong>in</strong>earkomb<strong>in</strong>ation des Divisors <strong>und</strong><br />

Dividenden der jeweiligen Zeile darzustellen:<br />

1 = 3 – 1•2 (Jetzt 2 durch 3 <strong>und</strong> 11 ersetzen)<br />

= 3 – 1•(11–3•3) = –11 + 4•3 (Jetzt 3 durch 11 <strong>und</strong> 47 ersetzen)<br />

= –11 + 4•(47–4•11) = 4•47 – 17•11. (Probe: 4•47= 188, 17•11=187)<br />

(Dies kann man, v.a. bezüglich Speicherplatz, noch optimieren, s. Literatur.)<br />

Speziell zum Invertieren von a berechnen wir mit dem erweiterten Euklidschen Algorithmus ganze<br />

Zahlen u, v mit<br />

u a + v n = 1.<br />

Dann gilt offenbar<br />

u a ≡ 1 mod n,<br />

<strong>und</strong> das heißt gerade, daß u das Inverse von a ist. In unserem Beispiel haben wir also<br />

11 –1 ≡ –17 ≡ 30 mod 47<br />

erhalten (<strong>und</strong> auch 47 –1 ≡ 4 mod 11 sowie 11 –1 ≡ –17 ≡ 3 mod 4 <strong>und</strong> 47 –1 ≡ 4 mod 17.) 48<br />

3.4.1.2 Elementanzahl von ZZ n * <strong>und</strong> Zusammenhang mit Exponentiation<br />

Hier s<strong>in</strong>d erste Eigenschaften von ZZ n , bei denen Kenntnis des Geheimnisses (p, q) hilft:<br />

• Die Eulersche φ-Funktion ist def<strong>in</strong>iert als<br />

φ(n) := |{a ∈ {0,…,n–1} | ggT(a, n) = 1}|,<br />

wobei für beliebige ganze Zahlen n ≠ 0 gilt: ggT(0,n) = |n|, vgl. z.B. [Lüne_87 Seite 12].<br />

Es folgt sofort aus den beiden Def<strong>in</strong>itionen, daß<br />

| ZZ n * | = φ(n).<br />

Speziell für n = p•q mit p, q prim <strong>und</strong> p≠q kann man φ(n) leicht ausrechnen:<br />

48 Damit sieht man auch, daß die obige Gleichung Zn * = {a ∈ Zn | ggT(a, n) = 1} stimmt: Gerade haben wir für jedes<br />

a mit ggT(a, n) = 1 tatsächlich e<strong>in</strong> Inverses bestimmt. Umgekehrt: Wenn es e<strong>in</strong> Inverses gibt, also a•a –1 ≡ 1 mod<br />

n, gilt n | (a•a –1 –1), also gibt es v mit a•a –1 –1 = v•n bzw. a•a –1 –v•n = 1. Hätten a <strong>und</strong> n e<strong>in</strong>en geme<strong>in</strong>samen<br />

Teiler d, so würde dieser also auch 1 teilen.<br />

60

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!