Kryptographische Verfahren - Institut für Formale Methoden der

Werbung
Kryptographische Verfahren
Manfred Kufleitner
Lukas Fleischer
Institut für Formale Methoden der Informatik
Abteilung Theoretische Informatik
Universität Stuttgart
22.06.2016
1 / 21
Kryptographische Protokolle (22.06.2016)
1. Einführung
2. Schlüsselaustausch
3. Teilen von Geheimnissen
4. Elektronische Verpflichtung
5. Beweise ohne Wissensvermittlung
2 / 21
Einführung
I
Ein Protokoll ist eine Vereinbarung zum Ablauf einer
Kommunikation, an der zwei oder mehr Parteien beteiligt sind.
I
Ein kryptographisches Protokoll ist ein Protokoll, das
kryptographische Mittel einsetzt.
I
Die Mitspieler werden meist Alice und Bob genannt.
I
Eve kann die Kommunikation belauschen, aber nicht
manipulieren.
I
Mallory ist ein aktiver Angreifer und kann Nachrichten
modifizieren (Man in the Middle).
3 / 21
Schlüsselaustausch
I
Wiederholung Diffie-Hellman:
I
I
I
I
I
Alice und Bob einigen sich über einen unsicheren Kanal auf
eine Primzahl p und eine Zahl g mod p, die eine große
∗
Untergruppe in (Z/pZ) erzeugt.
Alice wählt eine große zufällige Zahl a und sendet
A = g a mod p and Bob.
Bob wählt eine große zufällige Zahl b und sendet
B = g B mod p and Alice.
Alice berechnet K = B a mod p.
Bob berechnet K = Ab mod p.
I
Eve kann K ohne Kenntnis von a und b (vermutlich) nicht
effizient berechnen.
I
Achtung: Der Schlüsselaustausch nach Diffie-Hellman ist
anfällig für Man-in-the-Middle-Angriffe!
4 / 21
Schlüsselaustausch
Diffie-Hellman und Man-In-The-Middle
Mallory
Alice
Bob
A = g a mod p
0
A0 = g a mod p
B = g b mod p
0
B 0 = g b mod p
I
I
0
Alice verwendet nachfolgend den Schlüssel KA = g b a mod p
0
und Bob den Schlüssel KB = g a b mod p.
Sendet Alice eine mit KA verschlüsselte Nachricht y an Bob,
fängt Mallory diese ab, berechnet x = dKA (y ) sowie
y 0 = eKB (x ) und leitet y 0 an Bob weiter – in der anderen
Richtung analog!
5 / 21
Schlüsselaustausch
Authentizität und Zertifikate
I
Für Authentizität beim Schlüsselaustausch ist ein
Informationsvorsprung notwendig!
I
Haben Alice und Bob beispielsweise zuvor bereits ihre
öffentlichen Schlüssel ausgetauscht, können die Nachrichten
beim Schlüsselaustausch digital signiert werden.
I
Alice und Bob müssen sich für den Austausch ihrer
öffentlichen Schlüssel nicht notwendigerweise persönlich
treffen. Möglich ist beispielsweise auch ein Treffen mit einer
vertrauenswürdigen Person Trent, mit der öffentliche
Schlüssel getauscht werden. Trent stellt dann ein Dokument
mit Alices/Bobs öffentlichem Schlüssel und einer Bestätigung
aus, dass es sich tatsächlich um die Schlüssel der jeweiligen
Besitzer handelt. Dieses signiert und veröffentlicht er. In der
Praxis übernehmen Zertifizierungsstellen Trents Aufgabe.
6 / 21
Schlüsselaustausch
Forward Secrecy
I
Anmerkung: Haben Alice und Bob ihre öffentlichen Schlüssel
bereits ausgetauscht, könnten sie ohnehin verschlüsselt
kommunizieren. Zudem könnte Alice für einen
Schlüsselaustausch auch einfach eine Zufallszahl K erzeugen
und diese direkt (mit Bobs öffentlichem Schlüssel)
verschlüsselt an Bob senden.
I
Aber: Wird Bobs privater Schlüssel später kompromittiert, so
können nachträglich alle jemals mit dieser Methode
ausgetauschten Schlüssel rekonstruiert und die damit
verschlüsselten Nachrichten gelesen werden!
I
Bei Vereinbarung eines Sitzungsschlüssels durch
authentifizierten Schlüsselaustausch nach Diffie-Hellman ist
vergangene Kommunikation auch nach Bekanntwerden von
Bobs privatem Schlüssel nicht lesbar (Forward Secrecy).
7 / 21
Teilen von Geheimnissen
I
Ein Geheimnis s soll unter n Personen so aufgeteilt werden,
dass es nur von allen zusammen rekonstruiert werden kann.
I
Wähle eine ausreichend große Gruppe G (z.B. Z/kZ mit
k n) und n − 1 zufällige Elemente g1 , g2 , . . . , gn−1 aus G.
I
Berechne gn = (g1 g2 · · · gn−1 )−1 s.
I
Händige das Paar (i, gi ) an Person i aus.
I
Das Geheimnis s kann durch g1 g2 · · · gn rekonstruiert werden.
Treffen weniger als n Personen zusammen, können diese aus
ihren Elementen keine Rückschlüsse über s ziehen.
I
Problem: Geht eines der Elemente gi verloren, ist die
Nachricht nicht mehr rekonstruierbar.
I
Lösung: Teile das Geheimnis so auf n Personen auf, dass
dieses jeweils durch Zusammentreffen von m < n Personen
rekonstruiert werden kann ((m, n)-Schwellwertverfahren).
8 / 21
Teilen von Geheimnissen
Vorüberlegung zu Shamir’s Secret Sharing, n = 10 und m = 2
10
9
8
7
6
5
3
2
1
0
s=4
1 2 3 4 5 6 7 8 9 10
9 / 21
Teilen von Geheimnissen
Shamir’s Secret Sharing
I
Wähle eine ausreichend große Primzahl p und zufällige
Koeffizienten a1 , . . . , am−1 ∈ Fp . Diese definieren ein
(geheimes) Polynom
a(X ) = s +
m−1
X
ai X i
i=1
über Fp .
I
Berechne a(i) für alle i ∈ {1, . . . , m} und händige jeweils das
Tripel (i, a(i), p) an Person i aus.
I
Treffen mindestens m Personen zusammen, so können diese
aus m Funktionswerten das Polynom a(X ) rekonstruieren und
anschließend a(0) = s berechnen.
10 / 21
Teilen von Geheimnissen
Lagrange-Interpolation
I
Zur Rekonstruktion von a(X ) kann ein Gleichungssystem
gelöst werden oder man verwendet Lagrange-Interpolation.
I
Vorgehen: Seien x1 , . . . , xm paarweise verschiedene Elemente
aus Fp , dann ist das i-te Lagrange-Polynom `i (X ) definiert
als
Y
`i (X ) =
(X − xj )(xi − xj )−1 .
j∈{1,...,m}\{i}
I
Jedes dieser Polynome hat Grad m − 1 und für alle
i, j ∈ {1, · · · , m} ist
(
`i (xj ) =
1 falls i = j,
0 sonst.
11 / 21
Teilen von Geheimnissen
Lagrange-Interpolation
I
Sind nun a(x1 ), . . . , a(xm ) bekannt, dann kann das Polynom
ã(X ) =
m
X
a(xi )`i (X )
i=1
bestimmt werden.
I
Nach Konstruktion ist ã(xi ) − a(xi ) = 0 für alle
i ∈ {1, . . . , m}. Das Polynom ã(X ) − a(X ) hat also
mindestens m Nullstellen.
I
Der Grad von ã(X ) − a(X ) ist höchstens m − 1.
I
Es folgt ã(X ) − a(X ) = 0 bzw. ã(X ) = a(X ).
12 / 21
Teilen von Geheimnissen
Sicherheit von Shamir’s Secret Sharing
I
Angenommen, es sind nur m − 1 verschiedene Paare
(x1 , a(x1 )), . . . , (xm−1 , a(xm−1 )) bekannt.
I
Sei xm ∈ Fp \ {0, x1 , x2 , . . . , xm−1 } eine weitere feste Stelle.
I
Für alle möglichen Funktionswerte y ∈ Fp liefert die
Lagrange-Interpolation ein Polynom ãy (X ) mit ãy (xi ) = a(xi )
für 1 ≤ i < m und ãy (xm ) = y .
I
Das jeweils zugehörige Geheimnis ist
ãy (0) =
m−1
X
a(xi )`i (0) + y `m (0).
i=1
I
Für y , y 0 ∈ Fp gilt genau dann ãy (0) = ãy 0 (0), wenn y = y 0
(beachte: `m (0) ∈ F∗p ).
I
Alle Geheimnisse sind gleich wahrscheinlich!
13 / 21
Teilen von Geheimnissen
Varianten und Überprüfung
I
Die Firma Ruin Invest hat zwei Direktoren, sieben
Abteilungsleiter und 87 weitere Mitarbeiter. Die wertvolle
Kundendatei wird mit einem geheimen Schlüssel geschützt.
Entwickeln Sie ein Verfahren zur Verteilung der
Schlüsselinformation für die folgenden Gruppen von
Zugangsberechtigungen:
1. Beide Direktoren gemeinsam,
2. mindestens ein Direktor und alle sieben Abteilungsleiter,
3. mindestens ein Direktor, mindestens vier Abteilungsleiter und
mindestens 11 Mitarbeiter.
I
Was passiert, wenn einer der m Teilnehmer sabotiert und
einen fehlerhaften Wert liefert?
I
I
I
Geheimnis falsch und der Saboteur kann nicht enttarnt werden!
m + 1 Teilnehmer können einen Saboteur enttarnen.
Füge Kontrollinformation zu jedem Geheimnisteil hinzu, z.B.
eine digitale Signatur.
14 / 21
Elektronische Verpflichtung
I
Münzwurf am Telefon:
I
I
I
I
Bob: “Kopf oder Zahl?”
Alice: “Kopf!”
Bob: “Leider falsch, die Münze zeigt Zahl.”
Anderes Protokoll:
I
I
I
I
Bob: “Lege dich auf Kopf oder Zahl fest.”
Alice: “Ok, ich habe mich festgelegt.”
Bob: “Die Münze zeigt Zahl.”
Alice: “Ich hatte mich für Kopf entschieden!”
I
Alice möchte sich auf eine Vorhersage festlegen, diese aber
erst später offenlegen.
I
Bob möchte sichergehen, dass Alice ihre Vorhersage nach der
Festlegung nicht mehr ändern kann.
I
Im Folgenden sei b ∈ {0, 1} ein Bit, auf dessen Wert sich
Alice festlegen soll.
15 / 21
Elektronische Verpflichtung
Verpflichtung mit symmetrischer Kryptographie
I
Bob erzeugt eine Zufallszahl x und sendet diesen an Alice.
I
Alice wählt einen zufälligen Schlüssel k. Sie berechnet
y = ck (xb) und sendet das Ergebnis an Bob.
I
Bob hat zu diesem Zeitpunkt ohne Kenntnis von k keine
Möglichkeit, die Vorhersage von Alice zu offenbaren.
I
Später kann Alice jedoch den geheimen Schlüssel k an Bob
schicken und Bob verifiziert über dk (y ) die Vorhersage.
I
Bobs Zufallszahl x stellt sicher, dass Alice später nicht
betrügen kann, indem sie einen falschen Schlüssel k 0 preisgibt.
16 / 21
Elektronische Verpflichtung
Verpflichtung mit Einwegfunktionen
I
Ein alternatives Protokoll beruht auf einer kollisionsresistenten
Einwegfunktion f .
I
Alice generiert zwei Zufallszahlen x1 und x2 . Sie berechnet
anschließend y = f (x1 x2 b) und sendet (y , x1 ) an Bob.
I
Da Bob zu diesem Zeitpunkt x2 nicht kennt, kann er b nicht
bestimmen.
I
Später sendet Alice (x2 , b) an Bob. Dieser verifiziert, ob
tatsächlich y = f (x1 x2 b) gilt.
I
Alice kann ihre Wahl nach der Veröffentlichung von y von b
nicht mehr ändern, ohne ein x10 zu finden, das eine Kollision
f (x10 x2 b 0 ) = f (x1 x2 b) erzeugt.
I
Vorteil: Keine Nachrichten von Bob an Alice.
17 / 21
Beweise ohne Wissensvermittlung
I
Alice und Bob treffen sich in der Mittagspause:
I
I
I
I
Alice: “Ich kenne einen Trick, mit dem man die genaue Masse
eines beliebigen Gegenstands mit bloßem Auge bestimmen
kann.”
Bob: “Kennst du nicht.”
Alice: “Doch!”
Bob: “Dann beweis’ es!”
I
Alice möchte Bob davon überzeugen, dass sie ein Geheimnis
kennt, ohne dieses selbst zu verraten.
I
Lösung: Bob zeigt Alice eine Reihe von Gegenständen. Alice
darf diese nicht anfassen und muss das genaue Gewicht jedes
Gegenstandes nennen. Bob verifiziert Alices Aussagen
anschließend mithilfe einer Waage.
I
Alice könnte schummeln, indem sie die Gewichte alle (richtig)
rät. Bei einer ausreichenden Anzahl an richtigen Angaben
erscheint dies jedoch unwahrscheinlich.
18 / 21
Beweise ohne Wissensvermittlung
Graph-Isomorphie
I
Seien G1 = (V1 , E1 ) und G2 = (V2 , E2 ) Graphen.
I
G1 und G2 heißen isomorph, falls eine bijektive Abbildung
π : V1 → V2 existiert sodass {v , w } ∈ E1 genau dann gilt,
wenn {π(v ), π(w )} ∈ E2 ist.
I
Es ist kein Polynomialzeitalgorithmus für das Testen zweier
Graphen G1 und G2 auf Isomorphie bekannt.
19 / 21
Beweise ohne Wissensvermittlung
Zero-Knowledge-Authentifizierung mithilfe von Graph-Isomorphie
I
Alice erzeugt einen großen Graphen G1 und benennt dessen
Knoten durch eine zufällig gewählte Bijektion π um. Im
Folgenden sei G2 = π(G1 ).
I
Alice veröffentlicht G1 und G2 und behauptet, einen Beweis
dafür zu haben, dass die Graphen isomorph sind.
I
Wenn Bob einen Nachweis haben möchte, dass Alice
tatsächlich einen solchen Beweis kennt, erzeugt Alice eine
weitere Permutation ρ der Knoten von G1 und übermittelt den
resultierenden Graphen H = ρ(G1 ) an Bob.
I
Bob kann von Alice nun entweder einen Nachweis fordern,
dass G1 und H isomorph sind oder dass G2 und H isomorph
sind.
I
Alice antwortet je nach Entscheidung von Bob mit ρ oder mit
ρ ◦ π −1 , ohne dabei π zu verraten.
20 / 21
Beweise ohne Wissensvermittlung
Zero-Knowledge-Authentifizierung mithilfe von Graph-Isomorphie
I
Alice könnte ohne Kenntnis von π tricksen, indem sie H so
konstruiert, dass dieser Graph nur zu G1 oder nur zu G2
isomorph ist.
I
Aber: Bob ertappt sie dabei mit einer Wahrscheinlichkeit von
1/2. Wiederholt man das Protokoll k mal, wird Alice mit einer
Wahrscheinlichkeit von 1 − 2−k ertappt!
I
Da ρ in jedem Schritt zufällig gewählt wurde, hat Bob keine
Information gewonnen, die ihm dabei hilft, die Isomorphie von
G1 und G2 nachzuweisen (anderenfalls könnte er einfach selbst
ρ zufällig wählen und die Konstruktion aus dem Protokoll
nachahmen!)
21 / 21
Herunterladen