Kryptographie und Kryptoanalyse
Kryptographie und Kryptoanalyse
Kryptographie und Kryptoanalyse
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
SS 2010<br />
Mittwoch 3. DS, E09<br />
Folien:<br />
dud.inf.tu-dresden.de<br />
Dr.-Ing. Elke Franz, Elke.Franz@tu-dresden.de<br />
Überblick über die Vorlesung<br />
1. Einführung<br />
– Begriffe<br />
– Bedrohungen<br />
– Schutzziele<br />
2. Gr<strong>und</strong>lagen<br />
– Mathematische Beschreibung<br />
– Einteilung kryptographischer Systeme<br />
– Überblick über Angriffe<br />
– Sicherheit kryptographischer Systeme<br />
3. Klassische Verfahren<br />
– Mathematische Gr<strong>und</strong>lagen<br />
– Transpositionen<br />
– MM-Substitutionen<br />
– PM-Substitutionen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Überblick über die Vorlesung<br />
3. Symmetrische Verfahren<br />
– Blockchiffren<br />
– Feistel-Chiffre<br />
– Kryptographische Güte<br />
– DES / 3-DES<br />
– IDEA<br />
– AES<br />
– Betriebsarten<br />
4. Asymmetrische Verfahren<br />
– Gr<strong>und</strong>lagen<br />
– Diffie-Hellman-Schlüsselaustausch<br />
– ElGamal<br />
– RSA<br />
– Kryptosysteme auf Basis elliptischer Kurven<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1<br />
2<br />
3<br />
1
1 Einführung – Begriffe<br />
Kryptologie<br />
<strong>Kryptographie</strong> <strong>Kryptoanalyse</strong><br />
<strong>Kryptographie</strong> (griech. „kryptos“+ „graphein“)<br />
Wissenschaft von den Methoden der Ver- <strong>und</strong><br />
Entschlüsselung von Informationen.<br />
<strong>Kryptoanalyse</strong> (griech. „kryptos“+ „analyein“)<br />
Wissenschaft vom Entschlüsseln von Nachrichten ohne<br />
Kenntnis dazu notwendiger geheimer Informationen.<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1 Einführung – Bedrohungen<br />
Mögliche Bedrohungen<br />
• Unbefugte Kenntnisnahme der Informationen<br />
• Verfälschen von Informationen (bei Nachrichten auch von<br />
deren Absendern)<br />
• Stören der Verfügbarkeit<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1 Einführung – Schutzziele<br />
Charakteristik der Bedrohungen<br />
• Unbefugter Informationsgewinn<br />
Verlust der Vertraulichkeit<br />
• Unbefugte Modifikation<br />
der Information<br />
Verlust der Integrität<br />
• Beeinträchtigung der<br />
Funktionalität<br />
Verlust der Verfügbarkeit<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Nicht erkennbar,<br />
aber verhinderbar<br />
Nicht verhinderbar,<br />
aber erkennbar<br />
4<br />
5<br />
6<br />
2
1 Einführung – Schutzziele<br />
Unterteilung der Schutzziele<br />
Inhalte Umstände<br />
Unerwünschtes Vertraulichkeit Anonymität<br />
verhindern Verdecktheit Unbeobachtbarkeit<br />
Erwünschtes<br />
leisten<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1 Einführung - Schutzziele<br />
Integrität Zurechenbarkeit<br />
Verfügbarkeit<br />
Erreichbarkeit<br />
Verbindlichkeit<br />
Mittels <strong>Kryptographie</strong> erreichbare Schutzziele<br />
• Vertraulichkeit<br />
Informationen werden nur Berechtigten bekannt.<br />
• Integrität<br />
Informationen können nicht unerkannt modifiziert werden.<br />
• Zurechenbarkeit<br />
Dem Sender einer Nachricht kann das Senden (auch gegenüber<br />
Dritten) ) nachgewiesen h werden. d<br />
(Nachweis des Empfangs sowie des Zeitpunktes des<br />
Sendens/Empfangens erfordert weitere Maßnahmen.)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Überblick über die Vorlesung<br />
1. Einführung<br />
2. Gr<strong>und</strong>lagen<br />
– Mathematische Beschreibung<br />
– Einteilung kryptographischer Systeme<br />
– Überblick über Angriffe<br />
– Sicherheit kryptographischer Systeme<br />
3. Klassische Verfahren<br />
4. Symmetrische Verfahren<br />
5. Asymmetrische Verfahren<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
7<br />
8<br />
9<br />
3
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Vertrauensbereich<br />
des Senders (Alice)<br />
Nachricht<br />
m M<br />
Hallo, ...<br />
Schlüssel<br />
ke K<br />
Verschlüsselungsfkt.<br />
enc ENC<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Unsicherer<br />
Kanal:<br />
Angriffsbereich<br />
Vertrauensbereich des<br />
Empfängers (Bob)<br />
Schlüssel<br />
k d K<br />
Schlüsseltext Entschlüsse- Nachricht<br />
lungsfkt.<br />
c C dec DEC m = dec(kd,c) c = enc(ke,m) Hallo, ...<br />
g9b02...<br />
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Kryptosystem (M, C, K, Enc, Dec)<br />
• Nachrichtenraum M:<br />
endliche Menge möglicher Nachrichten<br />
(Klartexte; messages)<br />
• Schlüsseltextraum C:<br />
endliche Menge möglicher Schlüsseltexte<br />
(Kryptogramme (Kryptogramme, Chiffrate, Chiffrate Chiffretexte; ciphertexts)<br />
• Schlüsselraum K:<br />
endliche Menge möglicher Schlüssel (keys)<br />
• Funktionsräume<br />
Enc (Verschlüsselung, encryption)<br />
<strong>und</strong> Dec (Entschlüsselung, decryption)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Alphabet<br />
• endliche, nichtleere, totalgeordnete Menge<br />
A = {a 0, a 1, a 2, …, a l-1}<br />
Alphabet mit l Elementen<br />
a i : Zeichen bzw. Buchstaben<br />
m =(m m m m ) mit m A m An m = (m0m1m2 … mn-1) mit mi A, m An Wort der Länge n über dem Alphabet A<br />
A n : Menge aller Wörter über A mit der max. Länge n<br />
• Nachrichten, Schlüsseltexte, Schlüssel:<br />
endliche Folgen bzw. Worte über den zugr<strong>und</strong>e liegenden<br />
Alphabeten A M, A C, A K<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
10<br />
11<br />
12<br />
4
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Funktion<br />
• allgemein f: X Y; f(x) = y<br />
X: Definitionsbereich, Y: Wertebereich<br />
• Eigenschaften<br />
–injektiv: " x, x’ X. f(x)= f(x’) x = x’<br />
– surjektiv: " y Y .$ $ x X f(x) = y<br />
– bijektiv: injektiv <strong>und</strong> surjektiv<br />
• Umkehrfunktion bzw. inverse Funktion<br />
f bijektiv inverse Funktion g = f -1 :<br />
" y Y. g(y) = x mit x X <strong>und</strong> f(x) = y<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Ver- <strong>und</strong> Entschlüsselungsfunktionen<br />
• n, l N; A, B Alphabete<br />
• m M = A n Nachricht, c C = B l Schlüsseltext<br />
• Verschlüsselung: c = enc(ke,m) bzw. c = enck (m)<br />
enc Enc: M μ K C bzw. An x K Bl e<br />
• Entschlüsselung: m = dec(kd,c) bzw. m = deck (c)<br />
dec Dec: C μ K M bzw. Bl x K An d<br />
Verhältnis l/n: Expansionsfaktor<br />
n = l: Kryptofunktion heißt längentreu<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Mathematische Beschreibung<br />
Kerckhoffs-Prinzip<br />
Die Sicherheit eines Verfahrens darf nicht von der<br />
Geheimhaltung des Verfahrens abhängen, sondern nur von<br />
der Geheimhaltung des Schlüssels.<br />
[Auguste Kerkhoffs: La Cryptographie militaire. Journal des<br />
Sciences Militaires, Januar 1883.]<br />
• Keine „Security by Obscurity“<br />
• Annahme: Angreifer kennt das Verfahren <strong>und</strong> die öffentlichen<br />
Parameter<br />
• Sicherheit des Verfahrens begrenzt durch<br />
– Sicherheit der Schlüsselgenerierung <strong>und</strong><br />
– Sicherheit des Schlüsselaustauschs<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
13<br />
14<br />
15<br />
5
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Kriterien für eine Einteilung<br />
• Zweck<br />
– Konzelationssysteme<br />
Systeme zum Schutz der Vertraulichkeit der Daten<br />
– Authentikationssysteme<br />
Systeme zum Schutz der Integrität der Daten<br />
- digitale Signatursysteme (spezielle Authentikationssysteme)<br />
Systeme zur Realisierung von Zurechenbarkeit von Daten<br />
• Schlüsselverteilung<br />
– Symmetrische Verfahren: k e = k d<br />
– Asymmetrische Verfahren: k e k d<br />
Notation:<br />
k A,B: symmetrischer Schlüssel für Kommunikation<br />
zwischen Teilnehmern A <strong>und</strong> B<br />
k e,A/k d,A: Schlüssel zur Ver-/Entschlüsselung des Teilnehmers<br />
A (asymmetrisches System)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Symmetrisches Konzelationssystem<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Zufallszahl r<br />
Schlüssel- kA,B ú<br />
generierung keygen(r)<br />
Alice Bob<br />
geheimer<br />
Schlüssel<br />
Angriffsbereich<br />
geheimer<br />
Schlüssel<br />
kA,B kA,B Schlüsseltext<br />
Nachricht<br />
m<br />
Verschlüsselung<br />
enc ENC<br />
c<br />
c ú enc(kA,B,m) Entschlüsselung<br />
dec DEC<br />
Nachricht<br />
m ú dec(kA,B,c) Vertrauensbereich<br />
Sicherer Kanal für Schlüsselaustausch<br />
16<br />
öffentlich bekannter Algorithmus<br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Symmetrisches Konzelationssystem<br />
Alice Bob<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
17<br />
18<br />
6
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
• Schlüsselaustausch<br />
– Notwendig: sicherer Kanal für Schlüsselaustausch<br />
– Offenes System: Sender <strong>und</strong> Empfänger können sich nicht<br />
vorab treffen<br />
Lösung: Schlüsselverteilzentrale X<br />
• Jeder Teilnehmer (z.B. A) meldet sich an <strong>und</strong> tauscht einen<br />
geheimen Schlüssel k kA,X mit X aus<br />
• Kommunikation mit Teilnehmer B: Anfrage an X nach<br />
geheimem Schlüssel kA,B • X generiert Schlüssel kA,B <strong>und</strong> sendet ihn an A <strong>und</strong> B<br />
• Problem: X kann alle Nachrichten lesen<br />
• Verbesserung: verschiedene Schlüsselverteilzentralen<br />
verwenden <strong>und</strong> geheime Schlüssel lokal berechnen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Symmetrisches<br />
Authentikationssystem<br />
Alice<br />
geheimer<br />
Schlüssel<br />
kA,B Nachricht<br />
m<br />
MAC<br />
berechnen<br />
auth AUTH<br />
Angriffsbereich<br />
Nachricht, MAC<br />
(message authentication<br />
code)<br />
m, a<br />
a ú auth(kA,B,m) Vertrauensbereich<br />
Sicherer Kanal für Schlüsselaustausch<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Zufallszahl r<br />
Schlüsselgenerierung<br />
MAC testen<br />
test TEST<br />
k A,B ú<br />
keygen(r)<br />
geheimer<br />
Schlüssel<br />
k A,B<br />
19<br />
Bob<br />
test(kA,B ,m,a)ú<br />
a = auth(kA,B, m)<br />
öffentlich bekannter Algorithmus<br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Asymmetrisches<br />
Konzelationssystem<br />
Zufallszahl r<br />
Schlüsselgenerierung<br />
k A,B ú<br />
keygen(r)<br />
Alice Bob<br />
Nachr. m<br />
Zuf.-z. r’<br />
öffentlicher<br />
Schlüssel<br />
k e,B<br />
Verschlüsselung<br />
enc ENC<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Angriffsbereich<br />
Schlüsseltext<br />
c<br />
c ú enc(ke,B,m, r’)<br />
Entschlüsselung<br />
dec DEC<br />
privater<br />
Schlüssel<br />
k d,B<br />
Nachricht<br />
20<br />
m ú dec(k d,B,c)<br />
Vertrauensbereich öffentlich bekannter Algorithmus<br />
21<br />
7
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
• Schlüsselaustausch<br />
– Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen<br />
Abhören) sicherer Kanal für Schlüsselaustausch notwendig<br />
– Verteilung der öffentlichen Schlüssel: veröffentlichen<br />
Andere Möglichkeit: Öffentliches Schlüsselregister R<br />
• Jeder Teilnehmer (z.B. A) trägt seinen öffentlichen Schlüsel<br />
ein e (k (keA) e,A)<br />
• Teilnehmer B will mit A kommunizieren: bittet R um<br />
öffentlichen Schlüssel ke,A von A<br />
• B erhält ke,A, beglaubigt durch die Signatur von R;<br />
R beglaubigt Zusammenhang zwischen A <strong>und</strong> ke,A • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff<br />
• Verbesserung: verschiedene Register verwenden<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Asymmetrisches Authentikationssystem<br />
(Digitales Signatursystem)<br />
Zufallszahl r<br />
Schlüsselgenerierung<br />
(k s,B, k t,B) ú<br />
keygen(r)<br />
Alice Bob<br />
öffentlicher<br />
Schlüssel<br />
k t,B<br />
test(kt,B ,m, s)<br />
{true, false}<br />
Testen<br />
test TEST<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Angriffsbereich<br />
Nachricht, Signatur<br />
m, s<br />
s ú sign(ks,B,m, r’)<br />
Signieren<br />
sign SIGN<br />
privater<br />
Schlüssel<br />
k s,B<br />
Nachr. m<br />
Zuf.-z. r’<br />
Vertrauensbereich öffentlich bekannter Algorithmus<br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
• Schlüsselaustausch<br />
– Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen<br />
Abhören) sicherer Kanal für Schlüsselaustausch notwendig<br />
– Direkter Schlüsselaustausch nicht ausreichend für<br />
Zurechenbarkeit ( Schlüsselzertifikat, Zertifizierungsinstanz /<br />
certification authority, CA)<br />
– Weitere Anforderung: Konsistenz<br />
– Konsistenz unterstützen:<br />
Teilnehmer, der Schlüsselzertifikat für seinen öffentlichen<br />
Schlüssel möchte, weist Kenntnis des zugehörigen privaten<br />
Schlüssels nach<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
22<br />
23<br />
24<br />
8
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Hybrides Konzelationssystem<br />
geheimer Schlüssel<br />
(session key) k A,B<br />
Zuf.-zahl r‘<br />
Nachricht<br />
m<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
öffentlicher<br />
Schlüssel<br />
ke,B c1 enc dec<br />
privater<br />
Schlüssel<br />
k d,B<br />
enc<br />
c2 dec<br />
c1, c2 c1 = enc(ke,B,kA,B, r’), c2 = enc(kA,B,m) 2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Sicherer Kanal für<br />
Schlüsselaustausch<br />
erforderlich?<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Symmetrische<br />
Verfahren<br />
Ja<br />
Asymmetrische<br />
Verfahren<br />
k A,B = dec(k d,B,c 1)<br />
Nachricht<br />
m = dec(k A,B,c 2)<br />
Nein (allerdings:<br />
Zuordnung der<br />
öffentlichen Schlüssel)<br />
Performance In der Regel sehr gut Weniger gut<br />
Mögliche Einsatzgebiete<br />
Konzelation<br />
Vertraulichkeit<br />
Symmetrische<br />
Authentikation (MAC)<br />
Integrität<br />
25<br />
Konzelation<br />
Vertraulichkeit<br />
Digitale Signatursysteme<br />
Integrität<br />
Zurechenbarkeit<br />
2 Gr<strong>und</strong>lagen – Einteilung kryptographischer Systeme<br />
Kryptoverfahren<br />
symmetrische asymmetrische<br />
Strom-Chiffren Block-Chiffren<br />
• Vigenère-Chiffre<br />
• Vernam-Chiffre<br />
(one-time-pad)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
• Feistel-Chiffre<br />
• DES<br />
• IDEA<br />
• AES<br />
• RSA<br />
• ElGamal<br />
• Systeme auf Basis<br />
elliptischer Kurven<br />
26<br />
27<br />
9
2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />
Generelle Aspekte der <strong>Kryptoanalyse</strong><br />
• Ziel <strong>und</strong> Erfolg des Angriffs<br />
• Klassifizierung von Angriffen<br />
• Nicht Gegenstand der <strong>Kryptoanalyse</strong>:<br />
– Implementierung <strong>und</strong> Einsatz des Verfahrens<br />
– Organisatorische Sicherheit<br />
… aber natürlich relevant für die Sicherheit<br />
• Angriffserfolg ganz allgemein<br />
– Konzelationssysteme: Vertraulichkeit verletzt<br />
(Inhalt/Informationen über verschlüsselte Nachricht ermittelt)<br />
– Authentikationssysteme: Nachricht unentdeckt modifiziert<br />
(gültigen MAC bzw. Signatur für modifizierte/selbst gewählte<br />
Nachricht generiert)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />
Ziel <strong>und</strong> Erfolg des Angriffs<br />
• Finden des geheimen Schlüssels (vollständiges Brechen,<br />
total break)<br />
• Finden eines zum Schlüssel äquivalenten Verfahrens<br />
(universelles Brechen, universal break)<br />
• Brechen nur für manche Nachrichten (nachrichtenbezogenes<br />
Brechen): )<br />
– für eine selbstgewählte Nachricht (selective break)<br />
– für irgendeine Nachricht (existential break)<br />
• Unterscheidung für universelles <strong>und</strong> nachrichtenbezogenes<br />
Brechen von Konzelationssystemen:<br />
– Komplette Entschlüsselung<br />
– Partielle Entschlüsselung<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />
Annahmen über Wissen <strong>und</strong> Möglichkeiten des Angreifers<br />
Passiver Angreifer Aktiver Angreifer<br />
System<br />
Algorithmus<br />
Protokoll<br />
Implementierung der Implementierung der<br />
geheimen Operation öffentlichen Operation<br />
Beobachtung (unsicherer Kanal)<br />
Zugriff auf Schnittstellen<br />
der Implementierung<br />
der geheimen<br />
Operation<br />
Kenntnis des Angreifers wird vorausgesetzt<br />
Vertrauensbereich – nicht zugänglich für Angreifer<br />
Angreifer hat vollen Zugriff (Kenntnis <strong>und</strong> Benutzung)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
28<br />
29<br />
System<br />
Algorithmus<br />
Protokoll<br />
Implementierung der Implementierung der<br />
geheimen Operation öffentlichen Operation<br />
Beobachtung (unsicherer Kanal)<br />
Zugriff auf Schnittstellen<br />
der Implementierung<br />
der geheimen<br />
Operation<br />
Angreifer hat Zugriff auf die Schnittstellen (ggf. beschränkt)<br />
30<br />
10
2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />
Klassifizierung von Angriffen (Konzelationssysteme)<br />
• Passive Angriffe<br />
– Reiner Schlüsseltext-Angriff<br />
ke kd (ciphertext-only attack)<br />
– Klartext-Schlüsseltext-Angriff<br />
(known-plaintext attack)<br />
m<br />
enc<br />
c<br />
dec<br />
m<br />
• Aktive Angriffe<br />
– Gewählter Klartext-Schlüsseltext-Angriff<br />
(chosen-plaintext attack; „Verschlüsselungsorakel“)<br />
– Gewählter Schlüsseltext-Klartext-Angriff<br />
(chosen-ciphertext attack; „Entschlüsselungsorakel“)<br />
CCA1 (auch als „lunchtime“, „lunch-break“ oder „midnight<br />
attack“ bezeichnet)<br />
• Weiteres Kriterium: Adaptivität<br />
CCA2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />
Übersicht über die Angriffstypen<br />
Angreifer kennt<br />
System <strong>und</strong> ...<br />
Passive Angriffe<br />
Aktive Angriffe<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Konzelationssysteme Authentikationssysteme<br />
symmetrisch asymmetrisch symmetrisch asymmetrisch<br />
c c; k e m, a m, s; k t<br />
Key only attack Key only attack<br />
Ciphertext only attack <br />
Known plaintext attack Known message attack<br />
Chosen<br />
plaintext attack<br />
Chosen message attack<br />
Chosen ciphertext attack <br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Klassifizierung von Kryptosystemen nach ihrer Sicherheit<br />
• informationstheoretisch sicher<br />
Auch einem unbeschränkten Angreifer gelingt es nicht, das<br />
System zu brechen.<br />
(„unconditional security“, „perfect secrecy“)<br />
• beste erreichbare Sicherheit<br />
• Verschiedene Begriffe zur Bewertung der Sicherheit der<br />
übrigen Systeme<br />
• Annahmen über Möglichkeiten des Angreifers, Betrachtung<br />
der Sicherheit unter bestimmten Angriffen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
31<br />
32<br />
33<br />
11
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Informationstheoretische Sicherheit<br />
[Claude Shannon: Communication Theory of Secrecy Systems. Bell<br />
Systems Technical Journal, 28(1949), 656-715.]<br />
• Informelle Beschreibung:<br />
Ein unbeschränkter Angreifer darf aus der Beobachtung von<br />
Schlüsseltext keinerlei Informationen über Klartext oder<br />
Schlüssel erhalten, unabhängig davon, wieviel Rechen- <strong>und</strong><br />
Zeitaufwand er investiert; die Unsicherheit des Angreifers<br />
über Klartext <strong>und</strong> Schlüssel darf sich durch seine Beobachtung<br />
nicht verringern.<br />
• Nachrichtenraum M, Schlüsselraum K, Schlüsseltextraum C<br />
• Elemente dieser Räume (Mengen) haben bestimmte<br />
Auftrittswahrscheinlichkeiten: p(m i), p(k i) and p(c i)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Definition der informationstheoretischen Sicherheit<br />
• a priori Wissen:<br />
Wissen des Angreifers über mögliche Nachrichten vor einer<br />
Beobachtung (als bekannt vorausgesetzt)<br />
• a posteriori Wissen:<br />
Wissen des Angreifers über mögliche Nachrichten nach der<br />
Beobachtung des gesendeten Schlüsseltexts<br />
Ein System heißt informationstheoretisch sicher, wenn für<br />
alle Nachrichten <strong>und</strong> Schlüsseltexte gilt, dass die a posteriori<br />
Wahrscheinlichkeiten p(m|c) der möglichen Nachrichten nach<br />
Beobachtung eines gesendeten Geheimtextes gleich der a<br />
priori Wahrscheinlichkeiten p(m) dieser Nachrichten sind:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
" m M " c C: p(m|c) = p(m).<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Nachrichten <strong>und</strong> Schlüsseltexte müssen stochastisch<br />
unabhängig voneinander sein.<br />
Dann gilt auch:<br />
" m M " c C: p(c|m) = p(c).<br />
• BBerechnung h der d a posterioi t i i WWahrscheinlichkeiten h h i li hk it p(m|c) ( | ) nach h<br />
dem Theorem von Bayes:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
p<br />
p | <br />
mc mpc| m<br />
p<br />
c<br />
34<br />
35<br />
36<br />
12
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
• Berechnung der Wahrscheinlichkeiten p(c j|m i), p(c j)<br />
Nachrichten<br />
p(c0|m0) m0 Schlüsseltexte<br />
c0 Wahrscheinlichkeit p(cj|mi), Schlüsseltext cj bei<br />
Verschlüsselung der<br />
Nachricht mi zu erhalten:<br />
m 1<br />
.<br />
mi .<br />
mn p(c j|m i)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c 1<br />
.<br />
cj .<br />
cn c j | m mi<br />
p p<br />
k <br />
p |<br />
<br />
kK:<br />
c enck,<br />
m <br />
Wahrscheinlichkeit des<br />
Schlüsseltextes c j :<br />
n<br />
c pmpc|<br />
m <br />
p<br />
j<br />
<br />
i1<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Bedingungen für informationstheoretische Sicherheit<br />
Beispiel 1:<br />
Nachrichten Schlüsseltexte Verschlüsselung<br />
00 00 enc(00, m)<br />
enc(01, m)<br />
01<br />
10<br />
11<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
01<br />
10<br />
11<br />
nicht informationstheoretisch sicher<br />
Anforderungen an die Anzahl der Schlüssel notwendig!<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
(1) Anzahl der Schlüssel<br />
• Verschlüsselung injektiv: m 1 = m 2 ñ enc(k, m 1) = enc(k, m 2)<br />
– Verschlüsselung n verschiedener Nachrichten m 0, m 1, …, m n-1<br />
mit einem Schlüssel k liefert n verschiedene Schlüsseltexte<br />
c 0, c 1, …, c n-1<br />
– Bedingung gilt für jeden der möglichen Schlüssel<br />
|C| ¥ |M|<br />
• Sicherheit des Systems:<br />
– Jeder Schlüsseltext muss das Ergebnis der Verschlüsselung<br />
jeder möglichen Nachricht sein können<br />
– Für eine Nachricht m <strong>und</strong> n verschiedene Schlüsseltexte muss es<br />
n verschiedene Schlüssel k 0, k 1, …, k n-1 geben<br />
|K| ¥ |C|<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
|K| ¥ |C| ¥ |M|<br />
i<br />
j<br />
j<br />
i<br />
i<br />
37<br />
38<br />
39<br />
13
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Beispiel 2:<br />
Nachrichten Schlüsseltexte Verschlüsselung<br />
m 0 = 00<br />
m 1 = 01<br />
m 2 = 10<br />
m 3 = 11<br />
als bekannt vorausgesetzt:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c 0 = 00<br />
c 1 = 01<br />
c 2 = 10<br />
c 3 = 11<br />
p(m 0) = 0,15<br />
p(m 1) = 0,05<br />
p(m 2) = 0,50<br />
p(m 3) = 0,30<br />
enc(k0 = 00, m)<br />
enc(k1 = 01, m)<br />
enc(k 2 = 10, m)<br />
enc(k 3 = 11 11, m)<br />
p(k 0) = 0,20<br />
p(k 1) = 0,70<br />
p(k 2) = 0,05<br />
p(k 3) = 0,05<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
• resultierende Wahrscheinlichkeiten der Schlüsseltexte:<br />
p(c 0) = 0,1050<br />
p(c 1) = 0,1925<br />
p(c 2) = 0,3200<br />
p(c 3) = 0,3825<br />
• resultierende a posteriori Wahrscheinlichkeiten:<br />
p(m 0|c 0) = 0,286<br />
p(m 0|c 1) = 0,545<br />
p(m 0|c 2) = 0,023<br />
p(m 0|c 3) = 0,020<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
p(m 1|c 0) = 0,333<br />
p(m 1|c 1) = 0,013<br />
p(m 1|c 2) = 0,008<br />
p(m 1|c 3) = 0,026<br />
p(m 2|c 0) = 0,238<br />
p(m 2|c 1) = 0,130<br />
p(m 2|c 2) = 0,312<br />
p(m 2|c 3) = 0,915<br />
p(m 3|c 0) = 0,143<br />
p(m 3|c 1) = 0,312<br />
p(m 3|c 2) = 0,656<br />
p(m 3|c 3) = 0,039<br />
nicht informationstheoretisch sicher<br />
Anforderungen an Wahrscheinlichkeiten der Schlüssel notwendig!<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
(2) Wahrscheinlichkeiten der Schlüssel (für |K| = |C| = |M|)<br />
Nachrichten Schlüsseltexte<br />
m 0 = 00<br />
m 1 = 01<br />
m 2 = 10<br />
m 3 = 11<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c 0 = 00<br />
c 1 = 01<br />
c 2 = 10<br />
c 3 = 11<br />
Es gilt:<br />
" m M " c C: p(c|m) = p(c)<br />
z.B. für c0 :<br />
p(c0|m0) = p(c0|m1) = p(c0|m2) = p(c0|m3) Schlüssel müssen mit gleicher Wahrscheinlichkeit verwendet<br />
werden<br />
Resultierende Schlüsseltexte sind ebenfalls gleichwahrscheinlich<br />
40<br />
41<br />
42<br />
14
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Beispiel 3:<br />
Nachrichten Schlüsseltexte<br />
m 0 = 00<br />
m 1 = 01<br />
m 2 = 10<br />
m 3 = 11<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c 0 = 00<br />
c 1 = 01<br />
c 2 = 10<br />
c 3 = 11<br />
p(m 0) = 0,15; p(m 1) = 0,05; p(m 2) = 0,5; p(m 3) = 0,3<br />
informationstheoretisch sicher<br />
Verschlüsselung<br />
enc(k0 = 00, m)<br />
enc(k1 = 01, m)<br />
enc(k 2 = 10, m)<br />
enc(k (k3 = 11 11, m) )<br />
p(k i) = p(k) = 0,25<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Beispiel 4: (Nutzung des Kryptosystems aus Beispiel 3)<br />
Verschlüsselung von zwei Nachrichten mit ein <strong>und</strong> demselben<br />
Schlüssel; Angreifer beobachtet: 0111 = c1c3 Nachrichten Schlüsseltexte Verschlüsselung<br />
m0 = 00 c0 = 00 enc(k0 = 00, m)<br />
enc(k1 = 01, m)<br />
m 1 = 01<br />
m 2 = 10<br />
m 3 = 11<br />
Nur vier mögliche Nachrichten:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c 1 = 01<br />
c 2 = 10<br />
c 3 = 11<br />
k 0: 1101 = m 3m 1<br />
k 1: 0010 = m 0m 2<br />
enc(k 2 = 10, m)<br />
enc(k 3 = 11, m)<br />
p(m 0) = 0,15; p(m 1) = 0,05;<br />
p(m 2) = 0,50; p(m 3) = 0,30<br />
k 2: 0111 = m 1m 3<br />
k 3: 1000 = m 2m 0<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
• Wahrscheinlichkeiten der Nachrichten:<br />
p(m 3m 1) = 0,015<br />
p(m 0m 2) = 0,075<br />
• resultierende a posteriori Wahrscheinlichkeiten:<br />
p(m 3m 1|c 1c 3) = 0,0833<br />
p(m 0m 2|c 1c 3) = 0,4167<br />
p(m 1m 3) = 0,015<br />
p(m 2m 0) = 0,075<br />
p(m 1m 3|c 1c 3) = 0,0833<br />
p(m 2m 0|c 1c 3) = 0,4167<br />
nicht informationstheoretisch sicher<br />
(3) Wahl der Schlüssel<br />
– Zufällige Wahl des Schlüssels für Verschlüsselung jedes „Blocks“<br />
– Einer Folge von Nachrichten muss eine Zufallsfolge von<br />
Schlüsseln entsprechender Länge zugeordnet sein<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
43<br />
44<br />
45<br />
15
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Bedingungen für informationstheoretische Sicherheit<br />
(1)Nachrichten <strong>und</strong> Schlüsseltexte müssen stochastisch<br />
unabhängig voneinander sein, d.h., die Wahrscheinlichkeit<br />
für einen Schlüsseltext darf nicht von der verschlüsselten<br />
Nachricht abhängen.<br />
(2)Es muss mindestens so viele Schlüsseltexte wie Nachrichten<br />
<strong>und</strong> mindestens so viele Schlüssel wie Schlüsseltexte geben. geben<br />
(3)Die Schlüssel müssen so gewählt werden, dass jeder<br />
Schlüsseltext mit gleicher Wahrscheinlichkeit aus jeder<br />
Nachricht hervorgegangen sein kann.<br />
(4)Die Schlüssel zur Verschlüsselung verschiedener<br />
Nachrichten müssen jeweils zufällig gewählt werden.<br />
Aussagen bzgl. Sicherheit gelten nur für den Algorithmus!<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Anmerkungen zur informationstheoretischen Sicherheit<br />
• Informationstheoretische Sicherheit kann nur von<br />
symmetrischen Systemen erreicht werden<br />
• Systeme, die ein <strong>und</strong> denselben Schlüssel mehrfach<br />
verwenden, können nicht informationstheoretisch sicher sein<br />
• Betrachtet wurde zunächst passiver Angriff<br />
(ciphertext only attack)<br />
• Informationstheoretisch sicheres System ist jedoch auch<br />
gegen aktive Angriffe sicher<br />
• Keine Annahmen über die zu verarbeitenden Nachrichten<br />
notwendig<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
• Schlüsselmanagement problematisch:<br />
– jede neue Nachricht erfordert einen neuen Schlüssel<br />
– Schlüssel symmetrischer Systeme müssen über sicheren Kanal<br />
ausgetauscht werden <strong>und</strong> geheim gehalten werden<br />
• Schutzziel „Zurechenbarkeit“ kann nicht mit symmetrischen<br />
System erbracht werden<br />
Verwendung von nicht informationstheoretisch sicheren<br />
Systemen notwendig<br />
Annahmen über den Angreifer notwendig (notwendige<br />
Berechnungen des Angreifers sind nicht effizient möglich)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
46<br />
47<br />
48<br />
16
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Weitere Sicherheitsbegriffe<br />
• „beweisbar sicher“ (provable security)<br />
Beweis besteht in Reduktion auf mathematisches Problem<br />
(Zielstellung: Wenn der Angreifer das System bricht, kann er<br />
das schwierige mathematische Problem lösen.)<br />
Wesentliche Probleme mit „beweisbarer Sicherheit“<br />
– Betrachtet nur Angriffe spezieller Art; sagt nichts aus über<br />
mögliche andere Angriffe<br />
– Bedingte Aussagen von der Art „unter der Annahme, dass<br />
niemand einen effizienten Algorithmus für dieses mathematische<br />
Problem findet“<br />
Sicherheit gegen bestimmte Angriffe<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Semantische Sicherheit [GoMi_84]<br />
Ein System heißt semantisch sicher, wenn alles, was bei Kenntnis<br />
des zugehörigen Schlüsseltextes effizient über den Klartext<br />
berechnet werden kann, auch effizient ohne Kenntnis des<br />
Schlüsseltextes berechnet werden kann.<br />
• „effizient“: (polynomiell) beschränkter Angreifer<br />
• VVorteil il des d Angreifers A if betrachtet b h (nicht ( i h besser b als l bloßes bl ß Raten) R )<br />
Ununterscheidbarkeit („polynomielle Sicherheit“) [GoMi_84]<br />
Angreifer ist nicht in der Lage, zwei beliebige Nachrichten zu<br />
finden, so dass er die Verschlüsselung einer dieser Nachrichten<br />
korrekt der Nachricht zuordnen kann.<br />
• äquivalent zu semantischer Sicherheit (s. [NaYu_90, KoMe_04] f.<br />
Referenzen)<br />
• „Charakterisierung von semantischer Sicherheit“ [BeSa_99]<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
50<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
• Semantische Sicherheit bietet intuitive Beschreibung von Sicherheit<br />
(Geheimhaltung)<br />
• Ursprünglich eingeführt für CPA, später aber auch unter aktiven<br />
Angriffen betrachtet [BDPR_98]<br />
• Ununterscheidbarkeit oft in Sicherheitsbeweisen verwendet<br />
• Begründet die Notwendigkeit indeterministischer Verschlüsselung<br />
(semantisch sicheres System sicher gegen vollständige Suche eines<br />
polynomiell beschränkten Angreifers)<br />
• Semantisch sicheres Kryptosystem in [GoMi_84] vorgestellt<br />
– basiert auf dem Problem zu entscheiden, ob eine Zahl ein quadratischer<br />
Rest ist (QRP)<br />
– Nachteil: Expansion (Verschlüsselung eines Bits liefert k Bit langen<br />
Schlüsseltext)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
49<br />
51<br />
17
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Ununterscheidbarkeit unter CPA<br />
Alice / Entschlüsselungsorakel Angreifer<br />
Schlüsselgenerierung:<br />
k d, k e keygen(param)<br />
wählt zufällig b {0,1}<br />
verschlüsselt m b<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k e<br />
m 0, m 1<br />
c b = dec(k d, m b)<br />
kennt k e<br />
wählt m 0, m 1 M<br />
mit length(m 0) = length(m 1)<br />
Entscheidung: b = 0 oder b = 1<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Ununterscheidbarkeit unter CCA1<br />
Alice / Entschlüsselungsorakel Angreifer<br />
Schlüsselgenerierung:<br />
k d, k e keygen(param)<br />
entschlüsselt c i<br />
wählt zufällig b {0,1}<br />
verschlüsselt m b<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k e<br />
c i<br />
m i = dec(k d, m i)<br />
m 0, m 1<br />
c b = dec(k d, m b)<br />
kennt k e<br />
beliebig oft<br />
wählt m 0, m 1 M<br />
mit length(m 0) = length(m 1)<br />
Entscheidung: b = 0 oder b = 1<br />
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Ununterscheidbarkeit unter CCA2<br />
Alice / Entschlüsselungsorakel Angreifer<br />
Schlüsselgenerierung:<br />
k d, k e keygen(param)<br />
entschlüsselt c i<br />
wählt zufällig b {0,1}<br />
verschlüsselt m b<br />
entschlüsselt c i<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k e<br />
c i<br />
m i = dec(k d, m i)<br />
m 0, m 1<br />
c b = dec(k d, m b)<br />
c i c b<br />
m i = dec(k d, m i)<br />
kennt k e<br />
beliebig oft<br />
wählt m 0, m 1 M<br />
mit length(m 0) = length(m 1)<br />
beliebig oft<br />
Entscheidung: b = 0 oder b = 1<br />
52<br />
53<br />
54<br />
18
2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />
Non-Malleability [DoDN_91]<br />
Ein System bietet Sicherheit gegen adaptive aktive Angriffe (Non-<br />
Malleability), wenn es für einen polynomiell beschränkten Angreifer<br />
nicht einfacher ist, bei Kenntnis eines Schlüsseltextes einen<br />
weiteren Schlüsseltext zu generieren, so dass die zugehörigen<br />
Klartexte in Relation zueinander stehen, als ohne Kenntnis dieses<br />
Schlüsseltextes.<br />
• Motivation: contract bidding<br />
• Beispiel für ein Kryptosystem: System von Cramer <strong>und</strong> Shoup<br />
[CrSh_98]<br />
Erweiterung des ElGamal-Kryptosystems<br />
Basiert auf dem Diffie-Hellman Entscheidungsproblem<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Überblick über die Vorlesung<br />
1. Einführung<br />
2. Gr<strong>und</strong>lagen<br />
3. Klassische Verfahren<br />
– Mathematische Gr<strong>und</strong>lagen<br />
– Transpositionen<br />
– MM-Substitutionen<br />
– PM-Substitutionen<br />
4. Symmetrische Verfahren<br />
5. Asymmetrische Verfahren<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – Mathematische Gr<strong>und</strong>lagen<br />
Modulare Arithmetik<br />
• Endliche Strukturen (z.B. Gruppen), basierend z.B. auf den<br />
natürlichen oder ganzen Zahlen<br />
• n = {0,1,2, …, n-1} Restklassenring modulo n<br />
• Kong Kongruenz en<br />
a, b ; n -{0}: n|(a-b) a, b kongruent<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
a b mod n<br />
• Restklasse ā zu jedem a : ā ú {b | a b mod n}<br />
55<br />
56<br />
57<br />
19
3 Klassische Verfahren – Transpositionen<br />
Transpositionen<br />
• Verwürfeln der Klartextzeichen, Permutation der Stellen<br />
des Klartextes (Permutationschiffren)<br />
• Beispiel: Skytala<br />
• Formale Beschreibung:<br />
M C Al M = C = Al m = (m 1m 2m 3 … m l), m i A, l N<br />
Permutation<br />
enc k(m) = enc k(m 1m 2m 3 … m l) = (m p(1)m p(2)m p(3) … m p(l))<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1 2 ... l <br />
P <br />
p 1 p2 ... p l <br />
3 Klassische Verfahren – Transpositionen<br />
Beispiel<br />
1 2 3 4 5 6 7<br />
P <br />
3 1 4 2 7 5 6<br />
• MMatrixtranspositionen i i i<br />
Beispiel: Spaltenpermutation<br />
Schlüssel: 5x7 Matrix<br />
P = (1,4)(2,5,3,7,6)<br />
P -1 = (4,1)(5,2,6,7,3)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
MM-Substitution (monoalphabetisch, monographisch)<br />
A M<br />
a i<br />
a 3<br />
M K C<br />
a 0<br />
a 2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k<br />
k<br />
AM, AC Alphabete, enc: A l<br />
M AC<br />
l<br />
m = (m0m1m2 … ml-1), mi AM, m A l<br />
M ,l N<br />
enck(m) = enck(m0)enck(m1) … enck(ml-1) k<br />
k<br />
b 1<br />
b 3<br />
b bj b0 A C<br />
58<br />
59<br />
60<br />
20
3 Klassische Verfahren – MM-Substitutionen<br />
• Verschiebechiffre (Additive Chiffre)<br />
A M = A C = {A:Z}<br />
Schlüssel: s {0:n-1}, n = 26<br />
encs(mi) = -1 [((mi)+s) mod n], (mi) {0:n-1}<br />
decs(ci) = -1 s( i) [((c [( ( i) i) - s) ) mod n] ]<br />
Cäsarchiffre für s = 3<br />
Nachricht a b c d e f g … x y z<br />
Schlüsseltext D E F G H I J … A B C<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
Beispiel<br />
n = 26, A = {A:Z}, s = 3<br />
:<br />
A B C D E F G H I J K L M N<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13<br />
O P Q R S T U V W X Y Z<br />
14 15 16 17 18 19 20 21 22 23 24 25<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
<strong>Kryptoanalyse</strong> der Verschiebechiffre<br />
• Nur 26 verschiedene Schlüssel<br />
• Vollständige Suche möglich<br />
Durchprobieren aller möglichen Schlüssel<br />
Beispiel:<br />
c =<br />
FMTKOJVIVGTNZDNOYVNOCZHVYZMCZPODBZIQJMGZNPIB<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
61<br />
62<br />
63<br />
21
3 Klassische Verfahren – MM-Substitutionen<br />
s m<br />
0 FMTKOJVIVGTNZ<br />
1 ELSJNIUHUFSMY<br />
2 DKRIMHTGTERLX<br />
3 CJQHLGSFSDQKW<br />
4 BIPGKFRERCPJV<br />
5 AHOFJEQDQBOIU<br />
6 ZGNEIDPCPANHT<br />
7 YFMDHCOBOZMGS<br />
8 XELCGBNANYLFR<br />
9 WDKBFAMZMXKEQ<br />
10 VCJAEZLYLWJDP<br />
11 UBIZDYKXKVICO<br />
12 TAHYCXJWJUHBN<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
s m<br />
13 SZGXBWIVITGAM<br />
14 RYFWAVHUHSFZL<br />
15 QXEVZUGTGREYK<br />
16 PWDUYTFSFQDXJ<br />
17 OVCTXSEREPCWI<br />
18 NUBSWRDQDOBVH Q<br />
19 MTARVQCPCNAUG<br />
20 LSZQUPBOBMZTF<br />
21 KRYPTOANALYSE<br />
22 JQXOSNZMZKXRD<br />
23 IPWNRMYLYJWQC<br />
24 HOVMQLXKXIVPB<br />
25 GNULPKWJWHUOA<br />
s = 21 ergibt den einzigen sinnvollen Text s = 21<br />
3 Klassische Verfahren – MM-Substitutionen<br />
• Schema von Polybios<br />
A M = {A:Z}<br />
A C = {ij | i, j {1, 2, 3, 4, 5}}<br />
enc:<br />
i<br />
j 1 2 3 4 5<br />
1 A B C D E<br />
2 F G H I J<br />
3 K L M N O<br />
4 P Q R S T<br />
5 U V W X/Y Z<br />
Beispiel<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
• Allgemeine Substitution: Permutation des Alphabets<br />
Beispiel<br />
A M = A C = {A:Z}<br />
P = (A,G)(B,J,Y,R,N,L,E,W)(C,K,H,Q,T,U,I,X)(D,M,O,F,P,S,Z,V)<br />
P -1 = (G,A)(B,W,E,L,N,R,Y,J)(C,X,I,U,T,Q,H,K)(D,V,Z,S,P,F,O,M)<br />
• Freimaurerchiffre (Kreuzchiffre)<br />
Beispiel<br />
W K C<br />
R A E<br />
L Z V<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
B<br />
X J<br />
U<br />
I S H<br />
D<br />
P O Y G N<br />
F M Q<br />
T<br />
64<br />
65<br />
66<br />
22
3 Klassische Verfahren – MM-Substitutionen<br />
Statistische Analysen<br />
• Möglichkeiten der vollständigen Suche sind eingeschränkt<br />
• Aufwand für eine allgemeine Substitution: |A|!<br />
• Angriffspunkt: MM-Substitutionen übertragen statistische<br />
Eigenschaften der Klartexte in die Schlüsseltexte<br />
Polybios:<br />
m = B E I S P I E L<br />
c = 12 15 24 44 41 24 15 32<br />
Permutation (Bsp. F. 66): c = J W X Z S X W E<br />
Verschiebechiffre (s = 3): c = E H L V S L H O<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
Struktur der Sprache<br />
• unterschiedliche Auftrittswahrscheinlichkeiten der Zeichen<br />
• Red<strong>und</strong>anz R<br />
– nicht alle Zeichenfolgen der Länge l sind gleichwahrscheinlich<br />
– Unterschied zwischen Entropie des Alphabets H(X) <strong>und</strong><br />
zugehöriger maximaler Entropie H 0(X) (bei Gleichwahrscheinlichkeit<br />
der N Zeichen des Alphabets):<br />
R = H0(X) –H(X); <br />
<br />
N 1 1<br />
H X p xi<br />
ld ; H 0 X ld N<br />
p x<br />
– Natürliche Sprachen weisen bereits für l = 1 eine relativ hohe<br />
Red<strong>und</strong>anz auf<br />
– Red<strong>und</strong>anz wächst mit der Länge der betrachteten<br />
Zeichenfolgen<br />
– Einfache Substitutionschiffren (deutsche oder englische<br />
Nachricht) können i. Allg. bereits ab ca. 30 Zeichen<br />
entschlüsselt werden<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
i0 i<br />
3 Klassische Verfahren – MM-Substitutionen<br />
Zeichenhäufigkeiten (%)<br />
Deutsch Englisch<br />
* 15.15 - 19.25 -<br />
a 4.58 5.40 6.60 8.17<br />
b 1.60 1.89 1.21 1.49<br />
c 2.67 3.15 2.25 2.78<br />
d 439 4.39 517 5.17 343 3.43 425 4.25<br />
e 15.35 18.10 10.26 12.70<br />
f 1.36 1.60 1.80 2.23<br />
g 2.67 3.15 1.63 2.02<br />
h 4.36 5.14 4.92 6.09<br />
i 6.38 7.52 5.63 6.97<br />
j 0.16 0.19 0.12 0.15<br />
k 0.96 1.13 0.62 0.77<br />
l 2.93 3.45 3.25 4.03<br />
m 2.13 2.51 1.94 2.41<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Deutsch Englisch<br />
n 8.84 10.42 5.45 6.75<br />
o 1.90 2.24 6.06 7.51<br />
p 0.50 0.59 1.56 1.93<br />
q 0.01 0.01 0.08 0.10<br />
r 686 6.86 88.08 08 484 4.84 599 5.99<br />
s 5.39 6.35 5.11 6.33<br />
t 4.73 5.57 7.31 9.06<br />
u 3.48 4.10 2.23 2.76<br />
v 0.72 0.87 0.77 0.96<br />
w 1.42 1.67 1.91 2.36<br />
x 0.01 0.01 0.12 0.15<br />
y 0.02 0.02 1.59 1.97<br />
z 1.42 1.67 0.06 0.07<br />
67<br />
68<br />
69<br />
23
3 Klassische Verfahren – MM-Substitutionen<br />
Zeichenhäufigkeiten (deutsch)<br />
Häufigkeitten<br />
* a b c d e f g h i j k l m n o p q r s t u v w x y z<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
Einteilung der Zeichen in Gruppen<br />
Gruppe Deutsch Englisch<br />
I e e<br />
II n r i s t d h a t a o i n s h r<br />
III u l c g d l<br />
IV m o b z w f c u m w f g y p b<br />
V k v p j y q x v k j x q z<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
Häufigkeiten von Bi- <strong>und</strong> Trigrammen<br />
Rang<br />
1 EN TH EIN THE<br />
2 ER HE ICH ING<br />
3 CH IN NDE AND<br />
4 ND ER DIE HER<br />
5 EI AN UND ERE<br />
6 DE RE DER ENT<br />
7 IN ED CHE THA<br />
8 ES ON END NTH<br />
9 TE ES GEN WAS<br />
10 IE ST SCH ETH<br />
11 UN EN CHT FOR<br />
12 GE AT DEN DTH<br />
13 ST TO INE HAT<br />
14 IC NT NGE SHE<br />
15 HE HA NUN ION<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Rang<br />
16 NE ND UNG INT<br />
17 SE OU DAS HIS<br />
18 NG EA HEN STH<br />
19 RE NG IND ERS<br />
20 AU AS ENW VER<br />
21 DI OR ENS TTH<br />
22 BE TI IES TER<br />
23 SS IS STE HES<br />
24 NS ET TEN EDT<br />
25 AN IT ERE EST<br />
26 SI AR LIC THI<br />
27 UE TE ACH HAD<br />
28 DA SE NDI OTH<br />
29 AS HI SSE ALL<br />
30 NI OF AUS ATI<br />
Deutsch<br />
Englisch<br />
70<br />
71<br />
72<br />
24
3 Klassische Verfahren – MM-Substitutionen<br />
• Analyse von MM-Substitutionen<br />
- Analyse der Häufigkeiten einzelner Buchstaben<br />
- Analyse der Häufigkeiten von Bi- <strong>und</strong> Trigrammen<br />
- Nutzung der Red<strong>und</strong>anz zur Ermittlung fehlender<br />
Zeichen<br />
- bei bekannten Wortgrenzen: Identifikation kurzer<br />
Wörter, Vorsilben, Endungen, Anfangs- <strong>und</strong><br />
Endbuchstaben<br />
Beispiel:<br />
QOTC RQXVUXZX FXAFX SHXVVXV KOZTCQOB DHV KXV<br />
TCQZQSFXZWBFWBTCXV XWUXVBTCQJFXV KXZ DXZLXVKXFXV<br />
BEZQTCX QGLXWTCXV QRRXZKWVUB WBF XB WY<br />
QRRUXYXWVXV VWTCF YHXURWTC NXKX<br />
TCQZQSFXZWBFWBTCX XWUXVBTCQJF XWVXZ BEZQTCX MO<br />
DXZYXWKXV OVK BWTC KXVVHTC WV KWXBXZ BEZQTCX<br />
QOBMOKZOXTSXV<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – MM-Substitutionen<br />
Analyse von Transpositionen<br />
• statistische Eigenschaften des Klartextes nur teilweise<br />
erhalten<br />
• einfache Analyse bei Klartext-Schlüsseltext-Angriff<br />
• ansonsten: Rekonstruktion der Bi- <strong>und</strong> Trigramme<br />
• zunächst Ermittlung der Blocklänge<br />
Beispiel<br />
CESVLRHEESUUSLLGANOSGMIHRSTU<br />
CESVLRH EESUUSL LGANOSG MIHRSTU<br />
Reduktion der möglichen Kombinationen:<br />
EVLRSCH, EVRLSCH, …, VELRSCH, ...<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
PM-Substitution (1) (polyalphabetisch, monographisch)<br />
A M<br />
a i<br />
a 3<br />
M K C<br />
a 0<br />
a 2<br />
k 1<br />
b 14<br />
A M, A C1, A C2, …, A Cr Alphabete,<br />
enc: A M l (AC1 » A C2 » … » A Cr) l<br />
m = (m 1m 2 … m l), m i A M, m A M l ,l N<br />
enc k(m) = enc k (m 0)enc k (m 1) … enc k (m l), k j {1:r}<br />
0 1 l<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k 2<br />
k r<br />
A C1<br />
b 20<br />
b r1<br />
73<br />
74<br />
A C2<br />
A Cr<br />
75<br />
25
3 Klassische Verfahren – PM-Substitutionen<br />
PM-Substitution (2)<br />
A M<br />
a i<br />
a 3<br />
M K C<br />
a 0<br />
a 2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k 1 kk2<br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Vigenère-Chiffre (1)<br />
klassische Darstellung: Vigenère-Tableau<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k r<br />
a b c d e f … z<br />
A A B C D E F … Z<br />
B B C D E F G … A<br />
C C D E F G H … B<br />
k 3<br />
b 1<br />
b<br />
3<br />
bj b0 D D E F G H I … C<br />
E E F G H I J … D<br />
F F G H I J K …<br />
…<br />
E<br />
… … … … … … … … … … …<br />
Z Z A B C D E … Y<br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Vigenère-Chiffre (2)<br />
A M = A C = {A:Z}<br />
Schlüssel: K = {k|k = (k 0k 1 … k r-1) k i {A:Z}}<br />
enc k(m) = enc (m 0)enc (m 1) … enc (m i)enc (m i+1) … enc (m l-1)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
A C<br />
k 0 k 1<br />
k kr-11 k 0 k (l (l-1) 1) mod d r<br />
mit<br />
enc (mi) = -1 [( (mi)+ (kj)) mod n], (mi), (kj) {0:n-1}<br />
dec (ci) = -1 kj [( (ci)- (kj)) mod n]<br />
k j<br />
Beispiel<br />
76<br />
77<br />
78<br />
26
3 Klassische Verfahren – PM-Substitutionen<br />
• Binäre Vigenère-Chiffre<br />
A = {0,1}<br />
n = 2<br />
Klartextbuchstabe mi, Schlüsselbuchstabe ki: ci = (mi+ki) mod 2 bzw. ci = mi ki mi = ( (ci+kk i) ) mod d 2 b bzw. mi = ci k ki • Schlüssel<br />
– sollten Zufallsfolgen sein<br />
– kürzer als Klartext: periodische Wiederholung<br />
– Autokey-Verfahren<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Vernam-Chiffre (one-time pad)<br />
– Schlüssellänge <strong>und</strong> Länge des Klartextes sind gleich<br />
– Weitere Bedingungen:<br />
• Jeder Schlüssel wird nur einmal verwendet <strong>und</strong><br />
• Schlüssel sind zufällig.<br />
Einzige informationstheoretisch sicheres Chiffre.<br />
• Binäre Vernam-Chiffre<br />
A = {0,1}; n = 2<br />
enck(m) = enc (m0)enc (m1) … enc (ml-1) mit<br />
enc k(mi) = mi k<br />
i<br />
i<br />
dec (ci) = ci ki k i<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k 0<br />
3 Klassische Verfahren – PM-Substitutionen<br />
k 1<br />
Analyse von PM-Substitutionen<br />
• statistische Eigenschaften des Klartextes werden nicht in<br />
den Schlüsseltext übertragen<br />
• unter bestimmten Bedingungen sicher (Schlüssellänge!)<br />
2 Schritte:<br />
11. Ermittlung der<br />
Schlüssellänge r<br />
SSchlüssel hlü l<br />
Schlüsseltext<br />
k k0 c0 k k1 c1 k k2 c2 …<br />
…<br />
k kr-1 cr-1 Vereinfachung der<br />
Analyse auf Analyse<br />
von r MM-Substitutionen<br />
2. Analyse der<br />
MM-Substitutionen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k l-1<br />
c r c r+1 c r+2 … c r+(r-1)<br />
c 2r c 2r+1 c 2r+2 … c 2r+(r-1)<br />
… … … … …<br />
MM-Substitution mit<br />
Schlüssel k 0<br />
79<br />
80<br />
81<br />
27
3 Klassische Verfahren – PM-Substitutionen<br />
• Kasiski-Test<br />
– 1863 von Friedrich Wilhelm Kasiski publiziert<br />
– Suche nach identischen Abschnitten im Schlüsseltext<br />
– Annahme: identische Abschnitte im Klartext mit<br />
denselben Schlüsselzeichen verschlüsselt<br />
– Rückschlüsse auf Schlüssellänge: ggT der Abstände<br />
– zufällige Wiederholungen möglich<br />
untersuchte Folgen sollten mindestens die Länge 3<br />
haben<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
m = A L B E R T I S K R E I S S C H E I B E N S I N D<br />
k = K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K<br />
c = K P Z O V R S W I B I G C W A R I G L I L C M L N<br />
m ... E I N E V E R B E S S E R T E F O R M D E R V E R<br />
k ... E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E<br />
c ... I G X I T O V Z O W Q O V R O J M B Q B O V T O V<br />
m ... S C H I E B E C H I F F R E N<br />
k ... Y K E Y K E Y K E Y K E Y K E<br />
c ... Q M L G O F C M L G P J P O R<br />
Wiederholungen durch Verschlüsselung identischer Klartextabschnitte<br />
zufällige Wiederholungen<br />
Abstände: ‚OVR‘: 33 = 3 11<br />
‚TOV‘: 18 = 2 3<br />
‚MLG‘: 6<br />
‚CML‘: 35<br />
2<br />
= 2 3<br />
= 5 7<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
ggT(Abstände) = 3<br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Friedman-Test<br />
– von William F. Friedman veröffentlicht<br />
– analysiert die Red<strong>und</strong>anz des Schlüsseltextes<br />
– basiert auf dem Koinzidenzindex I (1922, Friedman)<br />
– Länge der Nachricht m: length(m) = l<br />
– Länge des Schlüssels k: length(k) = r<br />
Wiederum 2 Schritte:<br />
1. Ermittlung der Schlüssellänge r<br />
2. Ermittlung des Schlüssels durch Analyse der<br />
MM-Substitutionen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
82<br />
83<br />
84<br />
28
3 Klassische Verfahren – PM-Substitutionen<br />
Koinzidenzindex I<br />
• Wahrscheinlichkeit, dass zwei unabhängig voneinander<br />
gewählte Zeichen a i übereinstimmen<br />
n1<br />
2<br />
i ,<br />
i0<br />
i ( i), i<br />
I p p p a a A<br />
• I minimal, wenn alle Zeichen gleichwahrscheinlich:<br />
1 1<br />
pi , i0,1,..., n1 : Imin<br />
<br />
n n<br />
A = {A:Z}: n = 26, I min = 1/26 = 0,0385<br />
• I „maximal“ für Texte in natürlichen Sprachen:<br />
Nachricht in deutscher Sprache: I max = 0,0762<br />
Nachricht in englischer Sprache: I max = 0,0655<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
Koinzidenzindex für Beispieltexte (deutsch, nur “A” – “Z”)<br />
I max = 0,0762<br />
─ r = 1 r = 4 r = 12 r = 26<br />
l = 110 038 0,07379 0,07379 0,04769 0,04030 0,03847<br />
l = 10 090 0,07226 0,07226 0,04714 0,04009 0,03856<br />
l = 2 059 0,08002 0,08002 0,04936 0,04107 0,04094<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
Einordnung des Schlüsseltextes in eine Tabelle<br />
Schlüssel k 0 k 1 k 2 … k r-1<br />
Schlüsseltext c 0 c 1 c 2 … c r-1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c cr c cr+1 c cr+2 … c cr+(r-1) c 2r c 2r+1 c 2r+2 … c 2r+(r-1)<br />
c 3r c 3r+1 c 3r+2 … c 2r+(r-1)<br />
… … … … …<br />
I max = 0,0762<br />
I min = 0,0385<br />
85<br />
86<br />
I min = 0,0385<br />
87<br />
29
3 Klassische Verfahren – PM-Substitutionen<br />
Wahrscheinlichkeit, ein Paar gleiche Zeichen auszuwählen:<br />
I <br />
n 1<br />
2 gl max<br />
pi<br />
<br />
i0 anzbp<br />
Anzahl von Buchstabenpaaren<br />
• aus einer gleichen Spalte:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
anz I<br />
• aus verschiedenen Spalten:<br />
• insgesamt:<br />
anz I<br />
v<br />
min<br />
N <br />
N 1 1<br />
r<br />
anzgl<br />
<br />
<br />
2<br />
N <br />
NN <br />
r<br />
anzv<br />
<br />
<br />
2<br />
NN 1<br />
anzbp<br />
<br />
2<br />
3 Klassische Verfahren – PM-Substitutionen<br />
Einsetzen <strong>und</strong> Umformen nach r liefert:<br />
( Imax Imin ) N 0,0377N<br />
r <br />
( N 1) I Imax Imin N ( N 1) I 0,0762 0,0385N<br />
0,0377<br />
r für ü N >> 1<br />
I 0,0385<br />
anz( a ) 1<br />
I p anz a<br />
n1 n1 2 n1<br />
2 i<br />
2<br />
i ( )<br />
2 2<br />
i<br />
i0 i0 N N i0<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Analyse einer PM-Substitution ohne periodische<br />
Wiederholung des Schlüssels<br />
– Methode von Friedman 1918 vorgestellt<br />
– Voraussetzung: Schlüssel <strong>und</strong> Klartext entstammen einer<br />
natürlichen Sprache<br />
– Basis: eine relativ kleine Menge von Buchstaben macht bereits<br />
einen großen Teil des Textes aus (ca. 75% des Englischen oder<br />
Deutschen bestehen aus den jeweils 10 häufigsten Buchstaben)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
88<br />
89<br />
90<br />
30
3 Klassische Verfahren – PM-Substitutionen<br />
Vigenère-Tableau für die 10 häufigsten Buchstaben (D):<br />
e n r i s t d h a u<br />
E I R V M W X H L E Y<br />
N R A E V F G Q U N H<br />
R V E I Z J K U Y R L<br />
I M V Z Q A B L P I C<br />
S W F J A K L V Z S M<br />
T X G K B L M W A T N<br />
D H Q U L V W G K D X<br />
H L U Y P Z A K O H B<br />
A E N R I S T D H A U<br />
U Y H L C M N X B U O<br />
Ermittlung sinnvoller Kombinationen, Ausschluss …<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
Mögliche Zusammensetzung der Schlüsseltextbuchstaben<br />
A B C D E F G H I J K L M<br />
a+a i+t i+u a+d a+e n+s d+d a+h e+e r+s s+s e+h t+t<br />
n+n h+u n+r n+t e+d r+r d+h i+d e+i<br />
i+s n+u a+i r+t s+t s+u<br />
h+ t r+u<br />
N o P Q R S T U V W X Y Z<br />
a+n h+h h+i i+i a+r a+s a+t a+u d+s d+t d+u e+u i+r<br />
t+u u+u d+n e+n d+r e+r e+s e+t h+r h+s<br />
h+n i+n<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3 Klassische Verfahren – PM-Substitutionen<br />
• Beispiel<br />
m = E I N B I L D V E R A R B E I T U N G S …<br />
k = D I E S T E G A N O G R A P H I E E R M …<br />
c = H Q R T B P J V R F G I B T P B Y R X E …<br />
H: (a+h), (e+d), (n+u)<br />
Q: (i+i), (d+n)<br />
R: (a+r), (e+n)<br />
T: (a+t)<br />
B: (i+t), (h+u)<br />
P: (h+i)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
insgesamt 6 · 3 · 4 = 72<br />
Möglichkeiten, darunter (die, ein)<br />
insgesamt 2 · 4 · 2 = 16<br />
Möglichkeiten, keine sinnvolle<br />
Kombination darunter<br />
91<br />
92<br />
93<br />
31
3 Klassische Verfahren<br />
Zusammenfassung<br />
• MM-Substitutionen erhalten alle Gesetzmäßigkeiten des<br />
Klartextes – Angriffe mittels statistischer Analysen<br />
• PM-Substitionen beseitigen diesen Nachteil durch<br />
Anwendung unterschiedlicher Schlüsselzeichen; relevant für<br />
die Sicherheit: Schlüssellänge <strong>und</strong> Wahl des Schlüssels<br />
• Transpositionen p erhalten Einzelwahrscheinlichkeiten, , aber<br />
nicht die Wahrscheinlichkeiten von Zeichenfolgen<br />
• Ansatzpunkt für die vorgestellten Analysen: erhaltene<br />
Red<strong>und</strong>anz des Klartextes<br />
<strong>Kryptoanalyse</strong> m. H. eines reinen Schlüsseltext-Angriffs<br />
für Klartext „ohne“ Red<strong>und</strong>anz nicht möglich;<br />
Reduktion der Red<strong>und</strong>anz erschwert <strong>Kryptoanalyse</strong><br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Überblick über die Vorlesung<br />
1. Einführung<br />
2. Gr<strong>und</strong>lagen<br />
3. Klassische Verfahren<br />
4. Symmetrische Verfahren<br />
– Blockchiffren<br />
– Feistel-Chiffre<br />
– Kryptographische Güte einer Verschlüsselungsfunktion<br />
– DES<br />
• Differentielle <strong>Kryptoanalyse</strong><br />
• Lineare <strong>Kryptoanalyse</strong><br />
– IDEA<br />
– AES<br />
– Betriebsarten<br />
5. Asymmetrische Verfahren<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Blockchiffren<br />
Blockchiffren<br />
• Verschlüsselung von Nachrichten fester Länge<br />
(Stromchiffren: Verschlüsselung von Nachrichten beliebiger<br />
Länge)<br />
• Nachricht m in b Blöcke der Länge l unterteilt:<br />
m = m 1m 2 … m b, m i = m i1m i2 … m il, m ij {0, 1}<br />
• Verschlüsselung der Nachrichtenblöcke mit k K:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c i = enc(k, m i)<br />
praktischer Einsatz: Betriebsarten<br />
• längentreue Verfahren: length(m i) = length(c i)<br />
• Anforderungen an enc k : Sicherheit <strong>und</strong> Performance<br />
94<br />
95<br />
96<br />
32
4 Symmetrische Verfahren – Blockchiffren<br />
Sicherheitsanforderungen an enc k<br />
• Diffusion <strong>und</strong> Konfusion<br />
[Claude Shannon: Communication Theory of Secrecy Systems. Bell<br />
Systems Technical Journal, 28(1949), 656-715.]<br />
• Ziel: Erschweren statistischer Angriffe<br />
• Diffusion: im Klartext enthaltene Red<strong>und</strong>anz wird im<br />
Schlüsseltext „verteilt“<br />
• Konfusion: Beziehungen zwischen Schlüsseltexten <strong>und</strong><br />
Schlüsseln so komplex wie möglich<br />
• Produktchiffre: Kombination von Verschlüsselungsverfahren<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Blockchiffren<br />
• Produktchiffre als Kombination von<br />
Substitution ( Konfusion) <strong>und</strong> Transposition ( Diffusion)<br />
bietet Möglichkeit der effizienten Konstruktion<br />
entsprechender Verschlüsselungsfunktionen<br />
Substitutions-Permutations-Netzwerk (SP-Netzwerk)<br />
• Iterierte Blockchiffren<br />
– Verschlüsselung erfolgt in mehreren R<strong>und</strong>en<br />
c = encn(kn, encn-1(kn-1, ... enc2(k2, enc1(k1, m)) ... ))<br />
– Verwendung von R<strong>und</strong>enschlüsseln<br />
– Algorithmus zur Generierung der R<strong>und</strong>en- bzw. Teilschlüssel<br />
– Verschlüsselungsfunktion muss im Allgemeinen invertierbar sein<br />
– Anwendung der R<strong>und</strong>enschlüssel bei Entschlüsselung in<br />
umgekehrter Reichenfolge<br />
m = dec1(k1, dec2(k2, ... decn-1(kn-1, decn(kn, c)) ... ))<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Blockchiffren<br />
Allgemeine Ansätze zur <strong>Kryptoanalyse</strong> von Blockchiffren<br />
• Unabhängig von der internen Struktur<br />
• Vollständige Schlüsselsuche<br />
– Klartext-Schlüsseltext-Angriff<br />
– Aufwand abhängig vom Schlüsselraum<br />
• Zugriff auf eine vorab berechnete Tabelle<br />
– Gewählter Klartext-Schlüsseltext-Angriff<br />
Klartext Schlüsseltext Angriff<br />
– Aufwand abhängig vom Schlüsselraum<br />
• Time-Memory-Tradeoff<br />
• Kodebuchanalyse<br />
– Gewählter Klartext-Schlüsseltext-Angriff<br />
– Ziel: Rekonstruktion des Klartextes<br />
– Aufwand abhängig von Struktur <strong>und</strong> Red<strong>und</strong>anz des Klartextes<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
97<br />
98<br />
99<br />
33
4 Symmetrische Verfahren – Feistel-Chiffre<br />
Feistel-Chiffre<br />
• Forschungsprogramm „Lucifer“ in den späten 60er Jahren<br />
• Feistel-Chiffre 1973 von Horst Feistel veröffentlicht<br />
• Permutationen <strong>und</strong> Substitutionen<br />
• Iterierte Blockchiffre<br />
• Struktur dieser Chiffre gehört zu den gr<strong>und</strong>legenden<br />
Konzepten der <strong>Kryptographie</strong><br />
• Anwendung des Prinzips z.B. in DES, 3-DES, Blowfish, CAST,<br />
FEAL <strong>und</strong> Twofish<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Feistel-Chiffre<br />
• Zerlegung des Nachrichtenblocks m i A l in zwei Teilblöcke:<br />
m i = (L 0, R 0)<br />
c i = (L n, R n)<br />
• Schema ist selbstinvers: Ver- <strong>und</strong> Entschlüsselung geschieht<br />
mit it d den gleichen l i h FFunktionen, kti nur Reihenfolge R ih f l der d<br />
R<strong>und</strong>enschlüssel wird umgekehrt<br />
• R<strong>und</strong>enfunktion f muss nicht bijektiv sein<br />
• Verarbeitung von Teilblöcken ermöglicht effiziente<br />
Implementierung<br />
• f bestimmt kryptographische Sicherheit des Verfahrens<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Feistel-Chiffre<br />
Verschlüsselung in einer R<strong>und</strong>e<br />
enc(k i, (L i-1, R i-1)) = R i-1, f(R i-1, k i) L i-1 = L i, R i<br />
R<strong>und</strong>e 1: L0 R0 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
L 1<br />
f<br />
R 1<br />
k 1<br />
enc(k 1, (L 0, R 0)) = R 0, f(R 0, k 1) L 0 = L 1, R 1<br />
100<br />
101<br />
102<br />
34
4 Symmetrische Verfahren – Feistel-Chiffre<br />
Entschlüsselung in einer R<strong>und</strong>e<br />
dec(k i, (L i, R i)) = f(L i, k i) R i, L i = L i-1, R i-1<br />
R<strong>und</strong>e 1: L1 R1 k 1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
f<br />
L 0<br />
R 0<br />
dec(k 1, (L 1, R 1)) = f(L 1, k 1) R 1, L 1 = L 0, R 0<br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Kryptographische Güte einer Verschlüsselungsfunktion<br />
• Kryptographisch entscheidende Funktion f muss bestimmten<br />
Anforderungen genügen ( Konfusion <strong>und</strong> Diffusion)<br />
• Merkmale zur Beurteilung von f: Designkriterien<br />
• Beispiele:<br />
– Vollständigkeit<br />
– Avalanche<br />
– Nichtlinearität<br />
– keine Informationen über Outputbits ohne Wissen über<br />
Inputbits ( Korrelationsimmunität)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Vollständigkeit<br />
Eine Funktion f: {0,1} n {0,1} m heißt vollständig, wenn<br />
jedes Bit des Outputs von jedem Bit des Inputs abhängt.<br />
Grad der Vollständigkeit k/n: im Mittel hängen k Output-Bits<br />
von den n Inputbits ab<br />
Beispiel: S Bsp<br />
y 1 = x 1x 2 x 1x 3 x 2x 3 x 2 x 3 1<br />
y 2 = x 1x 2 x 1x 3 x 2x 3 x 1 x 3 1<br />
y 3 = x 1x 2 x 1x 3 x 2x 3 x 1 x 2 1<br />
kein hinreichendes Kriterium<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
103<br />
104<br />
105<br />
35
4 Symmetrische Verfahren – Kryptographische Güte<br />
y 1 = x 1x 2 x 1x 3 x 2x 3 x 2 x 3 1<br />
y 2 = x 1x 2 x 1x 3 x 2x 3 x 1 x 3 1<br />
y 3 = x 1x 2 x 1x 3 x 2x 3 x 1 x 2 1<br />
Input Output<br />
x3 x2 x1 y3 y2 y1 0 0 0 1 1 1<br />
0 0 1 0 0 1<br />
0 1 0 0 1 0<br />
0 1 1 0 1 1<br />
1 0 0 1 0 0<br />
1 0 1 1 0 1<br />
1 1 0 1 1 0<br />
1 1 1 0 0 0<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
6 von 8 möglichen<br />
Belegungen des Inputs<br />
werden identisch<br />
ausgegeben!<br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Beispiel: Vollständigkeit der Feistel-Chiffre (f vollst.)<br />
Outputbit<br />
j<br />
Outputbit<br />
j<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
c 0 = m = L 0, R 0<br />
0<br />
01234567<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
c 2 = L 2, R 2<br />
01234567<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Inputbit i<br />
Inputbit i<br />
Outputbit<br />
j<br />
Outputbit<br />
j<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
c 1 = L 1, R 1<br />
0<br />
01234567<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
c 3 = L 3, R 3<br />
01234567<br />
Inputbit i<br />
Inputbit i<br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Avalanche<br />
Eine Funktion f: {0,1} n {0,1} m besitzt dann den<br />
Avalanche-Effekt, wenn die Änderung eines Input-Bits im<br />
Mittel die Hälfte aller Output-Bits ändert.<br />
Wird durch Änderung eines Input-Bits jedes Output-Bit mit<br />
einer Wahrscheinlichkeit von 50% verändert, , erfüllt f das<br />
strikte Avalanche-Kriterium.<br />
Erfüllt f das strikte Avalanche-Kriterium, so ist f stets<br />
vollständig.<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
106<br />
107<br />
108<br />
36
4 Symmetrische Verfahren – Kryptographische Güte<br />
Beispiel (S Bsp)<br />
m<br />
m2 1 000 001 010 011 100 101 110 111 <br />
000 2 2 2 6<br />
001 2 1 1 4<br />
010 2 1 1 4<br />
011 1 1 2 4<br />
100 2 1 1 4<br />
101 1 1 2 4<br />
110 1 1 2 4<br />
111 2 2 2 6<br />
Gesamtzahl der geänderten Bits 36<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Linearität<br />
Eine Funktion f: {0,1} n {0,1} m ist dann linear, wenn jedes<br />
Output-Bit y i linear von den Input-Bits x i abhängt:<br />
y i = a j,1 x 1 + a j,2 x 2 + … + a j,n x n + b j<br />
Wenn wenigstens ein Output Output-Bit Bit linear von den Input Input-Bits Bits<br />
abhängt, ist f partiell linear.<br />
weiteres Maß: Grad der Übereinstimmung von f mit ihrer<br />
besten linearen Approximation g<br />
Güte der Approximation: Anteil der Funktionswerte, in denen<br />
f <strong>und</strong> g übereinstimmen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Korrelationsimmunität<br />
f(x1, x2, …, xn) boolesche Funktion in n Variablen<br />
Die Funktion f heißt dann k-korrelationsimmun, wenn man<br />
aus Kenntnis von k beliebigen Eingangswerten keine<br />
Information über den resultierenden Ausgangswert erhalten<br />
kann <strong>und</strong> umgekehrt.<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
109<br />
110<br />
111<br />
37
4 Symmetrische Verfahren – Kryptographische Güte<br />
Abhängigkeitsmatrix AM<br />
• Beurteilungsmethode für die Gütekriterien Vollständigkeit,<br />
Avalanche, Nichtlinearität/partielle Nichtlinearität<br />
[W. Fumy, H. Rieß: <strong>Kryptographie</strong>: Einsatz, Entwurf <strong>und</strong> Analyse<br />
symmetrischer Kryptoverfahren. 2. akt. u. erw. Aufl., Oldenburg, 1994.]<br />
• Die AM einer Funktion f: {0,1} n {0,1} m ist eine<br />
(n x m)-Matrix, deren Einträge ai,j die Wahrscheinlichkeit<br />
angeben, dass bei einer Änderung des i-ten Eingabebits das<br />
j-te Ausgabebit komplementiert wird.<br />
• Eigenschaften von AM:<br />
– AM(f = const): Nullmatrix<br />
– AM(f: Permutation): Permutationsmatrix<br />
– AM(f) = AM(1 f)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Eigenschaften von f (x i: Inputbits, y j: Outputbits)<br />
a i,j = 0 y j nicht von x i abhängig; f ist nicht vollständig<br />
Anzahl a i,j mit a i,j > 0: Grad der Vollständigkeit<br />
a i,j > 0 f ist vollständig<br />
ai,j = 1 yj ändert sich bei jeder Änderung von xi yj hängt linear von xi ab<br />
j. i. ai,j {0,1} f ist partiell linear (Spalte aj binärer Vektor)<br />
i. j. ai,j {0,1} f ist linear (AM binäre Matrix)<br />
m n 1 1<br />
ai,<br />
j 0,<br />
5<br />
m n i1<br />
j1<br />
f besitzt Avalanche-Effekt<br />
i. j.ai,j 0,5 f erfüllt striktes Avalanche-Kriterium<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Berechnung der Abhängigkeitsmatrix<br />
exakte Berechnung nur für kleine n, m möglich<br />
näherungsweise Berechnung<br />
i. j. ai,j := 0<br />
für „hinreichend viele“ X<br />
wähle zufälligen nn-Bit Bit Vektor X<br />
für alle i von 1 bis n<br />
Bestimme Xi (unterscheidet sich von X genau im Bit i)<br />
Vi = f(X) f(Xi) ai,j := ai,j + Vi,j Division aller ai,j durch Anzahl der Vektoren X<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
112<br />
113<br />
114<br />
38
4 Symmetrische Verfahren – Kryptographische Güte<br />
Beispiel (S Bsp)<br />
X = 000<br />
X = 001 …<br />
x 1<br />
x 2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
y 1 y 2 y 3<br />
0 04 0,5 0 1 14<br />
0,5 0 1 14<br />
0,5<br />
0 1 14 0,5 , 0 04<br />
0,5 , 0 1 14<br />
0,5 ,<br />
x3 0 01 40,5 0 01<br />
40,5<br />
0 04<br />
0,5<br />
X1 = 001<br />
X2 = 010<br />
V1 = 111 001 = 110<br />
V2 = 111 010 = 101<br />
X3 = 100 V3 = 111 100 = 011<br />
4 Symmetrische Verfahren – Kryptographische Güte<br />
Designkriterien – Zusammenfassung<br />
• Kriterien sind zwar notwendig, aber nicht hinreichend<br />
• Teilweise gegenläufig<br />
• Optimierung notwendig<br />
• Notwendig:<br />
– Höchstmaß an Vollständigkeit, Avalanche, Nichtlinearität<br />
<strong>und</strong> Korrelationsimmunität<br />
Korrelationsimmunität,<br />
– Geringhaltung der Existenz linearer Faktoren der<br />
Verschlüsselungsfunktion<br />
• Gewünscht:<br />
– Gute Implementierbarkeit, Schnelligkeit, Längentreue,<br />
Minimierung der Fehlerfortpflanzungsmöglichkeiten<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – DES<br />
DES (Data Encryption Standard)<br />
• 1973 Ausschreibung des National Bureau of Standards (NBS) der<br />
USA für ein standardisiertes kryptographisches Verfahren<br />
• 1974 erneute Ausschreibung<br />
• 1975 Veröffentlichung der Einzelheiten des Algorithmus im Federal<br />
Register<br />
• 1976 zwei Workshops zur Evaluierung des Algorithmus<br />
• 1977 vom NBS als Standard publiziert (FIPS PUB 46)<br />
• Überprüfung der Sicherheit aller 5 Jahre<br />
• 1992 differenzielle <strong>Kryptoanalyse</strong> (Biham, Shamir)<br />
• 1994 lineare <strong>Kryptoanalyse</strong> (Matsui)<br />
• 1999 Brute-Force-Angriff (Deep Crack <strong>und</strong> weitere Rechner): 22<br />
St<strong>und</strong>en, 15 Minuten<br />
• 1999 FIPS 46-3: Empfehlung 3-DES<br />
• 2001 Veröffentlichung des AES (FIPS 197)<br />
• 2002 AES tritt in Kraft<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
115<br />
116<br />
117<br />
39
4 Symmetrische Verfahren – DES<br />
Überblick über den Algorithmus<br />
• gr<strong>und</strong>legende Struktur: Feistel-Chiffre mit n = 16 R<strong>und</strong>en<br />
• Einteilung der Nachricht in l Blöcke der Länge 64:<br />
m = m1m2 … ml, mi {0, 1} 64<br />
c = c1c2 … cl, ci {0, 1} 64<br />
• Schlüssel der Länge 64 Bits:<br />
k {0,1} 64 , davon jedoch nur 56 Elemente frei wählbar<br />
Teilschlüssel ki, i = 1, …, 16 aus k erzeugt (Länge ki : 48 Bit)<br />
• Permutation vor der ersten <strong>und</strong> nach der letzten R<strong>und</strong>e (IP<br />
bzw. IP -1 ) (kryptographisch nicht relevant)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – DES<br />
Struktur des DES<br />
m i<br />
64<br />
L 0<br />
L 1<br />
IP<br />
R 0<br />
Iterationsr<strong>und</strong>e 1<br />
L 2<br />
L 15<br />
L 16<br />
IP<br />
ci <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
-1<br />
64<br />
R 1<br />
Iterationsr<strong>und</strong>e 2<br />
.<br />
R 2<br />
R 15<br />
Iterationsr<strong>und</strong>e 16<br />
R 16<br />
4 Symmetrische Verfahren – DES<br />
Eingangspermutation IP<br />
Folge der Klartextbits:<br />
58 50 42 34 26 18 10 2<br />
60 52 44 36 28 20 12 4<br />
62 54 46 38 30 22 14 6<br />
64 56 48 40 32 24 16<br />
linke Hälfte<br />
8<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
48<br />
48<br />
48<br />
k 1<br />
k k2 .<br />
k 16<br />
64<br />
Teilschlüsselgenerierung<br />
1 2 3 4 5 6 7 8<br />
9 10 11 12 13 14 15 16<br />
17 18 19 20 21 22 23 24<br />
25 26 27 28 29 30 31 32<br />
33 34 35 36 37 38 39 40<br />
41 42 43 44 45 46 47 48<br />
49 50 51 52 53 54 55 56<br />
57 58 59 60 61 62 63 64<br />
57<br />
59<br />
61<br />
63<br />
49<br />
51<br />
53<br />
55<br />
41<br />
43<br />
45<br />
47<br />
33<br />
35<br />
37<br />
39<br />
25<br />
27<br />
29<br />
31<br />
k<br />
(56 Bit wählbar)<br />
17<br />
19<br />
21<br />
23<br />
rechte Hälfte<br />
9<br />
11<br />
13<br />
15<br />
1<br />
3<br />
5<br />
7<br />
118<br />
119<br />
120<br />
40
4 Symmetrische Verfahren – DES<br />
Iterationsr<strong>und</strong>e i: R<strong>und</strong>enfunktion f<br />
f<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
E<br />
P<br />
R i-1<br />
32<br />
48<br />
32<br />
48<br />
6 6 6<br />
S1 S2 …<br />
S8<br />
4 4<br />
4<br />
4 Symmetrische Verfahren – DES<br />
Expansionsabbildung E<br />
1 2 3 4<br />
32 1 2 3 4 5<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
32 1 2 3 4 5<br />
4 5 6 7 8 9<br />
8 9 10 11 12 13<br />
12 13 14 15 16 17<br />
16 17 18 19 20 21<br />
20 21 22 23 24 25<br />
24 25 26 27 28 29<br />
28 29 30 31 32 1<br />
5 6 7 8<br />
4 5 6 7 8 9<br />
4 Symmetrische Verfahren – DES<br />
Substitutionsboxen Si<br />
b 5b 4b 3b 2b 1b 0<br />
6-Bit Wert<br />
vor der<br />
Substitution<br />
S1:<br />
S2:<br />
.<br />
0<br />
1<br />
2<br />
3<br />
0<br />
1<br />
2<br />
3<br />
0<br />
14<br />
0<br />
4<br />
15<br />
15<br />
3<br />
0<br />
13<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1<br />
4<br />
15<br />
1<br />
12<br />
1<br />
13<br />
14<br />
8<br />
2<br />
13<br />
7<br />
14<br />
8<br />
8<br />
4<br />
7<br />
10<br />
3<br />
1<br />
4<br />
8<br />
2<br />
14<br />
7<br />
11<br />
1<br />
4<br />
2<br />
14<br />
13<br />
4<br />
6<br />
15<br />
10<br />
3<br />
k i<br />
f(R i-1,k i) = P(S(E(R i-1) k i))<br />
5<br />
15<br />
2<br />
6<br />
9<br />
11<br />
2<br />
4<br />
15<br />
6<br />
11<br />
13<br />
2<br />
1<br />
3<br />
8<br />
13<br />
4<br />
…<br />
7<br />
8<br />
1<br />
11<br />
7<br />
4<br />
14<br />
1<br />
2<br />
8<br />
3<br />
10<br />
15<br />
5<br />
9<br />
12<br />
5<br />
11<br />
S8: 10<br />
0<br />
1<br />
2<br />
3<br />
13<br />
1<br />
7<br />
2<br />
2<br />
15<br />
11<br />
1<br />
8<br />
13<br />
4<br />
14<br />
4<br />
8<br />
1<br />
7<br />
6<br />
10<br />
9<br />
4<br />
15<br />
3<br />
12<br />
10<br />
11<br />
7<br />
14<br />
8<br />
1<br />
4<br />
2<br />
13<br />
. .<br />
12<br />
0<br />
15<br />
9<br />
10<br />
6<br />
12<br />
11<br />
7<br />
0<br />
8<br />
6<br />
9<br />
5<br />
6<br />
12<br />
29 30 31 32<br />
28 29 30 31 32 1<br />
10<br />
6<br />
12<br />
9<br />
3<br />
2<br />
1<br />
12<br />
7<br />
3<br />
6<br />
10<br />
9<br />
11<br />
12<br />
11<br />
7<br />
14<br />
13<br />
10<br />
6<br />
12<br />
14<br />
11<br />
13<br />
0<br />
12<br />
5<br />
9<br />
3<br />
10<br />
12<br />
6<br />
9<br />
0<br />
5<br />
0<br />
15<br />
3<br />
13<br />
9<br />
5<br />
10<br />
0<br />
0<br />
9<br />
3<br />
5<br />
0<br />
14<br />
3<br />
5<br />
14<br />
0<br />
3<br />
5<br />
6<br />
5<br />
11<br />
2<br />
14<br />
12<br />
9<br />
5<br />
6<br />
121<br />
122<br />
15<br />
7<br />
8<br />
0<br />
13<br />
10<br />
5<br />
15<br />
9<br />
7<br />
2<br />
8<br />
11<br />
123<br />
41
4 Symmetrische Verfahren – DES<br />
Permutation P<br />
16<br />
1<br />
2<br />
19<br />
7<br />
15<br />
8<br />
13<br />
20<br />
23<br />
24<br />
30<br />
21<br />
26<br />
14<br />
6<br />
29<br />
5<br />
32<br />
22<br />
12<br />
18<br />
27<br />
11<br />
28<br />
31<br />
3<br />
4<br />
17<br />
10<br />
9<br />
25<br />
S S1 S S2 S S3 S S4 S S5 S S6 S S7 S S8 S1 S2 S3 S4 S5 S6 S7 S8 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
124<br />
4 Symmetrische Verfahren – DES<br />
Teilschlüsselgenerierung<br />
k i<br />
48<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
PC-2<br />
4 Symmetrische Verfahren – DES<br />
C<br />
k<br />
64<br />
PC-1<br />
56<br />
28 28<br />
Schlüsselpermutation PC-1 (Permuted Choice)<br />
57<br />
58<br />
59<br />
60<br />
externer Schlüssel k: 1 2 3 4 5 6 7 8 Paritätsbits<br />
9 10 11 12 13 14 15 16<br />
17 18 19 20 21 22 23 24<br />
25 26 27 28 29 30 31 32<br />
33 34 35 36 37 38 39 40<br />
41 42 43 44 45 46 47 48<br />
49 50 51 52 53 54 55 56<br />
57 58 59 60 61 62 63 64<br />
49<br />
50<br />
51<br />
52<br />
41<br />
42<br />
43<br />
44<br />
33<br />
34<br />
35<br />
36<br />
25<br />
26<br />
27<br />
C<br />
17<br />
18<br />
19<br />
9<br />
10<br />
11<br />
1<br />
2<br />
3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
63<br />
62<br />
61<br />
55<br />
54<br />
53<br />
47<br />
46<br />
45<br />
39<br />
38<br />
37<br />
D<br />
D<br />
31<br />
30<br />
29<br />
28<br />
23<br />
22<br />
21<br />
20<br />
15<br />
14<br />
13<br />
12<br />
7<br />
6<br />
5<br />
4<br />
125<br />
126<br />
42
4 Symmetrische Verfahren – DES<br />
Anzahl der Shifts<br />
Verschlüsselung: Links-Shifts<br />
Entschlüsselung: Rechts-Shifts<br />
R<strong>und</strong>e<br />
Anzahl Links-Shifts:<br />
Anzahl Rechts-Shifts:<br />
1<br />
1<br />
0<br />
2<br />
1<br />
1<br />
3<br />
2<br />
2<br />
Schlüsselauswahl: PC-2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
14<br />
15<br />
26<br />
41<br />
51<br />
34<br />
4<br />
2<br />
2<br />
17<br />
6<br />
8<br />
52<br />
45<br />
53<br />
5<br />
2<br />
2<br />
11<br />
21<br />
16<br />
31<br />
33<br />
46<br />
6<br />
2<br />
2<br />
24<br />
10<br />
7<br />
37<br />
48<br />
42<br />
7<br />
2<br />
2<br />
1<br />
23<br />
27<br />
47<br />
44<br />
50<br />
4 Symmetrische Verfahren – DES<br />
Bewertung der Schlüssel<br />
Bis auf wenige Ausnahmen liefert das Verfahren für jede<br />
R<strong>und</strong>e einen anderen Teilschlüssel.<br />
4 schwache Schlüssel, die jeweils 16 identische Teilschlüssel<br />
erzeugen:<br />
01<br />
FE<br />
1F<br />
E0<br />
externer Schlüssel k<br />
01<br />
FE<br />
1F<br />
E0<br />
01<br />
FE<br />
1F<br />
E0<br />
01<br />
FE<br />
1F<br />
E0<br />
01<br />
FE<br />
0E<br />
F1<br />
01<br />
FE<br />
0E<br />
F1<br />
01<br />
FE<br />
0E<br />
F1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
01<br />
FE<br />
0E<br />
F1<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
0<br />
F<br />
4 Symmetrische Verfahren – DES<br />
12 semi-schwache Schlüssel, die jeweils nur 2 verschiedene<br />
Teilschlüssel erzeugen:<br />
01<br />
FE<br />
1F<br />
E0<br />
01<br />
E0<br />
1F<br />
FE<br />
01<br />
1F<br />
E0<br />
FE<br />
externer Schlüssel k<br />
FE<br />
01<br />
E0<br />
1F<br />
E0<br />
01<br />
FE<br />
1F<br />
1F<br />
01<br />
FE<br />
E0<br />
01<br />
FE<br />
1F<br />
E0<br />
01<br />
E0<br />
1F<br />
FE<br />
01<br />
1F<br />
E0<br />
FE<br />
FE<br />
01<br />
E0<br />
1F<br />
E0<br />
01<br />
FE<br />
1F<br />
1F<br />
01<br />
FE<br />
E0<br />
01<br />
FE<br />
0E<br />
F1<br />
01<br />
F1<br />
0E<br />
FE<br />
01<br />
0E<br />
F1<br />
FE<br />
FE<br />
01<br />
F1<br />
0E<br />
F1<br />
01<br />
FE<br />
0E<br />
0E<br />
01<br />
FE<br />
F1<br />
01<br />
FE<br />
0E<br />
F1<br />
01<br />
F1<br />
0E<br />
FE<br />
01<br />
0E<br />
F1<br />
FE<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
FE<br />
01<br />
F1<br />
0E<br />
F1<br />
01<br />
FE<br />
0E<br />
0E<br />
01<br />
FE<br />
F1<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
C<br />
C<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
8<br />
2<br />
2<br />
5<br />
19<br />
20<br />
55<br />
49<br />
36<br />
0<br />
F<br />
0<br />
F<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
9<br />
1<br />
1<br />
3<br />
12<br />
13<br />
30<br />
39<br />
29<br />
0<br />
F<br />
0<br />
F<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
10<br />
2<br />
2<br />
28<br />
4<br />
2<br />
40<br />
56<br />
32<br />
0<br />
F<br />
0<br />
F<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
A<br />
5<br />
0<br />
0<br />
F<br />
F<br />
11<br />
2<br />
2<br />
0<br />
F<br />
F<br />
0<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
12<br />
2<br />
2<br />
0<br />
F<br />
F<br />
0<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
13<br />
2<br />
2<br />
0<br />
F<br />
F<br />
0<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
14<br />
2<br />
2<br />
D<br />
0<br />
F<br />
F<br />
0<br />
D<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
15<br />
2<br />
2<br />
0<br />
F<br />
F<br />
0<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
16<br />
1<br />
1<br />
0<br />
F<br />
F<br />
0<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
127<br />
0<br />
F<br />
F<br />
0<br />
128<br />
A<br />
5<br />
5<br />
A<br />
0<br />
0<br />
F<br />
F<br />
A<br />
5<br />
A<br />
5<br />
129<br />
43
4 Symmetrische Verfahren – DES<br />
Eigenschaften des DES<br />
• Vollständig: jedes Output-Bit hängt von jedem Input-Bit ab<br />
(nach ca. 5 Durchläufen), Avalanche, Nichtlinearität<br />
• Problem schwacher <strong>und</strong> semischwacher Schlüssel<br />
(explizit ausschließen)<br />
• Komplement-Eigenschaft:<br />
Komplement Eigenschaft:<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
enc(k, m) = enc(k, m)<br />
ermöglicht Einschränkung des Schlüsselraums:<br />
Angriff bei Kenntnis von zwei Klartext-Schlüsseltextpaaren<br />
(m 1, c 1) <strong>und</strong> (m 2, c 2) mit m 2 = m 1<br />
4 Symmetrische Verfahren – DES<br />
3-DES<br />
• Schlüssellänge heute zu kurz<br />
• Erhöhung der Sicherheit durch mehrmalige Verschlüsselung<br />
(Kaskadenverschlüsselung)<br />
Meet-in-the-Middle-Angriff:<br />
Sicherheitsgewinn bei Doppelverschlüsselung: 1 Bit<br />
• 3-DES (Triple-DES):<br />
Verbesserung der Sicherheit durch 3-fache Anwendung<br />
• Verschiedene Varianten, häufig EDE<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c = enc(k 1, (dec(k 2, (enc(k 1, m)))<br />
4 Symmetrische Verfahren – <strong>Kryptoanalyse</strong> des DES<br />
<strong>Kryptoanalyse</strong> des DES<br />
• Allgemeine Angriffe auf Blockchiffren:<br />
– Vollständige Schlüsselsuche<br />
– Zugriff auf eine vorab berechnete Tabelle<br />
– Time-Memory-Tradeoff<br />
– Kodebuchanalyse<br />
• Angriffe auf DES, auch relevant für andere Blockchiffren:<br />
– Differentielle <strong>Kryptoanalyse</strong><br />
– Lineare <strong>Kryptoanalyse</strong><br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
130<br />
131<br />
132<br />
44
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Differentielle <strong>Kryptoanalyse</strong><br />
• E. Biham and A. Shamir: Differential Cryptanalysis of DESlike<br />
Cryptosystems. Advances in Cryptology – CRYPTO '90.<br />
Springer-Verlag. 2-21.<br />
• Gewählter Klartext-Schlüsseltext Angriff<br />
• Aufwand für DES lt. Standard, 16 R<strong>und</strong>en:<br />
ca 247 Klartextpaare bei ca 237 ca. 2 Verschlüsselungsschritten<br />
47 Klartextpaare bei ca. 237 Verschlüsselungsschritten<br />
• Anwendbar für iterierte Blockchiffren<br />
• Prinzip:<br />
– Verwendung von beliebigen Klartextpaaren mit bestimmten<br />
Differenzen<br />
– Analyse der Auswirkungen der Klartext-Differenzen auf die<br />
Differenzen der resultierenden Schlüsseltextpaare<br />
– Ermittlung wahrscheinlicher Schlüssel<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Notation (1)<br />
• Eingangs- <strong>und</strong> Ausgangspermutation<br />
haben keinen<br />
Einfluss - weggelassen<br />
• Lm, Rm: linke bzw. rechte<br />
Hälfte des Klartextes<br />
• Lc, c, Rc: c linke bzw. rechte<br />
Hälfte des Schlüsseltextes<br />
• xi / yi: Input / Output der<br />
R<strong>und</strong>enfunktion in R<strong>und</strong>e i<br />
• x, x*: zusammengehörige<br />
Zwischenwerte<br />
• x‘ = x x*: Differenz<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
Klartext m = (L m, R m)<br />
y 1<br />
y 2<br />
f<br />
f<br />
. . .<br />
f<br />
x 1<br />
x 2<br />
Schlüsseltext c = (L c, R c)<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Notation (2)<br />
f<br />
xi 32<br />
E<br />
48<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
S1Ei S2Ei S3Ei … S8Ei S1Ki S2Ki S3Ki … S8Ki y 16<br />
S1 Ii S2 Ii S8 Ii<br />
6 6 6<br />
S1 S2 …<br />
S8<br />
4 4<br />
4<br />
S1 Oi S2 Oi S8 Oi<br />
P<br />
32<br />
y i<br />
k i<br />
48<br />
x 16<br />
133<br />
k 1<br />
k 2<br />
k 16<br />
134<br />
135<br />
45
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Einfluss der Operationen auf die XOR-Differenzen<br />
• Expansionsabbildung E:<br />
E(x) E(x*) = E(x x*)<br />
• Bitweise Addition mit R<strong>und</strong>enschlüssel k:<br />
(x k) (x* k) = x x*<br />
• Permutation P:<br />
P( P(x) ) P( P(x*) *) = P(x P( x*) *)<br />
• Verknüpfung von Zwischenwerten (Input <strong>und</strong> Output<br />
aufeinander folgender R<strong>und</strong>enfunktionen):<br />
(x y) (x* y*) = (x x*) (y y*)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
• Substitutionsboxen Si<br />
– Nichtlinear komplexe Beziehungen zwischen Eingabe<strong>und</strong><br />
Ausgabedifferenzen<br />
Differenz:<br />
Eingabe: SiI SiI* SiI‘ = SiI SiI* Ausgabe:<br />
6<br />
Si<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4<br />
6<br />
Si<br />
Si O Si O* Si O‘ = Si O Si O*<br />
–2 6 ·2 4 mögliche Tupel von Eingabe- <strong>und</strong><br />
Ausgabedifferenzen<br />
– nicht alle möglichen Ausgabedifferenzen Si O‘ existieren<br />
–existierende Si O‘ sind nicht gleichwahrscheinlich<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Beschreibung der Differenzen - Differenzentabelle<br />
Differenzentabelle für S1, Eingabediff. S1I‘ = 1101002 = 34x S1I S1I* =<br />
S1I S1I‘ 0000 0001<br />
S1O‘ = S1O S1O* 0010 0011 … 1101 1110 1111<br />
000000 110100<br />
000001 110101<br />
1<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
111110 001010 1<br />
111111 001011 1<br />
Differenzenverteilung: 0 8 16 6 … 8 0 6<br />
S1:<br />
0<br />
1<br />
2<br />
3<br />
0<br />
14<br />
0<br />
4<br />
15<br />
1<br />
4<br />
15<br />
1<br />
12<br />
2<br />
13<br />
7<br />
14<br />
8<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3<br />
1<br />
4<br />
8<br />
2<br />
4<br />
2<br />
14<br />
13<br />
4<br />
5<br />
15<br />
2<br />
6<br />
9<br />
6<br />
11<br />
13<br />
2<br />
1<br />
4<br />
7<br />
8<br />
1<br />
11<br />
7<br />
8<br />
3<br />
10<br />
15<br />
5<br />
9<br />
10<br />
6<br />
12<br />
11<br />
10<br />
6<br />
12<br />
9<br />
3<br />
11<br />
12<br />
11<br />
7<br />
14<br />
12<br />
5<br />
9<br />
3<br />
10<br />
13<br />
9<br />
5<br />
10<br />
0<br />
14<br />
0<br />
3<br />
5<br />
6<br />
15<br />
7<br />
8<br />
0<br />
13<br />
136<br />
137<br />
138<br />
46
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Differenzenverteilungstabelle von S1<br />
Eingabediff.<br />
S1 I ’<br />
0<br />
1<br />
2<br />
3<br />
.<br />
33<br />
34<br />
35<br />
.<br />
3D<br />
3E<br />
3F<br />
0<br />
64<br />
0<br />
0<br />
14<br />
4<br />
0<br />
2<br />
1<br />
0<br />
0<br />
0<br />
4<br />
4<br />
8<br />
2<br />
2<br />
0<br />
0<br />
0<br />
2<br />
6<br />
16<br />
4<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3<br />
0<br />
6<br />
8<br />
2<br />
2<br />
6<br />
0<br />
4<br />
0<br />
0<br />
0<br />
10<br />
10<br />
2<br />
8<br />
Ausgabedifferenzen S1 O ’<br />
5<br />
0<br />
2<br />
4<br />
6<br />
8<br />
0<br />
0<br />
6<br />
0<br />
4<br />
4<br />
4<br />
4<br />
0<br />
0<br />
7<br />
0<br />
4<br />
4<br />
2<br />
.<br />
2<br />
12<br />
0<br />
.<br />
8<br />
0<br />
0<br />
0<br />
6<br />
4<br />
6<br />
14<br />
9<br />
0<br />
10<br />
6<br />
4<br />
A<br />
0<br />
12<br />
8<br />
4<br />
B<br />
0<br />
4<br />
6<br />
0<br />
C<br />
0<br />
10<br />
12<br />
2<br />
0 8 6 2 2 6 0 88<br />
4 4 0 44<br />
00<br />
12 4 4<br />
0 8 2 2 2 4 4 14 4 2 0 22<br />
00<br />
8 4 4<br />
4 8 4 2 4 0 2 44<br />
4 2 4 88<br />
88<br />
6 2 2<br />
S1 I ‘ S1O ‘ , z.B.: 34x 1 x, 34 x 2 x,34 x 5 x<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Analyse der R<strong>und</strong>enfunktion (1)<br />
f<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
E<br />
0<br />
0<br />
4<br />
2<br />
0<br />
6<br />
2<br />
0<br />
8<br />
4<br />
0<br />
0<br />
D<br />
0<br />
6<br />
6<br />
2<br />
6<br />
8<br />
2<br />
S1E S2E S3E … S8E S1K S2K S3K … S8K E<br />
0<br />
2<br />
4<br />
2<br />
0<br />
4<br />
14<br />
gewählt: x, x* x‘ gesucht: k<br />
S1 S1E ‘ , S2 S2E ‘ , …, S8 E‘<br />
S1 I‘ S2 I‘ S8 I‘<br />
S1 S2<br />
S8<br />
S1O, S1 *<br />
O S2O , S2 *<br />
O<br />
S1 O‘<br />
S2 O‘<br />
P<br />
S8 O , S8 O *<br />
S8 O‘<br />
beobachtet: y, y* y‘<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
…<br />
Analyse der R<strong>und</strong>enfunktion (2)<br />
• Gewählt: Inputpaar x, x* ( x’)<br />
• Beobachtet: y, y* Outputdifferenz y’<br />
1. Schritt:<br />
Bestimmung von Kandidaten für die Belegung der Input-<br />
Vektoren der S-Box<br />
2. Schritt:<br />
Ermittlung möglicher Schlüsselbits mit Hilfe der ermittelten<br />
Input-Vektoren<br />
• Wiederholen dieser Schritte zur weiteren Einschränkung des<br />
Schlüsselraums<br />
• Vollständige Suche über eingeschränkten Schlüsselraum<br />
Beispiel: S1E = 01x, S1E* = 35x; S1O‘ = 0Dx <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
F<br />
0<br />
4<br />
2<br />
0<br />
4<br />
6<br />
0<br />
139<br />
140<br />
141<br />
47
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Mögliche Inputpaare für S1 I‘ = 34 x<br />
Outputdifferenzen<br />
S1 O‘<br />
Eingabepaare für S1 I‘ = 34 x<br />
1 03, 37; 0F, 3B; 1E, 2A; 1F, 2B<br />
2 04, 30; 05, 31; 0E, 3A; 11, 25; 12, 26; 14, 20;<br />
1A, 2E; 1B, 2F<br />
3 01, 35; 02, 36; 15, 21<br />
4 13, 27<br />
7 00, 34; 08, 3C; 0D, 39; 17, 23; 18, 2C; 1D, 29<br />
8 09, 3D; 0C, 38; 19, 2D<br />
D 06, 32; 10, 24; 16, 22; 1C, 28<br />
F 07, 33; 0A, 3E; 0B, 3F<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Mögliche Schlüsselbits S1 K<br />
1. Paar:<br />
S1E = 01x, S1 *<br />
E = 35x<br />
S1I‘ = 34x S1O‘ = 0D<br />
S1 O = 0D x<br />
2. Paar:<br />
S1 E = 21 x,<br />
S1 E * = 15x<br />
S1 I‘ = 34 x<br />
S1 O‘ = 03 x<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
142<br />
S1I, S1 *<br />
I Mögliche Schlüsselbits<br />
06, 32 07, 33<br />
10, 24 11, 25<br />
16, 22 17, 23<br />
1C, 28 1D, 29<br />
S1I, S1 *<br />
I Mögliche Schlüsselbits<br />
01, 35 20, 14<br />
02, 36 23, 17<br />
15, 21 34, 00<br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Analyse des DES mit 3 R<strong>und</strong>en<br />
Outputdifferenz der<br />
3. R<strong>und</strong>e bestimmen:<br />
L C = y 3 x 2<br />
L C = y 3 L m y 1<br />
y 3 = L c L m y 1<br />
y 3 * = Lc * Lm * y1 *<br />
y 3‘ = L c‘ L m‘ y 1‘<br />
R m‘ = 0 y 1‘ = 0<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
y 1<br />
y 2<br />
y 3<br />
m = (L m, R m)<br />
f<br />
f<br />
f<br />
c = (L c , R c)<br />
x1 = R m<br />
x 2<br />
x 3 = R c<br />
143<br />
k 1<br />
k 2<br />
k 3<br />
144<br />
48
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Analyse des DES<br />
• Bei mehr als 5 R<strong>und</strong>en kann die Ausgabedifferenz der letzten<br />
R<strong>und</strong>e nicht mehr berechnet werden<br />
• Betrachtung der einzelnen S-Boxen:<br />
Inputdifferenz SiI’ liefert Outputdifferenz SiO’ mit<br />
P(Si, SiI’ SiO’ ) (Differenzenverteilungstabelle)<br />
• Analyse der Input- Input <strong>und</strong> Output-Differenzen Output Differenzen der<br />
R<strong>und</strong>enfunktion m. H. der Input- <strong>und</strong> Output-Differenzen der<br />
S-Boxen:<br />
P(<br />
f , x'<br />
y')<br />
<br />
• Verfolgen von Differenzen <strong>und</strong> Wahrscheinlichkeiten über<br />
mehrere R<strong>und</strong>en: Charakteristik<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
8<br />
<br />
i1<br />
n-R<strong>und</strong>en-Charakteristik (1)<br />
= (m, , c) = (1, 2, …, n) mit: i = (Ii, Oi) m= m’ = (L m ,Rm )<br />
c = c’ = (L c ,R c )<br />
Ii = xi’, ’ Oi = yi’ ’<br />
P(<br />
Si,<br />
Si '<br />
Si ')<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Es gilt: I1 = R m<br />
I2 = L m O1<br />
In = R c<br />
On= L c In-1<br />
2 i n-1: Oi = Ii-1 Ii+1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
I<br />
y1<br />
y2<br />
O<br />
Klartext m<br />
f<br />
f<br />
Schlüsseltext c<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
n-R<strong>und</strong>en-Charakteristik (2)<br />
• Wahrscheinlichkeit p i der R<strong>und</strong>e i einer Charakteristik<br />
p i = P(Ii Oi)<br />
• Wahrscheinlichkeit p einer n-R<strong>und</strong>en-Charakteristik<br />
p<br />
n<br />
<br />
<br />
i1<br />
p<br />
<br />
i<br />
• Richtiges Paar bzgl. einer n-R<strong>und</strong>en-Charakteristik <strong>und</strong> eines<br />
unabhängigen Schlüssels k:<br />
– m’ = m<br />
– für die ersten n R<strong>und</strong>en der Berechnung gilt:<br />
x i’ = Ii ⁄ y i’ = Oi<br />
• Übrige Paare: falsche Paare<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
y15<br />
y16<br />
. . .<br />
f<br />
f<br />
x 1<br />
x 2<br />
x 15<br />
x 16<br />
145<br />
k 1<br />
k 2<br />
k 15<br />
k 16<br />
146<br />
147<br />
49
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
1-R<strong>und</strong>en-Charakteristik mit p = 1<br />
einziger möglicher Fall: Ii = (00 00 00 00)<br />
p p 1 = 1<br />
m = (L m, 00 00 00 00)<br />
y y1‘ 1 = (00 ( 00 00 00) )<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
f<br />
c = ( L m , 00 00 00 00)<br />
x 1‘ = (00 00 00 00)<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
1-R<strong>und</strong>en-Charakteristik mitIi ∫ 0<br />
• Ziel: p möglichst groß<br />
– SiI’ 0 für nur eine S-Box: nur die mittleren Bits dürfen mit 1<br />
belegt sein<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
1 2 3 4<br />
S1 S1E: E: 32 1 2 3 4 5<br />
Si I’ = 000100 001000 001100 = 04 x 08 x 0C x<br />
– Wahrscheinlichkeit für Si I’ Si O’ maximal (S1: bei 0C x E x)<br />
• 1-R<strong>und</strong>en-Charakteristik mit p 14<br />
= für<br />
64<br />
14<br />
S1: 0Cx Ex mit Wahrscheinlichkeit<br />
64<br />
S2, …, S8: 00x 0x mit Wahrscheinlichkeit 1<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
1-R<strong>und</strong>en-Charakteristik mit p = 14<br />
64<br />
m = (L m, 60 00 00 00)<br />
14 y1‘ = (00 80 82 00)<br />
p 14 y1 ( )<br />
p f<br />
64<br />
= P(E0 00 00 00)<br />
= f<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
x 1‘ = (60 00 00 00)<br />
c = (L m 00 80 82 00, 60 00 00 00)<br />
P(E0 00 00 00): 16<br />
1<br />
2<br />
19<br />
7<br />
15<br />
8<br />
13<br />
20<br />
23<br />
24<br />
30<br />
21<br />
26<br />
14<br />
6<br />
29<br />
5<br />
32<br />
22<br />
12<br />
18<br />
27<br />
11<br />
28<br />
31<br />
3<br />
4<br />
17<br />
10<br />
9<br />
25<br />
k 1<br />
k 1<br />
148<br />
149<br />
150<br />
50
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Konkatenation von n-R<strong>und</strong>en Charakteristiken<br />
a = ( m,a, ,a, c,a) sei n-R<strong>und</strong>en-Charakteristik,<br />
b = ( m,b, ,b, c,b) sei m-R<strong>und</strong>en-Charakteristik<br />
m,a = (L m,a, R m,a), c,a = (L c,a, R c,a) etc.<br />
a <strong>und</strong> b können verb<strong>und</strong>en werden, falls<br />
L c,a = R m,b <strong>und</strong> R c,a = L m,b<br />
= a b = ( m,a, , c,b)<br />
mit = ( a1, a2, …, an, b1, b2, …, bm)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
3-R<strong>und</strong>en-Charakteristik mit p 2<br />
14<br />
= 0,05<br />
64<br />
m = (00 80 82 00 60 00 00 00)<br />
14 y1‘ = (00 80 82 00)<br />
p<br />
64<br />
= f<br />
1<br />
y2‘ = (00 00 00 00)<br />
p = 1 f<br />
2<br />
14 y3‘ = (00 80 82 00)<br />
p<br />
64<br />
= f<br />
3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
x 1‘ = (60 00 00 00)<br />
x 2‘ = (00 00 00 00)<br />
x 3‘ = (60 00 00 00)<br />
c = (00 80 82 00 60 00 00 00)<br />
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
Iterative Charakteristik = ( m, , c)<br />
• L m = R c ⁄ R m = L c<br />
• basiert auf Si I’ Si O’ mit Si I’ 0 ⁄ Si O’ = 0<br />
• kann zur Konstruktion von n-R<strong>und</strong>en-Charakteristiken<br />
verwendet werden mit begrenzter Verringerung von p <br />
m = (L m,00 00 00 00)<br />
y1‘ = (00 00 00 00)<br />
p = 1<br />
1<br />
f<br />
p 2<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
y 2‘ = (00 00 00 00)<br />
f<br />
c = (00 00 00 00, L m)<br />
x 1‘ = (00 00 00 00)<br />
x 2‘ = (L m)<br />
k 1<br />
k 2<br />
k 1<br />
k 2<br />
k 3<br />
151<br />
152<br />
153<br />
51
4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />
• Falsche Paare liefern nicht notwendigerweise den richtigen<br />
Teilschlüssel<br />
Betrachten der Schnittmenge i. Allg. nicht möglich<br />
• Richtiger Teilschlüssel jedoch häufiger vertreten (mit<br />
Wahrscheinlichkeit p von den richtigen Paaren geliefert,<br />
dazu kommt zufälliges Auftreten in falschen Paaren)<br />
• DES: Erschweren der differentiellen <strong>Kryptoanalyse</strong> durch<br />
entsprechende Designkriterien für die Substitutionen <strong>und</strong><br />
Permutationen<br />
Don Coppersmith: The Data Encryption Standard and its strength<br />
against attacks. IBM Journal of Research and Development 38/3,<br />
1994, 243-250.<br />
• Wichtiges Designkriterium:<br />
möglichst hohe Anzahl aktiver S-Boxen pro R<strong>und</strong>e<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Lineare <strong>Kryptoanalyse</strong><br />
• Matsui, M.: Linear Cryptanalysis Method for DES Cipher.<br />
Advances in Cryptology – EUROCRYPT '93, LNCS 765,<br />
Springer-Verlag, 386-397.<br />
• Klartext-Schlüsseltext Angriff<br />
• Anwendbar für iterierte Blockchiffren<br />
A f d 243 • Aufwand: ca. 2 Kl t tblö k f d li h<br />
43 Klartextblöcke erforderlich<br />
• Prinzip:<br />
– Ziel: Approximation der Chiffrierfunktion durch eine lineare<br />
Abbildung<br />
– Suche nach Approximationsgleichungen mit möglichst hoher<br />
Güte<br />
– Untersuchung genügend vieler Klartext-Schlüsseltext-Paare<br />
liefert Schlüsselbits<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Gr<strong>und</strong>lagen<br />
• Körper:<br />
Menge F2 = {0, 1}, Addition , Multiplikation ·<br />
• Vektorraum:<br />
n<br />
Menge F2 {( b1,<br />
b2,...,<br />
bn<br />
) | bi<br />
F2}<br />
Addition:<br />
(b1, b2, …, bn) (c1, c2, …, cn) = (b1 c1, b2 c2, …, bn cn) Skalare Multiplikation:<br />
a · (b1, b2, …, bn) = (a · b1, a · b2, …, a · bn) • U, V Vektorräume über K; L: U V Abbildung<br />
• L linear, wenn für alle u, u 1, u 2 U <strong>und</strong> k K gilt:<br />
– L(u 1 + u 2) = L(u 1) + L(u 2)<br />
– L(k· u) = k· L(u)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
154<br />
155<br />
156<br />
52
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
• Matrixdarstellung einer linearen Abbildung<br />
L : F F ; e ( e e e e e e ) F<br />
; a ( a a a a ) F<br />
a1<br />
l11<br />
<br />
a2<br />
l21<br />
L(<br />
e)<br />
<br />
a l<br />
<br />
l12<br />
l22<br />
l<br />
l13<br />
l23<br />
l<br />
l14<br />
l24<br />
l<br />
l15<br />
l25<br />
l<br />
e1<br />
<br />
<br />
l16<br />
e2<br />
<br />
<br />
l <br />
26 e3<br />
<br />
<br />
l <br />
<br />
e <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
a3<br />
l31<br />
a4<br />
l41<br />
l32<br />
l42<br />
l33<br />
l43<br />
l34<br />
l44<br />
l35<br />
l45<br />
l36<br />
e4<br />
l46<br />
e5<br />
e6<br />
6 4<br />
6<br />
4<br />
2 2 1 2 3 4 5 6 2 1 2 3 4 2<br />
l11e1<br />
l e<br />
<br />
l21e1<br />
l e<br />
l31e1<br />
l e<br />
<br />
<br />
l41e1<br />
l e<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
12 2<br />
22 2<br />
32 2<br />
42 2<br />
<br />
<br />
<br />
<br />
... l16e6<br />
<br />
<br />
... l26e6<br />
<br />
... l <br />
36e6<br />
<br />
... l <br />
46e6<br />
<br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Vorüberlegungen zur linearen <strong>Kryptoanalyse</strong><br />
• DES: Substitutionen sind die einzigen nicht-linearen<br />
Abbildungen<br />
• Lineare Abhängigkeit einzelner Ausgabebits einer S-Box<br />
SiO[i]? 6<br />
gesucht: Funktionen : F F mit<br />
Si O[i] = (Si I) = l 1Si I[1] l 2Si I[2] … l 6Si I[6]<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2<br />
Paritätsfunktionen (alle Bits: Parität; nur Berechnung über<br />
bestimmte Bits: gewichtete Parität)<br />
• Kennzeichnung der verwendeten Bits mittels<br />
Auswahlvektor w: w T Si I<br />
Indexmenge: Angabe der verwendeten Positionen Si I [p1, p2, …]<br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Untersuchung der Substitutionsboxen<br />
• Paritätsfunktionen bzgl. der Eingabe SiI nicht vorhanden<br />
• Paritätsfunktionen bzgl. Eingabe SiI <strong>und</strong> Ausgabe SiO Auswahlvektoren u = (u1u2u3u4u5u6) <strong>und</strong> v = (v1v2v3v4) mit u T SiI = v T Si(SiI) = v T SiO nicht vorhanden (Ausnahme u = 000000 000000, v = 0000)<br />
• Affine Abbildungen<br />
Auswahlvektoren u, v, bei denen u T SiI <strong>und</strong> v T SiO stets unterschiedlich<br />
Nutzen für Analyse: u T SiI = v T SiO 1<br />
nicht vorhanden<br />
Approximation notwendig<br />
Güte pA der Approximation der Funktion S: Anteil der Argumente,<br />
in denen die Funktionswerte übereinstimmen<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
2<br />
157<br />
158<br />
159<br />
53
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Beste lineare Approximation von S5 O[1]<br />
Substitution Lineare Abbildung (Auswahlvektor u)<br />
S5I S5O 000000 000001 … 110111 … 111110 111111<br />
000000 0010 0 0 … 0 … 0 0<br />
000001 1110 0 1 … 1 … 0 1<br />
000010 1100 0 0 … 1 … 1 1<br />
000011 1011 0 1 … 0 … 1 0<br />
000100 0100 0 0 … 1 … 1 1<br />
. . . . . . . 111101 0101 0 1 … 0 … 0 1<br />
111110 1110 0 0 … 0 … 1 1<br />
111111 0011 0 1 … 1 … 1 0<br />
Häufigkeit: 32 32 … 44 … 34 34<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Approximationsmatrix von S5<br />
Ausw.vektor<br />
u<br />
000000<br />
000001<br />
000010<br />
000011<br />
.<br />
001111<br />
010000<br />
010001<br />
.<br />
111101<br />
111110<br />
111111<br />
0<br />
64<br />
32<br />
32<br />
32<br />
32<br />
32<br />
32<br />
32<br />
32<br />
32<br />
1<br />
32<br />
32<br />
36<br />
32<br />
30<br />
34<br />
34<br />
36<br />
28<br />
28<br />
2<br />
32<br />
32<br />
30<br />
30<br />
30<br />
30<br />
30<br />
34<br />
36<br />
28<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3<br />
32<br />
32<br />
34<br />
38<br />
40<br />
32<br />
32<br />
34<br />
28<br />
28<br />
4<br />
32<br />
32<br />
30<br />
30<br />
38<br />
32<br />
36<br />
36<br />
34<br />
46<br />
5<br />
32<br />
32<br />
34<br />
30<br />
36<br />
30<br />
34<br />
36<br />
34<br />
38<br />
Auswahlvektor v<br />
6<br />
32<br />
32<br />
28<br />
36<br />
32<br />
26<br />
30<br />
30<br />
30<br />
26<br />
7<br />
32<br />
32<br />
32<br />
28<br />
34<br />
34<br />
30<br />
8<br />
32<br />
32<br />
36<br />
32<br />
.<br />
34<br />
24<br />
28<br />
.<br />
34<br />
32<br />
36<br />
30<br />
34<br />
34<br />
9<br />
32<br />
32<br />
32<br />
32<br />
36<br />
30<br />
34<br />
42<br />
30<br />
30<br />
A<br />
32<br />
32<br />
34<br />
30<br />
40<br />
30<br />
34<br />
32<br />
30<br />
38<br />
B<br />
32<br />
32<br />
30<br />
38<br />
30<br />
28<br />
32<br />
32<br />
30<br />
30<br />
C<br />
32<br />
32<br />
34<br />
30<br />
40<br />
32<br />
24<br />
34<br />
36<br />
32<br />
D<br />
32<br />
32<br />
30<br />
30<br />
26<br />
34<br />
26<br />
34<br />
28<br />
32<br />
E<br />
32<br />
32<br />
32<br />
36<br />
34<br />
42<br />
34<br />
36<br />
32<br />
28<br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Bestimmung von Schlüsselbits<br />
m mit pA = 0,81:<br />
S5I k<br />
(010000)<br />
S5<br />
T m (010000) T k<br />
= (1111) T 6<br />
6<br />
c 1<br />
S5<br />
bzw bzw.<br />
S5O m<br />
c<br />
[2] k [2] = c [1,2,3,4] 1<br />
Umstellen nach k [2] :<br />
k [2] = m [2] c [1,2,3,4] 4<br />
1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
F<br />
32<br />
32<br />
28<br />
28<br />
32<br />
12<br />
36<br />
32<br />
36<br />
32<br />
Analyse von genügend Klartext-<br />
Schlüsseltext-Paaren liefert k [2]<br />
160<br />
161<br />
162<br />
54
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Analyse der DES-R<strong>und</strong>enfunktion<br />
• Verwendung der Approximationsfunktion<br />
• Einbeziehung der Expansionsabbildung E<br />
<strong>und</strong> der Schlüsseladdition<br />
• Berücksichtigung der Permutation P<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
16<br />
1<br />
2<br />
19<br />
7<br />
15<br />
8<br />
13<br />
Approximationsgleichung für R<strong>und</strong>enfunktion<br />
32<br />
4<br />
8<br />
12<br />
16<br />
20<br />
1<br />
5<br />
9<br />
13<br />
17<br />
21<br />
2<br />
6<br />
10<br />
14<br />
18<br />
22<br />
3<br />
7<br />
11<br />
15<br />
19<br />
23<br />
4<br />
8<br />
12<br />
16<br />
20<br />
24<br />
5<br />
9<br />
13<br />
17<br />
21<br />
25<br />
24 25 26 27 28 29<br />
28 29 30 31 32 1<br />
20<br />
23<br />
24<br />
30<br />
21<br />
26<br />
14<br />
6<br />
29<br />
5<br />
32<br />
22<br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Allgemeines Vorgehen<br />
Vorbereitung:<br />
Auswahlvektoren u, v, w bestimmen mit:<br />
w T k = u T m v T c oder<br />
w T k = u T m v T c 1<br />
Güte der Approximation pA > 0,5<br />
1. Schritt:<br />
Untersuchung von N Klartext-Schlüsseltext-Paaren<br />
Z: Anzahl von Paaren, für die die rechte Seite der entsprechenden<br />
Gleichung 0 ist<br />
2. Schritt:<br />
Z > N/2: w T k = 0<br />
Z < N/2: w T k = 1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />
Analyse des DES mit 3 R<strong>und</strong>en<br />
k [26] =<br />
1<br />
x<br />
1 1<br />
[17] y [3,8,14,25] 1<br />
k [26] =<br />
3<br />
x<br />
3 3<br />
[17] y [3,8,14,25] 1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
y 1 = L m x 2<br />
y 2<br />
y 3 = L c x 2<br />
m = (L m, R m)<br />
f<br />
f<br />
f<br />
c = (L c , R c)<br />
x1 = R m<br />
x 2<br />
x 3 = R c<br />
12<br />
18<br />
27<br />
11<br />
28<br />
31<br />
3<br />
4<br />
17<br />
10<br />
9<br />
25<br />
163<br />
164<br />
k 1<br />
k 2<br />
k 3<br />
165<br />
55
4 Symmetrische Verfahren – IDEA<br />
IDEA (International Data Encryption Algorithm)<br />
• Wesentliche Anforderungen an den Entwurf: höhere<br />
Sicherheit im Vergleich zu DES (größerer Schlüsselraum)<br />
<strong>und</strong> effiziente Implementierbarkeit in Hard- <strong>und</strong> Software<br />
• Gemeinschaftsprojekt zwischen der ETH Zürich <strong>und</strong> der<br />
Ascom Systec AG<br />
• 1990 Xuejia j Lai, , James L. Massey: y PES (Proposed ( p Encryption yp<br />
Standard)<br />
• 1991 Xuejia Lai, James L. Massey, S. Murphy: IPES<br />
(Improved PES) – gegen differentielle <strong>Kryptoanalyse</strong><br />
optimierte Version IDEA<br />
• Patentiert (in Europa bis 2011), Nutzung für nichtkommerzielle<br />
Zwecke möglich (Einsatz in PGP)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – IDEA<br />
Überblick über den Algorithmus<br />
• Einteilung der Nachricht in Blöcke mi der Länge 64 Bit<br />
• Schlüssellänge 128 Bit<br />
• 8 identische R<strong>und</strong>en <strong>und</strong> zusätzliche Output-Transformation<br />
• Gr<strong>und</strong>lage bilden einfache arithmetische Operationen auf<br />
Operanden der Länge 16 Bit:<br />
– XOR-Verknüpfung<br />
Additi d l 216 +<br />
– Addition modulo 2 +<br />
16<br />
– Multiplikation modulo 216 +1 (wegen erforderlicher<br />
Invertierbarkeit wird 0 durch 216 +<br />
dargestellt) <br />
• Aufteilung der Nachrichtenblöcke in jeweils vier Teilblöcke<br />
mi1 , mi2 , mi3 , mi4 zu je 16 Bit<br />
• 52 Teilschlüssel ki,j zu je 16 Bit:<br />
– Zerlegung des 128-Bit-Schlüssels in 8 16-Bit-Schlüssel<br />
– Linksshift um 25 Bit <strong>und</strong> erneute Aufteilung in 8 16-Bit-<br />
Schlüssel<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – IDEA<br />
m i1 m i2 m i3 m i4<br />
k 1,1 k 1,2 k 1,3 k 1,4<br />
k 1,5<br />
k 9,1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
+ + <br />
+<br />
+<br />
+<br />
+<br />
+ +<br />
+<br />
… …<br />
…<br />
+ k9,2 k9,3 + <br />
c i1 c i2 c i3 c i4<br />
<br />
+<br />
k 1,6<br />
k 9,4<br />
166<br />
167<br />
168<br />
56
4 Symmetrische Verfahren – IDEA<br />
Teilschlüssel<br />
Entschlüsselung: umgekehrte Reihenfolge, inverse<br />
Teilschlüssel (-k: additives Inverses mod 2 16 bzw. k -1 :<br />
multiplikatives Inverses mod 2 16 +1)<br />
R<strong>und</strong>e Verschlüsselung Entschlüsselung<br />
1 k1,1 k1,2 k1,3 k1,4 k1,5 k1,6 k -1<br />
9,1 –k9,2 –k9,3 k -1<br />
9,4 k8,5 k8,6 2 k 1 1<br />
2,1 k2,2 k2,3 k2,4 k2,5 k2,6 k -1<br />
8,1 –k8,3 –k8,2 k -1<br />
8,4 k7,5 k7,6 3 k 3,1 k 3,2 k 3,3 k 3,4 k 3,5 k 3,6 k 7,1 -1 –k7,3 –k 7,2 k 7,4 -1 k6,5 k 6,6<br />
4 k 4,1 k 4,2 k 4,3 k 4,4 k 4,5 k 4,6 k 6,1 -1 –k6,3 –k 6,2 k 6,4 -1 k5,5 k 5,6<br />
5 k 5,1 k 5,2 k 5,3 k 5,4 k 5,5 k 5,6 k 5,1 -1 –k5,3 –k 5,2 k 5,4 -1 k4,5 k 4,6<br />
6 k 6,1 k 6,2 k 6,3 k 6,4 k 6,5 k 6,6 k 4,1 -1 –k4,3 –k 4,2 k 4,4 -1 k3,5 k 3,6<br />
7 k 7,1 k 7,2 k 7,3 k 7,4 k 7,5 k 7,6 k 3,1 -1 –k3,3 –k 3,2 k 3,4 -1 k2,5 k 2,6<br />
8 k 8,1 k 8,2 k 8,3 k 8,4 k 8,5 k 8,6 k 2,1 -1 –k2,3 –k 2,2 k 2,4 -1 k1,5 k 1,6<br />
9 k 9,1 k 9,2 k 9,3 k 9,4 k 1,1 -1 –k1,2 –k 1,3 k 1,4 -1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – IDEA<br />
Konfusion<br />
• Mischen der drei inkompatiblen Gruppenoperationen<br />
(Distributivgesetz <strong>und</strong> verallgemeinertes Assoziativgesetz<br />
von keinem Paar der Operationen erfüllt)<br />
• Ergebnis einer Operation ist niemals Eingabe einer Operation<br />
desselben Typs<br />
Diffusion<br />
• Multiplikations-Additions-Struktur: unter Nutzung von ki,5 <strong>und</strong> ki,6 werden zwei Eingabeblöcke I1 , I2 in zwei<br />
Ausgabeblöcke O1 , O2 transformiert<br />
• Jeder Ausgabeblock hängt von jedem Eingabeblock ab<br />
• Geringstmögliche Anzahl von Operationen für diese<br />
“ganzheitliche Diffusion”<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – IDEA<br />
Eigenschaften des IDEA<br />
• Verwendung linearer Funktionen, die aber in<br />
unterschiedlichen Vektorräumen arbeiten durch<br />
Verknüpfung wird Nichtlinearität erreicht<br />
• Betriebsarten <strong>und</strong> Mehrfachverschlüsselung anwendbar<br />
• Sehr gut in Hard- <strong>und</strong> Software implementierbar<br />
• Sehr effizient<br />
• Gegen differenzielle <strong>Kryptoanalyse</strong> optimiert (nach vier<br />
R<strong>und</strong>en immun)<br />
• Problem schwacher Schlüssel einfache Modifikation der<br />
Teilschlüsselgenerierung: XOR-Addition einer Konstante:<br />
i,<br />
j<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
kˆ k <br />
, 0DAE<br />
i,<br />
j<br />
x<br />
169<br />
170<br />
171<br />
57
4 Symmetrische Verfahren – AES<br />
AES (Advanced Encryption Standard)<br />
• 1997 Ausschreibung eines öffentlichen Wettbewerbs für die<br />
Einreichung eines kryptographischen Algorithmus “AES” als<br />
Nachfolger des DES durch das National Institute of<br />
Standards and Technology (NIST) der USA<br />
• Kriterien:<br />
– Sicherheit (bestmöglich, resistent gegen alle bekannten<br />
Angriffe) g )<br />
– Kosten (weltweit ohne Einschränkungen <strong>und</strong> Lizenzgebühren<br />
verfügbar)<br />
– Performance (effiziente Realisierbarkeit in Hard- <strong>und</strong> Software)<br />
– Algorithmische Eigenschaften (klar strukturiert, flexibel, für<br />
möglichst viele Anwendungen einsetzbar)<br />
• Einreichungsfrist bis zum 15.6.1998<br />
• 15 Algorithmen erfüllten formale Kriterien <strong>und</strong> wurden in<br />
einer ersten Verfahrensr<strong>und</strong>e begutachtet<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
August 1999: 5 Finalisten<br />
• MARS (IBM, USA):<br />
komplexes Verfahren mit 32 R<strong>und</strong>en, aus Feistel-Chiffre abgeleitet<br />
• RC6 (Ron Rivest u.a., RSA Labs, USA):<br />
“Rons Code”, Weiterentwicklung von RC5, basiert auf Feistel-<br />
Netzwerk mit 20 R<strong>und</strong>en<br />
• Rijndael (Vincent Rijmen <strong>und</strong> Joan Daemen, Belgien):<br />
SP-Netzwerk mit wahlweise 10, 12 oder 14 R<strong>und</strong>en;<br />
Weiterentwicklung von SAFER<br />
• Serpent (Ross Anderson/UK, Eli Biham/Israel, Lars<br />
Knudsen/Norwegen):<br />
SP-Netzwerk mit 32 R<strong>und</strong>en<br />
• Twofish (Bruce Schneier u.a., USA):<br />
Weiterentwicklung von Blowfish, Feistel-Algorithmus mit 16 R<strong>und</strong>en<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
Sieger des Wettbewerbs: Rijndael<br />
• Entscheidung Oktober 2000<br />
• Begründung:<br />
Beste Kombination von Sicherheit, Leistungsfähigkeit,<br />
Effizienz <strong>und</strong> Implementierbarkeit sowohl in Software als<br />
auch in Hardware.<br />
• Publikation als Standard im Herbst 2001 (FIPS ( Standard<br />
„Specification for the Advanced Encryption Standard“, FIPS<br />
197)<br />
• 2002 trat AES in Kraft<br />
• Einsatz z.B.: Verschlüsselungsstandard 802.1 für Wireless<br />
LAN bzw. für Wi-Fi WPA2, SSH, IPSec, 7-Zip, PGP<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
172<br />
173<br />
174<br />
58
4 Symmetrische Verfahren – AES<br />
Überblick über den Algorithmus<br />
• Verschlüsselung von Klartextblöcken der Länge 128 Bit<br />
(vorgeschlagene Längen von 192 <strong>und</strong> 256 Bits nicht<br />
standardisiert)<br />
• Schlüssellänge wahlweise 128, 192 oder 256 Bits<br />
• Mehrere R<strong>und</strong>en, jeweils Substitutionen, Permutationen <strong>und</strong><br />
Schlüsseladdition<br />
• Anzahl der R<strong>und</strong>en r hängt von Schlüssel- <strong>und</strong> Klartextlänge<br />
ab:<br />
Schlüssel- Blocklänge des Klartextes nb <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
länge nk 128 Bit 192 Bit 256 Bit<br />
128 Bit 10 12 14<br />
192 Bit 12 12 14<br />
256 Bit 14 14 14<br />
4 Symmetrische Verfahren – AES<br />
Struktur des AES<br />
m i<br />
n b<br />
Iterationsr<strong>und</strong>e 1<br />
Iterationsr<strong>und</strong>e 2<br />
Iterationsr<strong>und</strong>e r<br />
c i<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
.<br />
Struktur der Iterationsr<strong>und</strong>en<br />
si si,a SubByte<br />
s i,b<br />
ShiftRow<br />
s i,c<br />
MixColumn<br />
s i,d<br />
s i+1<br />
n b<br />
R<strong>und</strong>e i, i = 1, 2, …, r-1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k i<br />
nb<br />
nb<br />
nb<br />
nb<br />
k 0<br />
k 1<br />
k k2 .<br />
k r<br />
k n k<br />
Teil-<br />
schlüs<br />
selgenerierung<br />
s r<br />
s r,a<br />
SubByte<br />
s r,b<br />
ShiftRow<br />
s r,c<br />
R<strong>und</strong>e r<br />
k r<br />
175<br />
176<br />
177<br />
59
4 Symmetrische Verfahren – AES<br />
Notation<br />
• Darstellung eines Bytes als Folge von Bits:<br />
a = {a 7a 6a 5a 4a 3a 2a 1a 0} 2, a i {0,1}<br />
• Darstellung als Polynom:<br />
7<br />
<br />
i0<br />
• Darstellung als Hexadezimalzahl<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
a<br />
aix<br />
4 Symmetrische Verfahren – AES<br />
i<br />
Darstellung der Operanden<br />
Byte-Matrizen mit 4 Zeilen <strong>und</strong> N b (N k) Spalten<br />
mit N b (N k): Blocklänge n b (Schlüssellänge n k) / 32<br />
a 0,0 a 0,1 a 0,2 a 0,3 a 0,4 a 0,5 a 0,6 a 0,7<br />
a 1,0 a 1,1 a 1,2 a 1,3 a 1,4 a 1,5 a 1,6 a 1,7<br />
a 2,0 a 2,1 a 2,2 a 2,3 a 2,4 a 2,5 a 2,6 a 2,7<br />
a 3,0 a 3,1 a 3,2 a 3,3 a 3,4 a 3,5 a 3,6 a 3,7<br />
Schlüssel für<br />
Schlüssellänge<br />
128 , 192 , 256<br />
Bit<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
Matrix (state) für<br />
Blocklänge<br />
128 , 192 , 256<br />
Bit<br />
k 0,0 k 0,1 k 0,2 k 0,3 k 0,4 k 0,5 k 0,6 k 0,7<br />
k 1,0 k 1,1 k 1,2 k 1,3 k 1,4 k 1,5 k 1,6 k 1,7<br />
k 2,0 k 2,1 k 2,2 k 2,3 k 2,4 k 2,5 k 2,6 k 2,7<br />
k 3,0 k 3,1 k 3,2 k 3,3 k 3,4 k 3,5 k 3,6 k 3,7<br />
Mathematische Gr<strong>und</strong>lagen<br />
• Alle Verschlüsselungsschritte basieren auf Operationen in<br />
endlichen Körpern<br />
• Alle Bytes als Elemente des Körpers GF(2 8 ) interpretierbar:<br />
a 7x 7 + a 6x 6 + a 5x 5 + a 4x 4 + a 3x 3 + a 2x 2 + a 1x + a 0 mod m(x)<br />
8 4 3<br />
mit m(x) = x 8 + x 4 + x 3 + x + 1 (irreduzibles Polynom)<br />
• Addition :<br />
a = {a 7a 6a 5a 4a 3a 2a 1a 0}, b = {b 7b 6b 5b 4b 3b 2b 1b 0}<br />
c = a b mit c i = a i b i<br />
• Multiplikation :<br />
c = a b = a · b mod m(x)<br />
<br />
<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
178<br />
179<br />
180<br />
60
4 Symmetrische Verfahren – AES<br />
• Polynome dritten Grades mit Koeffizienten aus GF(2 8 ):<br />
Polynomring GF(2 8 )[x]/(x 4 +1)<br />
a(x) = a 3x 3 + a 2x 2 + a 1x + a 0 mit a i<br />
GF(2 8 )<br />
• Addition :<br />
c(x) = a(x) b(x) =<br />
(a3 b3)x3 + (a2 b2)x2 + (a1 b1)x + (a0 b0) • Multiplikation :<br />
c(x) = a(x) b(x) = a(x) · b(x) mod (x 4 +1)<br />
<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
c(x) = c 6x 6 + c 5x 5 + c 4x 4 + c 3x 3 + c 2x 2 + c 1x + c 0<br />
<br />
<br />
<br />
c0 = (a0 b0) c1 = (a1 b0) (a0 b1) c2 = (a2 b0) (a1 b1) (a0 b2) c3 = (a3 b0) (a2 b1) (a1 b2) (a0 b3) c4 = (a3 b1) (a2 b2) (a1 b3) c 5 = (a 3 3 b b2) 2) (a 2 2 b b3) 3)<br />
c6 = (a3 b3) mit xi mod (x4 +1) = xi mod 4 : d(x) = d3x3 + d2x2 <br />
+ d1x + d0 <br />
d0 = (a0 b0) (a3 b1) (a2 b2) (a1 b3) d1 = (a1 b0) (a0 b1) (a3 b2) (a2 b3) d2 = (a2 b0) (a1 b1) (a0 b2) (a3 b3) d3 = (a3 b0) (a2 b1) (a1 b2) (a0 b3) (oftmals Matrixschreibweise)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
<br />
Schritt 1: SubByte<br />
• Alle Bytes einer Matrix werden unabhängig voneinander<br />
substituiert<br />
• Nichtlinearität<br />
s i,a =<br />
a 0,0 a 0,1 a 0,2 a 0,3<br />
a1,0 a 1,1 a1,2 a1,3 a 2,0 a 2,1 a 2,2 a 2,3<br />
a 3,0 a 3,1 a 3,2 a 3,3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
<br />
b i,j := S 8(a i,j)<br />
<br />
<br />
b 0,0 b 0,1 b 0,2 b 0,3<br />
181<br />
182<br />
b1,0 b 1,1 1,1 b1,2 b1,3 = si,b b2,0 b2,1 b2,2 b2,3 b 3,0 b 3,1 b 3,2 b 3,3<br />
183<br />
61
4 Symmetrische Verfahren – AES<br />
Substitutionsbox S 8(a 7a 6a 5a 4a 3a 2a 1a 0)<br />
a 7a 6a 5a 4<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
.<br />
C<br />
D<br />
E<br />
F<br />
0<br />
63<br />
CA<br />
B7<br />
04<br />
09<br />
53<br />
D0<br />
51<br />
BA<br />
70<br />
E1<br />
8C<br />
1<br />
7C<br />
82<br />
FD<br />
C7<br />
83<br />
D1<br />
EF<br />
A3<br />
78<br />
3E<br />
F8<br />
A1<br />
2<br />
77<br />
C9<br />
93<br />
23<br />
2C<br />
00<br />
AA<br />
40<br />
25<br />
B5<br />
98<br />
89<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
3<br />
7B<br />
7D<br />
26<br />
C3<br />
1A<br />
ED<br />
FB<br />
8F<br />
2E<br />
66<br />
11<br />
0D<br />
4<br />
F2<br />
FA<br />
36<br />
18<br />
1B<br />
20<br />
43<br />
92<br />
1C<br />
48<br />
69<br />
BF<br />
a 3a 2a 1a 0<br />
5 6 7 8 9 A B C D E F<br />
6B 6F C5 30 01 67 2B FE D7 AB 76<br />
59 47 F0 AD D4 A2 AF 9C A4 72 C0<br />
3F F7 CC 34 A5 E5 F1 71 D8 31 15<br />
96 05 9A 07 12 80 E2 EB 27 B2 75<br />
A0 52<br />
6E 5A 3B D6 B3 29 E3 2F 84<br />
FC B1 5B 6A CB BE 39 4A 4C 58 CF<br />
4D 33 85 45 F9 02 7F 50 3C 9F A8<br />
9D 38 F5 BC B6 DA 21 10 FF F3 D2<br />
A6<br />
03<br />
D9<br />
E6<br />
B4<br />
F6<br />
8E<br />
42<br />
. .<br />
C6<br />
0E<br />
94<br />
68<br />
4 Symmetrische Verfahren – AES<br />
E8<br />
61<br />
9B<br />
41<br />
DD<br />
35<br />
1E<br />
99<br />
74<br />
57<br />
87<br />
2D<br />
1F<br />
B9<br />
E9<br />
0F<br />
Schritt 2: ShiftRow<br />
• Zyklische Verschiebung der Zeilen nach links<br />
• Diffusion<br />
s i,b =<br />
b 0,0 b 0,1 b 0,2 b 0,3<br />
b 1,0 b 1,1 b 1,2 b 1,3<br />
b 2,0 b 2,1 b 2,2 b 2,3<br />
b 3,0 b 3,1 b 3,2 b 3,3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
4B<br />
86<br />
CE<br />
B0<br />
BD<br />
C1<br />
55<br />
54<br />
8B<br />
1D<br />
28<br />
BB<br />
8A<br />
9E<br />
DF<br />
16<br />
184<br />
Zeile 0 1 2 3<br />
Nb = 4 0 1 2 3<br />
Nb = 6 0 1 2 3<br />
Nb = 8 0 1 3 4<br />
c 0,0 c 0,1 c 0,2 c 0,3<br />
c 1,0 c 1,1 c 1,2 c 1,3<br />
c 2,0 c 2,1 c 2,2 c 2,3<br />
c 3,0 c 3,1 c 3,2 c 3,3<br />
Schritt 3: MixColumn<br />
• Operiert jeweils auf Spalten der Matrix (32-Bit Substitution)<br />
• Diffusion<br />
s i,c =<br />
c c 0,0 c0,1 0,1 c0,2 c0,3 c1,0 c 1,1<br />
c1,2 c1,3 c2,0 c 2,1 2,1 c2,2 c2,3 c3,0 c 3,1 c3,2 c<br />
3,1<br />
3,3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
d i := a(x) c i mod (x 4 + 1)<br />
d d 0,0 d0,1 0,1 d0,2 d0,3 = s i,c<br />
185<br />
d1,0 d 1,1<br />
d1,2 d1,3 = si,d d2,0 d 2,1<br />
d2,2 d2,3 d3,0 d 3,1 d3,2 d<br />
3,1<br />
3,3<br />
186<br />
62
4 Symmetrische Verfahren – AES<br />
d i := a(x) c i mod (x 4 +1)<br />
a(x) = {03} x 3 + {01} x 2 + {01} x + {02}<br />
d0,i d1,i d<br />
=<br />
2,i<br />
d3,i 02 03 01 01<br />
01 02 03 01<br />
01 01 02 03<br />
03 01 01 02<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
c0,i c1,i c2,i c3,i d 0,i = ({02}·c 0,i) ({03}·c 1,i) c 2,i c 3,i<br />
d 1,i = c 0,i ({02}·c 1,i) ({03}·c 2,i) c 3,i<br />
d 2,i = c 0,i c 1,i ({02}·c 2,i) ({03}·c 3,i)<br />
d 3,i = ({03}·c 0,i) c 1,i c 2,i ({02}·c 3,i)<br />
4 Symmetrische Verfahren – AES<br />
Schritt 4: AddRo<strong>und</strong>Key<br />
• Macht Iterationsr<strong>und</strong>en schlüsselabhängig<br />
• Länge des R<strong>und</strong>enschlüssels k i: n b<br />
s i,d<br />
d 0,0 d 0,1 d 0,2 d 0,3<br />
d 1,0 d 1,1 d 1,2 d 1,3<br />
d 2,0 d 2,1 d 2,2 d 2,3<br />
d 3,0 d 3,1 d 3,2 d 3,3<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k i<br />
k 0,0 k 0,1 k 0,2 k 0,3<br />
s i+1,a<br />
187<br />
a 0,0 a 0,1 a 0,2 a 0,3<br />
k1,0 k1,1 k1,2 k1,3 a1,0 a1,1 a1,2 a1,3 =<br />
k2,0 k2,1 k2,2 k2,3 a2,0 a2,1 a2,2 a2,3 k 3,0 k 3,1 k 3,2 k 3,3<br />
4 Symmetrische Verfahren – AES<br />
a 3,0 a 3,1 a 3,2 a 3,3<br />
Teilschlüsselgenerierung<br />
• Expansion des AES-Schlüssels, abhängig von n b <strong>und</strong> n k<br />
• n b bestimmt Länge der R<strong>und</strong>enschlüssel<br />
• n b <strong>und</strong> n k bestimmen Anzahl der R<strong>und</strong>en Anzahl der<br />
R<strong>und</strong>enschlüssel<br />
• Länge des expandierten Schlüssels in Byte = 4N 4Nb(r+1): (r+1):<br />
Schlüssel- Blocklänge des Klartextes nb länge nk 128 Bit 192 Bit 256 Bit<br />
128 Bit 16·11 24·13 32·15<br />
192 Bit 16·13 24·13 32·15<br />
256 Bit 16·15 24·15 32·15<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
188<br />
189<br />
63
4 Symmetrische Verfahren – AES<br />
Teilschlüsselgenerierung<br />
• Verschiedene Expansionsalgorithmen für Nk = 4, 6<br />
<strong>und</strong> Nk = 8<br />
• Expandierter Schlüssel: Folge von 4-Byte Blöcken wi w0 w1 w2 … wi … wN b*(r+1)-1<br />
• Auswahl der R<strong>und</strong>enschlüssel:<br />
w 0 w 1 w 2 … w N -1 w N w N +1 …<br />
k 0<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
b b b<br />
k 1<br />
4 Symmetrische Verfahren – AES<br />
Schlüsselexpansion für N k = 4<br />
w 0<br />
w 4<br />
k[0:3]<br />
w 1<br />
w 5<br />
k[4:7]<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
w 2<br />
w 6<br />
k[8:11]<br />
w 3<br />
w 7<br />
… … … …<br />
4 Symmetrische Verfahren – AES<br />
k[12:15]<br />
Rot<br />
Rot<br />
Schlüsselexpansion – Verwendete Funktionen<br />
• Rot: zyklische Verschiebung<br />
Rot([a 0, a 1, a 2, a 3]) = [a 1, a 2, a 3, a 0]<br />
SubWord<br />
SubWord<br />
Rcon[1]<br />
Rcon[2]<br />
• SubWord: byteweise Substitution unter Nutzung von S8 SubWord([a SubWord([a0, a a1, a a2, a a3]) ]) = [S [S8(a (a 0), ) S S8(a (a 1), ) S S8(a (a 2), ) S S8(a (a 3)] )]<br />
• Rcon: Konstante für die betreffenden R<strong>und</strong>en<br />
Rcon[j = i/N k] = [x j-1 , {00}, {00}, {00}]<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
190<br />
191<br />
192<br />
64
4 Symmetrische Verfahren – AES<br />
Entschlüsselung<br />
• Umgekehrte Reihenfolge, inverse Funktionen<br />
sr,c si k r<br />
s i+1<br />
s i,d<br />
ShiftRow -1 MixColumn -1<br />
s r,b<br />
SubByte-1 sr,a sr <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
s si,c ShiftRow-1 si,b SubBytes -1<br />
si,a si R<strong>und</strong>e r R<strong>und</strong>e i, i = r-1, r-2, …, 1<br />
• Zum Schluss Addition des R<strong>und</strong>enschlüssels k 0<br />
4 Symmetrische Verfahren – AES<br />
Inverse Funktionen<br />
• ShiftRow -1 :<br />
zyklische Verschiebung nach rechts<br />
• SubByte -1 :<br />
Anwendung der inversen Substitution a i,j := S 8 -1 (bi,j)<br />
• MixColumn -1 :<br />
Multiplikation mit dem multiplikativen Inversen mod (x 4 + 1)<br />
a -1 (x) = ({03} x 3 + {01} x 2 + {01} x + {02}) -1 mod (x 4 + 1)<br />
= {0b} x 3 + {0d} x 2 + {09} x + {0e}<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – AES<br />
Entschlüsselung in äquivalenter Reihenfolge<br />
• SubByte(ShiftRow(si)) = ShiftRow(SubByte(si)) <strong>und</strong><br />
SubByte-1 (ShiftRow-1 (si)) = ShiftRow-1 (SubByte-1 (si)) • MixColumn(si ki) = MixColumn(si) MixColumn(ki) <strong>und</strong><br />
Mi MixColumn C l 1 ( k ) Mi C l 1 ( ) Mi C l 1 (k )<br />
-1 (si ki) = MixColumn-1 (si) MixColumn-1 (ki) Reihenfolge der Abarbeitung wie bei Verschlüsselung<br />
k i’ = MixColumn -1 (k i), i = 1, 2, …, r-1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k i<br />
193<br />
194<br />
195<br />
65
4 Symmetrische Verfahren – AES<br />
Entschlüsselung in äquivalenter Reihenfolge<br />
• Addition des R<strong>und</strong>enschlüssels k r<br />
s i+1<br />
s i,a<br />
SubByte -1<br />
s i,b<br />
ShiftRow -1<br />
s i,c<br />
MixColumn -1<br />
s i,d<br />
R<strong>und</strong>e i, i = r-1, r-2, …, 1<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
s i<br />
4 Symmetrische Verfahren – AES<br />
k i‘<br />
s 1<br />
s 1,a<br />
SubByte -1<br />
s 1,b<br />
ShiftRow -1<br />
Analyse des AES<br />
• Darstellung als algebraische Formel 2001 [FeSW_01]<br />
(für nk = 128 ca. 250 Terme, für nk = 256 ca. 270 Terme)<br />
• XSL-Angriff (Extended Sparse Linearisation) [CoPi_02]<br />
(Darstellung mit Hilfe eines quadratischen Gleichungssystems; für<br />
nk = 128: 8000 Gleichungen mit 1600 Variablen)<br />
• Weitere Angriffe wie zz.B. B Collision attacks attacks, Related-key<br />
attacks <strong>und</strong> Seitenkanalangriffe<br />
• Übersicht über Angriffe z.B. unter:<br />
http://www.cryptosystem.net/aes/<br />
http://www.iaik.tugraz.at/content/research/krypto/aes/<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Betriebsarten<br />
Verschlüsselung längerer Nachrichten, Authentikation<br />
Beispiele für Betriebsarten:<br />
– Verschlüsselung:<br />
• Electronic Code Book (ECB)<br />
1981 für DES<br />
• Cipher Block Chaining (CBC)<br />
standardisiert<br />
• Cipher Feedback (CFB)<br />
(FIPS 81)<br />
• Output Feedback (OFB)<br />
• Counter Mode (CTR)<br />
– Authentikation:<br />
• Cipher-based MAC (CMAC)<br />
– Authentikation <strong>und</strong> Verschlüsselung:<br />
• Counter with CBC-MAC (CCM)<br />
• Galois/Counter Mode (GCM bzw. GMAC)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
s 1,c<br />
k 0<br />
196<br />
197<br />
198<br />
66
4 Symmetrische Verfahren – Betriebsarten<br />
• Anwendung der Betriebsarten erlaubt die Konstruktion von<br />
synchronen oder selbstsynchronisierenden „Stromchiffren“<br />
aus Blockchiffren<br />
(zugr<strong>und</strong>e liegendes Alphabet wird dabei teilweise gewechselt)<br />
– Synchrone Stromchiffre: Verschlüsselung eines Zeichens ist<br />
abhängig von der Position bzw. von vorhergehenden Klartextoder<br />
Schlüsselzeichen<br />
– Selbstsynchronisierende Stromchiffre: Verschlüsselung ist nur<br />
von begrenzter Anzahl vorhergehender Zeichen abhängig<br />
• ECB, CBC <strong>und</strong> CFB: selbstsynchronisierende Stromchiffre<br />
• OFB, CTR: synchrone Stromchiffre<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
• Betrachtung von Fehlerauswirkungen / Manipulationen<br />
– Unterscheidung nach Ort des Fehlers<br />
• während der Übertragung (Speicherung)<br />
• während der Ver- bzw. Entschlüsselung (transient)<br />
Sender Empfänger<br />
enc<br />
dec<br />
– Unterscheidung nach Fehlerart<br />
• Additive Fehler: Verfälschung einzelner Bits („Addition<br />
eines Fehlermusters“); Blockgrenzen bleiben erhalten<br />
• Synchronisationsfehler: Hinzufügen bzw. Verlust von<br />
Blöcken / Bits (letzteres ändert die Blockgrenzen)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Electronic Codebook (ECB)<br />
Verschlüsselung<br />
mi l<br />
l ci enc<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k<br />
Entschlüsselung<br />
ci = enc(k, mi), 1 < i ≤ n<br />
mi = dec(k, ci), 1 < i ≤ n<br />
c = enc(k, m1) enc(k, m2) ... enc(k, mn) m = dec(k, c1) dec(k, c2) ... dec(k, cn) c i<br />
l l<br />
dec<br />
k<br />
m i<br />
199<br />
200<br />
201<br />
67
4 Symmetrische Verfahren – Betriebsarten<br />
Electronic Codebook (ECB) – Eigenschaften<br />
• Selbstsynchronisierend (Abhängigkeit von 0 Blöcken)<br />
• Länge der verarbeiteten Einheiten: entsprechend Blockgröße<br />
der Blockchiffre (DES: l = 64 Bit)<br />
• Keine Abhängigkeiten zwischen den Blöcken<br />
– Direktzugriff auf einzelne Schlüsseltextblöcke möglich<br />
– gleiche Klartextblöcke liefern gleiche Schlüsseltextblöcke<br />
ggf. Kodebuchanalysen möglich<br />
• Fehlerauswirkungen<br />
– additive Fehler: keine Fehlerfortpflanzung<br />
– Synchronisationsfehler bzgl. ganzer Blöcke: keine<br />
Fehlerfortpflanzung<br />
gezieltes Einfügen <strong>und</strong> Entfernen von Blöcken möglich<br />
– Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft,<br />
bis Blockgrenzen erneut festgelegt<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Block Chaining (CBC) – Verschlüsselung<br />
m i<br />
l ci enc<br />
c i-1 IV<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k<br />
1 l<br />
…<br />
Speicher für<br />
Schlüsseltextblock<br />
ci-1 bzw. IV<br />
c1 = enc(k, (m1 IV )); IV: Initialisierungsvektor<br />
ci = enc(k, (mi ci-1)), 1 < i ≤ n<br />
c = enc(k, (m1IV)) enc(k, (m2c1)) enc(k, (m3c2)) … enc(k, (mncn-1)) 4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Block Chaining (CBC) – Entschlüsselung<br />
k<br />
c i<br />
l l mi dec<br />
m 1 = dec(k, c 1) IV<br />
m i = dec(k, c i) c i-1, 1 < i ≤ n<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
l<br />
c ci-1 IV<br />
202<br />
203<br />
1 l<br />
…<br />
Speicher für<br />
Schlüsseltextblock<br />
ci-1 bzw. IV<br />
m = dec(k, c 1) IV dec(k, c 2) c 1 dec(k, c 3) c 2 … dec(k, c n ) c n-1<br />
204<br />
68
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Block Chaining (CBC)– Eigenschaften<br />
• Selbstsynchronisierend (Abhängigkeit von 1 Block)<br />
• Länge der verarbeiteten Einheiten: entsprechend Blockgröße<br />
der Blockchiffre (DES: l = 64 Bit)<br />
• Abhängigkeiten zwischen den Blöcken<br />
– kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich<br />
– gleiche Klartextblöcke liefern unterschiedliche<br />
Schlüsseltextblöcke<br />
Kodebuchanalysen erschwert<br />
• Initialisierungsvektor IV muss Sender <strong>und</strong> Empfänger<br />
bekannt sein<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
• Fehlerauswirkungen<br />
– Fehler während der Übertragung<br />
• additive Fehler: Fehlerfortpflanzung in den Folgeblock<br />
• Synchronisationsfehler bzgl. ganzer Blöcke: 2 Blöcke<br />
betroffen<br />
• Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft,<br />
bis Blockgrenzen erneut festgelegt<br />
– FFehler hl während äh d der d Verschlüsselung<br />
V hlü l<br />
• ab Fehlerstelle wird ein anderer Schlüsseltext erzeugt<br />
• Entschlüsselung: nur ein Klartextblock betroffen<br />
Verfahren eignet sich zur Authentikation: Manipulationen,<br />
Einfügen <strong>und</strong> Entfernen von Blöcken erkennbar<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
CBC zur Authentikation (CBC-MAC)<br />
m i<br />
c i-1 IV<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k<br />
enc<br />
c i<br />
205<br />
206<br />
1 l letzter<br />
…<br />
Schlüssel-<br />
IV = 0…0<br />
textblock cn letzter Schlüsseltextblock wird als MAC angehängt: m 1 m 2 m 3 … m n c n<br />
Empfänger berechnet ebenfalls c n <strong>und</strong> vergleicht mit erhaltenem c n<br />
207<br />
69
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Feedback (CFB) – Verschlüsselung<br />
m i<br />
r<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
l r+1 r 1<br />
… … Schieberegister A<br />
ai Inhalt zum Zeitpunkt i<br />
a1 = IV<br />
…<br />
r<br />
enc<br />
l 1<br />
…<br />
k<br />
Ausgabeblock B<br />
bi Ausgabe zum Zeitpunkt i<br />
r ci c i = m i b i[1:r] = m i enc(k, a i)[1:r]<br />
für l = 64, r = 8: a i = c i-8 c i-7 c i-6 … c i-2 c i-1; a 1 = IV = c -7 c -6 c -5 … c 1 c 0<br />
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Feedback (CFB) – Entschlüsselung<br />
c i<br />
r<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
l r+1 r 1<br />
… … Schieberegister A<br />
ai Inhalt zum Zeitpunkt i<br />
a1 = IV<br />
…<br />
r<br />
enc<br />
l 1<br />
…<br />
k<br />
208<br />
Ausgabeblock B<br />
bi Ausgabe zum Zeitpunkt i<br />
r mi m i = c i b i[1:r] = c i enc(k, a i)[1:r]<br />
für l = 64, r = 8: a i = c i-8 c i-7 c i-6 … c i-2 c i-1; a 1 = IV = c -7 c -6 c -5 … c 1 c 0<br />
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher Feedback (CFB) – Eigenschaften<br />
l <br />
• Selbstsynchronisierend (Abhängigkeit von Einheiten; l:<br />
r<br />
<br />
Blockgröße der Chiffre; DES: l = 64)<br />
• Länge der verarbeiteten Einheiten: r < b, frei wählbar (z.B.<br />
8 Bit, also byteweise Verarbeitung)<br />
• Abhängigkeiten zwischen den Blöcken<br />
– kein Direktzugriff g auf einzelne Schlüsseltextblöcke möglich g<br />
– gleiche Klartextblöcke liefern unterschiedliche<br />
Schlüsseltextblöcke<br />
• Initialisierungsvektor IV muss Sender <strong>und</strong> Empfänger<br />
bekannt sein<br />
• Nur Verschlüsselungsfunktion verwendet – es entsteht<br />
immer eine symmetrische Chiffre<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
209<br />
210<br />
70
4 Symmetrische Verfahren – Betriebsarten<br />
• Fehlerauswirkungen<br />
– Fehler während der Übertragung<br />
• additive Fehler <strong>und</strong> Synchronisationsfehler bzgl. ganzer<br />
Blöcke: Fehlerfortpflanzung entsprechend der<br />
Abhängigkeiten von vorherigen Blöcken<br />
• Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft,<br />
bis Blockgrenzen erneut festgelegt; durch geeignete Wahl<br />
von r können Verschiebungen der Blockgrenzen verhindert<br />
werden<br />
– Fehler während der Verschlüsselung entsprechend CBC<br />
Verfahren eignet sich zur Authentikation (verschlüsselten<br />
letzten Block c n als MAC): Manipulationen, Einfügen <strong>und</strong><br />
Entfernen von Blöcken erkennbar<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Output Feedback (OFB) – Ver-/Entschlüsselung<br />
mi ci l<br />
c i = m i b i = c i enc(k, a i)<br />
m i = c i b i = m i enc(k, a i)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
l<br />
…<br />
enc<br />
l 1<br />
4 Symmetrische Verfahren – Betriebsarten<br />
…<br />
1<br />
Eingabeblock A<br />
a i Inhalt zum Zeitpunkt i<br />
a 1 = IV<br />
k<br />
211<br />
Ausgabeblock B<br />
bi Ausgabe zum Zeitpunkt i<br />
l ci mi Anmerkung: in FIPS 81 Länge der<br />
verarbeiteten Einheiten frei wählbar<br />
Output Feedback (OFB) – Eigenschaften<br />
• Synchron<br />
• Abhängigkeit von Position der verarbeiteten Einheit<br />
– kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich<br />
– gleiche Klartextblöcke liefern unterschiedliche<br />
Schlüsseltextblöcke<br />
• Initialisierungsvektor g IV muss Sender <strong>und</strong> Empfänger p g<br />
bekannt sein; darf bzgl. eines Schlüssels nur einmal<br />
verwendet werden<br />
• Nur Verschlüsselungsfunktion verwendet – es entsteht<br />
immer eine symmetrische Chiffre<br />
• Fehlerauswirkungen<br />
– additive Fehler: keine Fehlerfortpflanzung<br />
– anfällig gegen Synchronisationsfehler<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
212<br />
213<br />
71
4 Symmetrische Verfahren – Betriebsarten<br />
Counter Mode (CTR) – Ver-/Entschlüsselung<br />
mi ci c i = m i b i = c i enc(k, T i)<br />
m i = c i b i = m i enc(k, T i)<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
l<br />
…<br />
enc<br />
l 1<br />
4 Symmetrische Verfahren – Betriebsarten<br />
…<br />
1<br />
T i Zähler zum Zeitpunkt i<br />
T 1 Startwert des Zählers<br />
T i = inc(T i -1)<br />
k<br />
Ausgabeblock B<br />
b i Ausgabe zum Zeitpunkt i<br />
ci mi Counter Mode (CTR) – Eigenschaften<br />
• Synchron<br />
• Abhängigkeit von Position der verarbeiteten Einheit<br />
– gleiche Klartextblöcke liefern unterschiedliche<br />
Schlüsseltextblöcke<br />
• Direktzugriff auf einzelne Schlüsseltextblöcke möglich<br />
• Zähler muss Sender <strong>und</strong> Empfänger bekannt sein, darf<br />
bzgl. eines Schlüssels nur einmal verwendet werden<br />
• Nur Verschlüsselungsfunktion verwendet – es entsteht<br />
immer eine symmetrische Chiffre<br />
• Fehlerauswirkungen<br />
– additive Fehler: keine Fehlerfortpflanzung<br />
– anfällig gegen Synchronisationsfehler<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Cipher-based MAC (CMAC)<br />
• Bietet auch Sicherheit für Nachrichten beliebiger Länge<br />
• Schlüssel k1 <strong>und</strong> k2 werden mit Hilfe des geheimen Schlüssels<br />
k ermittelt (abhängig von Blocklänge) <strong>und</strong> mit letztem<br />
Nachrichtenblock XOR-verknüpft<br />
• Berechnung des MAC ansonsten wie mit CBC (IV = 0…0);<br />
Auswahl der Tlen MSBs (most significant bits) als MAC<br />
k<br />
m 1 m 2 m n *<br />
enc<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
k<br />
enc<br />
…<br />
k<br />
enc<br />
ggf. aufgefüllt<br />
c n[1:Tlen]<br />
214<br />
215<br />
k1 , falls m* n<br />
kompletter<br />
Block /<br />
k2 sonst<br />
216<br />
72
4 Symmetrische Verfahren – Betriebsarten<br />
Counter with CBC-MAC (CCM)<br />
• Vertraulichkeit <strong>und</strong> Integrität für die Nachricht (payload P)<br />
• Integrität für zusätzliche Daten (assigned data A)<br />
• Zufallszahl (nonce N; verschieden für verschiedene Paare<br />
(A,P))<br />
• Generieren & Verschlüsseln:<br />
– MAC berechnen für P, A <strong>und</strong> N mittels CBC-MAC<br />
– Verschlüsselung von N, P <strong>und</strong> MAC mittels CTR<br />
• Entschlüsseln & Prüfen:<br />
– Entschlüsselung mittels CTR N, P, MAC<br />
– Berechnung des MAC für P, A <strong>und</strong> N mittels CBC-MAC <strong>und</strong><br />
Vergleich mit entschlüsseltem MAC<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
4 Symmetrische Verfahren – Betriebsarten<br />
Galois/Counter Mode (GCM bzw. GMAC)<br />
• Vertraulichkeit <strong>und</strong> Integrität für die Nachricht<br />
• Integrität für zusätzliche Daten<br />
• Initialisierungsvektor IV (darf nur einmal verwendet werden)<br />
• GMAC: zu verschlüsselnde Nachricht der Länge 0<br />
• VVerschlüsselung: hlü l<br />
– CTR mit spezieller inc-Funktion (nur ein Teil der Bits des<br />
Zählers werden inkrementiert)<br />
– erster Wert des Zählers von IV<br />
• Berechnung des MAC:<br />
– Hashfunktion GHASH: Multiplikation mit einem festen<br />
Parameter H (hash subkey) in einem endlichen Körper<br />
– H = enc(k, 0 128 )<br />
<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />
217<br />
218<br />
73