RSA-Verfahren - Mathematics TU Graz

Werbung
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
RSA-Verfahren
Herwig Stütz
2007-11-23
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Überblick
1
RSA-Verfahren
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
2
Schnelle Ver- / Entschlüsselung
Schnelle modulare Exponentiation
Chinesischer Restsatz
3
Zusammenhang mit dem Faktorisierungsproblem
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Allgemeines
Public-Key Methode
Rivest, Shamir und Adleman 1977
Sicherheit des Verfahrens beruht auf Schwierigkeit der
Primfaktorenzerlegung
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Eulersche φ-Funktion
Definition (φ-Funktion)
Die Eulersche φ-Funktion wird definiert durch:
φ : N → N,
φ(n) = |{1 ≤ k ≤ n|ggT (k, n) = 1}|
Lemma (Eigenschaften der φ-Funktion)
Sei n ∈ N und p Primzahl. Dann gelten
φ(nm) = φ(n)φ(m)
Multiplikativität
φ(p) = p − 1
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Theorem (Kleiner Satz von Fermat)
Sei G eine endliche Gruppe und a ∈ G . Dann gilt
a|G | = eG .
Beweis.
Seien g1 , . . . , g|G | die Elemente von G . Es gilt
(ag1 )(ag2 ) · . . . · (ag|G | ) = g1 g2 · . . . · g|G |
da die (agi ) nur eine Permutation der gi sind. Nun kann man die a
herausziehen und die gi kürzen:
a|G | = eG .
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Folgerung
Für den Spezialfall G = (Zn , ·) mit |G | = φ(n) ergeben sich:
1
Ist n eine natürliche Zahl, dann gilt
aφ(n) ≡ 1
2
mod n
für ggT (a, n) = 1.
Ist p prim und a beliebig, dann gilt
ap ≡ a
Herwig Stütz
mod p
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Begriffe
RSA-Modul: n
Private-Key: d
Public-Key: (n, e)
Klartext: m
Geheimtext: c
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Ver- und Entschlüsselung
Ver- und Entschlüsselung
c ≡ me
mod n
m ≡ cd
mod n
Herwig Stütz
RSA-Verfahren
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Schlüsselerzeugung
Wähle Primzahlen p und q
Setze n = pq
Private-Key: Wähle d so, dass
0 < d < φ(n)
und
ggT (d, φ(n)) = 1
Public-Key: Wähle e so, dass
0 < e < φ(n) und
Herwig Stütz
ed ≡ 1 mod φ(n)
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Korrektheit von RSA
Theorem (Korrektheit von RSA)
Sei (n, e) ein öffentlicher Schlüssel, und d der entsprechende
private Schlüssel im RSA-Verfahren. Dann gilt
(me )d ≡ m
mod n
für jede natürliche Zahl m.
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Korrektheit von RSA
Beweis.
Da ed ≡ 1 mod (p − 1)(q − 1) ist, gibt es eine ganze Zahl l , so
dass
ed = 1 + l (p − 1)(q − 1)
ist. Daher ist
(me )d = med = m1+l(p−1)(q−1) = m(m(p−1) )l(q−1) ≡ m
und auch
(me )d ≡ m
Herwig Stütz
mod q.
RSA-Verfahren
mod p
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Beweis.
Weil p 6= q folgt dann
(me )d ≡ m
mod n
für ggT (m, n) = 1. Wenn ggT (m, n) > 1, so ist n ein Teiler von m
und somit ist die Kongruenz auf beiden Seiten 0.
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vorbereitung
Das Verfahren
Korrektheit
Beispiel
Beispiel
Wählen p = 29, q = 37 also n = 1073.
Wählen Private-Key d = 59 ggT (59, 1036) = 1
Berechnen Public-Key e = 868.
Nachricht m = 525 Also ist
c = me
mod n = 525868
mod 1073 = 308
m = cd
mod n = 30859
mod 1073 = 525
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Schnelle modulare Exponentiation
Chinesischer Restsatz
Schnelle modulare Exponentiation
Zu berechnen x e mod n
e = bk 2k + bk−1 2k−1 + · · · + b1 21 + b0 20
k +b
k−1 +···+b 21 +b 20
1
0
k−1 2
x e = x bk 2
=
k Y
i =0
Herwig Stütz
RSA-Verfahren
i
x2
bi
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Schnelle modulare Exponentiation
Chinesischer Restsatz
Beispiel
Zu berechnen sei x 11 mod n mit x = 47 und n = 58:
e3
e2
e1
e0
:
:
:
:
1
0
1
1
x
x2
(x 2 )2 x
((x 2 )2 x)2 x
=x
= x2
= x5
= x 11
Herwig Stütz
472
mod 58
52 · 47 mod 58
152 · 47 mod 58
RSA-Verfahren
= 47
=5
= 15
= 19
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Schnelle modulare Exponentiation
Chinesischer Restsatz
Chinesischer Restsatz
Theorem (Chinesischer Restsatz)
Seien n1 , n2 , . . . , nr r natürliche Zahlen größer 1, die zueinander
relativ prim sind, also ggT (ni , nj ) = 1 für i 6= j, und seien
a1 , a2 , . . . , ar beliebige natürliche Zahlen. Dann existiert eine
Lösung zu der Kongruenz
x ≡ ai
mod ni
i = 1, 2, . . . , r
Existieren 2 Lösungen x und x ′ , so gilt x ≡ x ′ mod N mit
N = n1 n2 · · · nr
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Schnelle modulare Exponentiation
Chinesischer Restsatz
Chinesischer Restsatz
Beweis.
Sei N = n1 · . . . · nr und sei Nk = N/nk . Deshalb gilt
ggT (Nk , nk ) = 1. Also gilt ∀Nk ∃Nk′ : Nk Nk′ ≡ 1 mod nk , da die
nk teilerfremd sind. Nun sei
x = a1 N1 N1′ + a2 N2 N2′ + . . . + ar Nr Nr′ .
Da nun Ni ≡ 0 mod nk für i 6= k folgt
x ≡ ak Nk Nk′
mod nk .
Seien x und y zwei Lösungen des System, dann gilt x ≡ y mod nk
für alle k. Und da die nk paarweise relativ prim sind, gilt x ≡ y
mod N.
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Faktorisierung von n =⇒ RSA ist unsicher
d ist bekannt =⇒ n kann mit probabilistischen Algorithmus
faktorisiert werden
Methode zur Berechnung von d ohne Faktorisierung von n??
Vermutung
Jede Methode, das RSA-Kryptosystem zu brechen ist mindestens
gleichschwer wie die Zerlegung in Primfaktoren.
Herwig Stütz
RSA-Verfahren
RSA-Verfahren
Schnelle Ver- / Entschlüsselung
Zusammenhang mit dem Faktorisierungsproblem
Vielen Dank für die Aufmerksamkeit!
Herwig Stütz
RSA-Verfahren
Herunterladen