RSA-Verfahren: Bestimmung der Faktorisierung von n aus Kenntnis von n, e, d Ist 2s die größte 2-Potenz, die ed − 1 teilt, k = (ed − 1)/2s , so beruht die Erfolgswahrscheinlichkeit des in der Vorlesung vorgestellten probabilistischen Algorithmus zur Faktorisierung von n (= p · q) auf folgendem Satz: Satz Die Anzahl der zu n teilerfremden Zahlen a mit 1 ≤ a ≤ n − 1, für die o((a mod p)k ) 6= o((a mod q)k ) gilt, ist wenigstens (p − 1)(q − 1)/2. (Die Ordnungen beziehen sich auf die Gruppen Zp ∗ bzw. Zq ∗ .) Beweis: Die Gruppen Zp ∗ und Zq ∗ sind zyklisch der Ordnung p − 1 bzw. q − 1. (Die multiplikativen Gruppen endlicher Körper sind immer zyklisch; einen Beweis findet man z.B. im Buch von Buchmann, Abschnitt 2.20, oder in jedem Algebra-Lehrbuch.) Sei v ∈ {1, . . . , p − 1} mit Zp ∗ =< v > und sei w ∈ {1, . . . , q − 1} mit Zq ∗ =< w >. Nach dem Chinesischen Restsatz existiert ein h, 1 ≤ h ≤ n = p · q mit h ≡ v mod p und h ≡ w mod q. Dann ist also o(h mod p) = p − 1 und o(h mod q) = q − 1. 1. Fall: o((h mod p)k ) > o((h mod q)k ) Da p − 1 ein Teiler von ϕ(n) und ϕ(n) ein Teiler von ed − 1 ist, ist ed − 1 = s s (p−1)r für ein r ∈ N. Es folgt ((h mod p)k )2 = (h mod p)k2 = (h mod p)ed−1 = (h mod p)(p−1)r ≡ 1 mod p. Also ist o((h mod p)k ) = 2i für ein i ≤ s (siehe Satz über Ordnungen von Elementen endlicher Gruppen, Teil b)). Analog ist o((h mod q)k ) = 2j mit j < i. Sei x eine ungerade Zahl in {1, . . . , p − 1} und sei y ∈ {0, . . . , q − 2}. Nach dem Chinesischen Restsatz gibt es ein a, 1 ≤ a < n = p · q, mit a ≡ hx mod p und a ≡ hy mod q. Dann ist o((a mod p)k ) = o((h mod p)xk ), also o((a mod p)k ) = o((h mod p)k ) (siehe Satz über Ordnungen von Elementen, Teil c)). j j j Andererseits ist ((a mod q)k )2 = (a mod q)k·2 ≡ (h mod q)yk·2 ≡ 1 mod q, d.h. o((a mod q)k ) ≤ o((h mod q)k ) (siehe Satz über Ordnungen von Elementen, Teil b)). Also ist o((a mod p)k ) > o((a mod q)k ). Es ist klar, dass für jede der (p − 1)(q − 1)/2 möglichen Wahlen von (x, y) die zugehörigen Zahlen a < n paarweise verschieden sind. Damit folgt die Behauptung in diesem Fall. 2. Fall: o((h mod p)k ) < o((h mod q)k ) Analog zum ersten Fall. 3. Fall: o((h mod p)k ) = o((h mod q)k ) Wie zu Beginn des ersten Falles sieht man, dass o((h mod p)k ) = o((h mod q)k ) = 2i , i ≤ s. Dabei ist i ≥ 1 (siehe Satz über Ordnungen von Elementen, Teil c)), da k ungerade ist und p − 1 oder q − 1 gerade ist (in unserem Fall dann sogar beide). Ist x eine ungerade Zahl in {0, . . . , p − 2} und y eine gerade Zahl in {0, . . . , q − 2}, so existiert nach dem Chinesischen Restsatz ein a, 1 ≤ a ≤ n = p · q, mit a ≡ hx mod p und a ≡ hy mod q. Wie im ersten Fall sieht man, dass o((a mod p)k ) = o((h mod p)k ). i−1 i−1 i−1 Andererseits ist ((a mod q)k )2 ≡ ((h mod q)yk )2 ≡ ((h mod q)k )y·2 ≡ 1 mod q, da y gerade und daher 2i ein Teiler von y2i−1 ist. Also ist o((a mod q)k ) < o((a mod p)k ). Wählt man x als gerade Zahl in {0, . . . , p − 2} und y als ungerade Zahl in {0, . . . , q − 2}, so verläuft das Argument analog. Für jede dieser insgesamt (p − 1)(q − 1)/2 möglichen Wahlen von (x, y) sind die zugehörigen Zahlen a < n verschieden. Damit ist der Beweis vollständig.