4 Kryptologie - TUM Mathematik

Werbung
4 Kryptologie
Übersicht
4.1
Der erweiterte euklidische Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Rechnen mit Restklassen modulo
.... .. ... .. ... ... .. ... .. ... .. ... ...
39
4.3
Der kleine Satz von Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
4.4
Das Pohlig-Hellmann-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.5
Das RSA-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
p
38
In der Kryptologie entwickelt man Verschlüsselungsverfahren für Texte, so daÿ diese
Klartext
nur von befugten Teilnehmern verstanden werden können. Dabei wird ein
mit einem Schlüssel
e
zu einem Geheimtext
geleitet. Der Geheimtext
C
C
N
verschlüsselt und an den Empfänger
darf dabei durchaus von
Angreifern
eingesehen werden, er
muÿ nur so gestaltet sein, daÿ es keine Hinweise gibt, was der ursprüngliche Klartext
ist. Der Empfänger entschlüsselt den Geheimtext mit seinem Schlüssel
d
und erhält
den Klartext zurück. Die modernen Verschlüsselungsverfahren benutzen algebraischen
Methoden. Wir stellen kurz das
Verfahren von Pohlig-Hellman
vor das machen wir
aber richtig und graben dabei ein biÿchen in anspruchsvoller Mathematik.
Das Verfahren von Pohlig-Hellman ist ein
der Sender
P
und der Empfänger
sel vereinbart einen Schlüssel
e
H
symmetrisches Verschlüsselungsverfahren,
haben vor dem Versenden einer Nachricht Schlüs-
zum Verschlüsseln und einen Schlüssel
d
zum Ent-
schlüsseln.
Wir brauchen
eine groÿe Primzahl
p,
den erweiterten euklidischen Algorithmus,
den kleinen Satz von Fermat und
Modulorechnen.
Wir beginnen mit dem erweiterten euklidischen Algorithmus. Dazu benötigen wir eine
Teiler
suggestive Schreibweise: Ist
p ∈ Z
b ∈ Z,
und spricht das
so schreibt man
p|a
p|a
und
ein
p
einer ganzen Zahl
a,
d. h.
a = pb
teilt a aus. Oenbar gilt die Regel:
p | b ⇒ p | r a + s b , r, s ∈ Z .
mit
4 Kryptologie
38
4.1 Der erweiterte euklidische Algorithmus
Wir unterstellen, daÿ jeder den
Fundamentalsatz der Arithmetik kennt:
Satz 4.1 (Der Fundamentalsatz der Arithmetik)
Jede natürliche Zahl n > 1 läÿt sich auf genau eine Weise als Produkt von Potenzen
von Primzahlen p1 < · · · < pr schreiben:
n = pν11 · · · pνrr .
Man nennt diese Darstellung die kanonische
Primfaktorisierung von n.
Beispiele.
36 = 22 · 33 .
19110 = 2 · 3 · 5 · 72 · 13.
Zerlegen Sie mal die Zahl
395058745832651445264197678006144819960207764603049364541393760515793556265
294506836097278424682195350935443058704902519956553357102097992264849779494
42955603 .
Der erweiterte euklidische Algorithmus ist ein mathematisches Verfahren, das den gröÿ-
ggT(a, b) zweier natürlicher Zahlen a und b berechnet,
Zahlen s und t liefern, die folgende Gleichung erfüllen:
ten gemeinsamen Teiler
dazu noch zwei ganze
und
ggT(a, b) = s · a + t · b .
Dazu nutzen wir sukzessive Division mit Rest.
Beispiel 4.1
ggT(391, 153):
391 = 2 · 153 + 85
153 = 1 · 85 + 68
85 = 1 · 68 + 17
68 = 4 · 17 + 0
Wir bestimmen
Wir bestimmen nun die ganzen Zahlen
s
und
rückwärts:
17 = 85 − 1 · 68
17 = 85 − (153 − 1 · 85) = 2 · 85 − 153
17 = 2 · (391 − 2 · 153) − 153 = 2 · 391 − 5 · 153.
Damit gilt
s=2
und
t = −5.
t,
dabei gehen wir die Rechnungen
4.2 Rechnen mit Restklassen modulo p
39
4.2 Rechnen mit Restklassen modulo p
4.2.1 Restklassen
Es sei
p
eine natürliche Zahl (später wird
p
eine groÿe Primzahl sein). Für jedes
a∈Z
setzen wir:
a := a + pZ := {a + p k | k ∈ Z} = {a, a ± p, a ± 2p, · · · } .
a Restklasse von a modulo p.
a und b ganze Zahlen, so sagt man a ist kongruent zu b modulo p und schreibt
dafür a ≡ b mod p, falls a = b, d. h., falls a + p Z = b + p Z.
Man nennt
Sind
Es gilt:
a≡b
Es sei nun
p
mod
a
⇔
a + pZ = b + pZ
⇔
a − b ∈ pZ
⇔
p | (a − b)
⇔
a
und
b
eine beliebige ganze Zahl. Dividiere
a = r.
a = b)
haben bei Division durch
a = b p + r,
Dann gilt
(⇔
a
durch
p
p
den selben Rest
mit Rest
r:
0 ≤ r < p.
Damit gilt:
Jede ganze Zahl a liegt in einer der r Restklassen 0, 1, . . . , p − 1.
Je zwei dieser Restklassen sind auch verschieden, da die Dierenz zweier Zahlen aus
{0, 1, . . . , p − 1}
niemals durch
p
teilbar sein kann. Also haben wir begründet:
Satz 4.2
Es gibt genau p verschiedene Restklassen modulo p, nämlich 0, 1, . . . , p − 1. Man nennt
Zp := {0, 1, 2, · · · , p − 1}
die Restklassengruppe
Beispiel.
Im Fall
p=5
modulo p, es gilt |Zp | = p.
gilt etwa
17 = 2, 29 = 4 = −1, −24 = 1 = 6 .
Weiterhin ist
Z5 = {0, 1, 2, 3, 4} .
Z. B. gilt
98 ∈ 3.
4 Kryptologie
40
4.2.2 Addition und Multiplikation von Restklassen
Wir addieren und multiplizieren Restklassen wie folgt:
a+b=a+b
a·b=a·b
Beispiel.
Wir betrachten wieder den Fall
p = 5,
es gilt hier z. B.:
0 + 1 = 0 + 1 = 1, 2 + 2 = 4, 3 + 4 = 7 = 2,
0 · 1 = 0 , 2 · 2 = 4 , 3 · 4 = 12 = 2 ,
2
3
4
2
2
5
4
2 = 4 , 2 = 8 = 3 , 2 = 2 · 2 = 16 = 1 , 2 = 2 · 2 = 2 .
Weiterhin kann die folgenden Regeln einfach nachprüfen: Es gilt:
∀ a, b ∈ Zp : a + b ∈ Zp und a · b ∈ Zp (Abgeschlossenheit),
∀ a, b, c ∈ Zp : (a + b) + c = a + (b + c) (Assoziativität bzgl. +),
∀ a, b, c ∈ Zp : (a · b) · c = a · (b · c) (Assoziativität bzgl. ·),
∀ a, b, c ∈ Zp : a · (b + c) = ab + ac) (Distributivität).
Beispiel.
Wir stellen für den Fall
p=7
die Verknüpfungstafeln für die Addition und
Multiplikation auf. Die Querstriche lassen wir weg, wir schreiben also
damit sind wir beim
a
statt
Modulorechnen :
+
0
1
2
3
4
5
6
·
0
1
2
3
4
5
6
0
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
1
1
2
3
4
5
6
0
1
0
1
2
3
4
5
6
2
2
3
4
5
6
0
1
2
0
2
4
6
1
3
5
3
3
4
5
6
0
1
2
3
0
3
6
2
5
1
4
4
4
5
6
0
1
2
3
4
0
4
1
5
2
6
3
5
5
6
0
1
2
3
4
5
0
5
3
1
6
4
2
6
6
0
1
2
3
4
5
6
0
6
5
4
3
2
1
4.3 Der kleine Satz von Fermat
Wir begründen nun den kleinen Satz von Fermat, dieser Satz besagt:
Satz 4.3 (Der kleine Satz von Fermat)
Für jede Primzahl p gilt ap−1 = 1 für alle a ∈ {1, 2, · · · , p − 1}.
a
und
4.4 Das Pohlig-Hellmann-Verfahren
Beweis:
Für ein beliebiges
41
a ∈ Zp \ {0}
sind die
p−1
Restklassen
a 1 , a 2, . . . , a p − 1
alle verschieden. Aus
ax = ay
folgte nämlich
ax − y = 0,
sodaÿ
p - a.
p | a (x − y).
Wegen des Fundamentalsatzes der Arithmetik folgt
p−1
da
x = y.
Damit haben wir aber
Folglich sind die
p | x − y,
Restklassen
a 1 , a 2, . . . , a p − 1
wieder die
p−1
Restklassen
1 , 2, . . . , p − 1 ,
nur evtl. in einer anderen Reihenfolge. Wir erhalten
ap−1
p−1
∏
k=
k=1
Kürzen von
p−1
∏
k
p−1
∏
ak =
k=1
p−1
∏
k.
k=1
liefert die Behauptung.
k=1
Beispiel.
4
2
4
3
4
4
4
4
Wir betrachten wieder den Fall
p = 5,
es gilt:
= 16 = 1,
2
2
= 9 = 4 = 16 = 1,
2
2
= 16 = 1 = 1,
2
2
= 16 = 1 = 1.
4.4 Das Pohlig-Hellmann-Verfahren
Das Pohlig-Hellman-Verfahren ist ein symmetrisches Verschlüsselungsverfahren, das
bei einer guten Wahl der Primzahl
als sicher erachtet werden kann.
p
in der Gröÿenordnung von 512 Bit heutzutage
4 Kryptologie
42
Das Pohlig-Hellman-Verfahren
Das Verfahren von Pohlig-Hellman ist ein
ren, der Sender P
und der Empfänger
H
symmetrisches Verschlüsselungsverfah-
haben vor dem Versenden einer Nachricht
Schlüssel vereinbart. Ihre Schlüssel erzeugen die beiden Teilnehmer wie folgt:
P
P
und
H
p.
e ∈ {2, . . . , p−2} mit ggT(e, p−1) = 1. Es ist e der geheime
einigen sich auf eine (groÿe) Primzahl
wählt eine Zahl
P.
H bestimmt d ∈ {2, . . . , p − 2} mit e d ≡ 1 (mod (p − 1))
Algorithmus. Es ist d der geheime Schlüssel von H .
Schlüssel von
Ver- und Entschlüsselung einer Nachricht:
N
senden. Die Schlüssel
e
d
und
haben
Der Sender
P
und
H
P
mit dem euklidischen
will an
H
eine Nachricht
wie eben geschildert erzeugt.
Nun gehen die beiden wie folgt vor:
P stellt seine Nachricht als Element N ∈ Z×
p dar.
e
×
P bildet die Potenz C := N in Zp mit seinem geheimen Schlüssel e.
P sendet den Geheimtext C an H .
H erhält C und berechnet die Potenz C d = N ed = N (beachte Satz
seinem geheimen Schlüssel d und erhält so den Klartext N .
Bemerkung.
Ein
Angreifer
aber hieraus nicht auf
N
kann
bzw.
e
den
Geheimtext
C = Ne
zwar
??) mit
mitlesen,
schlieÿen. Kennt ein Angreifer ein Klartext-
(N , C) aus früheren Angrien, so steht er vor dem Problem, aus
C = N e den geheimen Schlüssel e zu bestimmen (d erhält er dann
Geheimtextpaar
der Gleichung
leicht mit dem euklidischen Algorithmus). Dieses Problem ist mit den gängigen
Algorithmen bei hinreichend groÿem
zahlen erhält man mit sogenannten
p
nicht in kurzer Zeit lösbar. Groÿe Prim-
Primzahltests.
Eine Codierung einer Nachricht sieht z. B. wie folgt aus: Man setzt
= 10,
A
B
= 11,
C
= 12, D= 14, · · · , Z= 35.
N = ICH LIEBE DICH zu N = 18 12 17 21 18 14 11 14..... ∈
Damit wird der Klartext
Zp .
Beispiel 4.2
p = 11. Für die Zahl e wählen wir e = 3, es gilt ggT(3, 10) = 1.
Als d erhalten wir aus dem euklidischen Algorithmus d = 7, es gilt nämlich 7·3−2·10 =
1. Der zu verschlüsselnde Klartext sei N = 4.
Wir wählen die Primzahl
Verschlüsseln liefert:
C
mod
3
11 = 4
mod
11 = 64
mod
11 = 9
mod
11
4.4 Das Pohlig-Hellmann-Verfahren
43
Entschlüsseln liefert:
C7
mod
7
11 = 9
mod
2
= (9)
Die Primzahl
p
2
11 = (9 )4 · 9
mod
11 = 4
mod
11 = (4)3 · 9
mod
11
p=N.
mod
wählt man am besten so, daÿ
p−1
2 wieder eine Primzahl ist. Prim-
sichere Prinzahlen. Im Allgemeinen ist
zahlen mit dieser Eigenschaft nennt man
es sehr schwer, sichere Primzahlen in der Gröÿenordnung 512 Bit zu nden, über
sichere Primzahlen weiÿ man sehr wenig. Primzahlen ndet man prinzipiell mit
sogenannten
Primzahltests
das ist eine Wissenschaft für sich.
Kennt ein Angreifer
N
e
gut gewählt ist: Das
schlieÿen, wenn
lösen, falls
p
p
und
C
mit
N e = C,
so kann er dadurch noch lange nicht auf
diskrete Logarithmenproblem
ist kaum zu
groÿ und geschickt gewählt ist.
4.4.1 Schnelle Exponentiation
Wie bildet man die hohen Potenzen
Exponentation.
Ne
und
Cd?
Mittels der sogenannte
schnellen
Beim Verfahren von Pohlig-Hellman (und bei vielen anderen kryptograschen Verfahren) muÿ man Potenzen in einer Gruppe
G
berechnen. Die Aufgabe lautet:
Für a ∈ G und n ∈ N bestimme an .
Der naheliegendste Ansatz der sukzessiven Multiplikation basiert auf der üblichen Rekursion für Potenzen:
an = a an−1 .
Dieser Ansatz benötigt
n−1
an zu berechnen. Diese Methode ist
von n. Die schnelle Exponentiation
Operationen, um
also exponentiell in der Anzahl
log n
der Bits
basiert auf folgender Rekursion für Potenzen:
( n )
 a2 2 ,
an = ( n−1 )2
 a 2
a,
falls
n
gerade,
falls
n
ungerade.
Ein dazu äquivalenter, iterativer Algorithmus benutzt die Binärdarstellung von
n.
In
der englischsprachigen Literatur wird der Algorithmus aus naheliegenden Gründen oft
als
square and multiply
der Verknüpfung.
bezeichnet. Der Algorithmus benötigt nur die Assoziativität
4 Kryptologie
44
Lemma 4.4
Es sei a ein Element, dessen n-te Potenz zu bestimmen ist. Die Zahl
Binärdarstellung gegeben:
n=
k
∑
mit
bℓ 2ℓ
n
sei dabei in
k = ⌊log2 n⌋, bℓ ∈ {0, 1}.
ℓ=0
Setze a0 := ab
k
(i)
(ii)
=a
und ai := ab
a2i−1 , 1 ≤ i ≤ k.
k−i
Dann gilt:
ak = a n .
Zur Berechnung von an braucht man höchstens
rithmus ist also linear.
Im Mittel braucht man sogar nur
1.5 log2 (n)
2k
Multiplikationen. Der Algo-
Gruppenoperationen. Der Algorithmus
ist also linear mit kleinen Konstanten.
Beispiel 4.3
Der Sender
P
berechnet mit der schnellen Exponentiation
29
3
in
Z257
wegen
e = 29 = 24 + 23 + 22 + 20 ,
also
b4 = 1, b3 = 1, b2 = 1, b1 = 0, b0 = 1
vorteilhaft durch Quadrieren und Multiplizieren. Es ist
a = 3:
1
a0 = ab4 = 3 = 3 ,
1
2
a1 = ab3 · a20 = 3 · 3 = 27 ,
1
2
a2 = ab2 · a21 = 3 · 27 = 131 ,
0
a3 = ab1 · a22 = 3 · 131 = 199 ,
1
2
a4 = ab0 · a23 = 3 · 199 = 69 .
Es werden dabei
7
Gruppenoperationen durchgeführt, wir fassen diese zusammen:
29
3
(((
)2
)2
)2
( )2
1
1
1
0
1
=
3
·3
·3
·3
·3 .
Man beachte, dass die Operation
0
·3
, dies entspricht einer Multiplikation mit
ausgeführt wird.
Und H entschlüsselt den Geheimtext
69
wegen
d = 53 = 20 + 22 + 24 + 25
und
b5 = 1, b4 = 1, b3 = 0, b2 = 1, b1 = 0, b0 = 1
1,
nicht
4.5 Das RSA-Verfahren
45
entsprechend durch
a0 = 691 = 69 ,
a1 = 691 · a20 = 63 ,
a2 = 690 · a21 = 114 ,
a3 = 691 · a22 = 51 ,
a4 = 690 · a23 = 31 ,
a5 = 691 · a24 = 3 .
Ein Angreifer kann durch Beobachtung des Stromverbrauchs (oder anderer physikalischer Gröÿen) einer Maschine evtl. auf die Binärdarstellung der Zahl
29
3
ist an der hervorgehobenen Formel für
es eine Operation, liegt eine
1
e
schlieÿen. Das
schön zu erkennen. Liegt eine
0 vor braucht
vor, braucht es zwei.
Einen solchen Angri nennt man
Seitenkanalangri. Man sollte dies bei der Imple-
mentierung des Algorithmus beachten.
4.5 Das RSA-Verfahren
asymmetrische RSA-Verfahren : Es ist kein Schlüsselaustausch vor dem Versenden der Nachricht
Durch eine Modikation des Pohlig-Hellman-Verfahrens erhalten wir das
nötig. Der Empfänger
R
einer Nachricht hat in einem für den Sender
Verzeichnis seinen sogenannten öentlichen Schlüssel
Ein zugehöriger geheimer Schlüssel
d
(
(n, e)
(
S
zugängigen
public key ) veröentlicht.
private key ) ist nur dem Empfänger R bekannt.
Wir schildern die Schlüsselerzeugung:
R
R
R
R
p ̸= q .
berechnet n := p q , φ(n) = (p − 1) (q − 1).
wählt ein e ∈ N mit 1 < e < φ(n) und ggT(e, φ(n)) = 1.
berechnet d ∈ N mit d e ≡ 1 mod φ(n).
wählt zwei (groÿe) Primzahlen
Es sind dann
(n, e) der öentliche Schlüssel von R und d
p, q und φ(n) sind geheim zu halten).
der geheime Schlüssel von
R
(auch die Gröÿen
Ver- und Entschlüsselung:
des Empfängers
S
S
S
R
Der Sender
besorgt sich den öentlichen Schlüssel
und geht wie folgt vor:
stellt seine Nachricht als Element
C := N e in Zn
Geheimtext C an R.
bildet die Potenz
sendet den
S
N ∈ Zn
dar.
mit dem öentlichen Schlüssel
e.
(n, e)
4 Kryptologie
46
R
C = N e und berechnet die Potenz C d = N ed = N
Schlüssel d und erhält so den Klartext N .
erhält den Geheimtext
seinem geheimen
med ≡ m mod p
0 ≤ m < n gilt.
Dabei haben wir benutzt, daÿ wegen
auch
m
ed
≡ m mod n
Bemerkung.
Kann ein Angreifer
d. h. die Primzahlen
Empfänger
für alle
R
p
und
q
A
und
med ≡ m mod q
die (öentlich zugängliche) Zahl
p ̸= q
faktorisieren,
bestimmen, so kann er jeden Geheimtext ebenso wie der
entschlüsseln. Sind die Primzahlen
p
und
q
aber nur geschickt genug
gewählt, so ist es mit den gängigen Verfahren nicht möglich, die Zahl
zu faktorisieren.
n
und
mit
n
in kurzer Zeit
Herunterladen