Modul Kryptographie 1 - Lehrstuhl für Netz
Transcription
Modul Kryptographie 1 - Lehrstuhl für Netz
Modul Kryptographie 1 Studienbrief 1: Einführung und Stromchiffren Studienbrief 2: DES Studienbrief 3: AES Studienbrief 4: More about block ciphers Studienbrief 5: Message Authentication Codes Autoren: Christof Paar Jan Pelzl 1. Auflage Ruhr - Universität Bochum © 2014 Christof Paar Ruhr - Universität Bochum Universitätsstraße 150 44801 Bochum 1. Auflage (10. Januar 2014) Didaktische und redaktionelle Bearbeitung: Christoph Bader, Romy Rahnfeld Das Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Verwendung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung der Verfasser unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Inhaltsverzeichnis Seite 3 Inhaltsverzeichnis Einleitung zu den Studienbriefen I. II. III. Abkürzungen der Randsymbole und Farbkodierungen . . . . . . . . . . . . . . . . . . . . . . Zu den Autoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modullehrziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studienbrief 1 1.1 1.2 Studienbrief 2 2.1 2.2 More about block ciphers Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studienbrief 5 5.1 5.2 AES Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studienbrief 4 4.1 4.2 DES Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Studienbrief 3 3.1 3.2 Einführung und Stromchiffren Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Message Authentication Codes Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verzeichnisse I. II. Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 6 7 7 7 13 13 13 18 18 18 21 21 21 24 24 24 30 30 30 Seite 4 Einleitung zu den Studienbriefen Einleitung zu den Studienbriefen I. Abkürzungen der Randsymbole und Farbkodierungen Axiom A Beispiel B Definition D Exkurs E Kontrollaufgabe K Merksatz M Quelle Q Satz S Übung Ü Zu den Autoren Seite 5 II. Zu den Autoren Christof Paar ist Inhaber des Lehrstuhls Embedded Security an der RuhrUniversität Bochum und ist außerplanmäßiger Professor an der University of Massachusetts at Amherst, USA. Er arbeitet seit 1995 im Bereich der angewandten Kryptographie. Dr. Paar lehrt seit über 15 Jahren an Universitäten, sowohl in Europa als auch in den USA, zu Themen der Kryptographie und Datensicherheit. Darüber hinaus gibt er Kurse für Teilnehmer/-innen aus der Industrie, u.a. für Motorola Research, die NASA und Philips Research. Dr. Paar hat mehr als 150 Publikationen im Bereich der angewandten Kryptographie und ist Mitgründer des Workshop on Cryptographic Hardware and Embedded Systems (CHES). Jan Pelzl hat in angewandter Kryptologie promoviert und ist Hauptgeschäftsführer der ESCRYPT - Embedded Sedurity, einer führenden Firma im Bereich der Sicherheitsbereatung. Er hat erfolgreich zahlreiche nationale und internationale Industrieprojekte geleitet und tiefgehende Kenntnisse über Sicherheitsbedürfnisse in echten Systemen. Dr. Pelzl hat praktische Aspekte der Kryptographie und Kryptanalyses von elliptischen Kurven erforscht. Seine theoretischen und praktischen Ergebnisse hat er auf/ in international führenden Konferenzen/ Zeitschriften veröffentlicht. Dr. Pelzl hat viele Jahre Kurse über Kryptographie und IT-Sicherheit in Industriekreisen gehalten. Seite 6 Einleitung zu den Studienbriefen III. Modullehrziele Kryptographie ist heutzutage allgegenwärtig - während sie lange Zeit nur von Regierungen, Geheimdiensten und Banken verwendet wurde, werden kryptographische Techniken mittlerweile u.a. in Web-Browsern, E-Mail-Programmen, Handys, industriellen Produktionssystemen, eingebetteter Software, Autos und sogar in medizinischen Implantaten verwendet. Daher benötigen Entwickler/-innen heutzutage umfassendes Wissen im Bereich der angewandten Kryptographie. Ziel dieses Moduls ist es, dem/den Leser/-innen ein solches Wissen zu vermitteln. Nach einer Einführung in das Thema der Kryptographie und Datensicherheit, werden die wichtigsten Techniken der modernen symmetrischen Kryptographie behandelt. Diese umfassen insbesondere Stromchiffren, den Data Encryption Standard (DES), Advanced Encryption Standard (AES) sowie Message Authentication Codes (MACs). Nach erfolgreichem Abschluss dieses Moduls hat der Leser/ die Leserin grundlegende theoretische Kenntnisse in obigen Bereichen erlangt. Darüber hinaus werden Probleme erörtert, die sich im Zusammenhang der praktischen Implementierung der Verfahren ergeben, etwa die Wahl der Sicherheitsparameter. Das Modul ist physisch in zwei Teile geteilt: Der Inhalt des Moduls ist im Buch “Understanding Cryptography” von Paar und Pelzl nachzulesen, während Sie die Übungsaufgaben in diesen Studienbriefen finden. Es gibt sowohl theoretische als auch praktische Übungsaufgaben. Für die Bearbeitung vieler praktischer Aufgaben empfiehlt sich die Verwendung der Lernsoftware CrypTool, die sie über http://www.cryptool-online. org/ kostenlos erhalten können. Aufgaben, die mit CrypTool zu lösen sind, sind entsprechend gekennzeichnet. Wie sie in CrypTool die kryptologischen Verfahren finden, die zum Lösen der Aufgaben benötigt werden, wird in den entsprechenden Aufgaben erläutert. Ist zum Beispiel die relative Häufigkeitsverteilung von Buchstaben in einem Text gefragt, so finden sie in CrypTool im Reiter “Analyse” im Unterpunkt “symmetrische Verfahren klassisch” den Unterpunkt “Ciphertext-Only” und hier wiederum das Feld Substitution. Hier angelangt finden sie ein Tool, das den Text analysiert. In den Aufgaben wird nur kurz (Analyse → Symmetrisch (klassisch) → Ciphertext-Only → Subsitution) stehen, um sie zum Tool zu führen. Studienbrief 1 Einführung und Stromchiffren Seite 7 Studienbrief 1 Einführung und Stromchiffren Lesen Sie die Seiten 1 bis 51 (Kapitel 1 und 2) des Buchs “Understanding Cryptography” von Paar und Pelzl. Videos in deutscher und englischer Sprache, in denen der Inhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook. com/ unter “online courses/videos”. 1.1 Lernziele Nach dem Durcharbeiten des Studienbriefs kennen Sie einige historische Chiffren und verstehen, warum diese heutzutage nicht mehr eingesetzt werden. Die hierfür nötige Arithmetik beherrschen Sie. Sie können die Funktionsweise von Stromchiffren ist ihnen erklären. Speziell sind sie mit dem One-Time-Pad vertraut. Sie können begründen, warum das One-TimePad als uneingeschänkte sicher gilt. 1.2 Übungen SGFP GTPHGQTP FT OGT ZTGQHNQXßCPGT GFTNGOGT GFTGX PNPDV DZX OGQ YNOG IGJNYYGTGT DZXVDGZHGQX OGX SGXPVFßCGT XUFQDVDQYX OGQ IDVDMFX VGZßCPGP ZTRGDßCPGP GFTG JVGFTG IGVRG XNTTG. ZY XFG JQGFXP FT GFTGQ GTPHGQTZTI ENT ZTIGHDGCQ DßCPZTOTGZTKFI YFVVFNTGT YGFVGT GFT DRXNVZP ZTRGOGZPGTOGQ, RVDZIQZGTGQ UVDTGP, OGXXGT ENY DHHGT DRXPDYYGTOGT RFNHNQYGT XN GQXPDZTVFßC UQFYFPFE XFTO, ODA XFG OFIFPDVZCQGT TNßC FYYGQ HZGQ GFTG ZTSDCQXßCGFTVFßC PNVVG GQHFTOZTI CDVPGT. OFGXGQ UVDTGP CDP - NOGQ RGXXGQ IGXDIP, CDPPG - GFT UQNRVGY. OFG YGFXPGT XGFTGQ RGSNCTGQ SDQGT HDXP FYYGQ ZTIVZGßJVFßC. KZQ VNGXZTI OFGXGX UQNRVGYX SZQOGT EFGVG ENQXßCVDGIG IGYDßCP, DRGQ OFG OQGCPGT XFßC YGFXP ZY ODX CFT ZTO CGQ JVGFTGQ RGOQZßJPGQ UDUFGQXßCGFTßCGT, ZTO ODX FXP GFTHDßC OQNVVFI, SGFV GX FY IQNAGT ZTO IDTKGT BD TFßCP OFG JVGFTGT RGOQZßJPGT UDUFGQXßCGFTßCGT SDQGT, OFG XFßC ZTIVZGßJVFßC HZGCVPGT. ZTO XN RVFGR ODX UQNRVGY RGXPGCGT. EFGVGT VGZPGT IFTI GX XßCVGßCP, OGT YGFXPGT XNIDQ YFXGQDRGV, XGVRXP OGTGT YFP OFIFPDVZCQGT. EFGVG JDYGT DVVYDGCVFßC KZ OGQ ZGRGQKGZIZTI, GFTGT IQNAGT HGCVGQ IGYDßCP KZ CDRGT, DVX XFG ENT OGT RDGZYGT CGQZTPGQIGJNYYGT SDQGT. ZTO GFTFIG XDIPGT, XßCNT OFG RDGZYG XGFGT GFT CNVKSGI IGSGXGT, OFG NKGDTG CDGPPG YDT TFGYDVX EGQVDXXGT OZGQHGT. ZTO GFTGX ONTGQXPDIX ODTT, HDXP KSGFPDZXGTO BDCQG, TDßCOGY GFT YDTT DT GFTGT RDZYXPDYY IGTDIGVP SNQOGT SDQ, SGFV GQ IGXDIP CDPPG, SFG UCDTPDXPFXßC GQ XFßC ODX ENQXPGVVG, SGTT OFG VGZPG KZQ DRSGßCXVZTI YDV TGPP KZGFTDTOGQ SDGQGT, JDY GFT YDGOßCGT, ODX IDTK DVVGFT FT GFTGY ßDHE FT QFßJYDTXSNQPC XDA, UVNGPKVFßC DZH OGT PQFßCPGQ, SDX OFG IDTKG KGFP XN XßCFGHIGVDZHGT SDQ, ZTO XFG SZAPG GTOVFßC, SFG OFG SGVP IZP ZTO IVZGßJVFßC SGQOGT JNGTTPG. OFGXYDV CDPPG XFG XFßC TFßCP IGPDGZXßCP, GX SZGQOG HZTJPFNTFGQGT, ZTO TFGYDTO SZGQOG ODHZGQ DT FQIGTOSDX IGTDIGVP SGQOGT. TZQ RQDßC PQDZQFIGQSGFXG, GCG XFG DTX PGVGHNT IGCGT ZTO BGYDTOGY ODENT GQKDGCVGT JNTTPG, GFTG HZQßCPRDQ OZYYG JDPDXPQNUCG CGQGFT, ZTO FCQG FOGG IFTI HZGQ FYYGQ EGQVNQGT... Abb. 1.1: Mit Substitutionschiffre verschlüsseltes Chiffrat Seite 8 Ü Studienbrief 1 Einführung und Stromchiffren Übung 1.1: CrypTool: Substitutionschiffren Der Text in Abbildung 1.1 ist mit einer Substitutionschiffre verschlüsselt worden. Ziel dieser Aufgabe ist es, den Klartext wiederzugewinnen, d.h., das Chiffrat zu entschlüsseln. Gehen Sie dabei wie folgt vor: 1. Geben Sie die relative Häufigkeit der Buchstaben A bis Z des Chiffrats an. 2. Entschlüsseln Sie den Text auf Grundlage der relativen Häufigkeitsverteilungen (Analyse → Symmetrisch (klassisch) → Ciphertext-Only → Subsitution). 3. Geben Sie die verwendete (richtige!) Substitutionstabelle an. 4. Warum ist der Schlüssel, den CrypTool liefert, nicht korrekt? Betrachten Sie zur Beantwortung die nachfolgende Tabelle, die die Häufigkeitsverteilungen von Buchstaben in deutschen Prosatexten angibt. Die Häufigkeitsverteilungen für andere Sprachen finden sie z.B. bei Wikipedia: http://de.wikipedia.org/wiki/Buchstabenhäufigkeit. Buchstabe A B C D E F G H I Häufigkeit 6.51 1.89 3.06 5.08 17.40 1.66 3.01 4.76 7.55 Buchstabe J K L M N O P Q R Häufigkeit 0.27 1.21 3.44 2.53 9.78 2.51 0.79 0.02 7.00 Buchstabe S T U V W X Y Z ß Häufigkeit 7.27 6.15 4.35 0.67 1.89 0.03 0.04 1.13 0.31 5. Aus welchem Buch stammt der Text? Wie heißt der Autor? (Recherchieren Sie im Internet, wenn nötig.) 1.2 Übungen Übung 1.2: Kongruenzen Seite 9 Ü 1. Bestimmen Sie folgende Kongruenzen mit dem Modulus m = 29. Die Ergebnisse müssen im Bereich 0, 1, . . . , m − 1 liegen: a) 13 · 24 mod 29 b) 17 · 1337 mod 29 c) 69 · 31 mod 29 d) (−36) · (−28) mod 29 e) 231 · (−51) mod 29 2. Beschreiben Sie kurz den Zusammenhang zwischen den einzelnen vorherigen Rechnungen. 3. Bestimmen Sie: a) 3−1 mod 29 b) 2 · 6−1 mod 23 c) 7 · 3−1 · 4 · 9−1 mod 13 Übung 1.3: Reading Assignment Lesen Sie den Artikel “Why cryptography is harder than it looks” von Bruce Schneier (siehe Anhang). (Der Inhalt dieses Textes ist prüfungsrelevant!) Beantworten Sie stichpunktartig die folgenden Fragen: 1. Warum stehen die Wetten besser für den Angreifer als für den Sicherheitsarchitekten? 2. Bis zu welchem Punkt können Sicherheitsziele durch Kryptographie geschützt werden? 3. Wo liegt das Problem, wenn man feststellen möchte, ob ein System sicher ist? 4. Warum reicht es nicht, ein sicheres kryptographisches System zu entwickeln? Was muss noch berücksichtigt werden, damit Dieses System, Daten und Ressourcen schützen kann? 5. Warum ist die Marketing-Politik, bei entdeckten Sicherheitslücken in kryptographischen Anwendungen nicht detailliert über diese zu informieren, problematisch? 6. Was sollte laut Schneier getan werden, um kryptographische Anwendungen zukunftssicher zu machen ? Ü Seite 10 Ü Studienbrief 1 Einführung und Stromchiffren Übung 1.4: CrypTool: Schiebeverschlüsselung Ein alternatives Verfahren zur Substitionschiffre ist die Shift-Verschlüsselung (auch bekannt als Schiebechiffre). Hier wird allerdings anstatt einer beliebigen Zuordnung für jeden Buchstaben (z.B. A 7→ T, B 7→ X, C 7→ F, . . .) lediglich eine Verschiebung des gesamten Alphabets um einen geheimen Offset (Verschiebungswert) vorgenommen. So wird z.B. für den Offset k = 5 eine Verschiebung des Alphabets um 5 Zeichen durchgeführt, z.B. A 7→ F, B 7→ G, C 7→ H, . . . und mit dieser Abbildung der Klartext kodiert. 1. Gehen Sie davon aus, dass Ihnen das Alphabet Σ = {A, B, C, . . . , Z} für Klartext und Chiffrat zu Verfügung steht. Wenn Sie eine ShiftVerschlüsselung mit dem Offset k = 10 durchführen, wie müssen Sie sinnvoll die Buchstaben Q, . . . , Z aus dem Klartext belegen? 2. Verschlüsseln Sie das Wort “Datensicherheit” mit der Shift-Verschlüsselung (Ver/Entschlüsselung → symmetrisch (klassisch) → Caesar). Verwenden Sie die geheimen Offsets k1 = 10. Verschlüsseln Sie das erhaltene Chiffrat c1 erneut mit dem geheimen Offset k2 = 11. Sie erhalten das Chiffrat c2 . Welchen Schlüssel liefert die Ciphertext-onlyAnalyse von c2 (Analyse → symmetrische (klassisch) → CiphertextOnly → Caesar)? Begründen Sie. 3. Wenn Sie die Sicherheit der Shift- und der Substitionschiffre bezüglich statistischer Angriffe vergleichen, ist die Shift-Chiffre sicherer? 4. Wenn Sie den Offset für jedes Klartextzeichen von einem beliebigen Startpunkt an inkrementieren (jeweils um eins erhöhen), wird dadurch die Sicherheit des Verfahrens gegen statistische Angriffe erhöht? Hinweis: Zum besseren Verständnis des Verfahrens sei folgendes Beispiel gegeben: Klartext: i n t e r n e t Offset: 1 2 3 4 5 6 7 8 Geheimtext: J P W I W T L B 1.2 Übungen Übung 1.5: Mehrfache Verschlüsselung Eine beliebte Methode, um die Sicherheit von symmetrischen Algorithmen zu vergrößern, beruht auf der Idee, denselben Algorithmus mehrfach anzuwenden: y = ek2 (ek1 (x)) Seite 11 Ü Angenommen wir haben zwei affine Chiffren ek1 = a1 x + b1 und ek2 = a2 x + b2 . 1. Zeigen Sie, dass es eine affine Chiffre ek3 = a3 x + b3 gibt, die genau dieselbe Verschlüsselung (und Entschlüsselung) wie die Kombination ek2 (ek1 (x)) erzeugt. 2. Bestimmen Sie a3 , b3 mit a1 = 7, b1 = 13 and a2 = 18, b2 = 9 mit Modulus 23. 3. CrypTool: Verifizieren Sie ihr Ergebnis mit CrypTool. Verschlüsseln Sie dafür m = AB beliebigen Klartext mit k1 zu c1 (Ver-/Entschlüsselung → symmetrisch (klassisch) → Hill (1x1) Zahlwert a1 , das Chiffrat mittels Caesar-Chiffre mit Schlüssel b1 verschlüsseln). Verschlüsseln Sie dann c1 mit k2 zu c2 . Können Sie c2 auch direkt aus m erhalten? Wie lautet der Schlüssel hierfür? Begründen Sie. 4. Beschreiben Sie kurz was passiert, wenn Sie einen Brute-Force-Angriff gegen die Zweifach-Verschlüsselung der affinen Chiffre anwenden. Hat sich der effektive Schlüsselraum vergrößert? Kennen Sie einen effektiveren Angriff auf die affine Chiffre als einen Brute-Force-Angriff? Bemerkung: Die Verwendung von Mehrfach-Verschlüsselung ist von großer praktischer Bedeutung. Bei DES erhöht sich z.B. die Sicherheit, wenn wir dieses mehrfach hintereinander anwenden; Mehr dazu später. Übung 1.6: CrypTool: Affine Chiffre Dechiffrieren Sie den folgenden Text: Ü fhhp://5v8.qtje/twjo_f9c8ni_whglhneotxegn unter Benutzung der affinen Chiffre mit den Schlüsselwerten a = 11, b = 6 und dem Modulus 26. Hinweis: Ziffern und Satzzeichen wurde nicht verschlüsselt. Übung 1.7: One-Time-Pad-Sicherheit Auf den ersten Blick scheint es, als ob eine Brute-Force-Attacke (vollständige Schlüsselsuche) gegen das One-Time-Pad möglich ist. Das ist ein Paradoxon, da wir wissen, dass das OTP uneingeschränkt sicher ist. Beschreiben Sie kurz (maximal 3 Sätze), warum die Brute-Force-Attacke nicht durchführbar ist. Anmerkung: Sie müssen das Paradoxon lösen, d.h. eine Antwort ”Der OTP ist uneingeschränkt sicher und deshalb ist eine Brute-Force-Attacke nicht durchführbar” ist nicht ausreichend! Ü Seite 12 Ü Studienbrief 1 Einführung und Stromchiffren Übung 1.8: CrypTool: Rechenaufgabe zu One-Time-Pad Das One-Time-Pad (OTP) wird (u.a.) zur Verschlüsselung des binären Alphabets (Σ ∈ {0, 1}) verwendet. Hiermit können Daten von beliebiger Länge bitweise verschlüsselt werden. Entschlüsseln Sie den folgenden Chiphertext 18 03 07 1e 04 4c 28 1d 0c 01 54 09 49 27 0a 53 17 06 1b 19 5a, welcher mit dem OTP Schlüssel: 48 6f 72 73 74 20 47 6f 65 72 74 7a 20 49 6e 73 74 69 74 75 74 verschlüsselt worden ist. Die Entschlüsselung ist von Hand durchzuführen (Klausurbedingungen). Verwenden Sie eine ASCII-Zeichensatz-Tabelle, um den Klartext und den Schlüssel wiederzugewinnen. Verifizieren Sie ihr Ergebnis mit CrypTool. Ü Übung 1.9: CrypTool: One-Time-Pad-Angriff bei sich wiederholendem Schlüssel Sie haben bislang einige Verschlüsselungsübungen bereits per Hand erledigt. Im Ordner zur Veranstaltung befindet sich eine verschlüsselte JPG-Datei boardingpass.jpg.hex. Joe ist verschwunden. Sein letztes Lebenszeichen ist ein Online-Ticket auf seinem Rechner, das leider verschlüsselt abgelegt wurde. Anhand des Dateinamens konnten Sie erkennen, dass es sich bei dem Chiffrat um eine JPG-Datei handelt. In diesem Format übermittelt nur eine Airline ihre Tickets. Von dieser erfahren Sie, dass das Ticket zur Übertragung mit einem sich wiederholenden Schlüsselstring XOR verknüpft wurde. Dieser String ist allerdings bei jeder Übertragung zufällig und nicht mehr bekannt. 1. Öffnen sie willkürlich einige Dateien im JPG-Format mit dem CrypTool und schauen sie sich jeweils den Anfang der Datei an. Beschreiben Sie, was alle Dateien gemeinsam haben. 2. Der Schlüssel zur Verschlüsselung der o.g. Datei hat eine Länge von sechs Zeichen. Wie lautet er in HEX-Darstellung? 3. Nutzen Sie dieses Wissen, um mit Hilfe des CrypTools die Datei zu dechiffrieren (entschl → symmetrisch → klassisch → XOR). Wohin ging Joes letzte bekannte Reise? Wie lautet die Flugnummer? Mit welcher Fluggesellschaft war er unterwegs? Historische Bemerkung: Es wird berichtet, dass das Ehepaar Rosenberg in den 50er Jahren eine solche Verschlüsselung verwendete, um der UDSSR Wissen über den Bau der Atombombe zukommen zu lassen. Da sie auf dem elektrischen Stuhl endeten, können wir die Mehrfachverwendung eines OTPSchlüssels nicht uneingeschränkt empfehlen. Studienbrief 2 DES Seite 13 Studienbrief 2 DES Lesen Sie die Seiten 55 bis 82 (Kapitel 3) des Buches “Understanding Cryptography” von Paar und Pelzl. Videos in deutscher und englischer Sprache, in denen der Inhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/ unter “online courses/videos”. 2.1 Lernziele Wenn Sie diesen Studienbrief durchgearbeitet haben, erläutern sind Sie fähig die Funktionsweise moderner Blockchiffren. Sie sind in der Lage die Begriffe Konfusion und Diffusion in den Kontext von Blockchiffren einzuordnen. Speziell erklären Sie die Bestandteile von DES und deren Funktion während der Verschlüsselung. Sie verstehen die Bedeutung der S-Boxen. Sie geben Schwachstellen von DES wieder. 2.2 Übungen Übung 2.1: Bit-Lawineneffekte im DES Für eine gute Blockchiffre ist es wünschenswert, dass bei der Veränderung eines Eingangsbits möglichst viele Ausgangsbits verändert werden (Diffusion oder Avalanche-Effekt). Im folgenden werden wir versuchen, die Diffusionseigenschaft von DES zu überprüfen. Wir verwenden hierzu eine Eingangsbitfolge, bei der das Bit an der Position 57 gleich Eins ist (x57 = 1) und alle anderen Bits gleich Null sind. Die 56 Schlüsselbits sind ebenfalls alle gleich Null. (Beachten Sie, daß die Eingangsbits als erstes die Eingangspermutation IP durchlaufen!) 1. Auf welche S-Boxen wirkt sich dieses Bit in der ersten DES Runde aus, bzw. wie sehen die Eingangsbits aller S-Boxen aus? Auswirkungen auf: (ankreuzen) S1 ~ S2 ~ S3 ~ S4 ~ S5 ~ S6 ~ S7 ~ S8 ~ Eingangsbits: S-Box 1 S-Box 2 S-Box 3 S-Box 4 S-Box 5 S-Box 6 S-Box 7 S-Box 8 2. Geben Sie das Ergebnis nach der ersten Runde an. (L1 und R1 ) 3. Ermitteln Sie das Ergebnis nach der ersten Runde für den Fall, daß alle Eingangsbits gleich Null sind (d.h. auch x57 ). Wie viele Bits haben sich in Ü Seite 14 Studienbrief 2 DES L1 R1 L1 und R1 im Vergleich zu Aufgabenteil 2) verändert? L1 R1 Anzahl geänderter Bits: Ü Übung 2.2: Nichtlienarität der S-Boxen Eine wichtige Eigenschaft des DES ist die Nichtlinearität der S-Boxen. In dieser Übungsaufgabe wollen wir diese Eigenschaft verifizieren, indem wir die Ausgangsbits für verschiedene Eingangsbits in einer S-Box Si vergleichen. Zeigen Sie, daß für S5 das folgende Entwurfkriterium gilt: Si (x1 ) ⊕ Si (x2 ) 6= Si (x1 ⊕ x2 ). Benutzen Sie die folgenden Eingangsbits: 1. x1 = 010100, x2 = 110001 2. x1 = 111111, x2 = 101000 3. x1 = 100001, x2 = 011110 Ü Übung 2.3: Permutationen im DES Wir möchten überprüfen, ob IP−1 die inverse Operation von IP ist. Wir betrachten den 64-Bit-Vektor x = (x1 , x2 , . . . , x64 ). Zeigen Sie für die Bits x8 , x22 und x58 , dass IP−1 (IP(xi )) = xi gilt. 2.2 Übungen Übung 2.4: CrypTool: DES-Entschlüsselung Ein Freund hat eine Nachricht für Sie mit dem DES verschlüsselt und hat Ihnen den zugehörigen Schlüssel auf einem kleinen Stück Papier in der Vorlesung zugesteckt. Da der Zettel von einer Ecke abgerissen wurde, ist leider die letzte Stelle des hexadezimalen 64-Bit-Schlüssels (=16 Hexzeichen) nicht vollständig lesbar. Erkennbar ist noch, dass das fehlende Symbol eine Zahl sein müsste. 1. Wie viele Möglichkeiten müssen Sie unter diesen Umständen im Durchschnitt und im schlimmsten Fall durchprobieren, um den korrekten Schlüssel durch Ausprobieren zu erraten? (Hinweis: DES verwendet 56-bit Schlüssel, aber es ist ein 64-bit Schlüssel angegeben. Die „überflüssigen“ Bit des 64-bit Schlüssels sind nicht willkürlich gewählt.) 2. Im Übungsordner befindet sich die Nachricht E-Mail_ciphertext.hex. Gegeben sei der Schlüssel B3 3A 89 2B A5 2B CC FX, wobei X nur bedingt lesbar war (siehe Hinweis weiter oben). Verwenden Sie die im CrypTool vorhandene DES-Entschlüsselung, um a) den korrekten Schlüsselkandidaten herauszufinden (Analyse → Symmetrische (modern) → DES (EBC) geben Sie die bekannten Schlüsselzeichen ein) und b) die Nachricht Ihres Freundes zu entschlüsseln. 3. Nehmen Sie an, sie hätten mehr Schlüsselzeichen verloren. Schauen Sie sich mit CrypTool die erwartete Entschlüsselungsdauer in Abhängigkeit der Anzahl der bekannten Zeichen an. Hinweis: Beachten Sie, dass Sie die Entschlüsselung im ECB-Modus verwenden. Was sich hinter diesem Entschlüsselungsmodus verbirgt, werden Sie im weiteren Verlauf der Veranstaltung kennenlernen. 4. Unterscheidet sich die erwartete Rechendauer des CBC-Modus von der des ECB-Modus? Seite 15 Ü Seite 16 Ü Studienbrief 2 DES Übung 2.5: Brute-Force-Schlüsselsuche Ein generischer Angriff auf Verschlüsselungsverfahren ist das systematische Durchsuchen des Schlüsselraums, indem für einen bekannten Klartext jeder mögliche Schlüssel ausprobiert und mit dem abgehörten Chiffretext verglichen wird. Dieser Angriff ist auch als Brute-Force-Angriff bekannt. Wie schnell der Angriff zum Erfolg führt, hängt im Einzelfall vom gewählten Schlüssel ab und an welcher Stelle er beim Durchsuchen probiert wird. Dennoch kann man allgemeine Aussagen über die Erfolgswahrscheinlichkeit des Angriffs bei Verschlüsselungsverfahren machen. 1. Gegeben sei ein Verschlüsselungsverfahren mit 56 Bit Schlüssellänge (DES). Wie viele Verschlüsselungen benötigt man für einen erfolgreiche Brute-Force-Angriff (I) im Durchschnitt und (II) im schlimmsten Fall, wenn der Schlüssel als allerletzes gefunden wird? 2. Sie haben einen günstigen Computer für 350 EUR mit einem Core i7 Prozessor und 4 · 3 GHz zur Verfügung. Dieser Rechner schafft 10 Millionen DES-Verschlüsselungen bei 56 Bit Schlüssellänge pro Sekunde. Wie lange benötigt ein erfolgreicher Brute-Force-Angriff mit diesem Rechner im Durchschnitt? 3. Nehmen Sie an, Sie haben insgesamt ein Budget von 17.500 EUR. Wenn Sie für dieses Geld Computer zu je 350 EUR kaufen, wie lange dauert dann eine parallele DES-Schlüsselsuche im Schnitt? 4. Ein Spezialcluster mit 180 parallel arbeitenden Hardwarebausteinen (FPGAs) ist ebenfalls für 17.500 EUR zu realisieren. Ein einzelner Hardwarebaustein hat insgesamt 4 Rechenwerke, die jeweils 120 Millionen DES-Verschlüsselungen pro Sekunde schaffen. Wie lange dauert es im Durchschnitt, bis dieser Cluster einen DES-Schlüssel mit einem BruteForce- Angriff erfolgreich knacken kann? Ü Übung 2.6: DES-Entschlüsselung Aus dem Buch zur Vorlesung wissen Sie, dass sich die Entschlüsselung nur geringfügig von der Verschlüsselung unterscheidet. Dies liegt an der besonderen Struktur, die nach dem Erfinder Horst Feistel benannt wurde. 1. Worin besteht der einzige Unterschied zwischen einer DESVerschlüsselung und einer DES-Entschlüsselung? 2.2 Übungen Übung 2.7: CrypTool: DES-Bitkomplement Wir stellen das Komplement einer Zahl A (d.h. alle Bits dieser Zahl werden invertiert) mit A0 da. (Bsp.: Wenn A = 0110 ist, dann ist A0 = 1001.) “⊕“ entspricht dem bitweisen XOR. Wir wollen folgendes zeigen: Verschlüsseln Sie eine Zeichenketten m der Länge 8 (ASCII Zeichen) mit DES unter einem gegebenen Schlüssel K. Lassen sie sich die Hex-Darstellung des Klar- und Geheimtextes anzeigen und ermitteln Sie daraus die Bitdarstellung. Verschlüsseln Sie anschließend das Komplement m0 von m mit DES unter dem Schlüssel K 0 (Berechnen Sie das Komplement bitweise. Berechnen Sie daraus die Hex-Darstellung des Komplements. Konvertieren Sie diese in ASCII-Zeichen.). Betrachten Sie die Bitdarstellung der Verschlüsselung von m und m0 . Was fällt auf? Gilt dies immer? Seite 17 Ü Seite 18 Studienbrief 3 AES Studienbrief 3 AES Lesen Sie die Seiten 87 bis 117 (Kapitel 4) des Buches “Understanding Cryptography” von Paar und Pelzl. Videos in deutscher und englischer Sprache, in denen der Inhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/ unter “online courses/videos”. 3.1 Lernziele Sie erklären die Komponenten von AES. Die zugrundeliegende Arithmetik beherrschen Sie. Sie erläutern, wie bekannte Schwachstellen von DES behoben werden. 3.2 Übungen Ü Übung 3.1: Polynome im endlichen Körper Gegeben sei das irreduzible Polynom P (x) = x4 + x + 1. Wieviele Polynome A(x) mit Elementen aus 1. GF (2) 2. GF (n) existieren, für die gilt grad(A(x)) < grad(P (x)). Ü Übung 3.2: Addition in GF (24 ) Berechnen Sie A(x) + B(x) mod P (x) in GF (24 ) mit dem irreduziblen Reduktionspolynom P (x) = x4 + x3 + 1. 1. A(x) = x3 + x2 + 1, B(x) = x3 + x + 1 2. A(x) = x + 1, B(x) = x3 + x 3. A(x) = x3 + x2 + x + 1, B(x) = x3 + x 4. Welche Auswirkung hat die Wahl des Reduktionspolynoms auf die Berechnungsschritte? 3.2 Übungen Übung 3.3: Multiplikation in GF (24 ) Berechnen Sie A(x) · B(x) mod P (x) in GF (24 ) mit dem irreduziblen Reduktionspolynom P (x) = x4 + x3 + 1. Seite 19 Ü 1. A(x) = x3 + x2 + 1, B(x) = x3 + x 2. A(x) = x + 1, B(x) = x3 + 1 3. A(x) = x3 + x2 + x + 1, B(x) = x3 + x2 Übung 3.4: Schlüsselableitung im AES Jede Runde vom AES verwendet einen anderen Unterschlüssel, der vom Hauptschlüssel abgeleitet wird. In dieser Aufgabe wollen wir die Schlüsselableitung im AES nachvollziehen. Oft werden die jeweiligen Teile des Schlüssels und Unterschlüssels in 32-Bit-Worten Ki angegeben. 1. Gegeben Sei ein Hauptschlüssel (K0 , K1 , K2 , K3 ), der nur aus Nullen besteht. Bestimmen Sie den entprechenden Unterschlüssel (K4 , K5 , K6 , K7 ) nach der ersten Runde der Schlüsselableitung. (Abgabe nur als Hexwerte) 2. Gegeben Sei ein Hauptschlüssel (K0 , K1 , K2 , K3 ) = (0x00000001, 0x00000002, 0x00000003, 0x00000004). Bestimmen Sie erneut den Unterschlüssel (K4 , K5 , K6 , K7 ) nach der ersten Runde der Schlüsselableitung. Ü Seite 20 Ü Studienbrief 3 AES Übung 3.5: Bit-Lawineneffekte im AES Wie DES soll auch AES die Eigenschaft haben, dass die Veränderung eines Bits am Eingang einer Runde eine Änderung möglichst vieler Ausgangsbits der Runde zur Folge haben (Diffusion oder Avalanche-Effekt). Die Diffusionseigenschaft des AES nach einer Runde soll in dieser Aufgabe überprüft werden. Gegeben sei die folgende 128-Bit AES-Eingabe in je 32-Bit-Worten W = (w0 , w1 , w2 , w3 ) = (0x00000000, 0x01000000, 0x00000000, 0x00000000). Der zur Berechnung der Ausgabe nach der ersten AES-Runde benötigte Unterschlüssel k0 ist mit k0 = (0xDEADBEEF) (0xCAFEBABE) (0xDEADBEEF) (0xCAFEBABE) gegeben. Sie können zur Lösung dieser Aufgabe auch Programme schreiben. 1. Geben Sie die entsprechende Ausgabe zur Eingabe W nach der ersten Runde des AES an! Verwenden Sie dabei den gegebenen Unterschlüssel k0 ! Hinweise: Beachten Sie die Reihenfolge, in der die Bytes in den Algorithmus geschrieben werden (von oben nach unten und von links nach rechts). Rechnen Sie alle Zwischenergebnisse nach: Plaintext, KeyAddition, Substitution, ShiftRows, MixColumns und KeyAddition. 2. Ermitteln Sie die Ausgabebytes nach der ersten Runde für den Fall, dass diesmal alle Eingangsbytes gleich Null sind. 3. Wieviele Ausgangsbits haben sich im Vergleich der beiden Fälle verändert? Wir betrachten hier nur eine einzige Runde des AES. Nach jeder weiteren Runde werden mehr und mehr Änderungen der Ausgangsbits auftreten (Lawineneffekt). Ü Übung 3.6: CrypTool: AES vs. DES Sie haben DES bereits empirisch untersucht. Führen Sie ihre Untersuchungen auch für AES aus. Vergleichen Sie insbesondere: • die Laufzeiten des Brute-Force-Angriffs bei nicht vollständig bekanntem Schlüssel und • Chiffretexte von komplementären Klartexten unter komplementären Schlüsseln (s.o.). Studienbrief 4 More about block ciphers Seite 21 Studienbrief 4 More about block ciphers Lesen Sie die Seiten 123 bis 144 (Kapitel 5) des Buchs “Understanding Cryptography” von Paar und Pelzl. Videos in deutscher und englischer Sprache, in denen der Inhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/ unter “online courses/videos”. 4.1 Lernziele Sie sind in der Lage die Notwendigkeit von Operationsmodi für Blockchiffren zu erklären und Sie erläutern die Funktionsweise der gängigsten Operationsmodi. Sie verstehen die Problematik der Fehlerfortpflanzung im Bezug auf Operationsmodi. 4.2 Übungen Übung 4.1: CrypTool: CBC- vs. ECB-Modus Verifizieren Sie mittels CrypTool die Konfusionseigenschaft des CBCBetriebsmodus. Verschlüsseln Sie dazu einen sich periodisch wiederholenden String. Verschlüsseln Sie diesen sowohl im ECB-Modus als auch im CBC-Modus (mit DES). Vergleichen Sie die Chiffretexte. Betrachten wir (stark vereinfacht) die Speicherung von Daten in verschüsselter Form in einer großen Datenbank. Für die Verschlüsselung verwenden wir AES. Wir nehmen an, dass die zu speichernden Einträge eine Größe von 1024 Bit haben, und dass zwischen den verschiedenen Einträgen kein Zusammenhang besteht. Beantworten Sie die beiden folgenden Fragen kurz in Stichworten: • Was sind die Vor- und Nachteile des ECB-Modes für dieser Anwendung? • Was sind die Vor- und Nachteile des CBC-Modes? Ü Seite 22 Ü Studienbrief 4 More about block ciphers Übung 4.2: Fehlerfortpflanzung in Verschlüsselungsmodi Ein wichtiges Entscheidungsmerkmal für die Auswahl des Verschlüsselungsmodus in der Praxis ist die Fehlerfortpflanzung. • Nehmen wir an, dass während der Übermittlung ein Fehler in einem Block des Geheimtextes yi auftritt. Welche Klartextblöcke sind auf der Seite von Bob betroffen, wenn wir ECB Mode verwenden? • Nehmen wir wieder an, dass im Block yi ein Fehler während der Übermittlung aufgetreten ist. Welche Klartextblöcke sind auf der Seite von Bob betroffen, wenn wir CBC Mode verwenden? • Nehmen wir wieder an, dass im Block yi ein Fehler während der Übermittlung aufgetreten ist. Welche Klartextblöcke sind auf der Seite von Bob betroffen, wenn wir OFB Mode verwenden? • Stellen wir uns vor, wir haben einen Fehler im Klartextblock xi auf der Seite von Alice. Welche Klartextblöcke sind auf der Seite von Bob von diesem Fehler betroffen, wenn wir CBC Mode verwenden? • Was geschieht, wenn durch einen Übertragungsfehler ein Chiffretextblock im Netzwerk verloren geht, der zuvor mit dem CBC Mode verschlüsselt wurde? • Was geschieht, wenn durch einen Übertragungsfehler ein Chiffretextblock im Netzwerk verloren geht, der zuvor mit dem OFB Mode verschlüsselt wurde? 4.2 Übungen Seite 23 Übung 4.3: Doppelte DES-Verschlüsselung Gegeben ist eine doppelte DES-Verschlüsselung (2DES) 2DES(x) = DESK2 (DESK1 (x)) In dieser Aufgabe wollen wir eine Kostenabschätzung für verschiedene Angriffe auf 2DES vornehmen. • Zeichnen Sie ein Blockdiagramm von 2DES. Der DES-Algorithmus sollte hierbei als einfache Box dargestellt werden (also keine DESInterna!). • Zunächst betrachten wir eine reine Schlüsselsuche ohne nennenswerten Speicheraufwand. Hierbei muss der gesamte Schlüsselraum, der gemeinsam von K1 und K2 gebildet wird, durchsucht werden. Wie teuer wird eine Suchmaschine, mit der wir 2DES im “worst case” nach 1 Woche brechen können? Wir nehmen an, dass wir spezielle Hardware Chips (ASICs) zur Verfügung haben, die 107 Schlüssel pro Sekunde überprüfen können. Ein Chip kostet 5 Euro. Darüber hinaus nehmen wir einen Overhead von 50% auf die Chipkosten für den Bau der Maschine an. Setzen Sie die Kosten der Suchmaschine ins Verhältnis zum Etat der Bundesrepublik, der etwa bei 300 · 109 Euro beträgt. • Alternativ betrachten wir jetzt eine meet-in-the-middle (auch timememory trade-off) genannte Attacke, bei der wir viel Speicher einsetzen können. Beantworten Sie hierzu folgende Fragen: – Wieviel Einträge müssen gespeichert werden? – Wieviel Bytes (nicht Bits!) müssen pro Eintrag gespeichert werden? – Wie teuer ist eine Schlüsselsuche, die nach maximal einer Woche zum Erfolg führt? Bitte beachten Sie, dass Sie zunächst einen Schlüsselraum komplett durchlaufen müssen, um den Speicher zu füllen. Erst danach kann der Raum des zweiten Schlüssels durchsucht werden. Für das nacheinander folgende Durchlaufen der beiden Schlüsselräume kann die gleiche Hardware verwendet werden. Für eine Kostenabschätzung des Speichers nehmen Sie einen Preis von 100 Euro / 1 TB an, wobei der Einfachheit halber mit 1 TB = 1012 Byte gerechnet werden soll. Für die Kosten der Schlüsselsuche nehmen Sie die Kosten von oben an. Setzen Sie die Kosten für die meet-in-themiddle-Attacke wieder ins Verhältnis zum Bundeshaushalt. Ü Seite 24 Studienbrief 5 Message Authentication Codes Studienbrief 5 Message Authentication Codes 5.1 Lernziele Nach dem Durcharbeiten dieses Studienbriefs verstehen Sie die Notwendigkeit von Message Authentication Codes (MACs) und erläutern, wie MACs berechnet werden. 5.2 Übungen Lesen Sie die Seiten 319 bis 328 (Kapitel 12) des Buches “Understanding Cryptography” von Paar und Pelzl (Sie können den Abschnitt 12.2 auslassen). Videos in deutscher und englischer Sprache, in denen der Inhalt zusätzlich erklärt wird, finden Sie auf http://www.crypto-textbook.com/ unter “online courses/videos”. Ü Übung 5.1: Adaptive Chosen Plaintext Angriff auf den CBC-MAC Wir wollen in dieser Aufgabe zeigen, dass der CBC-MAC unter bestimmten Annahmen nicht sicher ist. Einem Angreifer steht ein Orakel O zur Verfügung, das zu beliebig (endlich) vielen Nachrichten mit unterschiedlicher Länge einen MAC mit einem dem Angreifer unbekannten Schlüssel k erzeugt. Der Angreifer darf jede erhaltenen MAC für weitere Nachrichten verwenden (Adaptive Chosen Plaintext Attack). 1. Nehmen Sie an, dass im Rahmen des Angriffs als IV der Nullvektor verwendet wird. Zeigen Sie, wie Sie als Angreifer nach einer endlichen Zahl an Nachrichten xi , die Sie O zur Authentifizierung geschickt haben, schließlich eine weitere, mit dem MAC von O authentifizierte Nachricht selbst erzeugen können (die natürlich nicht dem O schon zuvor übermittelt wurde, sonst macht der Angriff keinen Sinn). 2. Welche Annahme ist für den Angriff wichtig und wie kann er verhindert werden? With cryptography, what you see isn’t what you get. Subtle flaws can render any security system vulnerable to attack. Counterpane Systems has the expertise you need to make sure your system is as secure as it looks. COUNTERPANE SYSTEMS WHY CRYPTOGRAPHY IS HARDER THAN IT LOOKS by Bruce Schneier F rom e-mail to cellular communications, from secure Web access to digital cash, cryptography is an essential part of today’s information systems. Cryptography helps provide accountability, fairness, accuracy, and confidentiality. It can prevent fraud in electronic commerce and assure the validity of financial transactions. It can prove your identity or protect your anonymity. It can keep vandals from altering your Web page and prevent industrial competitors from reading your confidential documents. And in the future, as commerce and communications continue to move to computer networks, cryptography will become more and more vital. But the cryptography now on the market doesn’t provide the level of security it advertises. Most systems are not designed and implemented in concert with cryptographers, but by engineers who thought of cryptography as just another component. It’s not. You can’t make systems secure by tacking on cryptography as an afterthought. You have to know what you are doing every step of the way, from conception through installation. Billions of dollars are spent on computer security, and most of it is wasted on insecure products. After all, weak cryptography looks the same on the shelf as strong cryptography. Two e-mail encryption products may have almost the same user interface, yet one is secure while the other permits eavesdropping. A comparison chart may suggest that two programs have similar features, although one has gaping security holes that the other doesn’t. An experienced cryptographer can tell the difference. So can a thief. Present-day computer security is a house of cards; it may stand for now, but it can’t last. Many insecure products have not yet been broken because they are still in their infancy. But when these products are widely used, they will become tempting targets for criminals. The press will publicize the attacks, undermining public confidence in these systems. Ultimately, products will win or lose in the marketplace depending on the strength of their security. Copyright © 1997 Counterpane Systems. All rights reserved. THREATS TO COMPUTER SYSTEMS E very form of commerce ever invented has been subject to fraud, from rigged scales in a farmers’ market to counterfeit currency to phony invoices. Electronic commerce schemes will also face fraud, through forgery, misrepresentation, denial of service, and cheating. In fact, computerization makes the risks even greater, by allowing attacks that are impossible against non-automated systems. A thief can make a living skimming a penny from every Visa cardholder. You can’t walk the streets wearing a mask of someone else’s face, but in the digital world it is easy to impersonate others. Only strong cryptography can protect against these attacks. Privacy violations are another threat. Some attacks on privacy are targeted: a member of the press tries to read a public figure’s e-mail, or a company tries to intercept a competitor’s communications. Others are broad data-harvesting attacks, searching a sea of data for interesting information: a list of rich widows, AZT users, or people who view a particular Web page. Criminal attacks are often opportunistic, and often all a system has to be is more secure than the next system. But there are other threats. Some attackers are motivated by publicity. They usually have access to significant computing resources at their corporations or research institutions, and lots of time, but not much money. Lawyers sometimes need a system attacked, in order to prove their client’s innocence. Lawyers can collect details on the system through the discovery process, and then use considerable financial resources to hire experts and buy equipment. And they don’t have to defeat the security of a system completely, just enough to convince a jury that the security is flawed. Electronic vandalism is an increasingly serious problem. Computer vandals have already graffitied the CIA’s web page, mail-bombed Internet providers, and canceled thousands of newsgroup messages. And of course, vandals and thieves routinely break into networked computer systems. When security safeguards aren’t adequate, trespassers run little risk of getting caught. Attackers don’t follow rules; they cheat. They can attack a system using techniques the designers never thought of. Art thieves have burgled homes by cutting through the walls with a chain saw. Home security systems, no matter how expensive and sophisticated, won’t stand a chance against this attack. Computer thieves come through the walls too. They steal technical data, bribe insiders, modify software, and collude. They take advantage of technologies newer than the system, and even invent new mathematics to attack the system with. The odds favor the attacker. Bad guys have more to gain by examining a system than good guys. Defenders have to protect against every possible vulnerability, but an attacker only has to find one security flaw to compromise the whole system. WHAT CRYPTOGRAPHY CAN AND CAN’T DO page 2 N o one can guarantee 100% security. But we can work toward 100% risk acceptance. Fraud exists in current commerce systems: cash can be counterfeited, checks altered, credit card numbers stolen. Yet these systems are still successful, because the benefits and conveniences outweigh the losses. Privacy systems—wall safes, door locks, curtains—are not perfect, but they’re often good enough. A good cryptographic system strikes a balance between what is possible and what is acceptable. Counterpane Systems Strong cryptography can withstand targeted attacks up to a point—the point at which it becomes easier to get the information some other way. A computer encryption program, no matter how good, will not prevent an attacker from going through someone’s garbage. But it can prevent data-harvesting attacks absolutely; no attacker can go through enough trash to find every AZT user in the country. And it can protect communications against non-invasive attacks: it’s one thing to tap a phone line from the safety of the telephone central office, but quite another to break into someone’s house to install a bug. The good news about cryptography is that we already have the algorithms and protocols we need to secure our systems. The bad news is that that was the easy part; implementing the protocols successfully requires considerable expertise. The areas of security that interact with people—key management, human/computer interface security, access control—often defy analysis. And the disciplines of public-key infrastructure, software security, computer security, network security, and tamper-resistant hardware design are very poorly understood. Companies often get the easy part wrong, and implement insecure algorithms and protocols. But even so, practical cryptography is rarely broken through the mathematics; other parts of systems are much easier to break. The best protocol ever invented can fall to an easy attack if no one pays attention to the more complex and subtle implementation issues. Netscape’s security fell to a bug in the random-number generator. Flaws can be anywhere: the threat model, the design, the software or hardware implementation, the system management. Security is a chain, and a single weak link can break the entire system. Fatal bugs may be far removed from the security portion of the software; a design decision that has nothing to do with security can nonetheless create a security flaw. Once you find a security flaw, you can fix it. But finding the flaws in a product can be incredibly difficult. Security is different from any other design requirement, because functionality does not equal quality. If a word processor prints successfully, you know that the print function works. Security is different; just because a safe recognizes the correct combination does not mean that its contents are secure from a safecracker. No amount of general beta testing will reveal a security flaw, and there’s no test possible that can prove the absence of flaws. THREAT MODELS A good design starts with a threat model: what the system is designed to pro tect, from whom, and for how long. The threat model must take the entire system into account—not just the data to be protected, but the people who will use the system and how they will use it. What motivates the attackers? Must attacks be prevented, or can they just be detected? If the worst happens and one of the fundamental security assumptions of a system is broken, what kind of disaster recovery is possible? The answers to these questions can’t be standardized; they’re different for every system. Too often, designers don’t take the time to build accurate threat models or analyze the real risks. Threat models allow both product designers and consumers to determine what security measures they need. Does it makes sense to encrypt your hard drive if you don’t put your files in a safe? How can someone inside the company Counterpane Systems page 3 defraud the commerce system? Are the audit logs good enough to convince a court of law? You can’t design a secure system unless you understand what it has to be secure against. SYSTEM DESIGN D esign work is the mainstay of the science of cryptography, and it is very specialized. Cryptography blends several areas of mathematics: number theory, complexity theory, information theory, probability theory, abstract algebra, and formal analysis, among others. Few can do the science properly, and a little knowledge is a dangerous thing: inexperienced cryptographers almost always design flawed systems. Good cryptographers know that nothing substitutes for extensive peer review and years of analysis. Quality systems use published and well-understood algorithms and protocols; using unpublished or unproven elements in a design is risky at best. Cryptographic system design is also an art. A designer must strike a balance between security and accessibility, anonymity and accountability, privacy and availability. Science alone cannot prove security; only experience, and the intuition born of experience, can help the cryptographer design secure systems and find flaws in existing designs. IMPLEMENTATION T CRYPTOGRAPHY FOR PEOPLE I here is an enormous difference between a mathematical algorithm and its concrete implementation in hardware or software. Cryptographic system designs are fragile. Just because a protocol is logically secure doesn’t mean it will stay secure when a designer starts defining message structures and passing bits around. Close isn’t close enough; these systems must be implemented exactly, perfectly, or they will fail. A poorly-designed user interface can make a hard-drive encryption program completely insecure. A false reliance on tamper-resistant hardware can render an electronic commerce system all but useless. Since these mistakes aren’t apparent in testing, they end up in finished products. Many flaws in implementation cannot be studied in the scientific literature because they are not technically interesting. That’s why they crop up in product after product. Under pressure from budgets and deadlines, implementers use bad random-number generators, don’t check properly for error conditions, and leave secret information in swap files. The only way to learn how to prevent these flaws is to make and break systems, again and again. n the end, many security systems are broken by the people who use them. Most fraud against commerce systems is perpetrated by insiders. Honest users cause problems because they usually don’t care about security. They want simplicity, convenience, and compatibility with existing (insecure) systems. They choose bad passwords, write them down, give friends and relatives their private keys, leave computers logged in, and so on. It’s hard to sell door locks to people who don’t want to be bothered with keys. A well-designed system must take people into account. Often the hardest part of cryptography is getting people to use it. It’s hard to convince consumers that their financial privacy is important when they are willing to leave a detailed purchase record in exchange for one thousandth of a free trip to Hawaii. It’s hard to build a system that provides strong authentication on top of systems that can be penetrated by knowing someone’s mother’s maiden name. Security is routinely bypassed by store clerks, senior page 4 Counterpane Systems executives, and anyone else who just needs to get the job done. Only when cryptography is designed with careful consideration of users’ needs and then smoothly integrated, can it protect their systems, resources, and data. THE STATE OF SECURITY R ight now, users have no good way of comparing secure systems. Comput er magazines compare security products by listing their features, not by evaluating their security. Marketing literature makes claims that are just not true; a competing product that is more secure and more expensive will only fare worse in the market. People rely on the government to look out for their safety and security in areas where they lack the knowledge to make evaluations—food packaging, aviation, medicine. But for cryptography, the U.S. government is doing just the opposite. When an airplane crashes, there are inquiries, analyses, and reports. Information is widely disseminated, and everyone learns from the failure. You can read a complete record of airline accidents from the beginning of commercial aviation. When a bank’s electronic commerce system is breached and defrauded, it’s usually covered up. If it does make the newspapers, details are omitted. No one analyzes the attack; no one learns from the mistake. The bank tries to patch things in secret, hoping that the public won’t lose confidence in a system that deserves no confidence. In the long run, secrecy paves the way for more serious breaches. Laws are no substitute for engineering. The U.S. cellular phone industry has lobbied for protective laws, instead of spending the money to fix what should have been designed corectly the first time. It’s no longer good enough to install security patches in response to attacks. Computer systems move too quickly; a security flaw can be described on the Internet and exploited by thousands. Today’s systems must anticipate future attacks. Any comprehensive system— whether for authenticated communications, secure data storage, or electronic commerce—is likely to remain in use for five years or more. It must be able to withstand the future: smarter attackers, more computational power, and greater incentives to subvert a widespread system. There won’t be time to upgrade it in the field. History has taught us: never underestimate the amount of money, time, and effort someone will expend to thwart a security system. It’s always better to assume the worst. Assume your adversaries are better than they are. Assume science and technology will soon be able to do things they cannot yet. Give yourself a margin for error. Give yourself more security than you need today. When the unexpected happens, you’ll be glad you did. ❈❈❈❈❈ Counterpane Systems page 5 Seite 30 Verzeichnisse Verzeichnisse I. Abbildungen Abb. 1.1: Mit Substitutionschiffre verschlüsseltes Chiffrat . . . . . . . . . . . . . . . . . . . . . . . . . . II. Tabellen 7