ATK4 - Computer- und Mediensicherheit FHS Hagenberg 11. Übungsblatt für den 13. Juni 2002 (2 Seiten) In den ersten beiden Beispielen geht es um Wurzelziehen, damit ist in diesem Fall immer das Ziehen von Quadratwurzeln gemeint. 1. (Wurzelziehen modulo pn ) Das Wurzelziehen modulo p haben wir bereits gelernt. Als zweiter Schritt stellt sich nun die Frage, wie man die Wurzel modulo pn ziehen kann. Die Antwort ist, man beginnt, indem man die Wurzel modulo p berechnet und daraus eine Wurzel modulo p2 , daraus eine Wurzel modulo p3 , us.w. Ich beschreibe hier eine Methode aus einer Wurzel modulo pα−1 eine Wurzel modulo pα zu konstruieren, falls p > 2. Angenommen, x wäre eine Wurzel von a modulo pα−1 , also x2 ≡ a mod pα−1 . Wir suchen eine Zahl y, die Wurzel von a modulo pα ist, also y 2 ≡ a mod pα und die modulo pα−1 gleich x ist. Es lässt sich also schreiben als y ≡ x + kpα−1 mod pα , wobei 0 ≤ k < p ist. x2 lässt sich modulo pα schreiben als x2 ≡ a + bpα−1 mod pα , wobei 0 ≤ a < pα−1 und 0 ≤ b < p. Nun ist y 2 = (x + kpα−1 )2 ≡ x2 + 2xkpα−1 + p2α−2 ≡ x2 + 2xkpα−1 = a + bpα−1 + 2xkpα−1 ≡ a + pα−1 (b + 2xk) mod pα . Damit dieser Ausdruck gleich a wird (wir wünschen uns y 2 ≡ a mod pα ), muss also b + 2xk ≡ 0 mod p sein, oder umgeformt k ≡ −b · (2x)−1 mod p. Aus dieser Erkenntnis ergibt sich die folgende Methode um die Wurzel von a modulo pα zu bestimmen, wenn eine Wurzel modulo pα−1 bekannt ist: Gegeben sei x mit 0 ≤ x < pα−1 mit x2 ≡ a mod pα−1 . (a) Berechne x2 mod pα und schreibe das Ergebnis in der Form a + bpα−1 , wobei 0 ≤ a < pα−1 und 0 ≤ b < p. (b) Berechne das inverse Element zu 2x modulo p und damit k = −(2x)−1 b mod p. (c) Nun ist y = x + kpα−1 eine Wurzel von a modulo pα . Bestimmen Sie auf diese Art eine Wurzel aus 129 modulo 625 und machen Sie die Probe. 2. (Wurzelziehen modulo n) Angenommen n = pe11 pe22 . . . perr ist die Primfaktorzerlegung von n. Wie lässt sich eine Wurzel von a modulo n bestimmen, wenn man eine Wurzel modulo pei i für jedes 1 ≤ i ≤ s kennt? Bestimmen Sie eine Wurzel von 1701 modulo 12150 auf diese Art und machen Sie die Probe. 1 2 3. Faktorisieren Sie die Zahl n = 1042387 mit dem quadratischen Sieb. Berechnen Sie dazu eine Tabelle der Werte von f (x) wie in der Vorlesung für 0 ≤ x ≤ 15 und berechnen Sie gleich jeweils die Primfaktorenzerlegung (den Aufwand mit der Faktorbasis können Sie sich hier sparen, es sind ohnedies nur 16 kleine Zahlen zu faktorisieren. Stellen Sie nun ein homogenes lineares Gleichungssystem über Z2 auf und lösen Sie es, um herauszufinden, welche Gleichungen Sie multiplizieren müssen, um erfolgreich n faktorisieren zu können. Finden Sie schließlich einen Faktor von n. 4. Wie würde im Beispiel 3 eine Faktorbasis von 50 aussehen? Wählen Sie als Siebbereich S = {−20, . . . , 20} und verwenden Sie die Methode aus der Vorlesung um alle Werte x ∈ S zu finden, für die f (x) durch 3 teilbar ist. Kontrollieren Sie, ob Sie anhand der im Beispiel 3 erstellten Tabelle mit den Primfaktorzerlegungen, ob Sie alle x im Bereich 0 ≤ x ≤ 15 tatsächlich auf diese Art finden.