Formale Aspekte der Software-Sicherheit und Kryptographie

rhein.inf.uni.due.de

Formale Aspekte der Software-Sicherheit und Kryptographie

Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVorlesung “Formale Aspekte derSoftware-Sicherheit und Kryptographie”Sommersemester 2013Universität Duisburg-EssenProf. Barbara KönigÜbungsleitung: Sebastian KüpperBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 1


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVer- und EntschlüsselungHinweis: E steht für “encryption” und D für “decryption”.Sei (e, d) ∈ K ein Schlüsselpaar. Die Ver- undEntschlü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” 50


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVer- und EntschlüsselungSymmetrisches KryptosystemBei einem symmetrischen Kryptosystem gilt K e = K d und für ein(e, d) ∈ K gilt immer e = d. D.h., es wird derselbe Schlüssel zumVer- und Entschlüsseln benutzt.Sowohl Alice, als auch Bob müssen zur Kommunikation diesenSchlüssel kennen.(e, e) (e, e)AliceBobBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 51


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVer- und EntschlüsselungSicherheitsaspekte: die bisherigen Definitionen sagen nichts überdie Sicherheit der Kryptosysteme.Im Fall der symmetrischen Verschlüsselung sollte es einfach sein, maus E(m, e) zu bestimmen, wenn man d = e kennt. Ohne Kenntnisdes Schlüssels sollte die Bestimmung von m schwierig sein.Ebenso sollte es im Fall des asymmetrischen Verschlüsselungeinfach sein, m aus E(m, e) zu bestimmen, wenn man d kennt. DieBestimmung von m sollte jedoch schwierig sein, wenn man nur ekennt.Wir werden im weiteren Verlauf der Vorlesung klären, was genaumit “schwierig” gemeint ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 53


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenWir betrachten zunächst einige einfache symmetrischeVerschlüsselungsverfahren.Caesar-VerschlüsselungBei der Caesar-Verschlüsselung (nach Julius Caesar) wird jederBuchstabe durch den Buchstaben ersetzt, der drei Stellen weiterim Alphabet vorkommt. (Statt drei kann auch ein andererZahlenwert verwendet.)Beispiel: aus “CAESAR” wird “FDHVDU”Spezialfall der monoalphabetische Verschlüsselung, der durchHäufigkeitsanalyse sehr leicht entschlüsselt werden kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 54


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenMonoalphabetische VerschlüsselungGegeben ist eine Permutation π : A → A des Alphabetes und jederBuchstabe a der Nachricht wird durch sein Bild π(a) ersetzt.(Siehe Beispiel im Einführungsteil.)Auch die monoalphabetische Verschlüsselung kann durchHäufigkeitsanalysen einfach entschlüsselt werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 55


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenBeispiel: e = CAESAR, wobei z(C) = 2, z(A) = 0, z(E) = 4,z(S) = 19, z(R) = 18DASISTDERGEHEIMTEXT+ CAESARCAESARCAESARCFAWBSLFEVZEZGIQMEPVBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 57


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenBei der Vigenère-Verschlüsselung nützt eine Häufigkeitsanalyseüber den gesamten Text wenig.Entschlüssselungsverfahren:Zunächst muss die Länge des Schlüssels e ermittelt werden.Das kann man machen, indem man verschiedene Längen kausprobiert und die Häufigkeitsverteilung der Buchstabenermittelt, deren Stelle kongruent zu einem festen i modulo kist.Manchmal kann die Länge auch durch das periodischeAuftreten bestimmter Zeichenfolgen im Text bestimmtwerden.Sobald die Länge k gefunden wurde, kann dann der Schlüssel,Stelle für Stelle, mit Hilfe der Häufigkeitsanalyse ermitteltwerden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 58


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenEin besonderer Fall ergibt sich jedoch, wenn der Schlüssel genau solang ist wie der zu verschlüsselnde Text.One-Time-PadBeim One-Time-Pad wird ein Text mit einem zufällig gewähltemSchlü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üpftwerden.Voraussetzungen:der Einmalschlüssel muss geheim bleiben,der Einmalschlüssel muss zufällig gewählt sein undder Einmalschlüssel darf nur einmal verwendet werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 59


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHistorische VerschlüsselungsverfahrenDer One-Time-Pad wurde so von Geheimdiensten im20. Jahrhundert verwendet. Dabei wurde zunächst der Schlüsselausgetauscht, beispielsweise kann er auf Papier oder in digitalerForm einem Agenten mitgegeben werden.Claude Shannon hat gezeigt, dass der One-Time-Padinformationstheoretisch sicher ist und damit ein perfektesVerschlüsselungsverfahren darstellt. Insbesondere hat er gezeigt,dassDie Kenntnis des verschlüsselten Textes keinezusätzlichen Informationen über den Inhalt der Nachrichtliefert.bzw.Jeder Nachrichteninhalt hat die gleicheWahrscheinlichkeit, unabhängig davon, ob man denverschlüsselten Text kennt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 60


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitrechnungUm dieses (nicht sehr schwierige) Ergebnis formalisieren undbeweisen zu können, benötigt man (diskrete)Wahrscheinlichkeitstheorie.Wahrscheinlichkeitsraum (Definition)Ein Wahrscheinlichkeitsraum besteht auseiner Ergebnismenge Ω, bestehend aus denElementarereignissen, undeiner Funktion P : Ω → R, die jedem Elementarereignis eineWahrscheinlichkeit zuordnet.Dabei muss gelten:Für jedes x ∈ Ω gilt 0 ≤ P(x) ≤ 1. (Die Wahrscheinlichkeitfür ein Elementarereignis liegt zwischen 0 und 1.)∑P(x) = 1. (Die Summe aller Wahrscheinlichkeiten ist 1.)x∈ΩBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 61


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungFalls Ω endlich ist und alle Elementarereignisse in Ω gleichwahrscheinlich sind, so giltP(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) = 1 6für alle x ∈ Ω.Diese Annahme, dass alle Elementarereignisse gleich wahrscheinlichsind, gilt jedoch nicht immer. (Beispiel: manipulierter Würfel)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 62


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungBemerkung: Für unsere Zwecke können wir alle Teilmengen von Ωals Ereignisse ansehen. Im allgemeinen Fall (insb. für nicht-diskreteWahrscheinlichkeitsräume) beschränkt man sich auf die Ereignisse,die Elemente einer Ereignisalgebra (oder σ-Algebra) sind.Rechnen mit Wahrscheinlichkeiten (Satz)Seien A, B ⊆ Ω Ereignisse:P(Ω\A) = 1 − P(A)P(A ∪ B) = P(A) + P(B) − P(A ∩ B)P(∅) = 0Insbesondere folgt daraus P(A ∪ B) = P(A) + P(B), fallsA ∩ B = ∅, d.h., falls A und B disjunkte Ereignisse sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 64


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungUnabhängigkeit von Ereignissen (Definition)Zwei Ereignisse A, B ⊆ Ω heißen unabhängig, falls gilt:Beispiel Würfel:P(A ∩ B) = P(A) · P(B)Die Ereignisse {1, 3, 5} (Ergebnis ist ungerade) und {2, 4, 6}(Ergebnis ist gerade) sind nicht unabhängig. Es gilt:P(A ∩ B) = P(∅) = 0 ≠ 1 4 = 1 2 · 1 = P(A) · P(B)2Die Ereignisse {1, 3, 5} (Ergebnis ist ungerade) und {1, 2, 3, 4}(Ergebnis ist kleiner gleich vier) sind unabhängig. Es gilt:P(A ∩ B) = P({1, 3}) = 1 3 = 1 2 · 2 = P(A) · P(B)3Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 65


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungBedingte Wahrscheinlichkeit (Definition)Die bedingte Wahrscheinlichkeit ist definiert durchP(A | B) =P(A ∩ B),P(B)falls P(B) ≠ 0.Die Wahrscheinlichkeit P(A | B) ist intuitiv die Wahrscheinlichkeit,dass das Ereignis A eintritt, unter der Bedingung, dass man bereitsweiß, dass das Ereignis B eintritt.Sprechweise: Wahrscheinlichkeit von A, vorausgesetzt B.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 66


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungBeispiel Würfel: A = {1, 3, 5} (Ergebnis ist ungerade) undB = {1, 2, 3} (Ergebnis ist kleiner gleich drei).Dann gilt:P(A | B) =P(A ∩ B)P(B)=P({1, 3})P({1, 2, 3}) = 2 3Unabhängigkeit und bedingte Wahrscheinlichkeit (Satz)Zwei (nicht-leere) Ereignisse A, B sind unabhängig genau dann,wenn:P(A | B) = P(A) und P(B | A) = P(B)D.h., die Kenntnis, dass das Ereignis B eintreten wird, ändert dieWahrscheinlichkeit von A nicht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 67


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungZufallsvariable (Definition)Eine Zufallsvariable ist eine Abbildung X : Ω → S.Sei y ∈ S. Man definiert:P(X (ω) = y) = P({ω ∈ Ω | X (ω) = y})Analog werden P(X (ω) ≤ y), P(X (ω) ≥ y), P(X (ω) ∈ R) (fürR ⊆ S), etc. definiert. (Im ersten und zweiten Fall muss einepartielle Ordnung ≤ auf S definiert sein.)Bemerkungen:Trotz des Namens hat eine Zufallsvariable mit einer Variablenrelativ wenig zu tun. Es handelt sich einfach um eine Funktion.Manchmal schreibt man statt P(X (ω) = y) einfach nurP(X = y).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 68


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungSei S eine endliche Menge. Eine Zufallsvariable X : Ω → S heißtgleichverteilt, fallsP(X (ω) = s) = 1|S|für alle s ∈ SBemerkungen:Die Ereignismenge Ω muss hier nicht notwendigerweiseendlich sein.Es gibt noch weitere (diskrete)Wahrscheinlichkeitsverteilungen: geometrische Verteilung,Binomialverteilung, Poisson-VerteilungBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 69


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungWir wenden nun die Wahrscheinlichkeitstheorie auf denOne-Time-Pad an. Wir nehmen an, dass M = {0, 1} n (= Mengeder Nachrichten) eine Menge von Bitstrings der Länge n ist.Genauso ist K e = K d = {0, 1} n undE(m, e) = m ⊕ eD(c, d) = c ⊕ dDie Menge der Elementarereignisse Ω sieht wie folgt aus:Ω = M × K e = {0, 1} n × {0, 1} nD.h. Elementarereignisse sind Paare von Nachrichten undSchlüsseln. Die Nachrichten sind nicht alle gleich wahrscheinlich,für die Schlüssel gilt dies jedoch.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 70


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungWir betrachten folgende Zufallsvariable:msg : Ω → M, msg(m, e) = m(Projektion auf die erste Komponente)E : Ω → CM(die bereits vorher definierte Verschlüsselungsfunktion)Wir setzen p m = P(msg = m) (die Wahrscheinlichkeit dafür, dassNachricht m verschickt wird).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 71


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungNach Shannon muss ein perfektes Kryptosystem folgendeEigenschaft erfüllen:Perfektes KryptosystemDie Wahrscheinlichkeit, dass eine Nachricht m geschickt wird, istgleich 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” 72


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungBeweis: Wir zeigen nun, dass der One-Time-Pad dieEigenschaft (*) erfüllt.Es gilt, dassP(msg = m | E = c) =P(msg = m ∧ E = c)P(E = c)Es gilt:P(msg = m ∧ E = c) = P({(m, e ′ ) | e ′ ∈ K e , E(m, e ′ ) = c}). Eskann nur einen Schlüssel e ′ = c ⊕ m geben, der m zu cverschlüsselt. Also handelt es sich bei der Menge um einElementarereignis und es gilt:P({(m, c ⊕ m)}) = p m ·Die letzte Beziehung gilt, da m und der Schlüssel unabhängigvoneinander gewählt werden.12 nBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 73


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWahrscheinlichkeitsrechnungAußerdem gilt:P(E = c) = ∑Zusammengefasst:m ′ ∈M= ∑m ′ ∈MP(msg = m ′ ∧ E = c)p m ′ ·12 n = 1 2 n ·∑m ′ ∈Mp m ′ = 1 2 n · 1 = 1 2 nP(msg = m | c wurde empfangen) = p m · 12 n12 n = p m = P(msg = m)und damit ist der One-Time-Pad ein perfektes Kryptosystem.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 74


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESWir betrachten nun moderne symmetrischeVerschlüsselungsverfahren.(e, e) (e, e)AliceBobBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 75


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESDie zwei wichtigsten symmetrischen Verschlüsselungsverfahrensind:DES (Data Encryption Standard): war ab 1976 lange Zeit derde-facto-Standard für symmetrische Verschlüsselungsverfahrenund wird immer noch in großem Maßstab eingesetzt.Allerdings ist die Schlüssellänge (56 Bit) heute zu kurz undnur noch die Variante Triple DES gilt als sicher.AES (Advanced Encryption Standard): 2002 wurde bei einemWettbewerb des US-amerikanischen NIST (National Instituteof Standards and Technology) das Kryptosystem Rijndael alsNachfolger für DES ausgewählt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 76


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESSowohl DES als auch AES sind Blockchiffre, die nach folgendemPrinzip funktionieren:Eine Nachricht wird in Blöcke der Länge n (typischerweisen = 128, 192, 256) aufgespalten und jeder Block wird einzelnverschlüsselt. Wir können also im folgenden davon ausgehen,dass M = {0, 1} nEs gibt einen symmetrischen Schlüssel der Länge m(typischerweise m = 128, 256). D.h., K e = K d = {0, 1} m .Ein Block der Länge n wird durch die Verschlüsselung wiederzu einem Block der Länge n, d.h., CM = {0, 1} n .Aus der gleichen Länge von Nachricht und verschlüsseltem Textkann man schließen, dass die Verschlüsselungsfunktion für einenfesten Schlüssel bijektiv sein muss.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 77


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESDie Verschlüsselungsfunktion E : {0, 1} n × {0, 1} m → {0, 1} n wirdwie folgt realisiert: eine Nachricht m ∈ {0, 1} n wird mit einemSchlüssel e ∈ {0, 1} m in k Runden verschlüsselt. Zu Beginn giltm 0 = m, man bestimmt m i+1 durchm i+1 = E i (m i , e i ),wobei e i der Schlüssel der i-ten Runde ist. Der Rundenschlüssel e iwird mit Hilfe eines festgelegten Verfahrens aus e berechnet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 78


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESDie Verschlüsselungsfunktion E i wird durch Aneinanderreihungverschiedener Transformationen berechnet, wobei eineTransformation folgendes sein kann:xor-Verknüpfung des zu verschlüsselnden Textes mit demRundenschlüsselJedes Byte der Nachricht wird durch ein anderes Bytesubstituiert (diese Substitionen werden in sogenanntenS-Boxen tabelliert).Die Bytes der Nachricht werden tabellarisch angeordnet und(spalten- oder zeilenweise) permutiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 79


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESBemerkungen:Ähnliche Operationen wie sie zur Verschlüsselung einerNachricht verwendet werden, können auch dazu benutztwerden, die Rundenschlüssel aus dem Schlüssel (bzw. ausTeilen der bisher verschlüsselten Nachricht) zu gewinnen.Bei AES stellt man sich ein Byte auch als Polynom über demzweielementigen Körper, bestehend aus den Elementen {0, 1},vor. D.h.b 7 b 6 . . . b 0 ∈ {0, 1} 8 entsprichtb 7 x 7 + b 6 x 6 + · · · + b 0Dann kann xor durch Addition solcher Polynom und S-Boxendurch Bildung des multiplikativen Inversen (bezüglichMultiplikation modulo eines irreduziblen Polynoms m(x)),gefolgt von einer affinen Transformation, beschrieben werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 80


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESAES benutzt genau eine S-Box, die folgendermaßen funktioniert:S-Box bei AES (Teil 1)Fasse das zu substituierende Byte als Polynom p(x) vomGrad 7 über dem Körper {0, 1} auf.Bestimme das Inverse q(x) von p(x) modulom(x) = x 8 + x 4 + x 3 + x + 1.D.h., es muss p(x) · q(x) mod m(x) = 1 gelten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 81


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESS-Box bei AES (Teil 2)Angenommen q(x) = c 7 x 7 + c 6 x 6 + · · · + c 0 . Dann bestimmedas Ergebnis-Byte d 7 d 6 . . . d 0 durch folgende affineTransformation:⎛ ⎛⎞ ⎛ ⎛ ⎞d 0 1 0 0 0 1 1 1 1 c 0 1d 11 1 0 0 0 1 1 1c 11d 21 1 1 0 0 0 1 1c 20d 3d 4=1 1 1 1 0 0 0 11 1 1 1 1 0 0 0·c 3c 4+00⎜ ⎟ ⎜⎟ ⎜ ⎟ ⎜ ⎟⎞⎜d 5 ⎟⎝d 6⎠d 7⎜0 1 1 1 1 1 0 0⎟⎝0 0 1 1 1 1 1 0⎠0 0 0 1 1 1 1 1⎞⎜c 5 ⎟⎝c 6⎠c 7⎜1⎟⎝1⎠0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 82


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESBeispiel:Zu substituierendes Byte: 00110011, entspricht x 5 + x 4 + x + 1Inverses: 01101100, entspricht x 6 + x 5 + x 3 + x 2Test: (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 2x 11 +x 9 +x 8 +x 7 +x 6 +x 5 +x 4 +x 2 ÷ x 8 + x 4 + x 3 + x + 1x 11 +x 7 +x 6 +x 4 +x 3 = x 3 + x + 1x 9 +x 8 +x 5 +x 3 +x 2 +x Rest: 1x 9 +x 5 +x 4 +x 2 +xx 8 +x 4 +x 3 +xx 8 +x 4 +x 3 +x+11Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 83


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESAffine Transformation:⎛⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞1 0 0 0 1 1 1 1 0 1 11 1 0 0 0 1 1 10111 1 1 0 0 0 1 11001 1 1 1 0 0 0 11 1 1 1 1 0 0 0·10+00=00⎜0 1 1 1 1 1 0 0⎟ ⎜1⎟ ⎜1⎟ ⎜0⎟⎝0 0 1 1 1 1 1 0⎠⎝1⎠⎝1⎠⎝1⎠0 0 0 1 1 1 1 1 0 0 1Ergebnis: 11000011 (Vektoren werden von unten nach obengelesen!)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 84


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESBemerkungen:Das Inverse zu einem Polynom kann mit Hilfe des euklidischenAlgorithmus berechnet werden. (Dazu später mehr bei RSA.)Zur Entschlüsselung gibt es eine inverse S-Box, die dazu daist, die Substitution wieder rückgängig zu machen.Die gesamte S-Box ist tabelliert. Siehehttp://en.wikipedia.org/wiki/Rijndael S-box.D.h., in der Praxis muss das Inverse nicht berechnet werden.Durch die algebraische Darstellung kann aber dasKryptosystem besser analysiert werden, um zu zeigen, dass esgegen bestimmte Arten von Angriffen geschützt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 85


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESAES 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 7610 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c020 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 1530 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 7540 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 8450 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a870 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d280 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 7390 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b dba0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8ad0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9ee0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 dff0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 86


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSymmetrische Verschlüsselung: DES und AESKriterien bei symmetrischen Verschlüsselungsverfahren (informell):KonfusionDer Zusammenhang zwischen Schlüssel und verschlüsseltem Textsollte so komplex wie möglich sein.DiffusionJedes Bit der verschlüsselten Nachricht sollte von jedem Bit derursprünglichen Nachricht auf möglichst komplexe Weise abhängigsein. 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” 87


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische VerschlüsselungWir betrachten nun asymmetrische Verschlüsselungsverfahren:e(e, d)AliceBobBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 88


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische VerschlüsselungGeschichte:1976: Diffie-Hellman-SchlüsselaustauschprotokollBeschreibt wie Alice und Bob einen geheimen Schlüssel überein offenes Netzwerk austauschen können.1977: RSA (benannt nach Rivest, Shamir, Adleman)Asymmetrisches Verschlüsselungsverfahren (mit Verwendungöffentlicher Schlüssel)Erst viel später wurde bekannt, dass ganz ähnliche Verfahrenbereits 1973 von Williamson, Cock und Ellis beim GHCQ(Government Communications Headquarters, Teil desbritischen Geheimdiensts) entwickelt wurden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 89


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSAFür RSA benötigen wir Voraussetzungen aus der Zahlentheorie: dieEulersche ϕ-Funktion, der Satz von Euler-Fermat und dereuklidische Algorithmus.Eulersche ϕ-FunktionDie Eulersche ϕ-Funktion ϕ: N 0 → N 0 ist folgendermaßendefiniert:ϕ(n) mit n ∈ N 0 ist die Anzahl der Zahlen zwischen 1 und n,die zu n teilerfremd sind.ϕ(n) = |{m ∈ N 0 | 1 ≤ m ≤ n und ggT (m, n) = 1}|Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 90


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSABeispiele (Eulersche ϕ-Funktion):n ϕ(n) n ϕ(n)0 0 7 61 1 8 42 1 9 63 2 10 44 2 11 105 4 12 46 2 13 12Für eine Primzahl p gilt ϕ(p k ) = p k − p k−1 , insbesondereϕ(p) = p − 1.Für zwei Zahlen m, n ∈ N 0 mit ggT (m, n) = 1 giltϕ(m · n) = ϕ(m) · ϕ(n).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 91


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSASatz von Euler-FermatFür zwei Zahlen m, n ∈ Z mit ggT (m, n) = 1 gilt:m ϕ(n) mod n = 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 92


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSALösen diophantischer GleichungenGegeben seien a, b, c ∈ Z. Wir suchen Lösungen x, y ∈ Z derGleichunga · x + b · y = cDiese Gleichung hat genau dann eine Lösung, wenn ggT (a, b) | c.Lösungen für solche Gleichungen können mit Hilfe des erweiterteneuklidischen Algorithmus bestimmt werden. Dieser bestimmt nichtnur ggT (a, b), sondern auch Werte für x und y.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 93


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSA1. Schritt: SchlüsselerzeugungBob generiert zwei große Primzahlen p, q mit p ≠ q und setztn = 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” 94


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSA2. Schritt: VerschlüsselungAlice will eine Nachricht M an Bob verschlüsseln. Sie kodiertdiese Nachricht als eine Zahl m ∈ {0, . . . , n − 1} (z.B. durchBinärkodierung).Alice rechnet c = m e mod n und schickt c an Bob.3. Schritt: EntschlüsselungBob empfängt c.Er rechnet m = c d mod n und erhält damit wieder dieursprüngliche Nachricht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 95


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSARechenbeispiel RSAp = 5, q = 11, n = 5 · 11 = 55ϕ(n) = (p − 1) · (q − 1) = 4 · 10 = 40Wähle e = 3 und berechne das Inverse d = 27:Löse 3 · x + 40 · y = 1, dies ergibt Lösungen x = −13, y = 1Das ergibt d = x mod 40 = (−13) mod 40 = 27Nachricht m = 9 soll übertragen werden. Alice berechnet dieKodierung c = 9 3 mod 55 = 729 mod 55 = 14.Code c = 14 kommt an. Bob rechnet14 27 mod 55 = (14 3 mod 55) 9 mod 55= (2744 mod 55) 9 mod 55 = 49 9 mod 55= (49 3 mod 55) 3 mod 55 = (117649 mod 55) 3 mod 55= 4 3 mod 55 = 64 mod 55 = 9 = mBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 96


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSAWarum funktioniert RSA?Korrektheit: Warum erhält Bob wieder die ursprüngliche Nachricht?Das kann mit dem Satz von Euler-Fermat nachgewiesen werden.Es gilt (e · d mod ϕ(n)) = 1 und damit gibt es eine Zahl z ∈ Z mite · d = z · ϕ(n) + 1. Also ergibt sich beim Verschlüsseln undanschließenden Entschlüsseln:(m e mod n) d mod n = m e·d mod n = m z·ϕ(n)+1 mod n= (m · (m ϕ(n) ) z ) mod n = m · 1 z mod n = m mod n = mDiese Argumentation funktioniert nicht, falls m, n nicht teilerfremdsind. In diesem Fall kann man aber mit Hilfe des ChinesischenRestsatzes nachweisen, dass man trotzdem das richtige Ergebniserhält.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 97


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSAWarum funktioniert RSA? (Fortsetzung)Sicherheit: Warum ist es für andere schwierig, die Nachricht zuentschlüsseln?Das liegt (im wesentlichen) daran, dass man d nur dann leicht ause 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” 98


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAsymmetrische Verschlüsselung: RSAWeitere Bemerkungen:Auch bei einer sinnvollen Implementierung der Potenzierungbei der Ver- und Entschlüsselung ist RSA kein sehr effizientesVerfahren.Daher wird im allgemeinen RSA nur zum Schlüsselaustauschverwendet. Sobald ein geheimer Sitzungsschlüssel vereinbartist, kann ein symmetrisches Verschlüsselungsverfahren (z.B.AES) verwendet werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 99


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSicherheit von KryptosystemenBisher ist noch nicht klar, warum die bisher vorgestelltenKryptosysteme sicher sind. Wir wissen noch nicht einmal, was“sicher” überhaupt bedeutet.Wir betrachten zunächst einmal, welche Arten von Angriffen aufein Kryptosystem möglich sind:Ciphertext-only attackNur die verschlüsselte Nachricht oder mehrere verschlüsselteNachrichten sind bekannt. (Je mehr Nachrichten bekannt sind,desto besser.)Known-plaintext attackNicht nur eine verschlüsselte Nachricht, sondern auch diedazugehö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” 100


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSicherheit von KryptosystemenChosen-plaintext attackDer Angreifer hat die Möglichkeit, dem Verschlüsseler einebestimmte Nachricht unterzuschrieben, die verschlüsselt wird.Beispiel: Im 2. Weltkrieg wurden von den Alliierten bestimmteBereiche des Meeres vermint, damit die Kryptoanalytiker inBletchley Park Nachrichten mit dem Wort “Minen” abfangenkonnten, um damit den Code der Enigma zu entschlüsseln.Chosen-ciphertext attackDer Angreifer hat die Möglichkeit eine unter einem unbekanntenSchlüssel verschlüsselte Nachricht zu wählen und die dazugehörigeentschlüsselte Nachricht zu erhalten.Diese Arten von Angriffen setzen einen schrittweise immermächtigeren Angreifer voraus.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 101


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSicherheit von KryptosystemenWir betrachten hier nicht die folgenden Arten von Angriffen (dieaber in der Praxis auch sehr wichtig sind!):Side channel attackAngriff auf eine bestimmte physikalische Implementierung einesKryptosystems, indem das kryptographische Gerät während derVerschlüsselung beobachtet wird.Beispiel: aus der Laufzeit des Verschlüsselungsalgorithmus könnenRückschlüsse auf die Schlüssellänge gezogen werden (sogenanntetiming attack).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 102


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSicherheit von KryptosystemenBei früheren Verschlüsselungsverfahren setzte man oft darauf, dassder Angreifer das Verschlüsselungsverfahren nicht kannte (Securityby Obscurity).Heute fordert man, dass ein Verschlüsselungsverfahren auch dannsicher sein muss, wenn der Algorithmus bekannt ist. (Der Schlüsselmuss natürlich unbekannt sein.) Um diese Sicherheit zugewährleisten, muss ein Kryptosystem einer mathematischenAnalyse unterzogen werden.Der Begriff “schwierig zu entschlüsseln” wird heutzutageinsbesondere mit Mitteln der Komplexitätstheorie definiert unduntersucht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 103


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieDaher nun eine kurze Wiederholung der wichtigstenkomplexitätstheoretischen Begriffe.Kurze Vorausschau: leider wird sich herausstellen, dass der BegriffNP-hart bzw. NP-vollständig nicht ausreichend sein wird, um einKryptosystem als “schwierig zu entschlüsseln” zu klassifizieren. Wirmüssen daher im Laufe der Vorlesung auf andere Begriffeausweichen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 104


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieWir definieren zunächst die Klasse aller Sprachen, die von einerdeterministischen Turingmaschine mit Zeitbeschränkung akzeptiertwerden können.Zeitbeschränkte det. TM und akz. Sprachen (Definition)Sei f : N 0 → N 0 eine (totale) Funktion. Die Klasse TIME(f (n))besteht aus allen Sprachen A, für die es eine deterministischeMehrband-Turingmaschine M gibt mit A = T (M) undtime M (x) ≤ f (|x|) für alle Wörter x.Dabei gibt time M (x) die Anzahl der Rechenschritte von M beiEingabe x an.Das heißt, die Anzahl der Schritte der Turingmaschine istbeschränkt und die Beschränkung ist abhängig von der Länge derEingabe.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 105


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung Komplexitätstheoriedefinieren, die von deterministischen Turingmaschinen mitpolynomialer 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 PolynomIntuitiv umfasst P alle Probleme, für die effiziente Algorithmenexistieren.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 106


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieAnalog zur Komplexitätsklasse P kann man auch eine Klasse FPvon Funktionen definieren, die in polynomieller Zeit berechnetwerde können.Funktionsklasse FPFP ist die Klasse aller Funktionen der Form f : Σ ∗ → Σ ∗ , für die eseine deterministische Turingmaschine M und ein Polynom p gibt,so dassM berechnet die Funktion f undtime M (x) ≤ p(|x|) für alle Wörter x ∈ Σ ∗ .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 107


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieÄhnlich wie bei deterministischen Turingmaschinen kann man auchzeitbeschränkte nichtdeterministische Turingmaschinen und diedazugehörigen Sprachklassen definieren.Zeitbeschränkte nichtdet. TM und akz. Sprachen (Definition)Sei f : N 0 → N 0 eine (totale) Funktion. Die Klasse NTIME(f (n))besteht aus allen Sprachen A, für die es eine nichtdeterministischeMehrband-Turingmaschine M gibt mit A = T (M) undntime M (x) ≤ f (|x|) für alle Wörter x.Dabei gilt⎧⎨ min{Länge akzeptierenderntime M (x) = Rechnungen von M auf x} falls x ∈ T (M)⎩0 falls x ∉ T (M)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 108


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieKomplexitätsklasse NP (Definition)⋃NP = NTIME(p(n))p PolynomOffensichtlich gilt P ⊆ NP.Aber gilt auch P ≠ NP? P ≠ NP-Problem (ungelöst)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 109


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieAnalog zum Begriff der Reduzierbarkeit in derBerechenbarkeitstheorie definieren wir nun den Begriff derpolynomialen Reduzierbarkeit.Polynomiale Reduzierbarkeit (Definition)Gegeben seien Sprachen A ⊆ Σ ∗ , B ⊆ Γ ∗ . Dann heißt A auf Bpolynomial reduzierbar (in Zeichen A ≤ p B), falls es eine totaleund mit polynomialer Laufzeit (deterministisch) berechenbareFunktion f : Σ ∗ → Γ ∗ gibt, so dass für alle x ∈ Σ ∗ gilt:x ∈ A ⇐⇒ f (x) ∈ B.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 110


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieAnschaulich bedeutet Reduktion, dass wir mit Hilfe von f aus einerMaschine M B für das Problem B immer eine Maschine M A für dasProblem A konstruieren können. Dabei hat dieVorverarbeitungsfunktion f polynomielle Laufzeit.xM Aff (x)M BJaNeinBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 111


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieNP-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 undA ∈ NP gilt.Das bedeutet: eine NP-vollständige Sprache ist mindestens soschwierig wie jedes andere Problem in NP.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 112


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieBeispiel: Erfüllbarkeitsproblem SATEingabe: eine aussagenlogische Formel FAusgabe: Hat F eine erfüllende Belegung? Das heißt, gibt eseine Belegung der atomaren Aussagen mit 0 bzw. 1, so dass Funter 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” 113


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieSobald man von einer NP-vollständigen Sprache (wie beispielsweiseSAT) zeigen könnte, dass sie in P (nicht) enthalten ist, wäre dasP ≠ NP-Problem gelöst.NP-Vollständigkeit und PSei A NP-vollständig. Dann giltA ∈ P ⇐⇒ P = NPBemerkung: Daraus folgt unmittelbar, dass auchA ∉ P ⇐⇒ P ≠ NP für jedes NP-vollständige Problem A gilt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 114


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung KomplexitätstheorieNeben NP ist oft auch die Klasse aller Komplemente vonNP-Problemen interessant.Komplexitätsklasse co-NP (Definition)Die Komplexitätsklasse co-NP enthält genau die Sprachen, derenKomplement in NP liegt.SAT = {F | F ist eine erfüllbare aussagenlogische Formel}liegt in NP; das Komplement von SAT, nämlichUNSAT = {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 giltjedoch P ⊆ NP ∩ co-NP.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 115


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPWir machen nun einen ersten Versuch, um den Begriff der“Schwierigkeit” für das Entschlüsseln von Kryptosystemen zudefinieren. Wir betrachten ein asymmetrischesVerschlüsselungsverfahren, bei dem der öffentliche Schlüsselbekannt ist.Die Verschlüsselungsfunktion E : M × K e → CM und dieEntschlüsselungsfunktion D : CM × K d → M liegen in FP.Jede Funktion D ′ : CM × K e → M mit E(D ′ (c, e), e) = c füralle c ∈ CM, e ∈ K e liegt nicht in FP.Bemerkung: Falls die Verschlüsselung eindeutig rückgängiggemacht werden kann, könnte man oben auch D ′ (E(m, e), e) = mfür alle m ∈ M fordern.Aber vielleicht ist die Forderung, dass D ′ nicht in FP liegt, nochetwas zu schwach . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 116


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPEntschlüsselungsproblem liegt in NP (Satz)Wir betrachten ein Kryptosystem, für das gilt:M, CM ⊆ Σ ∗Die Verschlüsselungsfunktion E : M × K e → CM liegt in FP.Falls E(m, e) = c gilt, so ist m höchstens polynomiell größerals c (D.h., p(|c|) ≥ |m| für ein Polynom p.)Dann liegt die Sprachein NP.L E = {(m ′ , c, e) | ∃u ∈ Σ ∗ : E(m ′ u, e) = c}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 117


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPBeweis:Die nichtdeterministische Turingmaschine, die L E entscheidet, rätu und überprüft, ob E(m ′ u, e) = c.Da höchstens p(|c|) Zeichen geraten müssen und E in Polynomzeitberechenbar ist, arbeitet die Turingmaschine in polynomiellerZeit.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 118


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPBemerkungen:Die Forderung, dass m höchstens polynomiell größer ist als c,ist sehr natürlich. Normalerweise sind Codewörter genausolang oder länger als die dazugehörigen Nachrichten.Wenn L E in Polynomzeit berechenbar wäre, dann könnte manD ′ einfach berechnen: seien c und e gegeben.Setze m 0 = ε.Angenommen m i ∈ Σ i und wir wissen, dass m i einAnfangsstück der gesuchten Nachricht m ist. Dannbestimme m i+1 , durch Abfragen “(m i a, c, e) ∈ L E ?” fürjedes a ∈ Σ. Falls eine solche Abfrage erfolgreich ist,setze m i+1 = m i a.Falls eine Nachricht m n nicht mehr verlängert werdenkann, dann setze D ′ (c, e) = m. (Die Iteration terminiert,da |m| beschränkt ist.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 119


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPAndererseits: wenn D ′ in FP läge (und außerdemVerschlüsselung eindeutig rückgängig gemacht werden kann),dann liegt L E in P: man muss – gegeben ein Tupel (m ′ , c, e) –D ′ (c, e) bestimmen und überprüfen, ob m ′ ein Präfix vonD ′ (c, e) ist.D.h., L E is “gleich schwierig” wie D ′ . Da sich Begriffe wieNP-Vollständigkeit nur auf Sprachen beziehen, nicht aufFunktionen, ist es günstiger mit dem Entscheidungsproblem,nämlich L E , zu arbeiten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 120


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPUm die Berechnung von D ′ so schwierig wie möglich zu machen,könnte man jetzt folgendes fordern:Mögliche Forderung an KryptosystemeFür ein asymmetrisches Kryptosystem mit VerschlüsselungsfunktionE muss die Sprache L E NP-vollständig sein.Kann man dann – unter der Voraussetzung, dass P ≠ NP –wirklich schließen, dass das Kryptosystem sicher ist?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 121


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPSelbst wenn P ≠ NP gelten würde, reicht diese Forderung nichtaus. Dafür gibt es zwei Gründe:NP-Vollständigkeit und KryptographieWir müssen miteinbeziehen, dass der Angreifer auchrandomisierte Berechnungen durchführen kann.Die Funktion D ′ muss für jedes Element schwer zu berechnensein. Die NP-Vollständigkeit von L E garantiert nur, dass esElemente gibt, für die D ′ schwer zu berechnen ist (worst-casevs. average-case).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 122


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPBemerkungen:Für SAT ist bekannt, dass es nur relativ wenige Formeln gibt,für die es wirklich schwer ist, nachzuweisen, dass sieunerfüllbar sind bzw. eine erfüllende Belegung zu finden.Daher sind Werkzeuge für SAT (sogenannte SAT-Solver) sehrerfolgreich.Das bedeutet auch, dass SAT ungeeignet ist als Problem, dasals Grundlage für ein Kryptosystem dienen soll.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 123


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPMan hat versucht, Kryptosysteme auf NP-vollständigenProblemen aufzubauen, beispielsweise auf SUBSET-SUM(Merkle und Hellman):SUBSET-SUMEingabe: eine endliche Menge A ⊆ N 0 und t ∈ N 0Ausgabe: gibt es eine Teilmenge A ′ ⊆ A, deren Summegenau t ist? D.h., gilt ∑ a∈A ′ a = t?Leider hat sich inzwischen herausgestellt, dass es docheffiziente Lösungsverfahren für die in dem Kryptosystemverwendeten Instanzen von SUBSET-SUM gibt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 124


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographie und die Komplexitätsklasse NPInteressanterweise sind nach derzeitigem Kenntnisstand Problemebesser geeignet, von denennicht bekannt ist, ob sie in P liegen unddie auch nicht als NP-vollständig bekannt sind.Dazu gehören insbesondere:FaktorisierungDiskreter LogarithmusWir werden beide Probleme und die dazugehörigen Funktionenspäter noch genauer betrachten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 125


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenRandomisierungWir betrachten zunächst randomisierte Berechnungen. Eineinteressante Feststellung ist, dass Randomisierung beiBerechnungen helfen kann!Dazu zunächst ein einfaches Beispiel: Berechnung von πBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 126


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenRandomisierungBestimme Zufallspunkte in einem Quadrat und überprüfe, ob sieinnerhalb des eingeschriebenen Kreises liegen:Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 127


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenRandomisierungRandomisierte Berechnung von πWähle zufällig Punkte (x, y) in einem Quadrat mitSeitenlänge 1. D.h., x, y ∈ [0, 1].Bestimme, ob (x, y) innerhalb des Kreises liegt, der in dasQuadrat einbeschrieben ist. Teste dazu, ob(x − 1 2 )2 + (y − 1 2 )2 ≤ r 2 = 1 4 .Sei n die Gesamtanzahl der Punkte und k die Zahl der Punkteinnerhalb des Kreises. Dann gilt für die Fläche F des Kreises:F = r 2 π = π 4 und F ≈ k n. Dadurch erhalten wir eineNäherung für π.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 128


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenRandomisierungBemerkungen:Um π wirklich genau berechnen zu können, benötigt maneinen guten Zufallszahlengenerator!Eine andere (klassischere) Möglichkeit, π zu berechnen, ist esden Grenzwert einer Reihe zu bestimmen.Ein weiteres Beispiel für ein Problem, bei dem Randomisierunghelfen kann, ist das Sortierproblem: für eine feste Eingabe hatQuick-Sort eine erwartete Laufzeit von O(n log n), wenn dasPivotelement zufällig gewählt wird. (Gegenüber einerworst-case-Laufzeit von O(n 2 ) im deterministischen Fall.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 129


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenKlassische Turingmaschinen können im allgemeinen keineZufallszahlen erzeugen. Daher betrachten wir nun probabilistischeTuringmaschinen.Turingmaschine (Definition)Eine (deterministische) Turingmaschine M ist ein 7-TupelM = (Z, Σ, Γ, δ, z 0 , □, E), wobeiZ die endliche Menge der Zustände,Σ das Eingabealphabet,Γ mit Γ ⊃ Σ das Arbeitsalphabet oder Bandalphabet,δ : Z × Γ → Z × Γ × {L, R, N} die Überführungsfunktion,z 0 ∈ Z der Startzustand,□ ∈ Γ\Σ das Leerzeichen oder Blank undE ⊆ Z die Menge der Endzustände ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 130


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenKlassische Turingmaschinen haben intuitiv folgendes Aussehen:Kopf kann sich nach links und rechtsbewegen und Zeichen überschreibene i n g a b eAutomat mitendlich vielenZuständenSignal fürEndzustandBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 131


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenBei probabilistischen Turingmaschinen erhält die Maschine zusätzlichein Band mit Zufallsbits, auf dem sie sich beliebig bewegen darf.Diese Bits beeinflussen die Zustandsübergänge.Kopf kann sich nach links und rechtsbewegen und Zeichen überschreibene i n g a b eAutomat mitendlich vielenZuständenSignal fürEndzustand0 1 1 0 0 1 0Band mit ZufallsbitsCoin-Tossing TapeBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 131


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenNach der Wiederholung von herkömmlichen Turingmaschinenführen wir nun probabilistische Turingmaschinen ein. Dabeimodifizieren wir die Definition leicht.Probabilistische Turingmaschine (Definition)Eine probabilistische Turingmaschine M ist ein 7-TupelM = (Z, Σ, Γ, δ, z 0 , □, E), wobei alle Komponenten mit Ausnahmevon δ wie bei einer herkömmlichen Turingmaschine definiert sind.Die Überführungsfunktion δ hat folgendes Aussehen:δ : Z × Γ × {0, 1} → Z × Γ × {L, R, N} × {L, R, N}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 132


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenDabei hatδ(z, a, b) = (z ′ , c, x, y)mit z, z ′ ∈ Z, a, c ∈ Γ, b ∈ {0, 1}, x, y ∈ {L, R, N} folgendeBedeutung:Wenn die Turingmaschine im Zustand z ist, a auf demArbeitsband liest und das Bit b auf dem Band mitZufallsbits steht, dannwechselt sie in den Zustand z ′ , schreibt ein c, geht aufdem Arbeitsband in die Richtung x und auf demZufallsbit-Band in die Richtung y.Wir gehen davon aus, dass der Turingmaschine zu Beginn derBerechnung entsprechende Zufallsbits bereitgestellt werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 133


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenLaufzeitbeschränkung von probabilistischen TuringmaschinenWir sagen, dass eine probabilistische Turingmaschine hält, wenn sieauf jeder Eingabe – unabhängig von den verwendeten Zufallsbits –hält, d.h., einen Endzustand erreicht.Außerdem hat eine probabilistische Turingmaschine einepolynomiale Laufzeit, wenn sie auf jeder Eingabe x – unabhängigvon den verwendeten Zufallsbits – höchstens p(|x|) Schritte macht,wobei p ein Polynom ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 134


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenWir betrachten die verwendeten Zufallsbits als Elementarereignisse.Falls die Turingmaschine auf einem festen Wort der Länge narbeitet, ist die Menge der Elementarereignisse wie folgt definiert:Ω = {0, 1} p(n)Mehr Zufallsbits werden in p(n) Schritten nicht benötigt. Jedesdieser Elementarereignisse ist gleich wahrscheinlich.Die Tatsache, ob eine Maschine M ein Wort x der Länge nakzeptiert, ist eine Zufallsvariable a M (x): Ω → {0, 1}. Für ˜b ∈ Ωgilt a M (x)(˜b) = 1 genau dann, wenn M das Wort x unterVerwendung der Zufallsbits ˜b akzeptiert.Die Laufzeit einer Maschine M auf einem Wort x ist ebenfalls eineZufallsvariable t M (x): Ω → N 0 . Für ˜b ∈ Ω gibt t M (x)(˜b) dieAnzahl der Schritte an, die die Berechnung auf x mit denZufallsbits ˜b in Anspruch nimmt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 135


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische TuringmaschinenBemerkung:Probabilistische Turingmaschinen sind nur eine Möglichkeit, denBegriff der randomisierten Berechnung präzise zu fassen.Wie das oft in der Berechenbarkeitstheorie der Fall ist, gibt es auchandere analoge Berechnungsmodelle.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 136


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWir können un die erste probabilistische Komplexitätsklassedefinieren.Komplexitätsklasse RP (Randomized polynomial time)Eine Sprache L ⊆ Σ ∗ gehört zu der Klasse RP genau dann, wennes eine probabilistische Turingmaschine M mit polynomialerLaufzeit gibt, so dass für jede Eingabe x ∈ Σ ∗ gilt:1 falls x ∈ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) ≥ 1 2 .2 falls x ∉ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) = 0.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 137


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenFrage: Kann man auch eine höhere Wahrscheinlichkeit als 1 2erhalten, wenn das Wort in der Sprache liegt?Antwort: Ja! Man muss die Maschine nur mehrmals (mit jeweilsanderen Zufallsbits) laufen lassen. Sei M ′ die Maschine, die Mk-mal ausführt und akzeptiert, sobald M einmal akzeptiert. Da diejeweils verwendeten Zufallsbits unabhängig voneinander sind, giltfür x ∈ L:( 1 kP(M ′ akzeptiert x nicht) ≤2)und damit( 1 kP(M ′ akzeptiert x) ≥ 1 −2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 138


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWir wollen nun mit Wahrscheinlichkeit größer gleich p akzeptieren.Es gilt( ) 1 kp ≤ 1 − ⇐⇒ 12 1 − p ≤ 12k ⇐⇒ k ≥ log 21 − pDann reicht es, die Maschine M log 211−p = − log 2(1 − p)-mallaufen zu lassen. Das ist für eine feste Wahrscheinlichkeit p nur einkonstanter Faktor.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 139


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenBeispiel: wir betrachten ganzzahlige Polynome mit n Variablen,d.h., Polynome über den Variablen x 1 , . . . , x n , bei denen alleKoeffizienten ganzzahlig sind.Gegeben sei nun ein solches ganzzahliges Polynom p, dargestelltdurch einen arithmetischen Ausdruck.Dieses Polynom ist nicht notwendigerweise in ausmultiplizierterForm, d.h., als Summe von Termen der Form a · x i 11 · · · · · xn in ,gegeben! Beispielsweise wird es als Produkt von Summenp(x) = (x 1 + x 2 ) · (x 3 + x 4 ) · · · · · (x 2n−1 + x 2n ) dargestellt. Aufjeden Fall haben wir eine Berechnungsverfahren für p, welches inPolynomzeit ausführbar ist.Der Grad eines Polynoms (in ausmultiplizierter Form) ist diemaximale Summe der Exponenten in einem Summanden.Beispielsweise hat p(x 1 , x 2 ) = 3x 3 1 x 2 2 + x 4 1 + 2x 3 2 + x 2 1 x 2 den Grad 5.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 140


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWir betrachten folgendes Problem:NON-ZERO-POLYEingabe: ein Polynom p mit Grad kleiner gleich kAusgabe: ist p nicht identisch zu Null, d.h., gibt esa 1 , . . . , a n ∈ Z, so dass p(a 1 , . . . , a n ) ≠ 0 gilt?Bemerkung: Sobald man NON-ZERO-POLY effizient lösen kann,können auch zwei Polynome p, q effizient auf Ungleichheit getestetwerden. Dazu überprüft man, ob (p − q) ∈ NON-ZERO-POLY.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 141


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenIdee zur Berechnung von NON-ZERO-POLY: wähle beliebigeganze Zahlen a 1 , . . . , a n ∈ Z und setze sie in p ein. Das Polynomwird akzeptiert, falls p(a 1 , . . . , a n ) ≠ 0 gilt.Dieser Test läuft sicherlich in Polynomzeit, aufgrund desgegebenen arithmetischen Ausdrucks bzw. polynomialenVerfahrens.Das Verfahren akzeptiert niemals ein Polynom, das identischzu Null ist. D.h., die zweite Bedingung in der Definition vonRP ist auf jeden Fall erfüllt.Wir müssen uns nun noch überlegen, ob auch die ersteBedingung erfüllt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 142


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWahrscheinlichkeit für Nullstellen (Schwartz-Zippel-Lemma)Sei p ein ganzzahliges Polynom mit n Variablen und Grad kleinergleich k. Sei außerdem p nicht identisch zu Null. Wenn a 1 , . . . , a nunabhängig und gleichverteilt aus {1, . . . , N} gewählt werden, sogilt:P(p(a 1 , . . . , a n ) = 0) ≤ k NBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 143


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenBeweis: die Menge der Elementarereignisse ist Ω = {1, . . . , N} n ,wobei alle Elementarereignisse gleich wahrscheinlich sind. Wirführen eine Induktion über n durch.n = 1: in diesem Fall haben wir Polynom mit nur einer einzigenVariable x 1 . Ein solches Polynom kann höchstens k Nullstellenhaben und die Wahrscheinlichkeit, eine davon aus der Menge{1, . . . , N} auszuwählen ist kleiner gleich k N .n−1 → n: In diesem Fall lässt sich p schreiben alsp = p 0 + p 1 · x n + p 2 · x 2 n + · · · + p t · x t n,wobei die p i die Variable x n nicht enthalten. Außerdem ist p t nichtidentisch zum Nullpolynom und hat höchstens Grad k − t. Wirkönnen davon ausgehen, dass t > 0 ist, denn ansonsten hätte pnur Variablen aus {x 1 , . . . , x n−1 }.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 144


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWir definieren nun folgende Ereignisse:Es gilt:PN = {(a 1 , . . . , a n ) ∈ Ω | p(a 1 , . . . , a n ) = 0}PTN = {(a 1 , . . . , a n ) ∈ Ω | p t (a 1 , . . . , a n−1 ) = 0}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 derSumme ab:P(PTN) ≤ k−tN, denn p t ist ein Polynom vom Grad k − t mitweniger Variablen, so dass die Induktionsvoraussetzungzutrifft.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 145


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenP(PN | PTN) ≤ t N, denn es wird vorausgesetzt, dassp t (a 1 , . . . , a n−1 ) ≠ 0 gilt. Dies ist der höchste Koeffizient desPolynoms q definiert durch:q(x n ) = p(a 1 , . . . , a n−1 , x n )Dieses Polynom ist nicht identisch mit Null, da der höchsteKoeffizient ungleich 0 ist. Die Wahrscheinlichkeit, dass unterdieser Voraussetzung p(a 1 , . . . , a n ) = 0 gilt, ist dieWahrscheinlichkeit, dass wir eine Nullstelle von q wählen. Unddiese Wahrscheinlichkeit ist kleiner gleich t N, da q Grad t hat.Insgesamt ergibt sich:P(p(a 1 , . . . , a n ) = 0) ≤ k − tN+ t N = k NBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 146


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenNON-ZERO-POLY liegt in RPNON-ZERO-POLY ∈ RPBeweis: aufgrund der Vorüberlegungen müssen wir uns nur nochüberlegen, dass man die Zahlen a 1 , . . . , a n so wählen kann, dassp(a 1 , . . . , a n ) = 0 mit Wahrscheinlichkeit kleiner 1 2gilt, falls pnicht identisch Null ist. Nach dem vorherigen Satz müssen wira 1 , . . . , a n zufällig aus der Menge {1, . . . , 2k} wählen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 147


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenFür das Problem NON-ZERO-POLY gibt es noch keinenbekannten deterministischen Polynomzeitalgorithmus.Falls das Polynom als arithmetischer Ausdruck gegeben ist, dannnützt es auch nichts, den Ausdruck mit Hilfe desDistributivgesetzes auszumultiplizieren und das Polynom alsSumme von Termen der Form a · x i 11 · · · · · xnin darzustellen. DieseDarstellung ist im Normalfall exponentiell größer als derursprüngliche Ausdruck.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 148


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenEs ist relativ leicht, P und RP miteinander zu vergleichen:P vs. RPEs gilt P ⊆ RP.Begründung: jede deterministische Turingmaschine kann auch alsprobabilistische Turingmaschine aufgefasst werden, die ihrenZufallsbit-Bandinhalt ignoriert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 149


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenAußerdem gilt folgende Beziehung zwischen RP und NP:NP vs. RPEs gilt RP ⊆ NP.Beweis: falls L ∈ RP gilt, so gibt es eine probabilistischeTuringmaschine, die ein Wort w ∈ L mit Wahrscheinlichkeit größergleich 1 2akzeptiert und ein Wort w ∉ L nie akzeptiert.Dies kann durch eine nicht-deterministische Turingmaschinesimuliert werden, die ihre Zufallsbits selbst rät. Falls w ∈ L, so gibtes eine Folge von Zufallsbits, die zur Akzeptanz von w führt. Fallsw ∉ L, so gibt es eine solche Folge nicht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 150


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWir betrachten noch weitere Komplexitätsklassen:Komplexitätsklasse BPP (bounded-error probabilistic polynomialtime)Eine Sprache L ⊆ Σ ∗ gehört zu der Klasse BPP genau dann, wennes eine probabilistische Turingmaschine M mit polynomialerLaufzeit gibt, so dass für jede Eingabe x ∈ Σ ∗ gilt:1 falls x ∈ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) ≥ 3 4 .2 falls x ∉ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) ≤ 1 4 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 151


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenBemerkungen:Es macht wenig Sinn in obiger DefinitionP(M akzeptiert x) ≥ 1 2 und P(M akzeptiert x) ≤ 1 2 zufordern. Dann würde ein einfacher Münzwurf, bei dem mitWahrscheinlichkeit 1 2akzeptiert oder nicht akzeptiert wird,den Anforderungen an die Turingmaschine genügen.Wie bei RP kann die Wahrscheinlichkeit für eine falscheAntwort vermindert werden, indem man die Maschinemehrfach laufen lässt.Jedes andere Paar von Zahlen p, q ∈ [0, 1] mit p > 1 2 undq < 1 2 kann statt 3 4 und 1 4verwendet werden.( Übungsaufgabe)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 152


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenÜber das Verhältnis von RP und BPP weiß man folgendes, wasdaraus folgt, dass man die Akzeptanzwahrscheinlichkeit einerRP-Turingmaschine beliebig erhöhen kann.RP vs. BPPEs 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” 153


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenZuletzt 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, wennes eine probabilistische Turingmaschine M gibt, so dass derErwartungswert der Laufzeit polynomial beschränkt ist und für jedeEingabe x ∈ Σ ∗ gilt:1 falls x ∈ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) = 1.2 falls x ∉ L, dann gilt P(M akzeptiert x) = P(a M (x) = 1) = 0.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 154


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenWas bedeutet “der Erwartungswert der Laufzeit ist polynomialbeschränkt”?ErwartungswertFür eine Zufallsvariable X : Ω → R ist der ErwartungswertE[X ] = ∑ ω∈ΩP(ω) · X (ω) = ∑ y∈YP(X = y) · y,wobei Y = {X (ω) | ω ∈ Ω} ⊆ R die Werte sind, die X annehmenkann.Für die Turingmaschinen in der Definition von ZPP heißt das, dassfür jedes Wort x gelten muss: die Zufallsvariable t M (x), die dieLaufzeit von M in Abhängigkeits der Zufallsbits beschreibt, erfülltE[t M (x)] ≤ p(|x|), wobei p ein Polynom ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 155


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenFür Probleme in ZPP gilt also:Es gibt Algorithmen, die immer die richtige Antwort geben.Aber: es ist unklar, ob diese Algorithmen immer polynomialeLaufzeit haben. Im Mittel, wenn man den Erwartungswertbetrachtet, ist die Laufzeit aber polynomial. Intuitiv bedeutetdas, dass die Algorithmen nur sehr selten lange Laufzeitenhaben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 156


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenBemerkungen:Algorithmen, die arbeiten wie die Turingmaschinen, dieZPP-Probleme entscheiden, nennt manLas-Vegas-Algorithmen: die Laufzeit, aber nicht die Ausgabedes Algorithmus ist randomisiert. Insbesondere ist derErwartungswert der Laufzeit polynomial beschränkt, dieAusgabe ist unabhängig von den Zufallsbits.Verfahren, bei denen auch die Ausgabe randomisiert ist, nenntman Monte-Carlo-Verfahren. Sie entsprechen denTuringmaschinen für RP- und BPP-Probleme. Hier ist dieLaufzeit immer polynomial beschränkt, die Ausgabe ist aberabhängig von den Zufallsbits.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 157


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenZPP und RPEin Problem L liegt in ZPP genau dann, wenn L und seinKomplement in RP liegen.Zum Beweis dieser Aussage benötigen wir dieMarkow-Ungleichung:Markow-UngleichungFür eine Zufallsvariable X : Ω → R + 0und t ∈ R mit t > 0 gilt:P(X ≥ t) ≤ E[X ]tBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 158


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenBeweis:Zunächst beobachten wir, dass ZPP unter Komplementabgeschlossen ist (einfach Ja- und Nein-Ausgänge derTuringmaschine vertauschen).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 159


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische Komplexitätsklassen“⇒”: Wir zeigen nun, dass ZPP ⊆ RP gilt. Damit haben wir dieRichtung von links nach rechts gezeigt.Sei L ∈ ZPP und sei M eine probabilistische Turingmaschine, die Lakzeptiert. Der Erwartungswert der Laufzeit von M ist durch dasPolynom p beschränkt.Wir konstruieren eine neue Turingmaschine M ′ , die bei Eingabevon x mit n = |x| folgendes macht: sie simuliert M 2p(n) Schrittelang und akzeptiert nur dann, wenn M bis dahin akzeptiert hat.Es ist klar, dass P(M ′ akzeptiert x) = 0 gilt, falls x ∉ L.Außerdem gilt, falls x ∈ L: P(M ′ akzeptiert x) =P(M akzeptiert x in höchstens 2p(n) Schritten) ≥ 1 2 . Dennnach der Markow-Ungleichung überschreitet eineZufallsvariable das Doppelte ihres Erwartungswertes nur mitWahrscheinlichkeit kleiner gleich 1 2 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 160


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische Komplexitätsklassen“⇐”: Für die Richtung von rechts nach links sei nun L eineSprache die in RP liegt und deren Komplement auch in RP liegt.D.h., wir haben zwei Turingmaschinen M 1 , M 2 , so dass M 1 Wörterimmer korrekt akzeptiert und M 2 Wörter immer korrektzurückweist. Wir nehmen an, dass die Laufzeit beider Maschinendurch das Polynom p beschränkt ist.Wir lassen M 1 und M 2 immmer wieder solange parallel laufen bisentweder M 1 akzeptiert oder M 2 das Wort zurückweist.Bei einem Durchlauf ist die Wahrscheinlichkeit für das Eintretendieses Ereignisses mindestens 1 2. D.h., die erwartete Laufzeit istkleiner gleich:∞∑( ) 1 i ∞∑ 1 12p(n) = 2p(n)22 i = 2p(n)1 − 1 = 4p(n)2i=0i=0wobei n die Länge des betrachteten Wortes ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 161


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenDabei ist p(n) die Anzahl der Schritte eines Durchlaufs einerTuringmaschine und 2p(n) die Zahl der Schritte für beideMaschinen. Ein Durchlauf für jede Maschine wird mindestensdurchgeführt.Die Wahrscheinlichkeit dafür, dass der i-te Durchlauf benötigtwird, ist kleiner gleich ( 1 i2)(alle vorherigen Durchläufe brachtenkein definitives Ergebnis).Die Reihe konvergiert zu 2 und damit haben wir wiederumpolynomiale Laufzeit.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 162


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenAnalog zu co-NP kann man auch co-RP definieren:Komplexitätsklasse co-RP (Definition)Die Komplexitätsklasse co-RP enthält genau die Sprachen, derenKomplement in RP liegt.Damit kann man den obigen Satz auch folgendermaßen notieren:ZPP = RP ∩ co-RPBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 163


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenProbabilistische KomplexitätsklassenEs gelten folgende Beziehungen zwischen probabilistischenKomplexitätsklassen:P ⊆ ZPP = RP ∩ co-RP ⊆ RP ⊆ BPPRP ⊆ NPEs ist jedoch nichts über das Verhältnis zwischen BPP und NPbekannt.Außerdem gibt es Vermutungen, dass P und ZPP gleich seinkönnten, aber auch das ist nicht bewiesen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 164


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsWir betrachten nun den Miller-Rabin-Primzahltest, einprobabilistisches Verfahren, das einer RP-Turingmaschineentspricht. Primzahltests sind wichtig, um fürVerschlüsselungsverfahren – wie beispielsweise RSA – großePrimzahlen zu finden.Wenn die eingegebene Zahl eine Primzahl ist, dann gibt derAlgorithmus dies auch immer aus. Wenn die Zahlzusammengesetzt, d.h., keine Primzahl, ist, dann irrt er sich mitWahrscheinlichkeit kleiner gleich 1 2 .Das bedeutet auch, dass man sich auf den Test verlassen kann,wenn er behauptet, dass eine Zahl zusammengesetzt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 165


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsWir zeigen also, dass folgendes Problem in RP liegt:COMPOSITEEingabe: eine natürliche Zahl n > 1Ausgabe: ist n zusammengesetzt, d.h., gibt es natürlicheZahlen k, l > 1 mit n = k · l?Das Komplement von COMPOSITE ist das Problem PRIMES, dasauch in RP (und sogar in P) liegt. Allerdings werden wir das hiernicht zeigen.PRIMESEingabe: eine natürliche Zahl n > 1Ausgabe: ist n eine Primzahl?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 166


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsDie erste Idee, die hinter dem Miller-Rabin-Primzahltest steckt, istdie folgende:Fermat-ZeugenSei n > 1 eine natürliche Zahl und a ∈ {1, . . . , n − 1}. Fallsa n−1 mod n ≠ 1 gilt, so ist n zusammengesetzt.Man nennt a dann auch einen Fermat-Zeugen dafür, dass nzusammengesetzt ist.Diese Behauptung folgt unmittelbar aus dem Satz vonEuler-Fermat (siehe weiter oben im Abschnitt über RSA).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 167


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsIdee: Für ein gegebenes n wähle ein zufälliges a ∈ {1, . . . , n − 1}und teste, ob a n−1 mod n ≠ 1.Falls ja, gebe “zusammengesetzt” zurück, ansonsten “prim”.Dieser extrem einfach Test funktioniert sogar beinahe. Er schlägtnur für sogenannte Carmichael-Zahlen fehl, das sindzusammengesetzte Zahlen, die sehr wenige Fermat-Zeugen haben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 168


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsCarmichael-ZahlenEine zusammengesetzte Zahl n heißt Carmichael-Zahl, falls alleFermat-Zeugen dieser Zahl nicht teilerfremd zu n sind. D.h., jedesa ∈ {1, . . . , n − 1} mit ggT (a, n) = 1 erfüllt a n−1 mod n = 1.Die kleinste solche Carmichael-Zahl ist 561 = 3 · 11 · 17.Es ist außerdem bekannt, dass jede Carmichael-Zahl ungerade ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 169


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsWenn eine Zahl keine der relative seltenen Carmichael-Zahlen ist,dann gibt es sogar sehr viele Fermat-Zeugen.Anzahl der Fermat-ZeugenSei n eine zusammengesetzte Zahl, die keine Carmichael-Zahl ist.Dann ist die Anzahl der Fermat-Zeugen in {1, . . . , n − 1} größergleich n 2 .Beweis:Zur Erinnerung: die Elemente vonZ ∗ n = {a ∈ {1, . . . , n − 1} | ggT (a, n) = 1} bilden eine Gruppebezüglich der Multiplikation.Wir betrachten nunB = {a ∈ Z ∗ n | a n−1 mod n = 1}.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 170


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsMan kann leicht zeigen, dass B eine Untergruppe von Z ∗ n ist (1 ∈ Bund B ist abgeschlossen unter Multiplikation und Inversenbildung).B ist eine Untergruppe von Z ∗ n ist aber nicht gleich Z ∗ n, denn da nkeine Carmichael-Zahl ist, enthält Z ∗ n mindestens einenFermat-Zeugen. Nach dem Satz von Lagrange ist die Anzahl derElemente einer Untergruppe ein Teiler der Anzahl der Elemente dergesamten Gruppe. Daher gilt |B| ≤ |Z∗ n |2< n 2 .Außerdem sind alle Elemente von Z n \Z ∗ n Fermat-Zeugen. Daher istdie Zahl der Nicht-Fermat-Zeugen durch n 2 beschränkt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 171


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsFür Carmichael-Zahlen benötigen wir nun noch ein zusätzlichesKriterium.Miller-ZeugeSei n > 1 und sei b ∈ {1, . . . , n − 1} mitb ≠ 1 b ≠ n − 1 b 2 mod n = 1Dann ist n eine zusammengesetzte Zahl.Die Zahl b heißt auch Miller-Zeuge für n oder nicht-trivialeQuadratwurzel von 1.Beweis: es gilt n | (b 2 − 1) = (b − 1)(b + 1), jedoch n ∤ b − 1 undn ∤ b + 1. Damit kann n keine Primzahl sein, denn wenn einePrimzahl ein Produkt teilt, teilt sie auch einen der Faktoren.Bemerkung: b mod n ≠ n − 1 ist äquivalent zu b ≢ −1 (mod n).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 172


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsMan kann nun folgendes zeigen:Wahrscheinlichkeit für einen Miller-ZeugenGegeben sei eine Carmichael-Zahl n, insbesondere ist damit nungerade. Sei außerdem n − 1 = 2 k · m mit m ungerade und k ≥ 1.Für ein zufällig gewähltes a ist die Wahrscheinlichkeit, dass sich inder Menge {a 2i ·m | 0 ≤ i < k} ein Miller-Zeuge für n befindet,größer gleich 1 2 .Der Beweis ist recht technisch, ist jedoch ähnlich zu demNachweis, dass eine Zahl n, die keine Carmichael-Zahl ist, mehr alsn2Fermat-Zeugen hat. Auch hier wird der Satz von Lagrangeverwendet.Bei Zahlen, die keine Carmichael-Zahlen sind, ist dieWahrscheinlichkeit einen Miller-Zeugen zu finden viel geringer.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 173


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsMan sucht nun nicht zufällig nach solchen Miller-Zeugen, sondernnutzt folgende Tatsachen aus:Angenommen, n ist ungerade und der Test für denFermat-Zeugen schlägt fehl, d.h., a n−1 mod n = 1.Sei nun n − 1 = 2 k · m für k ≥ 1 und m ungerade.Falls a m mod n = 1 gilt, dann geben wir auf und geben (evtl.zu Unrecht) aus, dass die Zahl eine Primzahl ist.Ansonsten (a m mod n ≠ 1) quadrieren wir die Zahl a m immerwieder, bis a 2k·m erreicht ist. Da letztere Zahl kongruent 1modulo n ist, erreichen wir irgendwann den ersten Index i mita 2i ·m mod n = 1 (und dies gilt auch für Indizes größer als i).Falls nun a 2i−1·m mod n ≠ n − 1 gilt, so haben wir einenMiller-Zeugen b = a 2i−1·m gefunden ( Zahl istzusammengesetzt!). Ansonsten geben wir wieder auf undgeben “prim” aus.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 174


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsBemerkung: in der Folgea m mod n, . . . , a 2i ·m mod n, . . . , a 2k·m mod n = a n−1 mod nkönnen nur folgende Muster auftauchen.1, 1, . . . , 1 Primzahl??, . . . , ?, 1, . . . , 1 zusammengesetzte Zahl!?, . . . , ?, n − 1, 1, . . . , 1 Primzahl??, . . . , ? bzw. ?, . . . , ?, n − 1 zusammengesetzte Zahl!(kann nur auftreten, falls a n−1 mod n ≠ 1 und damit a einFermat-Zeuge ist)Dabei steht ? für eine Zahl ungleich 1 und ungleich n − 1.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 175


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsBeispiel:Sei n = 561.Wir wählen zufällig a = 5 und testen, ob a ein Fermat-Zeugefür n ist: 5 560 mod 561 = 1. D.h., 5 ist kein Fermat-Zeuge.Es gilt 560 = 2 4 · 35. Wir berechnen5 35 mod 561 = 235 2·35 mod 561 = 23 2 mod 561 = 5295 22·25 mod 561 = 529 2 mod 561 = 4635 23·25 mod 561 = 463 2 mod 561 = 675 24·25 mod 561 = 67 2 mod 561 = 1(Das wurde vorher schon berechnet!)Also ist b = 67 ein Miller-Zeuge und das Verfahren gibt aus,dass 561 zusammengesetzt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 176


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsDas Verfahren kann effizient so implementiert werden, dasszunächst a m mod n berechnet wird und dann sukzessive Quadrategenommen werden.Miller-Rabin-PrimzahltestEingabe: eine ungerade natürliche Zahl n ≥ 3Wähle zufällig ein a ∈ {1, . . . , n − 1}falls ggT (a, n) ≠ 1, gebe “zusammengesetzt” aussei n − 1 = 2 k · m mit m ungeradefalls a m mod n = 1, gebe “prim” ausfor i = 0 to k − 1 dofalls a 2i ·m mod n = n − 1, dann gebe “prim” ausendgebe “zusammengesetzt” ausGerade natürliche Zahlen müssen separat getestet werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 177


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsZusammenfassung (Miller-Rabin-Primzahltest):Es gibt ein Verfahren, das bei Eingabe einer natürlichen Zahln “prim” oder “zusammengesetzt” ausgibt, wobeimit einer Wahrscheinlichkeit größer gleich 1 2“zusammengesetzt” ausgegeben wird, wenn nzusammengesetzt 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 giltCOMPOSITE ∈ RP ∩ co-RP = ZPP und auchPRIMES ∈ ZPP.Inzwische wurde sogar gezeigt, dass PRIMES ∈ P gilt(Agrawal, Kayal, Saxena). Dennoch wird der probabilistischeTest noch bevorzugt, da er wesentlich effizienter ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 178


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrimzahltestsWeitere Bemerkungen:Ein wichtiges Konzept in der Komplexitätstheorie sind sogenannteZeugen oder Zertifikate, die garantieren, dass ein Wort x in einerSprache L liegt. Für probabilistische Komplexitätsklassen ist dieSituation wie folgt:Gibt es für jedes Wort x ausreichend viele Zeugen für x ∈ Lund x ∉ 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.Gibt es keine Zeugen, aber erhält hat man trotzdemausreichend hohe Wahrscheinlichkeiten dafür, dass x ∈ L bzw.x ∉ L gilt, so liegt L in BPP.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 179


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenWir betrachten nun sogenannte Einwegfunktionen, das sind intuitivFunktionen, dieleicht zu berechnen sind – sie liegen in FP – undderen Umkehrung fast immer schwer zu berechnen ist.Zusätzlich fordert man im allgemeinen auch noch, dass dieUmkehrung sogar dann schwer zu berechnen ist, wenn man einprobabilistisches Verfahren verwendet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 180


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenWir betrachten im folgenden nur ehrliche Funktionen. Das sindFunktionen, die ihre Eingabe nicht zu stark verkürzen. Denn wenndie Größe des Urbildes nicht polynomial in der Größe des Bildes ist,dann kann das Urbild sowieso nicht in polynomialer Zeit gefundenwerden. Damit gäbe es triviale Einwegfunktionen, an denen wiraber nicht interessiert sind.Ehrliche FunktionenEine Funktion f : Σ ∗ → Γ ∗ heißt ehrlich, falls es ein Polynom qgibt, so dass für alle x ∈ Σ ∗ gilt:|x| ≤ q(|f (x)|)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 181


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenAußerdem benötigen wir – um ausdrücken zu können, dass dieWahrscheinlichkeit ein Kryptosystem zu entschlüsselnvernachlässigbar gering ist – den Begriff einer vernachlässigbarenFunktion.Vernachlässigbare FunktionEine Funktion r : N 0 → R + 0heißt vernachlässigbar, wenn es fürjedes Polynom p (mit p : N 0 → N 0 ) eine Zahl C ∈ N 0 gibt mitfür n > C.r(n) < 1p(n)Anschaulich: wenn der Funktionswert n groß genug ist, dann fällt rschneller als jedes Polynom.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 182


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenEinwegfunktionEine Funktion f : {0, 1} ∗ → {0, 1} ∗ heißt Einwegfunktion, fallsf liegt in FP,f ist ehrlich undfür jede probabilistische polynomzeitbeschränkteTuringmaschine M ist die Wahrscheinlichkeit vernachlässigbar,dass M ein korrektes Urbild für f (x) berechnet, falls x zufälligaus der Menge {0, 1} n gewählt wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 183


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenWir betrachten den dritten Punkt der Definition noch etwasgenauer:Notation:M(y) sei eine Zufallsvariable, die die Ausgabe derprobabilistischen Turingmaschine M bei Terminierung angibt,wenn die Turingmaschine mit Eingabe y gestartet wurde.f (M(f (x))) = f (x) bedeutet, dass die Turingmaschine Mkorrekt ein Urbild von f (x) berechnet hat. Da f nicht bijektivsein muss, können wir nicht erwarten, dass dieses Urbild auchgleich x sein muss.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 184


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenWelche Wahrscheinlichkeit genau ist vernachlässigbar?Elementarereignisse: die Elementarereignisse stammen aus derMenge Ω = {0, 1} n × {0, 1} q(q′ (n)) , wobei q das Polynom ist,das die Laufzeit von M beschränkt und q ′ das Polynom ist,das die Laufzeit der Maschine beschränkt, die f berechnet.D.h., ein Elementarereignis ist ein Paar bestehend aus einemWort x ∈ {0, 1} n und einem Zufallsbit-String ˜b. AlleElementarereignisse sind gleich wahrscheinlich.Wir betrachten nun folgende Zufallsvariable XM n :⎧⎨ 1 falls M bei Eingabe f (x) und mit Zufallsbits ˜bXM n (x, ˜b) =ein Urbild von f (x) bestimmt⎩0 sonstBeschränkt wird also die WahrscheinlichkeitP(XM n = 1) = P(f (M(f (x))) = f (x)) für eine feste Länge n von x.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 185


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenWarum fordert man nicht sogar, dass P(f (M(f (x))) = f (x)) fürjedes x ∈ {0, 1} n vernachlässigbar ist? Die Elementarereignissewürden in diesem Fall nur aus den Zufallsbit-Strings bestehen. Solche Einwegfunktionen kann es gar nicht geben! Man kann nieverhindern, dass der Entschlüsselungsalgorithmus auf bestimmtenverschlüsselten Nachrichten korrekt funktioniert. Beispielsweisekönnte die Turingmaschine immer eine feste Nachricht ausgeben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 186


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFaktorisierungWir betrachten nun einige mögliche Kandidaten fürEinwegfunktionen, zunächst die Funktion pmult:Primzahlmultiplikation pmultpmult(p, q) = p · q,wobei p, q beide k-Bit Primzahlen sind.Die Funktion pmult liegt in FP. Die Umkehrfunktion müsste dieFaktorisierung eines Produkts von Primzahlen bestimmen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 187


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFaktorisierungAls Entscheidungsproblem kann man das Faktorisierungsproblemfolgendermaßen darstellen:FaktorisierungEingabe: Zwei Zahlen n, r ∈ N 0 , wobei n das Produkt vonzwei k-Bit Primzahlen ist.Ausgabe: Besitzt n einen Faktor p ≠ 1, der kleiner als r ist?Eine andere Variante des Entscheidungsproblems fragt, ob das i-teBit des kleineren Faktors gleich 1 ist.Beide Probleme liegen in NP, es ist jedoch nicht bekannt, ob sieNP-vollständig sind. Auch aus dem Beweis der NP-Vollständigkeitund aus P ≠ NP kann man nicht notwendigerweise schließen, dasspmult eine Einwegfunktion ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 188


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDiskreter LogarithmusUm den diskreten Logarithmus definieren zu können, benötigen wirzunächst einige Begriffe:Primitivwurzel modulo mEine Zahl g ∈ {0, . . . , m − 1} heißt Primitivwurzel modulo m, fallsg ein Generator der multiplikativen GruppeZ ∗ m = {a ∈ {1, . . . , m − 1} | ggT (a, m) = 1}ist. D.h., es muss gelten:{g k mod m | k ∈ N 0 } = Z ∗ mBemerkung: Es gilt |Z ∗ m| = ϕ(m).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 189


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDiskreter LogarithmusBemerkungen:Nicht für alle m ∈ N 0 gibt es Primitivwurzeln. Es gibt jedochauf 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:2 0 mod 7 = 1, 2 1 mod 7 = 2, 2 2 mod 7 = 4,2 3 mod 7 = 1 2 ist keine Primitivwurzel modulo 73 0 mod 7 = 1, 3 1 mod 7 = 3, 3 2 mod 7 = 2,3 3 mod 7 = 6, 3 4 mod 7 = 4, 3 5 mod 7 = 5,3 6 mod 7 = 1 3 ist eine Primitivwurzel modulo 7Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 190


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDiskreter LogarithmusWir betrachten die Funktion dexp:Diskrete ExponentialfunktionGegen seien eine Primzahl p, eine Primitivwurzel g modulo p undx ∈ Z ∗ p = {1, . . . , p − 1}. Wir definierendexp(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) deneindeutig bestimmten Exponenten x berechnet heißt diskreterLogarithmus und gilt als schwer zu berechnen.Auch für den diskreten Logarithmus existiert ebenfalls eindazugehöriges Entscheidungsproblem.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 191


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenForderung: im Fall der symmetrischen Verschlüsselung ist dieVerschlüsselungsfunktion E für einen festen Schlüssel eineEinwegfunktion.Existieren Einwegfunktionen? das weiß man nicht genau. Man weiß nur, dass folgendes ausder Existenz von Einwegfunktionen folgen würde:P ≠ NP und NP ⊈ BPPes gibt (sichere) symmetrische Verschlüsselungsverfahren, diemit kurzen Schlüsseln arbeiten (anders als der One-Time-Pad)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 192


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenFalls Einwegfunktionen existieren, dann gilt P ≠ NP. Außerdemgilt dann NP ⊈ BPP, d.h., es gibt eine Sprache in NP\BPP.Beweis: sei f : {0, 1} ∗ → {0, 1} ∗ eine Einwegfunktion und seiL f = {(x, y) | ∃u ∈ {0, 1} ∗ : f (xu) = y}.L f liegt in NP, denn u kann geraten und in Polynomzeit überprüftwerden. Falls P = NP gilt, so wäre L f in Polynomzeit entscheidbar,und man kann L f dazu benutzen, um in Polynomzeit ein Urbild füreinen gegebenen Funktionswert f (x) zu bestimmen. (SieheArgumentation für die sehr ähnliche Sprache L E weiter oben.) Dasist ein Widerspruch dazu, dass f eine Einwegfunktion ist.Außerdem kann L f nicht in BPP liegen, denn dann gäbe es eineprobabilistische Turingmaschine, die mit ausreichend hoherWahrscheinlichkeit Urbilder finden würde.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 193


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenBemerkung:Es ist nicht bekannt, ob die umgekehrten Folgerungen gelten: d.h.,man weiß nicht, ob aus P ≠ NP oder NP ⊈ BPP die Existenz einerEinwegfunktion folgt. (Das liegt daran, dass eine Einwegfunktionnicht nur im worst-case schwer zu invertieren sein sollte.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 194


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenEine beliebige Einwegfunktion – wenn sie existieren sollte – kannman nicht direkt für symmetrische Verschlüsselung verwenden. DerGrund dafür ist, dass es auch eine dazugehörigeEntschlüsselungsfunktion geben muss, die leicht zu berechnen ist.Aber: die Existenz von Einwegfunktionen garantiert die Existenzvon Pseudo-Zufallsgeneratoren.Pseudo-Zufallsgenerator (informell)Ein Pseudo-Zufallsgenerator ist ein deterministisches Verfahren,das aus einem gegebenen Startwert eine Sequenz von Bits erzeugt,die von einer probabilistischen polynomzeit-beschränktenTuringmaschine nicht von einer zufällig erzeugten Bit-Sequenzunterschieden werden kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 195


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinwegfunktionenAnwendungen für Pseudo-Zufallsgeneratoren:Nach Austausch eines symmetrischen Schlüssels kann dieserals Startwert für einen Pseudo-Zufallsgenerator verwendetwerden. Damit kann der One-Time-Pad simuliert werden undsichere 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


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFalltürfunktionenFür asymmetrische Verschlüsselung müssen wir noch mehr fordern:sogenannte Falltürfunktionen.Falltürfunktion (informell)Die Verschlüsselungsfunktion E eines asymmetrischenKryptosystems heißt Falltürfunktion, wennE in Polynomzeit berechnenbar ist, wenn der öffentlicheSchlüssel bekannt ist,die Entschlüsselungsfunktion D in Polynomzeit berechenbarist, wenn der private Schlüssel bekannt ist unddie Wahrscheinlichkeit (für eine probabilistischepolynomzeitbeschränkte Turingmaschine), für zufälliggewä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 ProtokollenFalltürfunktionenDas heißt, es gibt eine “geheime Falltür” (den privaten Schlüssel),mit Hilfe derer die Verschlüsselungsfunktion doch einfach zuinvertieren ist.Man vermutet, dass das RSA-Kryptosystem eine Falltürfunktiondarstellt. Dies ist jedoch nicht bewiesen, denn die Existenz einerFalltürfunktion würde auch die Existenz von Einwegfunktionengarantieren.Außerdem ist unklar, ob daraus, dass die Primzahlmultiplikationeine Einwegfunktion ist, folgt, dass die RSA-Funktion eineFalltürfunktion ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 198


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFalltürfunktionenImmerhin weiß man aber folgendes über die Sicherheit von RSA:Faktorisierungsalgorithmus durch Kenntnis der RSA-SchlüsselFalls die RSA-Schlüssel (e, n) und (d, n) bekannt sind, gibt eseinen probabilistischen Polynomzeit-Algorithmus, der n in dieFaktoren p, q aufspaltet.D.h., man kann zeigen, dass das Finden des privaten Schlüsselsgleichbedeutend mit der Faktorisierung von n ist. Das bedeutetnicht, dass das Brechen des Kryptosystems gleichbedeutend mitder Faktorisierung ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 199


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFalltürfunktionenBeweis (Skizze): sei e · d − 1 = 2 k · m mit m ungerade.Für ein a ∈ {1, . . . , n − 1} mit ggT (a, n) = 1 gilta ed−1 ≡ a z·ϕ(n) ≡ 1 (mod n), wobei ϕ(n) = (p − 1) · (q − 1).Das Verfahren zur Faktorisierung von n beruht nun auf derTatsache, dass für ein zufällig gewähltes solches a dieWahrscheinlichkeit, in der Menge{a 2i ·m | 0 ≤ i < k}einen Miller-Zeugen für n zu finden, größer gleich 1 2ist (ohneBeweis).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) undq | (b + 1) (oder umgekehrt).Man bestimmt nun p = ggT (b − 1, n) und q = n p .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 200


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoEs ist unbekannt, ob Einweg- und Falltürfunktionen existieren.Diese Frage hängt mit der Frage nach P ≠ NP zusammen, ist abernicht gleichbedeutend.In seinem Artikel “A Personal View of Average-Case Complexity”hat Russell Impagliazzo die möglichen Antworten auf diese Fragenzusammengestellt und fünf daraus resultierende mögliche Weltenbeschrieben.Er geht dabei davon aus, dass – wenn ein Problem in P liegt – derdazugehörige Polynomzeitalgorithmus bekannt und praktikabel ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 201


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoAlgorithmicaIn Algorithmica gilt P = NP (oder zumindest NP ⊆ BPP, was imwesentlichen dieselben Auswirkungen hat).Fast alle Optimierungsprobleme wären einfach.Programme müssten nur noch die Eigenschaften der Ausgabebeschreiben, das Berechnungsverfahren kann automatischgeneriert werden.Es gibt keine Einweg- oder Falltürfunktionen.Alle Kryptosysteme, die mit beschränkten Schlüssellängenarbeiten, sind einfach zu brechen.Es gibt keine Authentifizierungsverfahren.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 202


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoHeuristicaHeuristica ist die Welt, in der NP-Probleme im worst-caseschwierig zu lösen sind, aber fast alle zufällig gewählten Instanzeneinfach sind. Insbesondere können schwere Instanzen nur mitgroßem Aufwand gefunden werden.Da schwere Probleme sehr selten sind, können in der Praxisfast alle Aufgabenstellungen (aus NP) effizient gelöst werden.Auch in Heuristica ist Kryptographie im wesentlichen nichtmöglich, da schwere Instanzen – d.h., schwer zuentschlüsselnde Nachrichten – nicht verläßlich produziertwerden können.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 203


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoPessilandPessiland ist – nach Impagliazzo – die schlimmste aller Welten. Esist einfach, schwere Instanzen von NP-Problemen zu finden, aberes ist nicht möglich, verläßlich schwere und gelöste Instanzen zuerzeugen.Es gibt wenige Vorteile für das Lösen von Problemen.Es gibt keine Einwegfunktionen, denn Einwegfunktionen sindgerade ein Verfahren, um effizient schwere und gelösteInstanzen (das Bild der zu versendenden Nachricht unter derEinwegfunktion) zu generieren.Ebensowenig ist Authentifizierung möglich.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 204


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoMinicryptIn Minicrypt kann man schwere und gelöste Instanzen vonNP-Problemen generieren, d.h., es existieren Einwegfunktionen.Aber es gibt keine Falltürfunktionen.Es gibt wenige positive algorithmische Aspekte. Man kannjedoch aus Einwegfunktionen Pseudo-Zufallsgeneratorenerzeugen und damit probabilistische Algorithmenderandomisieren.Symmetrische Verschlüsselung und Authentifizierung sindmöglich.Asymmetrische Verschlüsselungsverfahren sind nicht möglich.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 205


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDie fünf Welten von ImpagliazzoCryptomaniaIn Cryptomania existieren zusätzlich noch Falltürfunktionen.Es gibt immer noch Einwegfunktionen,Pseudo-Zufallsgeneratoren, etc. und auch hier sindsymmetrische Verschlüsselung und Authentifizierung möglich.Zusätzlich sind auch asymmetrische Verschlüsselung undzahlreiche andere kryptographische Protokolle (Austausch vongeheimen Schlüsseln, digitale Signaturen, elektronischeWahlen, elektronische Bezahlverfahren, etc.) möglich.Cryptomania entspricht von den praktischen Auswirkungen her amehesten unserer heutigen Welt. Es ist aber nicht klar, ob wirwirklich in Cryptomania leben!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 206

Weitere Magazine dieses Users
Ähnliche Magazine