Das RSA Verfahren - Arbeitsgruppe Kryptographie und Sicherheit

Transcription

Das RSA Verfahren - Arbeitsgruppe Kryptographie und Sicherheit
Das RSA Verfahren
Verschlüsselung
Chiffrat
m
m
k
k
Eve
?
Verschlüsselung
Chiffrat
m
m
k
k
Eve
?
Aber wie verteilt man die Schlüssel?
Die Mafia-Methode
Sender
Empfänger
Der Sender
verwendet keine
Verschlüsselung
Der Empfänger
kann sein eigenes
Störsignal abziehen.
Eve
Eve erlauscht
nur Rauschen
Kryptographie ohne Schlüssel
Die Mafia-Methode
Sender
Empfänger
Der Sender
verwendet keine
Verschlüsselung
Der Empfänger
kann sein eigenes
Störsignal abziehen.
Eve
Eve kann die Signale unterscheiden
Heute unsicher, aber sie motivierte eine faszinierende Lösung...
Public-Key-Kryptographie
Asymmetrisch wie ein Briefkasten:
RSA
Verschlüsselung
Entschlüsselung
c = m e mod N
m = c d mod N
Public Key:
Secret Key:
(e,N)
d
Grundlagen
Eine Gruppe ist eine Menge G zusammen mit einer Verknüpfung, die
• assoziativ ist und gG
• zu jedem gG gibt es ein g-1 mit g-1 g
= 1.
Zu jeder Untergruppe U  G gibt es eine Nebenklassenzerlegung:
G = U  gU  hU ...
1
g
y
x
gy
gx
...
also gilt |U| teilt |G|
h
hy
hx
...
...
...
Grundlagen
also gilt |U| teilt |G|
x4
...
x3
x2
..
x
.
1
x erzeugt eine Untergruppe U und x |U| = 1.
Wegen |U| teilt |G| ist x |G| = 1 und für jedes
m = 1 mod |G| gilt xm = x.
Ein Element
Kleiner Satz von Fermat
Grundlagen
Für N = p.q bildet die Menge der Zahlen < N, die teilerfremd zu N sind,
ZNZ
zusammen mit der Multiplikation eine Gruppe mit (p-1)(q-1) Elementen:
*
Assoziativität:
xx
mod N ist ein Homomorphismus.
Inverse Gruppenenlemente: für x mit ggT(x,N) = 1 existieren s,t mit s.x
+ t.N = 1,
denn der ggT läßt sich linearkombinieren (ELBA).
modulo N ist t.N gleich Null und s.x = 1 mod N.
Also s = x-1 mod N.
Die RSA-Funktion
N = pq
Dann gilt:
sei Produkt von zwei Primzahlen und
ZNZ
e mit ggT(e, (p-1)(q-1)) = 1.
xxe
mod N ist eine Permutation auf
*
Angenommen es gäbe zwei e-te Wurzeln y,z von x so wäre (y/z)e = 1
und es gäbe eine Untergruppe, deren Ordnung e teilt. Aber die Ordnung
einer Untergruppe teilt immer die Gruppenordnung
(p-1)(q-1) .
Die RSA-Funktion
N = pq
Dann gilt:
sei Produkt von zwei Primzahlen und
xxe
ZNZ
e mit ggT(e, (p-1)(q-1)) = 1.
mod N ist eine Permutation auf
*
Angenommen es gäbe zwei e-te Wurzeln y,z von x so wäre (y/z)e = 1
xxe
und es gäbe eine Untergruppe, deren Ordnung e teilt. Aber die Ordnung
RSA-Annahme:
mod N ist ohne zusätzliche Information und für
einer Untergruppe teilt immer diezufällige
Gruppenordnung
(p-1)(q-1)
Eingaben schwierig
zu .invertieren.
Ob dies genauso schwierig ist wie das Faktorisieren von N ist ein offenes Problem.
Die Falltür (Das Hintertürchen)
Mit der Faktorisierung von N
= pq, kennt man die Gruppenordnung (p-1)(q-1).
Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT.
Es gibt also d,c mit
d .e+c .(p-1)(q-1) = 1.
Diese findet man mit ELBA.
Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und:
Gemäß dem kleinen Fermat gilt:
xed = x mod N
d .e = 1
mod (p-1)(q-1).
Die Falltür (Das Hintertürchen)
Mit der Faktorisierung von N
= pq, kennt man die Gruppenordnung (p-1)(q-1).
Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT.
Es gibt also d,c mit
d .e+c .(p-1)(q-1) = 1.
Diese findet man mit ELBA.
Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und:
Gemäß dem kleinen Fermat gilt:
d .e = 1
mod (p-1)(q-1).
xed = x mod N
xxe
Öffentlicher Schlüssel (e,N).
Verschlüsseln:
Privater Schlüssel d.
Entschlüsseln: (xe)d = xed = x mod N
mod
N
Die Falltür (Das Hintertürchen)
Mit der Faktorisierung von N
= pq, kennt man die Gruppenordnung (p-1)(q-1).
Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT.
Es gibt also d,c mit
d .e+c .(p-1)(q-1) = 1.
Diese findet man mit ELBA.
Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und:
Gemäß dem kleinen Fermat gilt:
Öffentlicher Schlüssel (e,N).
Privater Schlüssel d.
d .e = 1
mod (p-1)(q-1).
xed = x mod N
Verschlüsseln:
xxe
mod
Wirklich Entschlüsseln:
sicher?(x )
e d = xed =
x
N
mod N
Aktive Angreifer
Alice
c = me mod N
c´= 2ec mod N
der Auktionator
entschlüsselt c´
Bob
= 2ec = 2eme
zu 2m.
 Bob gewinnt.
Aktive Angreifer
c = me mod N
Alice
Lehrbuch RSA
nicht
sicher!
c´= 2ist
c mod
N
e
der Auktionator
entschlüsselt c´
Bob
= 2ec = 2eme
zu 2m.
 Bob gewinnt.
IND-CCA2 Sicherheit
EntschlüsselungsOrakel
öffentlicher
Schlüssel e
A
Ence(Challengei)
zufällig gewählt
A
Challenge1 , Challenge2
EntschlüsselungsOrakel
öffentlicher
Schlüssel e
!
A
Entscheidung
kann die Challenges nicht besser unterscheiden als durch Raten.
RSA-ES-OAEP [BR94]
Nachricht m
Zufallsstring r
hash
hash
m+h(r)
h(m+h(r))+r
RSA-ES-OAEP [BR94]
Nachricht m
Zufallsstring r
hash
hash
m+h(r)
h(m+h(r))+r
Chiffrat = (m+h(r) || h(m+h(r))+r)e
RSA-ES-OAEP ist beweisbar sicher
Mit idealisierten Hashfunktionen (Random Oracle Model) gilt:
Ein Angreifer, der das IND-CCA-Spiel gewinnt, kann
dazu benutzt werden die RSA-Funktion zu invertieren.
Beweisidee:
Es ist nicht effizient möglich gültige Chiffrate zu erzeugen,
ohne den Klartext zu kennen.
Also liefert das Entschlüsselungsorakel im IND-CCA-Spiel
nur  oder eine Nachricht, die man schon kennt. Zu zeigen
bleibt nur noch die Sicherheit bei passiven Angreifern.
RSA-ES-OAEP ist beweisbar sicher
Mit idealisierten Hashfunktionen (Random Oracle Model) gilt:
Ein Angreifer, der das IND-CCA-Spiel gewinnt, kann
dazu benutzt werden die RSA-Funktion zu invertieren.
Beweisbare Sicherheit ist praxisrelevant:
PKCS #1 v.2.1 verwendet in SSL/TLS
ASC X9.44, amerikanischer Bankenstandard
IEEE P1363,
SET, Standard für sicheres Bezahlen (Visa, MasterCard)
ELBA(x,y)
s = 1, t= 0
solange b>0
solange a>= b
a:= a-b, t:= t-1
vertausche (a,b)
vertausche (s,t)
a wird ggT, b wird 0
und es gilt immer: sx+ty = a