Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche ϕ-Funktion, RSA Manfred Gruber http://www.cs.hm.edu/~gruber SS 2008, KW 15 M.Gruber, SS 2008 Diskrete Mathematik Kleiner Fermatscher Satz Satz 1. Sei p prim und ap−1 Beweis f a∈ mod Betrachte die Abbildung ist injektiv, denn aus Z∗p . Dann ist p=1 f : Z∗p → Z∗p , x 7→ a ⊗ x. a⊗x=a⊗y folgt x = a−1 ⊗ a ⊗ x = a−1 ⊗ a ⊗ y = y. Da Z∗p endlich ist, ist f auch surjektiv, also bijektiv. Daher ist {1,2, . . . , p − 1} = {a ⊗ 1, a ⊗ 2, . . . , a ⊗ (p − 1)}, (wobei hier nicht behauptet wird, dass die Reihenfolge der Aufzählungen links und rechts die gleiche ist). Damit sind auch die folgenden Produkte gleich: 1⊗· · ·⊗(p−1) = f(1)⊗· · ·⊗f(p−1) = ap−1 ⊗1⊗· · ·⊗(p−1). Dividiert man durch 1 ⊗ · · · ⊗ (p − 1), steht die Behauptung da. 1 M.Gruber, SS 2008 Diskrete Mathematik Chinesischer Restsatz im Fall Beispiel 1. Sei ψ: Z6 → Z2 × Z3 Z6 die Abbildung x 7→ (ψ1(x), ψ2(x)) = (x mod 2, x mod 3) . ψ ist bijektiv (nachprüfen!) und es gilt ψ(x ⊕ y) = (ψ1(x) ⊕ ψ1(y), ψ2(x) ⊕ ψ2(y)) (1) ψ(x ⊗ y) = (ψ1(x) ⊗ ψ1(y), ψ2(x) ⊗ ψ2(y)) (2) Führt man in plikation Z2 × Z3 eine Addition ⊕ und eine Multi- ⊗ ein, indem man komponentenweise mit den vorhandenen Additionen und Multiplikationen rechnet, dann kann man (1) und (2) als ψ(x ⊕ y) = ψ(x) ⊕ ψ(y) (3) ψ(x ⊗ y) = ψ(x) ⊗ ψ(y) (4) schreiben. Diese Eigenschaften machen ψ zu einem Ring-Homomorhismus. 2 M.Gruber, SS 2008 Die Diskrete Mathematik Umkehrabbildung ψ−1 ist ebenfalls ein Ring- Homomorphismus. Für a = ψ(x) und b = ψ(y) aus Z2 × Z3 gilt nämlich ψ−1(a ⊕ b) = ψ−1(ψ(x) ⊕ ψ(y)) = ψ−1(ψ(x ⊕ y)) =x⊕y = ψ−1(a) ⊕ ψ−1(b) , und ψ−1(a ⊗ b) = ψ−1(ψ(x) ⊗ ψ(y)) = ψ−1(ψ(x ⊗ y)) =x⊗y = ψ−1(a) ⊗ ψ−1(b) . 3 M.Gruber, SS 2008 Diskrete Mathematik ψ−1(x, y)? Wie berechnet man Es genügt, u1 = ψ−1(1,0) und u2 = ψ−1(0,1) zu kennen, denn ψ−1(x, y) = ψ−1(x,0) ⊕ ψ−1(0, y) = x ⊗ ψ−1(1,0) ⊕ y ⊗ ψ−1(0,1) . Für u1 muss gelten: u1 mod 2=1 und u1 mod 3 = 0, Für u2 muss gelten: u2 mod 2=0 und u2 mod 3 = 1. 2 und 3 sind teilerfremd und erfüllen in Z die Gleichung 1 · 3 + (−1) · 2 = 1. In Z6 liest sich diese Gleichung als Der erste Summand hat die von 3 ⊕ 4 = 1. u1 geforderten Eigen- schaften, der zweite Summand hat die von u2 gefor- derten Eigenschaften. Also ist u1 = 3 und u2 = 4. 4 M.Gruber, SS 2008 Diskrete Mathematik Chinesischer Restsatz Satz 2. [Chinesischer Restsatz] m1 · · · mr ∈ mi > 1. N m Sei = mit paarweise teilerfremden Zahlen Dann ist ψ: Zm → Zm × Zm 1 2 × ... × Zm r x 7→ (x mod m1, x mod m2, . . . , x mod mr) ein bijektiver Homomorphismus der Ringe. Bemerkung 1. Ist m∈ N gegeben, so bietet sich an, die Faktorisierung kr m = pk1 1 · · · pr disjunkten Primzahlen pi von zen: Zm mit paarweise zur isomorphen Darstellung im Sinne des Chinesischen Restsatzes zu nut- Zm =∼ Zp k1 1 × ··· × Zp kr r . 5 M.Gruber, SS 2008 Diskrete Mathematik Bemerkung 2. Zm 2 ×...× Bezeichnet Zm r , das an der den übrigen Stellen eine 0 ei das Element in i-ten ψ−1(ei) ∈ Zm 1 1 und an hat, so kann man die für die Konstruktion der Umkehrabbildung ÿen Stelle eine Zm × ψ−1 wichtigen Grö- der (vom erweiterten euklidischen Algorithmus gelieferten) Gleichung a Y mk + bmi = 1 k6=i entnehmen: Y ψ−1(ei) = a mk mod m . k6=i 6 M.Gruber, SS 2008 Diskrete Mathematik Die Eulersche ϕ(m) Sei die Anzahl der Elemente in (Eulersche k Z∗m (m ∈ N ) ϕ-Funktion). Sei m = p1 1 · · · pkr r mit paar- weise disjunkten Primzahlen Restsatz ist ein alle ϕ-Funktion k x mod pi i x∈ in Zp Zm pi. Nach dem Chinesischen genau dann invertierbar, wenn ki invertierbar sind, also ist i k ϕ(m) = ϕ(p1 1 ) · · · ϕ(pkr r ) . In jedem Zp ki i sind alle Elemente zu ausser Vielfache von k −1 pi i Stück, nämlich pi . k pi i teilerfremd Von diesen Vielfachen gibt es k −1 0 · p,1 · p,2 · p, . . . , (pi i − 1) · p. Also ist k k k −1 ϕ(pi i ) = pi i − pi i k = pi i (1 − 1/pi) und insgesamt ϕ(m) = Y i k pi i (1 − 1/pi) = m Y (1 − 1/pi) . i 7 M.Gruber, SS 2008 Beispiel 2. ϕ(9699690) Diskrete Mathematik 9699690 = 2 · 3 · 5 · 7 · 11 · 13 · 17 · 19. = 9699690 · (1 − 1/2) · · · (1 − 1/19) = 9699690 · 1/2 · · · 18/19 = 1 · 2 · 4 · 6 · 10 · 12 · 16 · 18 = 1658880 8 M.Gruber, SS 2008 Diskrete Mathematik RSA: Schlüsselerzeugung 1. Man bestimmt groÿe Primzahlen p q und sind z.B. 1024-Bit-Zahlen) und berechnet N (groÿ N = pq. ist der Modulus. 2. Man berechnet eine zu ϕ(N) ϕ(N) = (p − 1)(q − 1) teilerfremde Zahl e und wählt zwischen 1 und ϕ(N). e ist der öentliche Exponent. 3. Man bestimmt das d.h. diejenige Zahl ϕ(N)-modulare d d · e mod ϕ(N) = 1 d 4. zwischen 1 Inverse und d ϕ(N), zu e, für die gilt. ist der private Exponent. (N, e) ist der öentliche Schlüssel. Es ist keine einfache Methode bekannt, sieren, oder aus (N, e) N zu faktori- den privaten Exponenten d zu berechnen. 9 M.Gruber, SS 2008 Diskrete Mathematik RSA: Ver- und Entschlüsseln Ein Sender will einem Empfänger eine geheime Botschaft schicken. Der öentliche Schlüssel des Empfängers sei Botschaft kann eine beliebige Zahl x∈ (N, e). Die ZN = {z mod N | z ∈ Z} sein. 1. Der Sender verschlüsselt x mit der Verschlüsselungsfunktion E : ZN → ZN , und sendet E(x) = xe mod x 7→ xe mod N N. 2. Der Empfänger entschlüsselt E(x) mit der Entschlüsselungs- funktion D : ZN → ZN , y 7→ yd mod N und kommt so wegen D(E(x)) = E(x)d mod N = (xe )d mod N=x zum Klartext der Botschaft. Wesentlich ist hier: 1 (xe)d mod N = x. 1 Erklärung nächste Seite. 10 M.Gruber, SS 2008 RSA: Diskrete Mathematik (xe)d mod N = x, Betrachte die Botschaft x in warum? Zp × Zq : x = (x mod p, x mod q). Es ist (x mod p)ed = x mod p x mod q, denn und ed mod ϕ(N) = 1, (x mod q)ed = d.h. ed = kϕ(N) + 1 = k(p − 1)(q − 1) + 1, folglich (Kleiner Fermat!) p−1 k(q−1) (x mod p)ed = ((x mod p) (x mod p) | {z }) =1 q−1 k(p−1) (x mod q). (x mod q)ed = ((x mod q) {z }) | =1 11 M.Gruber, SS 2008 Diskrete Mathematik RSA: Beispiel (Unrealistisch, Zahlen viel zu klein.) Beispiel 3. 1. Wir wählen 2. p = 97, q = 103 ⇒ N = pq = 9991. ϕ(N) = (p − 1)(q − 1) = 96 · 102 = 9792. Verschlüsselungsexponent e = 193 Wir wählen als (teilerfremd zu 9792). 3. Wir bestimmen pro forma mit dem erweiterten euklidischen Algorithmus den ggT(193, 9792) (der natürlich 1 ist) und bekommen die Darstellung (−53) · 9792 + 2689 · 193 = 1, der wir entnehmen, dass das 2689 9792-modulare ist. Der Entschlüsselungsexponent 4. Die Botschaft dann x y = 1000193 sei 1000. mod mod ist also 193 2689. Die verschlüsselte Botschaft ist 9991 = 7014. 5. Zur Entschlüsselung von 70142689 d Inverse zu y berechnet man y2689 mod 9991 = 9991 = 1000 und bekommt so den Klartext der Botschaft wieder. 12 M.Gruber, SS 2008 Diskrete Mathematik Literatur [CM] Ronald L. Graham, Donald E. Knuth and Oren Patashnik, Concrete Mathematics: A Foundation for Computer Science. Addison-Wesley, 1989; second edition, 1994. http://www-cs-faculty.stanford.edu/~knuth/gkp. html [AZ] Otto Forster, Algorithmische Zahlentheorie , Vieweg-Verlag, 1996. http://www.mathematik.uni-muenchen.de/~forster/ books/azth/algzth.html 13