Mathematische Hintergr¨unde von RSA

Werbung
Mathematische Hintergründe von RSA
Erweiterter Euklidischer Algorithmus
Theorem 1 (Multiplikatives Inverses)
Seien a, b ∈ Z zwei teilerfremde ganze Zahlen, d. h. gcd(a, b) = 1. Dann existiert ein â ∈ Z mit â · a ≡ 1 mod b.
Beweis: Betrachte die Menge {ak mod b|k ∈ N, k ≥ 1}. Da gcd(a, b) = 1 gilt, sieht man leicht ein, dass gcd(ak , b) = 1
für alle k ∈ N mit k ≥ 1 gilt. Denn da a teilerfremd zu b ist, so gilt dies auch für alle Potenzen von a. Daher ist die
betrachtete Menge eine Untermenge der endlichen Menge {x mod b|x ∈ Z, gcd(x, b) = 1} und daher selbst endlich.
Also kann man k1 6= k2 mit ak1 ≡ ak2 mod b finden. Nehmen wir an k1 ≤ k2 und setzen n := k2 − k1 , dann gilt
ak1 · an = ak2 ≡ ak1 mod b. Daher folgern wir an ≡ 1 mod b, d. h. an−1 · a ≡ 1 mod b. Also setzen wir â := an−1 .
Corollar 1 (Bézout)
Seien a, b ∈ Z zwei teilerfremde ganze Zahlen, dann existieren u, v ∈ Z mit ua + vb = 1.
Bemerke: â · a ≡ 1 mod b ⇔ ∃k ∈ Z : â · a = 1 + k · b
Also setze u := â und v := −k.
Definition 1 (Mengen von Vielfachen)
nZ := {n · x|x ∈ Z}
aZ + bZ := {a · x + b · y|x, y ∈ Z}
Beachte, dass aus s1 = a·x1 +b·y1 ∈ aZ+bZ und s2 = a·x2 +b·y2 ∈ aZ+bZ sofort s1 +s2 = a·(x1 +x2 )+b·(y1 +y2 ) ∈
aZ + bZ folgt. Ebenso folgt aus z1 = n · m1 ∈ nZ und z2 = n · m2 ∈ nZ automatisch z1 + z2 = n · (m1 + m2 ) ∈ nZ.
Man sagt daher, aZ + bZ und nZ seien bezüglich der Addition abgeschlossen. Dasselbe gilt übrigens auch für die
Multiplikation, wie man leicht zeigen kann.
Theorem 2 (ggT=“grösster gemeinsamer Teiler”)
Seien a, b ∈ Z ganze Zahlen mit dem grössten gemeinsamen Teiler g = gcd(a, b). Dann gilt aZ + bZ = gZ.
Beweis: Es gilt a = g · ã und b = g · b̃, wobei ã, b̃ ∈ Z teilerfremd sind, denn sonst gäbe es einen grösseren gemeinsamen
Teiler von a und b als g. Man sieht leicht:
aZ + bZ = {a · x + b · y|x, y ∈ Z} = {g · (ã · x + b̃ · y)|x, y ∈ Z} ⊂ {g · x|x ∈ Z} = gZ
Da ã und b̃ teilerfremd sind, existieren u, v ∈ Z mit uã + v b̃ = 1 (nach Bézout). Daraus folgt:
aZ + bZ = {a · x + b · y|x, y ∈ Z} ⊃ {g · ((uã + v b̃) · x)|x ∈ Z} = {g · x|x ∈ Z} = gZ
Somit gilt aZ + bZ = gZ, und der Beweis ist abgeschlossen.
Insbesondere folgt aus dem soeben bewiesenen Satz, dass es in aZ + bZ (bis auf Vorzeichen) genau ein Element gibt,
welches ein Teiler von a und b ist, nämlich den grössten gemeinsamen Teiler, und dieser ist abgesehen von null das
betragsmässig kleinste Element in aZ + bZ.
Theorem 3 (Chinesischer Restklassensatz)
Seien m1 , m2 , . . . , mr ∈ Z paarweise
teilerfremde ganze Zahlen, d. h. gcd(mi , mj ) = 1 für alle i 6= j (i, j ∈
Qr
{1, 2, . . . , r}), und sei M = i=1 mi . Dann existiert für jede Liste a1 , . . . , ar mit 0 ≤ ai < mi für 1 ≤ i ≤ r
genau ein x ∈ Z mit 0 ≤ x < M , welches effizient berechnet werden kann und für das gilt:
x ≡ a1 mod m1
x ≡ a2 mod m2
..
.
x ≡ ar mod mr
Bemerkung: Man sieht leicht ein, dass jedes x0 ∈ Z mit x0 = x + k · M für ein k ∈ Z, d. h. x0 ≡ x mod M , genau dasselbe Gleichungssystem löst wie x. Der Beweis wird zeigen, dass für ein gegebenes x nur x0 von dieser Form
dasselbe Gleichungssystem lösen können.
Beweis: Zunächst beweisen wir die Existenz und setzen dazu Mi := M ÷ mi , daher gilt gcd(Mi , mi ) = 1. Aus diesem
Grund existiert auch ein multiplikatives Inverses Ni ∈ Z mit Mi Ni ≡ 1 mod mi (vgl. Theorem 1). Man beachte jedoch,
dass für alle j ∈ {1, . . . , r} mit i 6= j stets Mi Ni ≡ 0 mod mj gilt. Nun definieren wir x via
x≡
r
X
ai Mi Ni mod M
i=1
Offensichtlich ist der Rest, den wir bei der Division der obigen Summe durch M erhalten, ein solches x ∈ Z mit
0 ≤ x < M.
Dieses x ∈ Z ist das einzige mit 0 ≤ x < M , welches für die gegebene Liste a1 , a2 , . . . , ar alle Gleichungen löst,
denn falls x0 ∈ Z und x00 ∈ Z zwei verschiedene Lösungen sind, so gilt x0 − x00 ≡ 0 mod mi für alle i ∈ {1, . . . , r},
d. h. x0 − x00 ist ein Vielfaches aller mi und damit auch von M , da nach Voraussetzung gcd(mi , mj ) = 1 für alle
i, j ∈ {1, . . . , r} mit i 6= j erfüllt ist. Somit folgt x0 ≡ x00 mod M , d. h. 0 ≤ x0 , x00 < M kann nicht auftreten, und der
Beweis ist abgeschlossen.
Eerinnnern wir uns nun an die Eulersche ϕ-Funktion, welche für ein beliebiges gegebenes n ∈ Z den Funktionswert
ϕ(n) = |{x mod n|x ∈ Z, gcd(n, x) = 1}| hat, das bedeutet ϕ(n) ist gleich der Anzahl der zu n teilerfremden ganzen
Zahlen r ∈ Z mit 0 ≤ r < n.
Qt
Betrachten wir nun ein m ∈ Z mit m = i=1 mi für ein t ∈ N mit 1 ≤ t, wobei gcd(mi , mj ) = 1 für alle i 6= j
(i, j ∈ {1, . . . , t}) gelten soll. Sei nun n ∈ Z teilerfremd zu m, so gilt auch gcd(mi , n) = 1 für alle i ∈ {1, . . . , t}.
Umgekehrt ist kein n0 ∈ Z, welches einen Teiler mit einem der mi für ein beliebiges i ∈ {1, . . . , t} gemeinsam hat,
teilerfremd zu m.
Qt
Mit dem oben bewiesenen Satz (Theorem 3) folgt also ϕ(m) = i=1 ϕ(mi ). Sei nun k ∈ Z eine positive ganze Zahl
(bei den nachfolgenden Überlegungen sind Vorzeichen unwichtig und würden nur stören). Sei P (k) := {p1 , . . . , pl(k) }
Ql(k)
die Menge aller Teiler von k, welche Primzahlen sind, dann gilt l(k) = |P (k)| ≥ 1. Somit lässt sich k = i=1 pei i als
Produkt von teilerfremden Primzahlpotenzen darstellen, wobei ei ∈ N mit ei ≥ 1 für i ∈ {1, . . . , l(k)} die zugehörigen
Ql(k)
Exponenten sind. Also gilt ϕ(k) = i=1 ϕ(pei i ) (siehe oben).
Betrachten wir nun die ganzen Zahlen r ∈ Z mit 0 ≤ r < pe für eine beliebige Primzahl p mit einem beliebigen
Exponenten e ≥ 1 (e ∈ N). So findet man (einschliesslich 0) unter diesen pe−1 Zahlen, welche nicht teilerfremd zu p
sind, nämlich die Vielfachen von p ( null wird hier auch als ein solches betrachtet, da 0 = 0 · p gilt). Damit erhalten wir
ϕ(pe ) = pe − pe−1 = pe−1 (p − 1).
Ql(k)
Also gilt ϕ(k) = i=1 pei i −1 (pi − 1) für beliebige positive k ∈ Z. Da bei diesen Überlegungen das Vorzeichen von k
Ql(k)
wirklich keine Rolle gespielt hat, so gilt ϕ(k) = i=1 pei i −1 (pi − 1) für alle k ∈ Z. Sobald man also die Primfaktorisierung einer ganzen Zahl k ∈ Z kennt, kann man auch ϕ(k) effizient berechnen (vgl. RSA).
Der Chinesische Restklassensatz spielt auch beim Beweis der Korrektheit von RSA eine wichtige Rolle. Denn mit ihm
folgt für n = p·q, wobei p und q zwei untereschiedliche Primzahlen sind sofort, dass mit x ≡ a mod p und x ≡ a mod q
auch x ≡ a mod n gilt.
Herunterladen