25.01.2013 Aufrufe

Kryptographie und Kryptoanalyse

Kryptographie und Kryptoanalyse

Kryptographie und Kryptoanalyse

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!