Die multiplikative Gruppe modulo n http://www.inf.fh-flensburg.de/lang/krypto/grund/gruppezn.htm Die multiplikative Gruppe modulo n Beispiel: G = 10* = { 1, 3, 7, 9 }, also g = 4 und e = 1. In Grundlagen Die multiplikative Gruppe modulo n | k<n ggt(k, n) = 1 } φ(n) = | n*| Satz: Sei p eine Primzahl. Dann gilt für alle a a p-1 Beweis: Da Die Anzahl der Elemente von n* wird als Eulersche Phi-Funktion φ(n) bezeichnet (nach L. EULER ). = { 1, 3, 7, 9 } = { 1, 2, 4, 7, 8, 11, 13, 14 } (1 – 1/p) a a a b (mod p) b (mod q) b (mod pq) Beweis: Es ist a – b teilbar durch p und durch q, also auch durch pq. Hierbei durchläuft p alle Primzahlen, die Teiler von n sind, einschließlich n selber, falls n eine Primzahl ist. Beweis: Von den anfänglich n Zahlen 1, ..., n ist jede p-te durch die erste Primzahl p teilbar; werden diese gestrichen, verbleiben n·(1-1/p) Zahlen. Von diesen ist wiederum ein Anteil von 1/q durch die zweite Primzahl q teilbar; werden diese gestrichen, verbleiben n·(1-1/p)·(1-1/q) Zahlen usw. Satz: Seien p und q Primzahlen. Dann gilt für alle m m k(p-1)(q-1)+1 Beweis: Sei zunächst m m p-1 Beispiel: φ(10) = 10 · (1 – 1/2) · (1 – 1/5) = 10 · 1/2 · 4/5 = 4 0 und für alle k 0 m (mod pq) 0 (mod p). Dann gilt der Satz von Fermat: 1 (mod p) Damit gilt, zunächst modulo p gerechnet: Wenn p eine Primzahl ist, gilt offenbar φ(p) = p-1. Für das Produkt zweier Primzahlen p, q gilt φ(pq) = (p-1)(q-1). Satz: Sei G eine endliche Gruppe mit g Elementen und neutralem Element e. Dann gilt für alle a (a mod p) p-1 (mod p) Hilfssatz: Seien p, q zwei verschiedene Primzahlen. Dann gilt für alle a, b , n > 1. Dann ist p|n (mod p) eine Kongruenzrelation ist, also verknüpfungstreu ist, gilt a p-1 Der Satz von Fermat lässt sich anwenden, um den folgenden, für das RSA-Verfahren benötigten Satz von Euler zu beweisen. Zunächst folgt jedoch noch ein Hilfssatz. Die Menge n* bildet mit der Multiplikation modulo n als Verknüpfung und der 1 als neutralem Element eine abelsche Gruppe. φ(n) = n · , die nicht durch p teilbar sind 1 (mod p) d.h. statt mit a können wir auch mit dem Repräsentanten rechnen. Da ggt(a, p) = ggt(p, a mod p) = 1, gehört a mod p zur Gruppe p*, und diese hat p-1 Elemente. Somit folgt mit dem vorigen Satz die Behauptung. 7* = { 1, 2, 3, 4, 5, 6 } φ(7) = 6, φ(10) = 4, φ(15) = 8 Satz: Sei n Modulo 10 gerechnet kommt also in allen Fällen 1 heraus. Ein Spezialfall dieses Satzes ist der (historisch wesentlich früher gefundene) kleine Satz von FERMAT : Definition: Sei n . Die Menge n* besteht aus allen natürlichen Zahlen, die kleiner als n sind und teilerfremd zu n sind. Mit φ(n) wird die Anzahl der Elemente von n* bezeichnet. Beispiel: 10* 15* 34 = 81 74 = 2401 94 = 6561 Sätze von Fermat und Euler Die Gruppe n* n* = { k ergibt sich 14 = 1 Die Menge 10 = {0, ..., 9} bildet mit der Addition modulo 10 als Verknüpfung eine Gruppe. Mit der Multiplikation modulo 10 als Verknüpfung bildet 10 jedoch keine Gruppe, auch nicht, wenn die 0 ausgenommen wird, die bekanntlich kein inverses Element hat. Es stellt sich heraus, dass noch mehr Zahlen ausgenommen werden müssen, die auch kein inverses Element haben, z.B. die 2. Die schließlich verbleibenden vier Elemente bilden die multiplikative Gruppe 10*. m k(p-1)(q-1)+1 G ag = e m·(m p-1) k(q-1) Diese Formel gilt auch für m m·1k(q-1) m (mod p) 0 (mod p), also insgesamt für alle m 0. Mit den gleichen Überlegungen erhält man dasselbe modulo q: m k(p-1)(q-1)+1 Beweis m (mod q) Mit dem Hilfssatz folgt schließlich m k(p-1)(q-1)+1 1 of 3 http://www.inf.fh-flensburg.de/lang/krypto/grund/gruppezn. 10/24/2007 04:49 2PM of 3 m (mod pq) 10/24/2007 04:49 Die multiplikative Gruppe modulo n http://www.inf.fh-flensburg.de/lang/krypto/grund/gruppezn.htm Berechnung des modular inversen Elements Das inverse Element eines Elements a berechnen. n* lässt sich mit Hilfe des erweiterten Euklidischen Algorithmus Der erweiterte Euklidische Algorithmus berechnet für zwei Zahlen a, b ggt(a, b) sowie die Darstellung des ggt als Vielfachsumme von a und b: ggt(a, b) = ua + vb mit u, v den größten gemeinsamen Teiler . Die multiplikative Gruppe n* besteht aus den Elementen von n, die teilerfremd zu n sind. Für jedes a n* gilt dann ggt(a, n) = 1 und die 1 lässt sich als Vielfachsumme darstellen: 1 = ua + vn. Modulo n gerechnet ergibt sich 1 ua + vn ua (mod n). Multiplikation mit a-1 ergibt a-1 u (mod n). Damit ist u mod n das inverse Element von a in n*. Berechnung der Schlüssel e und d für das RSA-Verfahren Für die Zahlen e und d muss gelten e·d mod φ(n) = 1, d.h. e und d sind zueinander inverse Zahlen in der Gruppe φ(n)*. Die Zahl e wird beliebig gewählt, es muss nur gelten ggt(e, φ(n)) = 1. Das zu e inverse Element d ergibt sich dann wie oben als d = u mod φ(n). Weiter mit: H.W. Lang, FH Flensburg ([email protected]) © . Created: 29.04.2002 Updated: 03.01.2006 3 of 3 10/24/2007 04:49 PM