Vortrag zum Proseminar: Kryptographie

Werbung
Vortrag zum Proseminar: Kryptographie
Thema:
Das Rabin-Verschlüsselungssystem
Oliver Czernik
6.12.2005
Kryptographie
Das Rabin-Verschlüsselungssystem
Historie
Michael Rabin
• Professor für Computerwissenschaft
• Miller-Rabin-Primzahltest
● Januar 1979
● April 1977: RSA
• Asymmetrisches
Verschlüsselungssystem
• Sicherheit nicht beweisbar,
nur vermutet
➔ Sicherheit des RabinKryptosystems ist
beweisbar
●
Michael O. Rabin
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Schlüsselgenerierung
Privater Schlüssel:
• p, q sind Primzahlen
• p, q haben dieselbe Bitlänge
• Größenordnungen wie RSA (ca.1024-, 2048-bit)
Öffentlicher Schlüssel:
•
n=p⋅q
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Schlüsselgenerierung
Erzeugung von Primzahlen mit Miller-RabinPrimzahltest:
Fakt: Wenn k prim ist, dann gilt:
s
k −1=2 ⋅r , r ist ungerade
⇒
r
2 r
a ≡1 mod k oder ∃ j a ≡−1 mod k  ,
a∈ {1,.. , k −1 } , 0≤ j ≤s−1
j
Problem:
Gilt auch für bis zu ¼ aller a∈ {1,.. , k −1 }, wenn k
eine ungerade zusammengesetzte Zahl ist
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Schlüsselgenerierung
Erzeugung von Primzahlen mit Miller-RabinPrimzahltest:
•
•
Zufällige Wahl einer ganzen Zahl k in der
richtigen Größenordnung
Wiederholtes t-faches testen von k mit jeweils
anderem zufälligen a, um die Wahrscheinlichkeit eines Fehlers zu verringern
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Schlüsselgenerierung
Erzeugung von Primzahlen mit Miller-RabinPrimzahltest:
Nachteil:
• Gefundene Zahlen müssen nicht unbedingt
t
Primzahlen sein. (Fehlerwert höchstens ¼ )
Vorteil:
• Kürzere Laufzeit als jeder deterministischer
3
Primzahltest (O t⋅L  ; L ist die Bitlänge der
Primzahl)
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Schlüsselgenerierung
p=17
q=19
n=323
Zuverlässige Primzahlenerzeugung für p und q:
•
•
•
Probabilistischer Primzahltest (etwa MillerRabin) mit niedrigen Sicherheitsfaktor t
Divisionstest mit kleinen Primzahlen
Deterministischer Primzahltest mit möglichst
geringer Laufzeit (etwa AKS-Primzahltest)
p=17, q=19, n=323
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Verschlüsselung
p=17
q=19
n=323
m=317
c=36
2
E : c=m mod n
m , c ∈ {0,1 ,.. , n−1 } ;
m ist eine die Nachricht repräsentierende Zahl;
c ist die verschlüsselte Nachricht
m=317, c=36
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
D : m=  c mod n
Probleme:
•
Keine injektive Funktion Þ Mehrere Ergebnisse
• Durchführung von D aufwendiger als von E
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
Das modulare Quadratwurzel Problem
(„SQROOT“-Problem):
Fakten:
• r =  c mod p ist effizient zu lösen, wenn p eine
Primzahl ist.
• Ist p keine Primzahl muss es zuerst in solche
zerlegt werden. (Faktorisierungsproblem)
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
Das Faktorisierungsproblem:
Fakten:
• Jede natürliche Zahl lässt sich eindeutig in
Primzahlen zerlegen
• Asymmetrie: Erzeugung einer Zahl durch
Multiplikation von Primzahlen ungleich einfacher
als der umgekehrte Weg
• Besonders schwierig: Zerlegung einer Zahl aus
zwei etwa gleichgroßen Primzahlen
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
Das Faktorisierungsproblem:
Annahme:
• Es gibt (heute) keine Methode eine Primfaktorzerlegung effizient durchzuführen.
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
Jede ℤ∗p mit Primzahl p hat einen Generator a:
∗
i
a∈ℤ p ⇒ a∈{ mod p∣i ∈{0,.. , p−2}}
i
Es ist klar, dass jedes a= mod p mit geradem
∗
i in ℤ p eine Quadratwurzel hat, nämlich genau:
i /2
b= mod p∧−b mod p
In einen solchen Fall wird a ein quadratischer Rest
genannt.
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
Umgekehrt kann aus jenen Zahlen, die mit
ungeradem i generiert werden, gerade keine
Quadratwurzel gezogen werden!
Solche Zahlen sind quadratische Nichtreste.
Euler Kriterium:
 p−1/2
a
mod p
= 1 , wenn a ein quadratischer Rest ist
−1 , wenn a ein quadratischer Nichtrest ist
, 1≤a≤p−1
{
]
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
r =  c mod p , p ist eine Primzahl:
1. Finde b, b ist quad. Nichtrest , 1≤b≤p−1
s
2. Finde s, t, so dass p−1=2 ⋅t, t ungerade
−1
3. Berechne c mod pt (erw. Euk.-Algorithmus)
4. Berechne x =log b c
5. Berechne r =b xt /2⋅c−t −1/2 mod p
6. r und −r mod p sind die gesuchten Werte
t
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
b=6
c-1 =9
s=4
t=1
u=6
r=2
r =  c mod p , p ist eine Primzahl:
1. Finde b, b ist quad. Nichtrest , 1≤b≤p−1 b=6
s
2. Finde s, t, so dass p−1=2 ⋅t, t ungerade
s=4, t=1
−1
3. Berechne c mod p (erw. Euk.-Algorithmus)
−1
c
=9
4. u=bt mod p , r =c t 1/2 mod p
u=6,r=2
5. [...]
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
b=6
c-1 =9
s=4
t=1
u=16
r=11
-r=6
r =  c mod p , p ist eine Primzahl:
4. [...]
i=3 :
5. Für alle Werte von
i,
:
1≤i
≤s−1
2 −1 k
5.1 d = r ⋅c  mod p , k =2s−i −1
d=−1
5.2 Wenn d ≡−1 mod p, dann setzte
r=11
r auf r⋅u mod p
2
5.3 Setzte u auf u mod p
u=16
6. r und −r mod p sind die gesuchten Werte
r=11,−r=6
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
-1
c =9
r=11
-r=6
s=6
-s=13
s=  c mod q , q ist eine Primzahl :
Spezialfallq≡3 mod 4
q1/ 4
mod q
1. s=c
2. s und−s mod q sind die gesuchten Werte
s=6,−s=13
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
-1
c =9
r=11
-r=6
s=6
-s=13
Entschlüsselungsalgorithmus:
1. Berechnung von r =  c mod p
r=11,−r=6
2. Berechnung von s=  c mod q
s=6,−s=13
3. Wie berechnet man nun aus r und s die
gesuchte Wurzel?
⇒ Chinesischer Restsatz
[...]
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
-1
c =9
r=11
-r=6
s=6
-s=13
Chinesischer Restsatz:
x , a i , m i ∈ℤ ; i , j ∈ {1,.. , l } ; l ∈ℕ ;
i ≠ j ; m i , m j sind teilerfremd
x ≡a1 mod m1
r i⋅m i s i⋅M i =1
x ≡a 2 mod m 2
⇒
M
=
m
∏
i
∧
∧
s i⋅M i ≡1 mod m i
⋮
M i =M /m i
x ≡a l mod m l
s i⋅M i ≡0 mod m j
⇒ x ≡∑ a i s i M i mod M
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
-1
c =9
r=11
-r=6
s=6
-s=13
Chinesischer Restsatz:
apbq=1
⇒
n=p⋅q
 c≡r mod p ∧ p=n /q ∧ ap≡1 mod q
ap≡0 mod p
 c≡s mod q
q=n/ p
bq≡1 mod p
bq≡0 mod q
⇒  c≡apsbqr mod n
Kryptographie
Das Rabin-Verschlüsselungssystem
Funktionalität: Entschlüsselung
p=17
q=19
n=323
m=317
c=36
-1
c =9
r=11
-r=6
s=6
-s=13
Entschlüsselungsalgorithmus:
1. Berechnung von r =  c mod p
2. Berechnung von s=  c mod q
3. Erweiterter Euklidischer Algorithmus um a, b zu
errechnen, so dass apbq=1
a=9, b=−8
x=6
4. x =apsbqr mod n
y=215
5. y =aps−bqr mod n
6, 317 , 215 ,108
6. x ,−x mod n , y ,−y mod n
Kryptographie
Das Rabin-Verschlüsselungssystem
Effizienz: Schlüsselgenerierung
Ausschließlich Miller-Rabin-Primzahltest mit
Restrisiko:
3
O t⋅L 
Primzahl ohne Risiko eines Irrtums:
3
O L 
Miller-Rabin-Primzahltest:
Test mit kleinen Primzahlen: O L 2 
6
O L 
AKS-Primzahltest:
6
3
2
O L L L 
Gesamtlaufzeit:
Kryptographie
Das Rabin-Verschlüsselungssystem
Effizienz: Verschlüsselung
2
E : c=m mod n
2
Laufzeit O N ; N ist die Bitlänge von n.
(Somit auch von m und c.)
Kryptographie
Das Rabin-Verschlüsselungssystem
Effizienz: Entschlüsselung
D : m=  c mod n
Wurzelziehen aus c für p bzw. q:
(Wurzelziehen für den Spezialfall:
Erw. Euklidischer Algorithmus:
Rest der Entschlüsselung:
Gesamtlaufzeit:
4
O L 
3
O L  )
2
O L 
2
O N 
4
2
2
O L L N 
3
2
2
O L L N 
Kryptographie
Das Rabin-Verschlüsselungssystem
Sicherheit: Turing-Reduktion
Im Gegensatz zu RSA ist die Sicherheit des
Rabin-Verschlüsselungssystem mathematisch
beweisbar.
Beweis durch Turing-Reduktion:
1. Funktion LG kennt eine Funktion LH, die ein
Problem H löst
2. LG nutzt LH, nimmt aber keinen Einfluss auf LH
3. LG an sich hat polynomielle Laufzeit
4. LG löst ein Problem G
Kryptographie
Das Rabin-Verschlüsselungssystem
Sicherheit: Turing-Reduktion
Wenn es eine Turing-Reduktion von G auf H gibt,
wird dies dermaßen notiert:
G µT H
Wenn ein Algorithmus zur Funktion LH mit polynomieller Laufzeit existiert, dann existiert auch ein
Algorithmus für die Funktion LG mit polynomieller
Laufzeit.
Kryptographie
Das Rabin-Verschlüsselungssystem
Sicherheit: Faktorisierungsproblem
Annahme: Es gibt einen Algorithmus LRabin, der
einen Ciphertext c ohne Kenntnis des privaten
Schlüssels (p,q) in polynomieller Laufzeit löst.
∗
n
1. Wähle ein beliebiges r ∈ℤ
2
2. c=r mod n
3. m=LRabinc , n
4. Wenn m≡±r mod n , dann wieder zu 1.
5. p=ggT mr , n, q= np
6. p und q sind die Zerlegung von n
Þ Faktorisierungsproblem effizient gelöst
Kryptographie
Das Rabin-Verschlüsselungssystem
Sicherheit: Chosen-ciphertext-Attacke
Faktorisierungsproblem µT Rabin-Kryptosystem
Rabins Verschlüsselungssystem ist nur schwer
durch passive Attacken zu brechen.
Schwäche gegen Chosen-ciphertext-Angriffe:
• Angreifer hat Zugriff auf die Entschlüsselungsmaschine
• Angreifer erstellt beliebige Ciphertexte
• Selbe Berechnungen wie zuvor
Kryptographie
Das Rabin-Verschlüsselungssystem
Sicherheit: Redundanz
Rabin-Entschlüsselung liefert zu einem Ciphertext
c vier mögliche Klartexte m1 , m 2 , m 3 , m 4 .
Mögliche Lösung: Einfügen von Redundanz
Positiver Nebeneffekt: Chosen-ciphertext-Attacke
ist abgewendet
Negativer Nebeneffekt: Verlust der Äquivalenz mit
dem Faktorisierungsproblem
Kryptographie
Das Rabin-Verschlüsselungssystem
Vergleich mit RSA
•
•
•
•
Laufzeiten bei der Erstellung der Schlüssel und
Entschlüsselung sind vergleichbar
Verschlüsselung ist (unwesentlich) schneller
Beweisbare Sicherheit, verbunden mit mehreren
möglichen Entschlüsselungsergebnissen
oder
Mit Redundanz ein Ergebnis, aber nicht
beweisbar sicherer und definitiv ineffizienter
Kryptographie
Das Rabin-Verschlüsselungssystem
Praktische Anwendung
Als Anschauungsbeispiel in Lehrveranstaltungen
RSA läuft dem Rabin-Verschlüsselungssystem
den Rang ab.
Praktische Anwendung ist denkbar, wenn ein
Verschlüsselungsverfahren benötigt wird, dass
eine möglichst schnelle Verschlüsselung
garantiert.
Herunterladen