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