25.01.2013 Aufrufe

Kryptographie und Kryptoanalyse

Kryptographie und Kryptoanalyse

Kryptographie und Kryptoanalyse

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Überblick über die Vorlesung<br />

SS 2012<br />

Dr.-Ing. Elke Franz<br />

Elke.Franz@tu-dresden.de<br />

Organisatorisches<br />

• Vorlesung: Mittwoch, 3. DS, INF/E09<br />

• Übung: Mittwoch, 1. DS, INF/E07<br />

(2. Woche, Beginn: 18.04.2012)<br />

• Art der Prüfung: mündliche Prüfung / Modulprüfung /<br />

Schein<br />

• Lehrmaterialien: Folienskript, Übungsaufgaben<br />

Literaturhinweise<br />

• Webseite: dud.inf.tu-dresden.de<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Überblick über die Vorlesung<br />

Ziele dieser Vorlesung<br />

(Studium Lehrveranstaltungen <br />

Sommersemester)<br />

• Vermittlung gr<strong>und</strong>legender Aspekte der <strong>Kryptographie</strong><br />

– Was kann man mit <strong>Kryptographie</strong> erreichen?<br />

– Wie kann man es prinzipiell erreichen?<br />

– Wie kann man das Erreichte beurteilen?<br />

• Vermittlung vertiefter Kenntnisse über kryptographische<br />

Verfahren <strong>und</strong> deren Sicherheit<br />

– Ausgewählte kryptographische Verfahren<br />

– Ansätze zur Analyse dieser Verfahren<br />

– Anforderungen an die sichere Verwendung unter Beachtung<br />

möglicher Angriffe<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

1<br />

2<br />

3<br />

1


Ü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 />

– Typen kryptographischer Systeme<br />

– Überblick über Angriffe<br />

– Sicherheit kryptographischer Systeme<br />

3. Klassische Verfahren<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 />

– 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 Einführung – Begriffe<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

4<br />

5<br />

6<br />

2


1 Einführung – Begriffe<br />

Einordnung von <strong>Kryptographie</strong> als Schutzmechanismus<br />

• IT-Sicherheit<br />

– IT-System soll sich trotz unerwünschter Ereignisse so verhalten<br />

wie erwartet<br />

Schutz vor unerwünschten Ereignissen<br />

Unbeabsichtigte<br />

Fehler <strong>und</strong><br />

Ereignisse<br />

1 Einführung – Bedrohungen<br />

Unerwünschte Ereignisse<br />

Mögliche Bedrohungen durch Angriffe<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Beabsichtigte<br />

Angriffe<br />

• Unbefugte Kenntnisnahme der Informationen<br />

• Verfälschen von Informationen (bei Nachrichten auch von<br />

deren Absendern)<br />

• Stören der Verfügbarkeit<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 />

8<br />

9<br />

3


1 Einführung – Schutzziele<br />

Unterteilung der Schutzziele<br />

Unerwünschtes<br />

verhindern<br />

Erwünschtes<br />

leisten<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

1 Einführung – Schutzziele<br />

Inhalte Umstände<br />

Vertraulichkeit<br />

Verdecktheit<br />

Anonymität<br />

Unbeobachtbarkeit<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 werden.<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 />

1 Einführung - Schutzziele<br />

Einordnung von <strong>Kryptographie</strong> in das Modell der<br />

gestörten Informationsübertragung<br />

Quelle<br />

Senke<br />

Quellenkodierung<br />

Quellendekodierung<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

<strong>Kryptographie</strong><br />

Kanalkodierung<br />

Kanaldekodierung<br />

Kanal<br />

10<br />

11<br />

Störung<br />

12<br />

4


Überblick über die Vorlesung<br />

1. Einführung<br />

2. Gr<strong>und</strong>lagen<br />

– Mathematische Beschreibung<br />

– Typen 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 />

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 />

Schlüsseltext<br />

c C<br />

c = enc(ke,m) g9b02...<br />

Nachricht<br />

Hallo, ...<br />

13<br />

Vertrauensbereich des<br />

Empfängers (Bob)<br />

Schlüssel<br />

k d K<br />

Entschlüsselungsfkt.<br />

dec DEC<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, 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 />

m = dec(k d,c)<br />

14<br />

15<br />

5


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 0m 1m 2 … m n-1) mit m i A, m A n<br />

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 />

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 />

16<br />

17<br />

18<br />

6


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 />

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 – Typen kryptographischer Systeme<br />

Symmetrisches Konzelationssystem<br />

geheimer<br />

Schlüssel<br />

k A,B<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Schlüsseltext<br />

c<br />

c ú enc(kA,B,m) Zufallszahl r<br />

Schlüssel- kA,B ú<br />

generierung keygen(r)<br />

Alice Bob<br />

Nachricht<br />

m<br />

Verschlüsselung<br />

enc<br />

Vertrauensbereich<br />

Sicherer Kanal für Schlüsselaustausch<br />

Angriffsbereich<br />

Entschlüsselung<br />

dec<br />

geheimer<br />

Schlüssel<br />

k A,B<br />

19<br />

20<br />

Nachricht<br />

m ú dec(kA,B,c) öffentlich bekannter Algorithmus<br />

21<br />

7


2 Gr<strong>und</strong>lagen – Typen kryptographischer Systeme<br />

Symmetrisches Konzelationssystem<br />

Alice Bob<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

2 Gr<strong>und</strong>lagen – Typen 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 A,X mit X aus<br />

• Kommunikation mit Teilnehmer B: Anfrage an X nach<br />

geheimem Schlüssel k A,B<br />

• X generiert Schlüssel k A,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 – Typen 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<br />

Vertrauensbereich<br />

Sicherer Kanal für Schlüsselaustausch<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Angriffsbereich<br />

Nachricht, MAC<br />

(message authentication<br />

code)<br />

m, MAC<br />

MAC ú auth(kA,B,m) Zufallszahl r<br />

Schlüsselgenerierung<br />

k A,B ú<br />

keygen(r)<br />

geheimer<br />

Schlüssel<br />

k A,B<br />

22<br />

23<br />

Bob<br />

?<br />

auth(kA,B,m) =<br />

MAC testen<br />

MAC<br />

öffentlich bekannter Algorithmus<br />

24<br />

8


2 Gr<strong>und</strong>lagen – Typen kryptographischer Systeme<br />

Asymmetrisches<br />

Konzelationssystem<br />

Nachr. m<br />

öffentlicher<br />

Schlüssel<br />

k e,B<br />

Zufallsz. r’<br />

Verschlüsselung<br />

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<br />

Zufallszahl r<br />

Schlüsselgenerierung<br />

(k e,B, k d,B)ú<br />

keygen(r)<br />

Alice Bob<br />

privater<br />

Schlüssel<br />

k d,B<br />

Nachricht<br />

m ú dec(k d,B,c)<br />

Vertrauensbereich öffentlich bekannter Algorithmus<br />

2 Gr<strong>und</strong>lagen – Typen 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 (k e,A)<br />

• Teilnehmer B will mit A kommunizieren: bittet R um<br />

öffentlichen Schlüssel k e,A von A<br />

• B erhält k e,A, beglaubigt durch die Signatur von R;<br />

R beglaubigt Zusammenhang zwischen A <strong>und</strong> k e,A<br />

• 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 – Typen kryptographischer Systeme<br />

Asymmetrisches Authentikationssystem<br />

(Digitales Signatursystem)<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

Angriffsbereich<br />

privater<br />

Schlüssel<br />

kt,B ks,B test(kt,B ,m, s)<br />

{true, false}<br />

Testen<br />

test<br />

Nachricht, Signatur<br />

m, s<br />

s := sign(ks,B,m, r’)<br />

Signieren<br />

sign<br />

Nachr. m<br />

Zufallsz. r’<br />

Vertrauensbereich öffentlich bekannter Algorithmus<br />

25<br />

26<br />

27<br />

9


2 Gr<strong>und</strong>lagen – Typen 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 />

2 Gr<strong>und</strong>lagen – Typen kryptographischer Systeme<br />

Hybrides Konzelationssystem<br />

geheimer Schlüssel<br />

(session key) k A,B<br />

Nachricht<br />

m<br />

enc<br />

c 2<br />

enc<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

öffentlicher<br />

Schlüssel<br />

ke,B c1 dec<br />

c 1, c 2<br />

c 1 = enc(k e,B,k A,B), c 2 = enc(k A,B,m)<br />

privater<br />

Schlüssel<br />

k d,B<br />

2 Gr<strong>und</strong>lagen – Typen 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 />

dec<br />

Asymmetrische<br />

Verfahren<br />

28<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 />

Konzelation<br />

Vertraulichkeit<br />

Digitale Signatursysteme<br />

Integrität<br />

Zurechenbarkeit<br />

29<br />

30<br />

10


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 />

Generell: Kein Schutz vor einem allmächtigen Angreifer!<br />

Ein allmächtiger Angreifer …<br />

• kann alle ihn interessierenden Daten erfassen<br />

• kann Daten unbemerkt ändern<br />

• kann die Verfügbarkeit des Systems durch physische Zerstörung<br />

beeinträchtigen<br />

Angreifermodell<br />

Angabe der maximal berücksichtigten Stärke eines Angreifers, d.h.,<br />

Stärke des Angreifers, gegen die ein bestimmter<br />

Schutzmechanismus gerade noch sicher ist<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

31<br />

32<br />

33<br />

11


2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />

Inhalt des Angreifermodells<br />

• Rollen des Angreifers<br />

(Nutzer, Außenstehender, …)<br />

• Verbreitung des Angreifers<br />

(kontrollierte Subsysteme, Leitungen, …)<br />

• Verhalten des Angreifers<br />

(passiv/aktiv, beobachtend/verändernd)<br />

• Rechenkapazität<br />

(komplexitätstheoretisch (un)beschränkt)<br />

• Verfügbare Mittel<br />

(Zeit, Geld)<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 />

Algorithmus<br />

System<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 />

Angreifer hat Zugriff auf die Schnittstellen (ggf. beschränkt)<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

2 Gr<strong>und</strong>lagen – Überblick über Angriffe<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

34<br />

Algorithmus<br />

System<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 />

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 CPA; „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 />

35<br />

36<br />

12


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 />

2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />

Informationstheoretische (perfekte) Sicherheit<br />

[Claude Shannon: Communication Theory of Secrecy Systems. Bell<br />

Systems Technical Journal, 28(1949), 656-715.]<br />

• Informelle Beschreibung (bzgl. Konzelationssystem):<br />

Selbst ein unbeschränkter Angreifer gewinnt aus seinen<br />

Beobachtungen keinerlei zusätzliche Informationen über<br />

Klartext oder Schlüssel.<br />

• „unbeschränkt“: beliebiger Rechen- <strong>und</strong> Zeitaufwand<br />

• „zusätzliche Informationen“: nicht besser als bloßes Raten<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

37<br />

38<br />

39<br />

13


2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />

Definition der informationstheoretischen Sicherheit<br />

• a priori Wissen p(m):<br />

Wissen des Angreifers über mögliche Nachrichten vor einer<br />

Beobachtung (als bekannt vorausgesetzt)<br />

• a posteriori Wissen p(m|c):<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 />

<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 />

• Berechnung der a posterioi Wahrscheinlichkeiten p(m|c) nach<br />

dem Theorem von Bayes:<br />

p<br />

| <br />

mc p<br />

mpc| m<br />

p<br />

c<br />

Notwendige <strong>und</strong> hinreichende Bedingung für<br />

informationstheoretische Sicherheit:<br />

" m M " c C: p(c|m) = p(c).<br />

Nachrichten <strong>und</strong> Schlüsseltexte müssen stochastisch<br />

unabhängig voneinander sein.<br />

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-1 p(c j|m i)<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

c 1<br />

.<br />

cj .<br />

cn-1 c | m pk<br />

p<br />

j<br />

i<br />

<br />

kK:<br />

c enck,<br />

m <br />

Wahrscheinlichkeit des<br />

Schlüsseltextes c j :<br />

n 1<br />

c pmpc|<br />

m <br />

p<br />

j<br />

<br />

i0<br />

i<br />

j<br />

j<br />

i<br />

i<br />

40<br />

41<br />

42<br />

14


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<br />

01<br />

10<br />

11<br />

nicht informationstheoretisch sicher<br />

Anforderungen an die Anzahl der Schlüssel notwendig!<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

00<br />

01<br />

10<br />

11<br />

enc(00, m)<br />

enc(01, m)<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 />

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, 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 />

43<br />

44<br />

45<br />

15


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 />

nicht informationstheoretisch sicher<br />

Anforderungen an Wahrscheinlichkeiten der Schlüssel notwendig!<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 />

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 />

Schlüssel müssen mit gleicher Wahrscheinlichkeit verwendet<br />

werden<br />

Resultierende Schlüsseltexte sind ebenfalls gleichwahrscheinlich<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 c 0 :<br />

p(c 0|m 0) = p(c 0|m 1) = p(c 0|m 2) = p(c 0|m 3)<br />

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 />

informationstheoretisch sicher<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 />

Verschlüsselung<br />

enc(k0 = 00, m)<br />

enc(k1 = 01, m)<br />

enc(k 2 = 10, m)<br />

enc(k 3 = 11, m)<br />

p(k i) = p(k) = 0,25<br />

46<br />

47<br />

48<br />

16


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 />

m 0 = 00<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 0 = 00<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(k0 = 00, m)<br />

enc(k1 = 01, m)<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 />

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 />

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 />

2 Gr<strong>und</strong>lagen – Sicherheit kryptographischer Systeme<br />

Zusammenfassung der Anforderungen<br />

• Notwendige Bedingung für informationstheoretische<br />

Sicherheit:<br />

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 />

Resultierende Anforderungen an die Schlüssel:<br />

(1) |K| ¥ |C| ¥ |M|<br />

(2) Bei einem System mit |K| = |C| = |M| müssen die Schlüssel<br />

gleichwahrscheinlich sein.<br />

(3) Die Wahl des Schlüssels muss jeweils zufällig erfolgen.<br />

Aussagen bzgl. Sicherheit gelten nur für den Algorithmus!<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

49<br />

50<br />

51<br />

17


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 />

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 />

52<br />

53<br />

54<br />

18


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 />

• Vorteil des Angreifers betrachtet (nicht besser als bloßes Raten)<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 />

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 />

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 = enc(k e, 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 />

55<br />

56<br />

57<br />

19


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, c i)<br />

m 0, m 1<br />

c b = enc(k e, 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, c i)<br />

m 0, m 1<br />

c b = enc(k e, m b)<br />

c i c b<br />

m i = dec(k d, c 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 />

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 />

58<br />

59<br />

60<br />

20


Ü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 />

• Kongruenz<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 />

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 = A l<br />

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 />

61<br />

62<br />

63<br />

21


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 />

• Matrixtranspositionen<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 />

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) <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

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 />

enc s(m i) = -1 [((m i)+s) mod n], (m i) {0:n-1}<br />

dec s(c i) = -1 [((c i)-s) mod n]<br />

Cäsarchiffre für s = 3<br />

k<br />

k<br />

k<br />

k<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 />

b 1<br />

b 3<br />

b 0<br />

b j<br />

A C<br />

64<br />

65<br />

66<br />

22


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 />

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<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 />

67<br />

68<br />

69<br />

23


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 />

<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 />

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 />

70<br />

71<br />

72<br />

24


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 H0(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 />

<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 4.39 5.17 3.43 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 />

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 6.86 8.08 4.84 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 />

3 Klassische Verfahren – MM-Substitutionen<br />

Zeichenhäufigkeiten (deutsch)<br />

Häufigkeiten<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 />

73<br />

74<br />

75<br />

25


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 />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Deutsch<br />

Englisch<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 />

76<br />

77<br />

78<br />

26


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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

k 1<br />

k 2<br />

k r<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 />

3 Klassische Verfahren – PM-Substitutionen<br />

PM-Substitution (2)<br />

A M<br />

ai a3 M K C<br />

a 0<br />

a 2<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

k 1 k 2<br />

k r<br />

k 3<br />

A C1<br />

b 1<br />

b 3<br />

b j<br />

b 0<br />

b 20<br />

A C<br />

b r1<br />

79<br />

A C2<br />

A Cr<br />

80<br />

81<br />

27


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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

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 />

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 />

k0 k1 kr-1 k0 k (l-1) mod r<br />

3 Klassische Verfahren – PM-Substitutionen<br />

• Binäre Vigenère-Chiffre<br />

A = {0,1}<br />

n = 2<br />

Klartextbuchstabe m i, Schlüsselbuchstabe k i:<br />

c i = (m i+k i) mod 2 bzw. c i = m i k i<br />

m i = (c i+k i) mod 2 bzw. m i = c i k i<br />

• 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 />

82<br />

83<br />

84<br />

28


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 />

1. Ermittlung der<br />

Schlüssellänge r<br />

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 />

Schlüssel k 0 k 1 k 2 … k r-1<br />

Schlüsseltext c 0 c 1 c 2 … c r-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 />

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 />

85<br />

86<br />

87<br />

29


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 />

<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) = N<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 />

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 />

88<br />

89<br />

90<br />

30


3 Klassische Verfahren – PM-Substitutionen<br />

Koinzidenzindex für Beispieltexte (deutsch, nur “A” – “Z”)<br />

I max = 0,0762<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

─ r = 1 r = 4 r = 12 r = 26<br />

N = 110 038 0,07379 0,07379 0,04769 0,04030 0,03847<br />

N = 10 090 0,07226 0,07226 0,04714 0,04009 0,03856<br />

N = 2 059 0,08002 0,08002 0,04936 0,04107 0,04094<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 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 />

c 3r c 3r+1 c 3r+2 … c 2r+(r-1)<br />

… … … … …<br />

I max = 0,0762<br />

3 Klassische Verfahren – PM-Substitutionen<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

I min = 0,0385<br />

Wahrscheinlichkeit, ein Paar gleiche Zeichen auszuwählen:<br />

Anzahl von Buchstabenpaaren<br />

• aus einer gleichen Spalte:<br />

• aus verschiedenen Spalten:<br />

• insgesamt:<br />

I<br />

<br />

anz I<br />

n 1<br />

2 gl max<br />

pi<br />

<br />

i0 anzbp<br />

anz I<br />

v<br />

min<br />

N <br />

N 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 />

91<br />

I min = 0,0385<br />

92<br />

93<br />

31


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 <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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

für N >> 1<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 />

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 />

94<br />

95<br />

96<br />

32


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 />

3 Klassische Verfahren<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 />

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 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 />

97<br />

98<br />

99<br />

33


Ü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 />

– 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 />

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 />

100<br />

101<br />

102<br />

34


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 = enc n(k n, enc n-1(k n-1, ... enc 2(k 2, enc 1(k 1, 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 = dec 1(k 1, dec 2(k 2, ... dec n-1(k n-1, dec n(k n, 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 />

– 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 />

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 />

103<br />

104<br />

105<br />

35


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 den gleichen Funktionen, nur Reihenfolge der<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 />

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 />

106<br />

107<br />

108<br />

36


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 />

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 />

109<br />

110<br />

111<br />

37


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 />

0<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

c 0 = m = L 0, R 0<br />

01234567<br />

c 2 = L 2, R 2<br />

01234567<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

0<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

c 1 = L 1, R 1<br />

01234567<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 />

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 />

112<br />

113<br />

114<br />

38


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-Bit linear von den Input-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 />

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 a i,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 />

115<br />

116<br />

117<br />

39


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 />

a i,j = 1 y j ändert sich bei jeder Änderung von x i<br />

y j hängt linear von x i ab<br />

j. i. a i,j {0,1} f ist partiell linear (Spalte a j binärer Vektor)<br />

i. j. a i,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. a i,j := 0<br />

für „hinreichend viele“ X<br />

wähle zufälligen n-Bit Vektor X<br />

für alle i von 1 bis n<br />

Bestimme X i (unterscheidet sich von X genau im Bit i)<br />

V i = f(X) f(X i)<br />

a i,j := a i,j + V i,j<br />

Division aller a i,j durch Anzahl der Vektoren X<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

4 Symmetrische Verfahren – Kryptographische Güte<br />

Beispiel (S Bsp)<br />

X = 000<br />

X = 001 …<br />

x 1<br />

x 2<br />

x 3<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 />

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 />

118<br />

119<br />

120<br />

40


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 />

– 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 />

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 />

121<br />

122<br />

123<br />

41


4 Symmetrische Verfahren – DES<br />

Struktur des DES<br />

m i<br />

c i<br />

64<br />

64<br />

L 0<br />

L 1<br />

L 16<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

IP<br />

R 0<br />

Iterationsr<strong>und</strong>e 1<br />

R 1<br />

Iterationsr<strong>und</strong>e 2<br />

L2 .<br />

R2 L15 R15 Iterationsr<strong>und</strong>e 16<br />

IP -1<br />

R 16<br />

4 Symmetrische Verfahren – DES<br />

Eingangspermutation IP<br />

58<br />

60<br />

62<br />

64<br />

Folge der Klartextbits:<br />

50<br />

52<br />

54<br />

56<br />

42<br />

44<br />

46<br />

48<br />

34<br />

36<br />

38<br />

40<br />

26<br />

28<br />

30<br />

32<br />

18<br />

20<br />

22<br />

24<br />

linke Hälfte<br />

10<br />

12<br />

14<br />

16<br />

2<br />

4<br />

6<br />

8<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

1<br />

9<br />

17<br />

25<br />

33<br />

41<br />

49<br />

57<br />

2<br />

10<br />

18<br />

26<br />

34<br />

42<br />

50<br />

58<br />

3<br />

11<br />

19<br />

27<br />

35<br />

43<br />

51<br />

59<br />

48<br />

48<br />

48<br />

4<br />

12<br />

20<br />

28<br />

36<br />

44<br />

52<br />

60<br />

57<br />

59<br />

61<br />

63<br />

4 Symmetrische Verfahren – DES<br />

.<br />

5<br />

13<br />

21<br />

29<br />

37<br />

45<br />

53<br />

61<br />

49<br />

51<br />

53<br />

55<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 />

k 1<br />

k 2<br />

k 16<br />

6<br />

14<br />

22<br />

30<br />

38<br />

46<br />

54<br />

62<br />

41<br />

43<br />

45<br />

47<br />

7<br />

15<br />

23<br />

31<br />

39<br />

47<br />

55<br />

63<br />

33<br />

35<br />

37<br />

39<br />

64<br />

Teilschlüsselgenerierung<br />

8<br />

16<br />

24<br />

32<br />

40<br />

48<br />

56<br />

64<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 />

48<br />

6 6 6<br />

S1 S2 …<br />

S8<br />

4 4<br />

4<br />

9<br />

11<br />

13<br />

15<br />

k i<br />

1<br />

3<br />

5<br />

7<br />

f(R i-1,k i) = P(S(E(R i-1) k i))<br />

124<br />

125<br />

126<br />

42


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<br />

4<br />

8<br />

12<br />

16<br />

20<br />

24<br />

28<br />

1<br />

5<br />

9<br />

13<br />

17<br />

21<br />

25<br />

29<br />

2<br />

6<br />

10<br />

14<br />

18<br />

22<br />

26<br />

30<br />

5 6 7 8<br />

3<br />

7<br />

11<br />

15<br />

19<br />

23<br />

27<br />

31<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 />

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 />

4<br />

8<br />

12<br />

16<br />

20<br />

24<br />

28<br />

32<br />

5<br />

15<br />

2<br />

6<br />

9<br />

11<br />

2<br />

4<br />

15<br />

5<br />

9<br />

13<br />

17<br />

21<br />

25<br />

29<br />

1<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 />

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 />

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 />

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 />

S1 S2 S3 S4 S5 S6 S7 S8 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

129<br />

12<br />

18<br />

27<br />

11<br />

11<br />

7<br />

14<br />

8<br />

28<br />

31<br />

3<br />

4<br />

1<br />

4<br />

2<br />

13<br />

. .<br />

17<br />

10<br />

9<br />

25<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 />

S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8<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 />

127<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 />

128<br />

43


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 />

1<br />

9<br />

17<br />

25<br />

33<br />

41<br />

49<br />

57<br />

2<br />

10<br />

18<br />

26<br />

34<br />

42<br />

50<br />

58<br />

3<br />

11<br />

19<br />

27<br />

35<br />

43<br />

51<br />

59<br />

k<br />

64<br />

PC-1<br />

56<br />

28 28<br />

C<br />

D<br />

Schlüsselpermutation PC-1 (Permuted Choice)<br />

externer Schlüssel k:<br />

57 49 41 33 25 17 9 1<br />

58 50 42 34 26 18 10 2<br />

59 51 43 35 27 19 11<br />

60 52 44 36<br />

C<br />

3<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

3<br />

2<br />

2<br />

Schlüsselauswahl: PC-2<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 />

4<br />

12<br />

20<br />

28<br />

36<br />

44<br />

52<br />

60<br />

63<br />

62<br />

61<br />

7<br />

2<br />

2<br />

1<br />

23<br />

27<br />

47<br />

44<br />

50<br />

5<br />

13<br />

21<br />

29<br />

37<br />

45<br />

53<br />

61<br />

55<br />

54<br />

53<br />

8<br />

2<br />

2<br />

5<br />

19<br />

20<br />

55<br />

49<br />

36<br />

6<br />

14<br />

22<br />

30<br />

38<br />

46<br />

54<br />

62<br />

47<br />

46<br />

45<br />

9<br />

1<br />

1<br />

3<br />

12<br />

13<br />

30<br />

39<br />

29<br />

7<br />

15<br />

23<br />

31<br />

39<br />

47<br />

55<br />

63<br />

39<br />

38<br />

37<br />

10<br />

2<br />

2<br />

28<br />

4<br />

2<br />

40<br />

56<br />

32<br />

D<br />

8<br />

16<br />

24<br />

32<br />

40<br />

48<br />

56<br />

64<br />

31<br />

30<br />

29<br />

28<br />

11<br />

2<br />

2<br />

23<br />

22<br />

21<br />

20<br />

12<br />

2<br />

2<br />

Paritätsbits<br />

15<br />

14<br />

13<br />

12<br />

13<br />

2<br />

2<br />

14<br />

2<br />

2<br />

7<br />

6<br />

5<br />

4<br />

15<br />

2<br />

2<br />

16<br />

1<br />

1<br />

130<br />

131<br />

132<br />

44


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 />

C<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 />

A<br />

5<br />

A<br />

5<br />

A<br />

5<br />

A<br />

5<br />

0<br />

0<br />

F<br />

F<br />

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 />

<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 />

C<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 />

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 />

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 />

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 />

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 />

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 />

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 />

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 />

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 />

0<br />

F<br />

F<br />

0<br />

133<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 />

134<br />

135<br />

45


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 />

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. 2 47 Klartextpaare bei ca. 2 37 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 />

136<br />

137<br />

138<br />

46


4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />

Notation (1)<br />

• Eingangs- <strong>und</strong> Ausgangspermutation<br />

haben keinen<br />

Einfluss – weggelassen<br />

• L m, R m: linke bzw. rechte<br />

Hälfte des Klartextes<br />

• L c, R c: linke bzw. rechte<br />

Hälfte des Schlüsseltextes<br />

• x i / y i: 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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Klartext m = (L m, R m)<br />

y 1<br />

y 2<br />

y 16<br />

f<br />

f<br />

. . .<br />

f<br />

x 1<br />

x 2<br />

x 16<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 />

S1Ei S2Ei S3Ei … S8Ei S1Ki S2Ki S3Ki … S8Ki S1 Ii<br />

S2 Ii<br />

6 6 6<br />

S1 S2 …<br />

S8<br />

4 4<br />

4<br />

P<br />

32<br />

k i<br />

S8 Ii<br />

S1 Oi S2 Oi S8 Oi<br />

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(x) P(x*) = P(x x*)<br />

• Verknüpfung von Zwischenwerten<br />

(Input <strong>und</strong> Output aufeinander<br />

folgender R<strong>und</strong>enfunktionen):<br />

(x y) (x* y*) =<br />

y1<br />

f<br />

(x x*) (y y*)<br />

y2<br />

f<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

y i<br />

48<br />

Klartext m = (L m, Rm)<br />

. . .<br />

x 1<br />

x 2<br />

k 1<br />

k 2<br />

k 16<br />

139<br />

140<br />

k 1<br />

k 2<br />

141<br />

47


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:<br />

Ausgabe:<br />

Si I<br />

Si O<br />

Si<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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

6<br />

4<br />

Si I*<br />

Si O*<br />

Si<br />

6<br />

4<br />

Si I‘ = Si I Si I*<br />

Si O‘ = Si O Si O*<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 />

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 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><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 />

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 />

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 />

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 />

5<br />

0<br />

2<br />

4<br />

6<br />

6<br />

0<br />

4<br />

4<br />

4<br />

7<br />

0<br />

4<br />

4<br />

2<br />

8<br />

0<br />

0<br />

0<br />

6<br />

9<br />

0<br />

10<br />

6<br />

4<br />

10<br />

6<br />

12<br />

9<br />

3<br />

Ausgabedifferenzen S1 O ’<br />

8<br />

0<br />

0<br />

A<br />

0<br />

12<br />

8<br />

4<br />

11<br />

12<br />

11<br />

7<br />

14<br />

B<br />

0<br />

4<br />

6<br />

0<br />

12<br />

5<br />

9<br />

3<br />

10<br />

C<br />

0<br />

10<br />

12<br />

2<br />

13<br />

9<br />

5<br />

10<br />

0<br />

3D 0 8 6 2 2 6 0 8 4 4 0 4 0 12 4 4<br />

3E 0 8 2 2 2 4 4 14 4 2 0 2 0 8 4 4<br />

3F 4 8 4 2 4 0 2 4 4 2 4 8 8 6 2 2<br />

S1 ‘<br />

I S1O ‘ , z.B.: 34x 1x, 34x 2x,34x 5x <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

4<br />

0<br />

0<br />

.<br />

2<br />

12<br />

0<br />

.<br />

4<br />

6<br />

14<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 />

14<br />

0<br />

3<br />

5<br />

6<br />

E<br />

0<br />

2<br />

4<br />

2<br />

0<br />

4<br />

14<br />

15<br />

7<br />

8<br />

0<br />

13<br />

F<br />

0<br />

4<br />

2<br />

0<br />

4<br />

6<br />

0<br />

142<br />

143<br />

144<br />

48


4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />

Analyse der R<strong>und</strong>enfunktion (1)<br />

f<br />

S1 I‘<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

E<br />

S1E S2E S3E … S8E S1K S2K S3K … S8K S2 I‘ S8 I‘<br />

S1 S2<br />

S8<br />

S1O, S1 *<br />

O S2O , S2 *<br />

O<br />

S1 O‘<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

gewählt: x, x* x‘ gesucht: k<br />

S1 E‘, S2 E‘, …, S8 E‘<br />

S2 O‘<br />

P<br />

…<br />

S8 O , S8 O *<br />

S8 O‘<br />

beobachtet: y, y* y‘<br />

4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><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: S1 E = 01 x, S1 E* = 35 x; S1 O‘ = 0D x<br />

4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />

Mögliche Inputpaare für S1 I‘ = 34 x<br />

Outputdifferenzen<br />

S1 O‘<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

145<br />

146<br />

147<br />

49


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‘ = 0Dx 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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

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 Si I’ liefert Outputdifferenz Si O’ mit<br />

P(Si, Si I’ Si O’ ) (Differenzenverteilungstabelle)<br />

• Analyse der Input- <strong>und</strong> 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 />

8<br />

<br />

i1<br />

P(<br />

Si,<br />

Si '<br />

Si ')<br />

• Verfolgen von Differenzen <strong>und</strong> Wahrscheinlichkeiten über<br />

mehrere R<strong>und</strong>en: Charakteristik<br />

I<br />

O<br />

148<br />

k 1<br />

k 2<br />

k 3<br />

149<br />

150<br />

50


4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><br />

n-R<strong>und</strong>en-Charakteristik (1)<br />

= ( m, , c)<br />

= ( 1, 2, …, n)<br />

mit: i = ( Ii, Oi)<br />

m= m’ = (L m ,R m )<br />

c = c’ = (L c ,R c )<br />

Ii = x i’, Oi = y i’<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 />

y1<br />

y2<br />

y16<br />

Klartext m<br />

f<br />

f<br />

. . .<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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 <strong>und</strong> c’ = c – für die ersten n R<strong>und</strong>en der Berechnung gilt:<br />

xi’ = Ii ⁄ yi’ = Oi • Übrige Paare: falsche Paare<br />

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 = 1<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

m = (L m, 00 00 00 00)<br />

y 1‘ = (00 00 00 00)<br />

f<br />

c = ( L m<br />

, 00 00 00 00)<br />

y15<br />

x 1‘ = (00 00 00 00)<br />

f<br />

k 1<br />

x 1<br />

x 2<br />

x 15<br />

x 16<br />

k 1<br />

k 2<br />

k 15<br />

k 16<br />

151<br />

152<br />

153<br />

51


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 />

S1 E:<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

32<br />

1 2 3 4<br />

1 2 3 4<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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

m = (L m, 60 00 00 00)<br />

14 y1‘ = (00 80 82 00)<br />

p<br />

64<br />

= P(E0 00 00 00)<br />

= f<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 />

5<br />

x 1‘ = (60 00 00 00)<br />

4 Symmetrische Verfahren – Differentielle <strong>Kryptoanalyse</strong><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 />

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 />

k 1<br />

154<br />

155<br />

156<br />

52


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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

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 />

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 />

k 1<br />

k 2<br />

k 1<br />

k 2<br />

k 3<br />

157<br />

158<br />

159<br />

53


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 />

• Aufwand: ca. 2 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 />

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 <br />

3 l31<br />

<br />

<br />

a4<br />

l41<br />

l12<br />

l22<br />

l32<br />

l42<br />

l13<br />

l23<br />

l33<br />

l43<br />

l14<br />

l24<br />

l34<br />

l44<br />

l15<br />

l25<br />

l35<br />

l45<br />

e1<br />

<br />

<br />

l16<br />

e2<br />

<br />

<br />

l <br />

26 e3<br />

<br />

<br />

l <br />

36 e4<br />

<br />

<br />

l <br />

46 <br />

e5<br />

<br />

<br />

e6<br />

<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 />

160<br />

161<br />

162<br />

54


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 />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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, v = 0000)<br />

• Affine Abbildungen<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

2<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 p A der Approximation der Funktion S: Anteil der Argumente,<br />

in denen die Funktionswerte übereinstimmen<br />

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 />

2<br />

163<br />

164<br />

165<br />

55


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 />

<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 />

9<br />

32<br />

32<br />

32<br />

32<br />

36<br />

30<br />

34<br />

A<br />

32<br />

32<br />

34<br />

30<br />

40<br />

30<br />

34<br />

B<br />

32<br />

32<br />

30<br />

38<br />

30<br />

28<br />

32<br />

C<br />

32<br />

32<br />

34<br />

30<br />

40<br />

32<br />

24<br />

D<br />

32<br />

32<br />

30<br />

30<br />

26<br />

34<br />

26<br />

E<br />

32<br />

32<br />

32<br />

36<br />

34<br />

42<br />

34<br />

F<br />

32<br />

32<br />

28<br />

28<br />

32<br />

12<br />

36<br />

30 42 32 32 34 34 36 32<br />

34 30 30 30 36 28 32 36<br />

34 30 38 30 32 32 28 32<br />

4 Symmetrische Verfahren – Lineare <strong>Kryptoanalyse</strong><br />

Bestimmung von Schlüsselbits<br />

m<br />

6<br />

6 S5I S5<br />

S5O 4<br />

c<br />

k<br />

mit p A = 0,81:<br />

(010000) T m (010000) T k<br />

= (1111) T c 1<br />

bzw.<br />

m [2] k [2] = c [1,2,3,4] 1<br />

Umstellen nach k [2] :<br />

k [2] = m [2] c [1,2,3,4] 1<br />

Analyse von genügend Klartext-<br />

Schlüsseltext-Paaren liefert k [2]<br />

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 />

24<br />

28<br />

20<br />

23<br />

24<br />

30<br />

1<br />

5<br />

9<br />

13<br />

17<br />

21<br />

25<br />

29<br />

21<br />

26<br />

14<br />

6<br />

2<br />

6<br />

10<br />

14<br />

18<br />

22<br />

26<br />

30<br />

29<br />

5<br />

32<br />

22<br />

3<br />

7<br />

11<br />

15<br />

19<br />

23<br />

27<br />

31<br />

12<br />

18<br />

27<br />

11<br />

4<br />

8<br />

12<br />

16<br />

20<br />

24<br />

28<br />

32<br />

28<br />

31<br />

3<br />

4<br />

5<br />

9<br />

13<br />

17<br />

21<br />

25<br />

29<br />

1<br />

17<br />

10<br />

9<br />

25<br />

166<br />

167<br />

168<br />

56


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 />

4 Symmetrische Verfahren – AES<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 />

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)<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 />

169<br />

k 1<br />

k 2<br />

k 3<br />

170<br />

171<br />

57


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 />

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 n b<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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

172<br />

173<br />

174<br />

58


4 Symmetrische Verfahren – AES<br />

Struktur des AES<br />

m i<br />

Iterationsr<strong>und</strong>e 1<br />

Iterationsr<strong>und</strong>e 2<br />

.<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 />

Struktur der Iterationsr<strong>und</strong>en<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

s i<br />

s i,a<br />

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 />

n b<br />

R<strong>und</strong>e i, i = 1, 2, …, r-1<br />

4 Symmetrische Verfahren – AES<br />

k i<br />

nb<br />

nb<br />

nb<br />

nb<br />

.<br />

k 0<br />

k 1<br />

k 2<br />

k r<br />

k n k<br />

Teilschlüsselgenerierung<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 />

a<br />

<br />

7<br />

i<br />

aix<br />

i0<br />

• Darstellung als Hexadezimalzahl<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

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 />

k0,0 k0,1 k0,2 k0,3 k0,4 k0,5 k0,6 k0,7 k1,0 k1,1 k1,2 k1,3 k1,4 k1,5 k1,6 k1,7 k2,0 k2,1 k2,2 k2,3 k2,4 k2,5 k2,6 k2,7 k3,0 k3,1 k3,2 k3,3 k3,4 k3,5 k3,6 k3,7 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 />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

<br />

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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

GF(2 8 )<br />

• Addition :<br />

c(x) = a(x) b(x) =<br />

(a 3 b 3)x 3 + (a 2 b 2)x 2 + (a 1 b 1)x + (a 0 b 0)<br />

• Multiplikation :<br />

c(x) = a(x) b(x) = a(x) · b(x) mod (x4 +1)<br />

<br />

<br />

178<br />

179<br />

180<br />

60


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 />

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) c5 = (a3 b2) (a2 b3) c6 = (a3 b3) mit xi mod (x4 +1) = xi mod 4 : d(x) = d3x3 + d2x2 <br />

<br />

<br />

<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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

<br />

<br />

Schritt 1: SubByte<br />

• Alle Bytes einer Matrix werden unabhängig voneinander<br />

substituiert<br />

• Nichtlinearität<br />

s i,a =<br />

a0,0 a0,1 a0,2 a0,3 a1,0 a 1,1 a1,2 a1,3 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

<br />

b i,j := S 8(a i,j)<br />

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 />

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 />

<br />

181<br />

b0,0 b0,1 b0,2 b0,3 b1,0 b2,0 b 1,1 1,1 b1,2 b2,1 b2,2 b1,3 b2,3 = si,b b3,0 b3,1 b3,2 b3,3 a3a2a1a0 4 5 6 7 8 9 A B C D E F<br />

F2 6B 6F C5 30 01 67 2B FE D7 AB 76<br />

FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0<br />

36 3F F7 CC 34 A5 E5 F1 71 D8 31 15<br />

18 96 05 9A 07 12 80 E2 EB 27 B2 75<br />

1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84<br />

20 FC B1 5B 6A CB BE 39 4A 4C 58 CF<br />

43 4D 33 85 45 F9 02 7F 50 3C 9F A8<br />

92 9D 38 F5 BC B6 DA 21 10 FF F3 D2<br />

1C<br />

48<br />

69<br />

BF<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 />

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 />

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 />

182<br />

183<br />

61


4 Symmetrische Verfahren – AES<br />

Schritt 2: ShiftRow<br />

• Zyklische Verschiebung der Zeilen nach links<br />

• Diffusion<br />

s i,b =<br />

b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

4 Symmetrische Verfahren – AES<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 />

c0,0 c0,1 c0,2 c0,3 c1,0 c2,0 c1,1 c2,1 c1,2 c2,2 c1,3 c2,3 = si,c c3,0 c3,1 c3,2 c3,3 Schritt 3: MixColumn<br />

• Operiert jeweils auf Spalten der Matrix (32-Bit Substitution)<br />

• Diffusion<br />

s i,c =<br />

c0,0 c 0,1<br />

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<br />

c3,2 c3,3 <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

d i := a(x) c i mod (x 4 + 1)<br />

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 />

c0,i c1,i c2,i c3,i 184<br />

d0,0 d 0,1<br />

d0,2 d0,3 d1,0 d2,0 d 1,1<br />

d 2,1 2,1<br />

d1,2 d2,2 d1,3 d2,3 = si,d d3,0 d 3,1<br />

d3,2 d3,3 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 />

185<br />

186<br />

62


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 />

<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 />

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 b(r+1):<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

Schlüssel- Blocklänge des Klartextes n b<br />

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 />

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 />

b b b<br />

k 1<br />

187<br />

188<br />

189<br />

63


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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><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 S 8<br />

SubWord([a 0, a 1, a 2, a 3]) = [S 8(a 0), S 8(a 1), S 8(a 2), S 8(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 />

4 Symmetrische Verfahren – AES<br />

Entschlüsselung<br />

• Umgekehrte Reihenfolge, inverse Funktionen<br />

ShiftRow<br />

si -1<br />

sr,c sr,b SubByte-1 sr,a sr 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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

k r<br />

s i+1<br />

s i,d<br />

MixColumn -1<br />

s i,c<br />

ShiftRow-1 si,b SubBytes -1<br />

si,a si k i<br />

190<br />

191<br />

192<br />

64


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(s i)) = ShiftRow(SubByte(s i))<br />

<strong>und</strong><br />

SubByte -1 (ShiftRow -1 (s i)) = ShiftRow -1 (SubByte -1 (s i))<br />

• MixColumn(s i k i) = MixColumn(s i) MixColumn(k i)<br />

<strong>und</strong><br />

MixColumn -1 (s i k i) = MixColumn -1 (s i) MixColumn -1 (k i)<br />

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 />

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 />

k i‘<br />

s 1<br />

s 1,a<br />

SubByte -1<br />

s 1,b<br />

ShiftRow -1<br />

s 1,c<br />

k 0<br />

193<br />

194<br />

195<br />

65


4 Symmetrische Verfahren – AES<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 />

n k = 128: 8000 Gleichungen mit 1600 Variablen)<br />

• Weitere Angriffe wie z.B. Collision 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 />

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 />

196<br />

197<br />

198<br />

66


4 Symmetrische Verfahren – Betriebsarten<br />

• Betrachtung von Fehlerauswirkungen / Manipulationen<br />

– Zeitpunkt des Fehlers / der Manipulation<br />

• während der Übertragung (Speicherung)<br />

• während der Ver- bzw. Entschlüsselung (transient)<br />

Sender Empfänger<br />

enc<br />

dec<br />

– Art des Fehlers / der Manipulation<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 Entschlüsselung<br />

mi l<br />

l ci enc<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) <strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

k<br />

4 Symmetrische Verfahren – Betriebsarten<br />

l l<br />

dec<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 />

c i<br />

k<br />

m i<br />

199<br />

200<br />

201<br />

67


4 Symmetrische Verfahren – Betriebsarten<br />

Cipher Block Chaining (CBC) – Verschlüsselung<br />

m i<br />

l<br />

c i-1 IV<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

k<br />

enc<br />

c i<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<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 />

dec<br />

1 l<br />

…<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 />

4 Symmetrische Verfahren – Betriebsarten<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

l<br />

l<br />

c i-1 IV<br />

m i<br />

202<br />

Speicher für<br />

Schlüsseltextblock<br />

c i-1 bzw. IV<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 />

203<br />

204<br />

68


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 />

– Fehler während der Verschlüsselung<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 />

1<br />

…<br />

l<br />

IV = 0…0<br />

205<br />

letzter<br />

Schlüsseltextblock<br />

c n<br />

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 />

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<br />

… …<br />

enc<br />

l 1<br />

…<br />

r<br />

…<br />

1<br />

Schieberegister A<br />

a i Inhalt zum Zeitpunkt i<br />

a 1 = IV<br />

k<br />

206<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 />

207<br />

69


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<br />

… …<br />

…<br />

r<br />

enc<br />

l 1<br />

…<br />

1<br />

Schieberegister A<br />

a i Inhalt zum Zeitpunkt i<br />

a 1 = IV<br />

k<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 auf einzelne Schlüsseltextblöcke möglich<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 />

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 />

208<br />

209<br />

210<br />

70


4 Symmetrische Verfahren – Betriebsarten<br />

Output Feedback (OFB) – Ver-/Entschlüsselung<br />

mi ci l<br />

c i = m i b i = m i enc(k, a i)<br />

m i = c i b i = c 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 />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

…<br />

1<br />

Eingabeblock A<br />

a i Inhalt zum Zeitpunkt i<br />

a 1 = IV<br />

k<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 IV muss Sender <strong>und</strong> Empfänger<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 />

4 Symmetrische Verfahren – Betriebsarten<br />

Counter Mode (CTR) – Ver-/Entschlüsselung<br />

mi ci c i = m i b i = m i enc(k, T i)<br />

m i = c i b i = c i enc(k, T i)<br />

<strong>Kryptographie</strong> <strong>und</strong> <strong>Kryptoanalyse</strong><br />

l<br />

…<br />

enc<br />

l 1<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 />

ci mi 211<br />

212<br />

Ausgabeblock B<br />

b i Ausgabe zum Zeitpunkt i<br />

213<br />

71


4 Symmetrische Verfahren – Betriebsarten<br />

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 />

• Vorteil: Effizienz<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 />

4 Symmetrische Verfahren – Betriebsarten<br />

k<br />

enc<br />

ggf. aufgefüllt<br />

c n[1:Tlen]<br />

214<br />

k1 , falls m* n<br />

kompletter<br />

Block /<br />

k2 sonst<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 (IV = 0)<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 />

215<br />

216<br />

72


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 />

• Verschlüsselung:<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 abgeleitet<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 />

73

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!