Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Werbung
Seminar Codes und Kryptographie — WS 2003
Ein RSA verwandtes, randomisiertes Public
Key Kryptosystem
Kai Gehrs
Übersicht
1. Motivation
2. Das Public Key Kryptosystem
2.1 p-Sylow Untergruppen und eine spezielle logarithmische Funktion
2.2 Protokoll und Korrektheit des Verfahrens
3. Sicherheitsbeweise
4. Literatur zum Vortrag
1. Motivation – Wesentliche Eigenschaften
• RSA verwandt (Berechnung modulo n = p2 · q statt
n = p · q für große Primzahlen p, q)
• Randomisierte Verschlüsselung möglich
• Effizienz beruht auf schnellem modularen Potenzieren
• Sicherheit beruht auf Annahme, dass Faktorisierung nicht
effizient möglich ist
2.1 p-Sylow Untergruppen
Lemma und Definition 2.1. Die Menge
Γ := {x ∈ Z?p2 | x ≡ 1
mod p}
ist mit der von Zp2 induzierten Multiplikation eine Gruppe, die p-Sylow Untergruppe von Z?p2 . Es gilt: |Γ| = p.
2.1 p-Sylow Untergruppen
Lemma und Definition 2.1. Die Menge
Γ := {x ∈ Z?p2 | x ≡ 1 mod p}
ist mit der von Zp2 induzierten Multiplikation eine Gruppe, die p-Sylow Untergruppe von Z?p2 . Es gilt: |Γ| = p.
Beweis. (mit Untergruppenkriterium)
• 1 mod p2 ∈ Γ (klar!)
• y ∈ Γ ⇒ 1 = y · y −1 mod p2 und 1 = y · y −1 mod p.
Es folgt:
−1 mod p) = y −1 mod p.
1 = (y
mod
p)
·(y
|
{z
}
≡1
mod p
2.1 p-Sylow Untergruppen
• Bleibt zu zeigen: |Γ| = p. Es gilt:
1, p + 1, 2 · p + 1, . . . , (p − 1) · p + 1
sind kongruent 1 modulo p. Q.E.D.
2.1 Eine spezielle logarithmische Funktion
Lemma und Definition 2.2. Definiere
L : (Γ, ·) → (Zp, +)
durch
x−1
L(x) :=
p
L ist wohldefiniert,
mod p.
L(x · y) = L(x) + L(y) mod p
für alle x, y ∈ Γ und L ist bijektiv.
2.1 Eine spezielle logarithmische Funktion
Beweis.
• L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1
p ∈ N.
2.1 Eine spezielle logarithmische Funktion
Beweis.
• L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1
p ∈ N.
x·y−1
L(x · y) =
mod p
p
x−1
x−1 y−1
=
· (y − 1) +
+
mod p
p
p
p
= L(x) · (y
− 1)} +L(x) + L(y) mod p
| {z
≡0
mod p
2.1 Eine spezielle logarithmische Funktion
Beweis.
• L ist wohldefiniert: x ≡ 1 mod p ⇒ x−1
p ∈ N.
x·y−1
L(x · y) =
mod p
p
x−1 y−1
x−1
=
· (y − 1) +
+
mod p
p
p
p
= L(x) · (y
− 1)} +L(x) + L(y) mod p
| {z
≡0
mod p
• Injektivität: L(x) = 0 mod p ⇔ x ≡ 1 mod p2
• Surjektivität: Zu y ∈ Zp wähle x := p · y + 1. Q.E.D.
2.1 Eine spezielle logarithmische Funktion
Bemerkung 2.3. Ist g ∈ Zp2 ein erzeugendes Element
von Z?p2 , so gilt: L(g p−1) 6= 0 mod p und g p−1 ∈ Γ.
2.2 Das Protokoll des Kryptosystems
Berechnung der Schlüssel.
1. Wähle Primzahlen p, q ∈ N mit |p| = |q| = k und setze
n := p2 · q.
2. Wähle g ∈R Z?n, so dass gp := g p−1 mod p2 Ordnung
p hat.
3. Berechne h := g n mod n.
4. Öffentlicher Schlüssel: (n, g, h, k)
Privater Schlüssel: (p, q)
2.2 Das Protokoll des Kryptosystems
Verschlüsselung einer Nachricht.
1. Sei 0 < m < 2k−1 der Klartext. Wähle r ∈R Zn.
2. Die Verschlüsselung von m ist C := g m · hr mod n.
2.2 Das Protokoll des Kryptosystems
Verschlüsselung einer Nachricht.
1. Sei 0 < m < 2k−1 der Klartext. Wähle r ∈R Zn.
2. Die Verschlüsselung von m ist C := g m · hr mod n.
Entschlüsselung einer Nachricht.
1. Berechne Cp := C p−1 mod p2.
L(C )
2. Berechne m̃ := L(g p) .
p
Dann gilt: m = m̃ mod p.
2.2 Korrektheit des Protokolls
Beweis (Korrektheit). Die durchgeführte Division durch
L(g p−1) ist nach Bemerkung 2.3 zulässig.
L(Cp)
m̃ mod =
mod p
L(gp)
L((g m · hr )p−1)
=
mod p
p−1
L(g )
m · L(g p−1) + r · n · L(g p−1)
=
mod p
p−1
L(g )
= m + |{z}
r · n mod p
Q.E.D.
≡0 mod p
3. Sicherheitsbeweise – Faktorisierung
Ziel: Brechen des Kryptosystems ist äquivalent dazu, dass
man große Zahlen effizient faktorisieren kann.
Sei n = p2 · q mit p, q prim und q p2. Zwei der besten bekannten Faktorierungsalgorithmen sind:
√
• Lenstra’s elliptic curves (1987): exp(O( log q · log log q))
• Number field sieve (1990): exp(O(log1/3 n·log log2/3 n))
3. Sicherheitsbeweise – Erinnerung
Definition 3.2. Das Faktorisierungsproblem ist hart, wenn
für jeden PPA A, für jede reelle Konstante c > 0 und für
alle k 0 gilt:
1
k
P A(1 , n) = (p, q) < c ,
k
wobei n zufällig ist. Dabei sind p, q zufällig gewählte k-Bit
Primzahlen.
3. Sicherheitsbeweise – Erinnerung
Definition 3.4. Sei C die Verschlüsselung einer Nachricht
m gemäß des Protokols. Das Problem, aus C den Klartext
m zu berechnen, heißt hart, wenn für jeden PPA B, für
jede reelle Konstante c > 0 und für alle k >> 0 gilt:
1
k
P B(1 , n, g, C) = m < c ,
k
wobei n, g, C zufällig erzeugt sind.
3. Sicherheitsbeweise
Satz 3.5. Das Problem, aus der Verschlüsselung C den
Klartext m zu berechnen, ist hart genau dann, wenn das
Faktorisierungsproblem hart ist.
3. Sicherheitsbeweise
Satz 3.5. Das Problem, aus der Verschlüsselung C den
Klartext m zu berechnen, ist hart genau dann, wenn das
Faktorisierungsproblem hart ist.
Beweisskizze. Wir zeigen:
“⇒” Wenn das Faktorisierungsproblem nicht hart ist, so
kann auch das Problem, m aus C zu bestimmen, nicht hart
sein.
3. Sicherheitsbeweise
Satz 3.5. Das Problem, aus der Verschlüsselung C den
Klartext m zu berechnen, ist hart genau dann, wenn das
Faktorisierungsproblem hart ist.
Beweisskizze. Wir zeigen:
“⇒” Wenn das Faktorisierungsproblem nicht hart ist, so
kann auch das Problem, m aus C zu bestimmen, nicht hart
sein.
“⇐” Wenn das Problem, m aus C zu berechnen nicht
hart ist, so kann auch das Faktorisierungsproblem nicht
hart sein.
3. Sicherheitsbeweise
Beweis von Satz 3.5. “⇒” Sei A ein PPA, der n = p2 ·q
in prob. Polynomialzeit faktorisiert.
Definiere den PPA B durch:
Schritt 1: Bei Eingabe 1k , n, g, C: Übergebe 1k , n an A.
Schritt 2: Berechne m mit Hilfe der Ausgabe von A über
das Entschlüsselungsprotokoll.
Widerspruch!
3. Sicherheitsbeweise
Beweis von Satz 3.5. “⇒” Sei A ein PPA, der n = p2 ·q
in prob. Polynomialzeit faktorisiert.
Definiere den PPA B durch:
Schritt 1: Bei Eingabe 1k , n, g, C: Übergebe 1k , n an A.
Schritt 2: Berechne m mit Hilfe der Ausgabe von A über
das Entschlüsselungsprotokoll.
Widerspruch!
“⇐” Sei B ein PPA, der bei Eingabe 1k , n, g, C den Wert
m aus C in prob. Polynomialzeit berechnen kann.
3. Sicherheitsbeweise
Ziel. Konstruiere A, der zu gegebener Eingabe 1k , n Werte
g 0, C 0 so berechnet, dass er mit Hilfe von B n faktorisieren
kann.
3. Sicherheitsbeweise
Ziel. Konstruiere A, der zu gegebener Eingabe 1k , n Werte
g 0, C 0 so berechnet, dass er mit Hilfe von B n faktorisieren
kann.
Schritt 1. A wählt g 0 ∈R Z?n. Dann besitzt g 0p−1 mod p2
Ordnung p mit Wahrscheinlichkeit p−1
p , denn: e erzeuge
Z?p2 .
e, ep, e2·p, . . . , e(p−2)·p
haben nicht Ordnung p.
3. Sicherheitsbeweise
0
?
0
0
z
Schritt 2. A wählt z ∈R Zn und berechnet C := g
mod n. Es gilt 0 < m < 2k−1, d.h. das k-te Bit von m ist
0. Das k-te Bit von z 0 mod p ist 1 mit Wahrscheinlichkeit
≤ 12 .
⇒ Verteilungen von C und C 0 sind statistisch ununter-
scheidbar.
3. Sicherheitsbeweise
0
?
0
0
z
Schritt 2. A wählt z ∈R Zn und berechnet C := g
mod n. Es gilt 0 < m < 2k−1, d.h. das k-te Bit von m ist
0. Das k-te Bit von z 0 mod p ist 1 mit Wahrscheinlichkeit
≤ 12 .
⇒ Verteilungen von C und C 0 sind statistisch ununter-
scheidbar.
Bisher gezeigt: A kann 1k , n, g 0, C 0 an B übergeben.
Frage: Wie kann A den PPA B benutzen, um n zu faktorisieren?
3. Sicherheitsbeweise
Schritt 3. A übergibt 1k , n, g 0, C 0 an B und erhält m0
mit z 0 ≡ m0 mod p.
• p|z 0 − m0
• z 0 6≡ m0 mod n (mit hoher Wahrscheinlichkeit)
A gibt d := ggT(z 0 − m0, n) aus. Q.E.D.
3. Sicherheitsbeweise – Erinnerung
Definition 3.6. Das Protokoll heißt semantisch sicher,
falls für jeden PPA A, für jede reelle Konstante c > 0 und
k 0 gilt:
1
P A(1k , n, g, m0, m1, C) = m − < 1 ,
2
kc
wobei die Werte n, g, m0, m1, C zufällig erzeugt sind.
3. Sicherheitsbeweise – Erinnerung
Definition 3.7. Das Problem, bei Kenntnis von n, g, k, C
zu entscheiden, ob C die Verschlüsselung von 0 oder von
1 ist, heißt hart, wenn für jeden PPA B, für jede reelle
Konstante c > 0 und für k 0 gilt:
1
P B(1k , n, g, C) = b − < 1 , b ∈ {0, 1},
2
kc
wobei die Werte n, g, C zufällig erzeugt sind.
3. Sicherheitsbeweise
Satz 3.8. Das Protokoll ist semantisch sicher genau
dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist.
3. Sicherheitsbeweise
Satz 3.8. Das Protokoll ist semantisch sicher genau
dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist.
Beweis. Es sei E(m) die Verschlüsselung von m.
“⇐” Es sei A ein PPA, der bei Eingabe 1k , n, g, m0, m1,C
zwischen E(m0) und E(m1) unterscheidet. Sei B der PPA,
der A mit 1k , n, g, 0, 1 aufruft. Widerspruch!
3. Sicherheitsbeweise
Satz 3.8. Das Protokoll ist semantisch sicher genau
dann, wenn das Problem zu entscheiden, ob ein gegebenes C die Verschlüsselung von 1 oder 0 ist, hart ist.
Beweis. Es sei E(m) die Verschlüsselung von m.
“⇐” Es sei A ein PPA, der bei Eingabe 1k , n, g, m0, m1,C
zwischen E(m0) und E(m1) unterscheidet. Sei B der PPA,
der A mit 1k , n, g, 0, 1 aufruft. Widerspruch!
“⇒” Sei B ein PPA, der zwischen E(0) und E(1) unterscheidet.
Ziel: Konstruiere PPA A, der zwischen C = E(m0) und
C = E(m1) unterscheidet.
3. Sicherheitsbeweise
Schritt 1. A berechnet
• X := gC
m0 mod n
• g 0 := g (m1−m0)+r·n mod n, r ∈R Zn
• h0 := g 0n mod n
3. Sicherheitsbeweise
Schritt 1. A berechnet
• X := gC
m0 mod n
• g 0 := g (m1−m0)+r·n mod n, r ∈R Zn
• h0 := g 0n mod n
Dann gilt:
• gp0 := g 0p−1 mod p2 hat Ordnung p.
• C = E(m1) mod n ⇒ X = E 0(1) mod n
• C = E(m0) mod n ⇒ X = E 0(0) mod n.
3. Sicherheitsbeweise
Schritt 2. A übergibt 1k , n, g 0, X an B.
1. Fall: B gibt 0 aus: Dann gibt A den Wert m0 aus.
2. Fall: B gibt 1 aus: Dann gibt A den Wert m1 aus.
Widerspruch!
3. Sicherheitsbeweise
Schritt 2. A übergibt 1k , n, g 0, X an B.
1. Fall: B gibt 0 aus: Dann gibt A den Wert m0 aus.
2. Fall: B gibt 1 aus: Dann gibt A den Wert m1 aus.
Widerspruch! Q.E.D.
Literatur
• H. Cohen, A Course in Computational Algebraic Number Theory, Graduate Texts in Mathematics 138, Springer-Verlag, 1993
• J. von zur Gathen, J. Gerhard, Modern Computer Algebra, Cambridge University Press, first edition, 1999
• N. Koblitz, A Course in Number Theory and Cryptography, Graduate Texts in Mathematics 114, second edition, Springer-Verlag,
1994
• T. Okamoto, S. Uchiyama, A New Public-Key Cryptosystem as
Secure as Factoring, K. Nyberg (Ed.): Advances in Cryptology
– EUROCRYPT ’98, LNCS 1403, pp. 308-318, Springer-Verlag,
1998
Herunterladen