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.