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
Ver- und Entschlüsselung
Wir beschreiben jetzt formal, was es bedeutet, eine Nachricht zu
verschlüsseln und zu entschlüsseln.
Vorlesung “Formale Aspekte der
Software-Sicherheit und Kryptographie”
Sommersemester 2015
Universität Duisburg-Essen
Komponenten eines Kryptosystems (Definition)
M: eine Menge von möglichen Nachrichten
CM: eine Menge von verschlüsselten Nachrichten
Ke : eine Menge von Schlüsseln, die zum Verschlüsseln
verwendet werden
Prof. Barbara König
Übungsleitung: Sebastian Küpper
Kd : eine Menge von Schlüsseln, die zum Entschlüsseln
verwendet werden
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”
1
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
Hinweis: E steht für “encryption” und D für “decryption”.
Sei (e, d) ∈ K ein Schlüsselpaar. Die Ver- und
Entschlüsselungsfunktionen müssen folgende Eigenschaft haben:
Für alle m ∈ M gilt D(E (m, e), d) = m.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 49
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 )
(e , e )
Alice
Bob
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
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 )
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.
Alice
Barbara König
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
Historische Verschlüsselungsverfahren
Historische Verschlüsselungsverfahren
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”
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.
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” 53
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
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.
Beispiel: e = CAESAR, wobei z(C) = 2, z(A) = 0, z(E) = 4,
z(S) = 19, z(R) = 18
DASISTDERGEHEIMTEXT
+ CAESARCAESARCAESARC
FAWBSLFEVZEZGIQMEPV
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.
Ein besonderer Fall ergibt sich jedoch, wenn der Schlüssel genau so
lang ist wie der zu verschlüsselnde Text.
Entschlüssselungsverfahren:
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.
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.
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
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” 58
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Historische Verschlüsselungsverfahren
Wahrscheinlichkeitrechnung
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” 59
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.)
x∈Ω
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
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
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)
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
Beispiel: Ereignis E = {1, 6} mit
P(E ) = P({1, 6}) = P(1) + P(6) =
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 61
Barbara König
1 1
1
+ =
6 6
3
“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
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.
Unabhängigkeit von Ereignissen (Definition)
Zwei Ereignisse A, B ⊆ Ω heißen unabhängig, falls gilt:
P(A ∩ B) = P(A) · P(B)
Rechnen mit Wahrscheinlichkeiten (Satz)
Beispiel Würfel:
Die Ereignisse A = {1, 3, 5} (Ergebnis ist ungerade) und
B = {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
Seien A, B ⊆ Ω Ereignisse:
P(Ω\A) = 1 − P(A)
P(A ∪ B) = P(A) + P(B) − P(A ∩ B)
P(∅) = 0
Barbara
König
Asp. der+
Software-Sicherheit
Insbesondere folgt daraus
P(A
∪ B)“Form.
= P(A)
P(B), fallsund Kryptographie”
A ∩ B = ∅, d.h., falls A und B disjunkte Ereignisse sind.
63
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 Asp.
2 der3Software-Sicherheit und Kryptographie”
Barbara König
“Form.
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Wahrscheinlichkeitsrechnung
Bedingte Wahrscheinlichkeit (Definition)
Die bedingte Wahrscheinlichkeit ist definiert durch
P(A | B) =
P(A ∩ B)
,
P(B)
falls P(B) 6= 0.
64
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)
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.
Zwei (nicht-leere) Ereignisse A, B sind unabhängig genau dann,
wenn:
P(A | B) = P(A) und P(B | A) = P(B)
Sprechweise: Wahrscheinlichkeit von A, vorausgesetzt 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” 65
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
Zufallsvariable (Definition)
Eine Zufallsvariable ist eine Abbildung X : Ω → S.
Sei y ∈ S. Man definiert:
Sei S eine endliche Menge. Eine Zufallsvariable X : Ω → S heißt
gleichverteilt, falls
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” 67
P(X (ω) = s) =
1
|S|
für alle s ∈ S
Bemerkungen:
Die Ereignismenge Ω muss hier nicht notwendigerweise
endlich sein.
Es gibt noch weitere (diskrete)
Wahrscheinlichkeitsverteilungen: geometrische Verteilung,
Binomialverteilung, Poisson-Verteilung
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
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
E (m, e) = m ⊕ e
D(c, d) = c ⊕ d
Die Menge der Elementarereignisse Ω sieht wie folgt aus:
Ω = M × Ke = {0, 1}n × {0, 1}n
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).
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” 69
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:
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
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” 72
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Wahrscheinlichkeitsrechnung
Symmetrische Verschlüsselung: DES und AES
Außerdem gilt:
P(E = c) =
X
m0 ∈M
=
X
m0 ∈M
P(msg = m0 ∧ E = c)
pm0 ·
1
1 X
1
1
=
·
pm0 = n · 1 = n
n
n
2
2
2
2
0
Wir betrachten nun moderne symmetrische
Verschlüsselungsverfahren.
(e , e )
(e , e )
Alice
Bob
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” 73
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
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” 75
Sowohl DES als auch AES sind Blockchiffre, die nach folgendem
Prinzip funktionieren:
Eine Nachricht wird in Blöcke der Länge n Bits
(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
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 .
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” 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
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
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.
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 (AddRoundKey)
Jedes Byte der Nachricht wird durch ein anderes Byte
substituiert (diese Substitionen werden in sogenannten
S-Boxen tabelliert). (SubBytes)
Die Bytes der Nachricht werden tabellarisch angeordnet und
(spalten- oder zeilenweise) permutiert. (ShiftRows)
Die Bytes der Nachricht werden untereinander auf bestimmte
Weise mit xor verknüpft. (MixColumns)
Die in Klammern angegebenen englischen Bezeichnungen stammen
aus AES.
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:
Ä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
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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 79
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
Beispiel:
S-Box bei AES (Teil 2)
Zu substituierendes Byte: 00110011, entspricht x 5 + x 4 + x + 1
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
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 81
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
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” 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
Bemerkungen:
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
0
1
0 1 1
1
      
     
1
 1 0 0
     
1
 · 1 + 0 = 0
     
0
 0 0 0
    

0 
1 1 0
0 1 1 1
1
1
1
0
0
0
1
1 1
0
0
1
Ergebnis: 11000011 (Vektoren werden von unten nach oben
gelesen!), entspricht x 7 + x 6 + x + 1
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 83
Die Subsitution mittels einer S-Box entspricht einer
monoalphabetischen Verschlüsselung.
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
“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
AES S-Box
| 0 1 2 3 4 5 6 7 8 9 a b c d e f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 85
Kriterien bei symmetrischen Verschlüsselungsverfahren (informell):
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” 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
Warum funktioniert 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
9
9
= (2744 mod 55) mod 55 = 49 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
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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 95
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.
Dies ist beispielsweise möglich, wenn ein Schlüssel auch zum
Signieren verwendet wird.
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
selbst 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
Komplexitätsklasse NP (Definition)
[
NP =
NTIME(p(n))
p Polynom
Offensichtlich gilt P ⊆ NP.
Aber gilt auch P 6= NP?
“Form. Asp. der Software-Sicherheit und Kryptographie” 107
P 6= NP-Problem (ungelöst)
“Form. Asp. der Software-Sicherheit und Kryptographie” 108
Barbara König
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.
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.
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
x
f
f (x )
MB
Ja
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
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.
Barbara König
Komplexitätsklasse co-NP (Definition)
“Form. Asp. der Software-Sicherheit und Kryptographie” 113
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” 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.
D0 :
Jede Funktion
CM × Ke → M mit
alle c ∈ CM, e ∈ Ke liegt nicht in FP.
E (D 0 (c, e), e)
= c für
Bemerkung: Falls die Verschlüsselung eindeutig rückgängig
gemacht werden kann, könnte man hier auch D 0 (E (m, e), e) = m
für alle m ∈ M fordern.
Entschlüsselungsproblem liegt in NP (Satz)
Wir betrachten ein asymmetrisches 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., die Berechnung von LE und D 0 ist “gleich schwierig”. 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
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?
“Form. Asp. der Software-Sicherheit und Kryptographie” 119
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
“Form. Asp. der Software-Sicherheit und Kryptographie” 121
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.
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 endliche 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
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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 123
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
“Form. Asp. der Software-Sicherheit und Kryptographie” 125
Barbara König
“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].
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 .
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
Um π wirklich genau berechnen zu können, benötigt man
einen guten Zufallszahlengenerator!
Eine andere (klassischere) Möglichkeit, π zu berechnen, ist es
den Grenzwert einer Reihe zu bestimmen.
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.)
“Form. Asp. der Software-Sicherheit und Kryptographie” 127
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,
Automat mit
endlich vielen
Zuständen
Signal für
Endzustand
z0 ∈ Z der Startzustand,
∈ Γ\Σ 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 M 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.
Frage: Kann man auch eine höhere Wahrscheinlichkeit als
erhalten, wenn das Wort in der Sprache liegt?
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
P(M 0
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 136
1
2
k
1
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 Ungleichheit 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:
k−t
N ,
P(PTN) ≤
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
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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 146
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
“Form. Asp. der Software-Sicherheit und Kryptographie” 148
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” 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:
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.
Komplexitätsklasse BPP (bounded-error probabilistic polynomial
time)
Eine Sprache L ⊆ Σ∗ gehört zu der Klasse BPP genau dann, wenn
es eine probabilistische Turingmaschine M mit polynomialer
Laufzeit gibt, so dass für jede Eingabe x ∈ Σ∗ gilt:
1
2
Wie bei RP kann die Wahrscheinlichkeit für eine falsche
Antwort vermindert werden, indem man die Maschine
mehrfach laufen lässt.
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
Jedes andere Paar von Zahlen p, q ∈ [0, 1] mit p >
q < 12 kann statt 34 und 14 verwendet werden.
( Übungsaufgabe)
“Form. Asp. der Software-Sicherheit und Kryptographie” 150
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 M gibt, so dass der
Erwartungswert der Laufzeit polynomial beschränkt ist und für jede
Eingabe x ∈ Σ∗ gilt:
1
2
falls x ∈ L, dann gilt P(M akzeptiert x) = P(aM (x) = 1) = 1.
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 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
Für Probleme in ZPP gilt also:
Es gibt Algorithmen für diese Probleme, 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.
“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
2
2i
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 + 1)-te Durchlauf
i
benötigt 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)
P ⊆ ZPP = RP ∩ co-RP ⊆ RP ⊆ BPP
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
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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 162
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.
COMPOSITE
Eingabe: eine natürliche Zahl n > 1
Ausgabe: ist n zusammengesetzt, d.h., gibt es natürliche
Zahlen k, ` > 1 mit n = k · `?
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 Komplement von COMPOSITE ist das Problem PRIMES, das
auch in RP (und sogar in P) liegt. Allerdings werden wir das hier
nicht zeigen.
Das bedeutet auch, dass man sich auf den Test verlassen kann,
wenn er behauptet, dass eine Zahl zusammengesetzt ist.
PRIMES
Eingabe: eine natürliche Zahl n > 1
Ausgabe: ist n eine Primzahl?
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 164
Barbara König
“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.
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 .
Bemerkung: Für alle n gilt: ein Nicht-Fermat-Zeuge a für n ist
immer teilerfremd zu n.
Beweis:
Die kleinste solche Carmichael-Zahl ist 561 = 3 · 11 · 17.
Es ist außerdem bekannt, dass jede Carmichael-Zahl ungerade ist.
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
“Form. Asp. der Software-Sicherheit und Kryptographie” 168
Barbara König
“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
Für Carmichael-Zahlen benötigen wir nun noch ein zusätzliches
Kriterium.
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.
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 mod n | 0 ≤ i < k} ein Miller-Zeuge für n
befindet, größer gleich 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
“Form. Asp. der Software-Sicherheit und Kryptographie” 172
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” 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
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 ·35 mod 561 = 5292 mod 561 = 463
3
52 ·35 mod 561 = 4632 mod 561 = 67
4
52 ·35 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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 174
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
“Form. Asp. der Software-Sicherheit und Kryptographie” 176
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.
Inzwischen 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” 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)|)
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 180
Außerdem benötigen wir – um ausdrücken zu können, dass die
Wahrscheinlichkeit ein Kryptosystem zu entschlüsseln
vernachlässigbar gering ist – den Begriff einer vernachlässigbaren
Funktion.
Vernachlässigbare Funktion
Eine Funktion r : N0 → R+
0 heißt vernachlässigbar, wenn es für
jedes Polynom p (mit p : N0 → N0 ) eine Zahl C ∈ N0 gibt mit
r (n) <
1
p(n)
für n > C .
Anschaulich: wenn der Funktionswert n groß genug ist, dann fällt r
schneller als jedes Polynom.
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
Wir betrachten den dritten Punkt der Definition noch etwas
genauer:
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 ist die Wahrscheinlichkeit vernachlässigbar,
dass M ein korrektes Urbild für f (x) berechnet, falls x zufällig
aus der Menge {0, 1}n gewählt wird.
Barbara König
Notation:
M(y ) sei 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.
“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
Einwegfunktionen
Welche Wahrscheinlichkeit genau ist vernachlässigbar?
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.
n:
Wir betrachten nun folgende Zufallsvariable XM

 1 falls M bei Eingabe f (x) und mit Zufallsbits b̃
n
XM
(x, b̃) =
ein Urbild von f (x) bestimmt

0 sonst
Warum fordert man nicht sogar, dass P(f (M(f (x))) = f (x)) für
jedes x ∈ {0, 1}n vernachlässigbar ist? Die Elementarereignisse
würden in diesem Fall nur aus 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.
n = 1) =
Beschränkt wird also die Wahrscheinlichkeit r (n) = P(XM
P(f (M(f (x))) = f (x)), wobei n die Länge von x ist.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 184
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
Faktorisierung
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” 186
Als Entscheidungsproblem kann man das Faktorisierungsproblem
folgendermaßen darstellen:
Faktorisierung
Eingabe: Zwei Zahlen n, r ∈ N0 , wobei n das Produkt von
zwei k-Bit Primzahlen ist.
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” 187
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen
Faktorisierung
Diskreter Logarithmus
Um den diskreten Logarithmus definieren zu können, benötigen wir
zunächst einige Begriffe:
Auch wenn nicht klar ist, ob pmult wirklich eine Einwegfunktion
ist, so ist dies durch den RSA Factoring Challenge zumindest
“empirisch” überprüft worden:
Primitivwurzel modulo m
Eine Zahl g ∈ {0, . . . , m − 1} heißt Primitivwurzel modulo m, falls
g ein Generator der multiplikativen Gruppe
http://en.wikipedia.org/wiki/RSA Factoring Challenge
Z∗m = {a ∈ {1, . . . , m − 1} | ggT (a, m) = 1}
Es gibt darin immer noch zahlreiche Produkte von Primzahlen, die
bisher noch nicht faktorisiert wurden.
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” 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
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 ungleich 1 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
Gegeben 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” 190
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
Mit Hilfe von Einwegfunktionen könnte man symmetrische
Verschlüsselung realisieren. Dazu müssten Einwegfunktionen
jedoch existieren.
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” 192
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” 193
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 gegebenem 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.
“Form. Asp. der Software-Sicherheit und Kryptographie” 194
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
Einwegfunktionen
Falltürfunktionen
Für asymmetrische Verschlüsselung müssen wir noch mehr fordern:
spezielle Einwegfunktionen, sogenannte 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” 196
Falltürfunktion (informell)
Die Verschlüsselungsfunktion E eines asymmetrischen
Kryptosystems heißt Falltürfunktion, wenn
E in Polynomzeit berechenbar 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 eine probabilistische
polynomzeitbeschränkte Turingmaschine), 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” 197
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.
Außerdem ist unklar, ob daraus, dass die Primzahlmultiplikation
eine Einwegfunktion ist, folgt, dass die RSA-Funktion eine
Falltürfunktion ist.
Barbara König
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.
D.h., man kann zeigen, dass das Finden des privaten Schlüssels
gleichbedeutend mit der Faktorisierung von n ist. Das bedeutet
nicht, dass das Brechen des Kryptosystems gleichbedeutend mit
der Faktorisierung ist.
“Form. Asp. der Software-Sicherheit und Kryptographie” 198
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
Falltürfunktionen
Falltürfunktionen
Beweis (Skizze): wir betrachten n, e, d, wobei n = p · q das
Produkt zweier Primzahlen ist. Außerdem sind e, d modulo
ϕ(n) = (p − 1) · (q − 1) zueinander invers.
Das Produkt e · d ist ungerade, denn es gilt e · d ≡ 1 (mod ϕ(n))
und ϕ(n) ist eine gerade Zahl. Sei nun e · d − 1 = 2k · m mit m
ungerade.
Man wählt zufällig ein a ∈ {1, . . . , n − 1}. Falls ggT (a, n) 6= 1,
dann haben wir mit ggT (a, n) einen Teiler von n gefunden.
Barbara König
“Form. Asp. der Software-Sicherheit und Kryptographie” 200
Falls ggT (a, n) = 1, dann gilt aed−1 ≡ az·ϕ(n) ≡ 1 (mod n).
Das Verfahren zur Faktorisierung von n beruht nun auf der
Tatsache, dass für ein zufällig gewähltes solches a 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” 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
Algorithmica
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.
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” 202
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
Die fünf Welten von Impagliazzo
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” 204
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” 205
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
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” 206
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” 207
Herunterladen