IT-Sicherheitsmanagement Teil 3: Restklassen

Werbung
IT-Sicherheitsmanagement
Teil 3: Restklassen
ISM – SS 2017 – Teil 3/Restklassen
20.04.17 1
Literatur
[3-1]
Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne
Verfahren der Kryptographie. 4. Auflage, Vieweg 2001
[3-2]
Schmeh, Klaus: Kryptografie. dpunkt, 5. Auflage, 2013
[3-3]
Hoffmann, Dirk: Einführung in die Informations- und
Codierungstheorie. Springer, 2014
[3-4]
Reiss, Kristina; Schmieder, Gerald: Basiswissen Zahlentheorie.
Springer, 3. Auflage, 2014
[3-5]
Buchmann, Johannes: Einführung in die Kryptographie. 5. Auflage,
Springer, 2010
[3-6]
Freiermuth, Karin; Hromkovic, Juraj; Keller, Lucia; Steffen, Björn:
Einführung in die Kryptologie. Vieweg+Teubner, 2010
ISM – SS 2017 – Teil 3/Restklassen
2
Übersicht
•
•
•
•
Etwas Modulo-Arithmetik
Restklassen
Der euklidische Algorithmus
Der erweiterte euklidische Algorithmus
ISM – SS 2017 – Teil 3/Restklassen
3
Definitionen und ein Satz I
ℤ
Menge der ganzen Zahlen
ℕ
Menge der ganzen positiven Zahlen mit 0
ℕ\{0} ℕ ohne 0
Satz
Für alle Zahlen a∊ℤ, b∊ℤ\{0} gibt es genau ein q∊ℤ und r∊ℕ
mit
a = q*b+r,
wobei 0 <= r < |b| ist.
r wird Rest genannt und ist immer positiv zwischen 0 und |b|-1.
ISM – SS 2017 – Teil 3/Restklassen
4
Definitionen und ein Satz II
Ganzzahlige Division:
DIV
q= a DIV m, wobei a, m, q aus ℤ, mit m<>0
q ist die größte Ganzzahl < a/m
Rest modulo:
MOD
r= a MOD m, wobei a, m, q aus ℤ, mit m<>0, r aus ℕ,
Konvention (wird meist eingehalten):
q
(wie Quotient) möge der ganzzahlige Quotient sein
r
(wie Rest) möge der Modulo-Wert sein
p
(wie Primzahl) möge eine Primzahl sein
m
(wie Modul) möge die Zahl hinter mod/MOD sein
n
möge eine natürliche Zahl einschließlich 0 sein
ISM – SS 2017 – Teil 3/Restklassen
5
Definitionen und ein Satz III
Aus Satz (verkürzt) a = b*q+r folgt
mit der Definition von DIV und MOD damit:
Mit a, m aus ℤ, mit m<>0, r aus ℕ gilt:
a = (a DIV m)*m + a MOD m
oder
a MOD m = a - (a DIV m)*m
Das Modul m kann auch negativ sein:
In a MOD m = a - (a DIV m)*m ist das Produkt positiv.
Daraus folgt a MOD m = a MOD -m
In dieser Veranstaltung
(und in der Kryptographie)
wird nur mit positiven
Modulen gerechnet.
ISM – SS 2017 – Teil 3/Restklassen
6
Definitionen und ein Satz IV - Beispiele
0
1
2
3
4
MOD
MOD
MOD
MOD
MOD
3
3
3
3
3
=
=
=
=
=
0
1
2
0
1
-1
-2
-3
-4
-5
MOD
MOD
MOD
MOD
MOD
3
3
3
3
3
=
=
=
=
=
2
1
0
2
1
0
1
2
3
4
DIV
DIV
DIV
DIV
DIV
3
3
3
3
3
=
=
=
=
=
0
0
0
1
1
Es gilt
a = (a DIV m)*m + a MOD m
a DIV m = (a - a MOD m)/m
22 MOD 7 = 1, denn 3*7=21
-22 MOD 7 = 6, denn -4*7= -28
ISM – SS 2017 – Teil 3/Restklassen
7
Addition und Subtraktion I
Wertebereich: ℕ für das Ergebnis
Addition Modulo m:
Es wird wie gewöhnlich addiert, wobei anschließend solange m
subtrahiert/addiert wird, bis das Ergebnis >= 0 und <m ist.
Subtraktion Modulo m:
Es wird wie gewöhnlich subtrahiert, wobei anschließend solange m
addiert/subtrahiert wird, bis das Ergebnis >= 0 und <m ist.
Beispiele:
( 3 + 5) MOD 8 = 0
( 3 – 6) MOD 9 = 6
(–3 – 6) MOD 9 = 0
ISM – SS 2017 – Teil 3/Restklassen
8
Teilbarkeit I
Definition
a∊ℤ\{0} teilt b∊ℤ, wenn es ein k∊ℤ gibt, so das
b = k*a
Dies wird geschrieben als a|b.
Oder anders:
a teilt b = a|b, wenn b MOD a = 0 oder
wenn b ein Vielfaches von a ist.
ISM – SS 2017 – Teil 3/Restklassen
9
Teilbarkeit II
Sätze
[1] a|b ∧ a|c => a|(b+c)
[2] a|b ∧ a|c => a|(b-c)
[3] a|b ∧ a|c => a|(k1*b+k2*c)
(Linearkombination)
Beweise folgen direkt aus der Definition:
[2]: a|b ∧ a|c => a|(b-c):
Mit b = k1*a falls a|b und analog c = k2*a
a|(b-c)=> a|(k1*a-k2*a) = a|a*(k1-k2)
analog für die umgekehrte Richtung
Analog für [1] und [3]
ISM – SS 2017 – Teil 3/Restklassen
10
Ein paar Sätze I
Definition a MOD m = b MOD m, falls m | (a – b) mit a, b∊ℤ, m∊ℕ\{0},
dann heißt a zu b kongruent modulo m
d.h.
d.h.
d.h.
d.h.
mit m | (a – b) gibt es ein k mit k*m = a – b
die Differenz muss ein Vielfaches von m sein
wenn k*m = a – b gilt, dann auch a = b + k*m
k*m ist dann in a = b + k*m die Differenz
daraus folgt unmittelbar mit k∊ℤ:
(a+k*m) MOD m = b MOD m
(a+k*m) MOD m = a MOD m
ISM – SS 2017 – Teil 3/Restklassen
11
Ein paar Sätze II
Allgemein gilt (a, k aus ℤ, m∊ℕ\{0}):
[S1] (a + k*m) MOD m = a MOD m
(folgt aus Definition)
[S2]
k*m MOD m = 0
(folgt aus [S1])
[S3]
a MOD m = a, falls 0<= a < m
Addition (a, b aus ℤ, m∊ℕ\{0}):
[S4] (a + b) MOD m = (a MOD m + b MOD m) MOD m
Subtraktion (a, b aus ℤ, m∊ℕ\{0}):
[S5] (a - b) MOD m = (a MOD m - b MOD m) MOD m
ISM – SS 2017 – Teil 3/Restklassen
12
Ein paar Sätze III – Beweis für Addition
Zu zeigen ist:
Es gilt:[a]
Es gilt:[b]
(a + b) MOD m = (a MOD m + b MOD m) MOD m
z = m*(z DIV m) + z MOD m
(z + a*m) MOD m = z MOD m, da a*m MOD m = 0
[1] (a + b) MOD m
[2] (a + b) MOD m = (m*a DIV m + a MOD m +
m*b DIV m + b MOD m) MOD m
// da [a]
[3]
= (m*(a DIV m + b DIV m) +
a MOD m + b MOD m) MOD m
[4]
= (0 + a MOD m + b MOD m) MOD m // da [b]
[5] (a + b) MOD m = (a MOD m + b MOD m) MOD m
Analog geht dies für die Subtraktion und Multiplikation.
ISM – SS 2017 – Teil 3/Restklassen
13
Bemerkungen
Da a MOD m = b MOD m mit a ∊ℤ, b∊ℕ und b<m gilt,
kann immer im Bereich:
Wertebereich für a:
{0, 1, 2, …, m-1} bei MOD m
gerechnet werden. Wenn ein Ergebnis einer Rechnung außerhalb liegt,
kann es jederzeit durch Addieren von k*m in diesen Bereich gebracht
werden.
Das führt zur Ersparnis bei großen Zahlen.
• 0 ist das neutrale Element bzgl. der Addition, da a+0 immer a ist.
Also (a + 0) MOD m = a MOD m
• a-1 oder -a wird inverses Element bzgl. der Addition genannt, weil
a + (-a) = 0 ist.
ISM – SS 2017 – Teil 3/Restklassen
14
Multiplikation
Multiplizieren wird auf mehrfaches Addieren zurückgeführt.
Es wird wie gewöhnlich multipliziert und dann solange m abgezogen
bzw. addiert bis das Ergebnis >= 0 und <m ist.
Beispiele:
4 * 5 MOD 7 = 6, denn 4*5-> 20-7-7 -> 6
3 * 4 MOD 5 = 2
4 * 4 MOD 5 = 1
Dazu gibt es noch folgende Sätze:
[S6]
a*b MOD m
= b*a MOD m (Kommutativgesetz)
[S7] (a*b)*c MOD m = a*(b*c) MOD m (Assoziativgesetz)
[S8]
a*b MOD m
ISM – SS 2017 – Teil 3/Restklassen
= (a MOD m * b MOD m) MOD m
15
Division
Gibt es für ein a ein b mit a*b MOD m = 1?
b ist das inverse Element bzgl. * : a-1, also a*a-1 MOD m = 1.
Das inverse Element bzgl. * existiert nur dann, wenn a und m
teilerfremd sind, also wenn sie außer 1 keinen gemeinsamen Teiler
haben – also insbesondere, wenn m eine Primzahl ist, dann gibt es
für alle Werte ein inverses Element bzgl. der Multiplikation.
Beispiel:
5-1 MOD 7 = 3, denn 5 und 7 sind teilerfremd
da
5 * 5-1 MOD 7 = 5 * 3 MOD 7 = 1 (mod 7)
6 / 5 MOD 7
ISM – SS 2017 – Teil 3/Restklassen
⇒ 6 * 5-1 MOD 7 = 6 * 3 MOD 7 = 4
16
Bestimmung des inversen Elements (Division) I
Bei m= 7 wieviel ist 3-1?
{0,1,2,3,4,5,6}
Rest muss 1 sein:
Bei m= 6 wieviel ist 3-1?
{0,1,2,3,4,5}
Rest muss 1 sein:
3*0= 0
mod 7 = 0
3*0= 0
mod 6 = 0
3*1= 3
mod 7 = 3
3*1= 3
mod 6 = 3
3*2= 6
mod 7 = 6
3*2= 6
mod 6 = 0
3*3= 9
mod 7 = 2
3*3= 9
mod 6 = 3
3*4= 12
mod 7 = 5
3*4= 12
mod 6 = 0
3*5= 15
mod 7 = 1
3*5= 15
mod 6 = 3
3*6= 18
mod 7 = 4
Es gibt kein inverses Element zu 3.
ISM – SS 2017 – Teil 3/Restklassen
17
Bestimmung des inversen Elements (Division) II
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
2
0
2
4
6
1
3
5
3
0
3
6
2
5
1
4
4
0
4
1
5
2
6
3
5
0
5
3
1
6
4
2
6
0
6
5
4
3
2
1
0
1
2
3
4
5
0
0
0
0
0
0
0
1
0
1
2
3
4
5
2
0
2
4
0
2
4
3
0
3
0
3
0
3
4
0
4
2
0
2
2
5
0
5
4
3
2
1
Beispiel 1: a=5, m=7
1*5
2*5
3*5
4*5
5*5
6*5
≡
≡
≡
≡
≡
≡
5
3
1
6
4
5
(mod
(mod
(mod
(mod
(mod
(mod
7)
7)
7)
7)
7)
7)
Beispiel 2: a=3, m=6,
1*3
2*3
3*3
4*3
5*3
≡
≡
≡
≡
≡
3
0
3
0
3
(mod
(mod
(mod
(mod
(mod
6)
6)
6)
6)
6)
Multiplikationstafeln
ISM – SS 2017 – Teil 3/Restklassen
18
Restklassen I - Definition
Wie oben schon eingeführt:
a ist kongruent zu b modulo m, wenn m die Differenz a-b teilt
a ≡ b (mod m)
a ≡ b (mod m) bedeutet, dass die Reste bezüglich m gleich sind.
ISM – SS 2017 – Teil 3/Restklassen
19
Restklassen II - Definition
Restklasse von a bzgl. m = Menge von Zahlen aus ℤ, die sich
aus der Addition von a und den Vielfachen von m ergeben.
Die Restklasse ist also die Menge aller ganzen Zahlen, die modulo m
dieselben Reste ergeben.
Es gibt daher m verschiedene Restklassen für die Reste 0..m-1:
= {k∊ℤ| k*m+ 0
}
0
1
= {k∊ℤ| k*m+ 1
}
…
m-1 = {k∊ℤ| k*m+ m-1 }
Es wird mit den Stellvertretern gerechnet: {0,1,…,m-1},
wobei jedes Element dieser Menge eine Restklasse vertritt.
Dies hat für die Realisierung die wichtige Konsequenz, dass der zu
realisierende Zahlenbereich in {0,1,…,m-1} liegt und nicht größer.
ISM – SS 2017 – Teil 3/Restklassen
20
Sätze und Regeln für Restklassen
Beispiele:
5
2
13
3
≡ 5
≡ 7
≡ 3
≡ 13
(mod
(mod
(mod
(mod
5)
5)
5)
5)
Beispiele:
3 + 5 ≡ 0 (mod 8)
3 – 6 ≡ 6 (mod 9)
3 + 6 ≡ 0 (mod 9)
(1) a + k*m ≡ a (mod m)
(2)
k*m ≡ 0 (mod m)
Beispiele:
4 * 5 ≡ 6 (mod 7)
3 * 4 ≡ 2 (mod 5)
4 * 4 ≡ 1 (mod 5)
Addition, Subtraktion, Multiplikation (a, b aus ℤ, m aus ℕ\{0}):
(3) a + b ≡ a mod m + b mod m (mod m)
(4) a - b ≡ a mod m - b mod m (mod m)
(5) a * b ≡ a mod m * b mod m (mod m)
Es gelten dieselben Regeln und Sätze wie in der Modulo-Arithmetik.
ISM – SS 2017 – Teil 3/Restklassen
21
Potenzieren I
Potenzieren (Exponentiation) wird auf mehrfaches Multiplizieren
zurückgeführt.
ab ≡ c (mod m)
Beispiel:
34 ≡ ? (mod 5) ⇒ 3*3*3*3 ≡ 1 (mod 5)
ISM – SS 2017 – Teil 3/Restklassen
22
Potenzieren II – schneller Algorithmus
(1) (an)m = an*m
(2) an+m = an*am
(3) an = (an DIV 2)2*an
MOD 2
Exponent wird als Binärzahl dargestellt.
Für jede 1 der Binärzahl wird ein Summand als 2er-Potenz berechnet.
Dann werden alle Summanden im Exponenten addiert.
Auf der Ebene der betreffenden Zahl wird aus Addition eine Multiplikation.
Beispiel:
a23 = a10111B = a1+2+4+16 = a * a2 * a4 * a16
Statt 22 Multiplikationen: 7 Multiplikationen
ISM – SS 2017 – Teil 3/Restklassen
23
Potenzieren III – schneller Algorithmus
Aufwand
• n-1 Quadrierungen, wobei n die Nummer der höchsten Stelle des
Exponenten in Binärdarstellung mit 1 ist
• (Für jede 1 im Binärwert eine weitere Multiplikation) - 1
• Typische Zahl: 65537 = 10000000000000001B (2**16+1)
16 Quadrierungen (17. Stelle mit 1 beginnend gezählt)
2 Einsen, d.h. eine weitere Multiplikation, also 17,
statt 65536 Multiplikationen
Siehe dazu: http://de.wikipedia.org/wiki/Binäre_Exponentiation
ISM – SS 2017 – Teil 3/Restklassen
24
Kleiner Satz von Fermat I
Der kleine Satz von Fermat:
(1)ap ≡ a (mod p), mit a>0 und p ist eine Primzahl
Wenn a und p teilerfremd sind (oder: wenn a kein Vielfaches von p ist),
kann die folgende zweite Form benutzt werden:
(2) ap-1 ≡ 1 (mod p), mit a>0, ggT(a,p)=1 und p ist eine Primzahl
Um von (1) nach (2) zu kommen, muss (1) auf beiden Seiten durch a
dividiert werden, was aber nur geht, wenn das multiplikative Inverse existiert;
das tut es nur dann, wenn ggT(a,p)=1 ist.
(2) bedeutet, dass p-1 auf den Exponenten beliebig oft addiert oder
subtrahiert werden kann bzw. der Exponent mod p-1 genommen werden darf.
ISM – SS 2017 – Teil 3/Restklassen
25
Kleiner Satz von Fermat II - Anwendung
ap-1 ≡ a*ap-2 (mod p)
Dann gilt laut Fermat aber auch:
a*ap-2 ≡ 1 (mod p), ggT(a,p)=1 und p ist eine Primzahl
Das kann zur Berechnung des multiplikativen inversen Elements
benutzt werden.
1
1*1*1*1*1= 1
2
2*2*2*2*2= 32
-> 4
3
3*3*3*3*3= 243
-> 5
4
4*4*4*4*4= 1024 -> 2
5
5*5*5*5*5= 3125 -> 3
6
6*6*6*6*6= 7776 -> 6
ISM – SS 2017 – Teil 3/Restklassen
Beispiel mod 7
Für a=7, 14 etc. kommt immer 0 heraus.
26
Logarithmus, Wurzel
Diskreter Logarithmus (Modulo Logarithmus)
ax ≡ b (mod q)
Die Berechnung des diskreten Logarithmus ist sehr aufwändig, weshalb
dies in der Kryptographie gerne ausgenutzt wird.
Modulo Wurzel
xa ≡ b (mod q)
ISM – SS 2017 – Teil 3/Restklassen
27
Größter gemeinsamer Teiler (ggT) I
Eine Zahl c heißt größter gemeinsamer Teiler (ggT) zweier
Ganzzahlen a und b, wenn c beide Zahlen teilt und die größte
ist, die beide Zahlen teilt.
Ein paar hoffentlich einleuchtende Sätze zum ggT:
ggT(a,a) = ggT(a,0)= a
ggT(a,b) = ggT(b,a)
ggT(a,k*a) = a, mit k aus ℕ
Die Idee besteht nun darin, die beiden Argumente schrittweise unter
Beibehaltung des Ergebnisse so zu verkleinern, dass anhand einer der
beiden roten Formeln das Ergebnis bestimmt ist.
ISM – SS 2017 – Teil 3/Restklassen
28
Größter gemeinsamer Teiler (ggT) II
Satz:
Für alle Zahlen a, b, k aus ℕ mit a>b gilt:
Wenn k beide Zahlen a und b teilt, dann teilt auch k die Differenz a-b.
Beweis (hatten wir oben schon)
Daraus lässt sich beweisen:
ggT(a,b) = ggT(a-b,b) mit a>=b
Oder anders formuliert: Ziehe immer wieder die kleinere von der größeren
der beiden Zahlen ab bis sie gleich sind: das ist das Ergebnis.
ISM – SS 2017 – Teil 3/Restklassen
29
Größter gemeinsamer Teiler (ggT) III
int Euklid(int a,b) {
while a!=b {
if a>b {
a:= a-b;
} else {
b:= b-a;
}
}
return a;
}
ggT(a,b) = ggT(a,b-a)
ggT(a,b) = ggT(b,a)
Diese Version entspricht
eher dem Original:
wechselseitiges "Wegnehmen"
ISM – SS 2017 – Teil 3/Restklassen
30
Größter gemeinsamer Teiler (ggT) IV
Der bisherige Algorithmus ist nur dann effizient, wenn a und b relativ
gleich groß sind - aber es geht noch besser...
a = (a DIV q)*q + a MOD q
ggT(a,b) = ggT((a DIV b-0)*b + a MOD b,b)
= ggT((a DIV b-1)*b + a MOD b,b) da a:= a-b erlaubt ist
= ggT((a DIV b-2)*b + a MOD b,b)
....
= ggT((2
)*b + a MOD b,b)
= ggT((1
)*b + a MOD b,b)
= ggT((0
)*b + a MOD b,b)
ggT(a,b) = ggT(a MOD b,b) mit a>=b
Der entscheidende Schritt ist der markierte: der 1. Parameter von ggT(a,b),
also das a, wird mit Hilfe des Moduls b umgerechnet, falls b<>0.
ISM – SS 2017 – Teil 3/Restklassen
31
Bemerkungen
• Warum kommt in der Kette der Subtraktionen am Ende 2,1,0
heraus?
Weil a DIV b in jedem Schritt um 1 herunter gezählt wird;
das wiederum hat den Grund, dass in jedem Schritt b subtrahiert
wird.
• Das mehrfache Subtrahieren des b-Wertes von a solange b>a
ist, ist gerade das Verfahren zur Berechnung des Restes bzgl. b.
ISM – SS 2017 – Teil 3/Restklassen
32
Größter gemeinsamer Teiler (ggT) V
int EuklidMod(int a,b) {
while a!=0 {
if a>b {
a:= a MOD b;
} else {
exchange(a,b);
}
}
return b;
}
ggT(a,b) = ggT(a,b mod a)
ggT(a,b) = ggT(b,a)
int EuklidMod(int a,b) {
while b!=0 {
t:= a MOD b;
a:= b;
b:= t;
}
return a;
}
Da nach einem a:= a MOD b nie a>b wahr ist, kann gleich getauscht werden.
ISM – SS 2017 – Teil 3/Restklassen
33
Erweiterter Euklidischer Algorithmus I
Seien a, b ∊ℕ\{0} so lässt sich der ggT(a,b) als Linearkombination von
a und b darstellen:
ggT(a,b)= u*a+v*b
mit u,v∊ℤ.
Beispiel mit a=2 und b=7
0
1
2
3
4
5
= 7*2 – 2*7
= -3*2 + 1*7
= 8*2 - 2*7
= -9*2 + 3*7
= -5*2 + 2*7
=
ISM – SS 2017 – Teil 3/Restklassen
Dazu gibt es folgenden Satz
u*a+v*b=n ist genau dann ganzzahlig lösbar, wenn ggT(a,b)|n gilt.
Nebenbei: Wenn ggT(a,b)<>1 ist,
dann lassen sich nicht alle Zahlen
als Linearkombination darstellen.
34
Erweiterter Euklidischer Algorithmus II
• Linearkombination einer Zahl z ist die Summe zweier Produkte,
deren Teilfaktoren vorgegeben sind:
z = u*a + v*b, wobei a und b vorgeben sind.
• Es kann mehrere Linearkombinationen derselben Zahl geben
(nicht eindeutig), z.B.
0 = 7*2 – 2*7 = 14*2 – 4*7 mit a=2 und b=7
• Und auch gibt es Paare a,b, mit denen nicht alle ganzen Zahlen
als Linearkombinationen darstellen kann, z.B. lassen sich keine
ungeraden Zahlen als Summe zweier gerader Zahlen darstellen.
ISM – SS 2017 – Teil 3/Restklassen
35
Berechnung des multiplikativen Inversen
a*a-1 ≡ 1 (mod m) mit ggT(a,m)=1
das sind die Voraussetzungen
ggT(a,b)= u*a+v*b
also
ggT(a,m)= u*a+v*m ≡ 1 (mod m)
0
a-1
ISM – SS 2017 – Teil 3/Restklassen
a
36
Erweiterter Euklid‘scher Algorithmus mit Subtraktion
func BigInt BigInt BigInt egcd(BigInt a>=0,b>=0) {
BigInt au,av,bu,bv;
BigInt a,b,t;
au:= 1; av:= 0;
// a = au*a + av*b
bu:= 0; bv:= 1;
// b = bu*a + bv*b
while a != b {
if a>b {
a:= a-b;
Grün sind die Bestandteile
au:= au-bu;
// linear
des ursprünglichen Algorithmus.
av:= av-bv;
} else {
b:= b-a;
bu:= bu-au;
// linear
bv:= bv-av;
}
}
Bitte beachten Sie, dass die u- und v-Werte
return a,au,av;
negativ sein können, dann muss dies durch
}
Addition des Moduls korrigiert werden.
ISM – SS 2017 – Teil 3/Restklassen
37
Erweiterter Euklid‘scher Algorithmus mit mod
func BigInt BigInt BigInt egcdMod(BigInt a>=0,b>=0) {
BigInt au,av,bu,bv;
BigInt a,b,t;
au:= 1; av:= 0;
// a = au*a + av*b
bu:= 0; bv:= 1;
// b = bu*a + bv*b
while b != 0 {
q:= a div b;
t:= a mod b;
bu:= au-q*bu;
// linear: b:= a mod b
bv:= av-q*bv;
a:= b;
Grün sind die Bestandteile
b:= t;
des ursprünglichen Algorithmus.
}
return a,au,av;
}
Bitte beachten Sie, dass die u- bzw. v-Werte
negativ sein können, dann muss dies durch
Addition des Moduls korrigiert werden.
ISM – SS 2017 – Teil 3/Restklassen
38
Nach dieser Anstrengung etwas Entspannung....
ISM – SS 2017 – Teil 3/Restklassen
39
Herunterladen