Donnerstag 3.5.2012

Werbung
Mathematik für Informatiker B, SS 2012
Donnerstag 3.5
$Id: ring.tex,v 1.13 2012/05/03 15:13:26 hk Exp $
§3
Ringe
3.1
Der Ring Zm
In der letzten Sitzung hatten wir die sogenannten Ringe eingeführt, dies waren Mengen
A versehen mit einer Addition + und einer Multiplikation ·, die weitgehend die übli”
chen Rechenregeln“ erfüllten. Nur bei der Multiplikation hatten wir weder die Existenz
eines neutralen Elements der Multiplikation noch die Existenz multiplikativer Inverser
gefordert. Hauptsächlich sind wir aber an Ringen mit Eins interessiert, in denen es also
doch ein multiplikativ neutrales Element 1 gibt. Wir hatten bewiesen, das in diesem
Fall die Einheiten des Rings A eine Gruppe U (A) bilden, die sogenannte Einheitengruppe von A. Dabei ist Einheit“ nur ein Synonym für invertierbares Element“. Wir
”
”
wollen und zwei kleine Beispiele anschauen.
1. Sei A = Z12 . Wir hatten bereits gesehen, dass die Einheiten von Z12 gerade
die zu 12 teilerfremden Restklassen sind, also U (Z12 ) = {[1], [5], [7], [11]}. Als
Multiplikationstabelle der Einheitengruppe U (Z12 ) ergibt sich
[1] [5] [7] [11]
[1] [1] [5] [7] [11]
[5] [5] [1] [11] [7]
[7] [7] [11] [1] [5]
[11] [11] [7] [5] [1]
2. Nun betrachten wir den Ring A = Z. Eine ganze Zahl a ∈ Z ist eine Einheit von
Z wenn es eine ganze Zahl b ∈ Z mit ab = 1 gibt, wenn also a 6= 0 und 1/a ∈ Z
sind. Dies bedeutet a = ±1, also ist die Einheitengruppe U (Z) = {−1, 1}.
Wir geben jetzt noch zwei Sätze an, die unsere bisherigen Ergebnisse für den Spezialfall
des Restklassenrings Zm auswerten.
Satz 3.5: Seien a ∈ Z und m ∈ N∗ mit ggt(a, m) = 1. Dann liefert a · i für 0 ≤ i < m
paarweise verschiedene Reste modulo m. Weiter existiert genau ein x ∈ Z mit 0 < x <
m so, dass [x] das multiplikative Inverse von [a] in Zm ist. Hierfür gilt ggt(x, m) = 1.
Beweis: Klar nach Lemma 3 und Lemma 4.
Ist m eine Primzahl, so ist jedes a ∈ Z mit 0 < a < m zu m teilerfremd, hat also nach
Lemma 3 eine in Zm invertierbare Restklasse [a]. Diese Tatsache hatten wir übrigens
auch schon bei den Beispielen für Gruppen in §2 eingesehen.
6-1
Mathematik für Informatiker B, SS 2012
Donnerstag 3.5
Satz 3.6: Ist p eine Primzahl, so gibt es im Ring Zp für jedes a ∈ Zp mit a 6= 0 ein
eindeutiges multiplikatives Inverses a−1 ∈ Zp .
3.2
Grundprinzip der RSA-Public-Key Verschlüsselung
Die Aufgabe der Krypthographie ist es eine Nachricht in solch einer Weise zu verschlüsseln, dass der vorgesehene Empfänger diese Verschlüsselung leicht rückgängig machen kann, während diese Entschlüsselung für Außenstehende nur unter einem praktisch
nicht durchführbaren Aufwand möglich ist. Von einem sehr abstrakten Standpunkt aus,
ist solch eine Verschlüsselung eine bijektive Funktion
C:A→B
von einer Menge A von Klartexten“ auf eine Menge B von Verschlüsselungen“. Die
”
”
Menge A beschreibt in der praktischen Durchführung oft nur einzelne Teilpakete der
vollständigen Nachricht, diese wird dann in mehrere Pakete aus A aufgeteilt, die dann
einzeln verschlüsselt werden. Die Entschlüsselung D ist einfach die Umkehrfunktion
D := C −1 : B → A
der Verschlüsselungsfunktion C. Die oben genannten Nebenbedingungen, dass D für
den vorgesehenen Empfänger leicht“ berechenbar ist, für andere aber nur schwer“
”
”
machbar ist, ist in dieser simplen Beschreibung nicht mit erfasst. Diese Fragen muss
man gesondert diskutieren, oft auch auf einer eher heuristischen Ebene.
Eine spezielle Sorte von Verschlüsselungsmethoden sind die sogenannten PublicKey Methoden. Bei diesen ist die Verschlüsselungsfunktion C : A → B, und damit
auch die Mengen A und B, öffentlich bekannt, und wird nicht geheim gehalten. Dies
hat natürlich einige praktische Vorteile, jeder kann verschlüsselte Nachrichten senden
ohne das zuvor eine geheime Verschlüsselung ausgetauscht werden muss. Ein spezielles
solches Public-Key Verfahren ist das nach R. Rivest, A. Shamir und L. Adleman (1977)
benannte RSA-Verfahren. Hier ist eine natürliche Zahl n vorgegeben, und diese gehört
zu den Parametern des Verschlüsselungsverfahrens ist also öffentlich bekannt. Für die
Mengen A und B verwendet man
A := B := U (Zn ) = {a ∈ Z|0 ≤ a < n, ggt(n, a) = 1}
die Menge der zu n teilerfremden Reste modulo n, also nach Lemma 3 die Einheitengruppe des Rings Zn . Die Verschlüsselungsfunktion ist die Potenzbildung mit einem
festen Exponenten e im Ring Zn . Die Zahl e ∈ N ist öffentlich bekannt, und die Verschlüsselungsfunktion C ist definiert als
C(a) = ae mod n
für a ∈ A. Wie sich diese Potenzen praktisch berechnen lassen, wollen wir hier nicht besprechen, im Netz finden Sie Unmengen fertige Implementierungen hierfür. Die Zahlen
6-2
Mathematik für Informatiker B, SS 2012
Donnerstag 3.5
n und e müssen natürlich so gewählt werden, dass C überhaupt eine bijektive Abbildung ist. Beim RSA-Verfahren ist es so, dass die Wahl so getroffen wird das auch die
Entschlüsselungsfunktion D das Potenzieren mit einem festen Exponenten d ∈ N ist,
also
D(b) = bd mod n
für b ∈ B = A. Diese Zahl d darf natürlich nur dem vorgesehenen Empfänger bekannt
sein, kennt man sie so kann man die Entschlüsselung durchführen. Der folgende Satz
beschreibt nun wie n, e und d zu konstruieren sind, so das alles klappt.
Satz 3.7 (RSA Verfahren)
Seien p, q zwei verschiedene Primzahlen. Setze n := pq und m := (p − 1)(q − 1).
Weiter sei e ∈ N teilerfremd zu m, also ggt(e, m) = 1. Dann existiert ein d ∈ N mit
ed ≡ 1 mod m und die Abbildung C : U (Zn ) → U (Zn ); a 7→ ae ist bijektiv mit der
Umkehrfunktion D : U (Zn ) → U (Zn ); a 7→ ad . Dabei gilt
U (Zn ) = Z∗n \{[p], [2p], . . . , [(q − 1)p], [q], [2q], . . . , [(p − 1)q]}.
Beweis: Dass es ein d ∈ N mit ed ≡ 1 mod m gibt, gilt nach Lemma 3. Nach Aufgabe
(14) gibt es genau vier natürliche Zahlen k ∈ N mit k|n = pq, nämlich k = 1, k = p,
k = q und k = pq. Für a ∈ Z folgt, dass a und n genau dann einen gemeinsamen Teiler
k ∈ N mit k > 1 haben, wenn p|a oder q|a gilt, denn die einzigen Kandidaten für k
sind p, q und pq. Die Vielfachen a von p mit 0 < a < n = pq sind genau die Zahlen
p, 2p, . . . , (q − 1)p und die Vielfachen a von q mit 0 < a < n = pq sind genau die Zahlen
q, 2q, . . . , (p − 1)q. Die anderen Zahlen zwischen 1 und n − 1 sind also gerade die zu n
teilerfremden Rest modulo n, also nach Lemma 3 die Einheiten von Zn . Dies ergibt die
Aussage über die Einheitengruppe U (Zn ). Da jedes gemeinsame Vielfache von p und q
auch ein Vielfaches von n = pq ist, kommt unter den Zahlen 1, . . . , n − 1 kein solches
gemeinsames Vielfaches vor, d.h. es ist
|U (Zn )| = n − 1 − (q − 1) − (p − 1) = n − p − q + 1 = pq − p − q + 1 = (p − 1)(q − 1) = m.
Da die Einheitengruppe U (Zn ) nach Lemma 4.(b) eine Gruppe ist, ergibt der kleine
Satz von Fermat §2.Satz 9 jetzt
[a]m = [1], d.h. am ≡ 1 mod n
für alle a ∈ Z mit ggt(a, n) = 1. Verwenden wir jetzt die Potenzrechenregeln aus §2.3,
so ergibt sich für jedes a ∈ Z mit ggt(a, n) = 1 die Gleichung
D(C(a)) = (ae )d = aed = (ad )e = C(D(a)),
um zu beweisen das D die Umkehrfunktion von C ist, müssen wir also einsehen das
aed ≡ a mod n für jedes solche a gilt. Wegen ed ≡ 1 mod m ist m|ed − 1, d.h. es gibt
6-3
Mathematik für Informatiker B, SS 2012
Donnerstag 3.5
eine ganze Zahl k ∈ Z mit ed = 1 + km und wegen e, d, m ∈ N ist auch k ∈ N. Für
a ∈ Z mit ggt(a, n) = 1 haben wir damit
aed = a1+km = a · akm = a · (am )k ≡ a · 1k = a mod n
da wir oben bereits am ≡ 1 mod n eingesehen hatten.
Die Primzahlen p und q lassen sich frei wählen. Dann sind die Zahlen n = pq und
m = (p − 1)(q − 1) festgelegt und für e hat man wieder die freie Wahl. Die Bedingung
ggt(e, m) = 1 konnten wir dabei über den euklidischen Algorithmus leicht nachprüfen.
Ist e gewählt, so ist d das multiplikative Inverse modulo m, das wir erneut leicht über
den euklidischen Algorithmus berechnen können.
Als ein Beispiel betrachten wir einmal p = 3 und q = 7. Dann ist n = 21 und
m = 2 · 6 = 12, es gibt also 12 zu n = 21 teilerfremde Reste modulo 21. In diesem
kleinen Beispiel können wir diese auch leicht auflisten
A = {1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}.
Als zu m = 12 teilerfremde Zahl wählen wir etwa e = 5. Zur Bestimmung von d rechnen
wir
12 = 2 · 5 + 2, 2 = 12 − 2 · 5,
5 = 2 · 2 + 1, 1 = 5 − 2 · 2 = 5 − 2 · (12 − 2 · 5) = 5 · 5 − 2 · 12,
es ist also d = e = 5. In diesem (kleinen) Beispiel ist also C = D. Die Verschlüsselung,
und damit auch die Entschlüsselung, ist gegeben durch die Tabelle
a
C(a) = D(a)
1 2 4 5 8 10 11 13 16 17 19 20
1 11 16 17 8 19 2 13 4 5 10 20
Der String 8, 19, 11 codiert sich beispielsweise als 8, 10, 2. Dass C = D ist, ist ein reiner
Zufall. Normalerweise ist n recht gross, und so etwas passiert nicht.
Bei realer Anwendung werden die Primzahlen p und q, und damit auch n recht groß
gewählt. Nach Wahl von e erfolgt die Berechnung von d über den euklidischen Algorithmus, und dies ist auch für großes m ohne viel Aufwand machbar. Was müsste ein
Angreifer nun tun um nicht für ihn bestimmte Mitteilungen zu entschlüsseln. Die Zahlen n und e sind wie gesagt allgemein bekannt. Um die Entschlüsselung durchzuführen
benötigt man die Zahl d, und um diese zu kriegen muss man m kennen. Es ist
m = (p − 1)(q − 1) = pq − p − q + 1 = n − (p + q) + 1
und da n bekannt ist, ist die Bestimmung von m also dasselbe wie die Berechnung der
Summe p + q. Der Angreifer kann also versuchen n in Primfaktoren zu zerlegen. Es
gibt kein bekanntes Verfahren um die Primzerlegung einer großen Zahl n in vertretbarer
Zeit zu berechnen. Man geht daher davon aus, dass p und q sicher sind obwohl n = pq
6-4
Mathematik für Informatiker B, SS 2012
Donnerstag 3.5
bekannt ist. Es wäre noch denkbar, dass man vielleicht p + q berechnen kann ohne p
und q kennen zu müssen. Das ist aber nicht der Fall, kennen wir nämlich r := p + q und
n = pq, so ist ja q = r − p, also n = pq = p(r − p) = pr − p2 und somit p2 − rp + n = 0.
Dies ist eine quadratische Gleichung für p, die man als
r
r
r2
p= ±
−n
2
4
lösen kann. Kennen wir also die Summe r = p + q, so kommen wir auch leicht an p
und q heran, die Bestimmung von m ist also genauso schwer“ wie die Berechnung der
”
Primzerlegung von n, und wie gesagt geht man davon aus das diese nicht praktikabel
durchgeführt werden kann.
6-5
Herunterladen