Kleiner Fermatscher Satz, Chinesischer Restsatz, Eulersche '-Funktion, RSA Manfred Gruber http://www.lrz-muenchen.de/~gruber SS 2009, KW 15 M.Gruber, SS 2009 Diskrete Mathematik Kleiner Fermatscher Satz Satz 1. Sei p prim und a 2 Zp. Dann ist ap Beweis f 1 mod Betrachte die Abbildung ist injektiv, denn aus p=1 f : Zp ! Zp; x 7! a x. a x = a y folgt x = a 1 a x = a 1 a y = y: Da Zp f endlich ist, ist f1; 2; : : : ; p auch surjektiv, also bijektiv. Daher ist g = fa 1; a 2; : : : ; a (p 1 1) g; (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 Dividiert man durch 1 (p 1) = ap 1 1 (p 1) : 1), steht die Behauptung da. 1 M.Gruber, SS 2009 Diskrete Mathematik Chinesischer Restsatz im Fall Beispiel 1. x 7! ( : Sei 1( x); 2( Z6 !Z Z Z6 3 die Abbildung 2 x)) = (x mod 2; x mod 3) : ist bijektiv (nachprüfen!) und es gilt x y) = ( (x y ) = ( ( Führt man in plikation x) 1 (x) 1( Z2 Z3 y ); 1 (y ); 1( x) 2 (x) 2( eine Addition y)) 2 (y )) 2( (1) (2) 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 ) = ( x (y ) (x) (y ) ( ) schreiben. Diese Eigenschaften machen (3) (4) zu einem Ring-Homomorhismus. 2 M.Gruber, SS 2009 Die Diskrete Mathematik Umkehrabbildung 1 ist ebenfalls aus Z2 Z3 ein Ring- Homomorphismus. Für a= x ( ) 1 ( und b= a b) = = y ( ) gilt nämlich x (y)) (x y )) 1 ( ( ) 1 ( xy 1 = ( a) = 1 b ; ( ) und 1 ( a b) = = x (y)) (x y )) 1 ( ( ) 1 ( x y 1 = ( a) = 1 b : ( ) 3 M.Gruber, SS 2009 Diskrete Mathematik 1 Wie berechnet man Es genügt, u1 1 = ( x; y)? ; (1 0) und u2 = 1 ; (0 1) zu kennen, denn 1 ( x; y) = = Für u1 x; 0) 1(0; y) x 1(1; 0) y 1 ( 1 ; : (0 1) u1 mod 2 = 1 und u1 mod u2 muss gelten: u2 mod 2 = 0 und muss gelten: 3 = 0, Für u2 mod 3 = 1. 2 und 3 sind teilerfremd und erfüllen in 1 3+( In Z6 Z die Gleichung 1) 2 = 1. liest sich diese Gleichung als Der erste Summand hat die von schaften, der zweite Summand 3 4=1 . u1 geforderten Eigenhat die von u2 gefor- derten Eigenschaften. Also ist u1 = 3 und u2 = 4. 4 M.Gruber, SS 2009 Diskrete Mathematik Chinesischer Restsatz Satz 2. [Chinesischer Restsatz] m1 mr 2 N mit mi > 1. Dann ist : Zm Sei m = paarweise teilerfremden Zahlen ! Zm Zm : : : Zmr 1 2 x 7! (x mod m1; x mod m2; : : : ; x mod mr ) ein bijektiver Homomorphismus der Ringe. m 2 N gegeben, so bietet sich k1 k an, die Faktorisierung m = p1 pr r mit paarweise disjunkten Primzahlen pi zur isomorphen Darstellung von Zm im Sinne des Chinesischen Restsatzes zu nutBemerkung 1. zen: Zm Ist = Zpk Zpkr : r 1 1 5 M.Gruber, SS 2009 Diskrete Mathematik Bemerkung 2. Zm1 ne 1 Bezeichnet Zm : : : Zmr 2 ei das , das an der und an den übrigen Stellen eine Element i-ten 0 Stelle ei- hat, so kann man die für die Konstruktion der Umkehrabbildung 1 wichtigen Gröÿen in 1 e 2 Zm der (vom erweiterten ( i) euklidischen Algorithmus gelieferten) Gleichung a Y k6=i mk + bmi = 1 entnehmen: 1 0 Y (ei ) = @a k6=i 1 mkA mod m: 6 M.Gruber, SS 2009 Diskrete Mathematik Die Eulersche '-Funktion '(m) die Anzahl der Elemente in Zm (m 2 N) k1 k (Eulersche '-Funktion). Sei m = p1 pr r mit paarweise disjunkten Primzahlen pi . Nach dem Chinesischen Restsatz ist ein x 2 Zm genau dann invertierbar, ki wenn alle x mod pi in Z ki invertierbar sind, also ist p Sei i '(m) = '(pk11 ) '(pkr r ) : pki i teilerfremd i ki 1 ausser Vielfache von pi ; von diesen gibt es pi Stück, ki 1 nämlich 0 pi ; 1 pi ; 2 pi ; : : : ; (pi 1) pi . Also ist In jedem Zpki sind alle Elemente zu '(pki i ) = pki i pki i 1 = pki i (1 =pi) 1 und insgesamt Y ki '(m) = pi (1 i =pi) = m 1 Y i (1 =pi) : 1 7 M.Gruber, SS 2009 Beispiel 2. '(9699690) Diskrete Mathematik 9699690 = 2 3 5 7 11 13 17 19. = 1=2) (1 1=19) 9699690 1=2 18=19 1 2 4 6 10 12 16 18 = 1658880 = = 9699690 (1 8 M.Gruber, SS 2009 Diskrete Mathematik RSA: Schlüsselerzeugung q (groÿ sind z.B. 1024-Bit-Zahlen) und berechnet N = pq . N ist der Modulus. 1. Man bestimmt groÿe Primzahlen und q 1) und wählt eine zu '(N ) teilerfremde Zahl e zwischen 1 und '( N ) . e ist der öentliche Exponent. 2. Man berechnet '(N ) = (p p 1)( '(N )-modulare Inverse d zu e, d.h. diejenige Zahl d zwischen 1 und '(N ), für die d e mod '(N ) = 1 gilt. d ist der private Exponent. 3. Man bestimmt das 4. ( N; e) ist der öentliche Schlüssel. Es ist keine einfache Methode bekannt, sieren, oder aus ( N zu faktori- N; e) den privaten Exponenten d zu berechnen. 9 M.Gruber, SS 2009 Diskrete Mathematik RSA: Ver- und Entschlüsseln Ein Sender will einem Empfänger eine geheime Botschaft schicken. Die Der öentliche Botschaft Schlüssel kann eine fz mod N j z 2 Zg sein. 1. Der Sender verschlüsselt des Empfängers beliebige Zahl sei x 2 ( N; e). ZN = x mit der Verschlüsselungsfunktion E : ZN ! ZN ; x 7! xe mod N E (x) = xe mod N . Der Empfänger entschlüsselt E (x) mit der Entschlüsselungs- und sendet 2. 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 Erklärung x ( e )d mod N = x. 1 nächste Seite. 10 M.Gruber, SS 2009 Diskrete Mathematik xe)d mod N = x, warum? RSA: ( Betrachte die Botschaft x in Zp Zq : x = (x mod p; x mod q): x mod p)ed = x mod p und (x mod q)ed = x mod q, denn ed mod '(N ) = 1, d.h. Es ist ( ed = k'(N ) + 1 = k(p 1)( q 1) + 1 ; folglich (Kleiner Fermat!) ( x mod p)ed = ((| x mod{z p)p =1 ( x mod q)ed = ((| x mod{z q)q =1 1 } 1 } k(q 1) k(p 1) ) ) ( ( x mod p) x mod q): 11 M.Gruber, SS 2009 Diskrete Mathematik RSA: Beispiel Beispiel 3. (Unrealistisch, Zahlen viel zu klein.) p = 97; q = 103 ) N = pq = 9991. '(N ) = (p 1)(q 1) = 96 102 = 9792. Wir wählen als Verschlüsselungsexponent e = 193 (teilerfremd zu 9792). 1. Wir wählen 2. 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 2689 das 9792-modulare Inverse zu 193 ist. Der Entschlüsselungsexponent 4. Die Botschaft x d ist also 2689. sei 1000. Die verschlüsselte Botschaft ist y = 1000193 mod 9991 = 7014. Zur Entschlüsselung von y berechnet man y 2689 mod 9991 = dann 5. 70142689 mod 9991 = 1000 und bekommt so den Klartext der Botschaft wieder. 12 M.Gruber, SS 2009 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