Praktisch modulo n rechnen

Praktisch modulo n rechnen Addition und Multiplikation modulo n sind auch dann algorithmisch kein großes Problem, wenn mit großen Zahlen gerechnet wir...
Author: Maya Weber
23 downloads 3 Views 90KB Size
Praktisch modulo n rechnen Addition und Multiplikation modulo n sind auch dann algorithmisch kein großes Problem, wenn mit großen Zahlen gerechnet wird (z.B. 1000-stellig). Das Verwalten sehr großer Zwischenergebnisse kann vermieden werden, wenn auch Zwischenergebnisse modulo n reduziert werden. Mit Hilfe des Euklidischen Algorithmus kann auch schnell dividiert werden (wo möglich). Selbst das Potenzieren ist einfach:

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 1

Square and multiply Wie berechnet man 3471327233 mod 41633?

Man stellt zuerst den Exponenten als Binärzahl dar: 27233 = 214 + 213 + 211 + 29 + 26 + 25 + 20 = %110101001100001.

Sukzessives Ausklammern ergibt 27233 = ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 2

Square and multiply Man hat also a27233 = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 3

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 4

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 5

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a = (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 6

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a = (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2+1)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 7

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a = (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2+1)2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 8

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a = (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2+1)2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2 · a)2 · a)2 )2 )2 )2 )2 · a = (((((((((a((2+1)·2·2+1)·2·2+1)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 9

Square and multiply Man hat also ((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2+1 a27233 = a   = a((((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)·2·2·2·2·2 · a

= (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2+1)2 )2 )2 )2 )2 · a = (((((a(((2+1)·2·2+1)·2·2+1)·2·2·2+1)·2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2+1)2 · a)2 )2 )2 )2 )2 · a = ((((((a((2+1)·2·2+1)·2·2+1)·2·2·2 · a)2 · a)2 )2 )2 )2 )2 · a = (((((((((a((2+1)·2·2+1)·2·2+1)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 10

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 11

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a =

(((((((((((a(2+1)·2·2+1)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 12

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a =

(((((((((((a(2+1)·2·2+1)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((a(2+1)·2·2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 13

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a =

(((((((((((a(2+1)·2·2+1)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((a(2+1)·2·2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((((a2+1)2 )2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 14

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a =

(((((((((((a(2+1)·2·2+1)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((a(2+1)·2·2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((((a2+1)2 )2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((((a2 · a)2 )2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 15

Square and multiply Man hat also a27233 = (((((((((a((2+1)·2·2+1)·2·2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a =

(((((((((((a(2+1)·2·2+1)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((a(2+1)·2·2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((((a2+1)2 )2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

=

(((((((((((((a2 · a)2 )2 · a)2 )2 · a)2 )2 )2 · a)2 · a)2 )2 )2 )2 )2 · a

Die Exponentiation mit 27233 kann also durchgeführt werden, indem vierzehn mal quadriert und fünf mal multipliziert wird. Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 16

Potenzieren modulo n Das Potenzieren mit dem Exponenten e ∈ N kann mit (log2 e)-maligem Quadrieren und Multiplizieren durchgeführt werden. Beim Rechnen modulo n kann dabei bei jedem Rechenschritt modn reduziert werden.

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 17

Potenzieren modulo n Das Potenzieren mit dem Exponenten e ∈ N kann mit (log2 e)-maligem Quadrieren und Multiplizieren durchgeführt werden. Beim Rechnen modulo n kann dabei bei jedem Rechenschritt modn reduziert werden. Kein auch nur halbwegs schnelles Verfahren ist bekannt, um aus der Angabe von 2e mod n den Exponenten e zu bestimmen („binary log“).

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 18

Öffentlich ein Geheimnis vereinbaren Problemstellung: Zwei Teilnehmer möchten abhörsicher miteinander kommunizieren und dazu ein Verschlüsselungsverfahren benutzen. Dazu müssen sie einen gemeinsamen geheimen Schlüssel verwenden. Wie können sie sich über eine nicht abhörsichere Verbindung auf ein gemeinsames Geheimnis einigen?

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 19

Öffentlich ein Geheimnis vereinbaren Lösung: Die beiden Teilnehmer A und B einigen sich öffentlich auf eine grosse Zahl n. Jeder Teilnehmer erzeugt eine große Zahl: Teilnehmer A erzeugt die Zahl a und berechnet 2a mod n Teilnehmer B erzeugt die Zahl b und berechnet 2b mod n Die Zahlen a und b behalten die Teilnehmer geheim für sich. Die Zahlen 2a mod n und 2b mod n teilen sie sich mit. Danach kennt Teilnehmer A die Zahlen a und 2b mod n, kennt Teilnehmer B die Zahlen b und 2a mod n, kennt ein Angreifer die Zahlen 2a mod n und 2b mod n. Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 20

Das gemeinsame Geheimnis Die beiden Teilnehmer berechnen 2a·b ≡ (2a )b ≡ (2b )a

(mod n).

Dieses Ergebnis verwenden sie als gemeinsamen Schlüssel für das Verschlüsselungsverfahren. Der Angreifer kennt lediglich 2a mod n und 2b mod n. Es ist kein brauchbares Verfahren bekannt, daraus 2a·b mod n

auszurechnen.

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 21

Der Satz von Lagrange Die Ordnung eines Elementes a einer Gruppe (G, ·,−1 , 1) ist die kleinste natürliche Zahl n mit an = 1, falls es überhaupt eine solche natürliche Zahl gibt, und ∞ sonst.

Satz 1 Für jedes Element a einer endlichen Gruppe (G, ·,−1 , 1) gilt: Die Ordnung von a ist ein Teiler der Anzahl |G| der Gruppenelemente.

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 22

Das Lemma von Euler-Fermat Satz 2 Ist a zu n teilerfremd, dann gilt aϕ(n) mod n = 1.

Mathematik I fur ¨ Informatiker – Das Lemma von Euler-Fermat – p. 23