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 ProtokollenDas heutige Programm:OrganisatorischesVorstellungTerminabspracheAblauf der Vorlesung und der ÜbungenEinordnung & PrüfungLiteratur & FolienEinführung und Motivation: “Formale Aspekte derSoftware-Sicherheit und Kryptographie”Inhalt der VorlesungBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 2


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVorstellungDozentin: Prof. Barbara KönigRaum LF 264E-Mail: barbara koenig@uni-due.deSprechstunde nach VereinbarungÜbungsleitung:Sebastian Küpper, M.Sc.Raum LF 261E-Mail: sebastian.kuepper@uni-due.deWeb-Seite:http://www.ti.inf.uni-due.de/teaching/ss2013/ssk/Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 3


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVorlesungstermineTermine:Montag, 10:15-11:45, Raum LE 120Dienstag, 16:05-17:50, Raum LF 226 (Terminänderung!)Die Übung findet an dem Termin Mo, 10-12, in (normalerweise)zweiwöchigem Rhythmus im Wechsel mit der Vorlesung statt. Dieerste Übung findet erst am 29.4. statt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 4


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenÜbung und HausaufgabenDas Übungsblatt wird spätestens am Montag in der Vorwocheder Übung auf der Webseite bereitgestellt.Verteilt über das Semester gibt es drei Testat-Blätter.Die Lösungen zu den Testatblättern werden in derdarauffolgenden Woche direkt in der Übung abgegeben.Die anderen Blätter werden nicht korrigiert, aber natürlich inder Übung besprochen.Es gibt eine Bonusregelung: der Bonus (eine Notenstufebesser in der Prüfung, z.B. 1,7 statt 2,0) wird erzielt, wenn50 % der Testat-Punkte erzielt,alle Testat-Blätter bearbeitet wurdenund mindestens einmal eine Aufgabe an der Tafelvorgerechnet wurde.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 5


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinordnungDiese Vorlesung gehört zu folgenden Studiengängen . . .DAI – Fachprüfung/Leistungskontrolle in “Informatik der Systeme”Zitate aus der Prüfungsordnung:Im Gebiet Informatik der Systeme: Leistungskontrollen überLehrveranstaltungen [...] im Umfang von insgesamt 8 SWS.Die Fachprüfung im Gebiet Informatik der Systeme erstreckt sichauf Studieninhalte im Umfang von 10 SWS, für die keineLeistungskontrollen erbracht wurden. diese Veranstaltung hat 4 SWS.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 6


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinordnungMAI – Informatik für den AnwendungsbereichIm Master “Angewandte Informatik” ist diese Veranstaltungfolgendermaßen eingeordnet:Informatik für den AnwendungsbereichKatalog “Verteilte, Verlässliche Systeme”Stundenzahl: 4 SWS (3V + 1Ü), 6 CreditsBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 7


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenEinordnungVoraussetzungenFür diese Veranstaltung sollten Sie vorher möglichst die folgendenVorlesungen gehört haben:Berechenbarkeit und Komplexitäthttp://www.ti.inf.uni-due.de/teaching/ws201213/beko/Wahrscheinlichkeitstheorie und StochastikLogikhttp://www.ti.inf.uni-due.de/teaching/ws201213/logik/. . . oder äquivalente Veranstaltungen.Das wird keine Komplexitätstheorie-Veranstaltung, aber wirbenötigen einige Grundlagen aus der Komplexitätstheorie. Gleichesgilt für die Wahrscheinlichkeitstheorie und Logik. Die Grundlagenwerden auch noch einmal kurz wiederholt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 8


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenPrüfungDiese Vorlesung wird mündlich geprüft. Der Prüfungstermin istvoraussichtlich der 1. August.Für Fachprüfungen wird ein gesonderter Termin vereinbart.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 9


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenLiteraturJohn Talbot, Dominic Welsh: Complexity and Cryptography –An Introduction. Cambridge, 2006.Christos H. Papadimitriou: Computational Complexity.Addison Wesley, 1994.Oded Goldreich: Foundations of Cryptography (Basic Tools).Cambridge University Press, 2001.Oded Goldreich: Foundations of Cryptography (BasicApplications). Cambridge University Press, 2004.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 10


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenLiteraturBruno Blanchet: Using Horn Clauses for Analyzing SecurityProtocols. Formal Models and Techniques for AnalyzingSecurity Protocols. IOS Press, 2010.http://www.di.ens.fr/~blanchet/publications/BlanchetBook09.htmlMartín Abadi and Bruno Blanchet: Analyzing SecurityProtocols with Secrecy Types and Logic Programs. Journal ofthe ACM, 52(1):102-146, 2005.http://www.di.ens.fr/~blanchet/publications/AbadiBlanchetPOPL02.htmlBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 12


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenFolienFolien werdenim Web bereitgestellt undregelmäßig aktualisiert.Die Folien werden sehr ähnlich zu den Folien aus demWintersemester 2011/12 sein (erhältlich überhttp://www.ti.inf.uni-due.de/teaching/ws201112/ssk/).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 13


RMAIDRelied on by:26346 Boice JD Jr, Blettner M, & Auvinen A, 2000, ‘Epidemiologicstudies of pilots and aircrew’, Health Physics, vol. 79, pp. 576-584.26376 Rafnsson V, Hrafnkelsson J, Tulinius H, 2000, ‘Incidence ofcancer among commercial airline pilots’, Occ Environ Med, vol.57, pp. 175-179.14211 Ryan P, Lee MW, North B & McMichael AJ, 1992, ‘Amalgamfillings, diagnostic dental x-rays and tumours of the brain andmeninges’, European Journal of Cancer Part B, Oral Oncology,vol. 28B, no.2, pp. 91-5.24929 Erfurth EM, Bulow B, Milkoczyt Z, Svahn-Tapp.ert G, & HagmartL, 2001, ‘Is there an increase in second brain tumours aftersurgery and irradiation for a pituitary tumour?’, ClinicalEndocrinology, vol. 55, pp. 613-6.24931 Hu J, La Vecchia C, Negri E, Chatenenoud L, Bosett C, Jia X,Liu R, Huang G, Bi D, & Wang C, 1999, ‘Diet and brain cancer inadults: a case-control study in Northeast China’, InternationalJournal of Cancer, vol. 81, pp. 20-3.24917 Gundestrup M, Storm HH, 1999, ‘Radiation-induced acutemyeloid leukaemia and other cancers in commercial jet cockpitcrew: a population-based cohort study’, The Lancet, vol. 354pp. 2029-2031.24906 Jenkinson H, Hawkins M, Key MF, Cekic O, 1999, [Comments].Secondary brain tumours in children with ALL’, The Lancet, vol.354, pp. 1126-7.CommissionsCommissionsCommissionsCommissionsCommissionsCommissions24286 McKinlan AF, 1997, ‘Possible health effects related to the use ofradiotelephones’, Radiol Prot Bull, vol. 187, pp. 9-16.23975 Hardell L, Mild KH and Hallquist A, 2001, ‘Radiofrequencyexposure and the risk for brain tumors’, Epidemiology, vol. 12,no.1, pp. 135-136.23977 Valberg PA, 1997, ‘Radio frequency radiation no.RFR thenature of exposure and carcinogenic potential’, Cancer Causes& Control, vol. 8, no.3, pp. 323-332.24075 Ahlbom A, Cardis E, Green A, Linet M, et al, 2001, ‘Review ofthe epidemiologic literature on EMF and health’, EnvironmentalHealth Perspectives, vol. 109, Supp. l 6, pp. 911-933.14622 Caldwell GG, Kelley D, Zack M, Falk H and Heath CW, 1983,‘Mortality and cancer frequency among military nuclear testno.smoky, participants, 1957 through 1979’, JAMA, vol. 250,no.5, pp. 620-624.Commissions105


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInhalt der VorlesungKryptographie ist . . .die Wissenschaft von der Verschlüsselung von Informationen.Kryptographie ist inzwischen für sicheren Nachrichtenaustausch(Online-Bezahlungssysteme, Online-Banking, etc.) unverzichtbargeworden.Ein Teil der Informatik ist der Entwurf von sicherenVerschlüsselungssystemen und die Analyse existierenderVerschlüsselungssysteme. Dabei möchte man möglichstweitreichende Garantien über deren Sicherheit erhalten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 15


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInhalt der VorlesungKryptographische Protokolle . . .sind Protokolle, die Nachrichten nach bestimmten – vorherfestgelegten Regeln – austauschen und dabei kryptographischeVerfahren verwenden (hauptsächlich zum Verschlüsseln, aber auchzum Signieren von Nachrichten).Solche Protokolle sind sehr fehleranfällig. Beispielsweise sindzahlreiche falsche Authentifizierungsprotokolle im Umlauf.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 16


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungWir beginnen mit einigen motivierenden Beispielen. Als erstesentschlüsseln wir einen Text, von dem wir wissen, dass er durchPermutation von Buchstaben verschlüsselt wurde. Ein solchesVerfahren nennt man auch monoalphabetische Verschlüsselung.Monoalphabetische VerschlüsselungSei A die Menge aller 26 Buchstaben des Alphabets und seiπ : A → A eine beliebige bijektive Abbildung.Dann wird ein Wort m 0 . . . m n ∈ A ∗ dadurch verschlüsselt, dassjeder Buchstabe m i durch π(m i ) ersetzt wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 17


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungWir haben nun einen (längeren) Text abgefangen, der auf dieseWeise entschlüsselt wurde, die Permutation π (= der Schlüssel) istjedoch nicht bekannt. Wie kann dieser Text entschlüsselt werden?DPGASUPF UPQ ZQRTGSIQXTAOPZQRTGSIQXTAOEYAP JPQLXAQPF KPQUPF HFGPQGPOVG OF UOP ZVXEEOEYAPF HFUDSUPQFPF JPQLXAQPF. UOPEP POFGPOVHFI ZSQQPETSFUOPQG OD KPEPFGVOYAPFDOG UPQ HFGPQGPOVHFI OF ERDDPGQOEYAP HFU XERDDPGQOEYAP JPQLXAQPF.DPGASUPF UPQ ZVXEEOEYAPF ZQRTGSIQXTAOP: ESVXFIP LHPQ UOP ZQRTGSIQXTAOPFSYA ZPOFP PVPZGQSFOEYAPF QPYAFPQ POFIPEPGNG KHQUPF, PQEPGNGP DXF CPOUPQ JPQEYAVHPEEPVHFI (NH UOPEPQ NPOG UOP POFNOIP XFKPFUHFI UPQZQRTGSIQXTAOP) ODDPQ JSVVEGXPFUOIP CHYAEGXCPF SUPQCHYAEGXCPFIQHTTPF. ESVYAP JPQLXAQPF EOFU APHGP JPQXVGPG HFU HFEOYAPQ.[...]Vollständiger Text unterwww.ti.inf.uni-due.de/fileadmin/public/teaching/ssk/misc/krypto-1.txtBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 18


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungWieviele mögliche Schlüssel gibt es? Kann man alle dieseSchlüssel durchprobieren?Gibt es eine andere Methode, den Text zu entschlüsseln?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 19


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungEin durch monoalphabetische Verschlüsselung kodierter Text kannim allgemeinen einfach durchHäufigkeitsanalyse von Buchstaben undSuche nach bekannten Wörternentschlüsselt werden.Dabei wird insbesondere ausgenutzt, dass “e” der bei weitemhäufigste Buchstabe im Deutschen ist, dass dreibuchstabigeWörter mit einem “e” in der Mitte im allgemeinen Artikel sind(der, den, dem, . . . ), usw.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 20


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungEine solche Entschlüsselung ist sehr schön in der Kurzgeschichte“The Gold Bug” (dt. “Der Goldkäfer”) von Edgar Allan Poebeschrieben.In Englisch unter:http://etext.lib.virginia.edu/toc/modeng/public/PoeGold.htmlIn Deutsch unter:http://www.haus-freiheit.de/Poekrimi/goldkaefer.htmlBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 21


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungHäufigkeit der Buchstaben im Deutschen:Platz Buchstabe Häufigkeit Platz Buchstabe Häufigkeit1. E 17,40 % 15. O 02,51 %2. N 09,78 % 16. B 01,89 %3. I 07,55 % 17. W 01,89 %4. S 07,27 % 18. F 01,66 %5. R 07,00 % 19. K 01,21 %6. A 06,51 % 20. Z 01,13 %7. T 06,15 % 21. P 00,79 %8. D 05,08 % 22. V 00,67 %9. H 04,76 % 23. ß 00,31 %10. U 04,35 % 24. J 00,27 %11. L 03,44 % 25. Y 00,04 %12. C 03,06 % 26. X 00,03 %13. G 03,01 % 27. Q 00,02 %14. M 02,53 %Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 22


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: EntschlüsselungBemerkungen:Ein gutes Verschlüsselungsverfahren muss nicht nur sicherstellen,dass es Fälle gibt, in denen ein Text nicht entschlüsselt werdenkann.Es muss darüber hinaus garantieren, dassdas Entschlüsseln eines Textes immer schwer istund das es auch nicht möglich ist, den Ursprungstext miteiner bestimmten Wahrscheinlichkeit zu ermitteln.Dem Entschlüssler stehen randomisierte Verfahren zur Verfügung,die Wahrscheinlichkeitsverteilungen ausnutzen können. EinKryptosystem muss solchen Angriffen standhalten! Um die Sicherheit eines Kryptosystems zu analysieren, benötigtman Wahrscheinlichkeitsrechnung.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 23


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: SchlüsselaustauschEine weitere Fallstudie: SchlüsselaustauschAngenommen, wir haben ein hinreichend sicheres Kryptosystem.Zwei Partner können sicher miteinander kommunizieren, wenn sieeinen gemeinsamen geheimen Schlüssel vereinbart haben.Wir betrachten nun ein offenes System mit n Teilnehmern:Wieviele Schlüssel müssen ausgetauscht werden, damit jeder mitjedem sicher kommunizieren kann?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 24


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: SchlüsselaustauschAntwort: es müssen ( )n2 =n(n−1)2Schlüssel ausgetauscht werden!Das ist ein großer Verwaltungsaufwand, selbst wenn man einezentrale Stelle zur Schlüsselverteilung hat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 25


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: SchlüsselaustauschLösung des Schlüsselaustausch-Problems:Man verwendet sogenannte asymmetrischeVerschlüsselungsverfahren. Dabei gibt es Schlüsselpaare bestehendauseinem öffentlichen Schlüssel, der nur zur Verschlüsselung,jedoch nicht zur Entschlüsselung verwendet werden kannund einem privaten Schlüssel, der zum Entschlüsseln dient.Jeder Teilnehmer erzeugt sein eigenes Schlüsselpaar und gibt nurden öffentlichen Schlüssel bekannt. Demnach werden nur nSchlüsselpaare benötigt. Außerdem können die öffentlichenSchlüssel ohne Bedenken über das Netz verschickt werden, ohnedass die Kommunikationspartner sich persönlich treffen müssen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 26


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: SchlüsselaustauschAnalogie:Die Geheimnisse werden in Kisten verschickt, die mit einemSchloss verschlossen werden können.Jeder Partner hat seinen eigenen (privaten) Schlüssel und eineunbegrenzte Anzahl dazu passender Schlösser. Die Schlösserentsprechen den öffentlichen Schlüsseln.Die Schlösser können beliebig an die Kommunikationspartnerverteilt werden und dienen dazu, die Kisten vor demVersenden zu verschließen.Das ist System ist sicher, wenn man durch den Besitz einesSchlosses nicht herausfinden kann, wie der dazugehörigeSchlüssel aussieht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 27


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: SchlüsselaustauschVerschlüsselungsverfahren, die auf dem Prinzip von privaten undöffentlichen Schlüsseln beruhen, nennt man asymmetrisch.Bei klassischen symmetrischen Verfahren teilen sich jeweils zweiPartner einen Schlüssel. In der Analogie bedeutet das, dass diebeiden Kommunikationspartner jeweils eine Kopie desselbenSchlüssels haben. Die Kopien müssen jedoch zunächstausgetauscht werden!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 28


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleEine wichtiges (Teil-)Problem bei Protokollen ist es, einenNachweis zu führen, dass der entsprechendeKommunikationspartner auch derjenige ist, für den er sich ausgibt.Die Führung dieses Nachweises nennt man Authentifizierung.Szenario: es gibt zwei Kommunikationspartner Alice und Bob.Außerdem gibt es den bösartigen Eindringling Eve, die alleNachrichten abfangen kann und neue Nachrichten produzierenkann. Sie kann jedoch keine Nachrichten entschlüsseln, wenn sieden passenden Schlüssel nicht besitzt. Eve möchte sich Alicegegenüber als Bob ausgeben (und sie dazu überreden, ihr1.000 EUR zu überweisen . . . )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 29


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleAngenommen, die Parteien benutzen eine Variante desNeedham-Schroeder-Protokolls.Dabei wird symmetrische Verschlüsselung eingesetzt und derSchlüsselaustausch findet über einen Server statt. (Es gibt aucheine asymmetrische Variante.)Das Protokoll benutzt sogenannte Nonces:Nonce (number used once)Zufällige Zahlen oder Bit-Kombinationen, die nur einmalverwendet werden und die garantieren sollen, dass eine Nachrichtfrisch und neu erzeugt ist. Sie sollen verhindern, dass eine alteNachricht als Replay geschickt wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 30


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleKonventionen:Ein symmetrischer Schlüssel der Form K AB wird für dieVerschlüsselung von Nachrichten zwischen A und B verwendet.Mit {M} K bezeichnen wir eine Nachricht M, die mit dem SchlüsselK verschlüsselt ist. Nur derjenige, der K besitzt, kann dieNachricht M lesen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 31


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleNeedham-Schroeder-Protokoll (fehlerhaft)1 A → S: A, B, N A2 S → A: {N A , K AB , {K AB , A} KBS } KAS3 A → B: {K AB , A} KBS4 B → A: {N B } KAB5 A → B: {N B − 1} KABBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 32


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleGraphische Darstellung:S2. {N A , K AB , {K AB , A} KBS } KAS1. A, B, N A3. {K AB , A} KBSA4. {N B } KABB5. {N B − 1} KABBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 33


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleErläuterung der einzelnen Schritte:1. A → S: A, B, N AAlice fordert beim (vertrauenswürdigen) Server einenSitzungsschlüssel für die Kommunikation mit Bob an. Sie schickteinen Nonce N A mit, um sicherzugehen, dass die Antwort sichwirklich auf ihre Anforderung bezieht. Diese Nachricht istunverschlüsselt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 34


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-Protokolle2. S → A: {N A , K AB , {K AB , A} KBS } KASDer Server schickt den Sitzungsschlüssel K AB an Alice. Dieser wirdmit Hilfe von K AS (dem gemeinsamen Schlüssel von Alice und demServer) verschlüsselt. Der Server fügt auch den Nonce N A hinzu,um Alice gegenüber zu beweisen, dass die Nachricht die Antwortauf Alice’ Anfrage war.Des weiteren wird eine für Bob bestimmte Nachricht mitgeschickt:{K AB , A} KBS . Damit wird Bob mitgeteilt, wie der Sitzungsschlüssellautet und wer (A = Alice) mit ihm kommunizieren will.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 35


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-Protokolle3. A → B: {K AB , A} KBSAlice entschlüsselt die Nachricht des Servers und schickt dieenthaltene Nachricht {K AB , A} KBS an Bob weiter. Sie selbst kannmit diesem Teil der Nachricht nichts anfangen, nur Bob kann sieentschlüsseln.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 36


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-Protokolle4. B → A: {N B } KABBob entschlüsselt die erhaltene Nachricht und stellt fest, dass Alicemit ihm kommunizieren möchte. Außerdem erhält er dadurch denSitzungsschlüssel K AB . Da Bob dem Server vertraut, kann er davonausgehen, dass der Sitzungsschlüssel K AB ansonsten nur Alicemitgeteilt wurde.Er möchte jetzt jedoch noch testen, ob seinKommunikationspartner tatsächlich Alice ist. Dazu generiert ereine “Testnachricht”, die den Nonce N B enthält und mit K ABverschlüsselt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 37


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-Protokolle5. A → B: {N B − 1} KABAlice weist sich Bob gegenüber aus, indem sie die Nachrichtentschlüsselt und den Nonce um eins dekrementiert. Damit kannBob feststellen, dass sein Gegenüber den entsprechenden Schlüsselbesitzt und daher Alice ist.Leider ist das Protokoll so fehlerhaft und kann von Eve angegriffenwerden. Warum?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 38


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleSzenario: Alice möchte eine Verbindung mit Bob aufbauen. Evehört mit und fängt geeignete Nachrichten ab bzw. modifiziert sie.Damit gelingt es ihr, sich Alice gegenüber als Bob auszugeben.Angriff1 A → S: A, B, N AE ersetzt diese Nachricht durch: A, E, N A2 S → A: {N A , K AE , {K AE , A} KES } KAS3 A → B: {K AE , A} KESEve fängt diese Nachricht ab und erhält damit denSitzungsschlüssel K AE .4 E → A: {N B } KAE5 A → B: {N B − 1} KAEEve fängt auch diese Nachricht ab. Alice ist jetzt überzeugtmit Bob zu kommunizieren, spricht aber mit Eve!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 39


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleDas Problem kann unter anderem dadurch gelöst werden, indemder Server in die zweite Nachricht den Namen desKommunikationspartners (B = Bob) einfügt:Needham-Schroeder-Protokoll1 A → S: A, B, N A2 S → A: {N A , B, K AB , {K AB , A} KBS } KAS3 A → B: {K AB , A} KBS4 B → A: {N B } KAB5 A → B: {N B − 1} KABDamit erkennt Alice, wenn sie die Nachricht{N A , E, K AE , {K AE , A} KES } KAS erhält, dass dies die falscheNachricht sein muss.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 40


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleDie fehlerhafte Variante des Needham-Schroeder-Protokolls, wiewir sie betrachtet haben, wurde so nie benutzt.Im Netzwerkauthentifizierungsprotokoll Kerberos wurde jedoch dasNeedham-Schroeder-Protokoll mit asymmetrischer Verschlüsselungverwendet, das einen ähnlichen Fehler enthielt. (Die Variante mitasymmetrischer Verschlüsselung ist etwas komplizierter, daherbetrachten wir sie im Moment nicht.)Dieser Fehler wurde erst im Jahr 1995 – 17 Jahre nach derEntwicklung des Protokolls – entdeckt!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 41


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: Authentifizierungs-ProtokolleEin anderes Problem besteht darin, dass Eve die dritte Nachrichtspäter wieder einspielen kann. Falls Eve bis dahin in den Besitz vonK AB gekommen ist, kann sie sich diesmal für Alice ausgeben.Lösung: Zeitstempel in der dritten NachrichtSolche Angriffe nennt man man-in-the-middle attacks.Ähnliche Probleme gibt es auch bei der sogenannten SMBreflection attack und bei vielen anderen bekannten Angriffen aufSicherheitsprotokolle. (SMB = Server Message Block: Protokollzum Sharing von Dateien, Druckern, etc. in einem Netwerk; wirdvor allem unter Windows benutzt).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 42


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: InformationssicherheitMit der zunehmenden Vernetzung von Computern wird dieInformationssicherheit immer wichtiger. Daten müssen gegenüberDritten, d.h., vor möglichen Angreifern geschützt werden.Im Englischen: security (im Gegensatz zum allgemeineren Begriffsafety, der sich auf die Abwesenheit von Fehlern oder den Schutzvor Fehlern in der Software bezieht).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 43


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: InformationssicherheitBei Informationssicherheit sind unter anderem folgende Aspekterelevant:VertraulichkeitDaten dürfen lediglich von autorisierten Benutzern gelesen bzw.modifiziert werden, dies gilt sowohl beim Zugriff auf gespeicherteDaten wie auch während der Datenübertragung.IntegritätDaten dürfen nicht unbemerkt verändert werden, bzw. es müssenalle Änderungen nachvollziehbar sein.Authentizität/AuthentifizierungEchtheit und Glaubwürdigkeit einer Person oder eines Dienstesmüssen überprüfbar sein.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 44


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: InformationssicherheitZurechenbarkeit (engl. accountability)Eine durchgeführte Handlung kann einem Kommunikationspartnereindeutig zugeordnet werden.Verbindlichkeit/Nichtabstreitbarkeit (engl. non-repudiation)Verbindlichkeit erfordert, dass kein unzulässiges Abstreitendurchgeführter Handlungen möglich ist. Sie ist unter anderemwichtig beim elektronischen Abschluss von Verträgen und kanndurch digitale Signaturen erreicht werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 45


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenMotivation: InformationssicherheitEinige der oben genannte Ziele kann man durch den Einsatz vonVerschlüsselungsverfahren erreichen.Wie wir am Beispiel des Needham-Schroeder-Protokolls gesehenhaben, ist es aber auch sehr wichtig, dass nicht nur diekryptographischen Verfahren, sondern auch die eingesetztenProtokolle korrekt und nicht angreifbar sind.In beiden Fällen ist es wichtig zu definieren, was es überhauptbedeutet, ein Verschlüsselungsverfahren oder Protokoll erfolgreichanzugreifen und zu analysieren, dass die eingesetzten Verfahrenkorrekt sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 46


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInhalt der VorlesungKyptographieGrundlagen der KryptographieSpezielle Verschlüsselungsverfahren (historischeVerschlüsselungsverfahren, One-Time-Pad, BlockchiffreDES/AES, RSA)Bedingungen an die Sicherheit von Kryptosystemen(randomisierte Komplexitätsklassen, Einwegfunktionen,Falltür-Funktionen)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 47


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInhalt der VorlesungKyptographische ProtokolleDigitale UnterschriftenZero-Knowledge-Proofs: Wie überzeuge ich meinen Partnerdavon, dass ich ein Geheimnis kenne, ohne das Geheimnis zuverraten?Secure Multi-Party Computations: Gemeinsame Berechnungeines Ergebnisses durch mehrere Teilnehmer, ohne dass dieeinzelnen Parameter bekanntgegeben werden müssen.Verifikation von kyptographischen ProtokollenEindringlingsmodell nach Dolev-YaoSicherheitslücken in kryptographischen ProtokollenVerifikation kryptographischer Protokolle (mitProzesskalkülen, Resolution, Model-Checking)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 48


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVer- und EntschlüsselungWir beschreiben jetzt formal, was es bedeutet, eine Nachricht zuverschlüsseln und zu entschlüsseln.Komponenten eines Kryptosystems (Definition)M: eine Menge von möglichen NachrichtenCM: eine Menge von verschlüsselten NachrichtenK e : eine Menge von Schlüsseln, die zum Verschlüsselnverwendet werdenK d : eine Menge von Schlüsseln, die zum Entschlüsselnverwendet werdenK ⊆ K e × K d : eine Menge von gültigen SchlüsselpaarenEine Verschlüsselungsfunktion E : M × K e → CMEine Entschlüsselungsfunktion D : CM × K d → MBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 49


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üsselungAsymmetrisches KryptosystemBei einem asymmetrischen Kryptosystem gilt für ein (e, d) ∈ Knormalerweise e ≠ d. D.h., es werden verschiedene Schlüssel zumVer- und Entschlüsseln benutzt.Wenn Alice eine Nachricht an Bob schickt, dann reicht es aus,wenn Alice e kennt. Dieser Schlüssel wird auch der öffentlicheSchlüssel von Bob genannt. Daneben kennt Bob noch seinenprivaten Schlüssel d.e(e, d)AliceBobBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 52


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üsselungsverfahrenVigenère-VerschlüsselungBei der Vigenère-Verschlüsselung (nach Blaise de Vigenère, 16.Jhdt.) wird ein Schlüssel e = e 0 . . . e m−1 ∈ A ∗ über dem Alphabetgegeben. Eine Abbildung z : A → N 0 ordnet jedem Buchstabeneinen Zahlenwert zu (z(A) = 0, . . . , z(Z) = 25).Dann werden die Buchstaben des zu verschlüsselnden Textesm = m 0 . . . m n ∈ A ∗ der Reihe nach verschlüsselt, indem derZahlenwert des jeweils nächsten Buchstabens des Schlüsselsaddiert und und das Ergebnis modulo 26 genommen wird.Insbesondere gilt für den verschlüsselten Text c = c 0 . . . c n ∈ A ∗ ,dassc i = z −1 ((z(m i ) + z(e i mod m )) mod 26)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 56


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 ProtokollenWahrscheinlichkeitsrechnungDas Würfeln einer 1 oder 6 bezeichnet man als(zusammengesetztes) Ereignis, im Unterschied zuElementarereignissen.Ereignis, Wahrscheinlichkeit eines Ereignisses (Definition)Wir betrachten einen Wahrscheinlichkeitsraum, bestehend aus Ωund P : Ω → R. Eine Menge E ⊆ Ω heißt Ereignis. DieWahrscheinlichkeit des Ereignisses E wird folgendermaßenberechnet:P(E) = ∑ x∈EP(x)Beispiel: Ereignis E = {1, 6} mitP(E) = P({1, 6}) = P(1) + P(6) = 1 6 + 1 6 = 1 3Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 63


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 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ü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 definierenDie Funktion dexp liegt in FP.dexp(p, g, x) = (p, g, g x mod p)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


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenKryptographische Protokolle: MotivationFalls wir in Cryptomania leben, gibt es Falltürfunktionen undasymmetrische Verschlüsselung. Damit kann man zahlreicheinteressante kryptographische Protokolle gewinnen.Digitale UnterschriftenAuthentifizierungs- und Identifizierungs-ProtokolleZero-Knowledge-ProtokolleMünzwurf über das TelefonSecure Multi-Party ComputationsWir werden uns im folgenden einige davon genauer ansehen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 207


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDigitale UnterschriftenEin asymmetrisches Kryptosystem, das kommutativ ist, kann auchfür digitale Unterschriften verwendet werden.Kommutatives, asymmetrisches KryptosystemEin asymmetrisches Kryptosystem heißt kommutativ, fallsM = CM und folgende Bedingung für die VerschlüsselungsfunktionE : M × K e → M und die EntschlüsselungsfunktionD : M × K d → M gilt:D(E(m, e), d) = E(D(m, d), e)für jedes m ∈ M und jedes Schlüsselpaar (e, d) ∈ K.Beispiel: RSA ist kommutativ, denn es gilt:D(E(m, (e, n)), (d, n)) = D(m e mod n, (d, n)) = (m e ) d mod n= (m d ) e mod n = E(m d mod n, (e, n)) = E(D(m, (d, n)), (e, n))Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 208


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDigitale UnterschriftenDigitale UnterschriftAlice, die eine Nachricht m an Bob schicken will,“entschlüsselt” diese mit ihrem privaten Schlüssel d A , erhälts = D(m, d A ) und schickt (m, s) an Bob.Bob “verschlüsselt” s mit Hilfe von Alice’ öffentlichemSchlüssel e A und überprüft, ob E(s, e A ) = m. Falls ja, soakzeptiert er die Unterschrift.Aufgrund der Kommutativität des Kryptosystems ergibt sichaus einer korrekten Signatur wieder die ursprünglicheNachricht.Nur Alice kennt d A und sie hat durch die Erzeugung von snachgewiesen, dass sie d A besitzt. Denn ohne Kenntnis vond A ist die Entschlüsselung zu aufwändig (unter der Annahme,dass E eine Falltürfunktion ist).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 209


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDigitale UnterschriftenWeitere Bemerkungen:Wenn ein Kryptosystem auch zum Signieren verwendet wird,so ist relativ leicht ein Chosen-Ciphertext-Angriff auf dasKryptosystem durchführbar: man bringt den Teilnehmer dazu,den gewählten Ciphertext zu signieren.In der Praxis wird nicht die gesamte Nachricht, sondern einHashwert, der aus der Nachricht gebildet wird, “entschlüsselt”und als Signatur mitgeschickt.Allerdings muss dann eine Hashfunktion gewählt werden, sodass es schwierig ist, zwei Nachrichten mit demselbenHashwert zu finden (Kollision). In diesem Fall könnte derAngreifer Alice eine Nachricht unterschreiben lassen, aber dieandere mit dieser Signatur verschicken.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 210


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenIdentifizierung und AuthentifizierungIdentifizierungs- und Authentifizierungsverfahren dienen dazu, dassTeilnehmer in einem Netzwerk gegenüber anderen eindeutig ihreIdentität nachweisen können.Dies geschieht zumeist dadurch, dass sie nachweisen, einGeheimnis zu kennen, das nur diesem bestimmten Teilnehmerbekannt sein sollte.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 211


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenIdentifizierung und AuthentifizierungEin typisches Identifizierungsverfahren ist das folgende: dabeikommunizieren Victor (“Verifier”) und Peggy (“Prover”). Peggymöchte sich gegenüber Victor identifizieren.Challenge-Response-Schema mit öffentlichem SchlüsselVictor wählt eine Zufallszahl (einen Nonce) r und berechnetden dazugehörigen Hashwert x = h(r). Er verwendet denöffentlichen Schlüssel e P von Peggy, berechnet den Challengec = E(r, e P ) und schickt c, x an Peggy (gemeinsam mit seinerIdentität).Peggy beschließt, sich Victor gegenüber zu identifizieren. Sieberechnet r = D(c, d P ) und überprüft, ob x = h(r). Dannschickt sie r an Victor.Victor akzeptiert den Beweis von Peggys Identität, falls sieden korrekten Wert r zurückliefert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 212


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenIdentifizierung und AuthentifizierungBemerkungen:Durch die Entschlüsselung signiert Peggy den Challenge c. Sieweist dadurch – wie bei einer Signatur – nach, dass sie ihrenprivaten Schlüssel kennt.Eine Zufallszahl r (statt einer festen Zahl) wird verwendet,damit kein Replay-Angriff durchgeführt werden kann.Durch den Hashwert x weiß Peggy, dass Victor den Wert rbereits kennt. Sie gibt ihm damit keine zusätzlichenInformationen und liefert ihm dadurch keine bisherunbekannte Signatur.Dieses Schema hat Vorteile gegenüber einerPasswort-basierten Identifizierung. Es muss kein Passwortausgetauscht werden und auch wenn ein Angreifer dieKommunikation abhört, kann er sich anschließend nicht alsPeggy ausgeben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 213


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenIdentifizierung und AuthentifizierungWir wollen garantieren, dass Peggy außer ihrer Identität Victorgegenüber keine weiteren Informationen verrät (beispielsweise ihrenöffentlichen Schlüssel).Insbesondere sind wir an Protokollen interessiert, bei denen PeggyVictor davon überzeugen kann, ein Geheimnis zu kennen, ohnedieses Geheimnis selbst zu verraten. Solche Protokolle sind unterdem Namen Zero-Knowledge-Protokolle bekannt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 214


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeWir beschreiben zunächst interaktive Beweissysteme, bei denennoch nicht unbedingt verlangt wird, dass keine Informationenpreisgegeben werden.Es gibt eine Eingabe x ∈ Σ ∗ , die beide Partner kennen. Victor undPeggy senden sich wechselseitig Nachrichten und stellen Anfragen.Victor entscheidet zuletzt, ob x akzeptiert wird.Man macht dabei folgende Beschränkungen:Victor ist eine polynomzeitbeschränkte probabilistischeTuringmaschine.Peggy hat unbeschränkte Resourcen, insbesondere darf sienicht-deterministisch arbeiten, beliebig viel Zeit verbrauchenund Zufallsbits verwenden.Es werden nur polynomial viele Nachrichten ausgetauscht, dieauch nur polynomiale Länge haben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 215


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeWir betrachten ein interaktives Beweissystem fürNicht-Graphisomorphie, ein Problem, von dem nicht bekannt ist,ob es in NP oder in BPP liegt.NON-GRAPHISOEingabe: ein Paar (G 1 , G 2 ), bestehend aus zwei ungerichtetenGraphen G 1 = (V 1 , E 1 ), G 2 = (V 2 , E 2 ). Dabei giltV 1 = V 2 = {1, . . . , n} und eine Kante e ∈ E i ist einezweielementige Knotenmenge.Ausgabe: Sind die Graphen G 1 , G 2 nicht isomorph? Das heißt,es gibt keine Permutation π : V 1 → V 2 , so dass {v 1 , v 2 } ∈ E 1genau dann, wenn {π(v 1 ), π(v 2 )} ∈ E 2 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 216


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeBeispiel: wir betrachten folgende zwei Graphen G 1 , G 2211 23 43 4G 1 und G 2 sind isomorph, d.h., (G 1 , G 2 ) ∉ NON-GRAPHISO.Eine Permutation, die die Isomorphie nachweist istπ : {1, 2, 3, 4} → {1, 2, 3, 4} mit π(1) = 2, π(2) = 1, π(3) = 4,π(4) = 3.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 217


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeDas interaktive Beweissystem für NON-GRAPHISO funktioniertwie folgt: seien G 1 , G 2 zwei Graphen, beide mit Knotenmenge{1, . . . , n}.1 Victor wählt eine Zufallszahl i ∈ {1, 2} und eine zufälligePermutation π : {1, . . . , n} → {1, . . . , n}.2 Victor benennt die Knoten von G i mit Hilfe von π um underhält dadurch H = π(G i ). Er schickt H an Peggy und fragtnach einem Index i, so dass G i und H isomorph sind.3 Peggy antwortet mit einem Index j.4 Victor akzeptiert, falls i = j.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 218


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeFalls G 1 und G 2 nicht isomorph sind, so kann Peggy – mit ihrenunbeschränkten Resourcen – immer herausfinden, ob H isomorphzu G 1 oder zu G 2 ist und eine korrekte Antwort schicken.Falls die Graphen isomorph sind, so kann Peggy nur raten und kanndaher nur in der Hälfte der Fälle eine korrekte Antwort schicken.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 219


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeInteraktives Beweissystem für eine SpracheEine Sprache L hat ein polynomiales interaktives Beweissystem,wenn es ein – wie oben beschriebenes – interaktives Beweissystemgibt, das folgende Bedingung erfüllt: es gibt einen Verifier V undeinen Prover P, wobei folgendes gilt.falls x ∈ L liegt, dann ist die Wahrscheinlichkeit, dass V , Pgemeinsam das Wort x akzeptieren, größer gleich 3 4 .falls x ∉ L liegt, dann ist für jeden (potentiell bösartigen)Prover P ′ die Wahrscheinlichkeit, dass V , P ′ gemeinsam dasWort x akzeptieren, kleiner gleich 1 4 .IP ist die Menge aller Sprachen, die ein polynomiales interaktivesBeweissystem haben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 220


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeBemerkungen:Intuitiv ist P der gutartige Prover, der in der Lage sein muss,den Verifier V mit hoher Wahrscheinlichkeit zu überzeugen.Ein bösartiger Prover P ′ – der V evtl. täuschen will – hat nureine niedrige Wahrscheinlichkeit, mit der er V überzeugenkann (falls das Wort nicht in der Sprache liegt).Wie bei den probabilistischen Komplexitätsklassen kann mandie Wahrscheinlichkeit für Akzeptanz bzw. fehlerhafteAkzeptanz durch mehrfache Ausführung des Protokollserhöhen bzw. vermindern.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 221


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeNON-GRAPHISO hat ein polynomiales interaktives Beweissystem,d.h., NON-GRAPHISO ∈ IP:Falls (G 1 , G 2 ) ∈ NON-GRAPHISO, d.h., G 1 , G 2 sind nichtisomorph, so antwortet Peggy immer richtig und Victorakzeptiert mit Wahrscheinlichkeit 1.Falls (G 1 , G 2 ) ∉ NON-GRAPHISO, d.h., G 1 , G 2 sindisomorph, so hat Peggy nur eine Wahrscheinlichkeit von 1 2Victor zu Akzeptanz zu bewegen.Um die Akzeptanzwahrscheinlichkeit im Fehlerfall auf kleiner gleich14zu drücken, ist es erforderlich, das Beweissystem zweimalauszuführen, und auf Nicht-Isomorphie zu entscheiden, wennPeggy beide Male den korrekten Index schickt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 222


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeAnalogie: BiertesterIm Finkenkrug gibt es zwei Sorten von Bier: Alt und Kölsch. Peggybehauptet, mit verbundenen Augen zwischen beiden unterscheidenzu können.Ihr werden die Augen verbunden und sie erhält in einer Testreihe inzufälliger Reihenfolge mit Alt und Kölsch gefüllte Gläser. Der Testgilt als bestanden, wenn Peggy alle Gläser korrekt erkennt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 223


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeMan weiß folgendes über die Beziehung zwischen NP und IP:NP ⊆ IPDie Komplexitätsklasse NP ist eine Teilmenge von IP.Beweis: jedes Wort einer NP-Sprache besitzt ein Zertifikatpolynomieller Länge, das in Polynomzeit verifiziert werden kann.(Ein Zertifikat, das immer funktioniert, ist die Angabe einesakzeptierenden Berechnungspfades in einer gegebenennicht-deterministischen Turingmaschine.)Peggy kann dieses Zertifikat berechnen und an Victor schicken,wobei Victor das Zertifikat überprüft. Die Wahrscheinlichkeiten fürkorrekte Akzeptanz und fehlerhafte Akzeptanz sind sogar gleich 1bzw. 0.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 224


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeBPP ⊆ IPDie Komplexitätsklasse BPP ist eine Teilmenge von IP.Beweis: Für ein Problem in BPP kann der Verifier selbst – ohnejede Interaktion mit dem Prover – die Antwort mit der gefordertenWahrscheinlichkeit berechnen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 225


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenInteraktive BeweissystemeVon Adi Shamir stammt folgendes wichtige Resultat zu IP:IP = PSPACEDie Sprachen, die ein polynomiales interaktives Beweissystemhaben, sind genau die Sprachen, die von (deterministischen)Turingmaschinen mit polynomialer Platzbeschränkung akzeptiertwerden.Es existieren Sprachen in IP, von denen nicht bekannt ist, ob sie inNP liegen (beispielsweise NON-GRAPHISO).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 226


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleWir wollen nun präzisieren, was es bedeutet, dass durch eininteraktives Beweissystem kein Wissen preisgegeben wird.Perfekter Zero-Knowledge-BeweisEin Ablauf eines interaktiven Beweissystems P, V auf einerEingabe x erzeugt eine Folge von Nachrichten.Ein solches interaktives Beweissystem ist ein perfektesZero-Knowledge-Beweissystem für L, wenn es für jeden –möglicherweise bösartigen Verifier V ′ – eine probabilistischepolynomzeitbeschränkte Turingmaschine M gibt, die bei einerEingabe x ∈ Ldieselbe Menge von Protokollabläufen wie V ′ , P erzeugenkann,wobei die Protokollabläufe jeweils mit derselbenWahrscheinlichkeit wie in einem echten Beweis von V ′ , Pvorkommen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 227


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleBemerkungen:Die Turingmaschine M wird auch als Fälscher (engl. forger)bezeichnet.Ein Beobachter kann die Menge von Abläufen von V ′ , P nichtvon den von M erzeugten Abläufen unterscheiden.Es muss für jeden Verifier V ′ gefordert werden, dass dieProtokollabläufe von V ′ , P simuliert werden können, denn esmuss sichergestellt werden, dass nicht nur der gutartigeVerifier V , der sich an das Protokoll hält, sondern auch einbösartiger Verifier nicht in den Besitz von zusätzlichemWissen kommen kann.Eine andere Definition (Computational Zero-Knowledge)fordert nur, dass die Wahrscheinlichkeitsverteilungen für dieechten und gefälschten Protokollabläufe nicht in Polynomzeitunterschieden werden können.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 228


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleZero-Knowledge-Beweissystem für NON-GRAPHISO:Das vorgestellte interaktive Beweissystem für NON-GRAPHISO istZero-Knowledge, denn eine polynomzeitbeschränkteTuringmaschine M kann bei Eingabe von nicht-isomorphenGraphen G 1 , G 2 die Interaktion dadurch simulieren, dass sie G igeeignet permutiert und anschließend selbst die Antwort i schickt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 229


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleAnalogie: BiertesterWenn Victor, der die Biersorten auswählt, und Peggy miteinanderkooperieren, dann können sie eine Testreihe durchführen, bei derPeggy die Biersorten immer richtig benennt, auch wenn sie sieeigentlich nicht unterscheiden kann.Dazu muss vorab die Reihenfolge vereinbart werden oder Victorund Peggy einigen sich auf ein geheimes Zeichen.Ein Beobachter kann aus einem Ablauf kein zusätzliches Wissengewinnen, denn der Ablauf könnte auch “simuliert” sein.Insbesondere weiß er nichts über die echten Fähigkeiten von Peggy.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 230


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleWir betrachten nun einen weiteren Zero-Knowledge-Beweis fürGRAPHISO, das Komplement von NON-GRAPHISO. VonGRAPHISO ist bekannt, dass es in NP liegt, aber nicht ob esNP-vollständig ist.1 Peggy wählt eine zufällige Permutationπ : {1, . . . , n} → {1, . . . , n}. Sie wendet π auf G 1 an underhält H = π(G 1 ). Dann schickt sie H an Victor.2 Victor wählt eine Zufallszahl i ∈ {1, 2} und schickt diese anPeggy.3 Peggy bestimmt eine weitere Permutation σ mit H = σ(G i )und schickt σ an Victor.4 Victor akzeptiert, falls σ(G i ) = H.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 231


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleAus ähnlichen Gründen wie zuvor ist dieses Protokoll eininteraktives Beweisprotokoll. Falls die Graphen G 1 , G 2 isomorphsind, so akzeptieren Victor und Peggy gemeinsam mitWahrscheinlichkeit 1, denn Peggy findet immer eine entsprechendePermutation σ.Falls die Graphen nicht isomorph sind, dann muss Peggy in derHälfte der Fälle mit einer falschen Permutation σ antworten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 232


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleDas Protokoll erfüllt außerdem die Zero-Knowledge-Bedingungen,denn ein Ablauf kann folgendermaßen von M simuliert werden:gegeben seien zwei isomorphe Graphen G 1 , G 2 , M kennt jedochnicht den dazugehörigen Isomorphismus.M wählt eine zufällige Permutation σ und einen Index i. Dannbestimmt sie H = σ(G i ).Die simulierten Nachrichten sind – der Reihe nach – H, i, σ.Ein Beobachter kann nicht feststellen, dass H nicht unbedingtdurch Permutation von G 1 gewonnen wurde.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 233


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleAuch im Falle eines bösartigen Verifiers kann jeder Ablauf durcheine probabilistische Turingmaschine M simuliert werden.Insbesondere folgt aus der Tatsache, dass es sich um einZero-Knowledge-Protokoll handelt, dass der Verifier nicht in denBesitz von Informationen kommen kann, die er nicht selbst inprobabilistischer Polynomzeit berechnen könnte.D.h., falls GRAPHISO nicht in BPP liegt (was nicht bekannt ist),dann gewinnt der Verifier aufgrund des Beweissystems keineInformationen über den Isomorphismus zwischen zwei gegebenenGraphen G 1 , G 2 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 234


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleAnalogie: Verschlossene TürIn einem Gebäude mit dem folgenden Grundriss gibt es eineverschlossene Tür. Peggy behauptet, dass sie weiß, wie diese Türgeöffnet werden kann. Sie will nachweisen, dass sie die Tür öffnenkann, will aber niemanden zeigen, wie das funktioniert.linkerKorridorXrechterKorridorTürBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 235


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleDer Test funktioniert folgendermaßen: sie betritt das Gebäude undgeht – ohne dass jemand dies beobachten kann – entweder in denlinken oder rechten Korridor. Anschließend stellt sich Victor – mitetwaigen Zeugen – auf den Punkt X. Er ruft anschließend entweder“links” oder “rechts” und Peggy muss auf diesem Korridor dasGebäude wieder verlassen. Dazu muss sie unter Umständen dieTüre durchqueren.Wieder können Peggy und Victor gemeinsam einen korrektenProtokollablauf simulieren, indem sie sich vorher über die Folgevon Links-/Rechts-Kommandos verständigen. Dieser Ablauf kannvon einem Beobachter nicht von einem korrekt ablaufenden Testunterschieden werden.Außerdem kann auch ein bösartiger Victor kein zusätzliches Wissenüber den Schließmechanismus der Tür erlangen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 236


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleJede Sprache L ∈ BPP hat trivialerweise einZero-Knowledge-Beweissystem. Eine solche Sprache benötigtkeinen “allmächtigen” Prover, sondern der Verifier kann alleBerechnungen selbst ausführen.Damit werden keine Nachrichten ausgetauscht und dasInteraktionsverhalten kann trivialerweise von einer weiterenMaschine M simuliert werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 237


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-ProtokolleFalls Einwegfunktionen existieren, so kann man zeigen, dass jedeSprache in NP (und sogar jede Sprache in IP!) einZero-Knowledge-Beweissystem hat (im Sinne von ComputationalZero-Knowledge).Wir werden uns dieses Resultat für NP genauer ansehen (unter derstärkeren Voraussetzung, dass bijektive Einwegfunktionenexistieren). Dafür benötigt man jedoch zunächst Hilfsprotokolle . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 238


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBit Commitment (Problemstellung)Bob will, dass Alice sich auf den Wert eines Bits b ∈ {0, 1}festlegt.Alice könnte jetzt ein Bit wählen und an Bob schicken. Siewill aber, dass Bob erst später von ihrer Wahl erfährt.Wie kann Bob erreichen, dass sich Alice jetzt auf ein Bitfestlegt und später – wenn sie zusätzliche Informationenbesitzt – nicht bezüglich ihrer Festlegung lügen kann?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 239


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentAnwendung:Alice und Bob wollen ein Zahlenratespiel spielen:Alice soll eine Zahl n ∈ {1, . . . , 100} wählen.Bob nennt eine Zahl m und Alice sagt, ob m < n, m = n oderm > n gilt.Bob rät so lange, bis er die korrekte Zahl gefunden hat. Er sollmöglichst wenige Schritte brauchen.Alice hätte einen Vorteil, wenn sie ihre Zahl während des Spielsändern kann. Von daher wäre es gut, wenn sie sich zu Beginn aufeine Zahl festlegen könnte, ohne dass Bob diese Zahl kennt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 240


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentVoraussetzungen:Eine bijektive Einwegfunktion f (eine sogenannteEinweg-Permutation).Ein Hardcore-Prädikat B ∈ FP zu f , so dass B(x) ∈ {0, 1}nur mit einer Wahrscheinlichkeit p ≤ 1 2 + ε (wobei εvernachlässigbar ist) in Polynomzeit vorhergesagt werdenkann, wenn f (x) bekannt ist.Sowohl f als auch B können in Polynomzeit berechnet werden.D.h., insbesondere kann B(x) einfach berechnet werden, wenn xbekannt ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 241


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentKandidaten für Hardcore-Prädikate:Bei der diskreten Exponentialfunktion: höchstwertiges BitBei der RSA-Falltürfunktion: niedrigstwertiges BitEin Funktion mit Hardcore-Prädikat ist zwangsläufig eineEinwegfunktion. Außerdem existieren Hardcore-Prädikate, fallsEinwegfunktionen existieren.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 242


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBit Commitment (Protokoll)Ein Einwegfunktion f und ein dazugehöriges Hardcore-Prädikat Bwerden zu Beginn des Protokolls festgelegt.Alice wählt ihr Bit b ∈ {0, 1}. Sie sucht ein x ∈ Σ ∗ mitB(x) = b und schickt C = f (x) (die Festlegung, engl.commitment) an Bob.Bob empfängt C, kann aus C allerdings keine Informationenüber b erlangen.Später kann Alice Bob gegenüber nachweisen, dass sie sichauf b festgelegt hat, indem sie x an Bob schickt.Bob überprüft dann, ob C = f (x) gilt und berechnet B(x).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 243


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBemerkungen:Es ist wichtig, dass f eine Einweg-Permutation ist. Ansonstenhat f (x) evtl. mehrere Urbilder, von denen sich Alice spätereines aussuchen kann.Die Festlegung C werden wir in Zukunft auch mit C(b)bezeichnet.Wie lang soll x gewählt werden? Eigentlich sollte die Sicherheit eines Protokolls in derLänge der Eingabe gemessen werden. Hier ist die Eingabe (einBit!) jedoch sehr kurz. Von daher nimmt man als Ersatz einenSicherheitsparameter als zusätzliche Eingabe. Dieser isteinfach eine Zeichenkette 1 k und in Bezug auf k muss dieErfolgswahrscheinlichkeit für den Angreifer vernachlässigbarsein.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 244


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentEin klassische “Anwendung” für Bit Commitment ist die folgende:Münzwurf über das TelefonAlice und Bob kommunizieren über das Telefon (bzw. Internet)und wollen gemeinsam eine Zufallszahl bestimmen. Sie vertraueneinander nicht und die Aufgabe soll daher nicht einer der beidenParteien überlassen werden.Die grundlegende Idee ist, dass beide ein Bit wählen und dasZufallsbit durch xor-Verknüpfung dieser Bits entsteht. Durch BitCommitment wird verhindert, dass einer der beiden Partner seingewähltes Bit im Nachhinein ändert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 245


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBemerkung:Gleichzeitiges Übertragen der Bits ist in diesem Berechnungsmodellnicht möglich.Auf der Idee der gleichzeitigen Übertragung beruht beispielsweisedas Spiel “Stein, Schere, Papier”, bei dem beide Teilnehmer mehroder weniger gleichzeitig ihre Wahl treffen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 246


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentMünzwurf über das Telefon (Protokoll)Alice wählt ein Bit a ∈ {0, 1} und schickt eine FestlegungC(a) an Bob.Bob kennt a nicht und wählt sein Bit b ∈ {0, 1}, welches eran Alice schickt.Alice weist die Wahl von a nach und gibt das Ergebnis a ⊕ bbekannt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 247


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBeispiel: wir betrachten als Einwegfunktion die diskreteExponentialfunktion und wählen die Primzahl p = 19 und denGenerator g = 3.In diesem Fall verwenden wir folgendes Hardcore-Prädikat{0 falls x ≤p−1most(x) =21 sonstBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 248


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenBit CommitmentBeispielablauf Münzwurf:Alice wählt zufällig das Bit a = 1 und wählt als x = 14 alsZeugen. Sie schickt f (x) = g x mod p = 3 14 mod 19 = 4 anBob.Bob empfängt f (x) = 4 kann daraus jedoch keine Schlüsseziehen. Er wählt zufällig das Bit b = 0 und schickt es an Alice.Alice ermittelt a ⊕ b = 1 und gibt das Ergebnis derMünzwurfes bekannt. Außerdem schickt sie x = 14 an Bob,damit dieser ihre Festlegung nachprüfen kann.Bemerkung: für reale Anwendungen ist p = 19 natürlich viel zuklein gewählt!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 249


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeWir betrachten nun ein Zero-Knowledge-Protokoll für ein alsNP-vollständig bekanntes Problem: Färbbarkeit von Graphenk-Färbbarkeit von Graphen (k-COL)Dabei ist k ∈ N 0 eine natürliche Zahl.Eingabe: Ein ungerichteter Graph G = (V , E).Ausgabe: Gibt es eine Zuordnung von k verschiedenen Farbenzu Knoten in V , so dass keine zwei benachbarten Knoten v 1 ,v 2 dieselbe Farbe haben?Für k ≥ 3 ist k-COL NP-vollständig.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 250


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeBeispiele:Graph ist 3-färbbar, aber nicht2-färbbarGraph ist 4-färbbar, aber nicht3-färbbarBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 251


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeComputational Zero-Knowledge-Beweissystem für 3-COLWir nehmen an, dass V = {v 1 , . . . , v n }.Peggy berechnet eine beliebige 3-Färbung c : V → {1, 2, 3}für G. (Insbesondere gilt c(v 1 ) ≠ c(v 2 ), falls {v 1 , v 2 } ∈ E.)Peggy schickt Festlegungen C(c(v 1 )), . . . , C(c(v n )) an Victor.Victor wählt eine zufällige Kante {u, w} ∈ E und schickt siean Peggy.Peggy weist gegenüber Victor nach, dass sie die Farben c(u),c(w) gewählt hat und dass c(u) ≠ c(w).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 252


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeDieses Beweissystem hat folgende Eigenschaften:Falls der Graph 3-färbbar ist, dann kann Peggy immer einekorrekte 3-Färbung wählen und Victor akzeptiert mitWahrscheinlichkeit 1.Falls der Graph nicht 3-färbbar ist, dann gibt es mindestenseine Kante {u, v} ∈ E, die “falsch” gefärbt ist, d.h.,c(u) = c(v). Victor hat also eine Wahrscheinlichkeit kleinergleich 1 − 1|E|, eine korrekt gefärbte Kante zu wählen.Um eine Wahrscheinlichkeit kleiner gleich 1 4zu erhalten, mussdas Protokoll entsprechend oft iteriert werden. Dabei istwichtig, dass Peggy jedes Mal eine neue Färbung wählt(beispielsweise durch Permutation einer früheren Färbung),ansonsten erhält Victor Wissen über die Färbungsfunktion.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 253


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeEs handelt sich um einen Zero-Knowledge-Beweis (im Sinne vonComputational Zero-Knowledge), denn der Fälscher kann dasProtokoll nicht exakt imitieren, wenn er keine 3-Färbung kennt. Erkann jedoch in einem Durchlauf:Eine beliebige Kante {u, w} wählen und dieser zwei zufälliggewählte Farben zuordnen. Alle anderen Knoten werden mit 1gefärbt (was mit großer Wahrscheinlichkeit eine ungültigeFärbung ergibt).Er kann nun die entsprechenden Festlegungen für die Farbenschicken, dann Victor {u, w} “wählen” lassen und dieentsprechende Wahl nachweisen.Ein Beobachter kann dieses Verhalten in Polynomzeit nicht voneinem echten Protokollablauf unterscheiden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 254


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeMit Hilfe von Reduktionen kann nun ein Zero-Knowledge-Beweisfür jedes NP-Problem A konstruiert werden.Sei also A in Polynomzeit auf 3-COL reduzierbar (A ≤ p 3-COL).Die dazugehörige Reduktionsfunktion bezeichnen wir mit g.Computational Zero-Knowledge-Beweissystem für APeggy und Victor bestimmen bei einer Eingabe x beide denGraphen G = g(x).Anschließend wird der Zero-Knowledge-Beweis für die3-Färbbarkeit von G durchgeführt.Die Antwort von Victor ist dann auch die Antwort auf dieFragen “x ∈ A?”.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 255


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeDie Standardreduktionsfolge eines NP-Problems A nach 3-COL ist:Direkte Reduktion auf SAT (Umwandlung dernicht-deterministischen Turingmaschine für A in eineaussagenlogische Formel)SAT ≤ p 3KNF-SAT3KNF-SAT ≤ p 3-COLMan kann zeigen, dass alle diese Reduktionen auch diedazugehörigen Zertifikate ineinander umwandeln. Die Zertifikatesind jeweils:Für A: erfolgreicher Berechnungspfad der TuringmaschineFür SAT und 3KNF-SAT: Modelle der FormelnFür 3-COL: Färbungsfunktion des GraphenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 256


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenZero-Knowledge-Protokolle für NP-vollständige ProblemeReduktionen die Zertifikate in Zertifikate überführen, nennt manauch Levin-Reduktionen.Die Existenz von Levin-Reduktionen heißt insbesondere, dass mandurch Reduktionen Zero-Knowledge-Beweise erhält, bei denenPeggy nicht nur nachweist, dass x ∈ A gilt, sondern auch zeigt,dass sie das dazugehörige Zertifikat kennt. Denn sie weist ja dieKenntnis des Zertifikats für 3-COL (die Färbungsfunktion) nach.Es gibt jedoch auch direktere Zero-Knowledge-Beweise fürNP-Probleme, die für praktische Anwendungen vermutlich bessergeeignet sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 257


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsWir beschäftigen uns jetzt mit Secure Multi-Party Computations:Alice und Bob berechnen gemeinsam eine zweistellige Funktionf : I 1 × I 2 → O 1 × O 2 ,zu der jeder genau einen Parameter kennt, ohne die Parameterselbst bekanntzugeben. Jeder erhält dabei einen privatenAusgabewert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 258


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsAnwendungen:Elektronische Wahlen: die einzelnen Teilnehmer wollen ihreStimme nicht öffentlich bekanntgeben. Es muss jedochtrotzdem das Ergebnis der Wahl bestimmt werden.Auktionen ohne vertrauenswürdigen Auktionator: kein Bietersoll erfahren, wie die Gebote der anderen Bieter lauten. Nurder Gewinner erfährt, dass er gewonnen hat und welchen Preiser zahlen muss.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 259


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsCarolin findet auf dem Speicher ein Bild.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 260


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsCarolin findet auf dem Speicher ein Bild.Sie will es an Alice oder Bob verkaufen.Alice: “Ich will das Bild haben.”Bob: “Ich will das Bild haben.”Alice: “Lass uns doch eine Auktion durchführen. Jeder von unsnennt ein Gebot. Derjenige von uns mit dem höheren Gebotbekommt das Bild und muss das Geld an Carolin zahlen.”Bob: “Wenn ich verliere, dann will ich aber nicht, dassirgendjemand mein Gebot erfährt. Das soll geheim bleiben.”Alice: “Kein Problem: Dann berechnen wir gemeinsam dasMaximum unserer Gebote, ohne die Gebote bekanntzugeben.”Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 260


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsAlice, Bob und Carolin beschließen, dass das Bild höchstens 3¿wert sein kann, die möglichen Gebote sollten also in der Menge{0¿, 1¿, 2¿, 3¿} liegen.Falls die Gebote binär codiert sind (a 1 a 0 für Alice, b 1 b 0 für Bob),so berechnet sich das Maximum m 1 m 0 durch folgendeaussagenlogische Formel:m 1 = a 1 ∨ b 1m 0 = (a 1 ∧ a 0 ) ∨ (b 1 ∧ b 0 ) ∨ (¬a 1 ∧ b 0 ) ∨ (a 0 ∧ ¬b 1 )Alice und Bob konstruieren einen Schaltkreis und werten ihngemeinsam aus.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 261


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsHilfsprotokoll: Oblivious Transfer = Unbewusster TransferOblivious TransferGemeinsame Berechnung der Projektions-Funktion:f : {0, 1} k × {1, . . . , k} → {∗} × {0, 1}f ((c 1 , . . . , c k ), i) = (∗, c i )Alice und Bob wollen diese Projektion gemeinsam berechnen, sodass:Alice kennt c 1 , . . . , c k und erfährt keine weiterenInformationen.Bob kennt zu Beginn des Protokolls i und am Ende nur iund c i .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 262


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOblivious TransferVoraussetzungen:Eine bijektive Falltürfunktion (trapdoor permutation) t, derenInverses t −1 nur dann effizient in Polynomzeit berechnetwerden kann, wenn man den privaten Schlüssel kennt. Derprivate Schlüssel befindet sich im Besitz von Alice.Ein Hardcore-Prädikat B zu t.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 263


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOblivious TransferProtokoll: Oblivious Transfer1 Alice bestimmt eine Falltürfunktion t mit Hardcore-PrädikatB und schickt (t, B) an Bob.2 Bob wählt zufällig z 1 , . . . , z k und schickt(z 1 , . . . , t(z i ), . . . , z k ).3 Alice erhält (y 1 , . . . , y k ) und schickt(c 1 ⊕ B(t −1 (y 1 )), . . . , c k ⊕ B(t −1 (y k ))).4 Bob empfängt (x 1 , . . . , x k ) und bestimmt x i ⊕ B(z i ).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 264


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOblivious TransferKorrektheitBob berechnet x i ⊕ B(z i ) = c i ⊕ B(t −1 (y i )) ⊕ B(z i ) =c i ⊕ B(t −1 (t(z i ))) ⊕ B(z i ) = c iSicherheitAlice kann z j und t(z j ) nicht unterscheiden und erhältdadurch keine Informationen.Bob kann aus c j ⊕ B(t −1 (z j )) (für j ≠ i) nicht B(t −1 (z j )) –und damit c j – bestimmen, da er nur t(t −1 (z j )) = z j , nichtaber t −1 (z j ) kennt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 265


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenOblivious TransferBemerkung:Das korrekte Verhalten von Bob muss aber erzwungen werden,ansonsten schickt er (t(z 1 ), . . . , t(z i ), . . . , t(z k )) statt(z 1 , . . . , t(z i ), . . . , z k ) und erhält dadurch alle Bits c 1 , . . . , c n .Dazu später mehr . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 266


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsWir beschreiben nun die sichere Auswertung eines Schaltkreises,für den die Teilnehmer jeweils eigene Eingabebits besitzen, die denanderen Teilnehmern unbekannt sind.Diese Methode stammt von Yao und ist unter dem Namen garbledcircuit oder scrambled circuit bekannt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 267


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsIdeeJede Verbindung zwischen Gattern wird verdopppelt.Für jede Belegung r einer Verbindung zwischen Gatternbekommen Alice und Bob Anteile a, b mit r = a ⊕ b.Ein Gatter mit k Eingängen und m Ausgängen wird durch ein“sicheres Gatter” mit 2k Eingängen und 2m Ausgängenersetzt.rr∧ri 1 i 0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 268


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsIdeeJede Verbindung zwischen Gattern wird verdopppelt.Für jede Belegung r einer Verbindung zwischen Gatternbekommen Alice und Bob Anteile a, b mit r = a ⊕ b.Ein Gatter mit k Eingängen und m Ausgängen wird durch ein“sicheres Gatter” mit 2k Eingängen und 2m Ausgängenersetzt.r = a ⊕ br = r a ⊕ r br babr aS(∧)b 0r = a ⊕ bi 1 = a 1 ⊕ b 1a 1 b 1 a 0i 0 = a 0 ⊕ b 0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 268


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsIdeeJede Verbindung zwischen Gattern wird verdopppelt.Für jede Belegung r einer Verbindung zwischen Gatternbekommen Alice und Bob Anteile a, b mit r = a ⊕ b.Ein Gatter mit k Eingängen und m Ausgängen wird durch ein“sicheres Gatter” mit 2k Eingängen und 2m Ausgängenersetzt.r = a ⊕ ba br = a ⊕ br = r a ⊕ r br a r bS(∧)a 1 b 1 a 0 b 0i 1 = a 1 ⊕ b 1 i 0 = a 0 ⊕ b 0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 268


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsVerteilung der Eingabe-Bits:Schaltkreisa 1 a 0 b 1 b 0 EingabebitsAliceBobBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 269


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsVerteilung der Eingabe-Bits:S(Schaltkreis)a 1 ⊕y 1 y 1 a 0 ⊕y 0 y 0 x 1 b 1 ⊕x 1 x 0 b 0 ⊕x 0a 1 a 0 b 1 b 0 EingabebitsAlice erzeugt Zufallsbits x 1 , x 0 und schickt sie an Bob. Bob erzeugtZufallsbits y 1 , y 0 und schickt sie an Alice.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 269


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsAuswertung eines not-Gatters:Alice invertiert ihr Bit.¬(a ⊕ b) = ¬a ⊕ bAuswertung eines and-Gatters:Alice wählt ein zufälliges Bit z undberechnetr b,b ′ = z ⊕ ((a 1 ⊕ b) ∧ (a 0 ⊕ b ′ )) für alleb, b ′ ∈ {0, 1}.Bob erhält r b1 ,b 0durch ObliviousTransfer.z ⊕ r b1 ,b 0= (a 1 ⊕ b 1 ) ∧ (a 0 ⊕ b 0 )¬a bS(¬)a bz r b1,b 0S(∧)a 1b 1a 0 b 0Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 270


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0∨∨∨∨∧ ∧ ∧∧¬¬1 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)S(∨)S(∨)S(∨)S(∧) S(∧) S(∧)S(∧)S(¬)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)1 0, 1, 0, 0S(∨)S(∨)S(∨)S(∧) S(∧) S(∧)S(∧)S(¬)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)1 0, 1, 0, 0S(∨)S(∨)S(∨)S(∧) S(∧) S(∧)S(∧)S(¬)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)1 0S(∨)S(∨)S(∨)S(∧) S(∧) S(∧)1 1S(¬)S(∧)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)1 0S(∨)0 1, 0, 0, 0S(∨)S(∨)S(∧) S(∧) S(∧)1 1S(¬)S(∧)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 0S(∨)1 0S(∨)0 1, 0, 0, 0S(∨)S(∨)S(∧) S(∧) S(∧)1 1S(¬)S(∧)S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollenm 1 m 00 0S(∨)0 0 1 11 0S(∨)S(∨)0 01 1 0 01 1S(∨)S(∧) S(∧) S(∧)S(∧)1 1S(¬)0 1S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen Protokollen1 01 1S(∨)0 0 1 11 0S(∨)S(∨)0 01 1 0 01 1S(∨)S(∧) S(∧) S(∧)S(∧)1 1S(¬)0 1S(¬)0 1 0 01 1 1 01 0 0 1Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 271


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsBemerkung:Zuletzt werden die Ausgabewerte mit Hilfe von xor berechnet.Wenn jeder Teilnehmer einen privaten Ausgabewert erhalten soll,dann muss noch Alice ihre entsprechende Bits an Bob schicken undumgekehrt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 272


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsWeder Alice noch Bob können in polynomieller Zeit Informationenüber die Eingabewerte des jeweils anderen bestimmen.(Abgesehen von den Informationen, die sie durch Kenntnis desberechneten Funktionswertes erhalten.)Unter den Voraussetzungen, dass:die (bei Oblivious Transfer) verwendeten Funktionentatsächlich Falltürfunktionen mit dazugehörigenHardcore-Prädikaten sind.sich Alice und Bob korrekt bezüglich des Protokolls verhalten(semi-honest behaviour).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 273


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsDie Forderung nach halb-ehrlichem Verhalten (semi-honestbehaviour) bedeutet, dassDie Teilnehmer sich korrekt bezüglich des Protokolls verhalten,aber alle erhaltenen Informationen mitprotokollieren könnenund aus diesen etwaige Schlüsse ziehen.In manchen Fällen mag die Annahme solches Verhaltensgerechtfertigt sein, beispielsweise wenn die Teilnehmer dazugezwungen werden können, mit bereitgestellter Software oderbereitgestellten Geräten zu arbeiten.Im allgemeinen Fall sollte man jedoch mit bösartigem Verhalten(malicious behaviour) rechnen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 274


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsEs gibt die Möglichkeit, ein Protokoll, das korrekt für halb-ehrlichesVerhalten ist, in ein Protokoll zu übersetzen, das korrekt fürbösartiges Verhalten ist (protocol compilation Goldreich).Dabei werden als Hilfsprotokolle Bit Commitment undZero-Knowledge-Beweise eingesetzt.Insbesondere muss jeder Teilnehmer gegenüber den anderenTeilnehmern nachweisen, dass:die Eingabewerte zu Beginn festgelegt wurden und dass sichalle Berechnungen auf diese Eingabewerte beziehen,die Zufallsbits tatsächlich zufällig sind unddie korrekte Art von Nachrichten geschickt wurden.Das ist teilweise extrem aufwändig, da immer sichergestellt werdenmuss, dass der jeweils andere Teilnehmer keine zusätzlicheInformationen erhält.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 275


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsWas kann durch ein solches Protokoll nicht erzwungen werden?Einer der Teilnehmer bricht das Protokoll ab.Die Teilnehmer verwenden falsche Eingabewerte.Der zweite Punkt ist bei vielen Anwendungen kein Problem, da dieTeilnehmer eine Motivation haben, den Eingabewert nicht zumanipulieren (z.B. Gebot bei Auktionen, Stimme bei Wahlen).Im allgemeinen erlaubt man alles, was auch bei der Berechnung derFunktion durch einen vertrauenswürdigen Dritten (trusted thirdparty) passieren könnte.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 276


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSecure Multi-Party ComputationsErweiterung:Verwendung des vorgestellten Ansatzes für beliebig vieleKommunikationspartner (two-party vs. multi-party).Probleme: hohe Komplexität durch Austausch vieler Nachrichtenund Erzwingung der semi-honest behaviour.Es gibt viele Vorschläge von Protokollen für bestimmteAnwendungen (Auktionen, Wahlen, etc.).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 277


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleWir wechseln nun die Sichtweise und beschäftigen uns mit derVerifikation kryptographischer Protokolle. Dabei gehen wir jetztvon folgenden Voraussetzungen aus:Sowohl symmetrische als auch asymmetrische Verschlüsselungist sicher und kann nicht gebrochen werden.Wir wollen sicherstellen, dass der Angreifer keinerleiMöglichkeit hat, das Protokoll zu unterlaufen. (D.h., erkommt nicht in den Besitz von geheimen Informationen, kannsich nicht für einen Dritten ausgeben, etc.) Dies soll durch(halb-)automatische Techniken verifiziert werden.D.h., wir nehmen nicht mehr die komplexitätstheoretischeSichtweise ein, bei der der Angreifer eine polynomzeitbeschränkteprobabilistische Turingmaschine ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 278


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleDie Protokolle, die wir im folgenden verifizieren werden, sind voneher einfacher Art, dennoch gibt es typischerweise zahlreiche Fehlerin solchen Protokollen.Mögliche Angriffe auf das Protokoll sind: Man-in-the-Middle,Replay, etc. Angriffe, die das Brechen der Verschlüsselungbeinhalten, können jedoch nicht entdeckt werden.Wir betrachten ein Angreifer-Modell (sogenanntesDolev-Yao-Modell), bei dem der Angreiferbeliebig Nachrichten abfangen und weiterverwenden kannkann,jedoch nicht in der Lage ist, die Verschlüsselung zu brechen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 279


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleEtwas genauer . . .Eindringlingsmodell nach Dolev-Yao (I)Der Angreifer kannan beliebigen Protokollabläufen teilnehmen,beliebig Nachrichten abfangen,Nachrichten entschlüsseln, falls er den entsprechendenSchlüssel besitzt,alte Nachrichten wieder einspielen undaus bekannten Komponenten neue Nachrichten bauen und anbeliebige Kommunikationspartner verschicken.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 280


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleEindringlingsmodell nach Dolev-Yao (II)Der Angreifer kann nicht:Nachrichten entschlüsseln, wenn er den entsprechendenSchlüssel nicht besitztoder Nonces erraten, die er nicht abgefangen hat.D.h., er hat nicht nur eine sehr kleine Wahrscheinlichkeit,Nachrichten zu entschlüsseln, oder Nonces zu erraten, sondern garkeine Möglichkeit.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 281


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleEindringlingsmodell nach Dolev-Yao (III)Wir nehmen ebenfalls an, dass ein Teilnehmer, der eineverschlüsselte Nachricht empfängt,herausfinden kann, ob diese Nachricht mit einem bekanntenSchlüssel K verschlüsselt ist.Er erhält dann entweder die entschlüsselte Nachricht oder eineFehlermeldung.Analog kann ein Teilnehmer Signaturen (erstellt mit einem privatenSchlüssel) erkennen und verifizieren, wenn er den dazugehörigenöffentlichen Schlüssel kennt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 282


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleUm das Protokoll verifizieren zu können, benötigen wir eine exakte,formale Beschreibung des Protokolls, die keine Mehrdeutigkeitenenthält.D.h., wir müssen mehr als bisher auf exakteProtokollbeschreibungen Wert legen.Wir betrachten als Beschreibungsformalismus vor allem denangewandten π-Kalkül (es gibt jedoch auch andere geeigneteFormalismen).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 283


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleWarum reichen bisherige Beschreibungsmechanismen nicht aus?Eine Möglichkeit ist es, ein Protokoll als Folge ausgetauschterNachrichten zu modellieren:Beispiele:1 B → A: P B2 A → B: {{K} SA } PB3 B → A: {m} KNeedham-Schroeder-Protokoll im EinführungsteilProtokollBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 284


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleDiese Notation ist noch zu unpräzise. Insbesondere:Sie sagt nichts darüber aus, was ein Teilnehmer berechnet,nachdem eine Nachricht empfangen wurde.Wird überprüft, ob alle Komponenten der Nachrichtkorrekt sind?Werden zurückgeschickte Nonces mit früher generiertenoder erhaltenen Nonces verglichen?Werden Zeitstempel überprüft?Was macht der Teilnehmer, wenn die Nachricht nicht daskorrekte Format hat?Es ist unklar, welche Möglichkeiten der Angreifer hat.Können mehrere Protokollabläufe gleichzeitigdurchgeführt werden?Könnte ein (oder beide) Teilnehmer auch gleichzeitigeinen Protokollablauf mit dem Angreifer durchführen?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 285


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleBemerkung: das oben angegebene Protokoll der Form1 B → A: P B2 A → B: {{K} SA } PB3 B → A: {m} Kbeschreibt folgendes Szenario:Bob schickt an Alice seinen öffentlichen Schlüssel.Alice schickt an Bob einen Sitzungsschlüssel K, der von ihrsigniert ist und den sie mit Bob’s öffentlichen Schlüsselverschlüsselt hat.Bob verwendet den Sitzungsschlüssel, um eine Nachricht anAlice zu verschlüsseln.Dieses Protokoll ist nicht korrekt: es gibt einen Angriff. Welchen?Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 286


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleEve (E) hat folgende Angriffsmöglichkeit(Man-in-the-Middle-Attack), falls Alice auch mit Evekommuniziert:1 B → E: P B2 E → A: P E3 A → E: {{K} SA } PE4 E → B: {{K} SA } PB5 B → A: {m} KDie letzte Nachricht kann jedoch von Eve abgefangen undentschlüsselt werden, denn Eve besitzt K.Wir werden dieses Protokoll im folgenden häufig als Beispieleinsetzen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 287


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleVerifikation kryptographischer Protokolle (Schema)Modelliere das Protokoll im angewandten π-Kalkül. Damiterhält man auch ein Angreifermodell und die Möglichkeit, dasmögliche Systemverhalten als Transitionssystem darzustellen.Verwende dann eine der folgenden Analysetechniken:Einschränken auf endlichen Zustandsraum undDurchsuchen des Zustandsraum ( Model-Checking)Horn-Formeln und ResolutionVerhaltensäquivalenzenBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 288


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerifikation kryptographischer ProtokolleDabei macht es einen Unterschied, welche Eigenschaft desProtokolls genau verifiziert werden soll. Wir werden hauptsächlichbetrachten:Geheimhaltung: bestimmte Nachrichteninhalte bleibengegenüber dem Angreifer geheim.(Beispielsweise verletzt das Beispielprotokoll weiter oben dieGeheimhaltung. Der Angreifer erfährt m.)Authentifizierung: der Angreifer ist nicht in der Lage, sich alsein anderer Teilnehmer auszugeben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 289


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDer angewandte π-Kalkül (applied π-calculus, von Abadi undFournet) ist ein sogenannter Prozesskalkül bzw. eineProzessalgebra.Vorgänger dieses Kalküls sind CCS (Calculus of CommunicatingSystems) und der π-Kalkül, beide eingeführt von Robin Milner. Einanderer verwandter Kalkül ist der Spi-Kalkül (Spi calculus).Prozesskalküle sind “Mini-Programmiersprachen”, in denenInteraktion von Prozessen sehr kompakt und auch sehr präzisebeschrieben werden kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 290


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülWir beginnen damit, die Syntax des angewandten π-Kalkülseinzuführen:Namen und VariableEs gibt eine Menge von Namen, deren Elemente als Kanalnamen,Schlüssel, Nonces, Nachrichteninhalte, etc. verwendet werden.Außerdem gibt es eine Menge von Variablen.Kanalnamen werden im folgenden mit a, b, c, . . . bezeichnet,Schlüssel mit K, Nonces mit n und Nachrichteninhalte mit m.Variablen werden im allgemeinen mit x, y, z, x 1 , x 2 , . . . bezeichnet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 291


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülFunktionssymbole und TermeAußerdem gibt es eine Menge von Funktionssymbolen. Aus denNamen, Variablen und Funktionssymbolen werden Terme gebildet.Hinweis: dabei ist darauf zu achten, dass Funktionssymbole in derkorrekten Stelligkeit auf Elemente des korrekten Typs angewandtwerden. (Beispielsweise können bestimmte Funktionen nur aufNachrichten oder Schlüssel angewandt werden.)Beispiele für Terme:encrypt(m, K)decrypt(encrypt(m, x), y)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 292


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülGleichungenGegeben ist eine Menge Σ von Gleichungen auf Termen(manchmal auch Theorie genannt), die das Verhalten derFunktionssymbole bzw. der dazugehörigen Funktionen beschreiben.Für zwei Terme M, N gilt Σ ⊢ M = N (die Gleichheit M = N istaus den Gleichungen herleitbar), falls eine der folgendenBedingungen erfüllt ist (jeweils für geeignete Terme L, M ′ , N ′ ):M und N sind identisch (Reflexivität),die Gleichung M = N ist in Σ enthalten,es gilt M = L[x/M ′ ], N = L[x/N ′ ] und Σ ⊢ M ′ = N ′ ,es gilt M = M ′ [x/L], N = N ′ [x/L] und Σ ⊢ M ′ = N ′ ,Σ ⊢ N = M (Symmetrie) oderΣ ⊢ N = L und Σ ⊢ L = M (Transitivität).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 293


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBeispiele für Terme und Gleichungen:Symmetrische VerschlüsselungFunktionen sdecrypt und sencrypt, die als ersten Parametereine Nachricht und als zweiten Parameter einen Schlüsselerhalten.Definierende Gleichungen:Es gilt daher beispielsweise:Σ = {sdecrypt(sencrypt(x, y), y) = x}Σ ⊢ sdecrypt(sencrypt(m, K), K) = mΣ ⊬ sdecrypt(sencrypt(m, K), K ′ ) = m, falls K ≠ K ′ .Σ ⊢ sencrypt(sdecrypt(sencrypt(m, K), K), K) =sencrypt(m, K)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 294


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAsymmetrische VerschlüsselungZusätzlich zu den Funktionen adecrypt und aencrypt gibt esnoch einstellige Funktionen sk, pk die aus einem Geheimniseinen privaten und öffentlichen Schlüssel ableiten.Definierende Gleichungen:Σ = {adecrypt(aencrypt(x, pk(y)), sk(y)) = x}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 295


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülSignaturenZusätzlich zu den Funktionen pk, sk verwenden wir zweistelligeFunktionen sigcheck, sigget und sign und eine Konstante ok.Definierende Gleichungen:Σ = {sigcheck(sign(x, sk(y)), pk(y)) = ok,sigget(sign(x, sk(y)), pk(y)) = x}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 296


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülLogischer Operator xorWir verwenden eine zweistellige Funktion xor, definiert auf denWahrheitswerten 0, 1.Definierende Gleichungen:Σ = {xor(x, y) = xor(y, x),xor(xor(x, y), z) = xor(x, xor(y, z)),xor(0, x) = x,xor(x, x) = 0}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 297


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülPaareWir benutzen eine zweistellige Funktion pair und einstelligeFunktionen fst, snd, die nur auf Paaren definiert sind.Definierende Gleichungen:Σ = {fst(pair(x, y)) = x, snd(pair(x, y)) = y}Im folgenden werden wir auch die Notation (x, y) statt pair(x, y)verwenden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 298


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülSyntax des angewandten π-KalkülsEin Prozess ist entweder:der inaktive Prozess 0,eine parallele Komposition P | Q,eine Replikation !Peine Restriktion (νu)P,eine Bedingung if M = N then P else Q,ein Prozess mit Eingabe-Präfix c(x).P oderein Prozess mit Ausgabe-Präfix c〈M〉.P.Dabei sind P, Q Prozesse, u ein Name, c ein Kanalname, M, NTerme und x eine Variable.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 299


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Die syntaktischen Konstrukte sind eng verwandt mit denentsprechende Konstrukten in CCS. Insbesondere entspricht(νn)P dem Prozess P\{n} in CCS.Der Name u ist in (νu)P gebunden. Damit erzeugt man neueSchlüssel und Nonces, die der Umgebung nicht bekannt sindEbenso ist die Variable x in c(x).P gebunden. (DiesesKonstrukt ist als Restriktion oder auch Verschattungbekannt.) Gebundene Namen und Variablen können(gebunden) umbenannt werden.Die Replikation !P steht für beliebig viele Kopien von P, dieparallel ablaufen.Ausgabe- bzw. Eingabe-Präfix beschreiben das Senden bzw.Empfangen einer Nachricht auf dem Kanal c, wobei sich derProzess anschließend wie P verhält.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 300


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülEvaluationskontextEin Evaluationskontext C[ ] ist ein spezieller Prozess, in dem derPlatzhalter , der für einen Prozess steht, genau einmalvorkommen. Dieser Platzhalter darf auch nicht unter einerReplikation, unter einer Bedingung oder unter einem Präfixvorkommen.Mit C[P] bezeichnen wir den Prozess, der dadurch entsteht, dassder Platzhalter in C[ ] durch den Prozess P ersetzt wird.Beispiele:C[ ] = (νm)( | a(x).b〈m〉.0) ist ein Evaluationskontext.! und a(x). sind keine gültigen Evaluationskontexte.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 301


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülSemantik des angewandten π-Kalküls (Strukturelle Kongruenz)Strukturelle Kongruenz (≡) ist die kleinste Äquivalenzrelation aufProzessen, die mit Hilfe der folgenden Regeln hergeleitet werdenkann:P ≡ P | 0 P | (Q | R) ≡ (P | Q) | R P | Q ≡ Q | P!P ≡ P |!P (νu)0 ≡ 0 (νu)(νv)P ≡ (νv)(νu)PP | (νu)Q ≡ (νu)(P | Q) falls u nicht frei in P vorkommtP[x/M] ≡ P[x/N] falls Σ ⊢ M = NC[P] ≡ C[Q] falls P ≡ Q und C[ ] ein Evaluationskontext istBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 302


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen zur strukturellen Kongruenz:P[x/M] ist der Prozess P, in dem jedes freie Vorkommen derVariablen x durch den Term M ersetzt wurde. Dabei istfolgendes zu beachten: freie Namen oder Variablen, die in Mvorkommen, dürfen durch diese Ersetzung nicht gebundenwerden. Falls dies passieren würde, muss umbenannt werden.Beispiel: ((νn)a〈x〉.b〈n〉.0)[x/n] = (νn ′ )a〈n〉.b〈n ′ 〉.0Die vorletzte Regel beschreibt, dass ein Term M durch einenanderen Term N ersetzt werden kann, falls die Gleichheit vonM und N unter Σ nachgewiesen werden kann.Die letzte Regel garantiert die Abgeschlossenheit derstrukturellen Kongruenz unter Evaluationskontexten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 303


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülSemantik des angewandten π-Kalküls (Reduktionsregeln)Folgende Regeln beschreiben die Reduktionsrelation → zwischenProzessen:c〈M〉.P | c(x).Q → P | Q[x/M]if M = N then P else Q → Pfalls Σ ⊢ M = Nif M = N then P else Q → Qfalls M, N variablenfreie Terme sind und Σ ⊬ M = NC[P] → C[Q] falls P → Q und C[ ] ein Evaluationskontext istP → Q falls P ′ → Q ′ , P ≡ P ′ und Q ′ ≡ QBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 304


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Die erste Regel beschreibt das Senden einer Nachricht M übereinen Kanal c.Falls die Gleichheit von M und N nachgewiesen werden kann,dann wird im Fall einer Bedingung der Then-Fall betreten.Wenn die Gleicheit nicht nachgewiesen werden kann, danndarf der Else-Fall nur dann betreten werden, wenn die TermeM, N variablenfrei sind. D.h., es gibt keine Möglichkeit mehr,die Terme durch Substitutionen und Anwendungen derGleichungen in die gleiche Form zu bringen. Terme, die durchdie Theorie nicht unifiziert werden können, gelten alsverschieden.Die letzten beiden Regeln beschreiben, dass dieReduktionsrelation unter Evaluationskontexten undstruktureller Kongruenz abgeschlossen ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 305


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülTransitionssystemDas Transitionssystem eines Prozesses P besteht aus:Zustandsmenge: Äquivalenzklassen von Prozessen, die von Paus erreicht werden können. D.h., jede Äquivalenzklasse [Q] ≡mit P → ∗ Q ist ein Zustand.Transitionen: Es gibt einen Übergang von [Q 1 ] ≡ nach [Q 2 ] ≡genau dann, wenn Q 1 → Q 2 .Um die Anzahl der Zustände möglichst klein zu halte, sollte – wieoben beschrieben – die Menge der von P erreichbaren Prozessedurch die strukturelle Kongruenz faktorisiert werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 306


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülWir betrachten ein erstes kleines Beispielprotokoll(Nonce-Challenge):1 A → B: {n} K2 B → A: {n − 1} KDabei ist n ein Nonce und K ist ein Sitzungsschlüssel von Bobbzw. Alice.Um dieses Protokoll im angewandten π-Kalkül zu modellieren,verwenden wir die Theorie symmetrische Verschlüsselungzusammen mit einer Dekrementierungsfunktion dec.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 307


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDie entsprechenden Prozesse sehen wie folgt aus:Alice:Bob:A = (νn)(c〈sencrypt(n, K)〉.B = c(y).c(x).if sdecrypt(x, K) = dec(n)then A ′else 0)c〈sencrypt(dec(sdecrypt(y, K)), K)〉.B ′ Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 308


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkungen:Dabei ist n der zu verschickende Nonce, der zunächst in Agebunden ist und keinem anderen Teilnehmer bekannt ist.Mit c bezeichnen wir den (offenen) Kanal, über den derNachrichtenaustausch stattfindet.A ′ bzw. B ′ sind die Fortsetzungen von Alice und Bob.Dadurch wird das Verhalten der beiden Teilnehmer nachAustausch der beiden Nachrichten beschrieben. Wir nehmenan, dass x nicht frei in A ′ und y nicht frei in B ′ vorkommt.Das Verhalten von Alice und Bob gemeinsam wird durchS = (νK)(A | B) beschrieben. Durch die Restriktion kannman sicherstellen, dass das Geheimnis K nach außen hinverschattet ist.Falls der Nonce nicht korrekt zurückgeschickt wird, so brichtA das Protokoll ab und wird zum Null-Prozess.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 309


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülReduktionsfolge bei korrektem Verhalten (ohne Eindringling):A | B ≡ (νn)(c〈sencrypt(n, K)〉.c(x).if sdecrypt(x, K) = dec(n)then A ′else 0 | B)Diese Äquivalenz gilt, da n nicht frei in B vorkommt. (Falls diesder Fall wäre, so müsste n zunächst umbenannt werden.) DiesenEffekt bezeichnet man auch als Erweiterung des Bindungsbereichs(scope extrusion).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 310


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDaher gilt:A | B → (νn)(c(x).if sdecrypt(x, K) = dec(n)then A ′else 0 |c〈sencrypt(dec(sdecrypt(sencrypt(n, K), K)), K)〉.B ′ )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 311


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülAufgrund der Gleichungen können wir folgenden Termvereinfachen:Σ ⊢ sencrypt(dec(sdecrypt(sencrypt(n, K), K)), K)= sencrypt(dec(n), K)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 312


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDaraus ergibt sich folgende Reduktion:A | B →→ (νn)(if sdecrypt(sencrypt(dec(n), K), K)= dec(n)then A ′else 0 | B ′ )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 313


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDer so entstandene Prozess ist wegenäquivalent zuΣ ⊢ sdecrypt(sencrypt(dec(n), K), K) = dec(n)Und damit ergibt sich:(νn)(if dec(n) = dec(n)then A ′else 0 | B ′ )A | B →→→ (νn)(A ′ | B ′ )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 314


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBemerkung:Im angewandten π-Kalkül ist es auch möglich, einen vollkommenprivaten Kanal zu etablieren:(νb)(b〈m〉.P | b(x).Q)Aufgrund der Restriktion (νb) kann der Kanal b vom Angreifernicht abgehört werden, es sei denn, einer der beiden Teilnehmerverschickt b explizit über einen anderen Kanal. Diese Mobilität vonKanalnamen spielt im π-Kalkül eine große Rolle, ist für uns hieraber nicht so wichtig.Im allgemeinen werden wir Kanalnamen nicht restringieren, da wirnicht annehmen können, dass es wirklich sichere Kanäle gibt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 315


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülWir betrachten nun das vorherige Beispielprotokoll:1 B → A: P B2 A → B: {{K} SA } PB3 B → A: {m} KUm dieses Protokoll im angewandten π-Kalkül zu modellieren,verwenden wir die Theorien für symmetrische und asymmetrischeVerschlüsselung zusammen mit der Theorie für Signaturen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 316


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülDie entsprechenden Prozesse sehen wie folgt aus:Alice:A = (νK)(νK A ) (c(p).c〈aencrypt(sign(K, sk(K A )), p)〉.c(x).A ′ [x ′ /sdecrypt(x, K)])| !a〈pk(K A )〉.0Dabei gibt Alice ihren öffentlichen Schlüssel pk(K A ) über denoffenen Kanal a bekannt, behält aber K B als Geheimnis.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 317


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülBob:B = (νm)(νK B ) (c〈pk(K B )〉.c(y).a(u).(if sigcheck(y ′ , u) = okthen c〈sencrypt(m, sigget(y ′ , u))〉.B ′else 0)[y ′ /adecrypt(y, sk(K B ))])| !b〈pk(K B )〉.0Auch hier gibt Bob seinen öffentlichen Schlüssel bekannt.Außerdem empfängt er den öffentlichen Schlüssel von Alice, den erzum Überprüfen der Signatur benötigt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 318


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenAngewandter π-KalkülWeitere Bemerkungen:A ′ bzw. B ′ sind auch hier die Fortsetzungen von Alice undBob. A ′ enthält x ′ als freie Variable, wobei x ′ als Platzhalterfür die zu empfangene (entschlüsselte) Nachricht m steht. B ′enthält analog y ′ als freie Variable.Das Verhalten von Alice und Bob gemeinsam wird durchSys = A | B beschrieben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 319


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWie sehen Angreifer im Kalkül aus?Ein Angreifer E (E steht für Eve) kann ein beliebiger Prozess desKalküls sein. Dieser wird mit dem eigentlichen System Sys (i.a.bestehend aus Alice und Bob) parallel komponiert: Sys | E.Damit können wir nun auch beschreiben, was es bedeutet, dasseine Nachricht m geheimgehalten wird:GeheimhaltungEin System Sys hält eine Nachricht m geheim, wenn es keinenAngreifer E gibt mit einer Reduktionsfolge Sys | E → ∗ P, so dassin P m als Nachrichteninhalt auf einem nicht-verschatteten Kanalverschickt wird.Wenn der Angreifer in den Besitz von m kommt, so kann er dieseNachricht immer auf einem offenen Kanal verschicken.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 320


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersDas letzte Beispielprotokoll hält die Nachricht m nicht geheim. Esgibt einen entsprechenden Angreifer:E = (νK E ) ( c(p B ).c〈pk(K E )〉.c(z).(c〈aencrypt(v, pB )〉.)c(u).a(p A ).s〈sdecrypt(u, sigget(v, p A ))〉.0))[v/adecrypt(z, sk(KE ))]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 321


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBemerkungen:Die Schritte von Eve der Reihe nach:1 E empfängt den öffentlichen Schlüssel von Bob.2 E schickt ihren eigenen öffentlichen Schlüssel an Alice.3 E empfängt den signierten und verschlüsseltenSitzungsschlüssel K von Alice.4 E verschlüsselt den signierten Sitzungsschlüssel unter demöffentlichen Schlüssel von Bob und schickt ihn an Bob.5 E empfängt die mit dem Sitzungsschlüssel verschlüsselteNachricht m von Bob.6 E entschlüsselt diese Nachricht (denn sie kennt K!) und gibtdie Nachricht auf dem offenen Kanal s bekannt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 322


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersEs gibt einen Ablauf von Sys | E, bei dem zuletzt m auf demKanal s verschickt wird. D.h., die Geheimhaltung von m ist nichtgewährleistet. Es gilt:für einen geeigneten Prozess P.Sys | E → ∗ (νm)(s〈m〉.0 | P)Es gibt natürlich auch Abläufe, bei denen das Geheimnis nichtpreisgegeben wird, aber mindestens ein Ablauf verletzt dieGeheimhaltung.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 323


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersMit Hilfe einer geeigneten Theorie kann man auchEinwegfunktionen modellieren: wir verwenden ein einstelligesFunktionssymbol f (ohne Gleichungen!). Da es keinFunktionssymbol für die Umkehrfunktion gibt, kann auch niemandUrbilder ermitteln.Beispielprozess:Dabei ist g ein “Geheimnis”.A = c〈f(g)〉.0Kein Angreifer, der f(g) als Nachricht empfängt, kann den Wert germitteln.Hashfunktionen können ähnlich modelliert werden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 324


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWir modellieren nun das Needham-Schroeder-Protokoll (sieheEinführungsteil Protokoll ).Needham-Schroeder-Protokoll (fehlerhaft)1 A → S: A, B, n A2 S → A: {n A , K AB , {K AB , A} KBS } KAS3 A → B: {K AB , A} KBS4 B → A: {n B } KAB5 A → B: {n B − 1} KABBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 325


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAls Theorien verwenden wir die Theorie für die symmetrischeVerschlüsselung, sowie eine zweistellige Funktion check mitcheck(sencrypt(x, y), y) = ok,die feststellt, ob eine Nachricht, mit einem bestimmten Schlüsselverschlüsselt wurde. (Ansonsten kann Alice nicht überprüfen, obder Nonce n B mit dem korrekten Schlüssel verschlüsselt wurde.)Außerdem verwenden wir die Theorie für Paare und – umdreistellige Tupel zu erhalten – eine dreistellige Funktion triple(analog zu pair) mit den Projektionen fst, snd und thrd.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 326


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAlice:A = (νn A ) (c S 〈triple(A, B, n A )〉.c S (x).(if first(u) = nAthen c AB 〈thrd(u)〉.c AB (y).if check(y, snd(u)) = okthen c AB 〈sencrypt(dec(sdecrypt(y, snd(u))),snd(u))〉.0else 0else 0 ) [u/sdecrypt(x, K AS )] )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 327


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBob:B = (νn B ) (c AB (x).(cAB 〈sencrypt(n B , fst(u))〉.)c AB (y).if sdecrypt(y, fst(u)) = dec(n B )then 0else fail〈〉.0 ) [u/sdecrypt(x, K BS )]Die Nachricht von Bob auf dem Kanal fail signalisiert, dass derProtokollablauf nicht erfolgreich war.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 328


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersServer:S = (νK) (c S (x).if fst(x) = Athen if snd(x) = Bthen c S 〈sencrypt(triple(thrd(x), K, sencrypt(pair(K, A),K BS )), K AS )〉.0)else . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 329


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersEs gibt noch weitere Fallunterscheidungen, wobei alle Paare vonmöglichen Teilnehmern (einschließlich Eve) abgefragt werdenmüssen.Diese Fallunterscheidungen könnte man dadurch vermeiden, indemman eine einstellige Funktion key einführt, die zu dem Bezeichnereines Teilnehmers den Schlüssel zurückgibt, den dieser Teilnehmermit dem Server teilt. Diese Funktion darf jedoch dem Angreifernicht zugänglich sein!Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 330


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersDas gesamte System besteht aus der parallelen Komposition vonA, B und S, zusammen mit der Restriktion der entsprechendenSchlüssel:Sys = (νK AS )(νK BS )(A | B | S)Statt S kann auch !S verwendet werden, dann wird der Serverrepliziert und steht immer wieder für Anfragen zur Verfügung.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 331


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAuthentifizierung wird typischerweise folgendermaßen definiert:AuthentifizierungWenn Alice der Meinung ist, dass sie einen Protokollablauf mitBob durchführt, dann hat Bob zuvor beschlossen, dass er einenProtokollablauf mit Alice durchführt. (Oder umgekehrt.)Um diese Eigenschaft formulieren zu können, fügen wirentsprechende Nachrichten ein, die Alice bzw. Bob an ihre Umweltschicken, um ihre Überzeugungen bekanntzugeben. Wirmodifizieren also die Prozess-Beschreibungen leicht.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 332


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersAlice (modifiziert):A = (νn A ) (c S 〈triple(A, B, n A )〉.c S (x).(if first(u) = nA)then c AB 〈thrd(u)〉.c AB (y).c AB 〈sencrypt(dec(sdecrypt(x, snd(u))), snd(u))〉.a〈(A, B)〉.0else 0 ) [u/sdecrypt(x, K AS ))]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 333


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBob (modifiziert):B = (νn B ) (c AB (x).(b〈(B, snd(u))〉〉.0 |c AB 〈sencrypt(n B , fst(u))〉.c AB (y).if sdecrypt(y, fst(u)) = dec(n A )then 0else fail.0 ) [u/sdecrypt(x, K BS )] )Bemerkung: Um weitere Reduktionen nicht zu blockieren, sendetBob asynchron auf dem Kanal b, d.h., die Nachricht wird parallelzum weiteren Ablauf verschickt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 334


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersIn diesem Fall müssen wir für die Authentifizierung fordern:Für jeden Angreifer E gilt: in jedem Ablauf von Sys | E, in demAlice bekanntgibt, dass sie mit Bob spricht, d.h., es wird eineNachricht a〈(A, B)〉 geschickt, erzeugt Bob zuvor eine Nachrichtb〈(B, A)〉. D.h., er bezeugt, einen Protokollablauf mit Alicebegonnen zu haben.Ähnlich müsste man beschreiben, dass Alice sich gegenüber Bobkorrekt authentifiziert hat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 335


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersHier gibt es einen Angreifer (unterlaufen kann:Angriff ) E, der das ProtokollAngreifer Eve:E = c S (x).c S 〈triple(A, E, thrd(x))〉.c AB (y).(cAB 〈sencrypt(n B , snd(u))〉.c AB (z).0))[u/sdecrypt(y, KES )]Bemerkung: Eve hält n B nicht geheim.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 336


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersEs gibt Abläufe von Sys | E, in denen Alice die Nachricht a〈(A, B)〉schickt, ohne dass Bob zuvor seine Nachricht geschickt hat.In diesen Abläufen ist Bob überhaupt nicht beteiligt, eskommunizieren nur Alice, der Server und Eve.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 337


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWir haben nun eine Methode gesehen, mit der man Angriffe aufein Protokoll beschreiben kann: man spezifiziert den Angreifer Eals Prozess.Aber wie kann man zeigen, dass es keinen solchen Angreifer gibt?Man müsste ja unendlich viele Angreifer ausprobieren!Wir betrachten nun einen universalen Angreifer, der alleNachrichten abfangen kann, daraus weitere Nachrichten gewinnenkann, die er nicht-deterministisch abschickt.Es gibt einen herkömmlichen Angreifer, genau dann, wenn deruniversale Angreifer eine Angriffsmöglichkeit findet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 338


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersWir führen nun einen neue Art von Prozess ein, indem wir dieSyntax des Kalküls erweitern:AngreiferSei nun auch E(M), wobei M eine Menge von Termen ist, einProzess.Dabei ist M das Wissen, das der Angreifer hat, d.h., dieKanalnamen, Nonces und Schlüssel, die er zu Beginn besitzt,zusammen mit den weiteren Nachrichten, die er empfangen hat.Ein variablenfreier Term M ist aus M herleitbar (in ZeichenM ⊢ M), wennes gibt Terme M i ∈ M, i ∈ {1, . . . , n},es gibt einen Term N, der keine Namen und die freienVariablen x 1 , . . . , x n enthält, undΣ ⊢ M = N[x 1 /M 1 , . . . , x n /M n ]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 339


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersStrukturelle Kongruenz und Reduktionsregeln für den Angreifer(νn)P | E(M) ≡ (νn)(P | E(M))falls n in keinem der Terme von M vorkommtc〈M〉.P | E(M) → P | E(M ∪ {M}) falls M ⊢ cE(M) | c(x).Q → E(M) | Q[x/M]falls M ⊢ c und M ⊢ MDer Angreifer muss den entsprechenden Kanal c kennen, um aufihm Nachrichten empfangen oder versenden zu können.D.h. im letzten Fall dürfen nur diejenigen Nachrichten verschicktwerden, die aus dem bisherigen Wissen des Angreifers abgeleitetwerden können.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 340


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersDer Angreifer wird mit einem bestimmten Vorwissen ausgestattet.D.h., er kennt zu Beginn des Protokollablaufs bestimmte Kanäle,Schlüssel, Nonces, die Elemente der Menge M sind.Durch die Bindungsbereiche ist aber auf jeden Fall garantiert, dassder Angreifer keine “geheimen” Namen kennen, die anderswoverschattet sind.Beispiel: in dem System ((νu)P) | E({u}) ist der Name u, den derAngreifer kennt, nicht identisch mit dem Namen, der in Pgebunden ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 341


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenModellierung des AngreifersBeispiel: im Fall des Needham-Schroeder-Protokolls gibt es einenAblauf vonSys | E({c S , c AB , A, E, n B , K ES }),in dem Alice eine Nachricht auf Kanal a erzeugt, ohne dass Bobzuvor seine Nachricht auf Kanal b erzeugt hat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 342


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingIdee:Beschreibe das gegebene Protokoll mit Hilfe des ProzessesSys.Lege das Vorwissen M der Angreifers fest.Überprüfe durch Durchsuchen des Zustandsraums, dassSys | E(M) nicht in einen Zustand kommen kann oder einenAblauf erzeugen kann, in dem die Geheimhaltungs- oderAuthentifizierungseigenschaften verletzt sind.Problem:Es ist nicht klar, dass der Zustandsraum des Transitionssystemsvon Sys | E(M) endlich ist. Um dies zu erreichen, muss manbestimmte Einschränkungen machen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 343


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingEinschränkungen:Die Protokollbeschreibung Sys erlaubt nur endliches Verhalten(nicht beliebig viele parallele Sitzungen, keine Replikation).Es gibt entweder nur endlich viele Äquivalenzklassen vonTermen oder die Größe der vom Angreifer verschickten Termewird beschränkt.Die Theorie muss entscheidbar sein, d.h., für zwei gegebeneTerme M, N muss entschieden werden können ob Σ ⊢ M = Ngilt oder nicht gilt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 344


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenDurchsuchen des Zustandsraums – Model-CheckingBemerkungen:Es ist möglich, das Wissen des Angreifers on-the-fly zugenerieren. D.h., immer wenn ein Angreifer einen frischenNonce oder Schlüssel braucht, so kann er diesen raten.Bei Authentifizierung ist es oft wünschenswert, nicht nur zuüberprüfen, dass ein bestimmtes Ereignis vor einem anderenEreignis stattgefunden hat, sondern dass – falls es mehrereProtokollabläufe gibt – die entsprechendenAuthentifizierungsereignisse in Eins-zu-Eins-Beziehung stehen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 345


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun einen weiteren Ansatz (entwickelt von BrunoBlanchet), derauch für unendliche Zustandsräume und beliebig viele paralleleSitzungen funktioniert (Replikation ist erlaubt!).überapproximiert: es gibt möglicherweise korrekte Protokolle,die nicht als solche erkannt werden.Dazu werden die Möglichkeiten des Angreifers und derProtokollablauf in Prädikatenlogik formalisiert (genauer: inHorn-Klauseln) und es wird versucht, mit Hilfe von Resolution zuzeigen, ob der Angreifer sein Ziel erreichen kann.Dieser Ansatz ist in dem Tool ProVerif(http://www.proverif.ens.fr/) implementiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 346


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDas Problem zu entscheiden, ob es auf ein gegebenes Protokolleinen Angriff gibt ist unentscheidbar (so wie die meistenVerifikationsprobbleme). Deshalb wird die Menge der erreichbarenSystemzustände überapproximiert.Menge derFehlerzuständeErreichbare ZuständeÜberapproximation dererreichbaren ZuständeMenge aller ZuständeBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 347


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionFalls der Schnitt der Überapproximation der erreichbarenZustände mit der Menge der Fehlerzustände leer ist, ist dasSystem korrekt.Wenn der Schnitt nicht-leer ist, dann kann allerdings keineAussage getroffen werden. In diesem Fall kann mannormalerweise nicht zeigen, dass in dem Schnitt keinerreichbarer Zustand liegt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 348


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionWir wiederholen zunächst Prädikatenlogik und Resolution.Gegeben seien Mengen von Variablen, Funktionssymbolen undPrädikatsymbolen. Terme werden – wie im angewandten π-Kalkül– aus Variablen und Funktionssymbolen gebildet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 349


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionSyntax der Prädikatenlogik1 Falls P ein Prädikatsymbol der Stelligkeit k ist, und fallst 1 , . . . , t k Terme sind, dann ist P(t 1 , . . . , t k ) eine Formel.2 Für jede Formel F ist auch ¬F eine Formel.3 Für alle Formeln F und G sind auch (F ∧ G) und (F ∨ G)Formeln.4 Falls x eine Variable ist und F eine Formel, so sind auch ∃xFund ∀xF Formeln. Das Symbol ∃ wird Existenzquantor und ∀Allquantor genannt.Eine Formel der Form P(t 1 , . . . , t k ) oder ¬P(t 1 , . . . , t k ) heißtLiteral.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 350


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionStrukturen, ModelleGegeben sei eine Formel F . Eine zu F passende Struktur A bestehtauf einer Menge U A (dem Universum) und einer Interpretation, diejeder in F vorkommenden freien Variable x ein Element x Ades Universums zuordnet.jedem in F vorkommenden k-stelligen Funktionssymbol f eineFunktion f A : U k A → U A zuordnet.jedem in F vorkommenden k-stelligen Prädikatsymbol P eineRelation P A ⊆ U k A zuordnet.Man kann F unter A (auf offensichtliche Weise) auswerten underhält einen Wahrheitswert A(F ) ∈ {0, 1}. Falls A(F ) = 1, dannheißt A Modell von F .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 351


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBeispiel:F = ∀x∃yP(x, f (y))A mit U A = N 0 , P A = {(m, n) | m < n} und{f A n − 1 falls n > 0(n) =0 sonstist ein Modell für F .B mit U B = N 0 , P B = {(m, n) | m > n} und f B (n) = n istkein Modell für F .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 352


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionErfüllbarkeit, UnerfüllbarkeitEine Formel F ist erfüllbar, wenn sie ein Modell hat, ansonsten istsie unerfüllbar.Beispiele:Die Formel F = ∀x∃yP(x, f (y)) ist erfüllbar.Die Formel G = ∀xP(x) ∧ ∃y¬P(y) ist unerfüllbar.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 353


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionKlauselform, HornformelEine Formel F ist in Klauselform, wenn sie folgende Form hat:F = ∀x 1 . . . ∀x n F ∗ ,wobei F ∗ keine Quantoren enthält und sich in konjunktiverNormalform befindet.Sie ist eine Hornformel, wenn sich zusätzlich in jeder Klauselhöchstens ein positives Literal befindet.Beispiele:F = ∀x∀y ( (¬P(x) ∨ Q(x, y) ∨ R(x)) ∧ (¬P(y) ∨ R(f (y))) )ist in Klauselform, ist aber keine Hornformel.F = ∀x∀y ( (¬P(x) ∨ Q(x, y) ∨ ¬R(x)) ∧ (¬P(y) ∨ R(f (y))) )ist eine Hornformel.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 354


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBemerkungen:Zu jeder prädikatenlogischen Formel F kann man einfach eineerfüllbarkeitsäquivalente Formel F ′ in Klauselformkonstruieren. (Die Umwandlung in eineerfüllbarkeitsäquivalente Hornformel ist nicht so einfachmöglich.)Es gibt drei verschiedene Typen von Hornklauseln:Ein positives Prädikat: P 0 ≡ 1 → P 0 (Tatsachenklausel)Nur negative Prädikate:¬P 1 ∨ · · · ∨ ¬P n ≡ P 1 ∧ · · · ∧ P n → 0 (Zielklausel)Negative und ein positives Prädikat:¬P 1 ∨ · · · ∨ ¬P n ∨ P 0 ≡ P 1 ∧ · · · ∧ P n → P 0(Prozedurklauseln)wobei jedes P i von der Form P(t 1 , . . . , t n ) ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 355


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionSubstitution, UnifikationSei sub = [x 1 /t 1 , . . . , x n /t n ] eine Substitution und seien P 1 , . . . , P nPrädikate der Form P(t ′ 1 , . . . , t′ n). Die Substitution sub heißtUnifikator der Prädikate, fallsP 1 sub = P 2 sub = · · · = P n sub.Sie heißt allgemeinster Unifikator, wenn es für jede anderenUnifikator sub ′ eine Substitution s gibt mit sub s = sub ′ .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 356


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBemerkungen:Substitutionen werden – anders als andere Funktionen – hinterihr Argument geschrieben.Daher wird die Verknüpfung von Substitutionenfolgendermaßen notiert: für zwei Substitutionen s 1 , s 2 ist s 1 s 2die Substitution, bei der zuerst s 1 und dann s 2 ausgeführtwird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 357


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionResolventGegeben seien zwei Klauseln K 1 und K 2 . Wir nehmen an, dass eskeine Variable gibt, die in beiden Klauseln vorkommt. (Ansonstenkann man vorher umbenennen.)Seien P 1 , . . . , P n Prädikate aus K 1 und ¬P 1 ′ , . . . , ¬P′ m negiertePrädikate aus K 2 , so dass P 1 , . . . , P n , P 1 ′ , . . . , P′ m unifizierbar ist.Sei sub der allgemeinste Unifikator.Wir erhalten K 1 ′ und K 2 ′ , indem wir die oben angegebenenPrädikate aus K 1 und K 2 entfernen. Dann istR = (K ′ 1 ∨ K ′ 2)subein Resolvent der Klauseln K 1 , K 2 .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 358


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionBeispiel: zu resolvierende Literale sind unterstrichen.P(x) ∨ P(f (y)) ∨ Q(x, y)¬P(f (g(z)))sub = [x/f (g(z)), y/g(z)] Q(f (g(z)), g(z))Oft benutzt man auch die Mengenschreibweise:{P(x), P(f (y)), Q(x, y)}{¬P(f (g(z)))}sub = [x/f (g(z)), y/g(z)] {Q(f (g(z)), g(z))}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 359


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionResolutionFür eine Menge M von Klauseln bezeichnen wir mit Res(M) dieMenge aller Resolventen, die man aus den Klauseln von Mgewinnen kann, vereinigt mit M. Durch iterierteResolventenbildung erhält man:Res 0 (M) = MRes n+1 (M) = Res(Res n (M)) für n ≥ 0Res ∗ (M) = ⋃ n≥0Res n (M).Sei F = ∀x 1 . . . ∀x n F ∗ eine Formel in Klauselform. Wir schreibenRes ∗ (F ∗ ) für Res ∗ ({K | K ist Klausel von F ∗ }).Res ∗ (F ∗ ) kann möglicherweise eine unendliche Menge sein.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 360


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionResolutionssatzGegeben sei eine Formel F = ∀x 1 . . . ∀x n F ∗ in Klauselform. DieFormel F ist unerfüllbar, genau dann, wenn die leere Klausel(dargestellt durch □) in Res ∗ (F ∗ ) enthalten ist.Beispiel: aus()∀x∀y (P(f (x)) ∨ Q(x)) ∧ ¬P(f (g(y))) ∧ ¬Q(g(a))kann man durch Resolution die leere Klausel herleiten.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 361


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionFolgende Form der Resolution funktioniert speziell fürHornklauseln:Definition (SLD-Resolution)Eine SLD-Resolutionsherleitungder leeren Klausel hat die rechtsabgebildete Form, wobei G eineZielklausel ist, G 1 , G 2 , . . . nur ausnegativen Literalen bestehen undK 1 , . . . , K n Tatsachen- oderProzedurklauseln sind.G K 1G 1 K 2G 2.□K nDie Abkürzung SLD steht für “linear resolution with selectionfunction for definite clauses”Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 362


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionSatz (Vollständigkeit der SLD-Resolution)Sei M eine unerfüllbare Klauselmenge, bestehend ausHornklauseln, mit nur einer Zielklausel G. Dann gibt es für F eineSLD-Resolutionsherleitung der leeren Klausel, die mit G beginnt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 363


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWiederholung: Prädikatenlogik und ResolutionWir betrachten noch eine andere Form der Resolution, dievollständig für Horn-Klauseln ist:Unäre ResolutionEine Menge M von Hornklauseln mit einer Zielklausel G. DieMenge M ist unerfüllbar, genau dann, wenn es eineResolutionsableitung der leeren Klausel gibt, die folgendeBedingungen erfüllt:Bis auf die letzten Resolutionsschritte wird immer eineTatsachenklausel mit einer Prozedurklausel unifiziert. Dadurchentsteht entweder eine Tatsachen- oder eine Prozedurklausel.In den letzten Schritten werden dann Tatsachenklauseln mitder Zielklausel G resolviert, um □ zu erhalten.Weil eine der beiden Klauseln nur ein Element enthält, wird dieseResolution als unäre Resolution oder unit resolution bezeichnet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 364


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionJetzt wieder zurück zur Verifikation von kryptographischenProtokollen . . .Idee: modelliere das Protokoll durch eine Menge von Hornklauselnund zeige, dass eine gegebene Zielklausel – die beispielsweiseausdrückt, dass der Angreifer in den Besitz des Geheimnisseskommen kann – nicht ableitbar ist.Um ausreichende Effizienz zu erreichen, betrachten wir eineEinschränkung des angewandten π-Kalküls: insbesondere werdenFunktionssymbole nach Konstruktoren und Destruktorenunterschieden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 365


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionKonstruktoren und DestruktorenWir unterteilen die Menge der Funktionssymbole in Konstruktorenund Destruktoren.Außerdem wird das Format der Gleichungen in Σ folgendermaßeneingeschränkt: alle Gleichungen sind von der Formg(M 1 , . . . , M n ) = M,wobei M 1 , . . . , M n , M nur aus Variablen, Namen undKonstruktoren aufgebaut sind (wir bezeichnen solche Terme alsKonstruktorterme) und g ein Destruktor ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 366


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDie meisten der von uns betrachteten Theorien erlauben dieseKlassifizierung.Beispiel:Symmetrische VerschlüsselungFunktionen sdecrypt und sencryptGleichungen:Σ = {sdecrypt(sencrypt(x, y), y) = x}Hier ist sdecrpyt ein Destruktor und sencrypt ein Konstruktor.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 367


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAußerdem wird die Semantik des Kalküls modifiziert, insbesonderedie Reduktionsregel für das Versenden von Nachrichten und dieReduktionsregeln für If-Then-Else:c〈M〉.P | c(x).Q → P | Q[x/M]if M = N then P else Q → Pfalls Σ ⊢ M = Nif M = N then P else Q → Qfalls M, N variablenfreie Terme sind und Σ ⊬ M = Nwobei M und N in allen Fällen Konstruktorterme sindBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 368


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBemerkungen: durch diese Modifikation entsteht ein Kalkül mitanderem Reduktionsverhalten. Insbesondere kann Senden undIf-Then-Else blockierend sein.Beispiele:Der Prozess P = c〈sdecrypt(m, K)〉.0 verschickt seineNachricht nie, da es sich bei sdecrypt(m) nicht um einenKonstruktorterm handelt.Der Prozess Q = c(x).c〈sdecrypt(x, K)〉.0 verschickt seineNachricht dann, wenn er auf c zuvor eine Nachricht empfängtund für x einsetzt, die dazu führt, dass sdecrypt(x, K) zueinem Konstruktorterm vereinfacht werden kann. Dies istbeispielsweise bei einer Nachricht der Form sencrypt(m, K)der Fall.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 369


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBemerkungen:Dieses blockierende Verhalten kann auch für die Modellierung Sinnmachen.Insbesondere kann damit ausgedrückt werden, dass ein Prozessnicht weiterarbeitet, wenn er eine empfangene Nachricht nichtentschlüsseln kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 370


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten das kleine Beispielprotokoll in vereinfachter Form.(Wir lassen das Signieren des Sitzungsschlüssels K weg.)1 B → A: P B2 A → B: {K} PB3 B → A: {m} KBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 371


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIm angewandten π-Kalkül:Alice: A = (νK) ( c(p).Bob: B = (νm)(νK B ) (c〈pk(K B )〉.c〈aencrypt(K, p)〉.c(x).0 )c(y).c〈sencrypt(m, adecrypt(y, sk(K B )))〉.0 )Alle für den Angriff nicht notwendigen Teile der Prozesse(Bekanntgabe der öffentlichen Schlüssel, Fortsetzungen, etc.)wurden weggelassen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 372


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAlle möglichen Protokollabläufe dieses Protokolls – in Anwesenheiteines Angreifers – werden nun mit Hilfe von Hornklauselnmodelliert.Als Theorien benötigen wir symmetrische und asymmetrischeVerschlüsselung.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 373


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir verwenden Formeln, bestehend aus:Funktionssymbolen, die den Konstruktoren aus der Theorieentsprechen.Konstantensymbolen, die den im Protokoll vorkommendenNamen entsprechen oder das Vorwissen des Angreifersrepräsentieren.Prädikatsymbolen:Att (einstellig)Intuition: Falls Att(M) für einen Konstruktorterm M gilt,so bedeutet dies, dass der Angreifer M kennt.Msg (zweistellig)Intuition: Falls Msg(c, M) für einen Kanal c und einenKonstruktorterm M gilt, so bedeutet dies, dass der Termauf dem Kanal verschickt wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 374


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHornklauseln für die KonstruktorenAtt(x 1 ) ∧ · · · ∧ Att(x n ) → Att(f (x 1 , . . . , x n ))für jeden n-stelligen Konstruktor in der Theorie.Im betrachteten Beispiel:Att(x) ∧ Att(y) → Att(sencrypt(x, y))Att(x) ∧ Att(y) → Att(aencrypt(x, y))Att(x) → Att(pk(x)) (K3)Att(x) → Att(sk(x)) (K4)(K1)(K2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 375


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHornklauseln für die DestruktorenAtt(M 1 ) ∧ · · · ∧ Att(M n ) → Att(M)für jede Gleichung der Form g(M 1 , . . . , M n ) = M.Im betrachteten Beispiel:Att(sencrypt(x, y)) ∧ Att(y) → Att(x)(D1)Att(aencrypt(x, pk(y))) ∧ Att(sk(y)) → Att(x)(D2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 376


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHornklauseln für das Verhalten des AngreifersMsg(x, y) ∧ Att(x) → Att(y) (E1)(Angreifer kann Nachrichten von Kanälen, die er kennt, abfangen.)Att(x) ∧ Att(y) → Msg(x, y)(E2)(Angreifer kann Nachrichten, die er kennt, auf Kanälenverschicken, die er kennt.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 377


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionModellierung des Protokolls (Teil 1)Für einen Teilnehmer des Protokolls werden folgende Hornformelnerzeugt: falls der Teilnehmer nach dem Empfang der Nachrichtenx 1 , . . . , x n (jeweils auf den Kanälen c 1 , . . . , c n ) denKonstruktorterm M als Nachricht auf dem Kanal c verschickt, soerzeugen wir folgende Klausel:Msg(c 1 , x 1 ) ∧ · · · ∧ Msg(c n , x n ) → Msg(c, M)Es muss jede der vorher empfangenen Nachrichten berücksichtigtwerden, denn M könnte alle entsprechenden Variablen enthalten.Im betrachteten Beispiel: Verhalten von AliceMsg(c, p) → Msg(c, aencrypt(K, p))(A1)Dabei sind c, K Konstanten und p eine Variable.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 378


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionModellierung des Protokolls (Teil 2)Falls der Term M, der verschickt wird, kein Konstruktorterm ist, sowird folgendermaßen verfahren:Wir betrachten alle minimalen Substitutionen sub, so dassΣ ⊢ Msub = M ′ , wobei M ′ ein Konstruktorterm ist.(“Minimal” bedeutet, dass so wenig wie möglich ersetzt wird,analog zum allgemeinsten Unifikator.)Für jede solche Substitution sub wird folgende Klausel erzeugt:Msg(c 1 , x 1 sub) ∧ · · · ∧ Msg(c n , x n sub) → Msg(c, M ′ )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 379


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIm betrachteten Beispiel: Verhalten von BobMsg(c, pk(K B ))(B1)Msg(c, aencrypt(z, pk(K B ))) → Msg(c, sencrypt(m, z))(B2)Dabei sind c, K B , m Konstanten und z eine Variable.Die für den zweiten Fall eingesetzte Substitution istsub = [y/aencrypt(z, pk(K B ))], die dazu führt, dassΣ ⊢ Msub = sencrypt(m, z), wobeiM = sencrypt(m, adecrypt(y, sk(K B ))).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 380


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionVorwissen des AngreifersDer Angreifer erhält Wissen über alle freie Kanäle, außerdem erhälter Konstanten, die er als Nonces bzw. Schlüssel einsetzen kann.Im betrachteten Beispiel:Att(c)Att(K E )(V1)(V2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 381


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionZielklauselWir betrachten zunächst den Fall der Geheimhaltung einerNachricht m. Dann ist die ZielklauselAtt(m)Dabei wird die Zielklausel negiert zur Klauselmenge hinzugefügt:{¬Att(m)} (Z)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 382


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionMit Hilfe der obigen Hornklauseln, kann man die leere Klauselableiten, wir benutzen dazu unäre Resolution.{Att(c)}(V1){¬Att(x), ¬Att(y), Msg(x, y)}(E2){¬Att(y), Msg(c, y)}(R1){Att(c)}(V1){¬Msg(x, y), ¬Att(x), Att(y)}(E1){¬Msg(c, y), Att(y)}(R2)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 383


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{¬Msg(c, y), Att(y)}(R2) {Msg(c, pk(K B ))}(B1){Att(pk(K B ))}(R3)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 384


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Att(K E )}(V2){¬Att(x), Att(pk(x))}(K1){¬Att(y), Msg(c, y)}(R1){Att(pk(K E ))}(R4){¬Msg(c, p), Msg(c, aencrypt(K, p))}(A1) {Msg(c, pk(K E ))}{Msg(c, aencrypt(K, pk(K E )))}(R5)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 385


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Msg(c, aencrypt(K, pk(K E )))}(R5) {¬Msg(c, y), Att(y)}(R2){Att(aencrypt(K, pk(K E )))}(R6)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 386


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Att(K E )}(V2){¬Att(x), Att(sk(x))}(K2){¬Att(aencrypt(x, pk(y))), ¬Att(sk(y)), Att(x)}(D1){Att(sk(K E ))}{Att(aencrypt(K, pk(K E )))}(R6){¬Att(aencrypt(x, pk(K E ))), Att(x)}{Att(K)}(R7)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 387


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Att(pk(K B ))}(R3) {¬Att(x), ¬Att(y), Att(aencrypt(x, y))}(K3){Att(K)}(R7) {¬Att(x), Att(aencrypt(x, pk(K B ))))}{¬Att(y), Msg(c, y)}(R1) {Att(aencrypt(K, pk(K B ))))}{Msg(c, aencrypt(K, pk(K B )))}(R8)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 388


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolution{Msg(c, aencrypt(K, pk(K B )))}(R8){¬Msg(c, aencrypt(z, pk(K B ))),Msg(c, sencrypt(m, z))}(B2){¬Msg(c, y), Att(y)}(R2){Msg(c, sencrypt(m, K))}{¬Att(sencrypt(x, y)), ¬Att(y), Att(x)}(D2) {Att(sencrypt(m, K))}{Att(K)}(R7){¬Att(m)}(Z){¬Att(K), Att(m)}{Att(m)}□Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 389


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionD.h., die leere Klausel ist ableitbar und es gibt damit einen Angriffauf dieses Protokoll.Der Angriff läßt sich auch aus dem Resolutionsbeweis herleiten.Es ist jedoch noch nicht klar, wie man im Fall eines korrektenProtokolls beweisen soll, dass die leere Klausel nicht herleitbar ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 390


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAchtung:Der obige Resolutionsbeweis entspricht einem Angriff, derauch in dem Fall funktionieren würde, wenn derSitzungsschlüssel von Alice signiert wird. (Eve “denkt” sicheinen öffentlichen Schlüssel für Bob aus und schickt diesen anAlice.)In dem vereinfachten Protokoll gibt es noch einen direkterenAngriff für Eve: sie erzeugt einfach selbst denSitzungsschlüssel, verschlüsselt diesen mit dem öffentlichenSchlüssel von Bob und schickt diese Nachricht an Bob.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 391


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionZunächst betrachten wir aber, wie weitere syntaktische Konstruktedes π-Kalküls in Hornklauseln übersetzt werden. Bisher hatten wirnur sequentielle Abfolgen von Präfixen betrachtet.Parallele KompositionEin Prozess P | Q wird dadurch übersetzt, dass sowohl dieKlauseln von P als auch die Klauseln von Q erzeugt werden.ReplikationIn einem Prozess der Form !P wird die Replikation zunächstignoriert. Die Tatsache, dass unter einer Replikation aber immerwieder neue Namen erzeugt werden können, wird im nächsten Fallbehandelt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 392


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionVerschattungIn einem Prozess der Form (νu)P wird für jede Folge vonNachrichten, die zuvor empfangen wurden, ein neuer Name uerzeugt. Das gilt insbesondere wenn sich der Prozess unter einerReplikation befindet. Um dies zu beschreiben, wird u ersetzt durchu(x 1 , . . . , x n ), wobei die Variablen aus den vorher vorkommendenEingabe-Präfixen entnommen werden.Beispiel: !c(x).(νn)(d〈n〉.P) ergibt unter anderem die HornklauselMsg(c, x) → Msg(d, n(x))Das ist ähnlich zu der sogenannten Skolemisierung, bei derExistenzquantoren in prädikatenlogischen Formeln eliminiertwerden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 393


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIf-Then-ElseIn einem Prozess der Form if M = N then P else Q bestimmtman die minimalen Substitutionen sub, so dass Σ ⊢ Msub = Nsubund Msub ein Konstruktorterm ist. Auf die Klauseln, die aus Pentstehen, werden dann diese Substitutionen angewandt, um dieeigentlichen Hornklauseln zu erhalten. Die Klauseln, die aus Qentstehen, bleiben unverändert.Beispiel: c(x).(if n = sdecrypt(x, K) then d〈x〉.0 else 0)sub = [x/sencrypt(n, K)] ist die einzige minimale Substitution, diezur Gleichheit von n und sdecrypt(x, K) führt.Aus dem Then-Fall entsteht damit die KlauselMsg(c, sencrypt(n, K)) → Msg(d, sencrypt(n, K)).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 394


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDas Verifikationsverfahren arbeitet zwar mit Überapproximation,ist aber in folgendem Sinne korrekt:Korrektheit des VerifikationsverfahrensWenn es einen Angriff auf das Protokoll gibt, dann ist die erzeugteKlauselmenge unerfüllbar, d.h., die leere Klausel ist ableitbar.bzw.Wenn die leere Klausel nicht ableitbar ist, dann gibt es keinenAngriff auf das Protokoll. D.h., das Protokoll ist korrekt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 395


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionLiteraturhinweise zur Verifikation von kryptographischenProtokollen mit Hornklauseln:Bruno Blanchet: Using Horn Clauses for Analyzing SecurityProtocols. Formal Models and Techniques for AnalyzingSecurity Protocols. IOS Press, 2010.(Überblick und Beschreibung der verwendetenResolutionstechniken)Martín Abadi and Bruno Blanchet: Analyzing SecurityProtocols with Secrecy Types and Logic Programs. Journal ofthe ACM, 52(1):102-146, 2005.(Enthält unter anderem das Verfahren zur Übersetzung vonProzessen in Horn-Klauseln)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 396


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBruno Blanchet: Automatic Verification of Correspondencesfor Security Protocols. Journal of Computer Security,17(4):363-434, 2009.(Beschreibt die Verifikation von Authentifizierung)Artikel sind erhältlich unterhttp://www.di.ens.fr/~blanchet/publications/Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 397


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun die Funktionsweise von ProVerif:ProVerif hat zwei verschiedene Eingabeformate: Hornklauselnund Prozesse des angewandten π-Kalküls. Wir verwenden nurdas zweite Eingabeformat.ProVerif liefert eine der folgenden drei Ausgaben:Die zu verifizierende Eigenschaft ist erfüllt. (Zielklauselist durch Resolution nicht herleitbar.)Es gibt einen Angriff (mit Ausgabe des Angriffs).Die Eigenschaft kann nicht verifiziert werden. (Zielklauselist durch Resolution herleitbar, es kann jedoch keinAngriff gefunden werden.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 398


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun das obige Beispielprotokoll Protokoll undmodellieren es in ProVerif:param traceDisplay = long.(* Kleines Beispiel-Protokoll - vereinfacht *)free c.(* Asymmetric Encryption *)fun aencrypt/2.fun pk/1.fun sk/1.reduc adecrypt(aencrypt(m,pk(k)),sk(k)) = m.(* Symmetric Encryption *)fun sencrypt/2.reduc sdecrypt(sencrypt(m,k),k) = m.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 399


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionquery attacker:secretM[].let processA =new K;in(c, p);out(c, aencrypt(K,p));in(c, x).let processB =new secretM;new Kb;out(c,pk(Kb));in(c,y);out(c,sencrypt(secretM,adecrypt(y,sk(Kb)))).process(processA | processB)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 400


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAufruf von ProVerif:> proverif -in pi beispiel-prot-simple[...]A trace has been found.RESULT not attacker:secretM_8[] is false.Es wird auch der Angriff explizit ausgegeben.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 401


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun die Modellierung des fehlerhaftenNeedham-Schroeder-Protokolls in ProVerif.param traceDisplay = long.(* Needham-Schroeder - fehlerhaft *)free cs.free cab.free fail.(* Symmetric Encryption *)fun sencrypt/2.fun ok/0.reduc sdecrypt(sencrypt(m,k),k) = m.reduc check(sencrypt(m,k),k) = ok().(* Dekrementierung *)fun dec/1.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 402


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionquery ev:a(x,y) ==> ev:b(y,x).let processA =new Na;out(cs, (A,B,Na));in(cs, x);let (N,Kab,M) = sdecrypt(x,Kas) inif N=Nathen out(cab,M);in(cab,y);if check(y,Kab)=ok()then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));event a (A,B).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 403


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processB =new Nb;in(cab,x);let (Kab,a) = sdecrypt(x,Kbs) inevent b (B,a);out(cab,sencrypt(Nb,Kab));in(cab,y);if sdecrypt(y,Kab) = dec(Nb)then 0else out(fail,()).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 404


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processS =in(cs,(t1,t2,N));new K;if t1=A then (if t2=B thenout(cs,sencrypt((N,K,sencrypt((K,A),Kbs)),Kas))else if t2=E thenout(cs,sencrypt((N,K,sencrypt((K,A),Kes)),Kas)))else if t1=B then (if t2=A thenout(cs,sencrypt((N,K,sencrypt((K,B),Kas)),Kbs))else if t2=E thenout(cs,sencrypt((N,K,sencrypt((K,B),Kes)),Kbs)))else if t1=E then (if t2=A thenout(cs,sencrypt((N,K,sencrypt((K,E),Kas)),Kes))else if t2=B thenout(cs,sencrypt((N,K,sencrypt((K,E),Kbs)),Kes))).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 405


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionprocessnew Kas;new Kbs;(processA | processB | processS)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 406


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBei Aufruf von ProVerif wird wieder ausgegeben, dass dieEigenschaft nicht erfüllt ist:> proverif -in pi my-needham-schroeder[...]A trace has been found.RESULT ev:a(x_25,y_26) ==> ev:b(y_26,x_25) is false.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 407


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionHier wird korrekte Authentifizierung durch Korrespondenz vonEreignissen überprüft:Wenn Ereignis (event) a(x,y) eintritt, dann muss zuvorEreignis b(y,x) eingetreten sein.Dazu reichert man die Syntax und Semantik des π-Kalküls umEreignisse an.Die Verifikation funktioniert in etwa folgendermaßen: es wirdüberprüft, dass in jedem Resolutionsbeweis, der eineTatsachenklausel mit dem Ereigniss a(x,y) ableitet, b(y,x)als Hypothese verwendet wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 408


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDas Needham-Schroeder-Protokoll kann korrigiert werden, so dassdie Verifikation erfolgreich ist. Insbesondere muss dazu der Serverden Namen des Kommunikationspartners mit in die Nachrichtaufnehmen und Alice muss dies überprüfen.Wir ändern das Protokoll (insbesondere die Prozesse, die Alice undden Server beschreiben) entsprechend ab . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 409


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processA =new Na;out(cs, (A,B,Na));in(cs, x);let (N,b,Kab,M) = sdecrypt(x,Kas) inif N=Nathen if b=Bthen out(cab,M);in(cab,y);if check(y,Kab)=ok()then out(cab,sencrypt(dec(sdecrypt(y,Kab)),Kab));event a (A,B).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 410


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processS =in(cs,(t1,t2,N));new K;if t1=A then (if t2=B thenout(cs,sencrypt((N,B,K,sencrypt((K,A),Kbs)),Kas))else if t2=E thenout(cs,sencrypt((N,E,K,sencrypt((K,A),Kes)),Kas)))else if t1=B then (if t2=A thenout(cs,sencrypt((N,A,K,sencrypt((K,B),Kas)),Kbs))else if t2=E thenout(cs,sencrypt((N,E,K,sencrypt((K,B),Kes)),Kbs)))else if t1=E then (if t2=A thenout(cs,sencrypt((N,A,K,sencrypt((K,E),Kas)),Kes))else if t2=B thenout(cs,sencrypt((N,B,K,sencrypt((K,E),Kbs)),Kes))).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 411


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDieses Verifikationsverfahren ist eine Approximationstechnik.Über-Approximation entsteht insbesondere durch folgende Effekte:Die Kodierung ignoriert wie oft eine Aktion ausgeführt wird.Auch wenn eine Nachricht nur einmal empfangen werdenkann, kann die dazugehörige Hornklausel beliebig oftverwendet werden. Das bedeutet im wesentlichen, dass jederProzess als replizierter Prozess betrachtet wird.Außerdem entsteht Überapproximation durch die Behandlungvon If-Then-Else-Anweisungen. (Vor allem durch fehlendeEinschränkungen für den Else-Fall.)Des weiteren können verschattete Namen, die eigentlichverschieden sind, durch die Approximation als gleichangesehen werden.Dies führt jedoch nur zu zusätzlichem Verhalten, tatsächlicheSystemabläufe werden nie unterschlagen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 412


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionIn folgendem Beispiel kann Prozess processB nur einen Nonceentschlüsseln und zurückschicken, processA schickt daher niemalsdas Geheimnis. Das kann durch die Überapproximation jedochnicht erkannt werden.param traceDisplay = long.(* Beispiel fuer Ueberapproximation *)free c.(* Symmetric Encryption *)fun sencrypt/2.reduc sdecrypt(sencrypt(m,k),k) = m.query attacker:secretM[].Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 413


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und Resolutionlet processA =new N1;new N2;out(c,sencrypt(N1,K));out(c,sencrypt(N2,K));in(c,x1);in(c,x2);if x1=N1then if x2=N2 then out(c,secretM)else 0 else 0.let processB =in(c,x);out(c,sdecrypt(x,K)).processnew K;new secretM;(processA | processB)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 414


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProVerif erzeugt folgende Ausgabe:> proverif -in pi approx[...]Could not find a trace corresponding to this derivation.RESULT not attacker:secretM_7[] cannot be proved.Ein echter Angriff wird jedoch gefunden, wenn processB repliziertwird. Denn dann kann er beliebig viele Nonces entschlüsseln.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 415


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir betrachten nun die von ProVerif verwendetenResolutionstechniken genauer.Ein Hauptproblem beim Einsatz von Resolution ist dieTerminierung. Für eine gegebene Menge M von Klauseln ist esnormalerweise nicht klar, dass Res ∗ (M) endlich ist und derResolutionsprozess damit terminiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 416


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel:Wir betrachten einen Konstruktor f und einen Destruktor g (beideeinstellig) mit der Gleichungg(f(x)) = xDies ergibt folgende Hornklauseln:Att(f(x)) → Att(x)Att(x) → Att(f(x))Wir nehmen an, dass der Angreifer folgendes Vorwissen hat:für eine Konstante a.Att(a)Att(f(a))Ziel ist es, zu zeigen, dass der Angreifer nicht in den Besitz von bgelangen kann, wobei b eine weitere Konstante ist. D.h., dieZielklausel ist ¬Att(b).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 417


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProbleme mit SLD-Resolution:Bei SLD-Resolution kann folgende unendliche Folge vonResolventen entstehen:{¬Att(b)} {¬Att(f(x)), Att(x)}{¬Att(f(b))} {¬Att(f(x)), Att(x)}{¬Att(f(f(b)))}.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 418


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionProbleme mit unärer Resolution:Auch unäre Resolution funktioniert hier nicht. Wir erhaltenfolgenden unendlichen Resolutionsbeweis:{Att(a)} {¬Att(x), Att(f(x))}{Att(f(a))} {¬Att(x), Att(f(x))}{Att(f(f(a)))}.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 419


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDaher wird folgendes Vorgehen benutzt:Wir beginnen mit der Klauselmenge ohne die Zielklausel.Es gibt eine Selektionsfunktion sel, die aus jeder Klausel einoder kein negatives Literal auswählt. Klauseln K 1 , K 2 werdennur dann resolviert, wenn kein Literal in K 1 ausgewählt ist unddas zu resolvierende Literal von K 2 ausgewählt ist.Nachdem alle oben möglichen Resolventen wie obenbeschrieben gebildet wurden, werden alle Klauseln entfernt,bei denen ein Literal selektiert ist.Dann wird, mit den übrigen Klauseln, von der Zielklausel auseine Rückwärtsresolution (ähnlich zur SLD-Resolution)durchgeführt.(Das ist eine etwas vereinfachte Darstellung! Details befinden sichin den Artikeln von Blanchet.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 420


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAußerdem wird darauf geachtet, dass “überflüssige” Klauseln, diebereits durch andere Klauseln subsumiert werden, sofort entferntwerden.SubsumptionGegeben seien zwei Klauseln K 1 , K 2 folgender Form:K 1 = P 1 ∧ · · · ∧ P m → P 0K 2 = P ′ 1 ∧ · · · ∧ P ′ n → P ′ 0Man sagt, dass die Klausel K 1 die Klausel K 2 subsumiert (inZeichen: K 1 ⊒ K 2 ), falls es eine Substitution sub gibt mit:P 0 sub = P ′ 0 und{P 1 , . . . , P m }sub ⊆ {P ′ 1 , . . . , P′ n}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 421


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBemerkungen:In obiger Definition gilt möglicherweise m = 0 oder n = 0,d.h., es gibt keine negativen Literale.Aus K 1 ⊒ K 2 folgt K 1 |= K 2 (logische Implikation). Dieumgekehrte Richtung gilt jedoch nicht notwendigerweise.Falls die Resolution von K 2 und einer weiteren Klausel Keinen Resolventen R 2 ergibt, so ergibt entweder die Resolutionvon K 1 und K einen Resolventen R 1 mit R 1 ⊒ R 2 oder es giltbereits K 1 ⊒ R 2 .D.h., es reicht, mit der Klausel K 1 weiterzuresolvieren, da alleResolutionsschritte von K 2 durch K 1 “imitierbar” sind undman sogar allgemeinere Klauseln erhält.Klauseln, die durch andere Klauseln subsumiert werden,werden aus der Menge der Resolventen entfernt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 422


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel:Gegeben seien folgende Klauseln K 1 , K 2 :K 1 = P(x) → R(x)K 2 = P(f(x)) ∧ Q(x) → R(f(x))Die Klausel K 1 subsumiert K 2 (K 1 ⊒ K 2 ). Die dazugehörigeSubstitution ist sub = [x/f(x)]Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 423


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionSelektionsfunktionWir nehmen an, dass eine Selektionsfunktion existiert, die einerKlausel K = P 1 ∧ · · · ∧ P m → P 0 entweder ein negatives Literalzuordnet, das in der Klausel vorkommt (sel(K) = {P i }) oder dieleere Menge zurückgibt (sel(K) = ∅).Im ersten Fall sagt man, dass P i selektiert ist, im zweiten Fall istkein Literal selektiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 424


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDie folgenden Korrektheitsbeweise funktionieren mit jederbeliebigen Selektionsfunktion. Für die Terminierung ist es jedochwichtig, eine “gute” Selektionsfunktion zu wählen.In unserem Fall ist eine gute Selektionsfunktion eine Funktion, dieniemals ein Prädikat der Form Att(x) selektiert. Für solche Literaleergeben sich nämlich sehr viele Resolutionsmöglichkeiten. Falls esunter den negativen Literalen ein Prädikat gibt, das von Att(x)verschieden ist, dann wird aber auf jeden Fall eines davonselektiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 425


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionSaturierung/SättigungGegeben sei eine Menge M von Klauseln. Wir bestimmen eineMenge M ′ dadurch, dass wir (iteriert) alle möglichen Resolventenaus den Klauseln in M bilden (analog zu Res ∗ ). Dabei wird jedochfolgende Bedingung eingehalten:Angenommen, es werden zwei Klauseln K 1 , K 2 miteinanderresolviert, wobei das positive Literal aus K 1 und das negativeLiteral aus K 2 genommen wird: dann darf in K 1 kein Literalselektiert sein und das zu resolvierende Literal in K 2 mussselektiert sein.Klauseln, die durch bereits existierende Klauseln subsumiertwerden, werden sofort entfernt.Wir bestimmen nun Saturate ∗ (M) dadurch, indem wir alleKlauseln K mit sel(K) ≠ ∅ aus M ′ entfernen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 426


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel: wir bilden Saturate ∗ (M) für folgende Klauselmenge M(noch ohne Zielklausel){{¬Att(f(x)), Att(x)}, {¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))}}Nur in der ersten Klausel ist ein Literal selektiert. Diese Klauselkann mit der zweiten und vierten Klausel resolviert werden undman erhält:{¬Att(x), Att(x)}{Att(a)}In beiden Klauseln ist kein Literal selektiert. Außerdem ist die ersteder beiden neuen Klauseln eine Tautologie (und könnte entferntwerden), die zweite gab es bereits.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 427


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel (Fortsetzung):Die Saturierung terminiert also und wir erhalten als Ergebnis:Saturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},{¬Att(x), Att(x)}}Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 428


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBemerkung:Die übrigbleibenden Klauseln sind alle von der FormAtt(x 1 ) ∧ · · · ∧ Att(x n ) → P 0 ,wobei auch n = 0 möglich ist. Dann handelt es sich um eineTatsachenklausel.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 429


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionKorrektheit der SaturierungGegeben sei eine Zielklausel G.Wenn aus M ∪ {G} durch Resolution die leere Klausel hergeleitetwerden kann, so kann man auch aus Saturate ∗ (M) ∪ {G} die leereKlausel herleiten (und umgekehrt).Beweis: Da Saturate ∗ (M) nur Klauseln enthält, die aus Mhergeleitet werden können, kann man eine Herleitung der leerenKlausel aus Saturate ∗ (M) ∪ {G} immer in eine Herleitung derleeren Klausel aus M ∪ {G} umwandeln.Die andere Richtung ist etwas komplizierter, da bestimmteKlauseln (nämlich diejenigen, in denen ein Literal selektiert ist)entfernt wurden. Angenommen, es gibt eine Herleitung der leerenKlausel aus M ∪ {G}. Wir nehmen an, dass es sich dabei um unäreResolution handelt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 430


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionDiese Herleitung beginnt – neben der Verwendung der Zielklausel –mit Klauseln aus M. Diese Klauseln, die nicht aus anderenKlauseln resolviert werden, bezeichnen wir als Hypothesen.Zunächst argumentieren wir, dass diese Resolutionsableitung soumgeformt werden kann, dass bei Resolution von zwei KlauselnK 1 , K 2 , wobei K 1 eine Tatsachenklausel ist und sel(K 2 ) ≠ ∅ gilt,das selektierte Literal resolviert wird. Ist dies nicht der Fall, so wirddas selektierte Literal später mit einer Tatsachenklausel resolviert,in diesem Fall kann jedoch die Reihenfolge der Resolutionen sogeändert werden, dass das selektierte Literal sofort resolviert wird.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 431


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionWir transformieren nun diesen Resolutionsbeweis in einenResolutionsbeweis für Saturate ∗ (M) ∪ {G}. Die dabeientstehenden Resolutionsbeweise haben Klauseln aus M ′ alsHypothesen, der im letzten Schritt entstehende Resolutionsbeweisbesitzt dann nur noch Klauseln aus Saturate ∗ (M) als Hypothesen.Falls der Beweis als Hypothese eine Klausel K aus M ′ verwendet,die nicht in Saturate ∗ (M) liegt, so gilt sel(K) ≠ ∅. Diese Klauselwird mit einer oder mehreren Tatsachenklausel K 1 , . . . , K nresolviert, wobei immer mit dem in K selektierten Literal resolviertwird (nach der oben beschriebenen Umformung). Dadurchentstehen Resolventen R 1 , . . . , R n , die alle Elemente von M ′ sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 432


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAlso entfernen wir K aus dem Resolutionsbeweis. Das bedeutet,dass wir nun zusätzlich R 1 , . . . , R n als Hypothesen verwenden, dieaber alle in M ′ liegen.In jedem Schritt wird mindestens eine Klausel entfernt, die Größedes Resolutionsbeweises bleibt ansonsten unverändert. D.h., nacheiner festen Anzahl von Schritten erhalten wir einenResolutionsbeweis, der nur noch Klauseln K mit sel(K) = ∅ alsHypothesen verwendet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 433


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAnschließend wird – ausgehend von der Zielklausel G – eineRückwärtsresolution (ähnlich zu einer SLD-Resolution)durchgeführt. Dabei werden noch folgende Optimierungenverwendet:Suchpfade, die zu subsumierten Klauseln führen, werden nichtmehr weiterverfolgt.Die Anzahl der erzeugten Klauseln wird durch Einsatz derSelektionsfunktion minimiert. (Wird nicht im Detailbesprochen.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 434


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionBeispiel: es gilt G = {¬Att(b)} undSaturate ∗ (M) = {{¬Att(x), Att(f(x))}, {Att(a)}, {Att(f(a))},{¬Att(x), Att(x)}}Wir können nur G mit der vierten Klausel aus Saturate ∗ (M)resolvieren, wodurch wir wieder G erhalten (Subsumierung).D.h., nach wenigen Schritten wird abgebrochen und festgestellt,dass die leere Klausel nicht herleitbar ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 435


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenHorn-Formeln und ResolutionAuch bei diesem Vorgehen ist nicht klar, dass das Verfahren immerterminiert. In der Praxis terminiert das Verfahren jedoch sehrhäufig.Man kann auch zeigen, dass für eine bestimmte Klasse vonkryptographischen Protokollen (sogenannte tagged protocols) dasResolutionsverfahren immer terminiert.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 436


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir betrachten nun eine dritte Technik zur Verifikation vonkryptographischen Protokollen: Verhaltensäquivalenzen.Dazu nehmen wir an, dass ein externer Beobachter mit demSystem interagiert. Man möchte feststellen, ob der Beobachter dasSystem Sys von einem anderen System Sys ′ unterscheiden kannoder nicht. (Ähnlich zu Zero-Knowledge.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 437


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir betrachten wieder die ursprüngliche Variante des angewandtenπ-Kalküls (keine Unterscheidung von Konstruktoren undDestruktoren, kein blockierendes Senden und If-Then-Else).Weitere Einzelheiten sind beschrieben in:Martín Abadi, Cédric Fournet: Mobile Values, New Names,and Secure Communication. Proc. of POPL ’01, pp. 104–115,ACM, 2001.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 438


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenZunächst definieren wir die Beobachtungen, die gemacht werdenkönnen.BeobachtungenSei P ein Prozess des angewandten π-Kalküls. Wir schreiben P ⇓ a(a kann in P beobachtet werden), falls es einen EvaluationskontextC[ ] gibt mit P → ∗ C[a〈M〉.Q], wobei a in C nicht gebunden ist.Intuitiv kann man Ausgabeaktionen auf Kanälen (in diesem Fallauf Kanal a) beobachten. Eine solche Beobachtung heißt auchbarb (= Stachel).Beispiel:Für den ProzessP = c〈N〉.0 | c(x).a〈x〉.0gilt P ⇓ c und P ⇓ a.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 439


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir definieren nun Relation auf Prozessen, wobei diese Relationendie Eigenschaft haben müssen, dass zwei Prozesse, die in Relationstehen, sich gegenseitig simulieren können.BisimulationEine symmetrische Relation R auf Prozessen heißt Bisimulation,wenn sie folgende Eigenschaften hat: Falls P R Q, dann gilt:Aus P ⇓ a folgt Q ⇓ a (für jede Beobachtung a)Falls P → ∗ P ′ für einen Prozess P ′ , dann gibt es einenProzess Q ′ mit Q → ∗ Q ′ und P ′ R Q ′ .Für jeden Evaluationskontext C[ ] gilt C[P] R C[Q].Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 440


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBeobachtungskongruenzFalls es für zwei Prozesse P, Q eine Bisimulation R gibt mitP R Q, dann schreiben wir P ≈ Q und sagen, dass P, Qbeobachtungskongruent sind.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 441


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBemerkungen:Man unterscheidet auch zwischen starken und schwachenBisimulationen. Bei schwachen Bisimulationen kann einSchritt durch mehrere andere Schritte simuliert werden. Daherhandelt es sich hier um eine schwache Bisimulation.Der Evaluationskontext C[ ] steht intutiv für den Angreifer.Falls er die beiden Prozesse unterscheiden kann, dann kann erdies durch eine Beobachtung auf einem Kanal abekanntgeben.Die obige Definition für Bisimulation ist algorithmischunbrauchbar, da über alle Kontexte quantifiziert wird. Es gibtjedoch alternative, besser handhabbare Definitionen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 442


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBeispiele: folgende Paare von Prozessen sindbeobachtungskongruentP = 0, Q = (νa)(a〈M〉.0)P = 0, Q = (if a = b then c〈M〉.0 else 0)P = (νa)(c〈a〉.0), Q = (νb)(c〈f(b)〉.0), wobei f eine Funktionist, für die keine Gleichungen existieren (Einwegfunktion).D.h., es kann nicht festgestellt werden, ob ein (frischer) Wertals Bild einer Einwegfunktion entstanden ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 443


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenGeheimhaltung mit VerhaltensäquivalenzenSei P ein Prozess mit einer freien Variablen x, die für eineNachricht steht. Ein Prozess P gewährleistet die Geheimhaltungder entsprechenden Nachricht, wennP[x/m] ≈ P[x/n]für zwei beliebige Namen m, n gilt.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 444


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBeispiel:Der Prozess P = (νK)(c〈sencrypt(x, K)〉.0) hält alle Nachrichtengeheim, die für x eingesetzt werden, denn es gilt:(νK)(c〈sencrypt(n, K)〉.0) ≈ (νK)(c〈sencrypt(m, K)〉.0)für beliebige Namen m, n.Intuition: der Angreifer kennt höchstens einen Schlüssel, derverschieden von K ist. Auch wenn der Angreifer m bzw. n besitzensollte, so kann er nicht überprüfen, ob diese Nachrichtenverschlüsselt den verschickten Nachrichten entsprechen. Alles, waser erzeugt, ist verschieden von sencrypt(m, K) und sencrypt(n, K).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 445


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzen: Beispiel MACsWir betrachten nun als Anwendungsbeispiel sogenannte MACs(Message Authentication Codes), die auf symmetrischerVerschlüsselung basieren. Sie haben eine ähnliche Funktion wieSignaturen, die auf asymmetrischer Verschlüsselung basieren.Üblicherweise wird dabei eine Nachricht, zusammen mit einer ArtVerschlüsselung der Nachricht unter einem symmetrischenSchlüssel K verschickt. Dann können die Besitzer von Küberprüfen, dass tatsächlich einer von ihnen die Nachricht erzeugthat.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 446


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzen: Beispiel MACsZur Formalisierung im angewandten π-Kalkül verwenden wir einezweistellige Funktion mac. Der Term mac(K, m) (für eineNachricht m und einen symmetrischen Schlüssel K) wird alsBeweis aufgefasst, dass die Nachricht von einem Teilnehmergeschickt wurde, der den symmetrischen Schlüssel K kennt.Bei Empfang einer Nachricht m mit MAC M berechnet derEmpfänger mac(K, m) und überprüft, ob dieser Wert gleich M ist.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 447


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenSzenario: eine von Alice weitergeleitete Nachricht wird von Bobempfangen und nur dann weitergeschickt, wenn sie die korrekteMAC hat:A = !a(x).b〈pair(x, mac(K, x))〉.0B = b(y). (if mac(K, fst(y)) = snd(y) then c〈fst(y)〉.0 else 0)Sys = (νK)(A | B)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 448


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir diskutieren nun Aspekte, die sich bei der Erzeugung von MACsmit Hilfe der Merkle-Damgård-Konstruktion ergeben. Diesefunktioniert wie folgt:Es wird eine Einweg-Kompressionsfunktion h verwendet, diezwei Blöcke auf einen Block abbildet.Ein initialer Wert (= Schlüssel K) wird nun mit dem erstenBlock der Nachricht bezüglich h verknüpft. Der entstehendeWert wird mit dem zweiten Block der Nachricht verknüpft,usw.Nachricht mBlock 1Block 2Block nK h h hMACBarbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 449


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDiese Konstruktion von MACs hat in der vorgestellten Formfolgenden Nachteil:Falls eine MAC für eine Nachricht m bekannt ist, so kann man –da die Kompressionsfunktion h bekannt ist – einfach eine MAC füreine Nachricht m konkateniert mit m ′ gewinnen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 450


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir modellieren diese Art der MAC-Berechnung im angewandtenπ-Kalkül. Dazu verwenden wireine zweistellige MAC-Funktion f (entspricht mac),die zweistellige Kompressionsfunktion h,eine Konstante null für die leere Folge von Blöcken undeine zweistellige Funktion concat (zur Konkatenation vonBlöcken (eine Folge m 1 , m 2 , m 3 wird alsconcat(concat(concat(null, m 1 ), m 2 ), m 3 ) dargestellt).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 451


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDazu stellen wir folgende Gesetze auf:mac(x, y) = f(x, y)f(x, null) = xf(x, concat(y, z)) = h(f(x, y), z)Natürlich sollte immer mindestens ein Block verschlüsselt werden,ansonsten wird der Schlüssel offengelegt.Beispiel:mac(K, concat(concat(null, m 1 ), m 2 ))= f(K, concat(concat(null, m 1 ), m 2 ))= h(f(K, concat(null, m 1 )), m 2 )= h(h(f(K, null), m 1 ), m 2 )= h(h(K, m 1 ), m 2 )Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 452


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDer Angriff sieht formal wie folgt aus:Gegeben ist eine MAC M = f(K, m)Dann berechnet man daraush(M, m ′ ) = h(f(K, m), m ′ ) = f(K, concat(m, m ′ ))D.h., falls es eine MAC zu einer existierenden Nachricht m gibt, sokann der Angreifer MACs zu beliebigen Verlängerungen von merzeugen, ohne K zu kennen.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 453


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDer Angreifer im angewandten π-Kalkül sieht wie folgt aus:E = a〈m〉.b(y).b〈pair(concat(m, m ′ ), h(snd(y), m ′ ))〉.0Eve läßt von Alice eine MAC für die Nachricht m erstellen, schicktdann aber die Konkatenation von m, m ′ mit einer gültigen MAC,die aber nicht von Alice erstellt wurde.Eine Möglichkeit, solche Angriffe zu verhindern, ist es, folgendeFunktion für die Berechnung der MAC zu verwenden:mac(x, y) = f(x, f(x, y))Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 454


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenDamit haben wir drei Möglichkeiten, MACs zu spezifizieren:Mit einer zweistelligen Funktion mac, ohne jede Gleichungen.Mit der Gleichung mac(x, y) = f(x, y).Mit der Gleichung mac(x, y) = f(x, f(x, y))Dabei wird f – wie oben – durch iterierte Anwendung derKompressionsfunktion h berechnet.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 455


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenAlle drei Möglichkeiten, können in ProVerif modelliert werden. Dadie Gleichungen jedoch nicht alle die fürDestruktoren/Konstruktoren notwendige Form haben, muss mansich auf die eingeschränkte Gleichungsbehandlung in ProVerifverlassen. Kleine Änderungen an den Gleichungen führen oft zuNicht-Terminierung.Im ersten und letzten Fall kann der Prozess Sys verifiziert werden.Dies geschieht durch Verwendung von Korrespondenzen: Bob löstein Ereignis der Form macb(x) aus, falls er eine Nachricht xweiterschickt. Vorher muss ein Ereignis maca(x) stattgefundenhaben, direkt bevor Alice die Nachricht mit einer MAC versieht.Im zweiten Fall kann der Prozess nicht verifiziert werden. Es wirdjedoch kein durchführbarer Angriff gefunden.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 456


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir möchten nun jedoch zeigen, dass die dritte Variante für dieErzeugung von MACs immer äquivalent zur ersten Variante ist.D.h., wenn es keinen Angriff in der ersten Variante gibt, dann gibtes auch keinen in der dritten Variante. Dies geschieht mit Hilfe derBeobachtungskongruenz.Korrektheit der Erzeugung von MACsSei P ein Prozess, in dem die Schlüssel K 1 , . . . , K n frei vorkommenund nur für die Erzeugung von MACs verwendet werden. Sei P ′ derProzess der aus P entsteht, indem jedes Vorkommen vonmac(K i , M) durch f(K i , f(K i , M)) ersetzt wird.Außerdem gibt es für mac keine Gleichungen und f ist wie obenmit Hilfe der Kompressionsfunktion h definiert. Dann gilt:(Ohne Beweis)(νK 1 ) . . . (νK n )P ≈ (νK 1 ) . . . (νK n )P ′Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 457


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenBemerkung:Mit Hilfe der Beobachtungskongruenz kann zwar Geheimhaltung(siehe oben) und auch Authentifizierung spezifiziert werden, dafürgibt es jedoch meist effizientere Methoden (z.B. Model-Checkingoder Resolution).Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 458


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenVerhaltensäquivalenzen sind jedoch dann nützlich, wennman zeigen will, dass eine Transformation des Protokollsnichts am Verhalten des Protokolls ändert (siehe Berechnungvon MACs).man genau überprüfen will, welches Verhalten der Angreifersehen bzw. nicht sehen kann.(Beispielsweise möchte man für Wahlprotokolle, dass eineWahl, in der Alice X gewählt hat, für den Angreiferununterscheidbar ist von einer Wahl, in der Alice Y gewählthat. Das beschreibt sogenannte receipt-freeness, welchebedeutet, dass der Angreifer Alice nicht zu einer bestimmtenWahl zwingen kann.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 459


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenWir diskutieren noch kurz, wie man Verhaltensäquivalenzenkonkret nachweisen kann.Anstatt auf einem unbeschrifteten Transitionssystem arbeitet manauf einem beschrifteten Transitionssystem (LTS = labelledtransition systems). Dabei beschreiben die Beschriftungen dieInteraktionen des Prozesses mit seiner Umgebung.Beispiele:a(x).b〈x〉.0 a(m)−→ b〈m〉.0(Umgebung schickt Nachricht m auf Kanal a.)a〈m〉.P a〈m〉−→ P(Prozess schickt Nachricht m an Umgebung.)(νm)(a〈m〉.P) (νm)a〈m〉−→ P(Prozess schickt zuvor verschattete Nachricht m anUmgebung.)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 460


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenVerhaltensäquivalenzenAnschließend definiert man Bisimulation auf den beschriftetenTransitionen: eine Transition muss durch eine andere Transitionmit derselben Beschriftung beantwortet werden. DieQuantifizierung über alle Kontext wird weggelassen.Man kann nun zeigen, dass die so definierte Verhaltensäquivalenzmit der Beobachtungskongruenz übereinstimmt.Durch Einsatz zusätzlicher Techniken (z.B. Up-To-Techniken) kannman dann in vielen Fällen erreichen, dass die benötigtenBisimulationen endlich sind. Damit ist die Technik automatisierbar.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 461


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenWeitere VerifikationstechnikenBAN-Logik (Burrows-Abadi-Needham-Logik): Logik, in derman Schlüsse über kryptographische Protokolle ziehen kannund Aussagen folgender Form machen kann: “Teilnehmer Aglaubt X ”, “Teilnehmer B sagt Y ”, “Nonce N ist frisch”AVISPA: Automated Validation of Internet Security Protocolsand Applications (EU-finanziertes Projekt)CASPA: Causality-based Abstraction for Security ProtocolAnalysis (M. Maffei, Universität des Saarlandes)Scyther: A Tool for the Automatic Verification of SecurityProtocols (C. Cremers, ETH Zürich)und viele weitere Methoden und Werkzeuge . . .Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 462


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenVerifikatikonstechniken sollten helfen, Protokolle besser zuverstehen und robustere Protokolle zu entwerfen (auch indemman typische Fehler aufdeckt).Siehe auch Abadi’s Design Principles in Security Protocols:Principles and Calculi – Tutorial Notes. Dort werden typischeFehler besprochen und erklärt, wie man sie vermeiden kann.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 463


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenKann man aus der Korrektheit eines Protokolls nach demDolev-Yao-Eindringlingsmodell auch etwas über dieAngriffsmöglichkeiten von polynomzeitbeschränktenprobabilistischen Angreifern sagen? dazu gibt es inzwischen ebenfalls Arbeiten (beispielsweise:Abadi, Rogaway: Reconciling two views of cryptography (Thecomputational soundness of formal encryption). Journal ofCryptology, 15(2):103–127, 2005.Dieser Bereich ist weiterhin ein interessantesForschungsthema.Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 464


Organisatorisches Einführung Kryptographie Kryptographische Protokolle Verifikation von kryptographischen ProtokollenSchlussbemerkungenEs gibt auch Verfahren, die Protokolle, in denenVerschlüsselungsverfahren (RSA, etc.) explizit Teil desProtokolls sind, direkt verifizieren. (Korrektheit bezüglicheines polynomzeitbeschränkten probabilistischen Angreifers.) Einsatz von Theorembeweisern (beispielsweise: GillesBarthe, Benjamin Grégoire, Sylvain Heraud, Santiago ZanellaBéguelin: Computer-Aided Security Proofs for the WorkingCryptographer. CRYPTO 2011: 71-90)Barbara König “Form. Asp. der Software-Sicherheit und Kryptographie” 465

Weitere Magazine dieses Users
Ähnliche Magazine