Formale Aspekte der Software-Sicherheit und Kryptographie

Werbung
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Das heutige Programm:
Vorlesung “Formale Aspekte der
Software-Sicherheit und Kryptographie”
Wintersemester 2011/12
Universität Duisburg-Essen
Organisatorisches
Vorstellung
Terminabsprache
Ablauf der Vorlesung und der Übungen
Einordnung & Prüfung
Literatur & Folien
Einführung und Motivation: “Formale Aspekte der
Software-Sicherheit und Kryptographie”
Barbara König
Inhalt der Vorlesung
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Vorstellung
Vorlesungstermine
Termine:
Dozentin: Prof. Barbara König
Raum LF 264
Montag, 10:05-11:35, Raum LC 140
E-Mail: barbara [email protected]
Montag, 12:15-13:45, Raum LC 140
Sprechstunde nach Vereinbarung
(Mit einer Mittagspause zwischen beiden Terminen.)
Übungsleitung: Sebastian Küpper
Die Übung findet an dem Termin Mo, 10-12, in zweiwöchigem
Rhythmus im Wechsel mit der Vorlesung statt. Die erste Übung
findet am 24.10. statt.
Web-Seite:
http://www.ti.inf.uni-due.de/teaching/ws201112/ssk/
Barbara König
2
“Form. Asp. der Software-Sicherheit und Kryptographie”
3
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
4
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Übung und Hausaufgaben
Einordnung
Das Übungsblatt wird in der Vorwoche auf der Webseite
bereitgestellt. (Es gibt nur in jeder zweiten Woche ein
Übungsblatt.)
Diese Vorlesung gehört zu folgenden Studiengängen . . .
Die Hausaufgaben werden in der Vorlesung oder zu Beginn
der Übung abgegeben und korrigiert. Es gibt eine
Bonusregelung: der Bonus (eine Notenstufe besser in der
Prüfung, z.B. 1,7 statt 2,0) wird erzielt, wenn
50% der Hausaufgabenpunkte erzielt werden und einmal
vorgerechnet wird
oder eine Aufgabe aus jedem der drei Themengebiete
vorgerechnet wird.
Zitate aus der Prüfungsordnung:
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
DAI – Fachprüfung/Leistungskontrolle in “Informatik der Systeme”
Im Gebiet Informatik der Systeme: Leistungskontrollen über
Lehrveranstaltungen [...] im Umfang von insgesamt 8 SWS.
Die Fachprüfung im Gebiet Informatik der Systeme erstreckt sich
auf Studieninhalte im Umfang von 10 SWS, für die keine
Leistungskontrollen erbracht wurden.
diese Veranstaltung hat 4 SWS.
Barbara König
5
“Form. Asp. der Software-Sicherheit und Kryptographie”
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einordnung
Einordnung
6
Voraussetzungen
Für diese Veranstaltung sollten Sie vorher möglichst die folgenden
Vorlesungen gehört haben:
MAI – Informatik für den Anwendungsbereich
Im Master “Angewandte Informatik” ist diese Veranstaltung
folgendermaßen eingeordnet:
Berechenbarkeit und Komplexität
http://jordan.inf.uni-due.de/teaching/ws1011/beko/
Wahrscheinlichkeitstheorie und Stochastik
Informatik für den Anwendungsbereich
Katalog “Verteilte, Verlässliche Systeme”
(Verlässliche Software)
Logik
http://www.ti.inf.uni-due.de/teaching/ss2011/logik/
Stundenzahl: 4 SWS (3V + 1Ü), 6 Credits
. . . oder äquivalente Veranstaltungen.
Das wird keine Komplexitätstheorie-Veranstaltung, aber wir
benötigen einige Grundlagen aus der Komplexitätstheorie. Gleiches
gilt für die Wahrscheinlichkeitstheorie und Logik. Die Grundlagen
werden auch noch einmal kurz wiederholt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
7
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
8
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Prüfung
Literatur
John Talbot, Dominic Welsh: Complexity and Cryptography –
An Introduction. Cambridge, 2006.
Diese Vorlesung wird mündlich geprüft. Der Prüfungstermin ist
voraussichtlich der 10. Februar.
Christos H. Papadimitriou: Computational Complexity.
Addison Wesley, 1994.
Oded Goldreich: Foundations of Cryptography (Basic Tools).
Cambridge University Press, 2001.
Für Fachprüfungen wird ein gesonderter Termin vereinbart.
Oded Goldreich: Foundations of Cryptography (Basic
Applications). Cambridge University Press, 2004.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie”
9
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 10
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Literatur
Literatur
William Stallings: Cryptography and Network Security:
Principles and Practice. Prentice-Hall, 2003.
Martı́n Abadi: Security Protocols: Principles and Calculi –
Tutorial Notes. FOSAD 2006/07 Tutorial Lectures, Springer,
2007, p. 1-23.
http://users.soe.ucsc.edu/~abadi/Papers/fosad-protocols.pdf
Martı́n Abadi: Security Protocols and their Properties. 20th
International Summer School on Foundations of Secure
Computation, IOS Press, 2000, p. 39-60.
http://users.soe.ucsc.edu/~abadi/Papers/nato.ps
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 11
Bruno Blanchet: Using Horn Clauses for Analyzing Security
Protocols. Formal Models and Techniques for Analyzing
Security Protocols. IOS Press, 2010.
http://www.di.ens.fr/~blanchet/publications/BlanchetBook09.html
Martı́n Abadi and Bruno Blanchet: Analyzing Security
Protocols with Secrecy Types and Logic Programs. Journal of
the ACM, 52(1):102-146, 2005.
http://www.di.ens.fr/~blanchet/publications/
AbadiBlanchetPOPL02.html
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 12
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Folien
Inhalt der Vorlesung
Folien werden
Inhalt
Kryptographie
im Web bereitgestellt und
regelmäßig aktualisiert.
Die Folien werden sehr ähnlich zu den Folien aus dem
Sommersemester 2010 sein (erhältlich über
http://jordan.inf.uni-due.de/teaching/ss2010/ssk/).
Barbara König
Kryptographische Protokolle
Verifikation von kryptographischen Protokollen
“Form. Asp. der Software-Sicherheit und Kryptographie” 13
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 14
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Inhalt der Vorlesung
Inhalt der Vorlesung
Kryptographie ist . . .
die Wissenschaft von der Verschlüsselung von Informationen.
Kryptographie ist inzwischen für sicheren Nachrichtenaustausch
(Online-Bezahlungssysteme, Online-Banking, etc.) unverzichtbar
geworden.
Ein Teil der Informatik ist der Entwurf von sicheren
Verschlüsselungssystemen und die Analyse existierender
Verschlüsselungssysteme. Dabei möchte man möglichst
weitreichende Garantien über deren Sicherheit erhalten.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 15
Kryptographische Protokolle . . .
sind Protokolle, die Nachrichten nach bestimmten – vorher
festgelegten Regeln – austauschen und dabei kryptographische
Verfahren verwenden (hauptsächlich zum Verschlüsseln, aber auch
zum Signieren von Nachrichten).
Solche Protokolle sind sehr fehleranfällig. Beispielsweise sind
zahlreiche falsche Authentifizierungsprotokolle im Umlauf.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 16
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Entschlüsselung
Motivation: Entschlüsselung
Wir beginnen mit einigen motivierenden Beispielen. Als erstes
entschlüsseln wir einen Text, von dem wir wissen, dass er durch
Permutation von Buchstaben verschlüsselt wurde. Ein solches
Verfahren nennt man auch monoalphabetische Verschlüsselung.
Monoalphabetische Verschlüsselung
Sei A die Menge aller 26 Buchstaben des Alphabets und sei
π : A → A eine beliebige bijektive Abbildung.
Dann wird ein Wort m0 . . . mn ∈ A∗ dadurch verschlüsselt, dass
jeder Buchstabe mi durch π(mi ) ersetzt wird.
Wir haben nun einen (längeren) Text abgefangen, der auf diese
Weise entschlüsselt wurde, die Permutation π (= der Schlüssel) ist
jedoch nicht bekannt. Wie kann dieser Text entschlüsselt werden?
DPGASUPF UPQ ZQRTGSIQXTAOP
ZQRTGSIQXTAOEYAP JPQLXAQPF KPQUPF HFGPQGPOVG OF UOP ZVXEEOEYAPF HFU
DSUPQFPF JPQLXAQPF. UOPEP POFGPOVHFI ZSQQPETSFUOPQG OD KPEPFGVOYAPF
DOG UPQ HFGPQGPOVHFI OF ERDDPGQOEYAP HFU XERDDPGQOEYAP JPQLXAQPF.
DPGASUPF UPQ ZVXEEOEYAPF ZQRTGSIQXTAOP: ESVXFIP LHPQ UOP ZQRTGSIQXTAOP
FSYA ZPOFP PVPZGQSFOEYAPF QPYAFPQ POFIPEPGNG KHQUPF, PQEPGNGP DXF CPO
UPQ JPQEYAVHPEEPVHFI (NH UOPEPQ NPOG UOP POFNOIP XFKPFUHFI UPQ
ZQRTGSIQXTAOP) ODDPQ JSVVEGXPFUOIP CHYAEGXCPF SUPQ
CHYAEGXCPFIQHTTPF. ESVYAP JPQLXAQPF EOFU APHGP JPQXVGPG HFU HFEOYAPQ.
[...]
Vollständiger Text unter
http://jordan.inf.uni-due.de/teaching/ss2010/ssk/dateien/krypto-1.txt
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 17
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 18
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Entschlüsselung
Motivation: Entschlüsselung
Ein durch monoalphabetische Verschlüsselung kodierter Text kann
im allgemeinen einfach durch
Wieviele mögliche Schlüssel gibt es? Kann man alle diese
Schlüssel durchprobieren?
Gibt es eine andere Methode, den Text zu entschlüsseln?
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 19
Häufigkeitsanalyse von Buchstaben und
Suche nach bekannten Wörtern
entschlüsselt werden.
Dabei wird insbesondere ausgenutzt, dass “e” der bei weitem
häufigste Buchstabe im Deutschen ist, dass dreibuchstabige
Wörter mit einem “e” in der Mitte im allgemeinen Artikel sind
(der, den, dem, . . . ), usw.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 20
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Entschlüsselung
Motivation: Entschlüsselung
Häufigkeit der Buchstaben im Deutschen:
Eine solche Entschlüsselung ist sehr schön in der Kurzgeschichte
“The Gold Bug” (dt. “Der Goldkäfer”) von Edgar Allan Poe
beschrieben.
In Englisch unter:
http://etext.lib.virginia.edu/toc/modeng/public/PoeGold.html
In Deutsch unter:
http://www.haus-freiheit.de/Poekrimi/goldkaefer.html
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 21
Platz
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Buchstabe
Häufigkeit
E
N
I
S
R
A
T
D
H
U
L
C
G
M
17,40
09,78
07,55
07,27
07,00
06,51
06,15
05,08
04,76
04,35
03,44
03,06
03,01
02,53
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Platz
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Barbara König
Buchstabe
Häufigkeit
O
B
W
F
K
Z
P
V
ß
J
Y
X
Q
02,51
01,89
01,89
01,66
01,21
01,13
00,79
00,67
00,31
00,27
00,04
00,03
00,02
%
%
%
%
%
%
%
%
%
%
%
%
%
“Form. Asp. der Software-Sicherheit und Kryptographie” 22
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Entschlüsselung
Motivation: Schlüsselaustausch
Bemerkungen:
Ein gutes Verschlüsselungsverfahren muss nicht nur sicherstellen,
dass es Fälle gibt, in denen ein Text nicht entschlüsselt werden
kann.
Es muss darüber hinaus garantieren, dass
das Entschlüsseln eines Textes immer schwer ist
und das es auch nicht möglich ist, den Ursprungstext mit
einer bestimmten Wahrscheinlichkeit zu ermitteln.
Dem Entschlüssler stehen randomisierte Verfahren zur Verfügung,
die Wahrscheinlichkeitsverteilungen ausnutzen können. Ein
Kryptosystem muss solchen Angriffen standhalten!
Eine weitere Fallstudie: Schlüsselaustausch
Angenommen, wir haben ein hinreichend sicheres Kryptosystem.
Zwei Partner können sicher miteinander kommunizieren, wenn sie
einen gemeinsamen geheimen Schlüssel vereinbart haben.
Wir betrachten nun ein offenes System mit n Teilnehmern:
Wieviele Schlüssel müssen ausgetauscht werden, damit jeder mit
jedem sicher kommunizieren kann?
Um die Sicherheit eines Kryptosystems zu analysieren, benötigt
man Wahrscheinlichkeitsrechnung.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 23
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 24
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Schlüsselaustausch
Motivation: Schlüsselaustausch
Antwort: es müssen n2 = n(n−1)
Schlüssel ausgetauscht werden!
2
Das ist ein großer Verwaltungsaufwand, selbst wenn man eine
zentrale Stelle zur Schlüsselverteilung hat.
Lösung des Schlüsselaustausch-Problems:
Man verwendet sogenannte asymmetrische
Verschlüsselungsverfahren. Dabei gibt es Schlüsselpaare bestehend
aus
einem öffentlichen Schlüssel, der nur zur Verschlüsselung,
jedoch nicht zur Entschlüsselung verwendet werden kann
und einem privaten Schlüssel, der zum Entschlüsseln dient.
Jeder Teilnehmer erzeugt sein eigenes Schlüsselpaar und gibt nur
den öffentlichen Schlüssel bekannt. Demnach werden nur n
Schlüsselpaare benötigt. Außerdem können die öffentlichen
Schlüssel ohne Bedenken über das Netz verschickt werden, ohne
dass die Kommunikationspartner sich persönlich treffen müssen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 25
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 26
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Schlüsselaustausch
Motivation: Schlüsselaustausch
Analogie:
Die Geheimnisse werden in Kisten verschickt, die mit einem
Schloss verschlossen werden können.
Jeder Partner hat seinen eigenen (privaten) Schlüssel und eine
unbegrenzte Anzahl dazu passender Schlösser. Die Schlösser
entsprechen den öffentlichen Schlüsseln.
Die Schlösser können beliebig an die Kommunikationspartner
verteilt werden und dienen dazu, die Kisten vor dem
Versenden zu verschließen.
Verschlüsselungsverfahren, die auf dem Prinzip von privaten und
öffentlichen Schlüsseln beruhen, nennt man asymmetrisch.
Bei klassischen symmetrischen Verfahren teilen sich jeweils zwei
Partner einen Schlüssel. In der Analogie bedeutet das, dass die
beiden Kommunikationspartner jeweils eine Kopie desselben
Schlüssels haben. Die Kopien müssen jedoch zunächst
ausgetauscht werden!
Das ist System ist sicher, wenn man durch den Besitz eines
Schlosses nicht herausfinden kann, wie der dazugehörige
Schlüssel aussieht.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 27
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 28
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
Eine wichtiges (Teil-)Problem bei Protokollen ist es, einen
Nachweis zu führen, dass der entsprechende
Kommunikationspartner auch derjenige ist, für den er sich ausgibt.
Die Führung dieses Nachweises nennt man Authentifizierung.
Szenario: es gibt zwei Kommunikationspartner Alice und Bob.
Außerdem gibt es den bösartigen Eindringling Eve, die alle
Nachrichten abfangen kann und neue Nachrichten produzieren
kann. Sie kann jedoch keine Nachrichten entschlüsseln, wenn sie
den passenden Schlüssel nicht besitzt. Eve möchte sich Alice
gegenüber als Bob ausgeben (und sie dazu überreden, ihr
1.000 EUR zu überweisen . . . )
Barbara König
Angenommen, die Parteien benutzen eine Variante des
Needham-Schroeder-Protokolls.
Dabei wird symmetrische Verschlüsselung eingesetzt und der
Schlüsselaustausch findet über einen Server statt. (Es gibt auch
eine asymmetrische Variante.)
Das Protokoll benutzt sogenannte Nonces:
Nonce (number used once)
Zufällige Zahlen oder Bit-Kombinationen, die nur einmal
verwendet werden und die garantieren sollen, dass eine Nachricht
frisch und neu erzeugt ist. Sie sollen verhindern, dass eine alte
Nachricht als Replay geschickt wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 29
“Form. Asp. der Software-Sicherheit und Kryptographie” 30
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
Needham-Schroeder-Protokoll (fehlerhaft)
Konventionen:
Ein symmetrischer Schlüssel der Form KAB wird für die
Verschlüsselung von Nachrichten zwischen A und B verwendet.
1
A → S:
A, B, NA
2
S → A:
{NA , KAB , {KAB , A}KBS }KAS
Mit {M}K bezeichnen wir eine Nachricht M, die mit dem Schlüssel
K verschlüsselt ist. Nur derjenige, der K besitzt, kann die
Nachricht M lesen.
3
A → B:
{KAB , A}KBS
4
B → A:
{NB }KAB
5
A → B:
{NB − 1}KAB
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 31
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 32
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
Graphische Darstellung:
Erläuterung der einzelnen Schritte:
S
1. A, B, NA
2. {NA, KAB , {KAB , A}KBS }KAS
3. {KAB , A}KBS
A
4. {NB }KAB
B
1. A → S:
A, B, NA
Alice fordert beim (vertrauenswürdigen) Server einen
Sitzungsschlüssel für die Kommunikation mit Bob an. Sie schickt
einen Nonce NA mit, um sicherzugehen, dass die Antwort sich
wirklich auf ihre Anforderung bezieht. Diese Nachricht ist
unverschlüsselt.
5. {NB − 1}KAB
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 33
“Form. Asp. der Software-Sicherheit und Kryptographie” 34
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
2. S → A:
{NA , KAB , {KAB , A}KBS }KAS
Der Server schickt den Sitzungsschlüssel KAB an Alice. Dieser wird
mit Hilfe von KAS (dem gemeinsamen Schlüssel von Alice und dem
Server) verschlüsselt. Der Server fügt auch den Nonce NA hinzu,
um Alice gegenüber zu beweisen, dass die Nachricht die Antwort
auf Alice’ Anfrage war.
Des weiteren wird eine für Bob bestimmte Nachricht mitgeschickt:
{KAB , A}KBS . Damit wird Bob mitgeteilt, wie der Sitzungsschlüssel
lautet und wer (A = Alice) mit ihm kommunizieren will.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 35
3. A → B:
{KAB , A}KBS
Alice entschlüsselt die Nachricht des Servers und schickt die
enthaltene Nachricht {KAB , A}KBS an Bob weiter. Sie selbst kann
mit diesem Teil der Nachricht nichts anfangen, nur Bob kann sie
entschlüsseln.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 36
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
4. B → A:
{NB }KAB
Bob entschlüsselt die erhaltene Nachricht und stellt fest, dass Alice
mit ihm kommunizieren möchte. Außerdem erhält er dadurch den
Sitzungsschlüssel KAB . Da Bob dem Server vertraut, kann er davon
ausgehen, dass der Sitzungsschlüssel KAB ansonsten nur Alice
mitgeteilt wurde.
Er möchte jetzt jedoch noch testen, ob sein
Kommunikationspartner tatsächlich Alice ist. Dazu generiert er
eine “Testnachricht”, die den Nonce NB enthält und mit KAB
verschlüsselt ist.
Barbara König
5. A → B:
{NB − 1}KAB
Alice weist sich Bob gegenüber aus, indem sie die Nachricht
entschlüsselt und den Nonce um eins dekrementiert. Damit kann
Bob feststellen, dass sein Gegenüber den entsprechenden Schlüssel
besitzt und daher Alice ist.
Leider ist das Protokoll so fehlerhaft und kann von Eve angegriffen
werden. Warum?
“Form. Asp. der Software-Sicherheit und Kryptographie” 37
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 38
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
Szenario: Alice möchte eine Verbindung mit Bob aufbauen. Eve
hört mit und fängt geeignete Nachrichten ab bzw. modifiziert sie.
Damit gelingt es ihr, sich Alice gegenüber als Bob auszugeben.
Angriff
1
2
3
4
5
A → S:
A, B, NA
E ersetzt diese Nachricht durch: A, E , NA
S → A:
{NA , KAE , {KAE , A}KES }KAS
A → B:
{KAE , A}KES
Eve fängt diese Nachricht ab und erhält damit den
Sitzungsschlüssel KAE .
E → A:
{NB }KAE
A → B:
{NB − 1}KAE
Eve fängt auch diese Nachricht ab. Alice ist jetzt überzeugt
mit Bob zu kommunizieren, spricht aber mit Eve!
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 39
Das Problem kann unter anderem dadurch gelöst werden, indem
der Server in die zweite Nachricht den Namen des
Kommunikationspartners (B = Bob) einfügt:
Needham-Schroeder-Protokoll
1 A → S:
A, B, NA
2
S → A:
{NA , B, KAB , {KAB , A}KBS }KAS
3
A → B:
{KAB , A}KBS
4
B → A:
{NB }KAB
5
A → B:
{NB − 1}KAB
Damit erkennt Alice, wenn sie die Nachricht
{NA , E , KAE , {KAE , A}KES }KAS erhält, dass dies die falsche
Nachricht sein muss.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 40
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Authentifizierungs-Protokolle
Motivation: Authentifizierungs-Protokolle
Die fehlerhafte Variante des Needham-Schroeder-Protokolls, wie
wir sie betrachtet haben, wurde so nie benutzt.
Im Netzwerkauthentifizierungsprotokoll Kerberos wurde jedoch das
Needham-Schroeder-Protokoll mit asymmetrischer Verschlüsselung
verwendet, das einen ähnlichen Fehler enthielt. (Die Variante mit
asymmetrischer Verschlüsselung ist etwas komplizierter, daher
betrachten wir sie im Moment nicht.)
Dieser Fehler wurde erst im Jahr 1995 – 17 Jahre nach der
Entwicklung des Protokolls – entdeckt!
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 41
Ein anderes Problem besteht darin, dass Eve die dritte Nachricht
später wieder einspielen kann. Falls Eve bis dahin in den Besitz von
KAB gekommen ist, kann sie sich diesmal für Alice ausgeben.
Lösung: Zeitstempel in der dritten Nachricht
Solche Angriffe nennt man man-in-the-middle attacks.
Ähnliche Probleme gibt es auch bei der sogenannten SMB
reflection attack und bei vielen anderen bekannten Angriffen auf
Sicherheitsprotokolle. (SMB = Server Message Block: Protokoll
zum Sharing von Dateien, Druckern, etc. in einem Netwerk; wird
vor allem unter Windows benutzt).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 42
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Informationssicherheit
Motivation: Informationssicherheit
Bei Informationssicherheit sind unter anderem folgende Aspekte
relevant:
Mit der zunehmenden Vernetzung von Computern wird die
Informationssicherheit immer wichtiger. Daten müssen gegenüber
Dritten, d.h., vor möglichen Angreifern geschützt werden.
Im Englischen: security (im Gegensatz zum allgemeineren Begriff
safety, der sich auf die Abwesenheit von Fehlern oder den Schutz
vor Fehlern in der Software bezieht).
Vertraulichkeit
Daten dürfen lediglich von autorisierten Benutzern gelesen bzw.
modifiziert werden, dies gilt sowohl beim Zugriff auf gespeicherte
Daten wie auch während der Datenübertragung.
Integrität
Daten dürfen nicht unbemerkt verändert werden, bzw. es müssen
alle Änderungen nachvollziehbar sein.
Authentizität/Authentifizierung
Echtheit und Glaubwürdigkeit einer Person oder eines Dienstes
müssen überprüfbar sein.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 43
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 44
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Motivation: Informationssicherheit
Motivation: Informationssicherheit
Zurechenbarkeit (engl. accountability)
Eine durchgeführte Handlung kann einem Kommunikationspartner
eindeutig zugeordnet werden.
Verbindlichkeit/Nichtabstreitbarkeit (engl. non-repudiation)
Verbindlichkeit erfordert, dass kein unzulässiges Abstreiten
durchgeführter Handlungen möglich ist. Sie ist unter anderem
wichtig beim elektronischen Abschluss von Verträgen und kann
durch digitale Signaturen erreicht werden.
Barbara König
Einige der oben genannte Ziele kann man durch den Einsatz von
Verschlüsselungsverfahren erreichen.
Wie wir am Beispiel des Needham-Schroeder-Protokolls gesehen
haben, ist es aber auch sehr wichtig, dass nicht nur die
kryptographischen Verfahren, sondern auch die eingesetzten
Protokolle korrekt und nicht angreifbar sind.
In beiden Fällen ist es wichtig zu definieren, was es überhaupt
bedeutet, ein Verschlüsselungsverfahren oder Protokoll erfolgreich
anzugreifen und zu analysieren, dass die eingesetzten Verfahren
korrekt sind.
“Form. Asp. der Software-Sicherheit und Kryptographie” 45
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 46
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Inhalt der Vorlesung
Inhalt der Vorlesung
Kyptographische Protokolle
Digitale Unterschriften
Kyptographie
Grundlagen der Kryptographie
Spezielle Verschlüsselungsverfahren (historische
Verschlüsselungsverfahren, One-Time-Pad, Blockchiffre
DES/AES, RSA)
Bedingungen an die Sicherheit von Kryptosystemen
(randomisierte Komplexitätsklassen, Einwegfunktionen,
Falltür-Funktionen)
Zero-Knowledge-Proofs: Wie überzeuge ich meinen Partner
davon, dass ich ein Geheimnis kenne, ohne das Geheimnis zu
verraten?
Secure Multi-Party Computations: Gemeinsame Berechnung
eines Ergebnisses durch mehrere Teilnehmer, ohne dass die
einzelnen Parameter bekanntgegeben werden müssen.
Verifikation von kyptographischen Protokollen
Eindringlingsmodell nach Dolev-Yao
Sicherheitslücken in kryptographischen Protokollen
Verifikation kryptographischer Protokolle (mit
Prozesskalkülen, Resolution, Model-Checking)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 47
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 48
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Ver- und Entschlüsselung
Ver- und Entschlüsselung
Wir beschreiben jetzt formal, was es bedeutet, eine Nachricht zu
verschlüsseln und zu entschlüsseln.
Komponenten eines Kryptosystems (Definition)
M: eine Menge von möglichen Nachrichten
Hinweis: E steht für “encryption” und D für “decryption”.
CM: eine Menge von verschlüsselten Nachrichten
Sei (e, d) ∈ K ein Schlüsselpaar. Die Ver- und
Entschlüsselungsfunktionen müssen folgende Eigenschaft haben:
Ke : eine Menge von Schlüsseln, die zum Verschlüsseln
verwendet werden
Kd : eine Menge von Schlüsseln, die zum Entschlüsseln
verwendet werden
Für alle m ∈ M gilt D(E (m, e), d) = m.
K ⊆ Ke × Kd : eine Menge von gültigen Schlüsselpaaren
Eine Verschlüsselungsfunktion E : M × Ke → CM
Eine Entschlüsselungsfunktion D : CM × Kd → M
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 49
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 50
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Ver- und Entschlüsselung
Ver- und Entschlüsselung
Symmetrisches Kryptosystem
Bei einem symmetrischen Kryptosystem gilt Ke = Kd und für ein
(e, d) ∈ K gilt immer e = d. D.h., es wird derselbe Schlüssel zum
Ver- und Entschlüsseln benutzt.
Sowohl Alice, als auch Bob müssen zur Kommunikation diesen
Schlüssel kennen.
(e, e)
Alice
Barbara König
(e, e)
Asymmetrisches Kryptosystem
Bei einem asymmetrischen Kryptosystem gilt für ein (e, d) ∈ K
normalerweise e 6= d. D.h., es werden verschiedene Schlüssel zum
Ver- und Entschlüsseln benutzt.
Wenn Alice eine Nachricht an Bob schickt, dann reicht es aus,
wenn Alice e kennt. Dieser Schlüssel wird auch der öffentliche
Schlüssel von Bob genannt. Daneben kennt Bob noch seinen
privaten Schlüssel d.
e
(e, d )
Alice
Bob
Bob
“Form. Asp. der Software-Sicherheit und Kryptographie” 51
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 52
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Ver- und Entschlüsselung
Historische Verschlüsselungsverfahren
Sicherheitsaspekte: die bisherigen Definitionen sagen nichts über
die Sicherheit der Kryptosysteme.
Im Fall der symmetrischen Verschlüsselung sollte es einfach sein, m
aus E (m, e) zu bestimmen, wenn man d = e kennt. Ohne Kenntnis
des Schlüssels sollte die Bestimmung von m schwierig sein.
Ebenso sollte es im Fall des asymmetrischen Verschlüsselung
einfach sein, m aus E (m, e) zu bestimmen, wenn man d kennt. Die
Bestimmung von m sollte jedoch schwierig sein, wenn man nur e
kennt.
Wir werden im weiteren Verlauf der Vorlesung klären, was genau
mit “schwierig” gemeint ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 53
Wir betrachten zunächst einige einfache symmetrische
Verschlüsselungsverfahren.
Caesar-Verschlüsselung
Bei der Caesar-Verschlüsselung (nach Julius Caesar) wird jeder
Buchstabe durch den Buchstaben ersetzt, der drei Stellen weiter
im Alphabet vorkommt. (Statt drei kann auch ein anderer
Zahlenwert verwendet.)
Beispiel: aus “CAESAR” wird “FDHVDU”
Spezialfall der monoalphabetische Verschlüsselung, der durch
Häufigkeitsanalyse sehr leicht entschlüsselt werden kann.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 54
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Historische Verschlüsselungsverfahren
Historische Verschlüsselungsverfahren
Vigenère-Verschlüsselung
Monoalphabetische Verschlüsselung
Gegeben ist eine Permutation π : A → A des Alphabetes und jeder
Buchstabe a der Nachricht wird durch sein Bild π(a) ersetzt.
(Siehe Beispiel im Einführungsteil.)
Auch die monoalphabetische Verschlüsselung kann durch
Häufigkeitsanalysen einfach entschlüsselt werden.
Bei der Vigenère-Verschlüsselung (nach Blaise de Vigenère, 16.
Jhdt.) wird ein Schlüssel e = e0 . . . em−1 ∈ A∗ über dem Alphabet
gegeben. Eine Abbildung z : A → N0 ordnet jedem Buchstaben
einen Zahlenwert zu (z(A) = 0, . . . , z(Z) = 25).
Dann werden die Buchstaben des zu verschlüsselnden Textes
m = m0 . . . mn ∈ A∗ der Reihe nach verschlüsselt, indem der
Zahlenwert des jeweils nächsten Buchstabens des Schlüssels
addiert und und das Ergebnis modulo 26 genommen wird.
Insbesondere gilt für den verschlüsselten Text c = c0 . . . cn ∈ A∗ ,
dass
ci = z −1 ((z(mi ) + z(ei mod m )) mod 26)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 55
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 56
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Historische Verschlüsselungsverfahren
Historische Verschlüsselungsverfahren
Bei der Vigenère-Verschlüsselung nützt eine Häufigkeitsanalyse
über den gesamten Text wenig.
Entschlüssselungsverfahren:
Beispiel: e = CAESAR, wobei z(C) = 2, z(A) = 0, z(E) = 4,
z(S) = 19, z(R) = 18
Zunächst muss die Länge des Schlüssels e ermittelt werden.
Das kann man machen, indem man verschiedene Längen k
ausprobiert und die Häufigkeitsverteilung der Buchstaben
ermittelt, deren Stelle kongruent zu einem festen i modulo k
ist.
Manchmal kann die Länge auch durch das periodische
Auftreten bestimmter Zeichenfolgen im Text bestimmt
werden.
DASISTDERGEHEIMTEXT
+ CAESARCAESARCAESARC
FAWBSLFEVZEZGIQMEPV
Sobald die Länge k gefunden wurde, kann dann der Schlüssel,
Stelle für Stelle, mit Hilfe der Häufigkeitsanalyse ermittelt
werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 57
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 58
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Historische Verschlüsselungsverfahren
Historische Verschlüsselungsverfahren
Ein besonderer Fall ergibt sich jedoch, wenn der Schlüssel genau so
lang ist wie der zu verschlüsselnde Text.
One-Time-Pad
Beim One-Time-Pad wird ein Text mit einem zufällig gewähltem
Schlüssel gleicher Länge verknüpft.
Die Verknüpfung kann wie beim Vigenère-Schlüssel passieren.
Alternativ können auch zwei Bitstrings durch ⊕ (xor) verknüpft
werden.
Voraussetzungen:
der Einmalschlüssel muss geheim bleiben,
der Einmalschlüssel muss zufällig gewählt sein und
der Einmalschlüssel darf nur einmal verwendet werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 59
Der One-Time-Pad wurde so von Geheimdiensten im
20. Jahrhundert verwendet. Dabei wurde zunächst der Schlüssel
ausgetauscht, beispielsweise kann er auf Papier oder in digitaler
Form einem Agenten mitgegeben werden.
Claude Shannon hat gezeigt, dass der One-Time-Pad
informationstheoretisch sicher ist und damit ein perfektes
Verschlüsselungsverfahren darstellt. Insbesondere hat er gezeigt,
dass
Die Kenntnis des verschlüsselten Textes keine
zusätzlichen Informationen über den Inhalt der Nachricht
liefert.
bzw.
Jeder Nachrichteninhalt hat die gleiche
Wahrscheinlichkeit, unabhängig davon, ob man den
verschlüsselten Text kennt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 60
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitrechnung
Wahrscheinlichkeitsrechnung
Um dieses (nicht sehr schwierige) Ergebnis formalisieren und
beweisen zu können, benötigt man (diskrete)
Wahrscheinlichkeitstheorie.
Wahrscheinlichkeitsraum (Definition)
Ein Wahrscheinlichkeitsraum besteht aus
einer Ergebnismenge Ω, bestehend aus den
Elementarereignissen, und
einer Funktion P : Ω → R, die jedem Elementarereignis eine
Wahrscheinlichkeit zuordnet.
Dabei muss gelten:
Für jedes x ∈ Ω gilt 0 ≤ P(x) ≤ 1. (Die Wahrscheinlichkeit
für ein Elementarereignis liegt zwischen 0 und 1.)
P
P(x) = 1. (Die Summe aller Wahrscheinlichkeiten ist 1.)
Falls Ω endlich ist und alle Elementarereignisse in Ω gleich
wahrscheinlich sind, so gilt
P(x) =
1
|Ω|
für jedes x ∈ Ω
Beispiel: Würfeln mit einem fairen Würfel. Dann gilt
Ω = {1, 2, 3, 4, 5, 6} und P(x) = 16 für alle x ∈ Ω.
Diese Annahme, dass alle Elementarereignisse gleich wahrscheinlich
sind, gilt jedoch nicht immer. (Beispiel: manipulierter Würfel)
x∈Ω
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 61
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 62
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Das Würfeln einer 1 oder 6 bezeichnet man als
(zusammengesetztes) Ereignis, im Unterschied zu
Elementarereignissen.
Ereignis, Wahrscheinlichkeit eines Ereignisses (Definition)
Wir betrachten einen Wahrscheinlichkeitsraum, bestehend aus Ω
und P : Ω → R. Eine Menge E ⊆ Ω heißt Ereignis. Die
Wahrscheinlichkeit des Ereignisses E wird folgendermaßen
berechnet:
X
P(x)
P(E ) =
x∈E
Rechnen mit Wahrscheinlichkeiten (Satz)
Seien A, B ⊆ Ω Ereignisse:
P(Ω\A) = 1 − P(A)
P(A ∪ B) = P(A) + P(B) − P(A ∩ B)
P(∅) = 0
Beispiel: Ereignis E = {1, 6} mit
P(E ) = P({1, 6}) = P(1) + P(6) =
Barbara König
Bemerkung: Für unsere Zwecke können wir alle Teilmengen von Ω
als Ereignisse ansehen. Im allgemeinen Fall (insb. für nicht-diskrete
Wahrscheinlichkeitsräume) beschränkt man sich auf die Ereignisse,
die Elemente einer Ereignisalgebra (oder σ-Algebra) sind.
1 1
1
+ =
6 6
3
“Form. Asp. der Software-Sicherheit und Kryptographie” 63
Insbesondere folgt daraus P(A ∪ B) = P(A) + P(B), falls
A ∩ B = ∅, d.h., falls A und B disjunkte Ereignisse sind.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 64
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Unabhängigkeit von Ereignissen (Definition)
Zwei Ereignisse A, B ⊆ Ω heißen unabhängig, falls gilt:
P(A ∩ B) = P(A) · P(B)
Beispiel Würfel:
Die Ereignisse {1, 3, 5} (Ergebnis ist ungerade) und {2, 4, 6}
(Ergebnis ist gerade) sind nicht unabhängig. Es gilt:
1 1
1
P(A ∩ B) = P(∅) = 0 6= = · = P(A) · P(B)
4
2 2
Die Ereignisse {1, 3, 5} (Ergebnis ist ungerade) und {1, 2, 3, 4}
(Ergebnis ist kleiner gleich vier) sind unabhängig. Es gilt:
1
1 2
P(A ∩ B) = P({1, 3}) = = · = P(A) · P(B)
3
2 3
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 65
Bedingte Wahrscheinlichkeit (Definition)
Die bedingte Wahrscheinlichkeit ist definiert durch
P(A | B) =
P(A ∩ B)
,
P(B)
falls P(B) 6= 0.
Die Wahrscheinlichkeit P(A | B) ist intuitiv die Wahrscheinlichkeit,
dass das Ereignis A eintritt, unter der Bedingung, dass man bereits
weiß, dass das Ereignis B eintritt.
Sprechweise: Wahrscheinlichkeit von A, vorausgesetzt B.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 66
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Beispiel Würfel: A = {1, 3, 5} (Ergebnis ist ungerade) und
B = {1, 2, 3} (Ergebnis ist kleiner gleich drei).
Dann gilt:
P(A | B) =
P({1, 3})
2
P(A ∩ B)
=
=
P(B)
P({1, 2, 3})
3
Unabhängigkeit und bedingte Wahrscheinlichkeit (Satz)
Zwei (nicht-leere) Ereignisse A, B sind unabhängig genau dann,
wenn:
P(A | B) = P(A) und P(B | A) = P(B)
D.h., die Kenntnis, dass das Ereignis B eintreten wird, ändert die
Wahrscheinlichkeit von A nicht.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 67
Zufallsvariable (Definition)
Eine Zufallsvariable ist eine Abbildung X : Ω → S.
Sei y ∈ S. Man definiert:
P(X (ω) = y ) = P({ω ∈ Ω | X (ω) = y })
Analog werden P(X (ω) ≤ y ), P(X (ω) ≥ y ), P(X (ω) ∈ R) (für
R ⊆ S), etc. definiert. (Im ersten und zweiten Fall muss eine
partielle Ordnung ≤ auf S definiert sein.)
Bemerkungen:
Trotz des Namens hat eine Zufallsvariable mit einer Variablen
relativ wenig zu tun. Es handelt sich einfach um eine Funktion.
Manchmal schreibt man statt P(X (ω) = y ) einfach nur
P(X = y ).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 68
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Sei S eine endliche Menge. Eine Zufallsvariable X : Ω → S heißt
gleichverteilt, falls
P(X (ω) = s) =
1
|S|
für alle s ∈ S
E (m, e) = m ⊕ e
Bemerkungen:
Die Ereignismenge Ω muss hier nicht notwendigerweise
endlich sein.
Es gibt noch weitere (diskrete)
Wahrscheinlichkeitsverteilungen: geometrische Verteilung,
Binomialverteilung, Poisson-Verteilung
Barbara König
Wir wenden nun die Wahrscheinlichkeitstheorie auf den
One-Time-Pad an. Wir nehmen an, dass M = {0, 1}n (= Menge
der Nachrichten) eine Menge von Bitstrings der Länge n ist.
Genauso ist Ke = Kd = {0, 1}n und
“Form. Asp. der Software-Sicherheit und Kryptographie” 69
D(c, d) = c ⊕ d
Die Menge der Elementarereignisse Ω sieht wie folgt aus:
Ω = M × Ke = {0, 1}n × {0, 1}n
D.h. Elementarereignisse sind Paare von Nachrichten und
Schlüsseln. Die Nachrichten sind nicht alle gleich wahrscheinlich,
für die Schlüssel gilt dies jedoch.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 70
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Nach Shannon muss ein perfektes Kryptosystem folgende
Eigenschaft erfüllen:
Wir betrachten folgende Zufallsvariable:
msg : Ω → M, msg (m, e) = m
(Projektion auf die erste Komponente)
E : Ω → CM
(die bereits vorher definierte Verschlüsselungsfunktion)
Wir setzen pm = P(msg = m) (die Wahrscheinlichkeit dafür, dass
Nachricht m verschickt wird).
Perfektes Kryptosystem
Die Wahrscheinlichkeit, dass eine Nachricht m geschickt wird, ist
gleich der bedingten Wahrscheinlichkeit, dass m geschickt wird,
vorausgesetzt dass die Kodierung c bekannt ist.
Für den One-Time-Pad bedeutet das für feste m, c ∈ {0, 1}n :
P(msg = m | E = c) = P(msg = m)
(∗)
Oder (etwas informeller):
P(m wurde geschickt | c wurde empfangen) = P(m wurde geschickt)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 71
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 72
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Beweis: Wir zeigen nun, dass der One-Time-Pad die
Eigenschaft (*) erfüllt.
Es gilt, dass
P(msg = m | E = c) =
P(msg = m ∧ E = c)
P(E = c)
Es gilt:
P(msg = m ∧ E = c) = P({(m, e 0 ) | e 0 ∈ Ke , E (m, e 0 ) = c}). Es
kann nur einen Schlüssel e 0 = c ⊕ m geben, der m zu c
verschlüsselt. Also handelt es sich bei der Menge um ein
Elementarereignis und es gilt:
P({(m, c ⊕ m)}) = pm ·
1
2n
Die letzte Beziehung gilt, da m und der Schlüssel unabhängig
voneinander gewählt werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 73
Außerdem gilt:
P(E = c) =
X
P(msg = m0 ∧ E = c)
m0 ∈M
=
X
pm0 ·
m0 ∈M
1
1 X
1
1
0 =
p
=
·
·
1
=
m
2n
2n
2n
2n
0
m ∈M
Zusammengefasst:
P(msg = m | c wurde empfangen) =
pm ·
1
2n
1
2n
= pm = P(msg = m)
und damit ist der One-Time-Pad ein perfektes Kryptosystem.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 74
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
Wir betrachten nun moderne symmetrische
Verschlüsselungsverfahren.
(e, e)
(e, e)
Alice
Bob
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 75
Die zwei wichtigsten symmetrischen Verschlüsselungsverfahren
sind:
DES (Data Encryption Standard): war ab 1976 lange Zeit der
de-facto-Standard für symmetrische Verschlüsselungsverfahren
und wird immer noch in großem Maßstab eingesetzt.
Allerdings ist die Schlüssellänge (56 Bit) heute zu kurz und
nur noch die Variante Triple DES gilt als sicher.
AES (Advanced Encryption Standard): 2002 wurde bei einem
Wettbewerb des US-amerikanischen NIST (National Institute
of Standards and Technology) das Kryptosystem Rijndael als
Nachfolger für DES ausgewählt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 76
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
Sowohl DES als auch AES sind Blockchiffre, die nach folgendem
Prinzip funktionieren:
Eine Nachricht wird in Blöcke der Länge n (typischerweise
n = 128, 192, 256) aufgespalten und jeder Block wird einzeln
verschlüsselt. Wir können also im folgenden davon ausgehen,
dass M = {0, 1}n
Die Verschlüsselungsfunktion E : {0, 1}n × {0, 1}m → {0, 1}n wird
wie folgt realisiert: eine Nachricht m ∈ {0, 1}n wird mit einem
Schlüssel e ∈ {0, 1}m in k Runden verschlüsselt. Zu Beginn gilt
m0 = m, man bestimmt mi+1 durch
Es gibt einen symmetrischen Schlüssel der Länge m
(typischerweise m = 128, 256). D.h., Ke = Kd = {0, 1}m .
Ein Block der Länge n wird durch die Verschlüsselung wieder
zu einem Block der Länge n, d.h., CM = {0, 1}n .
mi+1 = Ei (mi , ei ),
wobei ei der Schlüssel der i-ten Runde ist. Der Rundenschlüssel ei
wird mit Hilfe eines festgelegten Verfahrens aus e berechnet.
Aus der gleichen Länge von Nachricht und verschlüsseltem Text
kann man schließen, dass die Verschlüsselungsfunktion für einen
festen Schlüssel bijektiv sein muss.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 77
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 78
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
Bemerkungen:
Die Verschlüsselungsfunktion Ei wird durch Aneinanderreihung
verschiedener Transformationen berechnet, wobei eine
Transformation folgendes sein kann:
xor-Verknüpfung des zu verschlüsselnden Textes mit dem
Rundenschlüssel
Jedes Byte der Nachricht wird durch ein anderes Byte
substituiert (diese Substitionen werden in sogenannten
S-Boxen tabelliert).
Die Bytes der Nachricht werden (spalten- oder zeilenweise)
permutiert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 79
Ähnliche Operationen wie sie zur Verschlüsselung einer
Nachricht verwendet werden, können auch dazu benutzt
werden, die Rundenschlüssel aus dem Schlüssel (bzw. aus
Teilen der bisher verschlüsselten Nachricht) zu gewinnen.
Bei AES stellt man sich ein Byte auch als Polynom über dem
zweielementigen Körper, bestehend aus den Elementen {0, 1},
vor. D.h.
b7 b6 . . . b0 ∈ {0, 1}8 entspricht
b7 x 7 + b6 x 6 + · · · + b0
Dann kann xor durch Addition solcher Polynom und S-Boxen
durch Bildung des multiplikativen Inversen (bezüglich
Multiplikation modulo eines irreduziblen Polynoms m(x)),
gefolgt von einer affinen Transformation, beschrieben werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 80
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
S-Box bei AES (Teil 2)
AES benutzt genau eine S-Box, die folgendermaßen funktioniert:
S-Box bei AES (Teil 1)
Fasse das zu substituierende Byte als Polynom p(x) vom
Grad 7 über dem Körper {0, 1} auf.
Bestimme das Inverse q(x) von p(x) modulo
m(x) = x 8 + x 4 + x 3 + x + 1.
D.h., es muss p(x) · q(x) mod m(x) = 1 gelten.
Barbara König
Angenommen q(x) = c7 x 7 + c6 x 6 + · · · + c0 . Dann bestimme
das Ergebnis-Byte d7 d6 . . . d0 durch folgende affine
Transformation:
  
    
d0
1 0 0 0 1 1 1 1
c0
1
d1  1 1 0 0 0 1 1 1 c1  1
  
    
d2  1 1 1 0 0 0 1 1 c2  0
  
    
d3  1 1 1 1 0 0 0 1 c3  0
 =
    
d4  1 1 1 1 1 0 0 0 · c4  + 0
  
    
d5  0 1 1 1 1 1 0 0 c5  1
  
    
d6  0 0 1 1 1 1 1 0 c6  1
d7
0 0 0 1 1 1 1 1
c7
0
“Form. Asp. der Software-Sicherheit und Kryptographie” 81
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 82
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
Beispiel:
Zu substituierendes Byte: 00110011, entspricht x 5 + x 4 + x + 1
Inverses: 01101100, entspricht x 6 + x 5 + x 3 + x 2
Test: (x 5 + x 4 + x + 1) · (x 6 + x 5 + x 3 + x 2 ) = x 11 + x 10 + x 8 +
x 7 + x 10 + x 9 + x 7 + x 6 + x 7 + x 6 + x 4 + x 3 + x 6 + x 5 + x 3 + x 2 =
x 11 + x 9 + x 8 + x 7 + x 6 + x 5 + x 4 + x 2
x 11 +x 9 +x 8 +x 7 +x 6 +x 5 +x 4
+x 2
÷ x8 + x4 + x3 + x + 1
11
7
6
4
3
x
+x +x
+x +x
= x3 + x + 1
x 9 +x 8
+x 5
+x 3 +x 2 +x
Rest: 1
9
5
4
2
x
+x +x
+x +x
8
4
3
x
+x +x
+x
8
4
3
x
+x +x
+x+1
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 83
Affine Transformation:

1
1

1

1

1

0

0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
      
1
0
1
1






1 0 1 1

1 0 0
1
      
     
1
 · 1 + 0 = 0
     
0
 0 0 0
     
0
 1 1 0

1 1 1
0
1
0
0
1
Ergebnis: 11000011 (Vektoren werden von unten nach oben
gelesen!)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 84
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Symmetrische Verschlüsselung: DES und AES
Symmetrische Verschlüsselung: DES und AES
Kriterien bei symmetrischen Verschlüsselungsverfahren (informell):
Bemerkungen:
Das Inverse zu einem Polynom kann mit Hilfe des euklidischen
Algorithmus berechnet werden. (Dazu später mehr bei RSA.)
Zur Entschlüsselung gibt es eine inverse S-Box, die dazu da
ist, die Substitution wieder rückgängig zu machen.
Die gesamte S-Box ist tabelliert. Siehe
http://en.wikipedia.org/wiki/Rijndael S-box.
D.h., in der Praxis muss das Inverse nicht berechnet werden.
Durch die algebraische Darstellung kann aber das
Kryptosystem besser analysiert werden, um zu zeigen, dass es
gegen bestimmte Arten von Angriffen geschützt ist.
Barbara König
Konfusion
Der Zusammenhang zwischen Schlüssel und verschlüsseltem Text
sollte so komplex wie möglich sein.
Diffusion
Jedes Bit der verschlüsselten Nachricht sollte von jedem Bit der
ursprünglichen Nachricht auf möglichst komplexe Weise abhängig
sein. Insbesondere sollte sich der verschlüsselte Text vollständig
ändern, sobald ein Bit der ursprünglichen Nachricht verändert wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 85
“Form. Asp. der Software-Sicherheit und Kryptographie” 86
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung
Asymmetrische Verschlüsselung
Geschichte:
Wir betrachten nun asymmetrische Verschlüsselungsverfahren:
e
(e, d )
1976: Diffie-Hellman-Schlüsselaustauschprotokoll
Beschreibt wie Alice und Bob einen geheimen Schlüssel über
ein offenes Netzwerk austauschen können.
1977: RSA (benannt nach Rivest, Shamir, Adleman)
Asymmetrisches Verschlüsselungsverfahren (mit Verwendung
öffentlicher Schlüssel)
Alice
Barbara König
Bob
“Form. Asp. der Software-Sicherheit und Kryptographie” 87
Erst viel später wurde bekannt, dass ganz ähnliche Verfahren
bereits 1973 von Williamson, Cock und Ellis beim GHCQ
(Government Communications Headquarters, Teil des
britischen Geheimdiensts) entwickelt wurden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 88
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung: RSA
Asymmetrische Verschlüsselung: RSA
Beispiele (Eulersche ϕ-Funktion):
Für RSA benötigen wir Voraussetzungen aus der Zahlentheorie: die
Eulersche ϕ-Funktion, der Satz von Euler-Fermat und der
euklidische Algorithmus.
Eulersche ϕ-Funktion
Die Eulersche ϕ-Funktion ϕ : N0 → N0 ist folgendermaßen
definiert:
ϕ(n) mit n ∈ N0 ist die Anzahl der Zahlen zwischen 1 und n,
die zu n teilerfremd sind.
ϕ(n) = |{m ∈ N0 | 1 ≤ m ≤ n und ggT (m, n) = 1}|
n
0
1
2
3
4
5
6
ϕ(n)
0
1
1
2
2
4
2
n
7
8
9
10
11
12
13
ϕ(n)
6
4
6
4
10
4
12
Für eine Primzahl p gilt ϕ(p k ) = p k − p k−1 , insbesondere
ϕ(p) = p − 1.
Für zwei Zahlen m, n ∈ N0 mit ggT (m, n) = 1 gilt
ϕ(m · n) = ϕ(m) · ϕ(n).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 89
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 90
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung: RSA
Asymmetrische Verschlüsselung: RSA
Satz von Euler-Fermat
Für zwei Zahlen m, n ∈ Z mit ggT (m, n) = 1 gilt:
mϕ(n) mod n = 1
Lösen diophantischer Gleichungen
Gegeben seien a, b, c ∈ Z. Wir suchen Lösungen x, y ∈ Z der
Gleichung
a·x +b·y =c
Diese Gleichung hat genau dann eine Lösung, wenn ggT (a, b) | c.
Lösungen für solche Gleichungen können mit Hilfe des erweiterten
euklidischen Algorithmus bestimmt werden. Dieser bestimmt nicht
nur ggT (a, b), sondern auch Werte für x und y .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 91
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 92
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung: RSA
Asymmetrische Verschlüsselung: RSA
1. Schritt: Schlüsselerzeugung
Bob generiert zwei große Primzahlen p, q mit p 6= q und setzt
n = p · q.
Bob bestimmt ϕ(n)
(in diesem Fall gilt ϕ(n) = (p − 1) · (q − 1)).
Bob bestimmt d, e ∈ {0, . . . , ϕ(n) − 1} mit
(d · e) mod ϕ(n) = 1
(d.h., d, e sind modulo ϕ(n) zueinander invers)
(e, n) ist der öffentliche Schlüssel, den Bob bekanntgibt.
(d, n) ist der private Schlüssel, den Bob geheimhält.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 93
2. Schritt: Verschlüsselung
Alice will eine Nachricht M an Bob verschlüsseln. Sie kodiert
diese Nachricht als eine Zahl m ∈ {0, . . . , n − 1} (z.B. durch
Binärkodierung).
Alice rechnet c = me mod n und schickt c an Bob.
3. Schritt: Entschlüsselung
Bob empfängt c.
Er rechnet m = c d mod n und erhält damit wieder die
ursprüngliche Nachricht.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 94
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung: RSA
Asymmetrische Verschlüsselung: RSA
Rechenbeispiel RSA
p = 5, q = 11, n = 5 · 11 = 55
ϕ(n) = (p − 1) · (q − 1) = 4 · 10 = 40
Wähle e = 3 und berechne das Inverse d = 27:
Löse 3 · x + 40 · y = 1, dies ergibt Lösungen x = −13, y = 1
Das ergibt d = x mod 40 = (−13) mod 40 = 27
Nachricht m = 9 soll übertragen werden. Alice berechnet die
Kodierung c = 93 mod 55 = 729 mod 55 = 14.
Code c = 14 kommt an. Bob rechnet
1427 mod 55 = (143 mod 55)9 mod 55
= (2744 mod 55)9 mod 55 = 499 mod 55
= (493 mod 55)3 mod 55 = (117649 mod 55)3 mod 55
= 43 mod 55 = 64 mod 55 = 9 = m
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 95
Warum funktioniert RSA?
Korrektheit: Warum erhält Bob wieder die ursprüngliche Nachricht?
Das kann mit dem Satz von Euler-Fermat nachgewiesen werden.
Es gilt (e · d mod ϕ(n)) = 1 und damit gibt es eine Zahl z ∈ Z mit
e · d = z · ϕ(n) + 1. Also ergibt sich beim Verschlüsseln und
anschließenden Entschlüsseln:
(me mod n)d mod n = me·d mod n = mz·ϕ(n)+1 mod n
= (m · (mϕ(n) )z ) mod n = m · 1z mod n = m mod n = m
Diese Argumentation funktioniert nicht, falls m, n nicht teilerfremd
sind. In diesem Fall kann man aber mit Hilfe des Chinesischen
Restsatzes nachweisen, dass man trotzdem das richtige Ergebnis
erhält.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 96
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Asymmetrische Verschlüsselung: RSA
Asymmetrische Verschlüsselung: RSA
Warum funktioniert RSA? (Fortsetzung)
Sicherheit: Warum ist es für andere schwierig, die Nachricht zu
entschlüsseln?
Das liegt (im wesentlichen) daran, dass man d nur dann leicht aus
e berechnen kann, wenn man ϕ(n) kennt. Um ϕ(n) zu berechnen,
müsste man die Primfaktorzerlegung von großen Zahlen (ca.
1024–2048 Bits) bestimmen, was sehr schwer ist.
Wir werden uns das noch genauer ansehen und uns überlegen,
welche Voraussetzungen erfüllt sein müssen, damit RSA sicher ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 97
Weitere Bemerkungen:
Auch bei einer sinnvollen Implementierung der Potenzierung
bei der Ver- und Entschlüsselung ist RSA kein sehr effizientes
Verfahren.
Daher wird im allgemeinen RSA nur zum Schlüsselaustausch
verwendet. Sobald ein geheimer Sitzungsschlüssel vereinbart
ist, kann ein symmetrisches Verschlüsselungsverfahren (z.B.
AES) verwendet werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 98
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Sicherheit von Kryptosystemen
Sicherheit von Kryptosystemen
Bisher ist noch nicht klar, warum die bisher vorgestellten
Kryptosysteme sicher sind. Wir wissen noch nicht einmal, was
“sicher” überhaupt bedeutet.
Wir betrachten zunächst einmal, welche Arten von Angriffen auf
ein Kryptosystem möglich sind:
Ciphertext-only attack
Nur die verschlüsselte Nachricht oder mehrere verschlüsselte
Nachrichten sind bekannt. (Je mehr Nachrichten bekannt sind,
desto besser.)
Known-plaintext attack
Nicht nur eine verschlüsselte Nachricht, sondern auch die
dazugehörige unverschlüsselte Nachricht sind bekannt.
Das Ziel ist es, den verwendeten Schlüssel zu ermitteln.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 99
Chosen-plaintext attack
Der Angreifer hat die Möglichkeit, dem Verschlüsseler eine
bestimmte Nachricht unterzuschrieben, die verschlüsselt wird.
Beispiel: Im 2. Weltkrieg wurden von den Alliierten bestimmte
Bereiche des Meeres vermint, damit die Kryptoanalytiker in
Bletchley Park Nachrichten mit dem Wort “Minen” abfangen
konnten, um damit den Code der Enigma zu entschlüsseln.
Chosen-ciphertext attack
Der Angreifer hat die Möglichkeit eine unter einem unbekannten
Schlüssel verschlüsselte Nachricht zu wählen und die dazugehörige
entschlüsselte Nachricht zu erhalten.
Diese Arten von Angriffen setzen einen schrittweise immer
mächtigeren Angreifer voraus.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 100
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Sicherheit von Kryptosystemen
Sicherheit von Kryptosystemen
Wir betrachten hier nicht die folgenden Arten von Angriffen (die
aber in der Praxis auch sehr wichtig sind!):
Side channel attack
Angriff auf eine bestimmte physikalische Implementierung eines
Kryptosystems, indem das kryptographische Gerät während der
Verschlüsselung beobachtet wird.
Beispiel: aus der Laufzeit des Verschlüsselungsalgorithmus können
Rückschlüsse auf die Schlüssellänge gezogen werden (sogenannte
timing attack).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 101
Bei früheren Verschlüsselungsverfahren setzte man oft darauf, dass
der Angreifer das Verschlüsselungsverfahren nicht kannte (Security
by Obscurity).
Heute fordert man, dass ein Verschlüsselungsverfahren auch dann
sicher sein muss, wenn der Algorithmus bekannt ist. (Der Schlüssel
muss natürlich unbekannt sein.) Um diese Sicherheit zu
gewährleisten, muss ein Kryptosystem einer mathematischen
Analyse unterzogen werden.
Der Begriff “schwierig zu entschlüsseln” wird heutzutage
insbesondere mit Mitteln der Komplexitätstheorie definiert und
untersucht.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 102
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
Wir definieren zunächst die Klasse aller Sprachen, die von einer
deterministischen Turingmaschine mit Zeitbeschränkung akzeptiert
werden können.
Daher nun eine kurze Wiederholung der wichtigsten
komplexitätstheoretischen Begriffe.
Kurze Vorausschau: leider wird sich herausstellen, dass der Begriff
NP-hart bzw. NP-vollständig nicht ausreichend sein wird, um ein
Kryptosystem als “schwierig zu entschlüsseln” zu klassifizieren. Wir
müssen daher im Laufe der Vorlesung auf andere Begriffe
ausweichen.
Zeitbeschränkte det. TM und akz. Sprachen (Definition)
Sei f : N0 → N0 eine (totale) Funktion. Die Klasse TIME(f (n))
besteht aus allen Sprachen A, für die es eine deterministische
Mehrband-Turingmaschine M gibt mit A = T (M) und
time M (x) ≤ f (|x|) für alle Wörter x.
Dabei gibt time M (x) die Anzahl der Rechenschritte von M bei
Eingabe x an.
Das heißt, die Anzahl der Schritte der Turingmaschine ist
beschränkt und die Beschränkung ist abhängig von der Länge der
Eingabe.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 103
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 104
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
definieren, die von deterministischen Turingmaschinen mit
polynomialer Laufzeitbeschränkung erkannt werden.
Komplexitätsklasse P (Definition)
P = {A | es gibt eine det. Turingmaschine M und ein
Polynom p mit T (M) = A und time M (x) ≤ p(|x|)}
[
=
TIME(p(n))
p Polynom
Intuitiv umfasst P alle Probleme, für die effiziente Algorithmen
existieren.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 105
Analog zur Komplexitätsklasse P kann man auch eine Klasse FP
von Funktionen definieren, die in polynomieller Zeit berechnet
werde können.
Funktionsklasse FP
FP ist die Klasse aller Funktionen der Form f : Σ∗ → Σ∗ , für die es
eine deterministische Turingmaschine M und ein Polynom p gibt,
so dass
M berechnet die Funktion f und
time M (x) ≤ p(|x|) für alle Wörter x ∈ Σ∗ .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 106
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
Ähnlich wie bei deterministischen Turingmaschinen kann man auch
zeitbeschränkte nichtdeterministische Turingmaschinen und die
dazugehörigen Sprachklassen definieren.
Zeitbeschränkte nichtdet. TM und akz. Sprachen (Definition)
Sei f : N0 → N0 eine (totale) Funktion. Die Klasse NTIME(f (n))
besteht aus allen Sprachen A, für die es eine nichtdeterministische
Mehrband-Turingmaschine M gibt mit A = T (M) und
ntime M (x) ≤ f (|x|) für alle Wörter x.
Dabei gilt

 min{Länge akzeptierender
Rechnungen von M auf x} falls x ∈ T (M)
ntime M (x) =

0
falls x ∈
6 T (M)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 107
Komplexitätsklasse NP (Definition)
[
NP =
NTIME(p(n))
p Polynom
Offensichtlich gilt P ⊆ NP.
Aber gilt auch P 6= NP?
P 6= NP-Problem (ungelöst)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 108
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
Analog zum Begriff der Reduzierbarkeit in der
Berechenbarkeitstheorie definieren wir nun den Begriff der
polynomialen Reduzierbarkeit.
Polynomiale Reduzierbarkeit (Definition)
Gegeben seien Sprachen A ⊆ Σ∗ , B ⊆ Γ∗ . Dann heißt A auf B
polynomial reduzierbar (in Zeichen A ≤p B), falls es eine totale
und mit polynomialer Laufzeit (deterministisch) berechenbare
Funktion f : Σ∗ → Γ∗ gibt, so dass für alle x ∈ Σ∗ gilt:
x ∈ A ⇐⇒ f (x) ∈ B.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 109
Anschaulich bedeutet Reduktion, dass wir mit Hilfe von f aus einer
Maschine MB für das Problem B immer eine Maschine MA für das
Problem A konstruieren können. Dabei hat die
Vorverarbeitungsfunktion f polynomielle Laufzeit.
x
f
f (x)
Ja
MB
Nein
MA
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 110
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
NP-hart, NP-vollständig (Definition)
Eine Sprache A heißt NP-hart, falls für alle Sprachen L ∈ NP gilt:
L ≤p A.
Eine Sprache A heißt NP-vollständig, falls A NP-hart ist und
A ∈ NP gilt.
Das bedeutet: eine NP-vollständige Sprache ist mindestens so
schwierig wie jedes andere Problem in NP.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 111
Beispiel: Erfüllbarkeitsproblem SAT
Eingabe: eine aussagenlogische Formel F
Ausgabe: Hat F eine erfüllende Belegung? Das heißt, gibt es
eine Belegung der atomaren Aussagen mit 0 bzw. 1, so dass F
unter dieser Belegung den Wert 1 hat?
SAT ist das klassische Beispiel für ein NP-vollständiges Problem.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 112
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wiederholung Komplexitätstheorie
Wiederholung Komplexitätstheorie
Neben NP ist oft auch die Klasse aller Komplemente von
NP-Problemen interessant.
Sobald man von einer NP-vollständigen Sprache (wie beispielsweise
SAT) zeigen könnte, dass sie in P (nicht) enthalten ist, wäre das
P 6= NP-Problem gelöst.
NP-Vollständigkeit und P
Sei A NP-vollständig. Dann gilt
Komplexitätsklasse co-NP (Definition)
Die Komplexitätsklasse co-NP enthält genau die Sprachen, deren
Komplement in NP liegt.
SAT = {F | F ist eine erfüllbare aussagenlogische Formel}
A ∈ P ⇐⇒ P = NP
Bemerkung: Daraus folgt unmittelbar, dass auch
A 6∈ P ⇐⇒ P 6= NP für jedes NP-vollständige Problem A gilt.
liegt in NP; das Komplement von SAT, nämlich
UNSAT = {F | F ist eine unerfüllbare aussagenlogische Formel}
liegt per Definition in co-NP.
Ebenso liegt das Gültigkeitsproblem in co-NP.
Man weiß weder, ob NP ⊆ co-NP, noch ob co-NP ⊆ NP. Es gilt
jedoch P ⊆ NP ∩ co-NP.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 113
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 114
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Kryptographie und die Komplexitätsklasse NP
Kryptographie und die Komplexitätsklasse NP
Wir machen nun einen ersten Versuch, um den Begriff der
“Schwierigkeit” für das Entschlüsseln von Kryptosystemen zu
definieren. Wir betrachten ein asymmetrisches
Verschlüsselungsverfahren, bei dem der öffentliche Schlüssel
bekannt ist.
Die Verschlüsselungsfunktion E : M × Ke → CM und die
Entschlüsselungsfunktion D : CM × Kd → M liegen in FP.
Die Funktion D 0 : CM × Ke → M mit E (D 0 (c, e), e) = c für
alle c ∈ CM, e ∈ Ke liegt nicht in FP.
Bemerkung: Falls die Verschlüsselung eindeutig rückgängig
gemacht werden kann, könnte man oben auch D 0 (E (m, e), e) = m
für alle m ∈ M fordern.
Entschlüsselungsproblem liegt in NP (Satz)
Wir betrachten ein Kryptosystem, für das gilt:
M, CM ⊆ Σ∗
Die Verschlüsselungsfunktion E : M × Ke → CM liegt in FP.
Falls E (m, e) = c gilt, so ist m höchstens polynomiell größer
als c (D.h., p(|c|) ≥ |m| für ein Polynom p.)
Dann liegt die Sprache
LE = {(m0 , c, e) | ∃u ∈ Σ∗ : E (m0 u, e) = c}
in NP.
Aber vielleicht ist die Forderung, dass D 0 nicht in FP liegt, noch
etwas zu schwach . . .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 115
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 116
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Kryptographie und die Komplexitätsklasse NP
Kryptographie und die Komplexitätsklasse NP
Bemerkungen:
Beweis:
Die nichtdeterministische Turingmaschine, die LE entscheidet, rät
u und überprüft, ob E (m0 u, e) = c.
Da höchstens p(|c|) Zeichen geraten müssen und E in Polynomzeit
berechenbar ist, arbeitet die Turingmaschine in polynomieller
Zeit.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 117
Die Forderung, dass m höchstens polynomiell größer ist als c,
ist sehr natürlich. Normalerweise sind Codewörter genauso
lang oder länger als die dazugehörigen Nachrichten.
Wenn LE in Polynomzeit berechenbar wäre, dann könnte man
D 0 einfach berechnen: seien c und e gegeben.
Setze m0 = ε.
Angenommen mi ∈ Σi und wir wissen, dass mi ein
Anfangsstück der gesuchten Nachricht m ist. Dann
bestimme mi+1 , durch Abfragen “(mi a, c, e) ∈ LE ?” für
jedes a ∈ Σ. Falls eine solche Abfrage erfolgreich ist,
setze mi+1 = mi a.
Falls eine Nachricht mn nicht mehr verlängert werden
kann, dann setze D 0 (c, e) = m. (Die Iteration terminiert,
da |m| beschränkt ist.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 118
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Kryptographie und die Komplexitätsklasse NP
Kryptographie und die Komplexitätsklasse NP
Andererseits: wenn D 0 in FP läge (und außerdem
Verschlüsselung eindeutig rückgängig gemacht werden kann),
dann liegt LE in P: man muss – gegeben ein Tupel (m0 , c, e) –
D 0 (c, e) bestimmen und überprüfen, ob m0 ein Präfix von
D 0 (c, e) ist.
D.h., LE is “gleich schwierig” wie D 0 . Da sich Begriffe wie
NP-Vollständigkeit nur auf Sprachen beziehen, nicht auf
Funktionen, ist es günstiger mit dem Entscheidungsproblem,
nämlich LE , zu arbeiten.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 119
Um die Berechnung von D 0 so schwierig wie möglich zu machen,
könnte man jetzt folgendes fordern:
Mögliche Forderung an Kryptosysteme
Für ein asymmetrisches Kryptosystem mit Verschlüsselungsfunktion
E muss die Sprache LE NP-vollständig sein.
Kann man dann – unter der Voraussetzung, dass P 6= NP –
wirklich schließen, dass das Kryptosystem sicher ist?
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 120
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Kryptographie und die Komplexitätsklasse NP
Kryptographie und die Komplexitätsklasse NP
Selbst wenn P 6= NP gelten würde, reicht diese Forderung nicht
aus. Dafür gibt es zwei Gründe:
NP-Vollständigkeit und Kryptographie
Wir müssen miteinbeziehen, dass der Angreifer auch
randomisierte Berechnungen durchführen kann.
Die Funktion D 0 muss für jedes Element schwer zu berechnen
sein. Die NP-Vollständigkeit von LE garantiert nur, dass es
Elemente gibt, für die D 0 schwer zu berechnen ist (worst-case
vs. average-case).
Barbara König
Bemerkungen:
Für SAT ist bekannt, dass es nur relativ wenige Formeln gibt,
für die es wirklich schwer ist, nachzuweisen, dass sie
unerfüllbar sind bzw. eine erfüllende Belegung zu finden.
Daher sind Werkzeuge für SAT (sogenannte SAT-Solver) sehr
erfolgreich.
Das bedeutet auch, dass SAT ungeeignet ist als Problem, das
als Grundlage für ein Kryptosystem dienen soll.
“Form. Asp. der Software-Sicherheit und Kryptographie” 121
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 122
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Kryptographie und die Komplexitätsklasse NP
Kryptographie und die Komplexitätsklasse NP
Man hat versucht, Kryptosysteme auf NP-vollständigen
Problemen aufzubauen, beispielsweise auf SUBSET-SUM
(Merkle und Hellman):
SUBSET-SUM
Eingabe: eine Menge A ⊆ N0 und t ∈ N0
Ausgabe: gibt es eine Teilmenge
A0 ⊆ A, deren Summe
P
genau t ist? D.h., gilt a∈A0 a = t?
Leider hat sich inzwischen herausgestellt, dass es doch
effiziente Lösungsverfahren für die in dem Kryptosystem
verwendeten Instanzen von SUBSET-SUM gibt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 123
Interessanterweise sind nach derzeitigem Kenntnisstand Probleme
besser geeignet, von denen
nicht bekannt ist, ob sie in P liegen und
die auch nicht als NP-vollständig bekannt sind.
Dazu gehören insbesondere:
Faktorisierung
Diskreter Logarithmus
Wir werden beide Probleme und die dazugehörigen Funktionen
später noch genauer betrachten.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 124
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Randomisierung
Randomisierung
Bestimme Zufallspunkte in einem Quadrat und überprüfe, ob sie
innerhalb des eingeschriebenen Kreises liegen:
Wir betrachten zunächst randomisierte Berechnungen. Eine
interessante Feststellung ist, dass Randomisierung bei
Berechnungen helfen kann!
Dazu zunächst ein einfaches Beispiel: Berechnung von π
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 125
“Form. Asp. der Software-Sicherheit und Kryptographie” 126
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Randomisierung
Randomisierung
Bemerkungen:
Randomisierte Berechnung von π
Wähle zufällig Punkte (x, y ) in einem Quadrat mit
Seitenlänge 1. D.h., x, y ∈ [0, 1].
Um π wirklich genau berechnen zu können, benötigt man
einen guten Zufallszahlengenerator!
Bestimme, ob (x, y ) innerhalb des Kreises liegt, der in das
Quadrat einbeschrieben ist. Teste dazu, ob
(x − 12 )2 + (y − 21 )2 ≤ r 2 = 14 .
Eine andere (klassischere) Möglichkeit, π zu berechnen, ist es
den Grenzwert einer Reihe zu bestimmen.
Sei n die Gesamtanzahl der Punkte und k die Zahl der Punkte
innerhalb des Kreises. Dann gilt für die Fläche F des Kreises:
F = r 2 π = π4 und F ≈ kn . Dadurch erhalten wir eine
Näherung für π.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 127
Ein weiteres Beispiel für ein Problem, bei dem Randomisierung
helfen kann, ist das Sortierproblem: für eine feste Eingabe hat
Quick-Sort eine erwartete Laufzeit von O(n log n), wenn das
Pivotelement zufällig gewählt wird. (Gegenüber einer
worst-case-Laufzeit von O(n2 ) im deterministischen Fall.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 128
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Turingmaschinen
Probabilistische Turingmaschinen
Klassische Turingmaschinen können im allgemeinen keine
Zufallszahlen erzeugen. Daher betrachten wir nun probabilistische
Turingmaschinen.
Turingmaschine (Definition)
Eine (deterministische) Turingmaschine M ist ein 7-Tupel
M = (Z , Σ, Γ, δ, z0 , , E ), wobei
Z die endliche Menge der Zustände,
Klassische Turingmaschinen haben intuitiv folgendes Aussehen:
Kopf kann sich nach links und rechts
bewegen und Zeichen überschreiben
e
i
n
g
a
b
e
Σ das Eingabealphabet,
Γ mit Γ ⊃ Σ das Arbeitsalphabet oder Bandalphabet,
δ : Z × Γ → Z × Γ × {L, R, N} die Überführungsfunktion,
z0 ∈ Z der Startzustand,
Signal für
Endzustand
Automat mit
endlich vielen
Zuständen
∈ Γ\Σ das Leerzeichen oder Blank und
E ⊆ Z die Menge der Endzustände ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 129
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 130
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Turingmaschinen
Probabilistische Turingmaschinen
Bei probabilistischen Turingmaschinen erhält die Maschine zusätzlich ein Band mit Zufallsbits, auf dem sie sich beliebig bewegen darf.
Diese Bits beeinflussen die Zustandsübergänge.
Kopf kann sich nach links und rechts
bewegen und Zeichen überschreiben
e
i
n
g
a
b
0
1
1
0
0
Probabilistische Turingmaschine (Definition)
e
Signal für
Endzustand
Automat mit
endlich vielen
Zuständen
Nach der Wiederholung von herkömmlichen Turingmaschinen
führen wir nun probabilistische Turingmaschinen ein. Dabei
modifizieren wir die Definition leicht.
Eine probabilistische Turingmaschine M ist ein 7-Tupel
M = (Z , Σ, Γ, δ, z0 , , E ), wobei alle Komponenten mit Ausnahme
von δ wie bei einer herkömmlichen Turingmaschine definiert sind.
Die Überführungsfunktion δ hat folgendes Aussehen:
δ : Z × Γ × {0, 1} → Z × Γ × {L, R, N} × {L, R, N}
1
Barbara König
0
Band mit Zufallsbits
Coin-Tossing Tape
“Form. Asp. der Software-Sicherheit und Kryptographie” 130
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 131
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Turingmaschinen
Probabilistische Turingmaschinen
Dabei hat
δ(z, a, b) = (z 0 , c, x, y )
mit z, z 0 ∈ Z , a, c ∈ Σ, b ∈ {0, 1}, x, y ∈ {L, R, N} folgende
Bedeutung:
Wenn die Turingmaschine im Zustand z ist, a auf dem
Arbeitsband liest und das Bit b auf dem Band mit
Zufallsbits steht, dann
wechselt sie in den Zustand z 0 , schreibt ein c, geht auf
dem Arbeitsband in die Richtung x und auf dem
Zufallsbit-Band in die Richtung y .
Laufzeitbeschränkung von probabilistischen Turingmaschinen
Wir sagen, dass eine probabilistische Turingmaschine hält, wenn sie
auf jeder Eingabe – unabhängig von den verwendeten Zufallsbits –
hält, d.h., einen Endzustand erreicht.
Außerdem hat eine probabilistische Turingmaschine eine
polynomiale Laufzeit, wenn sie auf jeder Eingabe x – unabhängig
von den verwendeten Zufallsbits – höchstens p(|x|) Schritte macht,
wobei p ein Polynom ist.
Wir gehen davon aus, dass der Turingmaschine zu Beginn der
Berechnung entsprechende Zufallsbits bereitgestellt werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 132
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 133
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Turingmaschinen
Probabilistische Turingmaschinen
Wir betrachten die verwendeten Zufallsbits als Elementarereignisse.
Falls die Turingmaschine auf einem festen Wort der Länge n
arbeitet, ist die Menge der Elementarereignisse wie folgt definiert:
Ω = {0, 1}p(n)
Bemerkung:
Mehr Zufallsbits werden in p(n) Schritten nicht benötigt. Jedes
dieser Elementarereignisse ist gleich wahrscheinlich.
Probabilistische Turingmaschinen sind nur eine Möglichkeit, den
Begriff der randomisierten Berechnung präzise zu fassen.
Die Tatsache, ob eine Maschine M ein Wort x der Länge n
akzeptiert, ist eine Zufallsvariable aM (x) : Ω → {0, 1}. Für b̃ ∈ Ω
gilt aM (x)(b̃) = 1 genau dann, wenn M das Wort x unter
Verwendung der Zufallsbits b̃ akzeptiert.
Wie das oft in der Berechenbarkeitstheorie der Fall ist, gibt es auch
andere analoge Berechnungsmodelle.
Die Laufzeit einer Maschine M auf einem Wort x ist ebenfalls eine
Zufallsvariable tM (x) : Ω → N0 . Für b̃ ∈ Ω gibt tM (x)(b̃) die
Anzahl der Schritte an, die die Berechnung auf x mit den
Zufallsbits b̃ in Anspruch nimmt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 134
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 135
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Wir können un die erste probabilistische Komplexitätsklasse
definieren.
Komplexitätsklasse RP (Randomized polynomial time)
Eine Sprache L ⊆ Σ∗ gehört zu der Klasse RP genau dann, wenn
es eine probabilistische Turingmaschine mit polynomialer Laufzeit
gibt, so dass für jede Eingabe x ∈ Σ∗ gilt:
1
2
falls x ∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) ≥ 21 .
falls x 6∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) = 0.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 136
Frage: Kann man auch eine höhere Wahrscheinlichkeit als
erhalten, wenn das Wort in der Sprache liegt?
1
2
Antwort: Ja! Man muss die Maschine nur mehrmals (mit jeweils
anderen Zufallsbits) laufen lassen. Sei M 0 die Maschine, die M
k-mal ausführt und akzeptiert, sobald M einmal akzeptiert. Da die
jeweils verwendeten Zufallsbits unabhängig voneinander sind, gilt
für x ∈ L:
k
1
0
P(M akzeptiert x nicht) ≤
2
und damit
k
1
P(M 0 akzeptiert x) ≥ 1 −
2
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 137
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Wir wollen nun mit Wahrscheinlichkeit größer gleich p akzeptieren.
Es gilt
k
1
1
1
⇐⇒
≤ 2k ⇐⇒ k ≥ log2
p ≤1−
2
1−p
1−p
1
= − log2 (1 − p)-mal
Dann reicht es, die Maschine M log2 1−p
laufen zu lassen. Das ist für eine feste Wahrscheinlichkeit p nur ein
konstanter Faktor.
Beispiel: wir betrachten ganzzahlige Polynome mit n Variablen,
d.h., Polynome über den Variablen x1 , . . . , xn , bei denen alle
Koeffizienten ganzzahlig sind.
Gegeben sei nun ein solches ganzzahliges Polynom p, dargestellt
durch einen arithmetischen Ausdruck.
Dieses Polynom ist nicht notwendigerweise in ausmultiplizierter
Form, d.h., als Summe von Termen der Form a · x1i1 · · · · · xnin ,
gegeben! Beispielsweise wird es als Produkt von Summen
p(x) = (x1 + x2 ) · (x3 + x4 ) · · · · · (x2n−1 + x2n ) dargestellt. Auf
jeden Fall haben wir eine Berechnungsverfahren für p, welches in
Polynomzeit ausführbar ist.
Der Grad eines Polynoms (in ausmultiplizierter Form) ist die
maximale Summe der Exponenten in einem Summanden.
Beispielsweise hat p(x1 , x2 ) = 3x13 x22 + x14 + 2x23 + x12 x2 den Grad 5.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 138
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 139
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Wir betrachten folgendes Problem:
NON-ZERO-POLY
Eingabe: ein Polynom p mit Grad kleiner gleich k
Ausgabe: ist p nicht identisch zu Null, d.h., gibt es
a1 , . . . , an ∈ Z, so dass p(a1 , . . . , an ) 6= 0 gilt?
Bemerkung: Sobald man NON-ZERO-POLY effizient lösen kann,
können auch zwei Polynome p, q effizient auf Gleichheit getestet
werden. Dazu überprüft man, ob (p − q) ∈ NON-ZERO-POLY.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 140
Idee zur Berechnung von NON-ZERO-POLY: wähle beliebige
ganze Zahlen a1 , . . . , an ∈ Z und setze sie in p ein. Das Polynom
wird akzeptiert, falls p(a1 , . . . , an ) 6= 0 gilt.
Dieser Test läuft sicherlich in Polynomzeit, aufgrund des
gegebenen arithmetischen Ausdrucks bzw. polynomialen
Verfahrens.
Das Verfahren akzeptiert niemals ein Polynom, das identisch
zu Null ist. D.h., die zweite Bedingung in der Definition von
RP ist auf jeden Fall erfüllt.
Wir müssen uns nun noch überlegen, ob auch die erste
Bedingung erfüllt ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 141
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Beweis: die Menge der Elementarereignisse ist Ω = {1, . . . , N}n ,
wobei alle Elementarereignisse gleich wahrscheinlich sind. Wir
führen eine Induktion über n durch.
Wahrscheinlichkeit für Nullstellen (Schwartz-Zippel-Lemma)
Sei p ein ganzzahliges Polynom mit n Variablen und Grad kleiner
gleich k. Sei außerdem p nicht identisch zu Null. Wenn a1 , . . . , an
unabhängig und gleichverteilt aus {1, . . . , N} gewählt werden, so
gilt:
k
P(p(a1 , . . . , an ) = 0) ≤
N
n = 1: in diesem Fall haben wir Polynom mit nur einer einzigen
Variable x1 . Ein solches Polynom kann höchstens k Nullstellen
haben und die Wahrscheinlichkeit, eine davon aus der Menge
{1, . . . , N} auszuwählen ist kleiner gleich Nk .
n−1 → n: In diesem Fall lässt sich p schreiben als
p = p0 + p1 · xn + p2 · xn2 + · · · + pt · xnt ,
wobei die pi die Variable xn nicht enthalten. Außerdem ist pt nicht
identisch zum Nullpolynom und hat höchstens Grad k − t. Wir
können davon ausgehen, dass t > 0 ist, denn ansonsten hätte p
nur Variablen aus {x1 , . . . , xn−1 }.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 142
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 143
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Wir definieren nun folgende Ereignisse:
PN = {(a1 , . . . , an ) ∈ Ω | p(a1 , . . . , an ) = 0}
PTN = {(a1 , . . . , an ) ∈ Ω | pt (a1 , . . . , an−1 ) = 0}
P(PN | PTN) ≤ Nt , denn es wird vorausgesetzt, dass
pt (a1 , . . . , an−1 ) 6= 0 gilt. Dies ist der höchste Koeffizient des
Polynoms q definiert durch:
q(xn ) = p(a1 , . . . , an−1 , xn )
Es gilt:
P(PN) = P(PN | PTN) · P(PTN) + P(PN | PTN) · P(PTN)
≤ P(PTN) + P(PN | PTN)
Dabei ist PTN = Ω\PTN.
Wir schätzen nun noch die beiden Wahrscheinlichkeiten in der
Summe ab:
P(PTN) ≤ k−t
N , denn pt ist ein Polynom vom Grad k − t mit
weniger Variablen, so dass die Induktionsvoraussetzung
zutrifft.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 144
Dieses Polynom ist nicht identisch mit Null, da der höchste
Koeffizient ungleich 0 ist. Die Wahrscheinlichkeit, dass unter
dieser Voraussetzung p(a1 , . . . , an ) = 0 gilt, ist die
Wahrscheinlichkeit, dass wir eine Nullstelle von q wählen. Und
diese Wahrscheinlichkeit ist kleiner gleich Nt , da q Grad t hat.
Insgesamt ergibt sich:
P(p(a1 , . . . , an ) = 0) ≤
Barbara König
k −t
t
k
+
=
N
N
N
“Form. Asp. der Software-Sicherheit und Kryptographie” 145
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Für das Problem NON-ZERO-POLY gibt es noch keinen
bekannten deterministischen Polynomzeitalgorithmus.
NON-ZERO-POLY liegt in RP
NON-ZERO-POLY ∈ RP
Beweis: aufgrund der Vorüberlegungen müssen wir uns nur noch
überlegen, dass man die Zahlen a1 , . . . , an so wählen kann, dass
p(a1 , . . . , an ) = 0 mit Wahrscheinlichkeit kleiner 12 gilt, falls p
nicht identisch Null ist. Nach dem vorherigen Satz müssen wir
a1 , . . . , an zufällig aus der Menge {1, . . . , 2k} wählen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 146
Falls das Polynom als arithmetischer Ausdruck gegeben ist, dann
nützt es auch nichts, den Ausdruck mit Hilfe des
Distributivgesetzes auszumultiplizieren und das Polynom als
Summe von Termen der Form a · x1i1 · · · · · xnin darzustellen. Diese
Darstellung ist im Normalfall exponentiell größer als der
ursprüngliche Ausdruck.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 147
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Außerdem gilt folgende Beziehung zwischen RP und NP:
Es ist relativ leicht, P und RP miteinander zu vergleichen:
P vs. RP
Es gilt P ⊆ RP.
Begründung: jede deterministische Turingmaschine kann auch als
probabilistische Turingmaschine aufgefasst werden, die ihren
Zufallsbit-Bandinhalt ignoriert.
Barbara König
NP vs. RP
Es gilt RP ⊆ NP.
Beweis: falls L ∈ RP gilt, so gibt es eine probabilistische
Turingmaschine, die ein Wort w ∈ L mit Wahrscheinlichkeit größer
gleich 12 akzeptiert und ein Wort w 6∈ L nie akzeptiert.
Dies kann durch eine nicht-deterministische Turingmaschine
simuliert werden, die ihre Zufallsbits selbst rät. Falls w ∈ L, so gibt
es eine Folge von Zufallsbits, die zur Akzeptanz von w führt. Falls
w 6∈ L, so gibt es eine solche Folge nicht.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 148
“Form. Asp. der Software-Sicherheit und Kryptographie” 149
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Bemerkungen:
Wir betrachten noch weitere Komplexitätsklassen:
Komplexitätsklasse BPP (bounded-error probabilistic polynomial
time)
Eine Sprache L ⊆ Σ∗ gehört zu der Klasse BPP genau dann, wenn
es eine probabilistische Turingmaschine mit polynomialer Laufzeit
gibt, so dass für jede Eingabe x ∈ Σ∗ gilt:
1
2
falls x ∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) ≥ 43 .
falls x 6∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) ≤ 41 .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 150
Es macht wenig Sinn in obiger Definition
P(M akzeptiert x) ≥ 12 und P(M akzeptiert x) ≤ 12 zu
fordern. Dann würde ein einfacher Münzwurf, bei dem mit
Wahrscheinlichkeit 12 akzeptiert oder nicht akzeptiert wird,
den Anforderungen an die Turingmaschine genügen.
Wie bei RP kann die Wahrscheinlichkeit für eine falsche
Antwort vermindert werden, indem man die Maschine
mehrfach laufen lässt.
Jedes andere Paar von Zahlen p, q ∈ [0, 1] mit p >
q < 12 kann statt 34 und 14 verwendet werden.
( Übungsaufgabe)
Barbara König
1
2
und
“Form. Asp. der Software-Sicherheit und Kryptographie” 151
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Über das Verhältnis von RP und BPP weiß man folgendes, was
daraus folgt, dass man die Akzeptanzwahrscheinlichkeit einer
RP-Turingmaschine beliebig erhöhen kann.
RP vs. BPP
Es gilt RP ⊆ BPP.
Es ist unbekannt wie sich NP und BPP zueinander verhalten.
Bisher ist weder NP ⊆ BPP noch BPP ⊆ NP bekannt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 152
Zuletzt betrachten wir noch folgende Komplexitätsklasse:
Komplexitätsklasse ZPP (zero-error probabilistic polynomial time)
Eine Sprache L ⊆ Σ∗ gehört zu der Klasse ZPP genau dann, wenn
es eine probabilistische Turingmaschine gibt, so dass der
Erwartungswert der Laufzeit polynomial beschränkt ist und für jede
Eingabe x ∈ Σ∗ gilt:
1
falls x ∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) = 1.
2
falls x 6∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) = 0.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 153
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Was bedeutet “der Erwartungswert der Laufzeit ist polynomial
beschränkt”?
Erwartungswert
Für eine Zufallsvariable X : Ω → R ist der Erwartungswert
X
X
E [X ] =
P(ω) · X (ω) =
P(X = y ) · y ,
ω∈Ω
y ∈Y
wobei Y = {X (ω) | ω ∈ Ω} ⊆ R die Werte sind, die X annehmen
kann.
Für Probleme in ZPP gilt also:
Es gibt Algorithmen, die immer die richtige Antwort geben.
Aber: es ist unklar, ob diese Algorithmen immer polynomiale
Laufzeit haben. Im Mittel, wenn man den Erwartungswert
betrachtet, ist die Laufzeit aber polynomial. Intuitiv bedeutet
das, dass die Algorithmen nur sehr selten lange Laufzeiten
haben.
Für die Turingmaschinen in der Definition von ZPP heißt das, dass
für jedes Wort x gelten muss: die Zufallsvariable tM (x), die die
Laufzeit von M in Abhängigkeits der Zufallsbits beschreibt, erfüllt
E [tM (x)] ≤ p(|x|), wobei p ein Polynom ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 154
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 155
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Bemerkungen:
Algorithmen, die arbeiten wie die Turingmaschinen, die
ZPP-Probleme entscheiden, nennt man
Las-Vegas-Algorithmen: die Laufzeit, aber nicht die Ausgabe
des Algorithmus ist randomisiert. Insbesondere ist der
Erwartungswert der Laufzeit polynomial beschränkt, die
Ausgabe ist unabhängig von den Zufallsbits.
Verfahren, bei denen auch die Ausgabe randomisiert ist, nennt
man Monte-Carlo-Verfahren. Sie entsprechen den
Turingmaschinen für RP- und BPP-Probleme. Hier ist die
Laufzeit immer polynomial beschränkt, die Ausgabe ist aber
abhängig von den Zufallsbits.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 156
ZPP und RP
Ein Problem L liegt in ZPP genau dann, wenn L und sein
Komplement in RP liegen.
Zum Beweis dieser Aussage benötigen wir die
Markow-Ungleichung:
Markow-Ungleichung
Für eine Zufallsvariable X : Ω → R+
0 und t ∈ R mit t > 0 gilt:
P(X ≥ t) ≤
Barbara König
E [X ]
t
“Form. Asp. der Software-Sicherheit und Kryptographie” 157
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
“⇒”: Wir zeigen nun, dass ZPP ⊆ RP gilt. Damit haben wir die
Richtung von links nach rechts gezeigt.
Beweis:
Zunächst beobachten wir, dass ZPP unter Komplement
abgeschlossen ist (einfach Ja- und Nein-Ausgänge der
Turingmaschine vertauschen).
Sei L ∈ ZPP und sei M eine probabilistische Turingmaschine, die L
akzeptiert. Der Erwartungswert der Laufzeit von M ist durch das
Polynom p beschränkt.
Wir konstruieren eine neue Turingmaschine M 0 , die bei Eingabe
von x mit n = |x| folgendes macht: sie simuliert M 2p(n) Schritte
lang und akzeptiert nur dann, wenn M bis dahin akzeptiert hat.
Es ist klar, dass P(M 0 akzeptiert x) = 0 gilt, falls x 6∈ L.
Außerdem gilt, falls x ∈ L: P(M 0 akzeptiert x) =
P(M akzeptiert x in höchstens 2p(n) Schritten) ≥ 12 . Denn
nach der Markow-Ungleichung überschreitet eine
Zufallsvariable das Doppelte ihres Erwartungswertes nur mit
Wahrscheinlichkeit kleiner gleich 12 .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 158
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 159
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
“⇐”: Für die Richtung von rechts nach links sei nun L eine
Sprache die in RP liegt und deren Komplement auch in RP liegt.
D.h., wir haben zwei Turingmaschinen M1 , M2 , so dass M1 Wörter
immer korrekt akzeptiert und M2 Wörter immer korrekt
zurückweist. Wir nehmen an, dass die Laufzeit beider Maschinen
durch das Polynom p beschränkt ist.
Wir lassen M1 und M2 immmer wieder solange parallel laufen bis
entweder M1 akzeptiert oder M2 das Wort zurückweist.
Bei einem Durchlauf ist die Wahrscheinlichkeit für das Eintreten
dieses Ereignisses mindestens 12 . D.h., die erwartete Laufzeit ist
kleiner gleich:
∞ i
∞
X
X
1
1
1
2p(n) = 2p(n)
= 2p(n)
= 4p(n)
1
i
2
2
1
−
2
i=0
i=0
Dabei ist p(n) die Anzahl der Schritte eines Durchlaufs einer
Turingmaschine und 2p(n) die Zahl der Schritte für beide
Maschinen. Ein Durchlauf für jede Maschine wird mindestens
durchgeführt.
Die Wahrscheinlichkeit dafür, dass der i-te Durchlauf benötigt
i
wird, ist kleiner gleich 12 (alle vorherigen Durchläufe brachten
kein definitives Ergebnis).
Die Reihe konvergiert zu 2 und damit haben wir wiederum
polynomiale Laufzeit.
wobei n die Länge des betrachteten Wortes ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 160
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 161
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Probabilistische Komplexitätsklassen
Probabilistische Komplexitätsklassen
Analog zu co-NP kann man auch co-RP definieren:
Es gelten folgende Beziehungen zwischen probabilistischen
Komplexitätsklassen:
Komplexitätsklasse co-RP (Definition)
Die Komplexitätsklasse co-RP enthält genau die Sprachen, deren
Komplement in RP liegt.
Damit kann man den obigen Satz auch folgendermaßen notieren:
ZPP = RP ∩ co-RP
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 162
P ⊆ ZPP = RP ∩ co-RP ⊆ RP ⊆ BPP
RP ⊆ NP
Es ist jedoch nichts über das Verhältnis zwischen BPP und NP
bekannt.
Außerdem gibt es Vermutungen, dass P und ZPP gleich sein
könnten, aber auch das ist nicht bewiesen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 163
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Wir zeigen also, dass folgendes Problem in RP liegt:
Wir betrachten nun den Miller-Rabin-Primzahltest, ein
probabilistisches Verfahren, das einer RP-Turingmaschine
entspricht. Primzahltests sind wichtig, um für
Verschlüsselungsverfahren – wie beispielsweise RSA – große
Primzahlen zu finden.
Wenn die eingegebene Zahl eine Primzahl ist, dann gibt der
Algorithmus dies auch immer aus. Wenn die Zahl
zusammengesetzt, d.h., keine Primzahl, ist, dann irrt er sich mit
Wahrscheinlichkeit kleiner gleich 12 .
Das bedeutet auch, dass man sich auf den Test verlassen kann,
wenn er behauptet, dass eine Zahl zusammengesetzt ist.
COMPOSITE
Eingabe: eine natürliche Zahl n > 1
Ausgabe: ist n zusammengesetzt, d.h., gibt es natürliche
Zahlen k, ` > 1 mit n = k · `?
Das Komplement von COMPOSITE ist das Problem PRIMES, das
auch in RP (und sogar in P) liegt. Allerdings werden wir das hier
nicht zeigen.
PRIMES
Eingabe: eine natürliche Zahl n > 1
Ausgabe: ist n eine Primzahl?
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 164
“Form. Asp. der Software-Sicherheit und Kryptographie” 165
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Die erste Idee, die hinter dem Miller-Rabin-Primzahltest steckt, ist
die folgende:
Fermat-Zeugen
Sei n > 1 eine natürliche Zahl und a ∈ {1, . . . , n − 1}. Falls
an−1 mod n 6= 1 gilt, so ist n zusammengesetzt.
Man nennt a dann auch einen Fermat-Zeugen dafür, dass n
zusammengesetzt ist.
Idee: Für ein gegebenes n wähle ein zufälliges a ∈ {1, . . . , n − 1}
und teste, ob an−1 mod n 6= 1.
Falls ja, gebe “zusammengesetzt” zurück, ansonsten “prim”.
Dieser extrem einfach Test funktioniert sogar beinahe. Er schlägt
nur für sogenannte Carmichael-Zahlen fehl, das sind
zusammengesetzte Zahlen, die sehr wenige Fermat-Zeugen haben.
Diese Behauptung folgt unmittelbar aus dem Satz von
Euler-Fermat (siehe weiter oben im Abschnitt über RSA).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 166
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 167
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Wenn eine Zahl keine der relative seltenen Carmichael-Zahlen ist,
dann gibt es sogar sehr viele Fermat-Zeugen.
Carmichael-Zahlen
Eine zusammengesetzte Zahl n heißt Carmichael-Zahl, falls alle
Fermat-Zeugen dieser Zahl nicht teilerfremd zu n sind. D.h., jedes
a ∈ {1, . . . , n − 1} mit ggT (a, n) = 1 erfüllt an−1 mod n = 1.
Die kleinste solche Carmichael-Zahl ist 561 = 3 · 11 · 17.
Es ist außerdem bekannt, dass jede Carmichael-Zahl ungerade ist.
Anzahl der Fermat-Zeugen
Sei n eine zusammengesetzte Zahl, die keine Carmichael-Zahl ist.
Dann ist die Anzahl der Fermat-Zeugen in {1, . . . , n − 1} größer
gleich n2 .
Beweis:
Zur Erinnerung: die Elemente von
Z∗n = {a ∈ {1, . . . , n − 1} | ggT (a, n) = 1} bilden eine Gruppe
bezüglich der Multiplikation.
Wir betrachten nun
B = {a ∈ Z∗n | an−1 mod n = 1}.
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 168
“Form. Asp. der Software-Sicherheit und Kryptographie” 169
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Man kann leicht zeigen, dass B eine Untergruppe von Z∗n ist (1 ∈ B
und B ist abgeschlossen unter Multiplikation und Inversenbildung).
B ist eine Untergruppe von Z∗n ist aber nicht gleich Z∗n , denn da n
keine Carmichael-Zahl ist, enthält Z∗n mindestens einen
Fermat-Zeugen. Nach dem Satz von Lagrange ist die Anzahl der
Elemente einer Untergruppe ein Teiler∗der Anzahl der Elemente der
gesamten Gruppe. Daher gilt |B| ≤ |Z2n | < n2 .
Zn \Z∗n
Außerdem sind alle Elemente von
Fermat-Zeugen. Daher ist
die Zahl der Nicht-Fermat-Zeugen durch n2 beschränkt.
Für Carmichael-Zahlen benötigen wir nun noch ein zusätzliches
Kriterium.
Miller-Zeuge
Sei n > 1 und sei b ∈ {1, . . . , n − 1} mit
b 6= 1
b 6= n − 1
b 2 mod n = 1
Dann ist n eine zusammengesetzte Zahl.
Die Zahl b heißt auch Miller-Zeuge für n oder nicht-triviale
Quadratwurzel von 1.
Beweis: es gilt n | (b 2 − 1) = (b − 1)(b + 1), jedoch n - b − 1 und
n - b + 1. Damit kann n keine Primzahl sein, denn wenn eine
Primzahl ein Produkt teilt, teilt sie auch einen der Faktoren.
Bemerkung: b mod n 6= n − 1 ist äquivalent zu b 6≡ −1 (mod n).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 170
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 171
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Man kann nun folgendes zeigen:
Wahrscheinlichkeit für einen Miller-Zeugen
Gegeben sei eine Carmichael-Zahl n, insbesondere ist damit n
ungerade. Sei außerdem n − 1 = 2k · m mit m ungerade und k ≥ 1.
Für ein zufällig gewähltes a ist die Wahrscheinlichkeit, dass sich in
i
der Menge {a2 ·m | 0 ≤ i < k} ein Miller-Zeuge für n befindet,
größer als 12 .
Der Beweis ist recht technisch, ist jedoch ähnlich zu dem
Nachweis, dass eine Zahl n, die keine Carmichael-Zahl ist, mehr als
n
2 Fermat-Zeugen hat. Auch hier wird der Satz von Lagrange
verwendet.
Bei Zahlen, die keine Carmichael-Zahlen sind, ist die
Wahrscheinlichkeit einen Miller-Zeugen zu finden viel geringer.
Barbara König
Man sucht nun nicht zufällig nach solchen Miller-Zeugen, sondern
nutzt folgende Tatsachen aus:
Angenommen, n ist ungerade und der Test für den
Fermat-Zeugen schlägt fehl, d.h., an−1 mod n = 1.
Sei nun n − 1 = 2k · m für k ≥ 1 und m ungerade.
Falls am mod n = 1 gilt, dann geben wir auf und geben (evtl.
zu Unrecht) aus, dass die Zahl eine Primzahl ist.
Ansonsten (am mod n 6= 1) quadrieren wir die Zahl am immer
k
wieder, bis a2 ·m erreicht ist. Da letztere Zahl kongruent 1
modulo n ist, erreichen wir irgendwann den ersten Index i mit
i
a2 ·m mod n = 1 (und dies gilt auch für Indizes größer als i).
i−1
Falls nun a2 ·m mod n 6= n − 1 gilt, so haben wir einen
i−1
Miller-Zeugen b = a2 ·m gefunden ( Zahl ist
zusammengesetzt!). Ansonsten geben wir wieder auf und
geben “prim” aus.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 172
“Form. Asp. der Software-Sicherheit und Kryptographie” 173
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Beispiel:
Bemerkung: in der Folge
i
k
am mod n, . . . , a2 ·m mod n, . . . , a2 ·m mod n = an−1 mod n
können nur folgende Muster auftauchen.
1, 1, . . . , 1
Primzahl?
?, . . . , ?, 1, . . . , 1
zusammengesetzte Zahl!
?, . . . , ?, n − 1, 1, . . . , 1
Primzahl?
zusammengesetzte Zahl!
?, . . . , ? bzw. ?, . . . , ?, n − 1
n−1
(kann nur auftreten, falls a
mod n 6= 1 und damit a ein
Fermat-Zeuge ist)
Dabei steht ? für eine Zahl ungleich 1 und ungleich n − 1.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 174
Sei n = 561.
Wir wählen zufällig a = 5 und testen, ob a ein Fermat-Zeuge
für n ist: 5560 mod 561 = 1. D.h., 5 ist kein Fermat-Zeuge.
Es gilt 560 = 24 · 35. Wir berechnen
535 mod 561 = 23
52·35 mod 561 = 232 mod 561 = 529
2
52 ·25 mod 561 = 5292 mod 561 = 463
3
52 ·25 mod 561 = 4632 mod 561 = 67
4
52 ·25 mod 561 = 672 mod 561 = 1
(Das wurde vorher schon berechnet!)
Also ist b = 67 ein Miller-Zeuge und das Verfahren gibt aus,
dass 561 zusammengesetzt ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 175
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Primzahltests
Das Verfahren kann effizient so implementiert werden, dass
zunächst am mod n berechnet wird und dann sukzessive Quadrate
genommen werden.
Miller-Rabin-Primzahltest
Eingabe: eine ungerade natürliche Zahl n ≥ 3
Wähle zufällig ein a ∈ {1, . . . , n − 1}
falls ggT (a, n) 6= 1, gebe “zusammengesetzt” aus
sei n − 1 = 2k · m mit m ungerade
falls am mod n = 1, gebe “prim” aus
for i = 0 to k − 1 do
i
falls a2 ·m mod n = n − 1, dann gebe “prim” aus
end
gebe “zusammengesetzt” aus
Gerade natürliche Zahlen müssen separat getestet werden.
Barbara König
Zusammenfassung (Miller-Rabin-Primzahltest):
Es gibt ein Verfahren, das bei Eingabe einer natürlichen Zahl
n “prim” oder “zusammengesetzt” ausgibt, wobei
mit einer Wahrscheinlichkeit größer gleich 12
“zusammengesetzt” ausgegeben wird, wenn n
zusammengesetzt ist.
immer “prim” ausgegeben wird, wenn n eine Primzahl ist.
Das Verfahren hat außerdem polynomiale Laufzeit.
Daher folgt COMPOSITE ∈ RP.
Man kann auch PRIMES ∈ RP nachweisen, daher gilt
COMPOSITE ∈ RP ∩ co-RP = ZPP und auch
PRIMES ∈ ZPP.
Inzwische wurde sogar gezeigt, dass PRIMES ∈ P gilt
(Agrawal, Kayal, Saxena). Dennoch wird der probabilistische
Test noch bevorzugt, da er wesentlich effizienter ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 176
“Form. Asp. der Software-Sicherheit und Kryptographie” 177
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Primzahltests
Einwegfunktionen
Weitere Bemerkungen:
Ein wichtiges Konzept in der Komplexitätstheorie sind sogenannte
Zeugen oder Zertifikate, die garantieren, dass ein Wort x in einer
Sprache L liegt. Für probabilistische Komplexitätsklassen ist die
Situation wie folgt:
Gibt es für jedes Wort x ausreichend viele Zeugen für x ∈ L
und x 6∈ L, so liegt L in ZPP.
Gibt es für jedes Wort x ausreichend viele Zeugen für x ∈ L,
so liegt L in RP.
Wir betrachten nun sogenannte Einwegfunktionen, das sind intuitiv
Funktionen, die
leicht zu berechnen sind – sie liegen in FP – und
deren Umkehrung fast immer schwer zu berechnen ist.
Zusätzlich fordert man im allgemeinen auch noch, dass die
Umkehrung sogar dann schwer zu berechnen ist, wenn man ein
probabilistisches Verfahren verwendet.
Gibt es keine Zeugen, aber erhält hat man trotzdem
ausreichend hohe Wahrscheinlichkeiten dafür, dass x ∈ L bzw.
x 6∈ L gilt, so liegt L in BPP.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 178
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 179
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Einwegfunktionen
Wir betrachten im folgenden nur ehrliche Funktionen. Das sind
Funktionen, die ihre Eingabe nicht zu stark verkürzen. Denn wenn
die Größe des Urbildes nicht polynomial in der Größe des Bildes ist,
dann kann das Urbild sowieso nicht in polynomialer Zeit gefunden
werden. Damit gäbe es triviale Einwegfunktionen, an denen wir
aber nicht interessiert sind.
Ehrliche Funktionen
Eine Funktion f : Σ∗ → Γ∗ heißt ehrlich, falls es ein Polynom q
gibt, so dass für alle x ∈ Σ∗ gilt:
|x| ≤ q(|f (x)|)
Einwegfunktion
Eine Funktion f : {0, 1}∗ → {0, 1}∗ heißt Einwegfunktion, falls
f liegt in FP,
f ist ehrlich und
für jede probabilistische polynomzeitbeschränkte
Turingmaschine M and für jedes Polynom p gilt
P(f (M(f (x))) = f (x)) <
1
,
p(n)
falls x zufällig aus der Menge {0, 1}n gewählt wird.
Intuitiv: die Wahrscheinlichkeit dafür, dass M die Funktion korrekt
invertiert, ist vernachlässigbar.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 180
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 181
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Einwegfunktionen
Was bedeutet die Wahrscheinlichkeit P(f (M(f (x))) = f (x))?
Bemerkungen:
M(y ) ist eine Zufallsvariable, die die Ausgabe der
probabilistischen Turingmaschine M bei Terminierung angibt,
wenn die Turingmaschine mit Eingabe y gestartet wurde.
f (M(f (x))) = f (x) bedeutet, dass die Turingmaschine M
korrekt ein Urbild von f (x) berechnet hat. Da f nicht bijektiv
sein muss, können wir nicht erwarten, dass dieses Urbild auch
gleich x sein muss.
Elementarereignisse: die Elementarereignisse stammen aus der
0
Menge Ω = {0, 1}n × {0, 1}q(q (n)) , wobei q das Polynom ist,
das die Laufzeit von M beschränkt und q 0 das Polynom ist,
das die Laufzeit der Maschine beschränkt, die f berechnet.
D.h., ein Elementarereignis ist ein Paar bestehend aus einem
Wort x ∈ {0, 1}n und einem Zufallsbit-String b̃. Alle
Elementarereignisse sind gleich wahrscheinlich.
Wir betrachten nun folgende Zufallsvariable XM :

 1 falls M bei Eingabe f (x) und mit Zufallsbits b̃
XM (x, b̃) =
ein Urbild von f (x) bestimmt

0 sonst
Beschränkt wird also die Wahrscheinlichkeit P(XM = 1).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 182
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 183
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Faktorisierung
Warum fordert man nicht sogar
P(f (M(f (x))) = f (x)) <
1
p(n)
für jedes x ∈ {0, 1}n ? Die Elementarereignisse würden in diesem
Fall nur auf den Zufallsbit-Strings bestehen.
Solche Einwegfunktionen kann es gar nicht geben! Man kann nie
verhindern, dass der Entschlüsselungsalgorithmus auf bestimmten
verschlüsselten Nachrichten korrekt funktioniert. Beispielsweise
könnte die Turingmaschine immer eine feste Nachricht ausgeben.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 184
Wir betrachten nun einige mögliche Kandidaten für
Einwegfunktionen, zunächst die Funktion pmult:
Primzahlmultiplikation pmult
pmult(p, q) = p · q,
wobei p, q beide k-Bit Primzahlen sind.
Die Funktion pmult liegt in FP. Die Umkehrfunktion müsste die
Faktorisierung eines Produkts von Primzahlen bestimmen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 185
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Faktorisierung
Diskreter Logarithmus
Als Entscheidungsproblem kann man das Faktorisierungsproblem
folgendermaßen darstellen:
Um den diskreten Logarithmus definieren zu können, benötigen wir
zunächst einige Begriffe:
Faktorisierung
Eingabe: Zwei Zahlen n, r ∈ N0 , wobei n das Produkt von
zwei k-Bit Primzahlen ist.
Primitivwurzel modulo m
Eine Zahl g ∈ {0, . . . , m − 1} heißt Primitivwurzel modulo m, falls
g ein Generator der multiplikativen Gruppe
Ausgabe: Besitzt n einen Faktor p 6= 1, der kleiner als r ist?
Eine andere Variante des Entscheidungsproblems fragt, ob das i-te
Bit des kleineren Faktors gleich 1 ist.
Beide Probleme liegen in NP, es ist jedoch nicht bekannt, ob sie
NP-vollständig sind. Auch aus dem Beweis der NP-Vollständigkeit
und aus P 6= NP kann man nicht notwendigerweise schließen, dass
pmult eine Einwegfunktion ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 186
Z∗m = {a ∈ {1, . . . , m − 1} | ggT (a, m) = 1}
ist. D.h., es muss gelten:
{g k mod m | k ∈ N0 } = Z∗m
Bemerkung: Es gilt |Z∗m | = ϕ(m).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 187
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Diskreter Logarithmus
Diskreter Logarithmus
Wir betrachten die Funktion dexp:
Bemerkungen:
Nicht für alle m ∈ N0 gibt es Primitivwurzeln. Es gibt jedoch
auf jeden Fall Primitivwurzeln, falls m eine Primzahl ist.
Nicht jedes Element von Z∗p ist eine Primitivwurzel, auch
wenn p eine Primzahl ist. Beispielsweise gilt für p = 7:
20 mod 7 = 1, 21 mod 7 = 2, 22 mod 7 = 4,
23 mod 7 = 1
2 ist keine Primitivwurzel modulo 7
0
3 mod 7 = 1, 31 mod 7 = 3, 32 mod 7 = 2,
33 mod 7 = 6, 34 mod 7 = 4, 35 mod 7 = 5,
36 mod 7 = 1
3 ist eine Primitivwurzel modulo 7
Barbara König
Diskrete Exponentialfunktion
Gegen seien eine Primzahl p, eine Primitivwurzel g modulo p und
x ∈ Z∗p = {1, . . . , p − 1}. Wir definieren
dexp(p, g , x) = (p, g , g x mod p)
Die Funktion dexp liegt in FP.
Die Umkehrfunktion, die aus g x mod p (und p und g ) den
eindeutig bestimmten Exponenten x berechnet heißt diskreter
Logarithmus und gilt als schwer zu berechnen.
Auch für den diskreten Logarithmus existiert ebenfalls ein
dazugehöriges Entscheidungsproblem.
“Form. Asp. der Software-Sicherheit und Kryptographie” 188
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 189
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Einwegfunktionen
Forderung: im Fall der symmetrischen Verschlüsselung ist die
Verschlüsselungsfunktion E für einen festen Schlüssel eine
Einwegfunktion.
Existieren Einwegfunktionen?
das weiß man nicht genau. Man weiß nur, dass folgendes aus
der Existenz von Einwegfunktionen folgen würde:
P 6= NP und NP 6⊆ BPP
es gibt (sichere) symmetrische Verschlüsselungsverfahren, die
mit kurzen Schlüsseln arbeiten (anders als der One-Time-Pad)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 190
Falls Einwegfunktionen existieren, dann gilt P 6= NP. Außerdem
gilt dann NP 6⊆ BPP, d.h., es gibt eine Sprache in NP\BPP.
Beweis: sei f : {0, 1}∗ → {0, 1}∗ eine Einwegfunktion und sei
Lf = {(x, y ) | ∃u ∈ {0, 1}∗ : f (xu) = y }.
Lf liegt in NP, denn u kann geraten und in Polynomzeit überprüft
werden. Falls P = NP gilt, so wäre Lf in Polynomzeit entscheidbar,
und man kann Lf dazu benutzen, um in Polynomzeit ein Urbild für
einen gegebenen Funktionswert f (x) zu bestimmen. (Siehe
Argumentation für die sehr ähnliche Sprache LE weiter oben.) Das
ist ein Widerspruch dazu, dass f eine Einwegfunktion ist.
Außerdem kann Lf nicht in BPP liegen, denn dann gäbe es eine
probabilistische Turingmaschine, die mit ausreichend hoher
Wahrscheinlichkeit Urbilder finden würde.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 191
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Einwegfunktionen
Eine beliebige Einwegfunktion – wenn sie existieren sollte – kann
man nicht direkt für symmetrische Verschlüsselung verwenden. Der
Grund dafür ist, dass es auch eine dazugehörige
Entschlüsselungsfunktion geben muss, die leicht zu berechnen ist.
Bemerkung:
Es ist nicht bekannt, ob die umgekehrten Folgerungen gelten: d.h.,
man weiß nicht, ob aus P 6= NP oder NP 6⊆ BPP die Existenz einer
Einwegfunktion folgt. (Das liegt daran, dass eine Einwegfunktion
nicht nur im worst-case schwer zu invertieren sein sollte.)
Barbara König
Aber: die Existenz von Einwegfunktionen garantiert die Existenz
von Pseudo-Zufallsgeneratoren.
Pseudo-Zufallsgenerator (informell)
Ein Pseudo-Zufallsgenerator ist ein deterministisches Verfahren,
das aus einem gegebenen Startwert eine Sequenz von Bits erzeugt,
die von einer probabilistischen polynomzeit-beschränkten
Turingmaschine nicht von einer zufällig erzeugten Bit-Sequenz
unterschieden werden kann.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 192
“Form. Asp. der Software-Sicherheit und Kryptographie” 193
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Einwegfunktionen
Falltürfunktionen
Anwendungen für Pseudo-Zufallsgeneratoren:
Nach Austausch eines symmetrischen Schlüssels kann dieser
als Startwert für einen Pseudo-Zufallsgenerator verwendet
werden. Damit kann der One-Time-Pad simuliert werden und
sichere symmetrische Verschlüsselung erreicht werden.
Generierung von Nonces.
Generierung von Zufallszahlen für randomisierte Verfahren,
Derandomisierung von randomisierten Verfahren.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 194
Für asymmetrische Verschlüsselung müssen wir noch mehr fordern:
sogenannte Falltürfunktionen.
Falltürfunktion (informell)
Die Verschlüsselungsfunktion E eines asymmetrischen
Kryptosystems heißt Falltürfunktion, wenn
E in Polynomzeit berechnenbar ist, wenn der öffentliche
Schlüssel bekannt ist,
die Entschlüsselungsfunktion D in Polynomzeit berechenbar
ist, wenn der private Schlüssel bekannt ist und
die Wahrscheinlichkeit, für zufällig gewählte Nachrichten und
Schlüssel, E nur unter Kenntnis des öffentlichen Schlüssels zu
invertieren,¡ vernachlässigbar ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 195
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Falltürfunktionen
Falltürfunktionen
Das heißt, es gibt eine “geheime Falltür” (den privaten Schlüssel),
mit Hilfe derer die Verschlüsselungsfunktion doch einfach zu
invertieren ist.
Man vermutet, dass das RSA-Kryptosystem eine Falltürfunktion
darstellt. Dies ist jedoch nicht bewiesen, denn die Existenz einer
Falltürfunktion würde auch die Existenz von Einwegfunktionen
garantieren.
Immerhin weiß man aber folgendes über die Sicherheit von RSA:
Faktorisierungsalgorithmus durch Kenntnis der RSA-Schlüssel
Falls die RSA-Schlüssel (e, n) und (d, n) bekannt sind, gibt es
einen probabilistischen Polynomzeit-Algorithmus, der n in die
Faktoren p, q aufspaltet.
Außerdem ist unklar, ob daraus, dass die Faktorisierungsfunktion
eine Einwegfunktion ist, folgt, dass die RSA-Funktion eine
Falltürfunktion ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 196
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 197
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Falltürfunktionen
Die fünf Welten von Impagliazzo
Beweis (Skizze): sei e · d − 1 = 2k · m mit m ungerade.
Das Verfahren zur Faktorisierung von n beruht auf der Tatsache,
dass für ein zufällig gewähltes a ∈ {1, . . . , n − 1} die
Wahrscheinlichkeit, in der Menge
i
{a2 ·m | 0 ≤ i < k}
einen Miller-Zeugen für n zu finden, größer gleich 21 ist (ohne
Beweis).
Angenommen, b wäre ein solcher Miller-Zeuge, d.h., n | (b 2 − 1),
aber n - (b − 1) und n - (b + 1). D.h., es gilt p | (b − 1) und
q | (b + 1) (oder umgekehrt).
Man bestimmt nun p = ggT (b − 1, n) und q = pn .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 198
Es ist unbekannt, ob Einweg- und Falltürfunktionen existieren.
Diese Frage hängt mit der Frage nach P 6= NP zusammen, ist aber
nicht gleichbedeutend.
In seinem Artikel “A Personal View of Average-Case Complexity”
hat Russell Impagliazzo die möglichen Antworten auf diese Fragen
zusammengestellt und fünf daraus resultierende mögliche Welten
beschrieben.
Er geht dabei davon aus, dass – wenn ein Problem in P liegt – der
dazugehörige Polynomzeitalgorithmus bekannt und praktikabel ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 199
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Die fünf Welten von Impagliazzo
Die fünf Welten von Impagliazzo
Algorithmica
In Algorithmica gilt P = NP (oder zumindest NP ⊆ BPP, was im
wesentlichen dieselben Auswirkungen hat).
Fast alle Optimierungsprobleme wären einfach.
Programme müssten nur noch die Eigenschaften der Ausgabe
beschreiben, das Berechnungsverfahren kann automatisch
generiert werden.
Es gibt keine Einweg- oder Falltürfunktionen.
Alle Kryptosysteme, die mit beschränkten Schlüssellängen
arbeiten, sind einfach zu brechen.
Es gibt keine Authentifizierungsverfahren.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 200
Heuristica
Heuristica ist die Welt, in der NP-Probleme im worst-case
schwierig zu lösen sind, aber fast alle zufällig gewählten Instanzen
einfach sind. Insbesondere können schwere Instanzen nur mit
großem Aufwand gefunden werden.
Da schwere Probleme sehr selten sind, können in der Praxis
fast alle Aufgabenstellungen (aus NP) effizient gelöst werden.
Auch in Heuristica ist Kryptographie im wesentlichen nicht
möglich, da schwere Instanzen – d.h., schwer zu
entschlüsselnde Nachrichten – nicht verläßlich produziert
werden können.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 201
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Die fünf Welten von Impagliazzo
Die fünf Welten von Impagliazzo
Pessiland
Pessiland ist – nach Impagliazzo – die schlimmste aller Welten. Es
ist einfach, schwere Instanzen von NP-Problemen zu finden, aber
es ist nicht möglich, verläßlich schwere und gelöste Instanzen zu
erzeugen.
Es gibt wenige Vorteile für das Lösen von Problemen.
Es gibt keine Einwegfunktionen, denn Einwegfunktionen sind
gerade ein Verfahren, um effizient schwere und gelöste
Instanzen (das Bild der zu versendenden Nachricht unter der
Einwegfunktion) zu generieren.
Ebensowenig ist Authentifizierung möglich.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 202
Minicrypt
In Minicrypt kann man schwere und gelöste Instanzen von
NP-Problemen generieren, d.h., es existieren Einwegfunktionen.
Aber es gibt keine Falltürfunktionen.
Es gibt wenige positive algorithmische Aspekte. Man kann
jedoch aus Einwegfunktionen Pseudo-Zufallsgeneratoren
erzeugen und damit probabilistische Algorithmen
derandomisieren.
Symmetrische Verschlüsselung und Authentifizierung sind
möglich.
Asymmetrische Verschlüsselungsverfahren sind nicht möglich.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 203
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Die fünf Welten von Impagliazzo
Kryptographische Protokolle: Motivation
Cryptomania
In Cryptomania existieren zusätzlich noch Falltürfunktionen.
Es gibt immer noch Einwegfunktionen,
Pseudo-Zufallsgeneratoren, etc. und auch hier sind
symmetrische Verschlüsselung und Authentifizierung möglich.
Zusätzlich sind auch asymmetrische Verschlüsselung und
zahlreiche andere kryptographische Protokolle (Austausch von
geheimen Schlüsseln, digitale Signaturen, elektronische
Wahlen, elektronische Bezahlverfahren, etc.) möglich.
Cryptomania entspricht von den praktischen Auswirkungen her am
ehesten unserer heutigen Welt. Es ist aber nicht klar, ob wir
wirklich in Cryptomania leben!
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 204
Falls wir in Cryptomania leben, gibt es Falltürfunktionen und
asymmetrische Verschlüsselung. Damit kann man zahlreiche
interessante kryptographische Protokolle gewinnen.
Digitale Unterschriften
Authentifizierungs- und Identifizierungs-Protokolle
Zero-Knowledge-Protokolle
Secure Multi-Party Computations
Wir werden uns im folgenden einige davon genauer ansehen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 205
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Digitale Unterschriften
Digitale Unterschriften
Ein asymmetrisches Kryptosystem, das kommutativ ist, kann auch
für digitale Unterschriften verwendet werden.
Kommutatives, asymmetrisches Kryptosystem
Ein asymmetrisches Kryptosystem heißt kommutativ, falls
M = CM und folgende Bedingung für die Verschlüsselungsfunktion
E : M × Ke → M und die Entschlüsselungsfunktion
D : M × Kd → M gilt:
D(E (m, e), d) = E (D(m, d), e)
für jedes m ∈ M und jedes Schlüsselpaar (e, d) ∈ K .
Beispiel: RSA ist kommutativ, denn es gilt:
D(E (m, (e, n)), (d, n)) = D(me mod n, (d, n)) = (me )d mod n
= (md )e mod n = E (md mod n, (e, n)) = E (D(m, (d, n)), (e, n))
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 206
Digitale Unterschrift
Alice, die eine Nachricht m an Bob schicken will,
“entschlüsselt” diese mit ihrem privaten Schlüssel dA , erhält
s = D(m, dA ) und schickt (m, s) an Bob.
Bob “verschlüsselt” s mit Hilfe von Alice’ öffentlichem
Schlüssel eA und überprüft, ob E (s, eA ) = m. Falls ja, so
akzeptiert er die Unterschrift.
Aufgrund der Kommutativität des Kryptosystems ergibt sich
aus einer korrekten Signatur wieder die ursprüngliche
Nachricht.
Nur Alice kennt dA und sie hat durch die Erzeugung von s
nachgewiesen, dass sie dA besitzt. Denn ohne Kenntnis von
dA ist die Entschlüsselung zu aufwändig (unter der Annahme,
dass E eine Falltürfunktion ist).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 207
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Digitale Unterschriften
Identifizierung und Authentifizierung
Weitere Bemerkungen:
Wenn ein Kryptosystem auch zum Signieren verwendet wird,
so ist relativ leicht ein Chosen-Ciphertext-Angriff auf das
Kryptosystem durchführbar: man bringt den Teilnehmer dazu,
den gewählten Ciphertext zu signieren.
In der Praxis wird nicht die gesamte Nachricht, sondern ein
Hashwert, der aus der Nachricht gebildet wird, “entschlüsselt”
und als Signatur mitgeschickt.
Allerdings muss dann eine Hashfunktion gewählt werden, so
dass es schwierig ist, zwei Nachrichten mit demselben
Hashwert zu finden (Kollision). In diesem Fall könnte er Alice
eine Nachricht unterschreiben lassen, aber die andere mit
dieser Signatur verschicken.
Barbara König
Identifizierungs- und Authentifizierungsverfahren dienen dazu, dass
Teilnehmer in einem Netzwerk gegenüber anderen eindeutig ihre
Identität nachweisen können.
Dies geschieht zumeist dadurch, dass sie nachweisen, ein
Geheimnis zu kennen, das nur diesem bestimmten Teilnehmer
bekannt sein sollte.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 208
“Form. Asp. der Software-Sicherheit und Kryptographie” 209
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Identifizierung und Authentifizierung
Identifizierung und Authentifizierung
Ein typisches Identifizierungsverfahren ist das folgende: dabei
kommunizieren Victor (“Verifier”) und Peggy (“Prover”). Peggy
möchte sich gegenüber Victor identifizieren.
Challenge-Response-Schema mit öffentlichem Schlüssel
Victor wählt eine Zufallszahl (einen Nonce) r und berechnet
den dazugehörigen Hashwert x = h(r ). Er verwendet den
öffentlichen Schlüssel eP von Peggy, berechnet den Challenge
c = E (r , eP ) und schickt c, x an Peggy (gemeinsam mit seiner
Identität).
Peggy beschließt, sich Victor gegenüber zu identifizieren. Sie
berechnet r = D(c, dP ) und überprüft, ob x = h(r ). Dann
schickt sie r an Victor.
Victor akzeptiert den Beweis von Peggys Identität, falls sie
den korrekten Wert r zurückliefert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 210
Bemerkungen:
Durch die Entschlüsselung signiert Peggy den Challenge c. Sie
weist dadurch – wie bei einer Signatur – nach, dass sie ihren
privaten Schlüssel kennt.
Eine Zufallszahl r (statt einer festen Zahl) wird verwendet,
damit kein Replay-Angriff durchgeführt werden kann.
Durch den Hashwert x weiß Peggy, dass Victor den Wert r
bereits kennt. Sie gibt ihm damit keine zusätzlichen
Informationen und liefert ihm dadurch keine bisher
unbekannte Signatur.
Dieses Schema hat Vorteile gegenüber einer
Passwort-basierten Identifizierung. Es muss kein Passwort
ausgetauscht werden und auch wenn ein Angreifer die
Kommunikation abhört, kann er sich anschließend nicht als
Peggy ausgeben.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 211
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Identifizierung und Authentifizierung
Interaktive Beweissysteme
Wir wollen garantieren, dass Peggy außer ihrer Identität Victor
gegenüber keine weiteren Informationen verrät (beispielsweise ihren
öffentlichen Schlüssel).
Insbesondere sind wir an Protokollen interessiert, bei denen Peggy
Victor davon überzeugen kann, ein Geheimnis zu kennen, ohne
dieses Geheimnis selbst zu verraten. Solche Protokolle sind unter
dem Namen Zero-Knowledge-Protokolle bekannt.
Wir beschreiben zunächst interaktive Beweissysteme, bei denen
noch nicht unbedingt verlangt wird, dass keine Informationen
preisgegeben werden.
Es gibt eine Eingabe x ∈ Σ∗ , die beide Partner kennen. Victor und
Peggy senden sich wechselseitig Nachrichten und stellen Anfragen.
Victor entscheidet zuletzt, ob x akzeptiert wird.
Man macht dabei folgende Beschränkungen:
Victor ist eine polynomzeitbeschränkte probabilistische
Turingmaschine.
Peggy hat unbeschränkte Resourcen, insbesondere darf sie
nicht-deterministisch arbeiten, beliebig viel Zeit verbrauchen
und Zufallsbits verwenden.
Es werden nur polynomial viele Nachrichten ausgetauscht, die
auch nur polynomiale Länge haben.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 212
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 213
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Interaktive Beweissysteme
Beispiel: wir betrachten folgende zwei Graphen G1 , G2
Wir betrachten ein interaktives Beweissystem für
Nicht-Graphisomorphie, ein Problem, von dem nicht bekannt ist,
ob es in NP oder in BPP liegt.
NON-GRAPHISO
Eingabe: ein Paar (G1 , G2 ), bestehend aus zwei ungerichteten
Graphen G1 = (V1 , E1 ), G2 = (V2 , E2 ). Dabei gilt
V1 = V2 = {1, . . . , n} und eine Kante e ∈ Ei ist eine
zweielementige Knotenmenge.
Ausgabe: Sind die Graphen G1 , G2 nicht isomorph? Das heißt,
es gibt keine Permutation π : V1 → V2 , so dass {v1 , v2 } ∈ E1
genau dann, wenn {π(v1 ), π(v2 )} ∈ E2 .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 214
2
1
3
4
1
2
3
4
G1 und G2 sind isomorph, d.h., (G1 , G2 ) 6∈ NON-GRAPHISO.
Eine Permutation, die die Isomorphie nachweist ist
π : {1, 2, 3, 4} → {1, 2, 3, 4} mit π(1) = 2, π(2) = 1, π(3) = 4,
π(4) = 3.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 215
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Interaktive Beweissysteme
Das interaktive Beweissystem für NON-GRAPHISO funktioniert
wie folgt: seien G1 , G2 zwei Graphen, beide mit Knotenmenge
{1, . . . , n}.
1
2
Victor wählt eine Zufallszahl i ∈ {1, 2} und eine zufällige
Permutation π : {1, . . . , n} → {1, . . . , n}.
Victor benennt die Knoten von Gi mit Hilfe von π um und
erhält dadurch H = π(Gi ). Er schickt H an Peggy und fragt
nach einem Index i, so dass Gi und H isomorph sind.
3
Peggy antwortet mit einem Index j.
4
Victor akzeptiert, falls i = j.
Barbara König
Falls G1 und G2 nicht isomorph sind, so kann Peggy – mit ihren
unbeschränkten Resourcen – immer herausfinden, ob H isomorph
zu G1 oder zu G2 ist und eine korrekte Antwort schicken.
Falls die Graphen isomorph sind, so kann Peggy nur raten und kann
daher nur in der Hälfte der Fälle eine korrekte Antwort schicken.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 216
“Form. Asp. der Software-Sicherheit und Kryptographie” 217
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Interaktive Beweissysteme
Interaktives Beweissystem für eine Sprache
Eine Sprache L hat ein polynomiales interaktives Beweissystem,
wenn es ein – wie oben beschriebenes – interaktives Beweissystem
gibt, das folgende Bedingung erfüllt: es gibt einen Verifier V und
einen Prover P, wobei folgendes gilt.
falls x ∈ L liegt, dann ist die Wahrscheinlichkeit, dass V , P
gemeinsam das Wort x akzeptieren, größer gleich 43 .
falls x 6∈ L liegt, dann ist für jeden (potentiell bösartigen)
Prover P 0 die Wahrscheinlichkeit, dass V , P 0 gemeinsam das
Wort x akzeptieren, kleiner gleich 41 .
IP ist die Menge aller Sprachen, die ein polynomiales interaktives
Beweissystem haben.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 218
Bemerkungen:
Intuitiv ist P der gutartige Prover, der in der Lage sein muss,
den Verifier V mit hoher Wahrscheinlichkeit zu überzeugen.
Ein bösartiger Prover P 0 – der V evtl. täuschen will – hat nur
eine niedrige Wahrscheinlichkeit, mit der er V überzeugen
kann (falls das Wort nicht in der Sprache liegt).
Wie bei den probabilistischen Komplexitätsklassen kann man
die Wahrscheinlichkeit für Akzeptanz bzw. fehlerhafte
Akzeptanz durch mehrfache Ausführung des Protokolls
erhöhen bzw. vermindern.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 219
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Interaktive Beweissysteme
NON-GRAPHISO hat ein polynomiales interaktives Beweissystem,
d.h., NON-GRAPHISO ∈ IP:
Falls (G1 , G2 ) ∈ NON-GRAPHISO, d.h., G1 , G2 sind nicht
isomorph, so antwortet Peggy immer richtig und Victor
akzeptiert mit Wahrscheinlichkeit 1.
Falls (G1 , G2 ) 6∈ NON-GRAPHISO, d.h., G1 , G2 sind
isomorph, so hat Peggy nur eine Wahrscheinlichkeit von
Victor zu Akzeptanz zu bewegen.
1
2
Um die Akzeptanzwahrscheinlichkeit im Fehlerfall auf kleiner gleich
1
4 zu drücken, ist es erforderlich, das Beweissystem zweimal
auszuführen, und auf Nicht-Isomorphie zu entscheiden, wenn
Peggy beide Male den korrekten Index schickt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 220
Analogie: Biertester
Im Finkenkrug gibt es zwei Sorten von Bier: Alt und Kölsch. Peggy
behauptet, mit verbundenen Augen zwischen beiden unterscheiden
zu können.
Ihr werden die Augen verbunden und sie erhält in einer Testreihe in
zufälliger Reihenfolge mit Alt und Kölsch gefüllte Gläser. Der Test
gilt als bestanden, wenn Peggy alle Gläser korrekt erkennt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 221
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Interaktive Beweissysteme
Man weiß folgendes über die Beziehung zwischen NP und IP:
NP ⊆ IP
Die Komplexitätsklasse NP ist eine Teilmenge von IP.
Beweis: jedes Wort einer NP-Sprache besitzt ein Zertifikat
polynomieller Länge, das in Polynomzeit verifiziert werden kann.
(Ein Zertifikat, das immer funktioniert, ist die Angabe eines
akzeptierenden Berechnungspfades in einer gegebenen
nicht-deterministischen Turingmaschine.)
BPP ⊆ IP
Die Komplexitätsklasse BPP ist eine Teilmenge von IP.
Beweis: Für ein Problem in BPP kann der Verifier selbst – ohne
jede Interaktion mit dem Prover – die Antwort mit der geforderten
Wahrscheinlichkeit berechnen.
Peggy kann dieses Zertifikat berechnen und an Victor schicken,
wobei Victor das Zertifikat überprüft. Die Wahrscheinlichkeiten für
korrekte Akzeptanz und fehlerhafte Akzeptanz sind sogar gleich 1
bzw. 0.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 222
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 223
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Interaktive Beweissysteme
Zero-Knowledge-Protokolle
Wir wollen nun präzisieren, was es bedeutet, dass durch ein
interaktives Beweissystem kein Wissen preisgegeben wird.
Von Adi Shamir stammt folgendes wichtige Resultat zu IP:
IP = PSPACE
Die Sprachen, die ein polynomiales interaktives Beweissystem
haben, sind genau die Sprachen, die von (deterministischen)
Turingmaschinen mit polynomialer Platzbeschränkung akzeptiert
werden.
Es existieren Sprachen in IP, von denen nicht bekannt ist, ob sie in
NP liegen (beispielsweise NON-GRAPHISO).
Perfekter Zero-Knowledge-Beweis
Ein Ablauf eines interaktiven Beweissystems P, V auf einer
Eingabe x erzeugt eine Folge von Nachrichten.
Ein solches interaktives Beweissystem ist ein perfektes
Zero-Knowledge-Beweissystem für L, wenn es für jeden –
möglicherweise bösartigen Verifier V 0 – eine probabilistische
polynomzeitbeschränkte Turingmaschine M gibt, die bei einer
Eingabe x ∈ L
dieselbe Menge von Protokollabläufen wie V 0 , P erzeugen
kann,
wobei die Protokollabläufe jeweils mit derselben
Wahrscheinlichkeit wie in einem echten Beweis von V 0 , P
vorkommen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 224
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 225
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Zero-Knowledge-Protokolle
Bemerkungen:
Die Turingmaschine M wird auch als Fälscher (engl. forger)
bezeichnet.
Ein Beobachter kann die Menge von Abläufen von V 0 , P nicht
von den von M erzeugten Abläufen unterscheiden.
Es muss für jeden Verifier V 0 gefordert werden, dass die
Protokollabläufe von V 0 , P simuliert werden können, denn es
muss sichergestellt werden, dass nicht nur der gutartige
Verifier V , der sich an das Protokoll hält, sondern auch ein
bösartiger Verifier, nicht in den Besitz von zusätzlichem
Wissen kommen kann.
Eine andere Definition (Computational Zero-Knowledge)
fordert nur, dass die Wahrscheinlichkeitsverteilungen für die
echten und gefälschten Protokollabläufe nicht in Polynomzeit
unterschieden werden können.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 226
Zero-Knowledge-Beweissystem für NON-GRAPHISO:
Das vorgestellte interaktive Beweissystem für NON-GRAPHISO ist
Zero-Knowledge, denn eine polynomzeitbeschränkte
Turingmaschine M kann bei Eingabe von nicht-isomorphen
Graphen G1 , G2 die Interaktion dadurch simulieren, dass sie Gi
geeignet permutiert und anschließend selbst die Antwort i schickt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 227
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Zero-Knowledge-Protokolle
Analogie: Biertester
Wenn Victor, der die Biersorten auswählt, und Peggy miteinander
kooperieren, dann können sie eine Testreihe durchführen, bei der
Peggy die Biersorten immer richtig benennt, auch wenn sie sie
eigentlich nicht unterscheiden kann.
Dazu muss vorab die Reihenfolge vereinbart werden oder Victor
und Peggy einigen sich auf ein geheimes Zeichen.
Ein Beobachter kann aus diesem Ablauf kein zusätzliches Wissen
gewinnen, denn der Ablauf könnte auch “simuliert” sein.
Insbesondere weiß er nichts über die echten Fähigkeiten von Peggy.
Wir betrachten nun einen weiteren Zero-Knowledge-Beweis für
GRAPHISO, das Komplement von NON-GRAPHISO. Von
GRAPHISO ist bekannt, dass es in NP liegt, aber nicht ob es
NP-vollständig ist.
1
2
3
4
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 228
Peggy wählt ein zufällige Permutation
π : {1, . . . , n} → {1, . . . , n}. Sie wendet π auf G1 an und
erhält H = π(G1 ). Dann schickt sie H an Victor.
Victor wählt eine Zufallszahl i ∈ {1, 2} und schickt diese an
Peggy.
Peggy bestimmt eine weitere Permutation σ mit H = σ(Gi )
und schickt σ an Victor.
Victor akzeptiert, falls σ(Gi ) = H.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 229
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Zero-Knowledge-Protokolle
Aus ähnlichen Gründen wie zuvor ist dieses Protokoll ein
interaktives Beweisprotokoll. Falls die Graphen G1 , G2 isomorph
sind, so akzeptieren Victor und Peggy gemeinsam mit
Wahrscheinlichkeit 1, denn Peggy findet immer eine entsprechende
Permutation σ.
Falls die Graphen nicht isomorph sind, dann muss Peggy in der
Hälfte der Fälle mit einer falschen Permutation σ antworten.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 230
Das Protokoll erfüllt außerdem die Zero-Knowledge-Bedingungen,
denn ein Ablauf kann folgendermaßen von M simuliert werden:
gegeben seien zwei isomorphe Graphen G1 , G2 , M kennt jedoch
nicht den dazugehörigen Isomorphismus.
M wählt eine zufällige Permutation σ und einen Index i. Dann
bestimmt sie H = σ(Gi ).
Die simulierten Nachrichten sind – der Reihe nach – H, i, σ.
Ein Beobachter kann nicht feststellen, dass H nicht unbedingt
durch Permutation von G1 gewonnen wurde.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 231
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Zero-Knowledge-Protokolle
Analogie: Verschlossene Tür
Auch im Falle eines bösartigen Verifiers kann jeder Ablauf durch
eine probabilistische Turingmaschine M simuliert werden.
Insbesondere folgt aus der Tatsache, dass es sich um ein
Zero-Knowledge-Protokoll handelt, dass der Verifier nicht in den
Besitz von Informationen kommen kann, die er nicht selbst in
probabilistischer Polynomzeit berechnen könnte.
D.h., falls GRAPHISO nicht in BPP liegt (was nicht bekannt ist),
dann gewinnt der Verifier aufgrund des Beweissystems keine
Informationen über den Isomorphismus zwischen zwei gegebenen
Graphen G1 , G2 .
In einem Gebäude mit dem folgenden Grundriss gibt es eine
verschlossene Tür. Peggy behauptet, dass sie weiß, wie diese Tür
geöffnet werden kann. Sie will nachweisen, dass sie die Tür öffnen
kann, will aber niemanden zeigen, wie das funktioniert.
linker
Korridor
rechter
Korridor
X
Tür
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 232
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 233
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Zero-Knowledge-Protokolle
Der Test funktioniert folgendermaßen: sie betritt das Gebäude und
geht – ohne dass jemand dies beobachten kann – entweder in den
linken oder rechten Korridor. Anschließend stellt sich Victor – mit
etwaigen Zeugen – auf den Punkt X. Er ruft anschließend entweder
“links” oder “rechts” und Peggy muss auf diesem Korridor das
Gebäude wieder verlassen. Dazu muss sie unter Umständen die
Türe durchqueren.
Wieder können Peggy und Victor gemeinsam einen korrekten
Protokollablauf simulieren, indem sie sich vorher über die Folge
von Links-/Rechts-Kommandos verständigen. Dieser Ablauf kann
von einem Beobachter nicht von einem korrekt ablaufenden Test
unterschieden werden.
Jede Sprache L ∈ BPP hat trivialerweise ein
Zero-Knowledge-Beweissystem. Eine solche Sprache benötigt
keinen “allmächtigen” Prover, sondern der Verifier kann alle
Berechnungen selbst ausführen.
Damit werden keine Nachrichten ausgetauscht und das
Interaktionsverhalten kann trivialerweise von einer weiteren
Maschine M simuliert werden.
Außerdem kann auch ein bösartiger Victor kein zusätzliches Wissen
über den Schließmechanismus der Tür erlangen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 234
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 235
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle
Bit Commitment
Falls Einwegfunktionen existieren, so kann man zeigen, dass jede
Sprache in NP (und sogar jede Sprache in IP!) ein
Zero-Knowledge-Beweissystem hat (im Sinne von Computational
Zero-Knowledge).
Wir werden uns dieses Resultat für NP genauer ansehen (unter der
stärkeren Voraussetzung, dass bijektive Einwegfunktionen
existieren). Dafür benötigt man jedoch zunächst Hilfsprotokolle . . .
Barbara König
Bit Commitment (Problemstellung)
Bob will, dass Alice sich auf den Wert eines Bits b ∈ {0, 1}
festlegt.
Alice könnte jetzt ein Bit wählen und an Bob schicken. Sie
will aber, dass Bob erst später von ihrer Wahl erfährt.
Wie kann Bob erreichen, dass sich Alice jetzt auf ein Bit
festlegt und später – wenn sie zusätzliche Informationen
besitzt – nicht bezüglich ihrer Festlegung lügen kann?
“Form. Asp. der Software-Sicherheit und Kryptographie” 236
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 237
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Bit Commitment
Bit Commitment
Anwendung:
Voraussetzungen:
Alice und Bob wollen ein Zahlenratespiel spielen:
Alice soll eine Zahl n ∈ {1, . . . , 100} wählen.
Bob nennt eine Zahl m und Alice sagt, ob m < n, m = n oder
m > n gilt.
Bob rät so lange, bis er die korrekte Zahl gefunden hat. Er soll
möglichst wenige Schritte brauchen.
Alice hätte einen Vorteil, wenn sie ihre Zahl während des Spiels
ändern kann. Von daher wäre es gut, wenn sie sich zu Beginn auf
eine Zahl festlegen könnte, ohne dass Bob diese Zahl kennt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 238
Eine bijektive Einwegfunktion f (eine sogenannte
Einweg-Permutation).
Ein Hardcore-Prädikat B ∈ FP zu f , so dass B(x) ∈ {0, 1}
nur mit einer Wahrscheinlichkeit p ≤ 12 + ε (wobei ε
vernachlässigbar ist) in Polynomzeit vorhergesagt werden
kann, wenn f (x) bekannt ist.
Sowohl f als auch B können in Polynomzeit berechnet werden.
D.h., insbesondere kann B(x) einfach berechnet werden, wenn x
bekannt ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 239
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Bit Commitment
Bit Commitment
Bit Commitment (Protokoll)
Kandidaten für Hardcore-Prädikate:
Bei der diskreten Exponentialfunktion: höchstwertiges Bit
Bei der RSA-Falltürfunktion: niedrigstwertiges Bit
Ein Funktion mit Hardcore-Prädikat ist zwangsläufig eine
Einwegfunktion. Außerdem existieren Hardcore-Prädikate, falls
Einwegfunktionen existieren.
Ein Einwegfunktion f und ein dazugehöriges Hardcore-Prädikat B
werden zu Beginn des Protokolls festgelegt.
Alice wählt ihr Bit b ∈ {0, 1}. Sie sucht ein x ∈ Σ∗ mit
B(x) = b und schickt C = f (x) (die Festlegung, engl.
commitment) an Bob.
Bob empfängt C , kann aus C allerdings keine Informationen
über b erlangen.
Später kann Alice Bob gegenüber nachweisen, dass sie sich
auf b festgelegt hat, indem sie x an Bob schickt.
Bob überprüft dann, ob C = f (x) gilt und berechnet B(x).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 240
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 241
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Bit Commitment
Bit Commitment
Bemerkungen:
Es ist wichtig, dass f eine Einweg-Permutation ist. Ansonsten
hat f (x) evtl. mehrere Urbilder, von denen sich Alice später
eines aussuchen kann.
Die Festlegung C werden wir in Zukunft auch mit C (b)
bezeichnet.
Wie lang soll x gewählt werden?
Eigentlich sollte die Sicherheit eines Protokolls in der
Länge der Eingabe gemessen werden. Hier ist die Eingabe (ein
Bit!) jedoch sehr kurz. Von daher nimmt man als Ersatz einen
Sicherheitsparameter als zusätzliche Eingabe. Dieser ist
einfach eine Zeichenkette 1k und in Bezug auf k muss die
Erfolgswahrscheinlichkeit für den Angreifer vernachlässigbar
sein.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 242
Ein klassische “Anwendung” für Bit Commitment ist die folgende:
Münzwurf über das Telefon
Alice und Bob kommunizieren über das Telefon (bzw. Internet)
und wollen gemeinsam eine Zufallszahl bestimmen. Sie vertrauen
einander nicht und die Aufgabe soll daher nicht einer der beiden
Parteien überlassen werden.
Die grundlegende Idee ist, dass beide ein Bit wählen und das
Zufallsbit durch xor-Verknüpfung dieser Bits entsteht. Durch Bit
Commitment wird verhindert, dass einer der beiden Partner sein
gewähltes Bit im Nachhinein ändert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 243
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Bit Commitment
Bit Commitment
Münzwurf über das Telefon (Protokoll)
Bemerkung:
Gleichzeitiges Übertragen der Bits ist in diesem Berechnungsmodell
nicht möglich.
Auf der Idee der gleichzeitigen Übertragung beruht beispielsweise
das Spiel “Stein, Schere, Papier”, bei dem beide Teilnehmer mehr
oder weniger gleichzeitig ihre Wahl treffen.
Barbara König
Alice wählt ein Bit a ∈ {0, 1} und schickt eine Festlegung
C (a) an Bob.
Bob kennt a nicht und wählt sein Bit b ∈ {0, 1}, welches er
an Alice schickt.
Alice weist die Wahl von a nach und gibt das Ergebnis a ⊕ b
bekannt.
“Form. Asp. der Software-Sicherheit und Kryptographie” 244
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 245
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Bit Commitment
Bit Commitment
Beispielablauf Münzwurf:
Beispiel: wir betrachten als Einwegfunktion die diskrete
Exponentialfunktion und wählen die Primzahl p = 19 und den
Generator g = 3.
In diesem Fall verwenden wir folgendes Hardcore-Prädikat
0 falls x ≤ p−1
2
most(x) =
1 sonst
Alice wählt zufällig das Bit a = 1 und wählt als x = 14 als
Zeugen. Sie schickt f (x) = g x mod p = 314 mod 19 = 4 an
Bob.
Bob empfängt f (x) = 4 kann daraus jedoch keine Schlüsse
ziehen. Er wählt zufällig das Bit b = 0 und schickt es an Alice.
Alice ermittelt a ⊕ b = 1 und gibt das Ergebnis der
Münzwurfes bekannt. Außerdem schickt sie x = 14 an Bob,
damit dieser ihre Festlegung nachprüfen kann.
Bemerkung: für reale Anwendungen ist p = 19 natürlich viel zu
klein gewählt!
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 246
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 247
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Wir betrachten nun ein Zero-Knowledge-Protokoll für ein als
NP-vollständig bekanntes Problem: Färbbarkeit von Graphen
Beispiele:
k-Färbbarkeit von Graphen (k-COL)
Dabei ist k ∈ N0 eine natürliche Zahl.
Eingabe: Ein ungerichteter Graph G = (V , E ).
Ausgabe: Gibt es eine Zuordnung von k verschiedenen Farben
zu Knoten in V , so dass keine zwei benachbarten Knoten v1 ,
v2 dieselbe Farbe haben?
Für k ≥ 3 ist k-COL NP-vollständig.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 248
Graph ist 3-färbbar, aber nicht
2-färbbar
Barbara König
Graph ist 4-färbbar, aber nicht
3-färbbar
“Form. Asp. der Software-Sicherheit und Kryptographie” 249
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Dieses Beweissystem hat folgende Eigenschaften:
Computational Zero-Knowledge-Beweissystem für 3-COL
Wir nehmen an, dass V = {v1 , . . . , vn }.
Peggy berechnet eine beliebige 3-Färbung c : V → {1, 2, 3}
für G . (Insbesondere gilt c(v1 ) 6= c(v2 ), falls {v1 , v2 } ∈ E .)
Peggy schickt Festlegungen C (c(v1 )), . . . , C (c(vn )) an Victor.
Victor wählt eine zufällige Kante {u, w } ∈ E und schickt sie
an Peggy.
Peggy weist gegenüber Victor nach, dass sie die Farben c(u),
c(w ) gewählt hat und dass c(u) 6= c(w ).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 250
Falls der Graph 3-färbbar ist, dann kann Peggy immer eine
korrekte 3-Färbung wählen und Victor akzeptiert mit
Wahrscheinlichkeit 1.
Falls der Graph nicht 3-färbbar ist, dann gibt es mindestens
eine Kante {u, v } ∈ E , die “falsch” gefärbt ist, d.h.,
c(u) = c(v ). Victor hat also eine Wahrscheinlichkeit kleiner
gleich 1 − |E1 | , eine korrekt gefärbte Kante zu wählen.
Um eine Wahrscheinlichkeit kleiner gleich 14 zu erhalten, muss
das Protokoll entsprechend oft iteriert werden. Dabei ist
wichtig, dass Peggy jedes Mal eine neue Färbung wählt
(beispielsweise durch Permutation einer früheren Färbung),
ansonsten erhält Victor Wissen über die Färbungsfunktion.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 251
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Es handelt sich um einen Zero-Knowledge-Beweis (im Sinne von
Computational Zero-Knowledge), denn der Fälscher kann das
Protokoll nicht exakt imitieren, wenn er keine 3-Färbung kennt. Er
kann jedoch in einem Durchlauf:
Eine beliebige Kante {u, w } wählen und dieser zwei zufällig
gewählte Farben zuordnen. Alle anderen Knoten werden mit 1
gefärbt (was mit großer Wahrscheinlichkeit eine ungültige
Färbung ergibt).
Er kann nun die entsprechenden Festlegungen für die Farben
schicken, dann Victor {u, w } “wählen” lassen und die
entsprechende Wahl nachweisen.
Ein Beobachter kann dieses Verhalten in Polynomzeit nicht von
einem echten Protokollablauf unterscheiden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 252
Mit Hilfe von Reduktionen kann nun ein Zero-Knowledge-Beweis
für jedes NP-Problem A konstruiert werden.
Sei also A in Polynomzeit auf 3-COL reduzierbar (A ≤p 3-COL).
Die dazugehörige Reduktionsfunktion bezeichnen wir mit g .
Computational Zero-Knowledge-Beweissystem für A
Peggy und Victor bestimmen bei einer Eingabe x beide den
Graphen G = g (x).
Anschließend wird der Zero-Knowledge-Beweis für die
3-Färbbarkeit von G durchgeführt.
Die Antwort von Victor ist dann auch die Antwort auf die
Fragen “x ∈ A?”.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 253
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Zero-Knowledge-Protokolle für NP-vollständige Probleme
Die Standardreduktionsfolge eines NP-Problems A nach 3-COL ist:
Direkte Reduktion auf SAT (Umwandlung der
nicht-deterministischen Turingmaschine für A in eine
aussagenlogische Formel)
SAT ≤p 3KNF-SAT
3KNF-SAT ≤p 3-COL
Man kann zeigen, dass alle diese Reduktionen auch die
dazugehörigen Zertifikate ineinander umwandeln. Die Zertifikate
sind jeweils:
Für A: erfolgreicher Berechnungspfad der Turingmaschine
Für SAT und 3KNF-SAT: Modelle der Formeln
Reduktionen die Zertifikate in Zertifikate überführen, nennt man
auch Levin-Reduktionen.
Die Existenz von Levin-Reduktionen heißt insbesondere, dass man
durch Reduktionen Zero-Knowledge-Beweise erhält, bei denen
Peggy nicht nur nachweist, dass x ∈ A gilt, sondern auch zeigt,
dass sie das dazugehörige Zertifikat kennt. Denn sie weist ja die
Kenntnis des Zertifikats für 3-COL (die Färbungsfunktion) nach.
Es gibt jedoch auch direktere Zero-Knowledge-Beweise für
NP-Probleme, die für praktische Anwendungen vermutlich besser
geeignet sind.
Für 3-COL: Färbungsfunktion des Graphen
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 254
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 255
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Wir beschäftigen uns jetzt mit Secure Multi-Party Computations:
Alice und Bob berechnen gemeinsam eine zweistellige Funktion
f : I1 × I2 → O1 × O2 ,
zu der jeder genau einen Parameter kennt, ohne die Parameter
selbst bekanntzugeben. Jeder erhält dabei einen privaten
Ausgabewert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 256
Anwendungen:
Elektronische Wahlen: die einzelnen Teilnehmer wollen ihre
Stimme nicht öffentlich bekanntgeben. Es muss jedoch
trotzdem das Ergebnis der Wahl bestimmt werden.
Auktionen ohne vertrauenswürdigen Auktionator: kein Bieter
soll erfahren, wie die Gebote der anderen Bieter lauten. Nur
der Gewinner erfährt, dass er gewonnen hat und welchen Preis
er zahlen muss.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 257
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Carolin findet auf dem Speicher ein Bild.
Carolin findet auf dem Speicher ein Bild.
Sie will es an Alice oder Bob verkaufen.
Alice: “Ich will das Bild haben.”
Bob: “Ich will das Bild haben.”
Alice: “Lass uns doch eine Auktion durchführen. Jeder von uns
nennt ein Gebot. Derjenige von uns mit dem höheren Gebot
bekommt das Bild und muss das Geld an Carolin zahlen.”
Bob: “Wenn ich verliere, dann will ich aber nicht, dass
irgendjemand mein Gebot erfährt. Das soll geheim bleiben.”
Alice: “Kein Problem: Dann berechnen wir gemeinsam das
Maximum unserer Gebote, ohne die Gebote bekanntzugeben.”
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 258
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 258
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Alice, Bob und Carolin beschließen, dass das Bild höchstens 3¿
wert sein kann, die möglichen Gebote sollten also in der Menge
{0¿, 1¿, 2¿, 3¿} liegen.
Hilfsprotokoll: Oblivious Transfer = Unbewusster Transfer
Oblivious Transfer
Gemeinsame Berechnung der Projektions-Funktion:
Falls die Gebote binär codiert sind (a1 a0 für Alice, b1 b0 für Bob),
so berechnet sich das Maximum m1 m0 durch folgende
aussagenlogische Formel:
m1 = a1 ∨ b1
m0 = (a1 ∧ a0 ) ∨ (b1 ∧ b0 ) ∨ (¬a1 ∧ b0 ) ∨ (a0 ∧ ¬b1 )
f : {0, 1}k × {1, . . . , k} → {∗} × {0, 1}
f ((c1 , . . . , ck ), i)
(∗, ci )
Alice und Bob wollen diese Projektion gemeinsam berechnen, so
dass:
Alice kennt c1 , . . . , ck und erfährt keine weiteren
Informationen.
Alice und Bob konstruieren einen Schaltkreis und werten ihn
gemeinsam aus.
Barbara König
=
Bob kennt zu Beginn des Protokolls i und am Ende nur i
und ci .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 259
“Form. Asp. der Software-Sicherheit und Kryptographie” 260
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Oblivious Transfer
Oblivious Transfer
Voraussetzungen:
Eine bijektive Falltürfunktion (trapdoor permutation) t, deren
Inverses t −1 nur dann effizient in Polynomzeit berechnet
werden kann, wenn man den privaten Schlüssel kennt. Der
private Schlüssel befindet sich im Besitz von Alice.
Protokoll: Oblivious Transfer
1 Alice bestimmt eine Falltürfunktion t mit Hardcore-Prädikat
B und schickt (t, B) an Bob.
2
3
Ein Hardcore-Prädikat B zu t.
4
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 261
Bob wählt zufällig z1 , . . . , zk und schickt
(z1 , . . . , t(zi ), . . . , zk ).
Alice erhält (y1 , . . . , yk ) und schickt
(c1 ⊕ B(t −1 (y1 )), . . . , ck ⊕ B(t −1 (yk ))).
Bob empfängt (x1 , . . . , xk ) und bestimmt xi ⊕ B(zi ).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 262
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Oblivious Transfer
Oblivious Transfer
Korrektheit
Bob berechnet xi ⊕ B(zi ) = ci ⊕ B(t −1 (yi )) ⊕ B(zi ) =
ci ⊕ B(t −1 (t(zi ))) ⊕ B(zi ) = ci
Sicherheit
Alice kann zj und t(zj ) nicht unterscheiden und erhält
dadurch keine Informationen.
Bemerkung:
Das korrekte Verhalten von Bob muss aber erzwungen werden,
ansonsten schickt er (t(z1 ), . . . , t(zi ), . . . , t(zk )) statt
(z1 , . . . , t(zi ), . . . , zk ) und erhält dadurch alle Bits c1 , . . . , cn .
Dazu später mehr . . .
Bob kann aus cj ⊕ B(t −1 (zj )) (für j 6= i) nicht B(t −1 (zj )) –
und damit cj – bestimmen, da er nur t(t −1 (zj )) = zj , nicht
aber t −1 (zj ) kennt.
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 263
“Form. Asp. der Software-Sicherheit und Kryptographie” 264
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Idee
Jede Verbindung zwischen Gattern wird verdopppelt.
Wir beschreiben nun die sichere Auswertung eines Schaltkreises,
für den die Teilnehmer jeweils eigene Eingabebits besitzen, die den
anderen Teilnehmern unbekannt sind.
Diese Methode stammt von Yao und ist unter dem Namen garbled
circuit oder scrambled circuit bekannt.
Für jede Belegung r einer Verbindung zwischen Gattern
bekommen Alice und Bob Anteile a, b mit r = a ⊕ b.
Ein Gatter mit k Eingängen und m Ausgängen wird durch ein
“sicheres Gatter” mit 2k Eingängen und 2m Ausgängen
ersetzt.
r
r
∧
r
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 265
i1
Barbara König
i0
“Form. Asp. der Software-Sicherheit und Kryptographie” 266
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Idee
Idee
Jede Verbindung zwischen Gattern wird verdopppelt.
Jede Verbindung zwischen Gattern wird verdopppelt.
Für jede Belegung r einer Verbindung zwischen Gattern
bekommen Alice und Bob Anteile a, b mit r = a ⊕ b.
Für jede Belegung r einer Verbindung zwischen Gattern
bekommen Alice und Bob Anteile a, b mit r = a ⊕ b.
Ein Gatter mit k Eingängen und m Ausgängen wird durch ein
“sicheres Gatter” mit 2k Eingängen und 2m Ausgängen
ersetzt.
Ein Gatter mit k Eingängen und m Ausgängen wird durch ein
“sicheres Gatter” mit 2k Eingängen und 2m Ausgängen
ersetzt.
r = ra ⊕ rb
r =a⊕b
a
ra
rb
S(∧)
b
a1
r =a⊕b
i1 = a1 ⊕ b1
Barbara König
b1 a0
r = ra ⊕ rb
r =a⊕b
ra rb
S(∧)
a b
b0
i0 = a0 ⊕ b0
a1 b1
r =a⊕b
a0 b0
i1 = a1 ⊕ b1
“Form. Asp. der Software-Sicherheit und Kryptographie” 266
Barbara König
i0 = a0 ⊕ b0
“Form. Asp. der Software-Sicherheit und Kryptographie” 266
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Verteilung der Eingabe-Bits:
Verteilung der Eingabe-Bits:
Schaltkreis
S(Schaltkreis)
a1⊕y1 y1 a0⊕y0 y0
a1
a0
b1
b0
Eingabebits
Bob
Alice
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 267
a1
a0
x1 b1⊕x1 x0 b0⊕x0
b1
b0
Eingabebits
Alice erzeugt Zufallsbits x1 , x0 und schickt sie an Bob. Bob erzeugt
Zufallsbits y1 , y0 und schickt sie an Alice.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 267
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
m0
∨
Auswertung eines not-Gatters:
¬a b
Alice invertiert ihr Bit.
∨
S(¬)
¬(a ⊕ b) = ¬a ⊕ b
∨
a b
∨
Auswertung eines and-Gatters:
Alice wählt ein zufälliges Bit z und
berechnet
rb,b0 = z ⊕ ((a1 ⊕ b) ∧ (a0 ⊕ b 0 )) für alle
b, b 0 ∈ {0, 1}.
a1 b1
¬
a0 b0
1
0
“Form. Asp. der Software-Sicherheit und Kryptographie” 268
m0
0
Barbara König
1
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
m0
S(∨)
S(∨)
S(∨)
S(∧)
∧
S(∧)
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
S(∨)
∧
z rb1,b0
z ⊕ rb1 ,b0 = (a1 ⊕ b1 ) ∧ (a0 ⊕ b0 )
m1
∧
¬
Bob erhält rb1 ,b0 durch Oblivious
Transfer.
Barbara König
∧
S(∨)
S(∧)
S(∧)
S(∧)
S(¬)
S(∨)
1 0, 1, 0, 0
S(∧)
S(∨)
S(∨)
S(∧)
S(¬)
S(∧)
S(∧)
S(¬)
S(¬)
01
0 0
11
1 0
01
0 0
11
1 0
1
0
0
1
1
0
0
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
m0
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
m0
S(∨)
S(∨)
S(∨)
1 0, 1, 0, 0
S(∨)
S(∧)
S(∨)
S(∧)
S(∧)
S(∨)
10
S(∧)
S(∨)
S(∧)
S(∨)
S(∧)
S(∧)
S(∧)
11
S(¬)
S(¬)
S(¬)
S(¬)
01
0 0
11
1 0
01
0 0
11
1 0
1
0
0
1
1
0
0
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
m0
Barbara König
m1
m0
S(∨)
S(∨)
S(∨)
10
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
S(∨)
S(∨)
10
S(∨)
0 1, 0, 0, 0
S(∨)
S(∧)
S(∧)
S(∧)
0 1, 0, 0, 0
S(∧)
S(∨)
S(∧)
S(∧)
11
S(∧)
S(∧)
11
S(¬)
S(¬)
S(¬)
S(¬)
01
0 0
11
1 0
01
0 0
11
1 0
1
0
0
1
1
0
0
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
m1
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
1
m0
00
0
11
S(∨)
S(∨)
10
S(∨)
00
11
S(∨)
S(∨)
10
00
11
00
11
S(∧)
S(∧)
S(∧)
S(∧)
S(∨)
00
11
S(∨)
S(∨)
00
11
00
11
S(∧)
S(∧)
S(∧)
S(∧)
11
01
11
01
S(¬)
S(¬)
S(¬)
S(¬)
01
0 0
11
1 0
01
0 0
11
1 0
1
0
0
1
1
0
0
1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 269
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Bemerkung:
Zuletzt werden die Ausgabewerte mit Hilfe von xor berechnet.
Wenn jeder Teilnehmer einen privaten Ausgabewert erhalten soll,
dann muss noch Alice ihre entsprechende Bits an Bob schicken und
umgekehrt.
Weder Alice noch Bob können in polynomieller Zeit Informationen
über die Eingabewerte des jeweils anderen bestimmen.
(Abgesehen von den Informationen, die sie durch Kenntnis des
berechneten Funktionswertes erhalten.)
Unter den Voraussetzungen, dass:
die (bei Oblivious Transfer) verwendeten Funktionen
tatsächlich Falltürfunktionen mit dazugehörigen
Hardcore-Prädikaten sind.
sich Alice und Bob korrekt bezüglich des Protokolls verhalten
(semi-honest behaviour).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 270
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 271
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Die Forderung nach halb-ehrlichem Verhalten (semi-honest
behaviour) bedeutet, dass
Die Teilnehmer sich korrekt bezüglich des Protokolls verhalten,
aber alle erhaltenen Informationen mitprotokollieren und aus
diesen etwaige Schlüsse ziehen.
In manchen Fällen mag die Annahme solches Verhaltens
gerechtfertigt sein, beispielsweise wenn die Teilnehmer dazu
gezwungen werden können, mit bereitgestellter Software oder
bereitgestellten Geräten zu arbeiten.
Im allgemeinen Fall sollte man jedoch mit bösartigem Verhalten
(malicious behaviour) rechnen.
Barbara König
Es gibt die Möglichkeit, ein Protokoll, das korrekt für halb-ehrliches
Verhalten ist, in ein Protokoll zu übersetzen, das korrekt für
bösartiges Verhalten ist (protocol compilation
Goldreich).
Dabei werden als Hilfsprotokolle Bit Commitment und
Zero-Knowledge-Beweise eingesetzt.
Insbesondere muss jeder Teilnehmer gegenüber den anderen
Teilnehmern nachweisen, dass:
die Eingabewerte zu Beginn festgelegt wurden und dass sich
alle Berechnungen auf diese Eingabewerte beziehen,
die Zufallsbits tatsächlich zufällig sind und
die korrekte Art von Nachrichten geschickt wurden.
Das ist teilweise extrem aufwändig, da immer sichergestellt werden
muss, dass der jeweils andere Teilnehmer keine zusätzliche
Informationen erhält.
“Form. Asp. der Software-Sicherheit und Kryptographie” 272
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 273
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Secure Multi-Party Computations
Secure Multi-Party Computations
Was kann durch ein solches Protokoll nicht erzwungen werden?
Einer der Teilnehmer bricht das Protokoll ab.
Die Teilnehmer verwenden falsche Eingabewerte.
Der zweite Punkt ist bei vielen Anwendungen kein Problem, da die
Teilnehmer eine Motivation haben, den Eingabewert nicht zu
manipulieren (z.B. Gebot bei Auktionen, Stimme bei Wahlen).
Im allgemeinen erlaubt man alles, was auch bei der Berechnung der
Funktion durch einen vertrauenswürdigen Dritten (trusted third
party) passieren könnte.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 274
Erweiterung:
Verwendung des vorgestellten Ansatzes für beliebig viele
Kommunikationspartner (two-party vs. multi-party).
Probleme: hohe Komplexität durch Austausch vieler Nachrichten
und Erzwingung der semi-honest behaviour.
Es gibt viele Vorschläge von Protokollen für bestimmte
Anwendungen (Auktionen, Wahlen, etc.).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 275
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Wir wechseln nun die Sichtweise und beschäftigen uns mit der
Verifikation kryptographischer Protokolle. Dabei gehen wir jetzt
von folgenden Voraussetzungen aus:
Sowohl symmetrische als auch asymmetrische Verschlüsselung
ist sicher und kann nicht gebrochen werden.
Wir wollen sicherstellen, dass der Angreifer keinerlei
Möglichkeit hat, das Protokoll zu unterlaufen. (D.h., er
kommt nicht an geheime Informationen, kann sich nicht für
einen Dritten ausgeben, etc.) Dies soll durch
(halb-)automatische Techniken verifiziert werden.
D.h., wir nehmen nicht mehr die komplexitätstheoretische
Sichtweise ein, bei der der Angreifer eine polynomzeitbeschränkte
probabilistische Turingmaschine ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 276
Die Protokolle, die wir im folgenden verifizieren werden, sind von
eher einfacher Art, dennoch gibt es typischerweise zahlreiche Fehler
in solchen Protokollen.
Mögliche Angriffe auf das Protokoll sind: Man-in-the-Middle,
Replay, etc. Angriffe, die das Brechen der Verschlüsselung
beinhalten, können jedoch nicht entdeckt werden.
Wir betrachten ein Angreifer-Modell (sogenanntes
Dolev-Yao-Modell), bei dem der Angreifer
beliebig Nachrichten abfangen und weiterverwenden kann
kann,
jedoch nicht in der Lage ist, die Verschlüsselung zu brechen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 277
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Etwas genauer . . .
Eindringlingsmodell nach Dolev-Yao (I)
Der Angreifer kann
an beliebigen Protokollabläufen teilnehmen,
beliebig Nachrichten abfangen,
Nachrichten entschlüsseln, falls er den entsprechenden
Schlüssel besitzt,
alte Nachrichten wieder einspielen und
aus bekannten Komponenten neue Nachrichten bauen und an
beliebige Kommunikationspartner verschicken.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 278
Eindringlingsmodell nach Dolev-Yao (II)
Der Angreifer kann nicht:
Nachrichten entschlüsseln, wenn er den entsprechenden
Schlüssel nicht besitzt
oder Nonces erraten, die er nicht abgefangen hat.
D.h., er hat nicht nur eine sehr kleine Wahrscheinlichkeit,
Nachrichten zu entschlüsseln, oder Nonces zu erraten, sondern gar
keine Möglichkeit.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 279
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Eindringlingsmodell nach Dolev-Yao (III)
Wir nehmen ebenfalls an, dass ein Teilnehmer, der eine
verschlüsselte Nachricht empfängt,
herausfinden kann, ob diese Nachricht mit einem bekannten
Schlüssel K verschlüsselt ist.
Er erhält dann entweder die entschlüsselte Nachricht oder eine
Fehlermeldung.
Analog kann ein Teilnehmer Signaturen (erstellt mit einem privaten
Schlüssel) erkennen und verifizieren, wenn er den dazugehörigen
öffentlichen Schlüssel kennt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 280
Um das Protokoll verifizieren zu können, benötigen wir eine exakte,
formale Beschreibung des Protokolls, die keine Mehrdeutigkeiten
enthält.
D.h., wir müssen mehr als bisher auf exakte
Protokollbeschreibungen wertlegen.
Wir betrachten als Beschreibungsformalismus vor allem den
angewandten π-Kalkül (es gibt jedoch auch andere geeignete
Formalismen).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 281
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Diese Notation ist noch zu unpräzise. Insbesondere:
Warum reichen bisherige Beschreibungsmechanismen nicht aus?
Eine Möglichkeit ist es, ein Protokoll als Folge ausgetauschter
Nachrichten zu modellieren:
Beispiele:
1
B → A:
PB
2
A → B:
{{K }SA }PB
3
B → A:
{m}K
Needham-Schroeder-Protokoll im Einführungsteil
Barbara König
Protokoll
“Form. Asp. der Software-Sicherheit und Kryptographie” 282
Sie sagt nichts darüber aus, was ein Teilnehmer berechnet,
nachdem eine Nachricht empfangen wurde.
Wird überprüft, ob alle Komponenten der Nachricht
korrekt sind?
Werden zurückgeschickte Nonces mit früher generierten
oder erhaltenen Nonces verglichen?
Werden Zeitstempel überprüft?
Was macht der Teilnehmer, wenn die Nachricht nicht das
korrekte Format hat?
Es ist unklar, welche Möglichkeiten der Angreifer hat.
Können mehrere Protokollabläufe gleichzeitig
durchgeführt werden?
Könnte ein (oder beide) Teilnehmer auch gleichzeitig
einen Protokollablauf mit dem Angreifer durchführen?
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 283
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Bemerkung: das oben angegebene Protokoll der Form
1
B → A:
PB
2
A → B:
{{K }SA }PB
3
B → A:
{m}K
beschreibt folgendes Szenario:
Bob schickt an Alice seinen öffentlichen Schlüssel.
Alice schickt an Bob einen Sitzungsschlüssel K , der von ihr
signiert ist und den sie mit Bob’s öffentlichen Schlüssel
verschlüsselt hat.
Bob verwendet den Sitzungsschlüssel, um eine Nachricht an
Alice zu verschlüsseln.
Dieses Protokoll ist nicht korrekt: es gibt einen Angriff. Welchen?
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 284
Eve (E ) hat folgende Angriffsmöglichkeit
(Man-in-the-Middle-Attack), falls Alice auch mit Eve
kommuniziert:
1
E → A:
PE
2
A → E:
{{K }SA }PE
3
E → B:
{{K }SA }PB
4
B → A:
{m}K
Die letzte Nachricht kann jedoch von Eve abgefangen und
entschlüsselt werden, denn Eve besitzt K .
Wir werden dieses Protokoll im folgenden häufiger als Beispiel
einsetzen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 285
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle
Verifikation kryptographischer Protokolle (Schema)
Modelliere das Protokoll im angewandten π-Kalkül. Damit
erhält man auch ein Angreifermodell und die Möglichkeit, das
mögliche Systemverhalten als Transitionssystem darzustellen.
Verwende dann eine der folgenden Analysetechniken:
Einschränken auf endlichen Zustandsraum und
Durchsuchen des Zustandsraum ( Model-Checking)
Horn-Formeln und Resolution
Verhaltensäquivalenzen
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 286
Dabei macht es einen Unterschied, welche Eigenschaft des
Protokolls genau verifiziert werden soll. Wir werden hauptsächlich
betrachten:
Geheimhaltung: bestimmte Nachrichteninhalte bleiben
gegenüber dem Angreifer geheim.
(Beispielsweise verletzt das Beispielprotokoll weiter oben die
Geheimhaltung. Der Angreifer erfährt m.)
Authentifizierung: der Angreifer ist nicht in der Lage, sich als
ein anderer Teilnehmer auszugeben.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 287
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Der angewandte π-Kalkül (applied π-calculus, von Abadi und
Fournet) ist ein sogenannter Prozesskalkül bzw. eine
Prozessalgebra.
Vorgänger dieses Kalküls sind CCS (Calculus of Communicating
Systems) und der π-Kalkül, beide eingeführt von Robin Milner. Ein
anderer verwandter Kalkül ist der Spi-Kalkül (Spi calculus).
Prozesskalküle sind “Mini-Programmiersprachen”, in denen
Interaktion von Prozessen sehr kompakt und auch sehr präzise
beschrieben werden kann.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 288
Wir beginnen damit, die Syntax des angewandten π-Kalküls
einzuführen:
Namen und Variable
Es gibt eine Menge von Namen, deren Elemente als Kanalnamen,
Schlüssel, Nonces, Nachrichteninhalte, etc. verwendet werden.
Außerdem gibt es eine Menge von Variablen.
Kanalnamen werden im folgenden mit a, b, c, . . . bezeichnet,
Schlüssel mit K , Nonces mit n und Nachrichteninhalte mit m.
Variablen werden im allgemeinen mit x, y , z, x1 , x2 , . . . bezeichnet.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 289
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Funktionssymbole und Terme
Außerdem gibt es eine Menge von Funktionssymbolen. Aus den
Namen, Variablen und Funktionssymbolen werden Terme gebildet.
Hinweis: dabei ist darauf zu achten, dass Funktionssymbole in der
korrekten Stelligkeit auf Elemente des korrekten Typs angewandte
werden. (Beispielsweise können bestimmte Funktionen nur auf
Nachrichten oder Schlüssel angewandt werden.)
Gleichungen
Gegeben ist eine Menge Σ von Gleichungen auf Termen
(manchmal auch Theorie genannt), die das Verhalten der
Funktionssymbole bzw. der dazugehörigen Funktionen beschreiben.
Für zwei Terme M, N gilt Σ ` M = N (die Gleichheit M = N ist
aus den Gleichungen herleitbar), falls eine der folgenden
Bedingungen erfüllt ist (jeweils für geeignete Terme L, M 0 , N 0 ):
M und N sind identisch (Reflexivität),
die Gleichung M = N ist in Σ enthalten,
Beispiele für Terme:
es gilt M = L[x/M 0 ], N = L[x/N 0 ] und Σ ` M 0 = N 0 ,
encrypt(m, K )
es gilt M = M 0 [x/L], N = N 0 [x/L] und Σ ` M 0 = N 0 ,
decrypt(encrypt(m, x), y )
Σ ` N = M (Symmetrie) oder
Σ ` N = L und Σ ` L = M (Transitivität).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 290
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 291
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Beispiele für Terme und Gleichungen:
Symmetrische Verschlüsselung
Funktionen sdecrypt und sencrypt, die als ersten Parameter
eine Nachricht und als zweiten Parameter einen Schlüssel
erhalten.
Definierende Gleichungen:
Σ = {sdecrypt(sencrypt(x, y ), y ) = x}
Asymmetrische Verschlüsselung
Zusätzlich zu den Funktionen adecrypt und aencrypt gibt es
noch einstellige Funktionen sk, pk die aus einem Geheimnis
einen privaten und öffentlichen Schlüssel ableiten.
Definierende Gleichungen:
Σ = {adecrypt(aencrypt(x, pk(y )), sk(y )) = x}
Es gilt daher beispielsweise:
Σ ` sdecrypt(sencrypt(m, K ), K ) = m
Σ 6` sdecrypt(sencrypt(m, K ), K 0 ) = m, falls K 6= K 0 .
Σ ` sencrypt(sdecrypt(sencrypt(m, K ), K ), K ) =
sencrypt(m, K )
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 292
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 293
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Signaturen
Zusätzlich zu den Funktionen pk, sk verwenden wir zweistellige
Funktionen sigcheck, sigget und sign und eine Konstante ok.
Definierende Gleichungen:
Definierende Gleichungen:
Σ = {xor(x, y ) = xor(y , x),
Σ = {sigcheck(sign(x, sk(y )), pk(y )) = ok,
sigget(sign(x, sk(y )), pk(y )) = x}
Barbara König
Logischer Operator xor
Wir verwenden eine zweistellige Funktion xor.
“Form. Asp. der Software-Sicherheit und Kryptographie” 294
xor(xor(x, y ), z) = xor(x, xor(y , z)),
xor(xor(x, y ), y ) = x}
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 295
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Paare
Wir benutzen eine zweistellige Funktion pair und einstellige
Funktionen fst, snd, die nur auf Paaren definiert sind.
der inaktive Prozess 0,
eine parallele Komposition P | Q,
eine Replikation !P
Definierende Gleichungen:
Σ = {fst(pair(x, y )) = x, snd(pair(x, y )) = y }
Im folgenden werden wir auch die Notation (x, y ) statt pair(x, y )
verwenden.
Barbara König
Syntax des angewandten π-Kalküls
Ein Prozess ist entweder:
eine Restriktion (νn)P,
eine Bedingung if M = N then P else Q,
ein Prozess mit Eingabe-Präfix c(x).P oder
ein Prozess mit Ausgabe-Präfix chMi.P.
Dabei sind P, Q Prozesse, n ein Name, c ein Kanalname, M, N
Terme und x eine Variable.
“Form. Asp. der Software-Sicherheit und Kryptographie” 296
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 297
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Bemerkungen:
Die syntaktischen Konstrukte sind eng verwandt mit den
entsprechende Konstrukten in CCS. Insbesondere entspricht
(νn)P dem Prozess P\{n} in CCS.
Der Name n ist in (νn)P gebunden. Damit erzeugt man neue
Schlüssel und Nonces, die der Umgebung nicht bekannt sind
Ebenso ist die Variable x in c(x).P gebunden. (Dieses
Konstrukt ist als Restriktion oder auch Verschattung
bekannt.) Gebundene Namen und Variablen können
(gebunden) umbenannt werden.
Die Replikation !P steht für beliebig viele Kopien von P, die
parallel ablaufen.
Ausgabe- bzw. Eingabe-Präfix beschreiben das Senden bzw.
Empfangen einer Nachricht auf dem Kanal c, wobei sich der
Prozess anschließend wie P verhält.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 298
Evaluationskontext
Ein Evaluationskontext C [ ] ist ein spezieller Prozess, in dem der
Platzhalter , der für einen Prozess steht, genau einmal
vorkommen. Dieser Platzhalter darf auch nicht unter einer
Replikation, unter einer Bedingung oder unter einem Präfix
vorkommen.
Mit C [P] bezeichnen wir den Prozess, der dadurch entsteht, dass
der Platzhalter in C [ ] durch den Prozess P ersetzt wird.
Beispiele:
C [ ] = (νm)( | a(x).bhmi.0) ist ein Evaluationskontext.
! und a(x). sind keine gültigen Evaluationskontexte.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 299
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Semantik des angewandten π-Kalküls (Strukturelle Kongruenz)
Strukturelle Kongruenz (≡) ist die kleinste Äquivalenzrelation auf
Prozessen, die mit Hilfe der folgenden Regeln hergeleitet werden
kann:
P≡P|0
P | (Q | R) ≡ (P | Q) | R
!P ≡ P |!P
(νn)0 ≡ 0
P|Q≡Q|P
(νu)(νv )P ≡ (νv )(νu)P
P | (νu)Q ≡ (νu)(P | Q) falls u nicht frei in P vorkommt
P[x/M] ≡ P[x/N] falls Σ ` M = N
C [P] ≡ C [Q] falls P ≡ Q und C [ ] ein Evaluationskontext ist
Barbara König
Bemerkungen zur strukturellen Kongruenz:
P[x/M] ist der Prozess P, in dem jedes freie Vorkommen der
Variablen x durch den Term M ersetzt wurde. Dabei ist
folgendes zu beachten: freie Namen oder Variablen, die in M
vorkommen, dürfen durch diese Ersetzung nicht gebunden
werden. Falls dies passieren würde, muss umbenannt werden.
Beispiel: ((νn)ahxi.bhni.0)[x/n] = (νn0 )ahni.bhn0 i.0
Die vorletzte Regel beschreibt, dass ein Term M durch einen
anderen Term N ersetzt werden kann, falls die Gleichheit von
M und N unter Σ nachgewiesen werden kann.
Die letzte Regel garantiert die Abgeschlossenheit der
strukturellen Kongruenz unter Evaluationskontexten.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 300
“Form. Asp. der Software-Sicherheit und Kryptographie” 301
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Bemerkungen:
Semantik des angewandten π-Kalküls (Reduktionsregeln)
Folgende Regeln beschreiben die Reduktionsrelation → zwischen
Prozessen:
chMi.P | c(x).Q → P | Q[x/M]
if M = N then P else Q → P
falls Σ ` M = N
if M = N then P else Q → Q
falls M, N variablenfreie Terme sind und Σ 6` M = N
C [P] → C [Q] falls P → Q und C [ ] ein Evaluationskontext ist
P → Q falls P 0 → Q 0 , P ≡ P 0 und Q 0 ≡ Q
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 302
Die erste Regel beschreibt das Senden einer Nachricht M über
einen Kanal c.
Falls die Gleichheit von M und N nachgewiesen werden kann,
dann wird im Fall einer Bedingung der Then-Fall betreten.
Wenn die Gleicheit nicht nachgewiesen werden kann, dann
darf der Else-Fall nur dann betreten werden, wenn die Terme
M, N variablenfrei sind. D.h., es gibt keine Möglichkeit mehr,
die Terme durch Substitutionen und Anwendungen der
Gleichungen in die gleiche Form zu bringen. Terme, die durch
die Theorie nicht unifiziert werden können, gelten als
verschieden.
Die letzten beiden Regeln beschreiben, dass die
Reduktionsrelation unter Evaluationskontexten und
struktureller Kongruenz abgeschlossen ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 303
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Transitionssystem
Das Transitionssystem eines Prozesses P besteht aus:
Zustandsmenge: Äquivalenzklassen von Prozessen, die von P
aus erreicht werden können. D.h., jede Äquivalenzklasse [Q]≡
mit P →∗ Q ist ein Zustand.
Transitionen: Es gibt einen Übergang von [Q1 ]≡ nach [Q2 ]≡
genau dann, wenn Q1 → Q2 .
Um die Anzahl der Zustände möglichst klein zu halte, sollte – wie
oben beschrieben – die Menge der von P erreichbaren Prozesse
durch die strukturelle Kongruenz faktorisiert werden.
Barbara König
Wir betrachten ein erstes kleines Beispielprotokoll
(Nonce-Challenge):
1
A → B:
{n}K
2
B → A:
{n − 1}K
Dabei ist n ein Nonce und K ist ein Sitzungsschlüssel von Bob
bzw. Alice.
Um dieses Protokoll im angewandten π-Kalkül zu modellieren,
verwenden wir die Theorie symmetrische Verschlüsselung
zusammen mit einer Dekrementierungsfunktion dec.
“Form. Asp. der Software-Sicherheit und Kryptographie” 304
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 305
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Die entsprechenden Prozesse sehen wie folgt aus:
Alice:
A = (νn)(chsencrypt(n, K )i.
c(x).
if sdecrypt(x, K ) = dec(n)
then A0
else 0)
Bob:
B = c(y ).
chsencrypt(dec(sdecrypt(y , K )), K )i.
B0
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 306
Bemerkungen:
Dabei ist n der zu verschickende Nonce, der zunächst in A
gebunden ist und keinem anderen Teilnehmer bekannt ist.
Mit c bezeichnen wir den (offenen) Kanal, über den der
Nachrichtenaustausch stattfindet.
A0 bzw. B 0 sind die Fortsetzungen von Alice und Bob.
Dadurch wird das Verhalten der beiden Teilnehmer nach
Austausch der beiden Nachrichten beschrieben. Wir nehmen
an, dass x nicht frei in A0 und y nicht frei in B 0 vorkommt.
Das Verhalten von Alice und Bob gemeinsam wird durch
S = (νK )(A | B) beschrieben. Durch die Restriktion kann
man sicherstellen, dass das Geheimnis K nach außen hin
verschattet ist.
Falls der Nonce nicht korrekt zurückgeschickt wird, so bricht
A das Protokoll ab und wird zum Null-Prozess.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 307
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Reduktionsfolge bei korrektem Verhalten (ohne Eindringling):
Daher gilt:
A | B ≡ (νn)(chsencrypt(n, K )i.
c(x).
if sdecrypt(x, K ) = dec(n)
then A0
else 0
|
B)
Diese Äquivalenz gilt, da n nicht frei in B vorkommt. (Falls dies
der Fall wäre, so müsste n zunächst umbenannt werden.) Diesen
Effekt bezeichnet man auch als Erweiterung des Bindungsbereichs
(scope extrusion).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 308
A | B → (νn)(c(x).
if sdecrypt(x, K ) = dec(n)
then A0
else 0
|
chsencrypt(dec(sdecrypt(sencrypt(n, K ), K )), K )i.
B 0)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 309
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Aufgrund der Gleichungen können wir folgenden Term
vereinfachen:
Daraus ergibt sich folgende Reduktion:
A | B →→ (νn)(if sdecrypt(sencrypt(dec(n), K ), K )
Σ ` sencrypt(dec(sdecrypt(sencrypt(n, K ), K )), K )
= sencrypt(dec(n), K )
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 310
= dec(n)
then A0
else 0
Barbara König
|
B 0)
“Form. Asp. der Software-Sicherheit und Kryptographie” 311
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Der so entstandene Prozess ist wegen
Bemerkung:
Σ ` sdecrypt(sencrypt(dec(n), K ), K ) = dec(n)
Im angewandten π-Kalkül ist es auch möglich, einen vollkommen
privaten Kanal zu etablieren:
äquivalent zu
(νb)(bhmi.P | b(x).Q)
(νn)(if dec(n) = dec(n)
then A
else 0
0
|
B 0)
Und damit ergibt sich:
A | B →→→ (νn)(A0 | B 0 )
Barbara König
Aufgrund der Restriktion (νb) kann der Kanal b vom Angreifer
nicht abgehört werden, es sei denn, einer der beiden Teilnehmer
verschickt b explizit über einen anderen Kanal. Diese Mobilität von
Kanalnamen spielt im π-Kalkül eine große Rolle, ist für uns hier
aber nicht so wichtig.
Im allgemeinen werden wir Kanalnamen nicht restringieren, da wir
nicht annehmen können, dass es wirklich sichere Kanäle gibt.
“Form. Asp. der Software-Sicherheit und Kryptographie” 312
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 313
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Die entsprechenden Prozesse sehen wie folgt aus:
Wir betrachten nun das vorherige Beispielprotokoll:
Alice:
A = (νK )(νKA )
1
B → A:
PB
2
A → B:
{{K }SA }PB
3
B → A:
{m}K
c(p).
chaencrypt(sign(K , sk(KA )), p)i.
c(x).
Um dieses Protokoll im angewandten π-Kalkül zu modellieren,
verwenden wir die Theorien für symmetrische und asymmetrische
Verschlüsselung zusammen mit der Theorie für Signaturen.
A0 [x 0 /sdecrypt(x, K )]
| !ahpk(KA )i.0
Dabei gibt Alice ihren öffentlichen Schlüssel pk(KA ) über den
offenen Kanal a bekannt, behält aber KB als Geheimnis.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 314
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 315
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Angewandter π-Kalkül
Angewandter π-Kalkül
Bob:
B = (νm)(νKB )
Weitere Bemerkungen:
chpk(KB ).
c(y ).a(u).
(if sigcheck(y 0 , u) = ok
then chsencrypt(m, sigget(y 0 , u))i.B 0
else 0)[y 0 /adecrypt(y , sk(KB ))]
| !bhpk(KB )i.0
A0 bzw. B 0 sind auch hier die Fortsetzungen von Alice und
Bob. A0 enthält x 0 als freie Variable, wobei x 0 als Platzhalter
für die zu empfangene (entschlüsselte) Nachricht m steht. B 0
enthält analog y 0 als freie Variable.
Das Verhalten von Alice und Bob gemeinsam wird durch
Sys = A | B beschrieben.
Auch hier gibt Bob seinen öffentlichen Schlüssel bekannt.
Außerdem empfängt er den öffentlichen Schlüssel von Alice, den er
zum Überprüfen der Signatur benötigt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 316
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 317
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Wie sehen Angreifer im Kalkül aus?
Ein Angreifer E (E steht für Eve) kann ein beliebiger Prozess des
Kalküls sein. Dieser wird mit dem eigentlichen System Sys (i.a.
bestehend aus Alice und Bob) parallel komponiert: Sys | E .
Damit können wir nun auch beschreiben, was es bedeutet, dass
eine Nachricht m geheimgehalten wird:
Geheimhaltung
Ein System Sys hält eine Nachricht m geheim, wenn es keinen
Angreifer E gibt mit einer Reduktionsfolge Sys | E →∗ P, so dass
in P m als Nachrichteninhalt auf einem nicht-verschatteten Kanal
verschickt wird.
Wenn der Angreifer in den Besitz von m kommt, so kann er diese
Nachricht immer auf einem offenen Kanal verschicken.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 318
Das letzte Beispielprotokoll hält die Nachricht m nicht geheim. Es
gibt einen entsprechenden Angreifer:
E
= (νKE ) c(pA ).
chpk(KE )i.
c(z).
chaencrypt(v , pA )i.
c(u).a(pB ).
shsdecrypt(u, sigget(v , pB ))i.0)
[v /adecrypt(z, sk(KE ))]
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 319
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Bemerkungen:
Die Schritte von Eve der Reihe nach:
1
E empfängt den öffentlichen Schlüssel von Bob.
2
E schickt ihren eigenen öffentlichen Schlüssel an Alice.
3
4
5
6
E empfängt den signierten und verschlüsselten
Sitzungsschlüssel K von Alice.
E verschlüsselt den signierten Sitzungsschlüssel unter dem
öffentlichen Schlüssel von Bob und schickt ihn an Bob.
E empfängt die mit dem Sitzungsschlüssel verschlüsselte
Nachricht m von Bob.
Es gibt einen Ablauf von Sys | E , bei dem zuletzt m auf dem
Kanal s verschickt wird. D.h., die Geheimhaltung von m ist nicht
gewährleistet. Es gilt:
Sys | E →∗ (νm)(shmi.0 | P)
für einen geeigneten Prozess P.
Es gibt natürlich auch Abläufe, bei denen das Geheimnis nicht
preisgegeben wird, aber mindestens ein Ablauf verletzt die
Geheimhaltung.
E entschlüsselt diese Nachricht (denn sie kennt K !) und gibt
die Nachricht auf dem offenen Kanal s bekannt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 320
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 321
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Mit Hilfe der geeigneten Theorie kann man auch Einwegfunktionen
modellieren: wir verwenden ein einstelliges Funktionssymbol f
(ohne Gleichungen!). Da es kein Funktionssymbol für die
Umkehrfunktion gibt, kann auch niemand Urbilder ermitteln.
Beispielprozess:
A = chf(g)i.0
Dabei ist g ein “Geheimnis”.
Kein Angreifer, der f(g) als Nachricht empfängt, kann den Wert g
ermitteln.
Wir modellieren nun das Needham-Schroeder-Protokoll (siehe
Einführungsteil Protokoll ).
Needham-Schroeder-Protokoll (fehlerhaft)
1
A → S:
A, B, nA
2
S → A:
{nA , KAB , {KAB , A}KBS }KAS
3
A → B:
{KAB , A}KBS
4
B → A:
{nB }KAB
5
A → B:
{nB − 1}KAB
Hashfunktionen können ähnlich modelliert werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 322
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 323
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Alice:
Als Theorien verwenden wir die Theorie für die symmetrische
Verschlüsselung, sowie eine zweistellige Funktion check mit
A = (νnA )
cS htriple(A, B, nA )i.
cS (x).
check(sencrypt(x, y ), y ) = ok,
if first(u) = nA
die feststellt, ob eine Nachricht, mit einem bestimmten Schlüssel
verschlüsselt wurde. (Ansonsten kann Alice nicht überprüfen, ob
der Nonce nB mit dem korrekten Schlüssel verschlüsselt wurde.)
then cAB hthrd(u)i.
cAB (y ).
if check(y , snd(u)) = ok
Außerdem verwenden wir die Theorie für Paare und – um
dreistellige Tupel zu erhalten – eine dreistellige Funktion triple
(analog zu pair) mit den Projektionen fst, snd und thrd.
then cAB hsencrypt(dec(sdecrypt(y , snd(u))),
snd(u))i.0
else 0
else 0 [u/sdecrypt(x, KAS )]
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 324
“Form. Asp. der Software-Sicherheit und Kryptographie” 325
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Bob:
Server:
B = (νnB )
S
cAB (x).
= (νK )
cS (x).
cAB hsencrypt(nB , fst(u))i.
if fst(x) = A
cAB (y ).
then if snd(x) = B
if sdecrypt(y , fst(u)) = dec(nB )
then cS hsencrypt(triple(thrd(x), K , sencrypt(pair(K , A),
then 0
else failhi.0 [u/sdecrypt(x, KBS )]
KBS )), KAS )i.0
else . . .
Die Nachricht von Bob auf dem Kanal fail signalisiert, dass der
Protokollablauf nicht erfolgreich war.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 326
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 327
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Es gibt noch weitere Fallunterscheidungen, wobei alle Paare von
möglichen Teilnehmern (einschließlich Eve) abgefragt werden
müssen.
Diese Fallunterscheidungen könnte man dadurch vermeiden, indem
man eine einstellige Funktion key einführt, die zu dem Bezeichner
eines Teilnehmers den Schlüssel zurückgibt, den dieser Teilnehmer
mit dem Server teilt. Diese Funktion darf jedoch dem Angreifer
nicht zugänglich sein!
Barbara König
Das gesamte System besteht aus der parallelen Komposition von
A, B und S, zusammen mit der Restriktion der entsprechenden
Schlüssel:
Sys = (νKAS )(νKBS )(A | B | S)
Statt S kann auch !S verwendet werden, dann wird der Server
repliziert und steht immer wieder für Anfragen zur Verfügung.
“Form. Asp. der Software-Sicherheit und Kryptographie” 328
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 329
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Alice (modifiziert):
Authentifizierung wird typischerweise folgendermaßen definiert:
Authentifizierung
Wenn Alice der Meinung ist, dass sie einen Protokollablauf mit
Bob durchführt, dann hat Bob zuvor beschlossen, dass er einen
Protokollablauf mit Alice durchführt. (Oder umgekehrt.)
A = (νnA )
cS htriple(A, B, nA )i.
cS (x).
if first(u) = nA
then cAB hthrd(u)i.
Um diese Eigenschaft formulieren zu können, fügen wir
entsprechende Nachrichten ein, die Alice bzw. Bob an ihre Umwelt
schicken, um ihre Überzeugungen bekanntzugeben. Wir
modifizieren also die Prozess-Beschreibungen leicht.
cAB (y ).
cAB hsencrypt(dec(sdecrypt(x, snd(u))), snd(u))i.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 330
ah(A, B)i.0
else 0 [u/sdecrypt(x, KAS ))]
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 331
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Bob (modifiziert):
In diesem Fall müssen wir für die Authentifizierung fordern:
B = (νnB )
cAB (x).
bh(B, snd(u))ii.0 |
cAB hsencrypt(nB , fst(u))i.
cAB (y ).
if sdecrypt(y , fst(u)) = dec(nA )
then 0
else fail.0 [u/sdecrypt(x, KBS )]
Für jeden Angreifer E gilt: in jedem Ablauf von Sys | E , in dem
Alice bekanntgibt, dass sie mit Bob spricht, d.h., es wird eine
Nachricht ah(A, B)i geschickt, erzeugt Bob zuvor eine Nachricht
bh(B, A)i. D.h., er bezeugt, einen Protokollablauf mit Alice
begonnen zu haben.
Ähnlich müsste man beschreiben, dass Alice sich gegenüber Bob
korrekt authentifiziert hat.
Bemerkung: Um weitere Reduktionen nicht zu blockieren, sendet
Bob asynchron auf dem Kanal b, d.h., die Nachricht wird parallel
zum weiteren Ablauf verschickt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 332
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 333
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Hier gibt es einen Angreifer (
unterlaufen kann:
) E , der das Protokoll
Angriff
Angreifer Eve:
E
= cS (x).
cS htriple(A, E , thrd(x))i.
cAB (y ).
cAB hsencrypt(nB , snd(u))i.
Es gibt Abläufe von Sys | E , in denen Alice die Nachricht ah(A, B)i
schickt, ohne dass Bob zuvor seine Nachricht geschickt hat.
In diesen Abläufen ist Bob überhaupt nicht beteiligt, es
kommunizieren nur Alice, der Server und Eve.
cAB (z).0)
[u/sdecrypt(y , KES )]
Bemerkung: Eve hält nB nicht geheim.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 334
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 335
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Wir haben nun eine Methode gesehen, mit der man Angriffe auf
ein Protokoll beschreiben kann: man spezifiziert den Angreifer E
als Prozess.
Aber wie kann man zeigen, dass es keinen solchen Angreifer gibt?
Man müsste ja unendlich viele Angreifer ausprobieren!
Wir betrachten nun einen universalen Angreifer, der alle
Nachrichten abfangen kann, daraus weitere Nachrichten gewinnen
kann, die er nicht-deterministisch abschickt.
Es gibt einen herkömmlichen Angreifer, genau dann, wenn der
universale Angreifer eine Angriffsmöglichkeit findet.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 336
Wir führen nun einen neue Art von Prozess ein, indem wir die
Syntax des Kalküls erweitern:
Angreifer
Sei nun auch E (M), wobei M eine Menge von Termen ist, ein
Prozess.
Dabei ist M das Wissen, das der Angreifer hat, d.h., die
Kanalnamen, Nonces und Schlüssel, die er von Beginn an besitzt,
zusammen mit allen weiteren Nachrichten, die er bisher empfangen
hat.
Ein variablenfreier Term M ist aus M herleitbar (in Zeichen
M ` M, wenn
es gibt Mi ∈ M, i ∈ {1, . . . , n},
es gibt einen Term N, der keine Namen und die freien
x1 , . . . , xn Variablen enthält, und
Σ ` M = N[x1 /M1 , . . . , xn /Mn ]
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 337
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Modellierung des Angreifers
Strukturelle Kongruenz und Reduktionsregeln für den Angreifer
(νn)P | E (M) ≡ (νn)(P | E (M))
falls n in keinem der Terme von M vorkommt
chMi.P | E (M) → P | E (M ∪ {M}) falls M ` c
E (M) | c(x).Q → E (M) | Q[x/M]
falls M ` c und M ` M
Der Angreifer muss den entsprechenden Kanal c kennen, um auf
ihm Nachrichten empfangen oder versenden zu können.
D.h. im letzten Fall dürfen nur diejenigen Nachrichten verschickt
werden, die aus dem bisherigen Wissen des Angreifers abgeleitet
werden können.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 338
Der Angreifer wird mit einem bestimmten Vorwissen ausgestattet.
D.h., er kennt zu Beginn des Protokollablaufs bestimmte Kanäle,
Schlüssel, Nonces, die Elemente der Menge M sind.
Durch die Bindungsbereiche ist aber auf jeden Fall garantiert, dass
der Angreifer keine “geheimen” Namen kennen, die anderswo
verschattet sind.
Beispiel: in dem System ((νn)P) | E ({n}) in der Name n, den der
Angreifer kennt, nicht identisch mit dem Namen, der in P
gebunden ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 339
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Modellierung des Angreifers
Durchsuchen des Zustandsraums – Model-Checking
Idee:
Beispiel: im Fall des Needham-Schroeder-Protokolls gibt es einen
Ablauf von
Sys | E ({cS , cAB , A, E , nB , KES }),
in dem Alice eine Nachricht auf Kanal a erzeugt, ohne dass Bob
zuvor seine Nachricht auf Kanal b erzeugt hat.
Beschreibe das gegebene Protokoll mit Hilfe des Prozesses
Sys.
Lege das Vorwissen M der Angreifers fest.
Überprüfe durch Durchsuchen des Zustandsraums, dass
Sys | E (M) nicht in einen Zustand kommen kann oder einen
Ablauf erzeugen kann, in dem die Geheimhaltungs- oder
Authentifizierungseigenschaften verletzt sind.
Problem:
Es ist nicht klar, dass der Zustandsraum des Transitionssystems
von Sys | E (M) endlich ist. Um dies zu erreichen, muss man
bestimmte Einschränkungen machen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 340
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 341
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Durchsuchen des Zustandsraums – Model-Checking
Durchsuchen des Zustandsraums – Model-Checking
Einschränkungen:
Bemerkungen:
Die Protokollbeschreibung Sys erlaubt nur endliches Verhalten
(nicht beliebig viele parallele Sitzungen, keine Replikation).
Es gibt entweder nur endlich viele Äquivalenzklassen von
Termen oder die Größe der vom Angreifer verschickten Terme
wird beschränkt.
Die Theorie muss entscheidbar sein, d.h., für zwei gegebene
Terme M, N muss entschieden werden können ob Σ ` M = N
gilt oder nicht gilt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 342
Es ist möglich, das Wissen des Angreifers on-the-fly zu
generieren. D.h., immer wenn ein Angreifer einen frischen
Nonce oder Schlüssel braucht, so kann er diesen raten.
Bei Authentifizierung ist es oft wünschenswert, nicht nur zu
überprüfen, dass ein bestimmtes Ereignis vor einem anderen
Ereignis stattgefunden hat, sondern dass – falls es mehrere
Protokollabläufe gibt – die entsprechenden
Authentifizierungsereignisse in Eins-zu-Eins-Beziehung stehen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 343
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir betrachten nun einen weiteren Ansatz (entwickelt von Bruno
Blanchet), der
auch für unendliche Zustandsräume und beliebig viele parallele
Sitzungen funktioniert (Replikation ist erlaubt!).
Das Problem zu entscheiden, ob es auf eine gegebenes Protokoll
einen Angriff gibt ist unentscheidbar (so wie die meisten
Verifikationsprobbleme). Deshalb wird die Menge der erreichbaren
Systemzustände überapproximiert.
überapproximiert: es gibt möglicherweise korrekte Protokolle,
die nicht als solche erkannt werden.
Menge der
Fehlerzustände
Dazu werden die Möglichkeiten des Angreifers und der
Protokollablauf in Prädikatenlogik formalisiert (genauer: in
Horn-Klauseln) und es wird versucht, mit Hilfe von Resolution zu
zeigen, ob der Angreifer sein Ziel erreichen kann.
Dieser Ansatz ist in dem Tool ProVerif
(http://www.proverif.ens.fr/) implementiert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 344
Erreichbare Zustände
Menge aller Zustände
Überapproximation der
erreichbaren Zustände
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 345
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Falls der Schnitt der Überapproximation der erreichbaren
Zustände mit der Menge der Fehlerzustände leer ist, ist das
System korrekt.
Wenn der Schnitt nicht-leer ist, dann kann allerdings keine
Aussage getroffen werden. In diesem Fall kann man
normalerweise nicht zeigen, dass in dem Schnitt kein
erreichbarer Zustand liegt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 346
Wir wiederholen zunächst Prädikatenlogik und Resolution.
Gegeben seien Mengen von Variablen, Funktionssymbolen und
Prädikatsymbolen. Terme werden – wie im angewandten π-Kalkül
– aus Variablen und Funktionssymbolen gebildet.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 347
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Syntax der Prädikatenlogik
1
2
3
4
Falls P ein Prädikatsymbol der Stelligkeit k ist, und falls
t1 , . . . , tk Terme sind, dann ist P(t1 , . . . , tk ) eine Formel.
Für jede Formel F ist auch ¬F eine Formel.
Für alle Formeln F und G sind auch (F ∧ G ) und (F ∨ G )
Formeln.
Falls x eine Variable ist und F eine Formel, so sind auch ∃xF
und ∀xF Formeln. Das Symbol ∃ wird Existenzquantor und ∀
Allquantor genannt.
Eine Formel der Form P(t1 , . . . , tk ) oder ¬P(t1 , . . . , tk ) heißt
Literal.
Barbara König
Strukturen, Modelle
Gegeben sei eine Formel F . Eine zu F passende Struktur A besteht
auf einer Menge UA (dem Universum) und einer Interpretation, die
jeder in F vorkommenden freien Variable x ein Element x A
des Universums zuordnet.
jedem in F vorkommenden k-stelligen Funktionssymbol f eine
k → U zuordnet.
Funktion f A : UA
A
jedem in F vorkommenden k-stelligen Prädikatsymbol P eine
k zuordnet.
Relation P A ⊆ UA
Man kann F unter A (auf offensichtliche Weise) auswerten und
erhält einen Wahrheitswert A(F ) ∈ {0, 1}. Falls A(F ) = 1, dann
heißt A Modell von F .
“Form. Asp. der Software-Sicherheit und Kryptographie” 348
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 349
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Beispiel:
Erfüllbarkeit, Unerfüllbarkeit
Eine Formel F ist erfüllbar, wenn sie ein Modell hat, ansonsten ist
sie unerfüllbar.
F = ∀x∃yP(x, f (y ))
A mit UA = N0 , P A = {(m, n) | m < n} und
n − 1 falls n > 0
A
f (n) =
0
sonst
Beispiele:
Die Formel F = ∀x∃yP(x, f (y )) ist erfüllbar.
ist ein Modell für F .
PB
B mit UB = N0 ,
kein Modell für F .
Die Formel G = ∀xP(x) ∧ ∃y ¬P(y ) ist unerfüllbar.
= {(m, n) | m > n} und
Barbara König
f B (n)
= n ist
“Form. Asp. der Software-Sicherheit und Kryptographie” 350
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 351
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Klauselform, Hornformel
Eine Formel F ist in Klauselform, wenn sie folgende Form hat:
F = ∀x1 . . . ∀xn F ∗ ,
wobei F ∗ keine Quantoren enthält und sich in konjunktiver
Normalform befindet.
Sie ist eine Hornformel, wenn sich zusätzlich in jeder Klausel
höchstens ein positives Literal befindet.
Beispiele:
F = ∀x∀y (¬P(x) ∨ Q(x, y ) ∨ R(x)) ∧ (¬P(y ) ∨ R(f (y )))
ist in Klauselform, ist aber keine Hornformel.
F = ∀x∀y (¬P(x) ∨ Q(x, y ) ∨ ¬R(x)) ∧ (¬P(y ) ∨ R(f (y )))
ist eine Hornformel.
Barbara König
Bemerkungen:
Zu jeder prädikatenlogischen Formel F kann man einfach eine
erfüllbarkeitsäquivalente Formel F 0 in Klauselform
konstruieren. (Die Umwandlung in eine
erfüllbarkeitsäquivalente Hornformel ist nicht so einfach
möglich.)
Es gibt drei verschiedene Typen von Hornklauseln:
Ein positives Prädikat: P0 ≡ 1 → P0 (Tatsachenklausel)
Nur negative Prädikate:
¬P1 ∨ · · · ∨ ¬Pn ≡ P1 ∧ · · · ∧ Pn → 0 (Zielklausel)
Negative und ein positives Prädikat:
¬P1 ∨ · · · ∨ ¬Pn ∨ P0 ≡ P1 ∧ · · · ∧ Pn → P0
(Prozedurklauseln)
wobei jedes Pi von der Form P(t1 , . . . , tn ) ist.
“Form. Asp. der Software-Sicherheit und Kryptographie” 352
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 353
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Substitution, Unifikation
Sei sub = [x1 /t1 , . . . , xn /tn ] eine Substitution und seien P1 , . . . , Pn
Prädikate der Form P(t10 , . . . , tn0 ). Die Substitution sub heißt
Unifikator der Prädikate, falls
P1 sub = P2 sub = · · · = Pn sub.
Sie heißt allgemeinster Unifikator, wenn es für jede anderen
Unifikator sub 0 eine Substitution s gibt mit sub s = sub 0 .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 354
Bemerkungen:
Substitutionen werden – anders als andere Funktionen – hinter
ihr Argument geschrieben.
Daher wird die Verknüpfung von Substitutionen
folgendermaßen notiert: für zwei Substitutionen s1 , s2 ist s1 s2
die Substitution, bei der zuerst s1 und dann s2 ausgeführt
wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 355
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Beispiel: zu resolvierende Literale sind unterstrichen.
Resolvent
Gegeben seien zwei Klauseln K1 und K2 . Wir nehmen an, dass es
keine Variable gibt, die in beiden Klauseln vorkommt. (Ansonsten
kann man vorher umbenennen.)
0 negierte
Seien P1 , . . . , Pn Prädikate aus K und ¬P10 , . . . , ¬Pm
0 unifizierbar ist.
Prädikate aus K 0 , so dass P1 , . . . , Pn , P10 , . . . , Pm
Sei sub der allgemeinste Unifikator.
Wir erhalten K10 und K20 dadurch, dass wir die oben angegebenen
Prädikate aus K1 und K2 entfernen. Dann ist
SSS
SSS
S S
SSS
sub = [x/f (g (z)), y /gS(z)]
SS)
oo
ooo
o
o
o
w oo
o
Oft benutzt man auch die Mengenschreibweise:
TTTT
TTT
TTTT
sub = [x/f (g (z)), y /gT(z)]
TTT
ein Resolvent der Klauseln K1 , K2 .
¬P(f (g (z)))
Q(f (g (z)), g (z))
{P(x), P(f (y )), Q(x, y )}
R = (K10 ∨ K20 )sub
Barbara König
P(x) ∨ P(f (y )) ∨ Q(x, y )
{¬P(f (g (z)))}
m
mmm
m
m
mmm
mmm
{Q(f (g (z)), g (z))}
“Form. Asp. der Software-Sicherheit und Kryptographie” 356
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 357
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Resolution
Für eine Menge M von Klauseln bezeichnen wir mit Res(M) die
Menge aller Resolventen, die man aus den Klauseln von M
gewinnen kann, vereinigt mit M. Durch iterierte
Resolventenbildung erhält man:
Res 0 (M) = M
Res n+1 (M) = Res(Res n (M))
[
Res ∗ (M) =
Res n (M).
für n ≥ 0
n≥0
Sei F = ∀x1 . . . ∀xn F ∗ eine Formel in Klauselform. Wir schreiben
Res ∗ (F ∗ ) für Res ∗ ({K | K ist Klausel von F ∗ }).
Resolutionssatz
Gegeben sei eine Formel F = ∀x1 . . . ∀xn F ∗ in Klauselform. Die
Formel F ist unerfüllbar, genau dann, wenn die leere Klausel
(dargestellt durch ) in Res ∗ (F ∗ ) enthalten ist.
Beispiel: aus
∀x∀y (P(f (x)) ∨ Q(x)) ∧ ¬P(f (g (y ))) ∧ ¬Q(g (a))
kann man durch Resolution die leere Klausel herleiten.
Res ∗ (F ∗ ) kann möglicherweise eine unendliche Menge sein.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 358
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 359
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Folgende Form der Resolution funktioniert speziell für
Hornklauseln:
Definition (SLD-Resolution)
Eine SLD-Resolutionsherleitung
der leeren Klausel hat die rechts
abgebildete Form, wobei G eine
Zielklausel ist, G1 , G2 , . . . nur aus
negativen Literalen bestehen und
K1 , . . . , Kn Tatsachen- oder
Prozedurklauseln sind.
K1
qqq
q
q
q
G1
K2
qqq
qqq
G
Satz (Vollständigkeit der SLD-Resolution)
G2
Sei M eine unerfüllbare Klauselmenge mit nur einer Zielklausel G .
Dann gibt es für F eine SLD-Resolutionsherleitung der leeren
Klausel, die mit G beginnt.
..
.
Kn
ss
s
s
sss
Die Abkürzung SLD steht für “linear resolution with selection
function for definite clauses”
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 360
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 361
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir betrachten noch eine andere Form der Resolution, die
vollständig für Horn-Klauseln ist:
Unäre Resolution
Eine Menge M von Hornklauseln mit einer Zielklausel G . Die
Menge M ist unerfüllbar, genau dann, wenn es eine
Resolutionsableitung der leeren Klausel gibt, die folgende
Bedingungen erfüllt:
Bis auf die letzten Resolutionsschritte wird immer eine
Tatsachenklausel mit einer Prozedurklausel unifiziert. Dadurch
entsteht entweder eine Tatsachen- oder eine Prozedurklausel.
In den letzten Schritten werden dann Tatsachenklauseln mit G
resolviert, um zu erhalten.
Jetzt wieder zurück zur Verifikation von kryptographischen
Protokollen . . .
Idee: modelliere das Protokoll durch eine Menge von Hornklauseln
und zeige, dass eine gegebene Zielklausel – die beispielsweise
ausdrückt, dass der Angreifer in den Besitz des Geheimnisses
kommen kann – nicht ableitbar ist.
Um ausreichende Effizienz zu erreichen, betrachten wir eine
Einschränkung des angewandten π-Kalküls: insbesondere werden
Funktionssymbole nach Konstruktoren und Destruktoren
unterschieden.
Weil eine der beiden Klauseln nur ein Element enthält, wird diese
Resolution als unäre Resolution oder unit resolution bezeichnet.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 362
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 363
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Konstruktoren und Destruktoren
Wir unterteilen die Menge der Funktionssymbole in Konstruktoren
und Destruktoren.
Außerdem wird das Format der Gleichungen in Σ folgendermaßen
eingeschränkt: alle Gleichungen sind von der Form
g (M1 , . . . , Mn ) = M,
wobei M1 , . . . , Mn , M nur aus Variablen, Namen und
Konstruktoren aufgebaut sind (wir bezeichnen solche Terme als
Konstruktorterme) und g ein Destruktor ist.
Barbara König
Die meisten der von uns betrachteten Theorien erlauben diese
Klassifizierung.
Beispiel:
Symmetrische Verschlüsselung
Funktionen sdecrypt und sencrypt
Gleichungen:
Σ = {sdecrypt(sencrypt(x, y ), y ) = x}
Hier ist sdecrpyt ein Destruktor und sencrypt ein Konstruktor.
“Form. Asp. der Software-Sicherheit und Kryptographie” 364
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 365
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Außerdem wird die Semantik des Kalküls modifiziert, insbesondere
die Reduktionsregel für das Versenden von Nachrichten und die
Reduktionsregeln für If-Then-Else:
chMi.P | c(x).Q → P | Q[x/M]
if M = N then P else Q → P
falls Σ ` M = N
if M = N then P else Q → Q
falls M, N variablenfreie Terme sind und Σ 6` M = N
falls M und N Konstruktorterme sind
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 366
Bemerkungen: durch diese Modifikation entsteht ein Kalkül mit
anderem Reduktionsverhalten. Insbesondere kann Senden und
If-Then-Else blockierend sein.
Beispiele:
Der Prozess P = chsdecrypt(m, K )i.0 verschickt seine
Nachricht nie, da es sich bei sdecrypt(m) nicht um einen
Konstruktorterm handelt.
Der Prozess Q = c(x).chsdecrypt(x, K )i.0 verschickt seine
Nachricht dann, wenn er auf c zuvor eine Nachricht empfängt
und für x einsetzt, die dazu führt, dass sdecrypt(x, K ) zu
einem Konstruktorterm vereinfacht werden kann. Dies ist
beispielsweise bei einer Nachricht der Form sencrypt(m, K )
der Fall.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 367
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Bemerkungen:
Dieses blockierende Verhalten kann auch für die Modellierung Sinn
machen.
Insbesondere kann damit ausgedrückt werden, dass ein Prozess
nicht weiterarbeitet, wenn er eine empfangene Nachricht nicht
entschlüsseln kann.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 368
Wir betrachten das kleine Beispielprotokoll in vereinfachter Form.
(Wir lassen das Signieren des Sitzungsschlüssels K weg.)
1
B → A:
PB
2
A → B:
{K }PB
3
B → A:
{m}K
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 369
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Im angewandten π-Kalkül:
Alice:
A = (νK ) c(p).
chaencrypt(K , p)i.
c(x).0
Bob:
B = (νm)(νKB )
chpk(KB )i.
c(y ).
Alle möglichen Protokollabläufe dieses Protokolls – in Anwesenheit
eines Angreifers – werden nun mit Hilfe von Hornklauseln
modelliert.
Als Theorien benötigen wir symmetrische und asymmetrische
Verschlüsselung.
chsencrypt(m, adecrypt(y , sk(KB )))i.0
Alle für den Angriff nicht notwendigen Teile der Prozesse
(Bekanntgabe der öffentlichen Schlüssel, Fortsetzungen, etc.)
wurden weggelassen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 370
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 371
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir verwenden Formeln, bestehend aus:
Funktionssymbolen, die den Konstruktoren aus der Theorie
entsprechen.
Hornklauseln für die Konstruktoren
Konstantensymbolen, die den im Protokoll vorkommenden
Namen entsprechen oder das Vorwissen des Angreifers
repräsentieren.
für jeden n-stelligen Konstruktor in der Theorie.
Prädikatsymbolen:
Att (einstellig)
Intuition: Falls Att(M) für einen Konstruktorterm M gilt,
so bedeutet dies, dass der Angreifer M kennt.
Msg (zweistellig)
Intuition: Falls Msg (c, M) für einen Kanal c und einen
Konstruktorterm M gilt, so bedeutet dies, dass der Term
auf dem Kanal verschickt wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 372
Att(x1 ) ∧ · · · ∧ Att(xn ) → Att(f (x1 , . . . , xn ))
Im betrachteten Beispiel:
Att(x) ∧ Att(y ) → Att(sencrypt(x, y ))
(K1)
Att(x) ∧ Att(y ) → Att(aencrypt(x, y ))
(K2)
Att(x) → Att(pk(x))
(K3)
Att(x) → Att(sk(x))
(K4)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 373
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Hornklauseln für das Verhalten des Angreifers
Hornklauseln für die Destruktoren
Msg (x, y ) ∧ Att(x) → Att(y )
Att(M1 ) ∧ · · · ∧ Att(Mn ) → Att(M)
(Angreifer kann Nachrichten von Kanälen, die er kennt, abfangen.)
für jede Gleichung der Form g (M1 , . . . , Mn ) = M.
Im betrachteten Beispiel:
Att(x) ∧ Att(y ) → Msg (x, y )
Att(sencrypt(x, y )) ∧ Att(y ) → Att(x)
(D1)
Att(aencrypt(x, pk(y ))) ∧ Att(sk(y )) → Att(y )
Barbara König
(E1)
(D2)
“Form. Asp. der Software-Sicherheit und Kryptographie” 374
(E2)
(Angreifer kann Nachrichten, die er kennt, auf Kanälen
verschicken, die er kennt.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 375
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Modellierung des Protokolls (Teil 1)
Für einen Teilnehmer des Protokolls werden folgende Hornformeln
erzeugt: falls der Teilnehmer nach dem Empfang der Nachrichten
x1 , . . . , xn (jeweils auf den Kanälen c1 , . . . , cn ) den
Konstruktorterm M als Nachricht auf dem Kanal c verschickt, so
erzeugen wir folgende Klausel:
Msg (c1 , x1 ) ∧ · · · ∧ Msg (cn , xn ) → Msg (c, M)
Es muss jede der vorher empfangenen Nachrichten berücksichtigt
werden, denn M könnte alle entsprechenden Variablen enthalten.
Im betrachteten Beispiel: Verhalten von Alice
Msg (c, p) → Msg (c, aencrypt(K , p))
Modellierung des Protokolls (Teil 2)
Falls der Term M, der verschickt wird, kein Konstruktorterm ist, so
wird folgendermaßen verfahren:
Wir betrachten alle minimalen Substitutionen sub, so dass
Σ ` Msub = M 0 , wobei M 0 ein Konstruktorterm ist.
(“Minimal” bedeutet, dass so wenig wie möglich ersetzt wird,
analog zum allgemeinsten Unifikator.)
Für jede solche Substitution sub wird folgende Klausel erzeugt:
Msg (c1 , x1 sub) ∧ · · · ∧ Msg (cn , xn sub) → Msg (c, M 0 )
(A1)
Dabei sind c, K Konstanten und p eine Variable.
Barbara König
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 376
“Form. Asp. der Software-Sicherheit und Kryptographie” 377
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Im betrachteten Beispiel: Verhalten von Bob
Msg (c, pk(KB ))
(B1)
Msg (c, aencrypt(z, pk(KB ))) → Msg (c, sencrypt(m, z))
(B2)
Dabei sind c, KB , m Konstanten und z eine Variable.
Die für den zweiten Fall eingesetzte Substitution ist
sub = [y /aencrypt(z, pk(KB ))], die dazu führt, dass
Σ ` Msub = sencrypt(m, z), wobei
M = sencrypt(m, adecrypt(y , sk(KB ))).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 378
Vorwissen des Angreifers
Der Angreifer erhält Wissen über alle freie Kanäle, außerdem erhält
er Konstanten, die er als Nonces bzw. Schlüssel einsetzen kann.
Im betrachteten Beispiel:
Att(c)
Att(KE )
(V1)
(V2)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 379
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Mit Hilfe der obigen Hornklauseln, kann man die leere Klausel
ableiten, wir benutzen dazu unäre Resolution.
Zielklausel
Wir betrachten zunächst den Fall der Geheimhaltung einer
Nachricht m. Dann ist die Zielklausel
{Att(c)}(V1) {¬Att(x), ¬Att(y ), Msg (x, y )}(E2)
TTTT
TTTT
TTTT
TTT
{¬Att(y ), Msg (c, y )}(R1)
Att(m)
Dabei wird die Zielklausel negiert zur Klauselmenge hinzugefügt:
{¬Att(m)} (Z)
{Att(c)}(V1) {¬Msg (x, y ), ¬Att(x), Att(y )}(E1)
TTTT
TTTT
TTTT
TTT
{¬Msg (c, y ), Att(y )}(R2)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 380
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 381
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
{Att(KE )}(V2)
{¬Msg (c, y ), Att(y )}(R2) {Msg (c, pk(KB ))}(B1)
TTTT
TTTT
TTTT
TTT
{Att(pk(KB ))}(R3)
{¬Att(x), Att(pk(x))}(K1)
WWWWW
WWWWW
WWWWW
WWWWW
W
{¬Att(y ), Msg (c, y )}(R1)
{Att(pk(KE ))}(R4)
{¬Msg (c, p), Msg (c, aencrypt(K , p))}(A1)
{Msg (c, pk(KE ))}
WWWWW
WWWWW
WWWWW
WWWWW
W
WWWWW
WWWWW
WWWWW
WWWWW
W
{Msg (c, aencrypt(K , pk(KE )))}(R5)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 382
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 383
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
{Att(KE )}(V2)
{Msg (c, aencrypt(K , pk(KE )))}(R5)
{¬Msg (c, y ), Att(y )}(R2)
VVVV
VVVV
VVVV
VVVV
VV
{Att(aencrypt(K , pk(KE )))}(R6)
{¬Att(x), Att(sk(x))}(K2)
XXXXX
XXXXX
XXXXX
XXXXX
XXXX
{¬Att(aencrypt(x, pk(y ))), ¬Att(sk(y )), Att(x)}(D1)
{Att(sk(KE ))}
{Att(aencrypt(K , pk(KE )))}(R6)
{¬Att(aencrypt(x, pk(KE ))), Att(x)}
XXXXX
XXXXX
XXXXX
XXXXX
XXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXX
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 384
Barbara König
{Att(K )}(R7)
“Form. Asp. der Software-Sicherheit und Kryptographie” 385
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
{Att(pk(KB ))}(R3)
{¬Att(x), ¬Att(y ), Att(aencrypt(x, y ))}(K3)
{Att(K )}(R7)
{¬Att(x), Att(aencrypt(x, pk(KB ))))}
VVVV
VVVV
VVVV
VVVV
VVV
VVVV
VVVV
VVVV
VVVV
VVV
{¬Att(y ), Msg (c, y )}(R1)
{Att(aencrypt(K , pk(KB ))))}
VVVV
VVVV
VVVV
VVVV
VVV
{Msg (c, aencrypt(K , pk(KB )))}(R8)
{Msg (c, aencrypt(K , pk(KB )))}(R8)
{¬Msg (c, aencrypt(z, pk(KB ))),
YYYYYY
Msg (c, sencrypt(m, z))}(B2)
YYYYYY
YYYYYY
YY
{¬Msg (c, y ), Att(y )}(R2)
{Msg (c, sencrypt(m, K ))}
ZZZZZZZ
ZZZZZZZ
ZZZZ
{¬Att(sencrypt(x, y )), ¬Att(y ), Att(x)}(D2)
{Att(sencrypt(m, K ))}
ZZZZZZZ
ZZZZZZZ
ZZZZ
{Att(K )}(R7) ZZ
{¬Att(K ), Att(m)}
ZZZZZZZ
ZZZZZZZ
ZZZZZZZ
ZZ
{¬Att(m)}(Z ) ZZZ
{Att(m)}
ZZZZZZZ
ZZZZZZZ
ZZZZZZZ
ZZZZ
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 386
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 387
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Achtung:
D.h., die leere Klausel ist ableitbar und es gibt damit einen Angriff
auf dieses Protokoll.
Der Angriff läßt sich auch aus dem Resolutionsbeweis herleiten.
Es ist jedoch noch nicht klar, wie man im Fall eines korrekten
Protokolls beweisen soll, dass die leere Klausel nicht herleitbar ist.
Barbara König
Der obige Resolutionsbeweis entspricht einem Angriff, der
auch in dem Fall funktionieren würde, wenn der
Sitzungsschlüssel von Alice signiert wird. (Eve “denkt” sich
einen öffentlichen Schlüssel für Bob aus und schickt diesen an
Alice.)
In dem vereinfachten Protokoll gibt es noch einen direkteren
Angriff für Eve: sie erzeugt einfach selbst den
Sitzungsschlüssel, verschlüsselt diesen mit dem öffentlichen
Schlüssel von Bob und schickt diese Nachricht an Bob.
“Form. Asp. der Software-Sicherheit und Kryptographie” 388
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 389
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Zunächst betrachten wir aber, wie weitere syntaktische Konstrukte
des π-Kalküls in Hornklauseln übersetzt werden. Bisher hatten wir
nur sequentielle Abfolgen von Präfixen betrachtet.
Parallele Komposition
Ein Prozess P | Q wird dadurch übersetzt, dass sowohl die
Klauseln von P als auch die Klauseln von Q erzeugt werden.
Replikation
In einem Prozess der Form !P wird die Replikation zunächst
ignoriert. Die Tatsache, dass unter einer Replikation aber immer
wieder neue Namen erzeugt werden können, wird im nächsten Fall
behandelt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 390
Verschattung
In einem Prozess der Form (νn)P wird für jede Folge von
Nachrichten, die zuvor empfangen wurden, ein neuer Name a
erzeugt. Das gilt insbesondere wenn sich der Prozess unter einer
Replikation befindet. Um dies zu beschreiben, wird a ersetzt durch
a(x1 , . . . , xn ), wobei die Variablen aus den vorher vorkommenden
Eingabe-Präfixen entnommen werden.
Beispiel: !c(x).(νn)(dhni.P) ergibt unter anderem die Hornklausel
Msg(c, x) → Msg (d, n(x))
Das ist ähnlich zu der sogenannten Skolemisierung, bei der
Existenzquantoren in prädikatenlogischen Formeln eliminiert
werden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 391
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
If-Then-Else
In einem Prozess der Form if M = N then P else Q bestimmt
man die minimalen Substitutionen sub, so dass Σ ` Msub = Nsub
und Msub ein Konstruktorterm ist. Auf die Klauseln, die aus P
entstehen, werden dann diese Substitutionen angewandt, um die
eigentlichen Hornklauseln zu erhalten. Die Klauseln, die aus Q
entstehen, bleiben unverändert.
Beispiel: c(x).(if n = sdecrypt(x, K ) then dhxi.0 else 0)
sub = [x/sencrypt(n, K )] ist die einzige minimale Substitution, die
zur Gleichheit von n und sdecrypt(x, K ) führt.
Das Verifikationsverfahren arbeitet zwar mit Überapproximation,
ist aber in folgendem Sinne korrekt:
Korrektheit des Verifikationsverfahrens
Wenn es einen Angriff auf das Protokoll gibt, dann ist die erzeugte
Klauselmenge unerfüllbar, d.h., die leere Klausel ist ableitbar.
bzw.
Wenn die leere Klausel nicht ableitbar ist, dann gibt es keinen
Angriff auf das Protokoll. D.h., das Protokoll ist korrekt.
Aus dem Then-Fall entsteht damit die Klausel
Msg(c, sencrypt(n, K )) → Msg (d, sencrypt(n, K )).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 392
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 393
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Literaturhinweise zur Verifikation von kryptographischen
Protokollen mit Hornklauseln:
Bruno Blanchet: Using Horn Clauses for Analyzing Security
Protocols. Formal Models and Techniques for Analyzing
Security Protocols. IOS Press, 2010.
(Überblick und Beschreibung der verwendeten
Resolutionstechniken)
Martı́n Abadi and Bruno Blanchet: Analyzing Security
Protocols with Secrecy Types and Logic Programs. Journal of
the ACM, 52(1):102-146, 2005.
(Enthält unter anderem das Verfahren zur Übersetzung von
Prozessen in Horn-Klauseln)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 394
Bruno Blanchet: Automatic Verification of Correspondences
for Security Protocols. Journal of Computer Security,
17(4):363-434, 2009.
(Beschreibt die Verifikation von Authentifizierung)
Artikel sind erhältlich unter
http://www.di.ens.fr/~blanchet/publications/
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 395
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir betrachten nun die Funktionsweise von ProVerif:
ProVerif hat zwei verschiedene Eingabeformate: Hornklauseln
und Prozesse des angewandten π-Kalküls. Wir verwenden nur
das zweite Eingabeformat.
ProVerif liefert eine der folgenden drei Ausgaben:
Die zu verifizierende Eigenschaft ist erfüllt. (Zielklausel
ist durch Resolution nicht herleitbar.)
Es gibt einen Angriff (mit Ausgabe des Angriffs).
Die Eigenschaft kann nicht verifiziert werden. (Zielklausel
ist durch Resolution herleitbar, es kann jedoch kein
Angriff gefunden werden.)
Barbara König
Wir betrachten nun das obige Beispielprotokoll
modellieren es in ProVerif:
Protokoll
und
param traceDisplay = long.
(* Kleines Beispiel-Protokoll - vereinfacht *)
free c.
(* Asymmetric Encryption *)
fun aencrypt/2.
fun pk/1.
fun sk/1.
reduc adecrypt(aencrypt(m,pk(k)),sk(k)) = m.
(* Symmetric Encryption *)
fun sencrypt/2.
reduc sdecrypt(sencrypt(m,k),k) = m.
“Form. Asp. der Software-Sicherheit und Kryptographie” 396
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 397
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
query attacker:secretM[].
let processA =
new K;
in(c, p);
out(c, aencrypt(K,p));
in(c, x).
Aufruf von ProVerif:
let processB =
new secretM;
new Kb;
out(c,pk(Kb));
in(c,y);
out(c,sencrypt(secretM,adecrypt(y,sk(Kb)))).
process
> proverif -in pi beispiel-prot-simple
[...]
A trace has been found.
RESULT not attacker:secretM_8[] is false.
Es wird auch der Angriff explizit ausgegeben.
(processA | processB)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 398
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 399
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir betrachten nun die Modellierung des fehlerhaften
Needham-Schroeder-Protokolls in ProVerif.
param traceDisplay = long.
(* Needham-Schroeder - fehlerhaft *)
free cs.
free cab.
free fail.
(* Symmetric Encryption *)
fun sencrypt/2.
fun ok/0.
reduc sdecrypt(sencrypt(m,k),k) = m.
reduc check(sencrypt(m,k),k) = ok().
query ev:a(x,y) ==> ev:b(y,x).
let processA =
new Na;
out(cs, (A,B,Na));
in(cs, x);
let (N,Kab,M) = sdecrypt(x,Kas) in
if N=Na
then out(cab,M);
in(cab,y);
if check(y,Kab)=ok()
then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));
event a (A,B).
(* Dekrementierung *)
fun dec/1.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 400
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 401
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
let processB =
new Nb;
in(cab,x);
let (Kab,a) = sdecrypt(x,Kbs) in
event b (B,a);
out(cab,sencrypt(Nb,Kab));
in(cab,y);
if sdecrypt(y,Kab) = dec(Nb)
then 0
else out(fail,()).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 402
let processS =
in(cs,(t1,t2,N));
new K;
if t1=A then (if t2=B then
out(cs,sencrypt((N,K,sencrypt((K,A),Kbs)),Kas))
else if t2=E then
out(cs,sencrypt((N,K,sencrypt((K,A),Kes)),Kas)))
else if t1=B then (if t2=A then
out(cs,sencrypt((N,K,sencrypt((K,B),Kas)),Kbs))
else if t2=E then
out(cs,sencrypt((N,K,sencrypt((K,B),Kes)),Kbs)))
else if t1=E then (if t2=A then
out(cs,sencrypt((N,K,sencrypt((K,E),Kas)),Kes))
else if t2=B then
out(cs,sencrypt((N,K,sencrypt((K,E),Kbs)),Kes))).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 403
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
process
Bei Aufruf von ProVerif wird wieder ausgegeben, dass die
Eigenschaft nicht erfüllt ist:
new Kas;
new Kbs;
(processA | processB | processS)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 404
> proverif -in pi my-needham-schroeder
[...]
A trace has been found.
RESULT ev:a(x_25,y_26) ==> ev:b(y_26,x_25) is false.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 405
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Hier wird korrekte Authentifizierung durch Korrespondenz von
Ereignissen überprüft:
Wenn Ereignis (event) a(x,y) eintritt, dann muss zuvor
Ereignis b(y,x) eingetreten sein.
Dazu reichert man die Syntax und Semantik des π-Kalküls um
Ereignisse an.
Die Verifikation funktioniert in etwa folgendermaßen: es wird
überprüft, dass in jedem Resolutionsbeweis, der eine
Tatsachenklausel mit dem Ereigniss a(x,y) ableitet, b(y,x)
als Hypothese verwendet wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 406
Das Needham-Schroeder-Protokoll kann korrigiert werden, so dass
die Verifikation erfolgreich ist. Insbesondere muss dazu der Server
den Namen des Kommunikationspartners mit in die Nachricht
aufnehmen und Alice muss dies überprüfen.
Wir ändern das Protokoll (insbesondere die Prozesse, die Alice und
den Server beschreiben, entsprechend ab . . .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 407
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
let processA =
new Na;
out(cs, (A,B,Na));
in(cs, x);
let (N,b,Kab,M) = sdecrypt(x,Kas) in
if N=Na
then if b=B
then out(cab,M);
in(cab,y);
if check(y,Kab)=ok()
then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));
event a (A,B).
Barbara König
let processS =
in(cs,(t1,t2,N));
new K;
if t1=A then (if t2=B then
out(cs,sencrypt((N,B,K,sencrypt((K,A),Kbs)),Kas))
else if t2=E then
out(cs,sencrypt((N,E,K,sencrypt((K,A),Kes)),Kas)))
else if t1=B then (if t2=A then
out(cs,sencrypt((N,A,K,sencrypt((K,B),Kas)),Kbs))
else if t2=E then
out(cs,sencrypt((N,E,K,sencrypt((K,B),Kes)),Kbs)))
else if t1=E then (if t2=A then
out(cs,sencrypt((N,A,K,sencrypt((K,E),Kas)),Kes))
else if t2=B then
out(cs,sencrypt((N,B,K,sencrypt((K,E),Kbs)),Kes))).
“Form. Asp. der Software-Sicherheit und Kryptographie” 408
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 409
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Dieses Verifikationsverfahren ist eine Approximationstechnik.
Über-Approximation entsteht insbesondere durch folgende Effekte:
Die Kodierung ignoriert wie oft eine Aktion ausgeführt wird.
Auch wenn eine Nachricht nur einmal empfangen werden
kann, kann die dazugehörige Hornklausel beliebig oft
verwendet werden. Das bedeutet im wesentlichen, dass jeder
Prozess als replizierter Prozess betrachtet wird.
Außerdem entsteht Überapproximation durch die Behandlung
von If-Then-Else-Anweisungen. (Vor allem durch fehlende
Einschränkungen für den Else-Fall.)
Des weiteren können verschattete Namen, die eigentlich
verschieden sind, durch die Approximation als gleich
angesehen werden.
Dies führt jedoch nur zu zusätzlichem Verhalten, tatsächliche
Systemabläufe werden nie unterschlagen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 410
In folgendem Beispiel kann Prozess processB nur einen Nonce
entschlüsseln und zurückschicken, processA schickt daher niemals
das Geheimnis. Das kann durch die Überapproximation jedoch
nicht erkannt werden.
param traceDisplay = long.
(* Beispiel fuer Ueberapproximation *)
free c.
(* Symmetric Encryption *)
fun sencrypt/2.
reduc sdecrypt(sencrypt(m,k),k) = m.
query attacker:secretM[].
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 411
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
let processA =
new N1;
new N2;
out(c,sencrypt(N1,K));
out(c,sencrypt(N2,K));
in(c,x1);
in(c,x2);
if x1=N1
then if x2=N2 then out(c,secretM)
else 0 else 0.
let processB =
in(c,x);
out(c,sdecrypt(x,K)).
process
ProVerif erzeugt folgende Ausgabe:
> proverif -in pi approx
[...]
Could not find a trace corresponding to this derivation.
RESULT not attacker:secretM_7[] cannot be proved.
Ein echter Angriff wird jedoch gefunden, wenn processB repliziert
wird. Denn dann kann er beliebig viele Nonces entschlüsseln.
new K;
new secretM;
(processA | processB)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 412
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 413
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Beispiel:
Wir betrachten einen Konstruktor f und einen Destruktor g (beide
einstellig) mit der Gleichung
Wir betrachten nun die von ProVerif verwendeten
Resolutionstechniken genauer.
Ein Hauptproblem beim Einsatz von Resolution ist die
Terminierung. Für eine gegebene Menge M von Klauseln ist es
normalerweise nicht klar, dass Res ∗ (M) endlich ist und der
Resolutionsprozess damit terminiert.
g(f(x)) = x
Dies ergibt folgende Hornklauseln:
Att(f(x)) → Att(x)
Att(x) → Att(f(x))
Wir nehmen an, dass der Angreifer folgendes Vorwissen hat:
Att(a)
Att(f(a))
für eine Konstante a.
Ziel ist es, zu zeigen, dass der Angreifer nicht in den Besitz von b
gelangen kann, wobei b eine weitere Konstante ist. D.h., die
Zielklausel ist ¬Att(b).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 414
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 415
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Probleme mit SLD-Resolution:
Probleme mit unärer Resolution:
Bei SLD-Resolution kann folgende unendliche Folge von
Resolventen entstehen:
Auch unäre Resolution funktioniert hier nicht. Wir erhalten
folgenden unendlichen Resolutionsbeweis:
{¬Att(b)}
{¬Att(f(b))}
{¬Att(f(x)), Att(x)}
{Att(a)}
{¬Att(f(x)), Att(x)}
{Att(f(a))}
ffff
fffff
{¬Att(f(f(b)))}
fff
fffff
..
.
{¬Att(x), Att(f(x))}
fffff
fffff
{Att(f(f(a)))}
{¬Att(x), Att(f(x))}
fff
fffff
..
.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 416
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 417
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Daher wird folgendes Vorgehen benutzt:
Wir beginnen mit der Klauselmenge ohne die Zielklausel.
Es gibt eine Selektionsfunktion sel, die aus jeder Klausel ein
oder kein negatives Literal auswählt. Klauseln K1 , K2 werden
nur dann resolviert, wenn kein Literal in K1 ausgewählt ist und
das zu resolvierende Literal von K2 ausgewählt ist.
Nachdem alle oben möglichen Resolventen wie oben
beschrieben gebildet wurden, werden alle Klauseln entfernt,
bei denen ein Literal selektiert ist.
Dann wird, mit den übrigen Klauseln, von der Zielklausel aus
eine Rückwärtsresolution (ähnlich zur SLD-Resolution)
durchgeführt.
(Das ist eine etwas vereinfachte Darstellung! Details befinden sich
in den Artikeln von Blanchet.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 418
Außerdem wird darauf geachtet, dass “überflüssige” Klauseln, die
bereits durch andere Klauseln subsumiert werden, sofort entfernt
werden.
Subsumption
Gegeben seien zwei Klauseln K1 , K2 folgender Form:
K1 = P1 ∧ · · · ∧ Pm → P0
K2 = P10 ∧ · · · ∧ Pn0 → P00
Man sagt, dass die Klausel K1 die Klausel K2 subsumiert (in
Zeichen: K1 w K2 ), falls es eine Substitution sub gibt mit:
P0 sub = P00 und
{P1 , . . . , Pm }sub ⊆ {P10 , . . . , Pn0 }
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 419
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Bemerkungen:
In obiger Definition gilt möglicherweise m = 0 oder n = 0,
d.h., es gibt keine negativen Literale.
Aus K1 w K2 folgt K1 |= K2 (logische Implikation). Die
umgekehrte Richtung gilt jedoch nicht notwendigerweise.
Falls die Resolution von K2 und einer weiteren Klausel K
einen Resolventen R2 ergibt, so ergibt entweder die Resolution
von K1 und K einen Resolventen R1 mit R1 w R2 oder es gilt
bereits K1 w R2 .
D.h., es reicht, mit der Klausel K1 weiterzuresolvieren, da alle
Resolutionsschritte von K2 durch K1 “imitierbar” sind und
man sogar allgemeinere Klauseln erhält.
Klauseln, die durch andere Klauseln subsumiert werden,
werden aus der Menge der Resolventen entfernt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 420
Beispiel:
Gegeben seien folgende Klauseln K1 , K2 :
K1 = P(x) → R(x)
K2 = P(f(x)) ∧ Q(x) → R(f(x))
Die Klausel K1 subsumiert K2 (K1 w K2 ). Die dazugehörige
Substitution ist sub = [x/f(x)]
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 421
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Selektionsfunktion
Wir nehmen an, dass eine Selektionsfunktion existiert, die einer
Klausel K = P1 ∧ · · · ∧ Pm → P0 entweder ein negatives Literal
zuordnet, das in der Klausel vorkommt (sel(K ) = {Pi }) oder die
leere Menge zurückgibt (sel(K ) = ∅).
Im ersten Fall sagt man, dass Pi selektiert ist, im zweiten Fall ist
kein Literal selektiert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 422
Die folgenden Korrektheitsbeweise funktionieren mit jeder
beliebigen Selektionsfunktion. Für die Terminierung ist es jedoch
wichtig, eine “gute” Selektionsfunktion zu wählen.
In unserem Fall ist eine gute Selektionsfunktion eine Funktion, die
niemals ein Prädikat der Form Att(x) selektiert. Für solche Literale
ergeben sich nämlich sehr viele Resolutionsmöglichkeiten. Falls es
unter den negativen Literalen ein Prädikat gibt, das von Att(x)
verschieden ist, dann wird aber auf jeden Fall eines davon
selektiert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 423
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Saturierung/Sättigung
Gegeben sei eine Menge M von Klauseln. Wir bestimmen eine
Menge M 0 dadurch, dass wir (iteriert) alle möglichen Resolventen
aus den Klauseln in M bilden (analog zu Res ∗ ). Dabei wird jedoch
folgende Bedingung eingehalten:
Beispiel: wir bilden Saturate ∗ (M) für folgende Klauselmenge M
(noch ohne Zielklausel)
{{¬Att(f(x)), Att(x)}, {¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))}}
Angenommen, es werden zwei Klauseln K1 , K2 miteinander
resolviert, wobei das positive Literal aus K1 und das negative
Literal aus K2 genommen wird: dann darf in K1 kein Literal
selektiert sein und das zu resolvierende Literal in K2 muss
selektiert sein.
Nur in der ersten Klausel ist ein Literal selektiert. Diese Klausel
kann mit der zweiten und vierten Klausel resolviert werden und
man erhält:
Klauseln, die durch bereits existierende Klauseln subsumiert
werden, werden sofort entfernt.
In beiden Klauseln ist kein Literal selektiert. Außerdem ist die erste
der beiden neuen Klauseln eine Tautologie (und könnte entfernt
werden), die zweite gab es bereits.
Wir bestimmen nun Saturate ∗ (M) dadurch, indem wir alle
Klauseln K mit sel(K ) 6= ∅ aus M 0 entfernen.
Barbara König
{¬Att(x), Att(x)}
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 424
{Att(a)}
“Form. Asp. der Software-Sicherheit und Kryptographie” 425
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Beispiel (Fortsetzung):
Bemerkung:
Die Saturierung terminiert also und wir erhalten als Ergebnis:
Die übrigbleibenden Klauseln sind alle von der Form
Saturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},
{¬Att(x), Att(x)}}
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 426
Att(x1 ) ∧ · · · ∧ Att(xn ) → P0 ,
wobei auch n = 0 möglich ist. Dann handelt es sich um eine
Tatsachenklausel.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 427
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Korrektheit der Saturierung
Gegeben sei eine Zielklausel G .
Wenn aus M ∪ {G } durch Resolution die leere Klausel hergeleitet
werden kann, so kann man auch aus Saturate ∗ (M) ∪ {G } die leere
Klausel herleiten (und umgekehrt).
∗
Beweis: Da Saturate (M) nur Klauseln enthält, die aus M
hergeleitet werden können, kann man eine Herleitung der leeren
Klausel aus Saturate ∗ (M) ∪ {G } immer in eine Herleitung der
leeren Klausel aus M ∪ {G } umwandeln.
Die andere Richtung ist etwas komplizierter, da bestimmte
Klauseln (nämlich diejenigen, in denen ein Literal selektiert ist)
entfernt wurden. Angenommen, es gibt eine Herleitung der leeren
Klausel aus M ∪ {G }. Wir nehmen an, dass es sich dabei um unäre
Resolution handelt.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 428
Diese Herleitung beginnt – neben der Verwendung der Zielklausel –
mit Klauseln aus M. Diese Klauseln, die nicht aus anderen
Klauseln resolviert werden, bezeichnen wir als Hypothesen.
Zunächst argumentieren wir, dass diese Resolutionsableitung so
umgeformt werden kann, dass bei Resolution von zwei Klauseln
K1 , K2 , wobei K1 eine Tatsachenklausel ist und sel(K2 ) 6= ∅ gilt,
das selektierte Literal resolviert wird. Ist dies nicht der Fall, so wird
das selektierte Literal später mit einer Tatsachenklausel resolviert,
in diesem Fall kann jedoch die Reihenfolge der Resolutionen so
geändert werden, dass das selektierte Literal sofort resolviert wird.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 429
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Wir transformieren nun diesen Resolutionsbeweis in einen
Resolutionsbeweis für Saturate ∗ (M) ∪ {G }. Die dabei
entstehenden Resolutionsbeweise haben Klauseln aus M 0 als
Hypothesen, der im letzten Schritt entstehende Resolutionsbeweis
besitzt dann nur noch Klauseln aus Saturate ∗ (M) als Hypothesen.
Falls der Beweis als Hypothese eine Klausel K aus M 0 verwendet,
die nicht in Saturate ∗ (M) liegt, so gilt sel(K ) 6= ∅. Diese Klausel
wird mit einer oder mehreren Tatsachenklausel K1 , . . . , Kn
resolviert, wobei immer mit dem in K selektierten Literal resolviert
wird (nach der oben beschriebenen Umformung). Dadurch
entstehen Resolventen R1 , . . . , Rn , die alle Elemente von M 0 sind.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 430
Also entfernen wir K aus dem Resolutionsbeweis. Das bedeutet,
dass wir nun zusätzlich R1 , . . . , Rn als Hypothesen verwenden, die
aber alle in M 0 liegen.
In jedem Schritt wird mindestens eine Klausel entfernt, die Größe
des Resolutionsbeweises bleibt ansonsten unverändert. D.h., nach
einer festen Anzahl von Schritten erhalten wir einen
Resolutionsbeweis, der nur noch Klauseln K mit sel(K ) = ∅ als
Hypothesen verwendet.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 431
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Horn-Formeln und Resolution
Anschließend wird – ausgehend von der Zielklausel G – eine
Rückwärtsresolution (ähnlich zu einer SLD-Resolution)
durchgeführt. Dabei werden noch folgende Optimierungen
verwendet:
Suchpfade, die zu subsumierten Klauseln führen, werden nicht
mehr weiterverfolgt.
Die Anzahl der erzeugten Klauseln wird durch Einsatz der
Selektionsfunktion minimiert. (Wird nicht im Detail
besprochen.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 432
Beispiel: es gilt G = {¬Att(b)} und
Saturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},
{¬Att(x), Att(x)}}
Wir können nur G mit der vierten Klausel aus Saturate ∗ (M)
resolvieren, wodurch wir wieder G erhalten (Subsumierung).
D.h., nach wenigen Schritten wird abgebrochen und festgestellt,
dass die leere Klausel nicht herleitbar ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 433
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Horn-Formeln und Resolution
Verhaltensäquivalenzen
Auch bei diesem Vorgehen ist nicht klar, dass das Verfahren
terminiert. In der Praxis terminiert das Verfahren jedoch sehr
häufig.
Man kann auch zeigen, dass für eine bestimmte Klasse von
kryptographischen Protokollen (sogenannte tagged protocols) das
Resolutionsverfahren immer terminiert.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 434
Wir betrachten nun eine dritte Technik zur Verifikation von
kryptographischen Protokollen: Verhaltensäquivalenzen.
Dazu nehmen wir an, dass ein externer Beobachter mit dem
System interagiert. Man möchte feststellen, ob der Beobachter das
System Sys von einem anderen System Sys 0 unterscheiden kann
oder nicht. (Ähnlich zu Zero-Knowledge.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 435
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Zunächst definieren wir die Beobachtungen, die gemacht werden
können.
Wir betrachten wieder die ursprüngliche Variante des angewandten
π-Kalküls (keine Unterscheidung von Konstruktoren und
Destruktoren, kein blockierendes Senden und If-Then-Else).
Weitere Einzelheiten sind beschrieben in:
Martı́n Abadi, Cédric Fournet: Mobile Values, New Names,
and Secure Communication. Proc. of POPL ’01, pp. 104–115,
ACM, 2001.
Beobachtungen
Sei P ein Prozess des angewandten π-Kalküls. Wir schreiben P ⇓ a
(a kann in P beobachtet werden), falls es einen Evaluationskontext
C [ ] gibt mit P →∗ C [ahMi.Q], wobei a in C nicht gebunden ist.
Intuitiv kann man Ausgabeaktionen auf Kanälen (in diesem Fall
auf Kanal a) beobachten. Eine solche Beobachtung heißt auch
barb (= Stachel).
Beispiel:
Für den Prozess
P = chNi.0 | c(x).ahxi.0
gilt P ⇓ c und P ⇓ a.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 436
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 437
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Wir definieren nun Relation auf Prozessen, wobei diese Relationen
die Eigenschaft haben müssen, dass zwei Prozesse, die in Relation
stehen, sich gegenseitig simulieren können.
Bisimulation
Eine symmetrische Relation R auf Prozessen heißt Bisimulation,
wenn sie folgende Eigenschaften hat: Falls P R Q, dann gilt:
Aus P ⇓ a folgt Q ⇓ a (für jede Beobachtung a)
Beobachtungskongruenz
Falls es für zwei Prozesse P, Q eine Bisimulation R gibt mit
P R Q, dann schreiben wir P ≈ Q und sagen, dass P, Q
beobachtungskongruent sind.
Falls P →∗ P 0 für einen Prozess P 0 , dann gibt es einen
Prozess Q 0 mit Q →∗ Q 0 und P 0 R Q 0 .
Für jeden Evaluationskontext C [ ] gilt C [P] R C [Q].
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 438
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 439
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Bemerkungen:
Man unterscheidet auch zwischen starken und schwachen
Bisimulationen. Bei schwachen Bisimulationen kann ein
Schritt durch mehrere andere Schritte simuliert werden. Daher
handelt es sich hier um eine schwache Bisimulation.
Der Evaluationskontext C [ ] steht intutiv für den Angreifer.
Falls er die beiden Prozesse unterscheiden kann, dann kann er
dies durch eine Beobachtung auf einem Kanal a
bekanntgeben.
Die obige Definition für Bisimulation ist algorithmisch
unbrauchbar, da über alle Kontexte quantifiziert wird. Es gibt
jedoch alternative, besser handhabbare Definitionen.
Barbara König
Beispiele: folgende Paare von Prozessen sind
beobachtungskongruent
P = 0, Q = (νa)(ahMi.0)
P = 0, Q = (if a = b then chMi.0 else 0)
P = (νa)(chai.0), Q = (νb)(chf(b)i.0), wobei f eine Funktion
ist, für die keine Gleichungen existieren (Einwegfunktion).
D.h., es kann nicht festgestellt werden, ob ein (frischer) Wert
als Bild einer Einwegfunktion entstanden ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 440
“Form. Asp. der Software-Sicherheit und Kryptographie” 441
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Geheimhaltung mit Verhaltensäquivalenzen
Sei P ein Prozess mit einer freien Variablen x, die für eine
Nachricht steht. Ein Prozess P gewährleistet die Geheimhaltung
der entsprechenden Nachricht, wenn
P[x/m] ≈ P[x/n]
für zwei beliebige Namen m, n gilt.
Diese Definition ist verschieden von der bisherigen Definition von
Geheimhaltung, die davon ausgeht, dass die geheimzuhaltende
Nachricht im Prozess gebunden ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 442
Beispiel:
Der Prozess P = (νK )(chsencrypt(x, K )i.0) hält alle Nachrichten
geheim, die für x eingesetzt werden, denn es gilt:
(νK )(chsencrypt(n, K )i.0) ≈ (νK )(chsencrypt(m, K )i.0)
für beliebige Namen m, n.
Intuition: der Angreifer kennt höchstens einen Schlüssel, der
verschieden von K ist. Auch wenn der Angreifer m bzw. n besitzen
sollte, so kann er nicht überprüfen, ob diese Nachrichten
verschlüsselt den verschickten Nachrichten entsprechen. Alles, was
er erzeugt, ist verschieden von sencrypt(m, K ) und sencrypt(n, K ).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 443
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen: Beispiel MACs
Verhaltensäquivalenzen: Beispiel MACs
Wir betrachten nun als Anwendungsbeispiel sogenannte MACs
(Message Authentication Codes), die auf symmetrischer
Verschlüsselung basieren. Sie haben eine ähnliche Funktion wie
Signaturen, die auf asymmetrischer Verschlüsselung basieren.
Üblicherweise wird dabei eine Nachricht, zusammen mit einer Art
Verschlüsselung der Nachricht unter einem symmetrischen
Schlüssel K verschickt. Dann können die Besitzer von K
überprüfen, dass tatsächlich einer von ihnen die Nachricht erzeugt
hat.
Barbara König
Zur Formalisierung im angewandten π-Kalkül verwenden wir eine
zweistellige Funktion mac. Der Term mac(K , m) (für eine
Nachricht m und einen symmetrischen Schlüssel K ) wird als
Beweis aufgefasst, dass die Nachricht von einem Teilnehmer
geschickt wurde, der den symmetrischen Schlüssel K kennt.
Bei Empfang einer Nachricht m mit MAC M berechnet der
Empfänger mac(K , m) und überprüft, ob dieser Wert gleich M ist.
“Form. Asp. der Software-Sicherheit und Kryptographie” 444
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 445
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Szenario: eine von Alice weitergeleitete Nachricht wird von Bob
empfangen und nur dann weitergeschickt, wenn sie die korrekte
MAC hat:
A = !a(x).bhpair(x, mac(K , x))i.0
B = b(y ). (if mac(K , fst(y )) = snd(y ) then chfst(y )i.0 else 0)
Sys = (νK )(A | B)
Wir diskutieren nun Aspekte, die sich bei der Erzeugung von MACs
mit Hilfe der Merkle-Damgård-Konstruktion ergeben. Diese
funktioniert wie folgt:
Es wird eine Einweg-Kompressionsfunktion h verwendet, die
zwei Blöcke auf einen Block abbildet.
Ein initialer Wert (= Schlüssel K ) wird nun mit dem ersten
Block der Nachricht bezüglich h verknüpft. Der entstehende
Wert wird mit dem zweiten Block der Nachricht verknüpft,
usw.
Nachricht m
K
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 446
Block 1
Block 2
Block n
h
h
h
Barbara König
MAC
“Form. Asp. der Software-Sicherheit und Kryptographie” 447
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Diese Konstruktion von MACs hat in der vorgestellten Form
folgenden Nachteil:
Falls eine MAC für eine Nachricht m bekannt ist, so kann man –
da die Kompressionsfunktion h bekannt ist – einfach eine MAC für
eine Nachricht m konkateniert mit m0 gewinnen.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 448
Wir modellieren diese Art der MAC-Berechnung im angewandten
π-Kalkül. Dazu verwenden wir
eine zweistellige MAC-Funktion f (entspricht mac),
die zweistellige Kompressionsfunktion h,
eine Konstante null für die leere Folge von Blöcken und
eine zweistellige Funktion concat (zur Konkatenation von
Blöcken (eine Folge m1 , m2 , m3 wird als
concat(concat(concat(null, m1 ), m2 ), m3 ) dargestellt).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 449
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Dazu stellen wir folgende Gesetze auf:
mac(x, y ) = f(x, y )
f(x, null) = x
f(x, concat(y , z)) = h(f(x, y ), z)
Natürlich sollte immer mindestens ein Block verschlüsselt werden,
ansonsten wird der Schlüssel offengelegt.
Beispiel:
mac(K , concat(concat(null, m1 ), m2 ))
= f(K , concat(concat(null, m1 ), m2 ))
Der Angriff sieht formal wie folgt aus:
Gegeben ist eine MAC M = f(K , m)
Dann berechnet man daraus
h(M, m0 ) = h(f(K , m), m0 ) = f(K , concat(m, m0 ))
D.h., falls es eine MAC zu einer existierenden Nachricht m gibt, so
kann der Angreifer MACs zu beliebigen Verlängerungen von m
erzeugen, ohne K zu kennen.
= h(f(K , concat(null, m1 )), m2 )
= h(h(f(K , null), m1 ), m2 )
= h(h(K , m1 ), m2 )
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 450
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 451
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Der Angreifer im angewandten π-Kalkül sieht wie folgt aus:
E = ahmi.b(y ).bhpair(concat(m, m0 ), h(snd(y ), m0 ))i.0
Eve läßt von Alice eine MAC für die Nachricht m erstellen, schickt
dann aber die Konkatenation von m, m0 mit einer gültigen MAC,
die aber nicht von Alice erstellt wurde.
Eine Möglichkeit, solche Angriffe zu verhindern, ist es, folgende
Funktion für die Berechnung der MAC zu verwenden:
Damit haben wir drei Möglichkeiten, MACs zu spezifizieren:
Mit einer zweistelligen Funktion mac, ohne jede Gleichungen.
Mit der Gleichung mac(x, y ) = f(x, y ).
Mit der Gleichung mac(x, y ) = f(x, f(x, y ))
Dabei wird f – wie oben – durch iterierte Anwendung der
Kompressionsfunktion h berechnet.
mac(x, y ) = f(x, f(x, y ))
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 452
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 453
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Alle drei Möglichkeiten, können in ProVerif modelliert werden. Da
die Gleichungen jedoch nicht alle die für
Destruktoren/Konstruktoren notwendige Form haben, muss man
sich auf die eingeschränkte Gleichungsbehandlung in ProVerif
verlassen. Kleine Änderungen an den Gleichungen führen oft zu
Nicht-Terminierung.
Im ersten und letzten Fall kann der Prozess Sys verifiziert werden.
Dies geschieht durch Verwendung von Korrespondenzen: Bob löst
ein Ereignis der Form macb(x) aus, falls er eine Nachricht x
weiterschickt. Vorher muss ein Ereignis maca(x) stattgefunden
haben, direkt bevor Alice die Nachricht mit einer MAC versieht.
Im zweiten Fall kann der Prozess nicht verifiziert werden. Es wird
jedoch kein durchführbarer Angriff gefunden.
Wir möchten nun jedoch zeigen, dass die dritte Variante für die
Erzeugung von MACs immer äquivalent zur ersten Variante ist.
D.h., wenn es keinen Angriff in der ersten Variante gibt, dann gibt
es auch keinen in der dritten Variante. Dies geschieht mit Hilfe der
Beobachtungskongruenz.
Korrektheit der Erzeugung von MACs
Sei P ein Prozess, in dem die Schlüssel K1 , . . . , Kn frei vorkommen
und nur für die Erzeugung von MACs verwendet werden. Sei P 0 der
Prozess der aus P entsteht, indem jedes Vorkommen von
mac(Ki , M) durch f(Ki , f(Ki , M)) ersetzt wird.
Außerdem gibt es für mac keine Gleichungen und f ist wie oben
mit Hilfe der Kompressionsfunktion h definiert. Dann gilt:
(νK1 ) . . . (νKn )P ≈ (νK1 ) . . . (νKn )P 0
(Ohne Beweis.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 454
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 455
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Verhaltensäquivalenzen sind jedoch dann nützlich, wenn
Bemerkung:
Mit Hilfe der Beobachtungskongruenz kann zwar Geheimhaltung
(siehe oben) und auch Authentifizierung spezifiziert werden, dafür
gibt es jedoch meist effizientere Methoden (z.B. Model-Checking
oder Resolution).
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 456
man zeigen will, dass eine Transformation des Protokolls
nichts am Verhalten des Protokolls ändert (siehe Berechnung
von MACs).
man genau überprüfen will, welches Verhalten der Angreifer
sehen bzw. nicht sehen kann.
(Beispielsweise möchte man für Wahlprotokolle, dass eine
Wahl, in der Alice X gewählt hat, für den Angreifer
ununterscheidbar ist von einer Wahl, in der Alice Y gewählt
hat. Das beschreibt sogenannte receipt-freeness, welche
bedeutet, dass der Angreifer Alice nicht zu einer bestimmten
Wahl zwingen kann.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 457
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Verhaltensäquivalenzen
Verhaltensäquivalenzen
Wir diskutieren noch kurz, wie man Verhaltensäquivalenzen
konkret nachweisen kann.
Anstatt auf einem unbeschrifteten Transitionssystem arbeitet man
auf einem beschrifteten Transitionssystem (LTS = labelled
transition systems). Dabei beschreiben die Beschriftungen die
Interaktionen des Prozesses mit seiner Umgebung.
Anschließend definiert man Bisimulation auf den beschrifteten
Transitionen: eine Transition muss durch eine andere Transition
mit derselben Beschriftung beantwortet werden. Die
Quantifizierung über alle Kontext wird weggelassen.
Beispiele:
Man kann nun zeigen, dass die so definierte Verhaltensäquivalenz
mit der Beobachtungskongruenz übereinstimmt.
a(m)
a(x).bhxi.0 −→ bhmi.0
(Umgebung schickt Nachricht m auf Kanal a.)
ahmi
ahmi.P −→ P
(Prozess schickt Nachricht m an Umgebung.)
(νm)ahmi
Durch Einsatz zusätzlicher Techniken (z.B. Up-To-Techniken) kann
man dann in vielen Fällen erreichen, dass die benötigten
Bisimulationen endlich sind. Damit ist die Technik automatisierbar.
(νm)(ahmi.P) −→ P
(Prozess schickt zuvor verschattete Nachricht m an
Umgebung.)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 458
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 459
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Weitere Verifikationstechniken
Schlussbemerkungen
BAN-Logik (Burrows-Abadi-Needham-Logik): Logik, in der
man Schlüsse über kryptographische Protokolle ziehen kann
und Aussagen folgender Form machen kann: “Teilnehmer A
glaubt X ”, “Teilnehmer B sagt Y ”, “Nonce N ist frisch”
AVISPA: Automated Validation of Internet Security Protocols
and Applications (EU-finanziertes Projekt)
CASPA: Causality-based Abstraction for Security Protocol
Analysis (M. Maffei, Universität des Saarlandes)
Scyther: A Tool for the Automatic Verification of Security
Protocols (C. Cremers, ETH Zürich)
Verifikatikonstechniken sollten helfen, Protokolle besser zu
verstehen und robustere Protokolle zu entwerfen (auch indem
man typische Fehler aufdeckt).
Siehe auch Abadi’s Design Principles in Security Protocols:
Principles and Calculi – Tutorial Notes. Dort werden typische
Fehler besprochen und erklärt, wie man sie vermeiden kann.
und viele weitere Methoden und Werkzeuge . . .
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 460
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Schlussbemerkungen
Kann man aus der Korrektheit eines Protokolls nach dem
Dolev-Yao-Eindringlingsmodell auch etwas über die
Angriffsmöglichkeiten von polynomzeitbeschränkten
probabilistischen Angreifern sagen?
dazu gibt es bisher relativ wenige Arbeiten (beispielsweise:
Abadi, Rogaway: Reconciling two views of cryptography (The
computational soundness of formal encryption). Journal of
Cryptology, 15(2):103–127, 2005.
Dieser Bereich ist aber ein interessantes Forschungsthema.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 462
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 461
Herunterladen