Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R...

308
Kryptographie und Kryptoanalyse Fakultät Informatik Institut Systemarchitektur Professur Datenschutz und Datensicherheit Dr.-Ing. Elke Franz [email protected] SS 2015

Transcript of Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R...

Page 1: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse

Fakultät Informatik Institut Systemarchitektur Professur Datenschutz und Datensicherheit

Dr.-Ing. Elke [email protected]

SS 2015

Page 2: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Überblick über die Vorlesung

Organisatorisches

• Vorlesung: Mittwoch, 3. DS, HSZ/103 • Übung: Donnerstag, 1. DS, APB/E010 (ab 7.5.)

bzw. Freitag, 1. DS, APB/E009 (ab 8.5.)

• Ausfälle: 6.5., 14.5. und 15.5.2015

• Art der Prüfung: mündliche Prüfung / Modulprüfung /Schein

• Lehrmaterialien: Folienskript, Übungsaufgaben Literaturhinweise

• Webseite: dud.inf.tu-dresden.de (Studium Lehrveranstaltungen Sommersemester)

Kryptographie und Kryptoanalyse 2

Page 3: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Überblick über die Vorlesung

Ziele dieser Vorlesung

• Vermittlung grundlegender Aspekte der Kryptographie– Was kann man mit Kryptographie erreichen? – Wie kann man es prinzipiell erreichen? – Wie kann man das Erreichte beurteilen?

• Vermittlung vertiefter Kenntnisse über kryptographische Verfahren und deren Sicherheit– Ausgewählte kryptographische Verfahren– Ansätze zur Analyse dieser Verfahren– Anforderungen an die sichere Verwendung unter Beachtung

möglicher Angriffe

Kryptographie und Kryptoanalyse 3

Page 4: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 4

Überblick über die Vorlesung

1. Einführung– Begriffe– Bedrohungen – Schutzziele

2. Grundlagen– Mathematische Beschreibung– Typen kryptographischer Systeme– Überblick über Angriffe– Sicherheit kryptographischer Systeme

3. Klassische Verfahren– Transpositionen– MM-Substitutionen– PM-Substitutionen

Page 5: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 5

Überblick über die Vorlesung

3. Symmetrische Verfahren– Blockchiffren– Feistel-Chiffre– Kryptographische Güte– DES / 3-DES– AES– Betriebsarten

4. Asymmetrische Verfahren– Grundlagen– Diffie-Hellman-Schlüsselaustausch– ElGamal– RSA– Kryptosysteme auf Basis elliptischer Kurven

Page 6: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 6

1 Einführung – Begriffe

Kryptologie

Kryptographie Kryptoanalyse

Kryptographie (griech. „kryptos“+ „graphein“)Wissenschaft von den Methoden der Ver- undEntschlüsselung von Informationen.

Kryptoanalyse (griech. „kryptos“+ „analyein“)Wissenschaft vom Entschlüsseln von Nachrichten ohne Kenntnis dazu notwendiger geheimer Informationen.

Page 7: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

1 Einführung – Begriffe

Einordnung von Kryptographie als Schutzmechanismus• IT-Sicherheit

– IT-System soll sich trotz unerwünschter Ereignisse so verhalten wie erwartet

Schutz vor unerwünschten Ereignissen

Unerwünschte Ereignisse

Unbeabsichtigte Fehler und Ereignisse

Beabsichtigte Angriffe

Page 8: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 8

1 Einführung – Bedrohungen

Mögliche Bedrohungen durch Angriffe

• Unbefugte Kenntnisnahme der Informationen• Verfälschen von Informationen (bei Nachrichten auch von

deren Absendern)• Stören der Verfügbarkeit

Page 9: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 9

1 Einführung – Schutzziele

Charakteristik der Bedrohungen

• Unbefugter Informationsgewinn Verlust der Vertraulichkeit

• Unbefugte Modifikation der Information Verlust der Integrität

• Beeinträchtigung der Funktionalität Verlust der Verfügbarkeit

Nicht erkennbar, aber verhinderbar

Nicht verhinderbar, aber erkennbar

Page 10: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 10

1 Einführung – Schutzziele

Unterteilung der Schutzziele

Inhalte Umstände

Unerwünschtes verhindern

VertraulichkeitVerdecktheit

AnonymitätUnbeobachtbarkeit

Erwünschtes leisten

Integrität Zurechenbarkeit

VerfügbarkeitErreichbarkeit Verbindlichkeit

Page 11: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 11

1 Einführung – Schutzziele

Mittels Kryptographie erreichbare Schutzziele• Vertraulichkeit

Informationen werden nur Berechtigten bekannt.• Integrität

Informationen können nicht unerkannt modifiziert werden.• Zurechenbarkeit

Dem Sender einer Nachricht kann das Senden (auch gegenüber Dritten) nachgewiesen werden.(Nachweis des Empfangs sowie des Zeitpunktes des Sendens/Empfangens erfordert weitere Maßnahmen.)

Page 12: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 12

1 Einführung - Schutzziele

Einordnung von Kryptographie in das Modell der gestörten Informationsübertragung

Quelle Quellen-kodierung

Kanal

Senke

Störung

Kanal-kodierung

Quellen-dekodierung

Kanal-dekodierung

Kry

ptog

raph

ie

Page 13: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 13

Überblick über die Vorlesung

1. Einführung2. Grundlagen

– Mathematische Beschreibung– Typen kryptographischer Systeme– Überblick über Angriffe– Sicherheit kryptographischer Systeme

3. Klassische Verfahren4. Symmetrische Verfahren5. Asymmetrische Verfahren

Page 14: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 14

c = enc(ke, m) Hallo, ...Hallo, ...

Nachricht

m M

Nachricht

Vertrauensbereich des Senders (Alice)

Vertrauensbereich des Empfängers (Bob)

2 Grundlagen – Mathematische Beschreibung

Schlüssel

ke K

g9b02...

Schlüsseltext

c C

Schlüssel

kd K

m = dec(kd, c)

Verschlüsse-lungsfkt.

enc ENC

Entschlüsse-lungsfkt.

dec DEC

Unsicherer Kanal:

Angriffsbereich

Page 15: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 15

2 Grundlagen – Mathematische Beschreibung

Kryptosystem (M, C, K, Enc, Dec)• Nachrichtenraum M:

endliche Menge möglicher Nachrichten (Klartexte; messages)

• Schlüsseltextraum C: endliche Menge möglicher Schlüsseltexte (Kryptogramme, Chiffrate, Chiffretexte; ciphertexts)

• Schlüsselraum K: endliche Menge möglicher Schlüssel (keys)

• Funktionsräume Enc (Verschlüsselung, encryption) und Dec (Entschlüsselung, decryption)

Page 16: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 16

2 Grundlagen – Mathematische Beschreibung

Alphabet• endliche, nichtleere, totalgeordnete Menge

A = {a0, a1, a2, …, al-1}Alphabet mit l Elementenai: Zeichen bzw. Buchstaben

m = (m0m1m2 … mn-1) mit mi A, m An

Wort der Länge n über dem Alphabet A

• Nachrichten, Schlüsseltexte, Schlüssel: endliche Folgen bzw. Worte über den zugrunde liegenden Alphabeten AM, AC, AK

Page 17: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 17

2 Grundlagen – Mathematische Beschreibung

Funktion• allgemein f: X Y; f(x) = y

X: Definitionsbereich, Y: Wertebereich

• Eigenschaften– injektiv: " x, x’ X. f(x) = f(x’) x = x’– surjektiv: " y Y .$ x X f(x) = y– bijektiv: injektiv und surjektiv

• Umkehrfunktion bzw. inverse Funktionf bijektiv inverse Funktion g = f -1: " y Y. g(y) = x mit x X und f(x) = y

Page 18: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 18

2 Grundlagen – Mathematische Beschreibung

Ver- und Entschlüsselungsfunktionen• n, l, o N; AM, AC, AK Alphabete• m M = AM Nachricht, c C = AC Schlüsseltext,

k K = AK Schlüssel

• Verschlüsselung: c = enc(ke,m) bzw. c = enck (m)enc Enc: M μ K C

• Entschlüsselung: m = dec(kd,c) bzw. m = deck (c)dec Dec: C μ KM

Verhältnis l/n: Expansionsfaktorn = l: Kryptofunktion heißt längentreu

e

d

n l

o

Page 19: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 19

2 Grundlagen – Mathematische Beschreibung

Kerckhoffs-PrinzipDie Sicherheit eines Verfahrens darf nicht von der Geheimhaltung des Verfahrens abhängen, sondern nur von der Geheimhaltung des Schlüssels.

[Auguste Kerkhoffs: La Cryptographie militaire. Journal des Sciences Militaires, Januar 1883.]

• Keine „Security by Obscurity“• Annahme: Angreifer kennt das Verfahren und die öffentlichen

Parameter• Sicherheit des Verfahrens begrenzt durch

– Sicherheit der Schlüsselgenerierung und – Sicherheit des Schlüsselaustauschs

Page 20: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 20

2 Grundlagen – Einteilung kryptographischer Systeme

Kriterien für eine Einteilung• Zweck

– KonzelationssystemeSysteme zum Schutz der Vertraulichkeit der Daten

– AuthentikationssystemeSysteme zum Schutz der Integrität der Daten

- digitale Signatursysteme (spezielle Authentikationssysteme) Systeme zur Realisierung von Zurechenbarkeit von Daten

• Schlüsselverteilung– Symmetrische Verfahren: ke = kd– Asymmetrische Verfahren: ke kd

Notation: kA,B: symmetrischer Schlüssel für Kommunikation

zwischen Teilnehmern A und Bke,A/kd,A: Schlüssel zur Ver-/Entschlüsselung des Teilnehmers

A (asymmetrisches System)

Page 21: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 21

2 Grundlagen – Typen kryptographischer Systeme

geheimer Schlüssel

kA,B

Schlüsseltextc

c ú enc(kA,B,m)

geheimer Schlüssel

kA,B

Symmetrisches Konzelationssystem

Schlüssel-generierung

kA,B úkeygen(r)

Zufallszahl r

Angriffsbereich

Entschlüs-selung

dec

Verschlüs-selung

enc

VertrauensbereichSicherer Kanal für Schlüsselaustausch

Nachricht

mNachricht

m ú dec(kA,B, c)

öffentlich bekannter Algorithmus

Alice Bob

Page 22: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 22

2 Grundlagen – Typen kryptographischer Systeme

Symmetrisches Konzelationssystem

Alice Bob

Page 23: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 23

2 Grundlagen – Typen kryptographischer Systeme

• Schlüsselaustausch– Notwendig: sicherer Kanal für Schlüsselaustausch – Offenes System: Sender und Empfänger können sich nicht

vorab treffen

Lösung: Schlüsselverteilzentrale X• Jeder Teilnehmer (z.B. A) meldet sich an und tauscht einen

geheimen Schlüssel kA,X mit X aus• Kommunikation mit Teilnehmer B: Anfrage an X nach

geheimem Schlüssel kA,B• X generiert Schlüssel kA,B und sendet ihn an A und B

• Problem: X kann alle Nachrichten lesen• Verbesserung: verschiedene Schlüsselverteilzentralen

verwenden und geheime Schlüssel lokal berechnen

Page 24: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 24

auth(kA,B,m) =

MAC

Alice

2 Grundlagen – Typen kryptographischer Systeme

Nachricht, MAC (message authenti-

cation code)m, MAC

MAC ú auth(kA,B,m)

Symmetrisches Authentikationssystem

kA,B úkeygen(r)

Angriffsbereich

MAC testenMAC

berechnen auth

Bob

Zufallszahl r

Schlüssel-generierung

geheimer Schlüssel

kA,B

geheimer Schlüssel

kA,B

Nachricht

m

VertrauensbereichSicherer Kanal für Schlüsselaustausch

öffentlich bekannter Algorithmus

?

Page 25: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 25

2 Grundlagen – Typen kryptographischer Systeme

Schlüsseltextc

c ú enc(ke,B,m, r’)

Asymmetrisches Konzelationssystem

(ke,B, kd,B)úkeygen(r)

Angriffsbereich

Nachricht

m ú dec(kd,B, c)

Nachr. m

Zufallsz. r’

öffentlicher Schlüssel

ke,B

privater Schlüssel

kd,B

Zufallszahl r

Entschlüs-selung

dec

Verschlüs-selung

enc

Schlüssel-generierung

Vertrauensbereich öffentlich bekannter Algorithmus

Alice Bob

Zufallszahl r‘: probabilistische bzw. indeterministische Verschlüsselung

Page 26: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 26

2 Grundlagen – Typen kryptographischer Systeme

• Schlüsselaustausch– Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen

Abhören) sicherer Kanal für Schlüsselaustausch notwendig– Verteilung der öffentlichen Schlüssel: veröffentlichen

Andere Möglichkeit: Öffentliches Schlüsselregister R• Jeder Teilnehmer (z.B. A) trägt seinen öffentlichen Schlüsel

ein (ke,A)• Teilnehmer B will mit A kommunizieren: bittet R um

öffentlichen Schlüssel ke,A von A• B erhält ke,A, beglaubigt durch die Signatur von R;

R beglaubigt Zusammenhang zwischen A und ke,A

• Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff• Verbesserung: verschiedene Register verwenden

Page 27: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 27

test(kt,B ,m, s)

{true, false}

2 Grundlagen – Typen kryptographischer Systeme

Nachricht, Signaturm, s

s := sign(ks,B,m)

Asymmetrisches Authentikations-system (Digitales Signatursystem)

(ks,B, kt,B) :=keygen(r)

Angriffsbereich

Signierensign

Testen test

Zufallszahl r

Schlüssel-generierung

öffentlicher Schlüssel

kt,B

privater Schlüssel

ks,B

Nachr. m

Vertrauensbereich öffentlich bekannter Algorithmus

Alice Bob

Page 28: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Typen kryptographischer Systeme

Kryptographie und Kryptoanalyse 28

SymmetrischeAuthentikationssysteme(MAC)

Asymmetrische Authentikationssysteme(Digitale Signatursysteme)

Schlüssel

Geheimer Schlüssel, einem Paar von Kommunikationspartner zugeordnet

Schlüsselpaar: privaterSignaturschlüssel undöffentlicher Testschlüssel

Prüfung

MAC für empfangene Daten berechnen und mit empfangenem MAC vergleichen

Testalgorithmus erforderlich

Schutzziele IntegritätIntegrität

Zurechenbarkeit

Page 29: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 29

2 Grundlagen – Typen kryptographischer Systeme

• Schlüsselaustausch– Jeder Teilnehmer generiert eigenes Schlüsselpaar – kein (gegen

Abhören) sicherer Kanal für Schlüsselaustausch notwendig

– Notwendig für Zurechenbarkeit: Bestätigung der Zuordnung des öffentlichen Testschlüssels zum jeweiligen Teilnehmer mittels Schlüsselzertifikat, ausgestellt von Zertifizierungsinstanz (certification authority CA)

– Verbreitetes Format für Schlüsselzertifikat: X.509• Erstmals 1988 veröffentlicht, aktuell in Version 3 (X.509v3)• Standard der ITU-T für Public-Key Infrastructure:

http://www.itu.int/rec/T-REC-X.509• RFC 5280• Sperrlisten für Zertifikate

Page 30: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Typen kryptographischer Systeme

• Aufbau eines X.509-Zertifikats [RFC 5280]

Kryptographie und Kryptoanalyse 30

• TBSCertificate– Version– Seriennummer– Signaturalgorithmus– Aussteller Name– Gültigkeit– Inhaber Name– Inhaber Public Key Info– Aussteller ID– Inhaber ID– Erweiterungen

• Signaturalgorithmus• Signatur

Nur für v2 und v3

Nur für v3, Beispiel: Key Identifier von CA

ID und (optional) Parameter des Signaturalgorithmus, der von CA für Signatur des TBSCertificats benutzt wird

Public Key und Algorithmus, für den er benutzt wird (ID und (optional) Parameter)

Für TBSCertificate

Page 31: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 31

2 Grundlagen – Typen kryptographischer Systeme

Symmetrische Verfahren

Asymmetrische Verfahren

Sicherer Kanal für Schlüsselaustausch erforderlich?

JaNein (allerdings: Zuordnung der öffentlichen Schlüssel)

Performance In der Regel sehr gut Weniger gut

Umsetzbare Schutzziele

Konzelation Vertraulichkeit

Symmetrische Authentikation (MAC) Integrität

Konzelation Vertraulichkeit

Digitale Signatursysteme Integrität Zurechenbarkeit

Page 32: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 32

2 Grundlagen – Typen kryptographischer Systeme

privater Schlüssel

kd,B

Hybrides Konzelationssystem

öffentlicher Schlüssel

ke,B

geheimer Schlüssel(session key) kA,B

enc

enc

dec

decNachricht

mNachricht

m = dec(kA,B, c2)c2

c1

c1, c2c1 = enc(ke,B, kA,B), c2 = enc(kA,B,m)

kA,B = dec(kd,B, c1)

Page 33: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 33

2 Grundlagen – Überblick über Angriffe

Generelle Aspekte der Kryptoanalyse• Ziel und Erfolg des Angriffs• Klassifizierung von Angriffen

• Nicht Gegenstand der Kryptoanalyse:– Implementierung und Einsatz des Verfahrens– Organisatorische Sicherheit

… aber natürlich relevant für die Sicherheit

• Angriffserfolg ganz allgemein– Konzelationssysteme: Vertraulichkeit verletzt

(Inhalt/Informationen über verschlüsselte Nachricht ermittelt)– Authentikationssysteme: Nachricht unentdeckt modifiziert

(gültigen MAC bzw. Signatur für modifizierte/selbst gewählte Nachricht generiert)

Page 34: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 34

2 Grundlagen – Überblick über Angriffe

Ziel und Erfolg des Angriffs• Finden des geheimen Schlüssels (vollständiges Brechen,

total break)• Finden eines zum Schlüssel äquivalenten Verfahrens

(universelles Brechen, universal break)• Brechen nur für manche Nachrichten (nachrichtenbezogenes

Brechen):– für eine selbstgewählte Nachricht (selective break)– für irgendeine Nachricht (existential break)

• Unterscheidung für universelles und nachrichtenbezogenes Brechen von Konzelationssystemen:– Komplette Entschlüsselung– Partielle Entschlüsselung

Page 35: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 35

2 Grundlagen – Überblick über Angriffe

Generell: Kein Schutz vor einem allmächtigen Angreifer!

Ein allmächtiger Angreifer …• kann alle ihn interessierenden Daten erfassen• kann Daten unbemerkt ändern• kann die Verfügbarkeit des Systems durch physische Zerstörung

beeinträchtigen

AngreifermodellAngabe der maximal berücksichtigten Stärke eines Angreifers, d.h., Stärke des Angreifers, gegen die ein bestimmter Schutzmechanismus gerade noch sicher ist

Page 36: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 36

2 Grundlagen – Überblick über Angriffe

Inhalt des Angreifermodells• Rollen des Angreifers

(Nutzer, Außenstehender, …)

• Verbreitung des Angreifers (kontrollierte Subsysteme, Leitungen, …)

• Verhalten des Angreifers (passiv/aktiv, beobachtend/verändernd)

• Rechenkapazität (komplexitätstheoretisch (un)beschränkt)

• Verfügbare Mittel (Zeit, Geld)

Page 37: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Überblick über Angriffe

Annahmen über Wissen und Möglichkeiten des Angreifers

• Als bekannt vorausgesetzt– System (Algorithmen, Protokolle)– Öffentliche Schlüssel– Beobachtung (unsicherer Kanal)

• Unbekannt (Vertrauensbereich)– Geheime Schlüssel

• Aktiver Angreifer: bringt Inhaber der geheimen Schlüssel dazu, die entsprechenden Operationen für selbst gewählte Daten auszuführen

Kryptographie und Kryptoanalyse 37

Angreifer, der nur dieses Wissen

ausnutzt:passiver Angreifer

Page 38: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 38

2 Grundlagen – Überblick über Angriffe

Klassifizierung von Angriffen (Konzelationssysteme)• Passive Angriffe

– Reiner Schlüsseltext-Angriff (ciphertext-only attack)

– Klartext-Schlüsseltext-Angriff (known-plaintext attack)

• Aktive Angriffe– Gewählter Klartext-Schlüsseltext-Angriff

(chosen-plaintext attack CPA; „Verschlüsselungsorakel“)– Gewählter Schlüsseltext-Klartext-Angriff

(chosen-ciphertext attack; „Entschlüsselungsorakel“) CCA1 (auch als „lunchtime“, „lunch-break“ oder „midnight

attack“ bezeichnet)

• Weiteres Kriterium: Adaptivität CCA2

mke

ckd

menc dec

Page 39: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Überblick über Angriffe

Übersicht über die Angriffstypen

Kryptographie und Kryptoanalyse 39

Konzelationssysteme Authentikationssysteme

symmetrisch asymmetrisch symmetrisch asymmetrisch

Angreifer kennt System und ... c c; ke m, MAC m, s; kt

Passive Angriffe

Key only attack Key only attack

Ciphertext only attack

Known plaintext attack Known message attack

Aktive Angriffe

Chosen plaintext attack Chosen message attack

Chosen ciphertext attack

Page 40: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 40

2 Grundlagen – Sicherheit kryptographischer Systeme

Klassifizierung von Kryptosystemen nach ihrer Sicherheit• informationstheoretisch sicher

Auch einem unbeschränkten Angreifer gelingt es nicht, das System zu brechen. („unconditional security“, „perfect secrecy“)

• beste erreichbare Sicherheit

• Verschiedene Begriffe zur Bewertung der Sicherheit der übrigen Systeme

• Annahmen über Möglichkeiten des Angreifers, Betrachtung der Sicherheit unter bestimmten Angriffen

Page 41: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 41

2 Grundlagen – Sicherheit kryptographischer Systeme

Informationstheoretische (perfekte) Sicherheit[Claude Shannon: Communication Theory of Secrecy Systems. Bell Systems Technical Journal, 28(1949), 656-715.]

• Informelle Beschreibung (bzgl. Konzelationssystem):

Selbst ein unbeschränkter Angreifer gewinnt aus seinen Beobachtungen keinerlei zusätzliche Informationen über Klartext oder Schlüssel.

• „unbeschränkt“: beliebiger Rechen- und Zeitaufwand • „zusätzliche Informationen“: nicht besser als bloßes Raten

Page 42: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 42

2 Grundlagen – Sicherheit kryptographischer Systeme

Definition der informationstheoretischen Sicherheit• a priori Wissen p(m):

Wissen des Angreifers über mögliche Nachrichten vor einer Beobachtung (als bekannt vorausgesetzt)

• a posteriori Wissen p(m|c): Wissen des Angreifers über mögliche Nachrichten nach der Beobachtung des gesendeten Schlüsseltexts

Ein System heißt informationstheoretisch sicher, wenn für alle Nachrichten und Schlüsseltexte gilt, dass die a posterioriWahrscheinlichkeiten p(m|c) der möglichen Nachrichten nach Beobachtung eines gesendeten Geheimtextes gleich der a priori Wahrscheinlichkeiten p(m) dieser Nachrichten sind:

" m M " c C: p(m|c) = p(m).

Page 43: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 43

2 Grundlagen – Sicherheit kryptographischer Systeme

• Berechnung der a posterioi Wahrscheinlichkeiten p(m|c) nach dem Theorem von Bayes:

Notwendige und hinreichende Bedingung für informationstheoretische Sicherheit:

" m M " c C: p(c|m) = p(c).

Nachrichten und Schlüsseltexte müssen stochastisch unabhängig voneinander sein.

cp

mcpmpcmp ||

Page 44: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 44

2 Grundlagen – Sicherheit kryptographischer Systeme

• Berechnung der Wahrscheinlichkeiten p(cj|mi), p(cj)

ij mkcKk

ij kpmcp,enc:

|

1

0|

n

iijij mcpmpcp

p(cj|mi)

m0

m1

mn-1

c0

c1

cn-1

mi cj

.

.

....

.

.

....

p(c0|m0)Nachrichten Schlüsseltexte Wahrscheinlichkeit p(cj|mi),

Schlüsseltext cj bei Verschlüsselung der Nachricht mi zu erhalten:

Wahrscheinlichkeit des Schlüsseltextes cj:

Page 45: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 45

2 Grundlagen – Sicherheit kryptographischer Systeme

Bedingungen für informationstheoretische Sicherheit Beispiel 1:

nicht informationstheoretisch sicher Anforderungen an die Anzahl der Schlüssel notwendig!

Nachrichten Schlüsseltexte Verschlüsselung

00

01

10

11

00

01

10

11

enc(00, m)enc(01, m)

Page 46: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 46

2 Grundlagen – Sicherheit kryptographischer Systeme

(1) Anzahl der Schlüssel• Verschlüsselung injektiv: enc(k, m1) = enc(k, m2) m1 = m2

– Verschlüsselung n verschiedener Nachrichten m0, m1, …, mn-1mit einem Schlüssel k liefert n verschiedene Schlüsseltexte c0, c1, …, cn-1

– Bedingung gilt für jeden der möglichen Schlüssel |C| ¥ |M|

• Sicherheit des Systems:– Jeder Schlüsseltext muss das Ergebnis der Verschlüsselung

jeder möglichen Nachricht sein können– Für eine Nachricht m und n verschiedene Schlüsseltexte muss es

n verschiedene Schlüssel k0, k1, …, kn-1 geben |K| ¥ |C|

|K| ¥ |C| ¥ |M|

Page 47: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 47

2 Grundlagen – Sicherheit kryptographischer Systeme

Beispiel 2:

Nachrichten Schlüsseltexte Verschlüsselung

m0 = 00

m1 = 01

m2 = 10

m3 = 11

c0 = 00

c1 = 01

c2 = 10

c3 = 11

enc(k0 = 00, m)enc(k1 = 01, m)

enc(k2 = 10, m)

enc(k3 = 11, m)

p(m0) = 0,15p(m1) = 0,05p(m2) = 0,50p(m3) = 0,30

p(k0) = 0,20p(k1) = 0,70p(k2) = 0,05p(k3) = 0,05

als bekannt vorausgesetzt:

Page 48: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 48

2 Grundlagen – Sicherheit kryptographischer Systeme

• resultierende Wahrscheinlichkeiten der Schlüsseltexte:

• resultierende a posteriori Wahrscheinlichkeiten:

nicht informationstheoretisch sicher Anforderungen an Wahrscheinlichkeiten der Schlüssel notwendig!

p(m1|c0) = 0,333p(m1|c1) = 0,013p(m1|c2) = 0,008p(m1|c3) = 0,026

p(m2|c0) = 0,238p(m2|c1) = 0,130p(m2|c2) = 0,312p(m2|c3) = 0,915

p(m3|c0) = 0,143p(m3|c1) = 0,312p(m3|c2) = 0,656p(m3|c3) = 0,039

p(m0|c0) = 0,286p(m0|c1) = 0,545p(m0|c2) = 0,023p(m0|c3) = 0,020

p(c0) = 0,1050p(c1) = 0,1925p(c2) = 0,3200p(c3) = 0,3825

Page 49: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 49

2 Grundlagen – Sicherheit kryptographischer Systeme

(2) Wahrscheinlichkeiten der Schlüssel (für |K| = |C| = |M|)

Schlüssel müssen mit gleicher Wahrscheinlichkeit verwendet werden

Resultierende Schlüsseltexte sind ebenfalls gleichwahrscheinlich

Bedingung:" m M " c C: p(c|m) = p(c)

z.B. für c0: p(c0|m0) = p(c0|m1) = p(c0|m2) = p(c0|m3)

Nachrichten Schlüsseltexte

m0 = 00

m1 = 01

m2 = 10

m3 = 11

c0 = 00

c1 = 01

c2 = 10

c3 = 11

Page 50: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 50

2 Grundlagen – Sicherheit kryptographischer Systeme

Beispiel 3:

informationstheoretisch sicher

Verschlüsselung

enc(k0 = 00, m)enc(k1 = 01, m)

enc(k2 = 10, m)

enc(k3 = 11, m)

m0 = 00

m1 = 01

m2 = 10

m3 = 11

c0 = 00

c1 = 01

c2 = 10

c3 = 11

p(m0) = 0,15; p(m1) = 0,05; p(m2) = 0,5; p(m3) = 0,3 p(ki) = p(k) = 0,25

Nachrichten Schlüsseltexte

Page 51: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 51

2 Grundlagen – Sicherheit kryptographischer Systeme

Beispiel 4: (Nutzung des Kryptosystems aus Beispiel 3)Verschlüsselung von zwei Nachrichten mit ein und demselbenSchlüssel; Angreifer beobachtet: 0111 = c1c3

Nur vier mögliche Nachrichten:

Nachrichten Schlüsseltexte Verschlüsselung

m0 = 00

m1 = 01

m2 = 10

m3 = 11

c0 = 00

c1 = 01

c2 = 10

c3 = 11

enc(k0 = 00, m)enc(k1 = 01, m)

enc(k2 = 10, m)

enc(k3 = 11, m)

k0: 1101 = m3m1k1: 0010 = m0m2

k2: 0111 = m1m3k3: 1000 = m2m0

p(m0) = 0,15; p(m1) = 0,05; p(m2) = 0,50; p(m3) = 0,30

Page 52: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 52

2 Grundlagen – Sicherheit kryptographischer Systeme

• Wahrscheinlichkeiten der Nachrichten:

• resultierende a posteriori Wahrscheinlichkeiten:

nicht informationstheoretisch sicher

(3) Wahl der Schlüssel – Zufällige Wahl des Schlüssels für Verschlüsselung jedes „Blocks“– Einer Folge von Nachrichten muss eine Zufallsfolge von

Schlüsseln entsprechender Länge zugeordnet sein

p(m3m1|c1c3) = 0,0833p(m0m2|c1c3) = 0,4167

p(m3m1) = 0,015p(m0m2) = 0,075

p(m1m3) = 0,015p(m2m0) = 0,075

p(m1m3|c1c3) = 0,0833p(m2m0|c1c3) = 0,4167

Page 53: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 53

2 Grundlagen – Sicherheit kryptographischer Systeme

Zusammenfassung der Anforderungen• Notwendige Bedingung für informationstheoretische

Sicherheit:Nachrichten und Schlüsseltexte müssen stochastisch unabhängig voneinander sein, d.h., die Wahrscheinlichkeit für einen Schlüsseltext darf nicht von der verschlüsselten Nachricht abhängen.

Resultierende Anforderungen an die Schlüssel:

(1) |K| ¥ |C| ¥ |M|(2) Bei einem System mit |K| = |C| = |M| müssen die Schlüssel

gleichwahrscheinlich sein.(3) Die Wahl des Schlüssels muss jeweils zufällig erfolgen.

Aussagen bzgl. Sicherheit gelten nur für den Algorithmus!

Page 54: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Erreichbare Sicherheit asymmetrischer Systeme

Kryptographie und Kryptoanalyse 54

c m

ke,B kd,B

enc

Alice Bob

decm

ke,B

enc

Angreifer

Sicherheit gegen unbe-schränkten Angreifer (informationstheoretische Sicherheit) nicht möglich.

Page 55: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 55

2 Grundlagen – Sicherheit kryptographischer Systeme

Anmerkungen zur informationstheoretischen Sicherheit• Betrachtet wurde zunächst passiver Angriff

(ciphertext only attack)• Informationstheoretisch sicheres System ist jedoch auch

gegen aktive Angriffe sicher

• Keine Annahmen über die zu verarbeitenden Nachrichten notwendig

• Informationstheoretische Sicherheit kann nur von symmetrischen Systemen erreicht werden

• Systeme, die ein und denselben Schlüssel mehrfach verwenden, können nicht informationstheoretisch sicher sein

Page 56: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 56

2 Grundlagen – Sicherheit kryptographischer Systeme

• Schlüsselmanagement problematisch:– jede neue Nachricht erfordert einen neuen Schlüssel– Schlüssel symmetrischer Systeme müssen über sicheren Kanal

ausgetauscht und geheim gehalten werden• Schutzziel „Zurechenbarkeit“ kann nicht mit symmetrischen

Systemen erbracht werden

Verwendung von nicht informationstheoretisch sicheren Systemen notwendig

Annahmen über den Angreifer notwendig (notwendige Berechnungen des Angreifers sind nicht effizient möglich)

Page 57: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 57

2 Grundlagen – Sicherheit kryptographischer Systeme

Weitere Sicherheitsbegriffe• „beweisbar sicher“ (provable security)

Beweis besteht in Reduktion auf mathematisches Problem (Zielstellung: Wenn der Angreifer das System bricht, kann er das schwierige mathematische Problem lösen.)Wesentliche Probleme mit „beweisbarer Sicherheit“– Betrachtet nur Angriffe spezieller Art; sagt nichts aus über

mögliche andere Angriffe– Bedingte Aussagen von der Art „unter der Annahme, dass

niemand einen effizienten Algorithmus für dieses mathematische Problem findet“

Sicherheit gegen bestimmte Angriffe

Page 58: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 58

2 Grundlagen – Sicherheit kryptographischer Systeme

Semantische Sicherheit [GoMi_84]

Ein System heißt semantisch sicher, wenn alles, was bei Kenntnis des zugehörigen Schlüsseltextes effizient über den Klartext berechnet werden kann, auch effizient ohne Kenntnis des Schlüsseltextes berechnet werden kann.

• „effizient“: (polynomiell) beschränkter Angreifer• Vorteil des Angreifers betrachtet (nicht besser als bloßes Raten)

Ununterscheidbarkeit („polynomielle Sicherheit“) [GoMi_84]Angreifer ist nicht in der Lage, zwei beliebige Nachrichten zu finden, so dass er die Verschlüsselung einer dieser Nachrichten korrekt der Nachricht zuordnen kann.

• äquivalent zu semantischer Sicherheit (s. [NaYu_90, KoMe_04] f. Referenzen)

• „Charakterisierung von semantischer Sicherheit“ [BeSa_99]

Page 59: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Kryptographie und Kryptoanalyse 59

• Semantische Sicherheit bietet intuitive Beschreibung von Sicherheit (Geheimhaltung)

• Ursprünglich eingeführt für CPA, später aber auch unter aktiven Angriffen betrachtet [BDPR_98]

• Ununterscheidbarkeit oft in Sicherheitsbeweisen verwendet

• Begründet die Notwendigkeit indeterministischer Verschlüsselung (semantisch sicheres System sicher gegen vollständige Suche eines polynomiell beschränkten Angreifers)

• Semantisch sicheres Kryptosystem in [GoMi_84] vorgestellt– basiert auf dem Problem zu entscheiden, ob eine Zahl ein quadratischer

Rest ist (QRP)– Nachteil: Expansion (Verschlüsselung eines Bits liefert k Bit langen

Schlüsseltext)

Page 60: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Kryptographie und Kryptoanalyse 60

Alice Angreifer

Schlüsselgenerierung: kd, ke keygen(param) kennt ke

wählt m0, m1 Mmit length(m0) = length(m1)

ke

m0, m1

cb = enc(ke, mb)wählt zufällig b {0,1}verschlüsselt mb

Entscheidung: b = 0 oder b = 1

Ununterscheidbarkeit unter CPA

Page 61: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Kryptographie und Kryptoanalyse 61

Alice Angreifer

Schlüsselgenerierung: kd, ke keygen(param) kennt ke

wählt m0, m1 Mmit length(m0) = length(m1)

ke

ci

mi = dec(kd, ci)

m0, m1

cb = enc(ke, mb)wählt zufällig b {0,1}verschlüsselt mb

entschlüsselt cibeliebig oft

Entscheidung: b = 0 oder b = 1

Ununterscheidbarkeit unter CCA1

Page 62: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Kryptographie und Kryptoanalyse 62

Alice Angreifer

Schlüsselgenerierung: kd, ke keygen(param) kennt ke

wählt m0, m1 Mmit length(m0) = length(m1)

ke

ci

mi = dec(kd, ci)

m0, m1

cb = enc(ke, mb)wählt zufällig b {0,1}verschlüsselt mb

entschlüsselt cibeliebig oft

ci cb

mi = dec(kd, ci)entschlüsselt cibeliebig oft

Entscheidung: b = 0 oder b = 1

Ununterscheidbarkeit unter CCA2

Page 63: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

2 Grundlagen – Sicherheit kryptographischer Systeme

Kryptographie und Kryptoanalyse 63

Non-Malleability [DoDN_91]

Ein System bietet Sicherheit gegen adaptive aktive Angriffe (Non-Malleability), wenn es für einen polynomiell beschränkten Angreifer nicht einfacher ist, bei Kenntnis eines Schlüsseltextes einen weiteren Schlüsseltext zu generieren, so dass die zugehörigen Klartexte in Relation zueinander stehen, als ohne Kenntnis dieses Schlüsseltextes.

• Motivation: contract bidding• Beispiel für ein Kryptosystem: System von Cramer und Shoup

[CrSh_98] Erweiterung des ElGamal-Kryptosystems Basiert auf dem Diffie-Hellman Entscheidungsproblem

Page 64: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 64

Überblick über die Vorlesung

1. Einführung2. Grundlagen3. Klassische Verfahren

– Mathematische Grundlagen– Transpositionen– MM-Substitutionen– PM-Substitutionen

4. Symmetrische Verfahren5. Asymmetrische Verfahren

Page 65: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 65

3 Klassische Verfahren – Mathematische Grundlagen

Modulare Arithmetik• Endliche Strukturen (z.B. Gruppen), basierend z.B. auf den

natürlichen oder ganzen Zahlen

• n = {0,1,2, …, n-1} Restklassenring modulo n

• Kongruenza, b ; n N, n > 1: n|(a-b) a, b kongruent

a b mod n

• Restklasse ā zu jedem a : ā ú {b | a b mod n}

Page 66: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 66

3 Klassische Verfahren – Transpositionen

Transpositionen• Verwürfeln der Klartextzeichen, Permutation der Stellen

des Klartextes (Permutationschiffren)• Beispiel: Skytala

• Formale Beschreibung:M = C = Al

m = (m1m2m3 … ml), mi A, l N

Permutation

enck(m) = enck(m1m2m3 … ml) = (mp(1)mp(2)mp(3) … mp(l))

1 2 ...1 2 ...

lP

p p p l

Page 67: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 67

3 Klassische Verfahren – Transpositionen

Beispiel

• Matrixtranspositionen Beispiel: Spaltenpermutation

Schlüssel: 5x7 MatrixP = (1,4)(2,5,3,7,6)

P-1 = (4,1)(5,2,6,7,3)

1 2 3 4 5 6 73 1 4 2 7 5 6

P

Page 68: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 68

3 Klassische Verfahren – MM-Substitutionen

MM-Substitution (monoalphabetisch, monographisch)

a0

a2

a3

ai

M K C

b3k

b1 b0

bjk

k

k

AMAC

AM, AC Alphabete, enc: AMl AC

l

m = (m0m1m2 … ml-1), mi AM, m AMl, l N

enck(m) = enck(m0) enck(m1) … enck(ml-1)

Page 69: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 69

Nachricht a b c d e f g … x y z

Schlüsseltext D E F G H I J … A B C

3 Klassische Verfahren – MM-Substitutionen

• Verschiebechiffre (Additive Chiffre)AM = AC = {A:Z}Schlüssel: s {0:n-1}, n = 26

encs(mi) = -1[( (mi) + s) mod n], (mi) {0:n-1}decs(ci) = -1[( (ci) - s) mod n]

Cäsarchiffre für s = 3

Page 70: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 70

:A B C D E F G H I J K L M N0 1 2 3 4 5 6 7 8 9 10 11 12 13

O P Q R S T U V W X Y Z14 15 16 17 18 19 20 21 22 23 24 25

Beispiel

n = 26, A = {A:Z}, s = 3

3 Klassische Verfahren – MM-Substitutionen

Page 71: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 71

3 Klassische Verfahren – MM-Substitutionen

Kryptoanalyse der Verschiebechiffre• Nur 26 verschiedene Schlüssel• Vollständige Suche möglich Durchprobieren aller möglichen Schlüssel

Beispiel:

c = FMTKOJVIVGTNZDNOYVNOCZHVYZMCZPODBZIQJMGZNPIB

Page 72: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 72

s m

13 SZGXBWIVITGAM14 RYFWAVHUHSFZL15 QXEVZUGTGREYK16 PWDUYTFSFQDXJ17 OVCTXSEREPCWI18 NUBSWRDQDOBVH19 MTARVQCPCNAUG20 LSZQUPBOBMZTF21 KRYPTOANALYSE22 JQXOSNZMZKXRD23 IPWNRMYLYJWQC24 HOVMQLXKXIVPB25 GNULPKWJWHUOA

3 Klassische Verfahren – MM-Substitutionen

s m

0 FMTKOJVIVGTNZ1 ELSJNIUHUFSMY2 DKRIMHTGTERLX3 CJQHLGSFSDQKW4 BIPGKFRERCPJV5 AHOFJEQDQBOIU6 ZGNEIDPCPANHT7 YFMDHCOBOZMGS8 XELCGBNANYLFR9 WDKBFAMZMXKEQ10 VCJAEZLYLWJDP11 UBIZDYKXKVICO12 TAHYCXJWJUHBN

s = 21 ergibt den einzigen sinnvollen Text s = 21

Page 73: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 73

• Schema von PolybiosAM = {A:Z}AC = {ij | i, j {1, 2, 3, 4, 5}}

enc:

1 2 3 4 51 A B C D E2 F G H I J3 K L M N O4 P Q R S T5 U V W X/Y Z

Beispiel

3 Klassische Verfahren – MM-Substitutionen

i j

Page 74: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 74

Q

I SP O

F M

H

3 Klassische Verfahren – MM-Substitutionen

• Allgemeine Substitution: Permutation des Alphabets Beispiel

AM = AC = {A:Z}

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)

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)

• Freimaurerchiffre (Kreuzchiffre) Beispiel

RW K C

A E

L VZ

X JB

U

Y G ND

T

Page 75: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 75

3 Klassische Verfahren – MM-Substitutionen

Statistische Analysen• Möglichkeiten der vollständigen Suche sind eingeschränkt• Aufwand für eine allgemeine Substitution: |A|!• Angriffspunkt: MM-Substitutionen übertragen statistische

Eigenschaften der Klartexte in die Schlüsseltexte

m = B E I S P I E L

Polybios: c =

Permutation (Bsp. F. 74): c = J W X Z S X W E

Verschiebechiffre (s = 3): c = E H L V S L H O

12 15 24 44 41 24 15 32

Page 76: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 76

3 Klassische Verfahren – MM-Substitutionen

Struktur der Sprache• unterschiedliche Auftrittswahrscheinlichkeiten der Zeichen• Redundanz R

– nicht alle Zeichenfolgen der Länge l sind gleichwahrscheinlich– Unterschied zwischen Entropie des Alphabets H(X) und

zugehöriger maximaler Entropie H0(X) (bei Gleichwahrschein-lichkeit der N Zeichen des Alphabets):

R = H0(X) – H(X);

– Natürliche Sprachen weisen bereits für l = 1 eine relativ hohe Redundanz auf

– Redundanz wächst mit der Länge der betrachteten Zeichenfolgen

– Einfache Substitutionschiffren (deutsche oder englische Nachricht) können i. Allg. bereits ab ca. 30 Zeichen entschlüsselt werden

1

00 ld;1ld

N

i ii NXH

xpxpXH

Page 77: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 77

3 Klassische Verfahren – MM-Substitutionen

Deutsch Englisch

* 15.15 - 19.25 -a 4.58 5.40 6.60 8.17b 1.60 1.89 1.21 1.49c 2.67 3.15 2.25 2.78d 4.39 5.17 3.43 4.25e 15.35 18.10 10.26 12.70f 1.36 1.60 1.80 2.23g 2.67 3.15 1.63 2.02h 4.36 5.14 4.92 6.09i 6.38 7.52 5.63 6.97j 0.16 0.19 0.12 0.15k 0.96 1.13 0.62 0.77l 2.93 3.45 3.25 4.03m 2.13 2.51 1.94 2.41

Deutsch Englisch

n 8.84 10.42 5.45 6.75o 1.90 2.24 6.06 7.51p 0.50 0.59 1.56 1.93q 0.01 0.01 0.08 0.10r 6.86 8.08 4.84 5.99s 5.39 6.35 5.11 6.33t 4.73 5.57 7.31 9.06u 3.48 4.10 2.23 2.76v 0.72 0.87 0.77 0.96w 1.42 1.67 1.91 2.36x 0.01 0.01 0.12 0.15y 0.02 0.02 1.59 1.97z 1.42 1.67 0.06 0.07

Zeichenhäufigkeiten (%)

Page 78: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 78

3 Klassische Verfahren – MM-Substitutionen

Zeichenhäufigkeiten (deutsch)H

äufig

keite

n

* 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

Page 79: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 79

3 Klassische Verfahren – MM-Substitutionen

Gruppe Deutsch EnglischI e e

II n r i s t d h a t a o i n s h r

III u l c g d l

IV m o b z w f c u m w f g y p b

V k v p j y q x v k j x q z

Einteilung der Zeichen in Gruppen

Page 80: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 80

3 Klassische Verfahren – MM-Substitutionen

Rang

Häufigkeiten von Bi- und Trigrammen

Rang1 EN TH EIN THE2 ER HE ICH ING3 CH IN NDE AND4 ND ER DIE HER5 EI AN UND ERE6 DE RE DER ENT7 IN ED CHE THA8 ES ON END NTH9 TE ES GEN WAS10 IE ST SCH ETH11 UN EN CHT FOR12 GE AT DEN DTH13 ST TO INE HAT14 IC NT NGE SHE15 HE HA NUN ION

16 NE ND UNG INT17 SE OU DAS HIS18 NG EA HEN STH19 RE NG IND ERS20 AU AS ENW VER21 DI OR ENS TTH22 BE TI IES TER23 SS IS STE HES24 NS ET TEN EDT25 AN IT ERE EST26 SI AR LIC THI27 UE TE ACH HAD28 DA SE NDI OTH29 AS HI SSE ALL30 NI OF AUS ATI

Deutsch

Englisch

Page 81: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 81

3 Klassische Verfahren – MM-Substitutionen

• Analyse von MM-Substitutionen- Analyse der Häufigkeiten einzelner Buchstaben- Analyse der Häufigkeiten von Bi- und Trigrammen- Nutzung der Redundanz zur Ermittlung fehlender

Zeichen- bei bekannten Wortgrenzen: Identifikation kurzer

Wörter, Vorsilben, Endungen, Anfangs- und Endbuchstaben

Beispiel: QOTC RQXVUXZX FXAFX SHXVVXV KOZTCQOB DHV KXV TCQZQSFXZWBFWBTCXV XWUXVBTCQJFXV KXZ DXZLXVKXFXV BEZQTCX QGLXWTCXV QRRXZKWVUB WBF XB WY QRRUXYXWVXV VWTCF YHXURWTC NXKX TCQZQSFXZWBFWBTCX XWUXVBTCQJF XWVXZ BEZQTCX MO DXZYXWKXV OVK BWTC KXVVHTC WV KWXBXZ BEZQTCX QOBMOKZOXTSXV

Page 82: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 82

3 Klassische Verfahren – MM-Substitutionen

Analyse von Transpositionen• statistische Eigenschaften des Klartextes nur teilweise

erhalten• einfache Analyse bei Klartext-Schlüsseltext-Angriff• ansonsten: Rekonstruktion der Bi- und Trigramme• zunächst Ermittlung der Blocklänge

Beispiel

CESVLRHEESUUSLLGANOSGMIHRSTUCESVLRH EESUUSL LGANOSG MIHRSTUReduktion der möglichen Kombinationen:EVLRSCH, EVRLSCH, …, VELRSCH, ...

Page 83: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 83

3 Klassische Verfahren – PM-Substitutionen

PM-Substitution (1) (polyalphabetisch, monographisch)

k1

b20kr

k2

br1

b14

AC1

AC2

ACr

a0

a2

a3

ai

AM

AM, AC1, AC2, …, ACr Alphabete, enc: AM

l (AC1 » AC2 » … » ACr)l

m = (m1m2 … ml), mi AM, m AMl, l N

enck(m) = enck (m0) enck (m1) … enck (ml), kj {1:r}0 1 l

M K C

Page 84: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 84

3 Klassische Verfahren – PM-Substitutionen

PM-Substitution (2)

k1 k2

kr

k3

a0

a2

a3

ai

M K C

b3

b1

b0

bj

AMAC

Page 85: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 85

3 Klassische Verfahren – PM-Substitutionen

• Vigenère-Chiffre (1)klassische Darstellung: Vigenère-Tableau

a b c d e f … zA A B C D E F … ZB B C D E F G … AC C D E F G H … BD D E F G H I … CE E F G H I J … DF F G H I J K … E

…… … … … … … … … … … …

Z Z A B C D E … Y

Page 86: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 86

3 Klassische Verfahren – PM-Substitutionen

• Vigenère-Chiffre (2)AM = AC = {A:Z}

Schlüssel: K = {k |k = (k0k1 … kr-1) ki {A:Z}}

enck(m) = enc (m0) enc (m1) … enc (mi) enc (mi+1) … enc (ml-1)

mitenc (mi) = -1[( (mi) + (kj)) mod n], (mi), (kj) {0:n-1}dec (ci) = -1[( (ci) - (kj)) mod n]

Beispiel

k1k0 kr-1 k0 k(l-1) mod r

kj

kj

Page 87: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 87

3 Klassische Verfahren – PM-Substitutionen

• Binäre Vigenère-ChiffreA = {0,1}n = 2

Klartextbuchstabe mi, Schlüsselbuchstabe ki:ci = (mi+ki) mod 2 bzw. ci = mi ki

mi = (ci+ki) mod 2 bzw. mi = ci ki

• Schlüssel– sollten Zufallsfolgen sein– kürzer als Klartext: periodische Wiederholung– Autokey-Verfahren

Page 88: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 88

3 Klassische Verfahren – PM-Substitutionen

Vernam-Chiffre (one-time pad)• Jeder Schlüssel wird nur einmal verwendet• Schlüssellänge und Länge des Klartextes sind gleich• Schlüssel sind zufällig Einzige informationstheoretisch sichere Chiffre.

• Binäre Vernam-Chiffre

c = enc(ki, mi) = mi ki m = dec(ki, ci) = ci ki

Nachrichten Schlüsseltexte Verschlüsselung

0

1

0

1

enc(0, m)enc(1, m)

p(k0) = p(k1) = 0,5

Page 89: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 89

3 Klassische Verfahren – PM-Substitutionen

Analyse von PM-Substitutionen• statistische Eigenschaften des Klartextes werden nicht in

den Schlüsseltext übertragen• unter bestimmten Bedingungen sicher (Schlüssel!)

2 Schritte:1. Ermittlung der

Schlüssellänge r

Vereinfachung der Analyse auf Analyse von r MM-Substitutionen

2. Analyse der MM-Substitutionen

Schlüssel k0 k1 k2 … kr-1

Schlüsseltext c0 c1 c2 … cr-1

cr cr+1 cr+2 … cr+(r-1)

c2r c2r+1 c2r+2 … c2r+(r-1)

… … … … …

MM-Substitution mit Schlüssel k0

Page 90: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 90

3 Klassische Verfahren – PM-Substitutionen

• Kasiski-Test– 1863 von Friedrich Wilhelm Kasiski publiziert– Suche nach identischen Abschnitten im Schlüsseltext– Annahme: identische Abschnitte im Klartext mit

denselben Schlüsselzeichen verschlüsselt– Rückschlüsse auf Schlüssellänge: ggT der Abstände– zufällige Wiederholungen möglich untersuchte Folgen sollten mindestens die Länge 3 haben

Page 91: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 91

3 Klassische Verfahren – PM-Substitutionen

Wiederholungen durch Verschlüsselung identischer Klartextabschnittezufällige Wiederholungen

ggT(Abstände) = 3

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 Dk = K E Yc = 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

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 Rk ... E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K Ec ... 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

m ... S C H I E B E C H I F F R E Nk ... Y K E Y K E Y K E Y K E Y K E c ... Q M L G O F C M L G P J P O R

Abstände: ‚OVR‘: 33 ‚TOV‘: 18 ‚MLG‘: 6

‚CML‘: 35

= 3 11= 2 32

= 2 3

= 5 7

K E Y K E Y K E Y K E Y K E Y K E Y K E Y K

Page 92: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 92

3 Klassische Verfahren – PM-Substitutionen

• Friedman-Test– von William F. Friedman veröffentlicht– analysiert die Redundanz des Schlüsseltextes– basiert auf dem Koinzidenzindex I (1922, Friedman)

– Länge der Nachricht m: length(m) = N– Länge des Schlüssels k: length(k) = r

Wiederum 2 Schritte:1. Ermittlung der Schlüssellänge r2. Ermittlung des Schlüssels durch Analyse der

MM-Substitutionen

Page 93: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 93

3 Klassische Verfahren – PM-Substitutionen

Koinzidenzindex I• Wahrscheinlichkeit, dass zwei unabhängig voneinander

gewählte Zeichen ai übereinstimmen

• I minimal, wenn alle Zeichen gleichwahrscheinlich:

A = {A:Z}: n = 26, Imin = 1/26 = 0,0385

• I „maximal“ für Texte in natürlichen Sprachen:Nachricht in deutscher Sprache: Imax = 0,0762Nachricht in englischer Sprache: Imax = 0,0655

12

0, ( ),

n

i i i ii

I p p p a a A

min1 1, 0,1,..., 1 :ip i n In n

Page 94: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 94

3 Klassische Verfahren – PM-Substitutionen

Koinzidenzindex für Beispieltexte (deutsch, nur “A” – “Z”)

─ r = 1 r = 4 r = 12 r = 26

N = 110 038 0,07379 0,07379 0,04769 0,04030 0,03847

N = 10 090 0,07226 0,07226 0,04714 0,04009 0,03856

N = 2 059 0,08002 0,08002 0,04936 0,04107 0,04094

Imin = 0,0385Imax = 0,0762

Page 95: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 95

3 Klassische Verfahren – PM-Substitutionen

Einordnung des Schlüsseltextes in eine Tabelle

Schlüssel k0 k1 k2 … kr-1

Schlüsseltext c0 c1 c2 … cr-1

cr cr+1 cr+2 … cr+(r-1)

c2r c2r+1 c2r+2 … c2r+(r-1)

c3r c3r+1 c3r+2 … c2r+(r-1)

… … … … …

Imin = 0,0385

Imax = 0,0762

Page 96: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 96

3 Klassische Verfahren – PM-Substitutionen

Wahrscheinlichkeit, ein Paar gleiche Zeichen auszuwählen:

Anzahl von Buchstabenpaaren

• aus einer gleichen Spalte:

• aus verschiedenen Spalten:

• insgesamt:

1

2gl

NNranz

2v

NN Nranz

12bp

N Nanz

1

0

minmax2n

i bp

vgli anz

IanzIanzpI

Page 97: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 97

3 Klassische Verfahren – PM-Substitutionen

Einsetzen und Umformen nach r liefert:

max min

max min

( ) 0,0377( 1) ( 1) 0,0762 0,0385

I I N NrN I I I N N I N

0,03770,0385

rI

21 1 12 2

2 20 0 0

( ) 1 ( )n n n

ii i

i i i

anz aI p anz aN N

für N >> 1

Page 98: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 98

3 Klassische Verfahren – PM-Substitutionen

• Analyse einer PM-Substitution ohne periodische Wiederholung des Schlüssels– Methode von Friedman 1918 vorgestellt– Voraussetzung: Schlüssel und Klartext entstammen einer

natürlichen Sprache– Basis: eine relativ kleine Menge von Buchstaben macht bereits

einen großen Teil des Textes aus (ca. 75% des Englischen oder Deutschen bestehen aus den jeweils 10 häufigsten Buchstaben)

Page 99: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 99

3 Klassische Verfahren – PM-Substitutionen

Vigenère-Tableau für die 10 häufigsten Buchstaben (D):

Ermittlung sinnvoller Kombinationen, Ausschluss …

e n r i s t d h a u

E I R V M W X H L E Y

N R A E V F G Q U N H

R V E I Z J K U Y R L

I M V Z Q A B L P I C

S W F J A K L V Z S M

T X G K B L M W A T N

D H Q U L V W G K D X

H L U Y P Z A K O H B

A E N R I S T D H A U

U Y H L C M N X B U O

Page 100: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 100

3 Klassische Verfahren – PM-Substitutionen

Mögliche Zusammensetzung der Schlüsseltextbuchstaben

A B C D E F G H I J K L M

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

n+n h+u n+r n+t e+d r+r d+h i+d e+i

i+s n+u a+i r+t s+t s+u

h+ t r+u

N o P Q R S T U V W X Y Z

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

t+u u+u d+n e+n d+r e+r e+s e+t h+r h+s

h+n i+n

Page 101: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 101

3 Klassische Verfahren – PM-Substitutionen

• Beispiel

H: (a+h), (e+d), (n+u)Q: (i+i), (d+n)R: (a+r), (e+n)

T: (a+t)B: (i+t), (h+u)P: (h+i)

m = E I N B I L D V E R A R B E I T U N G S …

k = D I E S T E G A N O G R A P H I E E R M …

c = H Q R T B P J V R F G I B T P B Y R X E …

insgesamt 6 · 3 · 4 = 72Möglichkeiten, darunter (die, ein)

insgesamt 2 · 4 · 2 = 16Möglichkeiten, keine sinnvolle Kombination darunter

Page 102: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 102

3 Klassische Verfahren

Zusammenfassung• MM-Substitutionen erhalten alle Gesetzmäßigkeiten des

Klartextes – Angriffe mittels statistischer Analysen• PM-Substitionen beseitigen diesen Nachteil durch

Anwendung unterschiedlicher Schlüsselzeichen; relevant für die Sicherheit: Schlüssellänge und Wahl des Schlüssels

• Transpositionen erhalten Einzelwahrscheinlichkeiten, aber nicht die Wahrscheinlichkeiten von Zeichenfolgen

• Ansatzpunkt für die vorgestellten Analysen: erhaltene Redundanz des Klartextes Kryptoanalyse m. H. eines reinen Schlüsseltext-Angriffsfür Klartext „ohne“ Redundanz nicht möglich;Reduktion der Redundanz erschwert Kryptoanalyse

Page 103: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 103

Überblick über die Vorlesung

1. Einführung2. Grundlagen3. Klassische Verfahren4. Symmetrische Verfahren

– Blockchiffren– Feistel-Chiffre– Kryptographische Güte einer Verschlüsselungsfunktion– DES

• Differentielle Kryptoanalyse• Lineare Kryptoanalyse

– AES– Betriebsarten

5. Asymmetrische Verfahren

Page 104: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 104

4 Symmetrische Verfahren – Blockchiffren

Blockchiffren• Verschlüsselung von Nachrichten fester Länge

(Stromchiffren: Verschlüsselung von Nachrichten beliebiger Länge)

• Nachricht m in b Blöcke der Länge l unterteilt:

m = m1m2 … mb, mi = mi1mi2 … mil, mij {0, 1}

• Verschlüsselung der Nachrichtenblöcke mit k K:

ci = enc(k, mi)

praktischer Einsatz: Betriebsarten• längentreue Verfahren: length(mi) = length(ci)• Anforderungen an enck: Sicherheit und Performance

Page 105: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 105

4 Symmetrische Verfahren – Blockchiffren

Sicherheitsanforderungen an enck• Diffusion und Konfusion

[Claude Shannon: Communication Theory of Secrecy Systems. Bell Systems Technical Journal, 28(1949), 656-715.]

• Ziel: Erschweren statistischer Angriffe

• Diffusion: im Klartext enthaltene Redundanz wird im Schlüsseltext „verteilt“

• Konfusion: Beziehungen zwischen Schlüsseltexten und Schlüsseln so komplex wie möglich

• Produktchiffre: Kombination von Verschlüsselungsverfahren

Page 106: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 106

4 Symmetrische Verfahren – Blockchiffren

• Produktchiffre als Kombination von Substitution ( Konfusion) und Transposition ( Diffusion)bietet Möglichkeit der effizienten Konstruktion entsprechender Verschlüsselungsfunktionen Substitutions-Permutations-Netzwerk (SP-Netzwerk)

• Iterierte Blockchiffren– Verschlüsselung erfolgt in mehreren Runden

c = encn(kn, encn-1(kn-1, ... enc2(k2, enc1(k1, m)) ... ))– Verwendung von Rundenschlüsseln– Algorithmus zur Generierung der Runden- bzw. Teilschlüssel– Verschlüsselungsfunktion muss im Allgemeinen invertierbar sein– Anwendung der Rundenschlüssel bei Entschlüsselung in

umgekehrter Reichenfolgem = dec1(k1, dec2(k2, ... decn-1(kn-1, decn(kn, c)) ... ))

Page 107: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 107

4 Symmetrische Verfahren – Blockchiffren

Allgemeine Ansätze zur Kryptoanalyse von Blockchiffren• Unabhängig von der internen Struktur• Vollständige Schlüsselsuche

– Klartext-Schlüsseltext-Angriff– Aufwand abhängig vom Schlüsselraum

• Zugriff auf eine vorab berechnete Tabelle– Gewählter Klartext-Schlüsseltext-Angriff– Aufwand abhängig vom Schlüsselraum

• Time-Memory-Tradeoff– Gewählter Klartext-Schlüsseltext-Angriff– Aufwand abhängig vom Schlüsselraum

• Kodebuchanalyse– Klartext-Schlüsseltext-Angriff– Ziel: Rekonstruktion des Klartextes– Aufwand abhängig von Struktur und Redundanz des Klartextes

Page 108: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 108

4 Symmetrische Verfahren – Feistel-Chiffre

Feistel-Chiffre• Forschungsprogramm „Lucifer“ in den späten 60er Jahren• Feistel-Chiffre 1973 von Horst Feistel veröffentlicht• Permutationen und Substitutionen • Iterierte Blockchiffre• Struktur dieser Chiffre gehört zu den grundlegenden

Konzepten der Kryptographie • Anwendung des Prinzips z.B. in DES, 3-DES, Blowfish, CAST,

FEAL und Twofish

Page 109: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 109

4 Symmetrische Verfahren – Feistel-Chiffre

• Zerlegung des Nachrichtenblocks mi Al in zwei Teilblöcke:

mi = (L0, R0)ci = (Ln, Rn)

• Schema ist selbstinvers: Ver- und Entschlüsselung geschieht mit den gleichen Funktionen, nur Reihenfolge der Rundenschlüssel wird umgekehrt

• Rundenfunktion f muss nicht bijektiv sein• Pro Runde wird jeweils nur ein Teilblock modifiziert ermöglicht effiziente Implementierung

• f bestimmt kryptographische Sicherheit des Verfahrens

Page 110: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 110

4 Symmetrische Verfahren – Feistel-Chiffre

Verschlüsselung in einer Runde

enc(ki, (Li-1, Ri-1)) = Ri-1, f(Ri-1, ki) Li-1 = Li, Ri

Runde 1: R0L0

L1 R1

fk1

enc(k1, (L0, R0)) = R0, f(R0, k1) L0 = L1, R1

Page 111: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 111

4 Symmetrische Verfahren – Feistel-Chiffre

Entschlüsselung in einer Runde

dec(ki, (Li, Ri)) = f(Li, ki) Ri, Li = Li-1, Ri-1

Runde 1: R1L1

L0 R0

k1f

dec(k1, (L1, R1)) = f(L1, k1) R1, L1 = L0, R0

Page 112: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 112

4 Symmetrische Verfahren – Kryptographische Güte

Kryptographische Güte einer Verschlüsselungsfunktion • Kryptographisch entscheidende Funktion f muss bestimmten

Anforderungen genügen ( Konfusion und Diffusion)• Merkmale zur Beurteilung von f: Designkriterien• Beispiele:

– Vollständigkeit– Avalanche – Nichtlinearität– keine Informationen über Outputbits ohne Wissen über

Inputbits ( Korrelationsimmunität)

Page 113: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 113

4 Symmetrische Verfahren – Kryptographische Güte

VollständigkeitEine Funktion f: {0,1}n {0,1}m heißt vollständig, wenn jedes Bit des Outputs von jedem Bit des Inputs abhängt.

Grad der Vollständigkeit k/n: im Mittel hängen k Output-Bits von den n Inputbits ab

Beispiel: SBsp

y1 = x1x2 x1x3 x2x3 x2 x3 1y2 = x1x2 x1x3 x2x3 x1 x3 1y3 = x1x2 x1x3 x2x3 x1 x2 1

kein hinreichendes Kriterium

Page 114: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 114

4 Symmetrische Verfahren – Kryptographische Güte

y1 = x1x2 x1x3 x2x3 x2 x3 1y2 = x1x2 x1x3 x2x3 x1 x3 1y3 = x1x2 x1x3 x2x3 x1 x2 1

Input Outputx3 x2 x1 y3 y2 y1

0 0 0 1 1 10 0 1 0 0 10 1 0 0 1 00 1 1 0 1 11 0 0 1 0 01 0 1 1 0 11 1 0 1 1 01 1 1 0 0 0

6 von 8 möglichen Belegungen des Inputs

werden identisch ausgegeben!

Page 115: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 115

4 Symmetrische Verfahren – Kryptographische Güte

Beispiel: Vollständigkeit der Feistel-Chiffre (f vollst.)

Inputbit i

Out-put-bit j

c0 = m = L0, R0

0 1 2 3 4 5 6 7

1234567

0Inputbit i

Out-put-bit j

c1 = L1, R1

0 1 2 3 4 5 6 7

1234567

0

Inputbit i

Out-put-bit j

c2 = L2, R2

0 1 2 3 4 5 6 7

1234567

0Inputbit i

Out-put-bit j

c3 = L3, R3

0 1 2 3 4 5 6 7

1234567

0

Page 116: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 116

4 Symmetrische Verfahren – Kryptographische Güte

AvalancheEine Funktion f: {0,1}n {0,1}m besitzt dann den Avalanche-Effekt, wenn die Änderung eines Input-Bits im Mittel die Hälfte aller Output-Bits ändert.

Wird durch Änderung eines Input-Bits jedes Output-Bit mit einer Wahrscheinlichkeit von 50% verändert, erfüllt f das strikte Avalanche-Kriterium.

Erfüllt f das strikte Avalanche-Kriterium, so ist f stetsvollständig.

Page 117: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 117

4 Symmetrische Verfahren – Kryptographische Güte

Beispiel (SBsp)

000 001 010 011 100 101 110 111

000 2 2 2 6

001 2 1 1 4

010 2 1 1 4

011 1 1 2 4

100 2 1 1 4

101 1 1 2 4

110 1 1 2 4

111 2 2 2 6

Gesamtzahl der geänderten Bits 36

m1m2

Page 118: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 118

4 Symmetrische Verfahren – Kryptographische Güte

LinearitätEine Funktion f: {0,1}n {0,1}m ist dann linear, wenn jedesOutput-Bit yi linear von den Input-Bits xi abhängt:

yi = aj,1 x1 + aj,2 x2 + … + aj,n xn + bj

Wenn wenigstens ein Output-Bit linear von den Input-Bits abhängt, ist f partiell linear.

weiteres Maß: Grad der Übereinstimmung von f mit ihrer besten linearen Approximation gGüte der Approximation: Anteil der Funktionswerte, in denen f und g übereinstimmen

Page 119: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 119

4 Symmetrische Verfahren – Kryptographische Güte

Korrelationsimmunitätf(x1, x2, …, xn) boolesche Funktion in n Variablen

Die Funktion f heißt dann k-korrelationsimmun, wenn man aus Kenntnis von k beliebigen Eingangswerten keine Information über den resultierenden Ausgangswert erhalten kann und umgekehrt.

Page 120: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 120

4 Symmetrische Verfahren – Kryptographische Güte

Abhängigkeitsmatrix AM• Beurteilungsmethode für die Gütekriterien Vollständigkeit,

Avalanche, Nichtlinearität/partielle Nichtlinearität[W. Fumy, H. Rieß: Kryptographie: Einsatz, Entwurf und Analyse symmetrischer Kryptoverfahren. 2. akt. u. erw. Aufl., Oldenburg, 1994.]

• Die AM einer Funktion f: {0,1}n {0,1}m ist eine (n x m)-Matrix, deren Einträge ai,j die Wahrscheinlichkeit angeben, dass bei einer Änderung des i-ten Eingabebits das j-te Ausgabebit komplementiert wird.

• Eigenschaften von AM:– AM(f = const): Nullmatrix– AM(f: Permutation): Permutationsmatrix– AM(f) = AM(1 f)

Page 121: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 121

4 Symmetrische Verfahren – Kryptographische Güte

Eigenschaften von f (xi: Inputbits, yj: Outputbits)ai,j = 0 yj nicht von xi abhängig; f ist nicht vollständig

Anzahl ai,j mit ai,j > 0: Grad der Vollständigkeit ai,j > 0 f ist vollständig

ai,j = 1 yj ändert sich bei jeder Änderung von xi yj hängt linear von xi ab

j. i. ai,j {0,1} f ist partiell linear (Spalte aj binärer Vektor) i. j. ai,j {0,1} f ist linear (AM binäre Matrix)

f besitzt Avalanche-Effekt

i. j.ai,j 0,5 f erfüllt striktes Avalanche-Kriterium

m

i

n

jjia

nm 1 1, 5,011

Page 122: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 122

4 Symmetrische Verfahren – Kryptographische Güte

Berechnung der Abhängigkeitsmatrixexakte Berechnung nur für kleine n, m möglichnäherungsweise Berechnung

i. j. ai,j := 0für „hinreichend viele“ X

wähle zufälligen n-Bit Vektor Xfür alle i von 1 bis n

Bestimme Xi (unterscheidet sich von X genau im Bit i)Vi = f(X) f(Xi)ai,j := ai,j + Vi,j

Division aller ai,j durch Anzahl der Vektoren X

Page 123: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 123

0 00

00 0

00 0

4 Symmetrische Verfahren – Kryptographische Güte

Beispiel (SBsp)

X = 000 X2 = 010 V2 = 111 010 = 101X3 = 100 V3 = 111 100 = 011

X = 001 …

y1 y2 y3

x1

x2

x3

0 11

00 0

00 0

0 11

01 1

00 0

0 11

01 1

11 0

4 44

44 4

44 4

0,5 0,50,5

0,50,5 0,5

0,50,5 0,5

X1 = 001 V1 = 111 001 = 110

Page 124: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 124

4 Symmetrische Verfahren – Kryptographische Güte

Designkriterien – Zusammenfassung• Kriterien sind zwar notwendig, aber nicht hinreichend• Teilweise gegenläufig• Optimierung notwendig• Notwendig:

– Höchstmaß an Vollständigkeit, Avalanche, Nichtlinearität und Korrelationsimmunität,

– Geringhaltung der Existenz linearer Faktoren der Verschlüsselungsfunktion

• Gewünscht:– Gute Implementierbarkeit, Schnelligkeit, Längentreue,

Minimierung der Fehlerfortpflanzungsmöglichkeiten

Page 125: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 125

4 Symmetrische Verfahren – DES

DES (Data Encryption Standard)• 1973 Ausschreibung des National Bureau of Standards (NBS) der

USA für ein standardisiertes kryptographisches Verfahren• 1974 erneute Ausschreibung• 1975 Veröffentlichung der Einzelheiten des Algorithmus im Federal

Register• 1976 zwei Workshops zur Evaluierung des Algorithmus• 1977 vom NBS als Standard publiziert (FIPS PUB 46)• Überprüfung der Sicherheit aller 5 Jahre • 1992 differenzielle Kryptoanalyse (Biham, Shamir)• 1994 lineare Kryptoanalyse (Matsui)• 1999 Brute-Force-Angriff (Deep Crack und weitere Rechner): 22

Stunden, 15 Minuten• 1999 FIPS 46-3: Empfehlung 3-DES• 2001 Veröffentlichung des AES (FIPS 197)• 2002 AES tritt in Kraft

Page 126: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 126

4 Symmetrische Verfahren – DES

Überblick über den Algorithmus• grundlegende Struktur: Feistel-Chiffre mit n = 16 Runden

• Einteilung der Nachricht in l Blöcke der Länge 64 Bits:m = m1m2 … ml, mi {0, 1}64

c = c1c2 … cl, ci {0, 1}64

• Schlüssel der Länge 64 Bits:k {0,1}64, davon jedoch nur 56 Elemente frei wählbarTeilschlüssel ki, i = 1, …, 16 aus k erzeugt (Länge ki: 48 Bit)

• Permutation vor der ersten und nach der letzten Runde (IPbzw. IP -1) (kryptographisch nicht relevant)

Page 127: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 127

L15

4 Symmetrische Verfahren – DES

Struktur des DESmi k

(56 Bit wählbar)

L0

ci

R0

L16 R16

R15

L1 R1

L2 R2

Iterationsrunde 16

Iterationsrunde 2

Iterationsrunde 1

IP-1

IP

......

Teil-schlüs-

sel-generie-

rung

64

64

k148

k248

k1648

64

Page 128: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 128

19172533414957

210182634425058

311192735435159

412202836445260

513212937455361

614223038465462

715233139475563

816243240485664

4 Symmetrische Verfahren – DES

Eingangspermutation IP

Folge der Klartextbits:

58606264

50525456

34363840

26283032

18202224

10121416

2468

42444648

linke Hälfte

49515355

57596163

41434547

25272931

17192123

9111315

1357

33353739

rechte Hälfte

Page 129: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 129

Iterationsrunde i: Rundenfunktion f

Ef

48

Ri-1

32

P

f(Ri-1,ki) = P(S(E(Ri-1) ki))

32

ki48

S2S1 S8…6 6 6

44 4

4 Symmetrische Verfahren – DES

Page 130: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 130

4 Symmetrische Verfahren – DES

Expansionsabbildung E

32481216202428

1591317212529

26101418222630

37111519232731

48121620242832

5913172125291

32 1 3 4 52

1 2 43

4 5 7 8 96

5 6 87

28 29 31 32 130

29 30 3231…

Page 131: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 131

4 Symmetrische Verfahren – DES

Substitutionsboxen Si

8310155912511

910612117086

106129321127

1112117141310612

125931012690

13951000935

140356511214

1578013105159

0140415153013

1415112113148

213714884710

31482147111

4214134615103

515269112415

611132138134

78111741412

01230123

S1:

S2:

0123

S8: 1012015

95612

36109

1411130

50153

01435

12956

72811

13172

215111

813414

4817

61094

1531210

117148

14213

... ...

b5b4b3b2b1b0

6-Bit Wertvor der

Substitution

Page 132: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 132

4 Symmetrische Verfahren – DES

Permutation P

161219

715813

20232430

2126146

2953222

12182711

283134

1710925

S1 S2 S3 S4 S5 S6 S7 S8

S1 S2 S3 S4 S5 S6 S7 S8

Page 133: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 133

4 Symmetrische Verfahren – DES

Teilschlüsselgenerierung (Verschlüsselung)

PC-1

k

64

56

DC

28 28

PC-2ki

48

Page 134: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 134

19172533414957

210182634425058

311192735435159

412202836445260

513212937455361

614223038465462

715233139475563

816243240485664

4 Symmetrische Verfahren – DES

Schlüsselpermutation PC-1 (Permuted Choice)

externer Schlüssel k:

57585960

49505152

33343536

252627

171819

91011

123

41424344

C

555453

636261

474645

31302928

23222120

15141312

7654

393837

D

Paritätsbits

Page 135: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 135

4 Symmetrische Verfahren – DES

Anzahl der ShiftsVerschlüsselung: Links-ShiftsEntschlüsselung: Rechts-Shifts

Schlüsselauswahl: PC-2

911

1022

1122

1222

1322

1422

1522

1611

110

211

322

422

522

622

722

822

RundeAnzahl Links-Shifts:Anzahl Rechts-Shifts:

141526415134

1768524553

112116313346

24107374842

12327474450

51920554936

31213303929

2842405632

Page 136: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 136

4 Symmetrische Verfahren – DES

Bewertung der SchlüsselBis auf wenige Ausnahmen liefert das Verfahren für jede Runde einen anderen Teilschlüssel.

4 schwache Schlüssel, die jeweils 16 identische Teilschlüssel erzeugen:

0F0F

0F0F

0F0F

0F0F

0F0F

0F0F

0F0F

C0FF0

0FF0

0FF0

0FF0

0FF0

0FF0

0FF0

D01FE1FE0

01FE1FE0

01FE1FE0

01FE1FE0

01FE0EF1

01FE0EF1

01FE0EF1

01FE0EF1

externer Schlüssel k

Page 137: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 137

4 Symmetrische Verfahren – DES

12 semi-schwache Schlüssel, die jeweils nur 2 verschiedene Teilschlüssel erzeugen:

A5A5A5A500FF

A5A5A5A500FF

A5A5A5A500FF

A5A5A5A500FF

A5A5A5A500FF

A5A5A5A500FF

A5A5A5A500FF

CA55A00FFA5A5

A55A00FFA5A5

A55A00FFA5A5

A55A00FFA5A5

A55A00FFA5A5

A55A00FFA5A5

A55A00FFA5A5

D01FE1FE001E01FFE011FE0FE

FE01E01FE001FE1F1F01FEE0

01FE1FE001E01FFE011FE0FE

FE01E01FE001FE1F1F01FEE0

01FE0EF101F10EFE010EF1FE

FE01F10EF101FE0E0E01FEF1

01FE0EF101F10EFE010EF1FE

FE01F10EF101FE0E0E01FEF1

externer Schlüssel k

Page 138: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 138

4 Symmetrische Verfahren – DES

Eigenschaften des DES • Vollständig: jedes Output-Bit hängt von jedem Input-Bit ab

(nach ca. 5 Durchläufen), Avalanche, Nichtlinearität• Problem schwacher und semischwacher Schlüssel

(einfach explizit ausschließen)

• Komplement-Eigenschaft:

enc(k, m) = enc(k, m)

ermöglicht Einschränkung des Schlüsselraums: Etwas reduzierter Aufwand bei Angriff bei Kenntnis von zwei

Klartext-Schlüsseltextpaaren (m1, c1) und (m2, c2) mit m2 = m1

Page 139: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 139

4 Symmetrische Verfahren – DES

3-DES• Schlüssellänge heute zu kurz• Erhöhung der Sicherheit durch mehrmalige Verschlüsselung

(Kaskadenverschlüsselung) Meet-in-the-Middle-Angriff:

Sicherheitsgewinn bei Doppelverschlüsselung: 1 Bit

• 3-DES (Triple-DES): Verbesserung der Sicherheit durch 3-fache Anwendung

• Verschiedene Varianten, häufig EDE

c = enc(k1, (dec(k2, (enc(k1, m)))

Page 140: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 140

4 Symmetrische Verfahren – Kryptoanalyse des DES

Kryptoanalyse des DES• Allgemeine Angriffe auf Blockchiffren:

– Vollständige Schlüsselsuche– Zugriff auf eine vorab berechnete Tabelle– Time-Memory-Tradeoff– Kodebuchanalyse

• Angriffe auf DES, auch relevant für andere Blockchiffren: – Differentielle Kryptoanalyse– Lineare Kryptoanalyse

Page 141: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 141

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Differentielle Kryptoanalyse• E. Biham and A. Shamir: Differential Cryptanalysis of DES-

like Cryptosystems. Advances in Cryptology – CRYPTO '90. Springer-Verlag. 2-21.

• Gewählter Klartext-Schlüsseltext Angriff• Aufwand für DES lt. Standard, 16 Runden:

ca. 247 Klartextpaare bei ca. 237 Verschlüsselungsschritten• Anwendbar für iterierte Blockchiffren

• Prinzip:– Verwendung von beliebigen Klartextpaaren mit bestimmten

Differenzen– Analyse der Auswirkungen der Klartext-Differenzen auf die

Differenzen der resultierenden Schlüsseltextpaare– Ermittlung wahrscheinlicher Schlüssel

Page 142: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 142

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Notation (1)• Eingangs- und Ausgangs-

permutation haben keinenEinfluss – weggelassen

• Lm, Rm: linke bzw. rechteHälfte des Klartextes

• Lc, Rc: linke bzw. rechteHälfte des Schlüsseltextes

• xi / yi: Input / Output der Rundenfunktion in Runde i

• x, x*: zusammengehörigeZwischenwerte

• x‘ = x x*: Differenz

Schlüsseltext c = (Lc, Rc)

Klartext m = (Lm, Rm)

f

f

f

. . .

x1y1

x2y2

x16y16

k1

k2

k16

Page 143: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 143

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Notation (2)

Ef

48

32

ki

…6 6 6

44 4

P

32

S2S1 S8

S1Ii

S1Ei S2Ei S8EiS3Ei … S1Ki S2Ki S8KiS3Ki …

S2Ii S8Ii

S1Oi S2Oi S8Oi

48

xi

yi

Page 144: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 144

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Einfluss der Operationen auf die XOR-Differenzen• Expansionsabbildung E:

E(x) E(x*) = E(x x*)• Bitweise Addition mit Rundenschlüssel k:

(x k) (x* k) = x x*• Permutation P:

P(x) P(x*) = P(x x*)• Verknüpfung von Zwischenwerten

(Input und Output aufeinander folgender Rundenfunktionen):(x y) (x* y*) =

(x x*) (y y*)

Klartext m = (Lm, Rm)

f

f

. . .

x1y1

x2y2

k1

k2

Page 145: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 145

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

• Substitutionsboxen Si– Nichtlinear komplexe Beziehungen zwischen Eingabe-

und Ausgabedifferenzen

– 26·24 mögliche Tupel von Eingabe- und Ausgabedifferenzen

– nicht alle möglichen Ausgabedifferenzen SiO‘ existieren– existierende SiO‘ sind nicht gleichwahrscheinlich

SiI

SiO

SiI*

SiO*

SiI‘ = SiI SiI*

SiO‘ = SiO SiO*

Eingabe:

Ausgabe:

Differenz:

Si

6

4

Si

6

4

Page 146: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 146

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Beschreibung der Differenzen – Differenzentabelle

S1I* = S1O‘ = S1O S1O*S1I S1I‘ 0000 0001 0010 0011 … 1101 1110 1111

000000 110100000001 110101

111110 001010 1111111 001011 1Differenzenverteilung: 0 8 16 6 … 8 0 6

Differenzentabelle für S1, Eingabediff. S1I‘ = 1101002 = 34x

S1I

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

0123

8310155

91061211

1061293

111211714

1259310

1395100

140356

1578013

0140415

1415112

2137148

31482

4214134

515269

6111321

781117

S1:

Page 147: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 147

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Differenzenverteilungstabelle von S1

80006

901064

A01284

B0460

C010122

D0662

E0242

F0420

0640014

10004

20002

30682

400010

50246

60444

70442

0123

444

422

004

428

008

1286

442

442

004

888

624

222

224

640

042

8144

...

...

Eingabe-diff. S1I

’Ausgabedifferenzen S1O

333435

3D3E3F

...

402

482

6164

260

1028

800

400

2120

4614

004

206

208

400

682

0414

460

444

422

004

428

008

1286

442

442

004

888

624

222

224

640

042

8144

...

S1I‘ S1O

‘, z.B.: 34x 1x, 34x 2x, 34x 5x

Page 148: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 148

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Analyse der Rundenfunktion (1)

Ef

P

S2S1 S8

S1I‘

S1E S2E S8ES3E … S1K S2K S8KS3K …

S2I‘ S8I‘

S1O, S1O*

S1O‘S2O , S2O

*

S2O‘

S8O , S8O*

S8O‘

gewählt: x, x* x‘ gesucht: k

S1E‘, S2E‘, …, S8E‘

beobachtet: y, y* y‘

Page 149: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 149

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Analyse der Rundenfunktion (2)• Gewählt: Inputpaar x, x* ( x’)• Beobachtet: y, y* Outputdifferenz y’

1. Schritt:Bestimmung von Kandidaten für die Belegung der Input-Vektoren der S-Box

2. Schritt:Ermittlung möglicher Schlüsselbits mit Hilfe der ermittelten Input-Vektoren

• Wiederholen dieser Schritte zur weiteren Einschränkung des Schlüsselraums

• Vollständige Suche über eingeschränkten Schlüsselraum

Beispiel: S1E = 01x, S1E* = 35x; S1O‘ = 0Dx

Page 150: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 150

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Mögliche Inputpaare für S1I‘ = 34x

Outputdiffe-renzen S1O‘

Eingabepaare für S1I‘ = 34x

1 03, 37; 0F, 3B; 1E, 2A; 1F, 2B

2 04, 30; 05, 31; 0E, 3A; 11, 25; 12, 26; 14, 20;1A, 2E; 1B, 2F

3 01, 35; 02, 36; 15, 21

4 13, 27

7 00, 34; 08, 3C; 0D, 39; 17, 23; 18, 2C; 1D, 29

8 09, 3D; 0C, 38; 19, 2D

D 06, 32; 10, 24; 16, 22; 1C, 28

F 07, 33; 0A, 3E; 0B, 3F

Page 151: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 151

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Mögliche Schlüsselbits S1K

S1I, S1I* Mögliche Schlüsselbits

06, 32 07, 33

10, 24 11, 25

16, 22 17, 23

1C, 28 1D, 29

S1I, S1I* Mögliche Schlüsselbits

01, 35 20, 14

02, 36 23, 17

15, 21 34, 00

1. Paar: S1E = 01x, S1E

* = 35x

S1I‘ = 34x

S1O‘ = 0Dx

2. Paar: S1E = 21x, S1E

* = 15x

S1I‘ = 34x

S1O‘ = 03x

Page 152: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 152

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Analyse des DES mit 3 Runden

m = (Lm, Rm)

c = (Lc , Rc)

f

k1

f

k2

f

k3

y1 x1 = Rm

y2 x2

y3 x3 = Rc

LC = y3 x2

y3 = Lc Lm y1

LC = y3 Lm y1

y3* = Lc

* Lm* y1

*

y3‘ = Lc‘ Lm‘ y1‘

Rm‘ = 0 y1‘ = 0

Outputdifferenz der 3. Runde bestimmen:

Page 153: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 153

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Analyse des DES• Bei mehr als 5 Runden kann die Ausgabedifferenz der letzten

Runde nicht mehr berechnet werden• Betrachtung der einzelnen S-Boxen:

Inputdifferenz SiI’ liefert Outputdifferenz SiO’ mit P(Si, SiI’ SiO’ ) (Differenzenverteilungstabelle)

• Analyse der Input- und Output-Differenzen der Rundenfunktion m. H. der Input- und Output-Differenzen der S-Boxen:

• Verfolgen von Differenzen und Wahrscheinlichkeiten über mehrere Runden: Charakteristik

8

1

)'',()'',(i

OI SiSiSiPyxfP

Page 154: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 154

n-Runden-Charakteristik (1) = (m, , c) = (1, 2, …, n) mit: i = (Ii, Oi)

m= m’ = (L m , R m)c = c’ = (L c , R c)Ii = xi’, Oi = yi’

Es gilt: I1 = R m I2 = L m O1

In = R cOn= L c In-1

2 i n-1: Oi = Ii-1 Ii+1

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

f

Schlüsseltext c

Klartext m

f

f

. . .

x1y1

x2y2

x16y16

k1

k2

k16

fx15y15

k15

Page 155: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 155

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

n-Runden-Charakteristik (2)• Wahrscheinlichkeit pi

der Runde i einer Charakteristik pi

= P(Ii Oi)• Wahrscheinlichkeit p einer n-Runden-Charakteristik

• Richtiges Paar bzgl. einer n-Runden-Charakteristik und eines unabhängigen Schlüssels k:– m’ = m und c’ = c

– für die ersten n Runden der Berechnung gilt:xi’ = Ii ⁄ yi’ = Oi

• Übrige Paare: falsche Paare

n

iipp

1

Page 156: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 156

c = ( , 00 00 00 00)

y1‘ = (00 00 00 00)

m = (L m, 00 00 00 00)

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

1-Runden-Charakteristik mit p = 1einziger möglicher Fall: Ii = (00 00 00 00)

f

k1x1‘ = (00 00 00 00)

p = 1

L m

Page 157: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 157

532

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

1-Runden-Charakteristik mitIi ∫ 0• Ziel: p möglichst groß

– SiI’ 0 für nur eine S-Box: nur die mittleren Bits dürfen mit 1 belegt sein

SiI’ = 000100 001000 001100 = 04x 08x 0Cx

– Wahrscheinlichkeit für SiI’ SiO’ maximal (S1: bei 0Cx Ex)

• 1-Runden-Charakteristik mit p = für

S1: 0Cx Ex mit Wahrscheinlichkeit

S2, …, S8: 00x 0x mit Wahrscheinlichkeit 1

1 3 42

1 2 43

S1E:

1464

14

64

Page 158: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 158

m = (L m, 60 00 00 00)

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

1-Runden-Charakteristik mit p = 1464

1464 = P(E0 00 00 00)

c = (L m 00 80 82 00, 60 00 00 00)

y1‘ = (00 80 82 00)p = f

k1x1‘ = (60 00 00 00)

P(E0 00 00 00): 161219

715813

20232430

2126146

2953222

12182711

283134

1710925

Page 159: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 159

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Konkatenation von n-Runden Charakteristikena = (m,a, ,a, c,a) sei n-Runden-Charakteristik,b = (m,b, ,b, c,b) sei m-Runden-Charakteristikm,a = (L m,a, R m,a), c,a = (L c,a, R c,a) etc.

a und b können verbunden werden, falls

L c,a = R m,b und R c,a = L m,b

= ab = (m,a, , c,b)mit = (a1, a2, …, an, b1, b2, …, bm)

Page 160: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 160

m = (00 80 82 00 60 00 00 00)

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

3-Runden-Charakteristik mit p = 0,051464

2

c = (00 80 82 00 60 00 00 00)

1464

y1‘ = (00 80 82 00)p = f

k1x1‘ = (60 00 00 00)

y2‘ = (00 00 00 00)p = 1 f

k2x2‘ = (00 00 00 00)

1464

y3‘ = (00 80 82 00)p = f

k3x3‘ = (60 00 00 00)

1

2

3

Page 161: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

Iterative Charakteristik = (m, , c)• kann mit sich selbst konkateniert warden: L m = R c ⁄ R m = L c

• erlaubt Konstruktion von n-Runden-Charakteristiken mit begrenzter Verringerung von p

• besonders hilfreich: SiI’ SiO’ mit SiI’ 0 ⁄ SiO’ = 0

Kryptographie und Kryptoanalyse 161

m = (L m,00 00 00 00)

c = (00 00 00 00, L m)

y1‘ = (00 00 00 00)p = 1 f

k1x1‘ = (00 00 00 00)

y2‘ = (00 00 00 00)p f

k2x2‘ = (L m)

1

2

Page 162: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 162

4 Symmetrische Verfahren – Differentielle Kryptoanalyse

• Falsche Paare liefern nicht notwendigerweise den richtigen Teilschlüssel Betrachten der Schnittmenge i. Allg. nicht möglich

• Richtiger Teilschlüssel jedoch häufiger vertreten (mit Wahrscheinlichkeit p von den richtigen Paaren geliefert, dazu kommt zufälliges Auftreten in falschen Paaren)

• DES: Erschweren der differentiellen Kryptoanalyse durch entsprechende Designkriterien für die Substitutionen und Permutationen Don Coppersmith: The Data Encryption Standard and its strength against attacks. IBM Journal of Research and Development 38/3, 1994, 243-250.

• Wichtiges Designkriterium: möglichst hohe Anzahl aktiver S-Boxen pro Runde

Page 163: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 163

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Lineare Kryptoanalyse• Matsui, M.: Linear Cryptanalysis Method for DES Cipher.

Advances in Cryptology – EUROCRYPT '93, LNCS 765, Springer-Verlag, 386-397.

• Klartext-Schlüsseltext Angriff• Anwendbar für iterierte Blockchiffren• Aufwand: ca. 243 Klartextblöcke erforderlich

• Prinzip:– Ziel: Approximation der Chiffrierfunktion durch eine lineare

Abbildung– Suche nach Approximationsgleichungen mit möglichst hoher

Güte– Untersuchung genügend vieler Klartext-Schlüsseltext-Paare

liefert Schlüsselbits

Page 164: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 164

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Grundlagen• Körper:

Menge F2 = {0, 1}, Addition , Multiplikation ·• Vektorraum:

Menge Addition: (b1, b2, …, bn) (c1, c2, …, cn) = (b1 c1, b2 c2, …, bn cn)Skalare Multiplikation: a · (b1, b2, …, bn) = (a · b1, a · b2, …, a · bn)

• U, V Vektorräume über K; L: U V Abbildung • L linear, wenn für alle u, u1, u2 U und k K gilt:

– L(u1 + u2) = L(u1) + L(u2)– L(k· u) = k· L(u)

}|),...,,{( 2212 FF inn bbbb

Page 165: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 165

4 Symmetrische Verfahren – Lineare Kryptoanalyse

• Matrixdarstellung einer linearen Abbildung4

432162654321

462 22

)(;)(;: FFFF aaaaaeeeeeeeL

6

5

4

3

2

1

464544434241

363534333231

262524232221

161514131211

4

3

2

1

)(

eeeeee

llllllllllllllllllllllll

eL

aaaa

646242141

636232131

626222121

616212111

...

...

...

...

elelelelelelelelelelelel

Page 166: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 166

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Vorüberlegungen zur linearen Kryptoanalyse• DES: Substitutionen sind die einzigen nicht-linearen

Abbildungen• Lineare Abhängigkeit einzelner Ausgabebits einer S-Box

SiO[i]? gesucht: Funktionen mit

SiO[i] = (SiI) = l1SiI[1] l2SiI[2] … l6SiI[6]

Paritätsfunktionen (alle Bits: Parität; nur Berechnung über bestimmte Bits: gewichtete Parität)

• Kennzeichnung der verwendeten Bits mittels Auswahlvektor w: wTSiI

Indexmenge: Angabe der verwendeten Positionen SiI[p1, p2, …]

262: FF

Page 167: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 167

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Untersuchung der Substitutionsboxen• Paritätsfunktionen bzgl. der Eingabe SiI

nicht vorhanden• Paritätsfunktionen bzgl. Eingabe SiI und Ausgabe SiO

Auswahlvektoren u = (u1u2u3u4u5u6) und v = (v1v2v3v4)mit uTSiI = vTSiO

nicht vorhanden (Ausnahme u = 000000, v = 0000)• Affine Abbildungen

Auswahlvektoren u, v, bei denen uTSiI und vTSiO stets unterschiedlichNutzen für Analyse: uTSiI = vTSiO 1 nicht vorhanden

Approximation notwendigGüte pA der Approximation der Funktion S: Anteil der Argumente, in denen die Funktionswerte übereinstimmen

Page 168: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 168

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Beste lineare Approximation von S5O[1]

Substitution Lineare Abbildung (Auswahlvektor u)S5I S5O 000000 000001 … 110111 … 111110 111111

000000 0010 0 0 … 0 … 0 0000001 1110 0 1 … 1 … 0 1000010 1100 0 0 … 1 … 1 1000011 1011 0 1 … 0 … 1 0000100 0100 0 0 … 1 … 1 1

111101 0101 0 1 … 0 … 0 1111110 1110 0 0 … 0 … 1 1111111 0011 0 1 … 1 … 1 0

Häufigkeit: 32 32 … 44 … 34 34

... ... ... ...... ... ...

Page 169: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 169

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Approximationsmatrix von S5

832323632

932323232

A32323430

B32323038

C32323430

D32323030

E32323236

F32322828

064323232

132323632

232323030

332323438

432323030

532323430

632322836

732323228

000000000001000010000011

303434

423030

323038

323030

343632

342832

363228

323632

323232

362828

343628

342828

363446

363438

303026

343430

...

...

Ausw.-vektor u

Auswahlvektor v

001111010000010001

111101111110111111

...

323232

303434

303030

403232

383236

363034

322630

342428

343236

363034

403034

302832

403224

263426

344234

321236

...

Page 170: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 170

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Bestimmung von Schlüsselbits

k

S5

S5I

S5O

m

c

mit pA = 0,81:(010000)Tm (010000)Tk

= (1111)Tc 1

bzw. m[2] k[2] = c[1,2,3,4] 1

Umstellen nach k[2]:k[2] = m[2] c[1,2,3,4] 1

Analyse von genügend Klartext-Schlüsseltext-Paaren liefert k[2]

6

6

4

Page 171: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 171

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Analyse der DES-Rundenfunktion• Verwendung der Approximationsfunktion• Einbeziehung der Expansionsabbildung E

und der Schlüsseladdition

• Berücksichtigung der Permutation P

Approximationsgleichung für Rundenfunktion

32481216202428

26101418222630

37111519232731

48121620242832

5913172125291

1591317212529

161219

715813

20232430

2126146

2953222

12182711

283134

1710925

Page 172: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 172

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Allgemeines VorgehenVorbereitung:

Auswahlvektoren u, v, w bestimmen mit:wTk = uTm vTc oderwTk = uTm vTc 1

Güte der Approximation pA > 0,5

1. Schritt:Untersuchung von N Klartext-Schlüsseltext-PaarenZ: Anzahl von Paaren, für die die rechte Seite der entsprechenden Gleichung 0 ist

2. Schritt:Z > N/2: wTk = 0Z < N/2: wTk = 1

Page 173: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 173

4 Symmetrische Verfahren – Lineare Kryptoanalyse

Analyse des DES mit 3 Runden

m = (Lm, Rm)

c = (Lc , Rc)

f

k1

f

k2

f

k3

y1 = Lm x2 x1 = Rm

y2 x2

y3 = Lc x2 x3 = Rc

k[26] =1

1 1x[17] y[3,8,14,25] 1

k[26] =3

3 3x[17] y[3,8,14,25] 1

Page 174: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 174

4 Symmetrische Verfahren – AES

AES (Advanced Encryption Standard)• 1997 Ausschreibung eines öffentlichen Wettbewerbs für die

Einreichung eines kryptographischen Algorithmus “AES” alsNachfolger des DES durch das National Institute of Standards and Technology (NIST) der USA

• Kriterien:– Sicherheit (bestmöglich, resistent gegen alle bekannten

Angriffe)– Kosten (weltweit ohne Einschränkungen und Lizenzgebühren

verfügbar)– Performance (effiziente Realisierbarkeit in Hard- und Software)– Algorithmische Eigenschaften (klar strukturiert, flexibel, für

möglichst viele Anwendungen einsetzbar)• Einreichungsfrist bis zum 15.6.1998• 15 Algorithmen erfüllten formale Kriterien und wurden in

einer ersten Verfahrensrunde begutachtet

Page 175: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 175

4 Symmetrische Verfahren – AES

August 1999: 5 Finalisten• MARS (IBM, USA):

komplexes Verfahren mit 32 Runden, aus Feistel-Chiffre abgeleitet

• RC6 (Ron Rivest u.a., RSA Labs, USA): “Rons Code”, Weiterentwicklung von RC5, basiert auf Feistel-Netzwerk mit 20 Runden

• Rijndael (Vincent Rijmen und Joan Daemen, Belgien): SP-Netzwerk mit wahlweise 10, 12 oder 14 Runden; Weiterentwicklung von SAFER

• Serpent (Ross Anderson/UK, Eli Biham/Israel, Lars Knudsen/Norwegen): SP-Netzwerk mit 32 Runden

• Twofish (Bruce Schneier u.a., USA): Weiterentwicklung von Blowfish, Feistel-Algorithmus mit 16 Runden

Page 176: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 176

4 Symmetrische Verfahren – AES

Sieger des Wettbewerbs: Rijndael• Entscheidung Oktober 2000• Begründung:

Beste Kombination von Sicherheit, Leistungsfähigkeit, Effizienz und Implementierbarkeit sowohl in Software als auch in Hardware.

• Publikation als Standard im Herbst 2001 (FIPS Standard „Specification for the Advanced Encryption Standard“, FIPS 197)

• 2002 trat AES in Kraft• Einsatz z.B.: Verschlüsselungsstandard 802.1 für Wireless

LAN bzw. für Wi-Fi WPA2, SSH, IPSec, 7-Zip, PGP

Page 177: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 177

4 Symmetrische Verfahren – AES

Überblick über den Algorithmus• Verschlüsselung von Klartextblöcken der Länge 128 Bit

(vorgeschlagene Längen von 192 und 256 Bits nicht standardisiert)

• Schlüssellänge wahlweise 128, 192 oder 256 Bits• Mehrere Runden, jeweils Substitutionen, Permutationen und

Schlüsseladdition• Anzahl der Runden r hängt von Schlüssel- und Klartextlänge

ab:Schlüssel- Blocklänge des Klartextes nb

länge nk 128 Bit 192 Bit 256 Bit128 Bit 10 12 14192 Bit 12 12 14256 Bit 14 14 14

Page 178: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 178

Iterationsrunde r

Iterationsrunde 2

Iterationsrunde 1

4 Symmetrische Verfahren – AES

Struktur des AES

......

Teil-schlüs-

sel-generie-

rung

k1nb

k2nb

krnb

mi

ci

nb

nb

k0nb

k nk

Page 179: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 179

4 Symmetrische Verfahren – AES

Struktur der Iterationsrunden

Runde i, i = 1, 2, …, r-1

SubBytes

MixColumn

ShiftRow

ki

si,a

si,c

si,b

si,d

si

si+1

Runde r

SubBytes

ShiftRow

kr

sr,a

sr,c

sr,b

sr

Page 180: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 180

4 Symmetrische Verfahren – AES

Notation• Darstellung eines Bytes als Folge von Bits:

a = {a7a6a5a4a3a2a1a0}2, ai {0,1}

• Darstellung als Polynom:

• Darstellung als Hexadezimalzahl

7

0i

ii xaa

Page 181: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 181

4 Symmetrische Verfahren – AES

Darstellung der OperandenByte-Matrizen mit 4 Zeilen und Nb (Nk) Spalten mit Nb (Nk): Blocklänge nb (Schlüssellänge nk) / 32

a0,0 a0,1 a0,2 a0,3 a0,4 a0,5 a0,6 a0,7

a1,0 a1,1 a1,2 a1,3 a1,4 a1,5 a1,6 a1,7

a2,0 a2,1 a2,2 a2,3 a2,4 a2,5 a2,6 a2,7

a3,0 a3,1 a3,2 a3,3 a3,4 a3,5 a3,6 a3,7

Matrix (state) für Blocklänge

128 , 192 , 256

Bit

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

Schlüssel für Schlüssellänge

128 , 192 , 256

Bit

Page 182: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 182

4 Symmetrische Verfahren – AES

Mathematische Grundlagen• Alle Verschlüsselungsschritte basieren auf Operationen in

endlichen Strukturen• Alle Bytes als Elemente des Körpers GF(28) interpretierbar:

a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0 mod m(x)mit m(x) = x8 + x4 + x3 + x + 1 (irreduzibles Polynom)

• Addition :a = {a7a6a5a4a3a2a1a0}, b = {b7b6b5b4b3b2b1b0}c = a b mit ci = ai bi

• Multiplikation :c = a b = a · b mod m(x)

Page 183: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 183

4 Symmetrische Verfahren – AES

• Polynome dritten Grades mit Koeffizienten aus GF(28):Polynomring GF(28)[x]/(x4+1)

a(x) = a3x3 + a2x2 + a1x + a0 mit ai GF(28)

• Addition :c(x) = a(x) b(x) =

(a3 b3)x3 + (a2 b2)x2 + (a1 b1)x + (a0 b0)

• Multiplikation :c(x) = a(x) b(x) = a(x) · b(x) mod (x4+1)

Page 184: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 184

4 Symmetrische Verfahren – AES

c(x) = c6x6 + c5x5 + c4x4 + c3x3 + c2x2 + c1x + c0

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 + d1x + d0

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)

Page 185: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 185

4 Symmetrische Verfahren – AES

Schritt 1: SubBytes• Alle Bytes einer Matrix werden unabhängig voneinander

substituiert• Nichtlinearität

a0,0 a0,1 a0,2 a0,3

a1,0 a1,1 a1,2 a1,3

a2,0 a2,1 a2,2 a2,3

a3,0 a3,1 a3,2 a3,3

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

a1,1 b1,1

bi,j := S8(ai,j)

si,a = = si,b

Page 186: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 186

4 Symmetrische Verfahren – AES

Substitutionsbox S8(a7a6a5a4a3a2a1a0)

830AD3407526A45BC

901D4A5123BCBF9B6

A67A2E580D6BE02DA

B2BAFF1E2B3397F21

CFE9C71EB294A5010

DD7A4D827E34C3CFF

EAB7231B22F589FF3

F76C0157584CFA8D2

063CAB7040953D051

17C82FDC783D1EFA3

277C993232C00AA40

37B7D26C31AEDFB8F

4F2FA36181B204392

56B593F966EFC4D9D

66F47F7055AB13338

7C5F0CC9AA05B85F5

01234567

CDEF

E8619B41

DD351E99

7457872D

1FB9E90F

4B86CEB0

BDC15554

8B1D28BB

8A9EDF16

BA70E18C

783EF8A1

25B59889

2E66110D

1C4869BF

A603D9E6

B4F68E42

C60E9468

... ...

a7a6a5a4 a3a2a1a0

Page 187: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 187

4 Symmetrische Verfahren – AES

Schritt 2: ShiftRow• Zyklische Verschiebung der Zeilen nach links• Diffusion

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

c0,0 c0,1 c0,2 c0,3

c1,0 c1,1 c1,2 c1,3

c2,0 c2,1 c2,2 c2,3

c3,0 c3,1 c3,2 c3,3

si,b = = si,c

Zeile 0 1 2 3

Nb = 4 0 1 2 3

Nb = 6 0 1 2 3

Nb = 8 0 1 3 4

Page 188: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 188

4 Symmetrische Verfahren – AES

Schritt 3: MixColumn• Operiert jeweils auf Spalten der Matrix (32-Bit Substitution)• Diffusion

c0,0 c0,1 c0,2 c0,3

c1,0 c1,1 c1,2 c1,3

c2,0 c2,1 c2,2 c2,3

c3,0 c3,1 c3,2 c3,3

d0,0 d0,1 d0,2 d0,3

d1,0 d1,1 d1,2 d1,3

d2,0 d2,1 d2,2 d2,3

d3,0 d3,1 d3,2 d3,3

di := a(x) ci mod (x4+ 1)

c0,1

c1,1

c2,1

c3,1

d0,1

d1,1

d2,1

d3,1

si,c = = si,d

Page 189: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 189

4 Symmetrische Verfahren – AES

di := a(x) ci mod (x4+1)

a(x) = {03} x3 + {01} x2 + {01} x + {02}

d0,i = ({02}·c0,i) ({03}·c1,i) c2,i c3,id1,i = c0,i ({02}·c1,i) ({03}·c2,i) c3,id2,i = c0,i c1,i ({02}·c2,i) ({03}·c3,i)d3,i = ({03}·c0,i) c1,i c2,i ({02}·c3,i)

d0,i

d1,i

d2,i

d3,i

c0,i

c1,i

c2,i

c3,i

02 03 01 0101 02 03 0101 01 02 0303 01 01 02

=

Page 190: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 190

4 Symmetrische Verfahren – AES

Schritt 4: AddRoundKey• Macht Iterationsrunden schlüsselabhängig• Länge des Rundenschlüssels ki: nb

d0,0 d0,1 d0,2 d0,3

d1,0 d1,1 d1,2 d1,3

d2,0 d2,1 d2,2 d2,3

d3,0 d3,1 d3,2 d3,3

a0,0 a0,1 a0,2 a0,3

a1,0 a1,1 a1,2 a1,3

a2,0 a2,1 a2,2 a2,3

a3,0 a3,1 a3,2 a3,3

si,d si+1,a

k0,0 k0,1 k0,2 k0,3

k1,0 k1,1 k1,2 k1,3

k2,0 k2,1 k2,2 k2,3

k3,0 k3,1 k3,2 k3,3

ki

=

Page 191: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 191

4 Symmetrische Verfahren – AES

Teilschlüsselgenerierung• Expansion des AES-Schlüssels, abhängig von nb und nk

• nb bestimmt Länge der Rundenschlüssel• nb und nk bestimmen Anzahl der Runden Anzahl der

Rundenschlüssel

• Länge des expandierten Schlüssels in Byte = 4Nb(r+1):

Schlüssel- Blocklänge des Klartextes nb

länge nk 128 Bit 192 Bit 256 Bit128 Bit 16·11 24·13 32·15192 Bit 16·13 24·13 32·15256 Bit 16·15 24·15 32·15

Page 192: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 192

4 Symmetrische Verfahren – AES

Teilschlüsselgenerierung• Verschiedene Expansionsalgorithmen für Nk = 4, 6

und Nk = 8• Expandierter Schlüssel: Folge von 4-Byte Blöcken wi

w0 w1 w2 … wi … wN *(r+1)-1

• Auswahl der Rundenschlüssel:

w0 w1 w2 … wN -1 wN wN +1 …

k0 k1

b bb

b

Page 193: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 193

4 Symmetrische Verfahren – AES

SubWordRot

w0

k[0:3]

w1

k[4:7]w3

k[12:15]

w2

k[8:11]

w4

w7

w6

w5

Rcon[1]

SubWordRot

… … … …

Rcon[2]

Schlüsselexpansion für Nk = 4

Page 194: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 194

4 Symmetrische Verfahren – AES

Schlüsselexpansion – Verwendete Funktionen

• Rot: zyklische VerschiebungRot([a0, a1, a2, a3]) = [a1, a2, a3, a0]

• SubWord: byteweise Substitution unter Nutzung von S8SubWord([a0, a1, a2, a3]) = [S8(a0), S8(a1), S8(a2), S8(a3)]

• Rcon: Konstante für die betreffenden RundenRcon[j = i/Nk] = [xj-1, {00}, {00}, {00}]

Page 195: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 195

Entschlüsselung• Umgekehrte Reihenfolge, inverse Funktionen

• Zum Schluss Addition des Rundenschlüssels k0

4 Symmetrische Verfahren – AES

Runde r Runde i, i = r-1, r-2, …, 1

kr

siShiftRow-1

SubBytes-1

MixColumn-1

SubBytes-1

ShiftRow-1

ki

si,a

si,c

si,b

si,d

si

si+1

sr,a

sr,c

sr,b

sr

Page 196: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 196

4 Symmetrische Verfahren – AES

Inverse Funktionen• ShiftRow-1:

zyklische Verschiebung nach rechts

• SubBytes-1:Anwendung der inversen Substitution ai,j := S8

-1(bi,j)

• MixColumn-1:Multiplikation mit dem multiplikativen Inversen mod (x4 + 1)a-1(x) = ({03} x3 + {01} x2 + {01} x + {02})-1 mod (x4 + 1)

= {0b} x3 + {0d} x2 + {09} x + {0e}

Page 197: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 197

4 Symmetrische Verfahren – AES

Entschlüsselung in äquivalenter Reihenfolge• SubBytes(ShiftRow(si)) = ShiftRow(SubBytes(si))

undSubBytes-1(ShiftRow-1(si)) = ShiftRow-1(SubBytes-1(si))

• MixColumn(si ki) = MixColumn(si) MixColumn(ki) undMixColumn-1(si ki) = MixColumn-1(si) MixColumn-1(ki)

Reihenfolge der Abarbeitung wie bei Verschlüsselung ki’ = MixColumn-1(ki), i = 1, 2, …, r-1

Page 198: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 198

4 Symmetrische Verfahren – AES

Entschlüsselung in äquivalenter Reihenfolge• Addition des Rundenschlüssels kr

Runde i, i = r-1, r-2, …, 1

SubBytes-1

MixColumn-1

ShiftRow-1

ki‘

si,a

si,c

si,b

si,d

si+1

si

SubBytes-1

ShiftRow-1

k0

s1,a

s1,c

s1,b

s1

Page 199: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – AES

Analyse des AES• Darstellung als algebraische Formel 2001 [FeSW_01]

(für nk = 128 ca. 250 Terme, für nk = 256 ca. 270 Terme)• XSL-Angriff (Extended Sparse Linearisation) [CoPi_02]

(Darstellung mit Hilfe eines quadratischen Gleichungssystems; für nk = 128: 8000 Gleichungen mit 1600 Variablen)

• Weitere Angriffe wie z.B. Collision attacks, Related-key attacks und Seitenkanalangriffe

• Übersicht über Angriffe z.B. unter: http://www.cryptosystem.net/aes/http://www.iaik.tugraz.at/content/research/krypto/aes/

Kryptographie und Kryptoanalyse 199

Page 200: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – Betriebsarten

Betriebsarten Verschlüsselung längerer Nachrichten, Authentikation

Beispiele für Betriebsarten:– Verschlüsselung:

• Electronic Code Book (ECB)• Cipher Block Chaining (CBC)• Cipher Feedback (CFB)• Output Feedback (OFB)• Counter Mode (CTR)

– Authentikation:• Cipher-based MAC (CMAC)

– Authentikation und Verschlüsselung:• Counter with CBC-MAC (CCM)• Galois/Counter Mode (GCM bzw. GMAC)

Kryptographie und Kryptoanalyse 200

1981 für DES standardisiert

(FIPS 81)

Page 201: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 201

4 Symmetrische Verfahren – Betriebsarten

• Anwendung der Betriebsarten erlaubt die Konstruktion von synchronen oder selbstsynchronisierenden „Stromchiffren“ aus Blockchiffren (zugrunde liegendes Alphabet wird dabei teilweise gewechselt) – Synchrone Stromchiffre: Verschlüsselung eines Zeichens ist

abhängig von der Position bzw. von vorhergehenden Klartext-oder Schlüsselzeichen

– Selbstsynchronisierende Stromchiffre: Verschlüsselung ist nur von begrenzter Anzahl vorhergehender Zeichen abhängig

• ECB, CBC und CFB: selbstsynchronisierende Stromchiffre• OFB, CTR: synchrone Stromchiffre

Page 202: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 202

4 Symmetrische Verfahren – Betriebsarten

• Betrachtung von Fehlerauswirkungen / Manipulationen– Zeitpunkt des Fehlers / der Manipulation

• während der Übertragung (Speicherung)• während der Ver- bzw. Entschlüsselung (transient)

– Art des Fehlers / der Manipulation• Additive Fehler: Verfälschung einzelner Bits („Addition

eines Fehlermusters“); Blockgrenzen bleiben erhalten• Synchronisationsfehler: Hinzufügen bzw. Verlust von

Blöcken / Bits (letzteres ändert die Blockgrenzen)

enc

Sender Empfän-ger

dec

Page 203: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 203

4 Symmetrische Verfahren – Betriebsarten

Electronic Codebook (ECB)

ci = enc(k, mi), 1 < i ≤ n

k

enclmi l ci

Verschlüsselung Entschlüsselung

mi = dec(k, ci), 1 < i ≤ n

c = enc(k, m1) enc(k, m2) ... enc(k, mn) m = dec(k, c1) dec(k, c2) ... dec(k, cn)

k

decci mil l

Page 204: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 204

4 Symmetrische Verfahren – Betriebsarten

Electronic Codebook (ECB) – Eigenschaften• Selbstsynchronisierend (Abhängigkeit von 0 Blöcken)• Länge der verarbeiteten Einheiten: entsprechend Blockgröße

der Blockchiffre (DES: l = 64 Bit) • Keine Abhängigkeiten zwischen den Blöcken

– Direktzugriff auf einzelne Schlüsseltextblöcke möglich– gleiche Klartextblöcke liefern gleiche Schlüsseltextblöcke ggf. Kodebuchanalysen möglich

• Fehlerauswirkungen– additive Fehler: keine Fehlerfortpflanzung– Synchronisationsfehler bzgl. ganzer Blöcke: keine

Fehlerfortpflanzung gezieltes Einfügen und Entfernen von Blöcken möglich

– Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft, bis Blockgrenzen erneut festgelegt (falls nicht explizit kenntlich gemacht)

Page 205: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 205

4 Symmetrische Verfahren – Betriebsarten

Cipher Block Chaining (CBC) – Verschlüsselung

k

lenc

l

…1 l

cimi

ci-1 IV

c1 = enc(k, (m1 IV )); IV: Initialisierungsvektorci = enc(k, (mi ci-1)), 1 < i ≤ n

c = enc(k, (m1IV)) enc(k, (m2c1)) enc(k, (m3c2)) … enc(k, (mncn-1))

Speicher für Schlüsseltextblock ci-1 bzw. IV

Page 206: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 206

4 Symmetrische Verfahren – Betriebsarten

Cipher Block Chaining (CBC) – Entschlüsselung

k

ldec

l

…1 l

mici

m1 = dec(k, c1) IVmi = dec(k, ci) ci-1, 1 < i ≤ n

m = dec(k, c1) IV dec(k, c2) c1 dec(k, c3) c2 … dec(k, cn ) cn-1

ci-1 IV

Speicher für Schlüsseltextblock ci-1 bzw. IV

Page 207: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 207

4 Symmetrische Verfahren – Betriebsarten

Cipher Block Chaining (CBC)– Eigenschaften• Selbstsynchronisierend (Abhängigkeit von 1 Block)• Länge der verarbeiteten Einheiten: entsprechend Blockgröße

der Blockchiffre (DES: l = 64 Bit) • Abhängigkeiten zwischen den Blöcken

– kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich– gleiche Klartextblöcke liefern unterschiedliche

Schlüsseltextblöcke Kodebuchanalysen erschwert

• Initialisierungsvektor IV muss Sender und Empfänger bekannt sein; muss nicht geheim sein, darf aber nicht vorhersagbar sein

Page 208: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 208

4 Symmetrische Verfahren – Betriebsarten

• Fehlerauswirkungen– Fehler während der Übertragung

• additive Fehler: Fehlerfortpflanzung in den Folgeblock• Synchronisationsfehler bzgl. ganzer Blöcke: 2 Blöcke

betroffen• Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft,

bis Blockgrenzen erneut festgelegt– Fehler während der Verschlüsselung

• ab Fehlerstelle wird ein anderer Schlüsseltext erzeugt• Entschlüsselung: nur ein Klartextblock betroffen

Verfahren eignet sich zur Authentikation: Manipulationen, Einfügen und Entfernen von Blöcken erkennbar

Page 209: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 209

4 Symmetrische Verfahren – Betriebsarten

k

enc

…1 l

ci

mi

ci-1 IVletzter Schlüssel-textblock cn

CBC zur Authentikation (CBC-MAC)

letzter Schlüsseltextblock wird als MAC angehängt: m1 m2 m3 … mn cn

Empfänger berechnet ebenfalls cn und vergleicht mit erhaltenem cn

IV = 0…0

Page 210: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 210

4 Symmetrische Verfahren – Betriebsarten

Cipher Feedback (CFB) – Verschlüsselung

kenc

mi

1l rr+1… …

r ci

Schieberegister Aai Inhalt zum Zeitpunkt ia1 = IVai = LSBl-r(ai-1)|ci-1

Ausgabeblock Bbi Ausgabe zum Zeitpunkt i

rr

ci = mi selectr (enc(k, ai))für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1

select

Page 211: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 211

4 Symmetrische Verfahren – Betriebsarten

Cipher Feedback (CFB) – Entschlüsselung

kenc

ci

1l rr+1… …

r mi

rr

mi = ci selectr (enc(k, ai))für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1

select

Schieberegister Aai Inhalt zum Zeitpunkt ia1 = IVai = LSBl-r(ai-1)|ci-1

Page 212: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 212

4 Symmetrische Verfahren – Betriebsarten

Cipher Feedback (CFB) – Eigenschaften • Selbstsynchronisierend (Abhängigkeit von Einheiten; l:

Blockgröße der Chiffre; DES: l = 64)• Länge der verarbeiteten Einheiten: r < b, frei wählbar (z.B.

8 Bit, also byteweise Verarbeitung) • Abhängigkeiten zwischen den Blöcken

– kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich– gleiche Klartextblöcke liefern unterschiedliche

Schlüsseltextblöcke • Initialisierungsvektor IV muss Sender und Empfänger

bekannt sein; muss nicht geheim sein, darf aber nicht vorhersagbar sein

• Nur Verschlüsselungsfunktion verwendet – es entsteht immer eine symmetrische Chiffre

rl

Page 213: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 213

4 Symmetrische Verfahren – Betriebsarten

• Fehlerauswirkungen– Fehler während der Übertragung

• additive Fehler und Synchronisationsfehler bzgl. ganzer Blöcke: Fehlerfortpflanzung entsprechend der Abhängigkeiten von vorherigen Blöcken

• Synchronisationsfehler bzgl. Bits: Entschlüsselung fehlerhaft, bis Blockgrenzen erneut festgelegt; durch geeignete Wahl von r können Verschiebungen der Blockgrenzen verhindert werden

– Fehler während der Verschlüsselung entsprechend CBC

Verfahren eignet sich zur Authentikation (verschlüsselten letzten Block cn als MAC): Manipulationen, Einfügen und Entfernen von Blöcken erkennbar

Page 214: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 214

4 Symmetrische Verfahren – Betriebsarten

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

kenc

mi

1l…

ci

Eingabeblock Aai Inhalt zum Zeitpunkt ia1 = IV

l 1

ci = mi enc(k, ai) mi = ci enc(k, ai)

ci mi

Anmerkung: in FIPS 81 Länge der verarbeiteten Einheiten frei wählbar

ll

Page 215: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 215

4 Symmetrische Verfahren – Betriebsarten

Output Feedback (OFB) – Eigenschaften • Synchron• Abhängigkeit von Position der verarbeiteten Einheit

– kein Direktzugriff auf einzelne Schlüsseltextblöcke möglich– gleiche Klartextblöcke liefern unterschiedliche

Schlüsseltextblöcke • Initialisierungsvektor IV muss Sender und Empfänger

bekannt sein; darf bzgl. eines Schlüssels nur einmal verwendet werden

• Nur Verschlüsselungsfunktion verwendet – es entsteht immer eine symmetrische Chiffre

• Fehlerauswirkungen– additive Fehler: keine Fehlerfortpflanzung– anfällig gegen Synchronisationsfehler

Page 216: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 216

4 Symmetrische Verfahren – Betriebsarten

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

kenc

mi

1l…

ci

Ti Zähler zum Zeitpunkt iT1 Startwert des ZählersTi = inc(Ti - 1)

l 1

ci = mi enc(k, Ti) mi = ci enc(k, Ti)

ci mi

Page 217: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 217

4 Symmetrische Verfahren – Betriebsarten

Counter Mode (CTR) – Eigenschaften • Synchron• Abhängigkeit von Position der verarbeiteten Einheit

– gleiche Klartextblöcke liefern unterschiedliche Schlüsseltextblöcke

• Direktzugriff auf einzelne Schlüsseltextblöcke möglich• Zähler muss Sender und Empfänger bekannt sein, darf

bzgl. eines Schlüssels nur einmal verwendet werden• Nur Verschlüsselungsfunktion verwendet – es entsteht

immer eine symmetrische Chiffre• Fehlerauswirkungen

– additive Fehler: keine Fehlerfortpflanzung– anfällig gegen Synchronisationsfehler

• Vorteil: Effizienz

Page 218: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – Betriebsarten

Cipher-based MAC (CMAC)• Bietet auch Sicherheit für Nachrichten beliebiger Länge• Schlüssel k1 und k2 werden mit Hilfe des geheimen Schlüssels

k ermittelt (abhängig von Blocklänge) und mit letztem Nachrichtenblock XOR-verknüpft

• Berechnung des MAC ansonsten wie mit CBC (IV = 0…0); Auswahl der Tlen MSBs (most significant bits) als MAC

Kryptographie und Kryptoanalyse 218

kenc

kenc

kenc

m1 m2 mn*

k1, falls mnkompletter Block /k2 sonst

ggf. aufgefüllt

*

cn[1:Tlen]

Page 219: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – Betriebsarten

Counter with CBC-MAC (CCM)• Vertraulichkeit und Integrität für die Nachricht (payload P)• Integrität für zusätzliche Daten (assigned data A)• Zufallszahl (nonce N; verschieden für verschiedene Paare

(A,P))

• Generieren & Verschlüsseln:– MAC berechnen für P, A und N mittels CBC-MAC (IV = 0)– Verschlüsselung von N, P und MAC mittels CTR

• Entschlüsseln & Prüfen:– Entschlüsselung mittels CTR N, P, MAC– Berechnung des MAC für P, A und N mittels CBC-MAC und

Vergleich mit entschlüsseltem MAC

Kryptographie und Kryptoanalyse 219

Page 220: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

4 Symmetrische Verfahren – Betriebsarten

Galois/Counter Mode (GCM bzw. GMAC)• Vertraulichkeit und Integrität für die Nachricht• Integrität für zusätzliche Daten• Initialisierungsvektor IV (darf nur einmal verwendet werden)• GMAC: zu verschlüsselnde Nachricht der Länge 0

• Verschlüsselung: – CTR mit spezieller inc-Funktion (nur ein Teil der Bits des

Zählers werden inkrementiert)– erster Wert des Zählers von IV abgeleitet

• Berechnung des MAC:– Hashfunktion GHASH: Multiplikation mit einem festen

Parameter H (hash subkey) in einem endlichen Körper– H = enc(k, 0128)

Kryptographie und Kryptoanalyse 220

Page 221: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 221

Überblick über die Vorlesung

1. Einführung2. Grundlagen3. Klassische Verfahren4. Symmetrische Verfahren5. Asymmetrische Verfahren

– Grundlagen– Diffie-Hellman-Schlüsselaustausch– ElGamal– RSA– Kryptosysteme auf Basis elliptischer Kurven

Page 222: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 222

5 Asymmetrische Verfahren – Grundlagen

Asymmetrische Verfahren• Schlüsselverteilungsproblem bei symmetrischen Systemen• Asymmetrische bzw. Public-Key-Systeme: Schlüsselpaare,

bestehend aus privatem und öffentlichem Schlüssel

Es darf praktisch nicht möglich sein, den privaten Schlüssel aus dem öffentlichen Schlüssel zu ermitteln.

Grundlage: Trapdoor-EinwegfunktionA, B Mengenf: A B heißt Einwegfunktion, wenn gilt:f: A B leicht berechenbar für alle a A, aberf -1: B A schwierig oder nicht berechenbar für fast alle b BTrapdoor-Eigenschaft:Berechnung von f -1(b) durch Kenntnis bestimmter Zusatzparameter ebenfalls leicht berechenbar.

Page 223: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 223

5 Asymmetrische Verfahren – Grundlagen

• n = {0,1,2, …, n-1} Restklassenring modulo n• n

*: multiplikative Gruppe, n* ú {a n | ggT(a,n) = 1}

• Eulersche Φ-Funktion– Anzahl der zu n teilerfremden Zahlen kleiner n:Φ(n) ú |{a n | ggT(a,n) = 1}|

– Ordnung der Gruppe n* (bzw. p

*) ; n* ú {a n | ggT(a,n) = 1}

(Anzahl der Elemente dieser Gruppe)

– Φ(p)= p-1 (p prim)

– n = p∏q; p, q prim, p∫q: Φ(p∏q)=(p-1)(q-1)

Page 224: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 224

5 Asymmetrische Verfahren – Grundlagen

• Erweiterter Euklidscher Algorithmus (EEA)– Bestimmung von ggT(a,b) und seiner

Linearkombinationsdarstellung:

EEA(a,b) ggT(a,b) = u∏ a + v∏ b

– Bestimmung des multiplikativen Inversen a-1 von a in n

*:

EEA(a,n) ggT(a,n) = u∏ a + v∏ n = 1u = a-1 mit aa-1 1 mod n

Page 225: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

EEA: a,b N, b > a ggT(a,b), ggT(a,b) = u∏ a + v∏ b

Beispiel

Kryptographie und Kryptoanalyse 225

5 Asymmetrische Verfahren – Grundlagen

Initiali-sierung

Abbruch:rk = 0

ggT(a,b) = rk-1, u = tk-1, v = sk-1

-2 b 1 0

-1 a 0 1

… … … … …

i ri-2 mod ri-1 ri-2 div ri-1 si-2 – qi∏ si-1 ti-2 – qi∏ ti-1

… … … … …

k-1 rk-1 qk-1 v u

k 0 qk

0 b mod a b div a s-2 – q0∏ s-1 t-2 – q0∏ t-1

r q s t

Page 226: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 226

5 Asymmetrische Verfahren – Grundlagen

• Erzeugung von Primzahlen1. Wahl einer Zufallszahl p als Kandidat für die Primzahl2. Test, ob p prim ist3. Wiederholung von 1. und 2., bis Primzahl gefunden

• Primzahltest nach Rabin-Miller für p 3 mod 4p prim: a Zp: a 1 mod pfalls p nicht prim, gilt dies für höchstens ¼ der möglichen a

• Test für l zufällig gewählte Werte a durchführen – Ergebnis einmal 1: p nicht prim– Ergebnis bei allen l Versuchen = 1: p prim mit

Wahrscheinlichkeit 1 – 4-l

* p-12

Page 227: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 227

5 Asymmetrische Verfahren – Grundlagen

• Kleiner Satz von FermatFür alle x Z * gilt: x p-1 1 mod p

• Zyklische Gruppe– alle Elemente der Gruppe G lassen sich aus einem Element

g G (erzeugendes Element oder Generator) durch Potenzieren von g erzeugen: G = <g>

– Ordnung von Gruppenelementen a G: orderG a bzw. order a kleinste natürliche Zahl e mit ae = 1 (e > 0)zyklische Gruppe: order g = |G| (Ordnung von G)

– Multiplikative Gruppe Z* = {1, 2, …, p-1} (p prim) ist zyklisch:Z* = <g> = {g i mod p | i = 0, 1, …, (p)-1}

p

p

p

Page 228: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 228

5 Asymmetrische Verfahren – Grundlagen

Z7 = {1,2,3,4,5,6}

30 = 131 = 30 ∏ 3 = 332 = 31 ∏ 3 = 9 ª 2 mod 733 = 32 ∏ 3 = 634 = 33 ∏ 3 = 18 ª 4 mod 735 = 34 ∏ 3 = 12 ª 5 mod 7

36 = 35 ∏ 3 = 15 ª 1 mod 7…

*

*

36 ª 1 mod 7 order 3 = 6 3 ist Generator von Z7

x

y = 3x mod 7

0 1 2 3 4 5 6 7 8 9 10 11 120

1

2

3

4

5

6

Page 229: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 229

5 Asymmetrische Verfahren – Grundlagen

Z7 = {1,2,3,4,5,6}

20 = 121 = 20 ∏ 2 = 222 = 21 ∏ 2 = 4

23 = 22 ∏ 2 = 8 ª 1 mod 724 = 23 ∏ 2 = 225 = 24 ∏ 2 = 4

26 = 25 ∏ 2 = 8 ª 1 mod 7…

*23 ª 1 mod 7 order 2 = 3 2 ist kein Generator von Z7

*

y = 2x mod 7

x0 1 2 3 4 5 6 7 8 9 10 11 12

0

1

2

3

4

5

6

Page 230: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 230

5 Asymmetrische Verfahren – Grundlagen

• Finden eines Generators g einer Gruppe G– Satz von Lagrange: In endlichen Gruppen G teilt die Ordnung

jeder Untergruppe H die Ordnung von G: |H| | |G|.– Für a G mit order a = e und k Z gilt:

ak = 1 e | k

• Algorithmus zum Finden von g G– Benötigt: n = |G|, Primfaktorzerlegung – Wahl eines zufälligen Elements a G– Für i = 1, 2, … k:

b = 1: a kein Generator, Wahl eines anderen Elements aus G

kek

ee pppn ...2121

ipn

ab

Page 231: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 231

5 Asymmetrische Verfahren – Grundlagen

• Problem für G = Z*

– Algorithmus benötigt Primfaktorzerlegung von |G||Z*| = Φ(p) = p-1 Faktorisierung schwierig

Algorithmus für spezielle Primzahlen:sichere Primzahl: p = 2q + 1, q prim

• Algorithmus zum Finden von g Z* für sichere Primzahl p mit k Bit– Wahl einer Primzahl q mit k-1 Bit– Test, ob p = 2q + 1 prim– Suche nach Generator g mit vorherigem Algorithmus

p

p

p

Page 232: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 232

5 Asymmetrische Verfahren – Grundlagen

• Operationen in n– Addition, Subtraktion und Multiplikation leicht– Berechnung von y = a x mod n ebenfalls effizient möglich:

Square-and-Multiply-AlgorithmusBinärdarstellung des Exponenten: x10 = (xl-1xl-2 … x1x0)2

z = 1;for (i = l-1; i 0; i--) {

z = z2;if (xi == 1) then z = z a mod n;

}

Page 233: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 233

5 Asymmetrische Verfahren – Grundlagen

• Diskreter Logarithmus– Für jede Zahl y Z* gibt es einen Exponenten x mit

0 x p-2, so dass gilt:y = g x mod p.

– Der Exponent x wird diskreter Logarithmus von y zur Basis gmodulo p genannt:

x = logg y mod pBestimmen von x: Diskreter-Logarithmus-Problem

• kein Algorithmus zur effizienten Berechnung des diskreten Logarithmus bekannt

• besser als Durchprobieren: Babystep-Giantstep-Algorithmus von Shanks, aber ebenfalls nicht praktikabel für größere Gruppen (ca. ab |G| > 2160):weniger Operationen, aber mehr Speicherplatz benötigt

p

Page 234: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 234

5 Asymmetrische Verfahren – Grundlagen

• Beispiel: Diskreter Logarithmus für p = 229, g = 6

x

y = log6 x mod 229

50 100 150 200

50

100

150

200

Page 235: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 235

5 Asymmetrische Verfahren – Grundlagen

• Berechnung des diskreten Logarithmus mit dem Babystep-Giantstep-Algorithmus: x = logg y mod p

, |G|: Ordnung der Gruppe

Ansatz: x = qm + r, 0 § r < mAlgorithmus berechnet q und ry = gx y = g qm + r

(g m)q = y g -r

Babystep-Liste: B = {(i, y (g i) -1 mod p), 0 § i < m} rGiantstep-Liste: G = {(j, (g m) j mod p), 0 § j < m} q

Berechnung der Elemente von G, bis (g m) j als zweite Komponente eines Elements in B gefunden.

Page 236: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 236

5 Asymmetrische Verfahren – Grundlagen

• Weitere Algorithmen zur Ermittlung des diskreten Logarithmus sind z.B.:– Pollard- -Algorithmus (begrenzter Speicheraufwand)– Pohlig-Hellman-Algorithmus (falls p-1 kleine Primteiler hat)– Index-Calculus-Algorithmus (effizientester Algorithmus, für

prime Restklassengruppe modulo einer Primzahl)

• Möglichkeiten zur Berechnung des diskreten Logarithmus sind bei der Wahl der Parameter für entsprechende kryptographische Verfahren zu beachten!

Page 237: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 237

5 Asymmetrische Verfahren – DH-Schlüsselaustausch

Diffie-Hellman-SchlüsselaustauschÖffentlich bekannt: Primzahl p, Generator g

Teilnehmer A Teilnehmer B

wählt xA mit 0 xA p-2(xA geheim)

berechnet yA = g x mod pA

wählt xB mit 0 xB p-2(xB geheim)

berechnet yB = g x mod p

kA,B = yBx mod p kA,B = yA

x mod p

unsicherer Kanal

A

B

B

yA

yB

enc (kA,B , m)

p, g p, g

Page 238: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 238

5 Asymmetrische Verfahren – DH-Schlüsselaustausch

Sicherheit des Diffie-Hellman-Schlüsselaustauschs

• Diffie-Hellman-Problem:Geg.: p, g, yA = g x mod p und yB = g x mod pProblem: bestimme g x x mod p

• Angreifer beobachtet yA, yB, kann er xA = logg yA mod p oderxB = logg yB mod p

berechnen, kann er das Geheimnis kAB = g x x mod p ermitteln.

• sicher gegen passive Angriffe• aber: unsicher gegen aktive Angriffe

A B

A B

A B

Page 239: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 239

5 Asymmetrische Verfahren – DH-Schlüsselaustausch

Aktiver Angriff (Man-in-the-Middle-Angriff)C gibt sich gegenüber A als B und gegenüber B als A aus.

Teilnehmer A Teilnehmer B

wählt xAyA = g x mod pA

wählt xB

kA,C = yCx mod pA

yB = g x mod pB

kB,C = yCx mod pB

yC

yB

enc (kB,C , m)

Angreifer C

wählt xCyC = g x mod pC

yA

yC

enc (kA,C , m)

KanalKanal

kB,C = yBx mod pC

kA,C = yAx mod pC

p, g p, g p, g

Page 240: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 240

5 Asymmetrische Verfahren – DH-Schlüsselaustausch

Abhilfe: Vertrauenswürdige Instanz

Teilnehmer A Teilnehmer B

wählt xAyA = g x mod pA

wählt xB

kAB = yBx mod pA

yB = g x mod pB

kAB = yAx mod pB

Angreifer C

wählt xCyC = g x mod pC

enc (kA,B, m)

Vertrauens-würdige InstanzyA, yB, yCp, g

p, g

p, g1.

2.

3.

4.

5.

Page 241: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 241

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

ElGamal-Kryptosystem• Taher ElGamal: A Public-Key Cryptosystem and a Signature

Scheme Based on Discrete Logarithms. CRYPTO 84, Springer-Verlag, 10–18 / IEEE Transactions on Information Theory, v. 31, n. 4, 1985, 469–472.

• Basiert auf Problem des diskreten Logarithmus• Verwendung als Konzelations- und Signatursystem• Verschiedene Varianten des ElGamal-Signatursystems

bekannt; Digital Signature Algorithm (DSA) basiert auf einer dieser Varianten, DSA als Digital Signature Standard (DSS) vom NIST 1994 publiziert (FIPS186)

Page 242: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 242

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

ElGamal als Konzelationssystem

Schlüsselgenerierung Jeder Teilnehmer • wählt Primzahl p und Generator g Z*

• wählt zufällige Zahl kd mit 0 kd p-2• berechnet ke = g k mod p

• Öffentlicher Schlüssel: (p, g, ke)• Privater Schlüssel: kd

d

p

Page 243: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 243

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Verschlüsselung (B A)• Verschlüsselung von Nachrichten m Zp, d.h.,

m {0, 1, …, p-1} (ggf. Aufteilung größerer Nachrichten)• B benötigt öffentlichen Schlüssel von A: (p, g, ke)

– wählt Zufallszahl r mit 0 r p-2– berechnet c = (c1, c2) mit

c1 = g r mod pc2 = m k r mod p

– sendet c = (c1, c2) an A

Entschlüsselung• A berechnet m = c1 c2 mod p bzw. m = (c1 ) c2 mod p

e

p-1-kd-1dk

Page 244: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 244

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Anmerkungen• Systemweit gültige Parameter p, g möglich• Benutzung des zufälligen Parameters r ergibt

indeterministische Verschlüsselung

Sicherheit• Sicherheit basiert auf Diffie-Hellman-Problem• Wahl sicherer Parameter - Berechnung des DL schwierig:

– Länge von p– Anforderungen an p aufgrund spezieller Algorithmen

• sichere Verwendung: Nutzung verschiedener Zufallszahlen r für Verschlüsselung

verschiedener NachrichtenGewählter Schlüsseltext-Klartext-Angriff möglich Angriff

vereiteln

Page 245: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 245

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Verwendung verschiedener Zufallszahlen• Verschlüsselung zweier verschiedener Nachrichten m1, m2 mit

derselben Zufallszahl r ist eine der Nachrichten bekannt, kann die zweite berechnet werden:

m1: c1 = (c1,1, c1,2)m2: c2 = (c2,1, c2,2)

c1,2 c2,2: c1,2 = m1 k r mod pc2,2 = m2 k r mod p

m1 bekannt: c1,2 c2,2 = m1 m2 mod pm2 = m1 c1,2 c2,2 mod p

e

c1,1 = c2,1 = g r mod p

e

-1 -1

-1

Page 246: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 246

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Gewählter Schlüsseltext-Klartext-Angriff• Ziel: Ermittlung von m aus beobachtetem c = (c1, c2)

• Angreifer– sendet c‘ = (c1, c2 ) an Empfänger (c2 beliebig)

• Empfänger – entschlüsselt: m‘ = c1 c2 mod p

• Angreifer – berechnet: c1 = c2 (m’)-1 mod p– entschlüsselt: m = c1 c2 mod p

-kd

kd

‘-kd

Page 247: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 247

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Vereitelung des gewählten Schlüsseltext-Klartext-Angriffs• Einfügen von Redundanz vor der Verschlüsselung, z.B.

mittels einer Hashfunktion h():

m* = m, h(m)c1 = g r mod pc2 = m* k r mod p

• Überprüfung der Redundanz beim Empfänger:

Entschlüsselung liefert m* = m, xNachricht wird nur ausgegeben, wenn x = h(m)

• Anmerkung: Verwendung unterschiedlicher Zufallszahlen ( unterschiedliche c1) reicht nicht: c1 kann unkenntlich gemacht werden

e

Page 248: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 248

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

ElGamal als Signatursystem

SchlüsselgenerierungWie beim Konzelationssystem – jeder Teilnehmer• wählt Primzahl p und Generator g Z*

• wählt zufällige Zahl ks mit 0 ks p-2 • berechnet kt = g k mod p

• Öffentlicher Schlüssel: (p, g, kt)• Privater Schlüssel: ks

s

p

Page 249: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 249

Signieren• Signieren von Nachrichten m Zp, d.h.,

m {0, 1, …, p-1} (ggf. Aufteilung größerer Nachrichten oder Anwendung einer Hashfunktion h(m) mit h(m) < p)

• A führt die folgenden Schritte aus:– wählt Zufallszahl r Z*

– berechnet r -1 mit r r -1 1 mod (p-1)– berechnet s = (s1, s2) mit

s1 = gr mod ps2 = r -1 (h(m) - ks s1) mod (p-1)

– sendet m, (s1, s2)

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

p-1

Page 250: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 250

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Test der Signatur• Teilnehmer benötigt öffentlichen Schlüssel von A: (p, g, kt)

– testet, ob 1 s1 p-1– berechnet v1 = kt s1 mod p– berechnet h(m) und v2 = g h(m) mod p– akzeptiert Signatur, wenn v1 ª v2

Sicherheit• Sicherheit basiert auf Diffie-Hellman-Problem• Wahl sicherer Parameter: p (Berechnen DL schwierig)• sichere Verwendung:

Nutzung verschiedener Zufallszahlen r zum Signieren verschiedener Nachrichten

Verwendung einer Hashfunktion (sonst existentielles Brechen)

s2s1

Page 251: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 251

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Verwendung verschiedener Zufallszahlen• Signatur für zwei verschiedene Nachrichten m1, m2 mit

derselben Zufallszahl r berechnen Ermittlung des geheimen Signaturschlüssels ks:

m1: s1 = (s1,1, s1,2)m2: s2 = (s2,1, s2,2)

s1,2 s2,2: s1,2 = r -1 (h(m1) - ks s1,1) mod (p-1)s2,2 = r -1 (h(m2) - ks s2,1) mod (p-1)

s1,2 - s2,2 = r -1 (h(m1) - h(m2)) mod (p-1)

falls s1,2 - s2,2 0 mod (p-1) und ggT(s1,2 - s2,2, p-1) = 1:r = (s1,2 - s2,2)-1 (h(m1) - h(m2)) mod (p-1)

ks = s1,1 (h(m1) – s1,2 r) mod (p-1)

s1,1 = s2,1 = g r mod p

-1

Page 252: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 252

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Existentielles Brechen• nachrichtenbezogenes Brechen für irgendeine Nachricht m• Verifikationskongruenz (ohne Hashfunktion):

kt s1 g mod p

• Ersetzen: mit u, v Z, ggT(v, p-1) = 1

• Exponenten = 0 ermöglicht das Bestimmen von s2 und m:

linke Seite:rechte Seite:

s2s1

m - u s2s1 + v s2 kt g mod p

vs1 = gu kt mod p

s2 = - s1 v -1 mod (p-1)m = s2 u mod (p-1)

m

Page 253: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 253

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

• Durchführung: – Wahl von u, v Z mit ggT(v, p-1) = 1– Berechnen von s1, s2 und m

• Damit gilt:kt s1

(s1, s2) ist gültige Signatur für m = s2 u mod (p-1)

Verwendung einer Hashfunktion: nur Signaturen für h(m) berechenbar

s2s1 s2us1 -s1kt g kt gm mod p

Page 254: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 254

5 Asymmetrische Verfahren – ElGamal-Kryptosystem

Varianten des ElGamal-Verfahrens• Effizientere Verfahren (kürzere Signaturen):

– Signatursystem nach Schnorr (1989)– Digital Signature Algorithm (DSA)

• 1991 vom NIST vorgeschlagen • 1994 zum Standard erklärt (DSS, FIPS 186)

• Sicherheit gegen adaptive Angriffe:– Cramer, Shoup (1998) Konzelationssystem

(adaptive chosen-plaintext attack)– Pointcheval, Stern (1998) Signatursystem

(adaptive chosen-ciphertext attack)

• Verallgemeinerung des Verfahrens– Realisierung in beliebigen zyklischen Gruppen möglich

(Bedingung: DH-Problem schwer), z.B. Punktgruppe einer elliptischen Kurve über einem endlichen Körper

Page 255: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 255

5 Asymmetrische Verfahren – ElGamal / DSA

Digital Signature Algorithm (DSA)

• Öffentliche Parameter– Primzahl q mit 2159 < q < 2160

– Primzahl p mit q|(p-1), 2L-1 < p < 2L, 512 § L § 1024 und L = t ÿ64– Element g Z* mit order g = q

• Jeder Teilnehmer– wählt zufällig ks mit 0 < ks < q– berechnet kt = gk mod p

p

s

Page 256: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 256

Signieren• A führt die folgenden Schritte aus:

– wählt Zufallszahl r Z*

– berechnet r -1 mit r r -1 1 mod q– berechnet s = (s1, s2) mit

s1 = (g r mod p) mod qs2 = r -1 (h(m) + ks s1) mod q

– sendet m, (s1, s2)

5 Asymmetrische Verfahren – ElGamal / DSA

q

Page 257: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 257

5 Asymmetrische Verfahren – ElGamal / DSA

Test der Signatur• Teilnehmer benötigt öffentlichen Schlüssel von A: (p, q, g, kt)

– testet, ob 1 s1 q-1 und 1 s2 q-1– berechnet v1 = h(m) s2

-1 mod qv2 = s1 s2

-1 mod q– akzeptiert Signatur, wenn (g kt mod p) mod q ª s1

• Berechnungen in einer Untergruppe von Z* der Ordnung qdurchgeführt kürzere Signaturen

v2v1

p

Page 258: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 258

5 Asymmetrische Verfahren – RSA-Kryptosystem

RSA-Kryptosystem• Ronald L. Rivest, Adi Shamir, Leonhard M. Adleman: A

Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, vol. 21, no. 2, 1978, 120-126.

• Basiert auf der Faktorisierungsannahme (bislang jedoch kein Beweis)

• Verwendung als Konzelations- und Signatursystem

Page 259: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 259

5 Asymmetrische Verfahren – RSA-Kryptosystem

Mathematische Grundlagen• Berechnung von n = pq leicht, aber Faktorisierung von n

schwer• Faktorisierungsalgorithmen

– Spezielle Algorithmen: Anforderungen an die Faktoren von n– Allgemeine Algorithmen: hängen nur von der Größe von n ab

• Beispiele für spezielle Algorithmen:– Faktorisierung nach Fermat (1643)

n ungerade, p, q

• Zerlegung n = x2 – y2 = (x+y)(x–y)• Start mit • Berechnung von x2 – n, (x+1)2 – n, (x+2)2 – n, …

bis Ergebnis eine Quadratzahl ist (y2 = x2 – n)• Faktoren von n: p = x + y, q = x - y

n

nx

Page 260: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 260

5 Asymmetrische Verfahren – RSA-Kryptosystem

– Pollard (p-1)-Methode (1974) n hat Primfaktor p, für den p-1 nur kleine Primfaktoren hat

(„glatt“ bzgl. einer Schranke B)• Ermitteln eines Vielfachen k von p-1 ohne Kenntnis von p• Es gilt:

ak 1 mod p (k = l (p - 1), ggT(a, p) = 1)

p| ak – 1n F ak – 1 d = ggT(ak – 1, n) echter Teiler von n

(1 < d < n)

• Kandidaten für k: Produkte aller Primzahlpotenzen B

Page 261: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 261

5 Asymmetrische Verfahren – RSA-Kryptosystem

• Beispiele für allgemeine Algorithmen:– Quadratisches Sieb (Pomerance, 1981)– Zahlkörpersieb (Anfang der 1990er Jahre)

– Grundlage beider Verfahren:• Bestimme x, y Z, so dass gilt:

x2 y2 mod n xT ±y mod n

• Dann gilt:

n | x2 – y2 = (x – y) (x + y) n F (x – y) n F (x + y) ggT(x – y, n) und ggT(x + y, n) sind Teiler von n

– Quadratisches Sieb für Faktorisierung von Zahlen bis ca. 110 Dezimalstellen schnellster Algorithmus

• Weiteres zur Faktorisierung: http://www.rsa.com/rsalabs/(RSA Factoring Challenge, bis 2007 aktualisiert)

Page 262: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 262

5 Asymmetrische Verfahren – RSA-Kryptosystem

• Spezialfall des Chinesischen Restsatzes: für n = p·q gilt

a b mod n a b mod p a b mod qd.h.: n|(a-b) p|(a-b) q|(a-b)

• Effiziente Berechnung von f(x) mod n mit Hilfe der Kenntnis von p, q möglich (yp = f(x) mod p, yq = f(x) mod q):

y f(x) mod n y yp mod p y yq mod q

Chinesischer Restealgorithmus (CRA):1. bestimme u, v mit u·p + v·q = 1 (mittels EEA)2. y = CRA(yp, yq) = u·p·yq + v·q·yp mod n

Page 263: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 263

5 Asymmetrische Verfahren – RSA-Kryptosystem

Schlüsselgenerierung (Konzelationssystem)Jeder Teilnehmer • wählt zufällig und unabhängig 2 verschiedene Primzahlen p, q

ungefähr gleicher Länge• berechnet n = pq• wählt zufällige Zahl ke mit 1 < ke < (n), ggT(ke, (n)) = 1• berechnet kd = ke mod (n)

• Öffentlicher Schlüssel: (n, ke)• Geheimer Schlüssel: (p, q, kd)

• Signatursystem: ks statt kd und kt statt ke

-1

Page 264: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 264

5 Asymmetrische Verfahren – RSA-Kryptosystem

RSA als Konzelationssystem (unsichere Variante)

Teilnehmer A Teilnehmer B

öffentlich: n, ke

privat: p, q, kd

Verschlüsselung

unsicherer Kanal

c

Schlüsselgenerierung

bekannt: n, ke

c = mk mod n (m < n)e

Entschlüsselungm = ck mod nd

Nachzuweisen: nmmmm dede kkkkn mod:Ζ

Page 265: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 265

5 Asymmetrische Verfahren – RSA-Kryptosystem

RSA als Signatursystem (unsichere Variante)

Teilnehmer A Teilnehmer B

öffentlich: n, kt

privat: p, q, ks

Testen

unsicherer Kanal

m, s

Schlüsselgenerierung

bekannt: n, kt

m = sk mod n?t

Signierens = mk mod n (m < n)s

Page 266: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 266

Effiziente Berechnung der Entschlüsselung• mit Hilfe der Kenntnis von p und q• Statt Berechnung von f(x) mod n:

Berechnung von yp mod p und yq mod q und CRA(yp, yq)

• Einmal zu berechnen:kd,p = ke mod (p-1) (c ) c mod pkd,q = ke mod (q-1) (c ) c mod q

• Entschlüsselung eines Schlüsseltextes c:yp = c mod pyq = c mod q

ke

5 Asymmetrische Verfahren – RSA-Kryptosystem

kd,p

kd,q

kd,p

kd,q m = CRA(yp, yq)

-1

-1 ke

Page 267: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 267

5 Asymmetrische Verfahren – RSA-Kryptosystem

Sicherheit• Parameterwahl

– Stand der Faktorisierung• Länge der verwendeten Primzahlen• Anforderungen an die Primzahlen aufgrund spezieller

Algorithmen Angriff auf RSA als Konzelationssystem bei zu kleinem

öffentlichen Schlüssel• sichere Verwendung

Verwendung unterschiedlicher Module für unterschiedliche Nutzer (z.B. Verhinderung der „Common Modulus Attack“)

Verhinderung passiver Angriffe durch indeterministischeVerschlüsselung

Verhinderung aktiver Angriffe durch Hinzufügen von Redundanz

Page 268: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 268

5 Asymmetrische Verfahren – RSA-Kryptosystem

Wahl des öffentlichen Schlüssels (1)• Bedingung: ggT(ke, (n)) = 1, aber frei wählbar• Aus Effizienzgründen möglichst kurz, möglichst nur Nullen

Möglicher Angriff auf RSA als Konzelationssystem für ke = 3:• Ein Teilnehmer verschlüsselt Nachricht m für drei Teilnehmer

mit ke = 3 und n1 n2 n3

• Angreifer beobachtet:c1 = mk mod n1 = m3 mod n1

c2 = mk mod n2 = m3 mod n2

c3 = mk mod n3 = m3 mod n3

e

e

e

Page 269: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 269

5 Asymmetrische Verfahren – RSA-Kryptosystem

Wahl des öffentlichen Schlüssels (2)• m3 mod (n1n2n3) = CRA(c1, c2, c3)• m3 < n1n2n3 m3 mod (n1n2n3) = m3

• Ermittlung von m: Ziehen der dritten Wurzel

• Allgemein: Angreifer müsste ke Verschlüsselungen derselben Nachricht beobachten

• Oftmals vorgeschlagen:Signatursystem: kt = 3Konzelationssystem: ke = 216+1

Page 270: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 270

5 Asymmetrische Verfahren – RSA-Kryptosystem

Passive Angriffe• RSA arbeitet deterministisch • Konzelationssystem

– Angreifer: probeweise Verschlüsselung von Klartextblöcken und Vergleich mit beobachteten Schlüsseltextblöcken

– Abhilfe: Hinzunahme einer Zufallszahl r indeterministische Verschlüsselung der Nachrichten („Randomisierung“, „Padding“)

c = (r, m) k mod n

– PKCS #1 v 1.5 (verwendet in SSL v 3.0): 1998 von Bleichenbacher gebrochen (gewählter Schlüsseltext-Klartext-Angriff)

– PKCS #1 v 2.1 basierend auf OAEP (Optimal Asymmetric Encryption Padding, Bellare und Rogaway 1995)

e

Page 271: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 271

5 Asymmetrische Verfahren – RSA-Kryptosystem

• Signatursystem– Angreifer: Wahl einer Signatur, Berechnung der zugehörigen

Nachricht mit m = sk mod n– Existentielles Brechen damit möglich– Forderung: sinnvolle Texte dürfen sich nur mit sehr geringer

Wahrscheinlichkeit ergeben– Angriff wird zusätzlich erschwert durch Verwendung einer

Hashfunktion (zur Verhinderung aktiver Angriffe)

t

Page 272: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 272

5 Asymmetrische Verfahren – RSA-Kryptosystem

Aktive Angriffe (am Beispiel des Signatursystems)• Grundlage: RSA ist Homomorphismus bzgl. Multiplikation• Angreifer

– beobachtet Signaturen s1, s2 für Nachrichten m1, m2

– berechnet Signatur s3 = s1 s2 mod n fürNachricht m3 = m1 m2 mod n (m3 jedoch nicht frei wählbar)

Aktiver Angriff von Davida (selektiv)• Ziel: Signatur für gewählte Nachricht m3

• Angreifer– wählt m1 und berechnet m1 mod n– berechnet m2 = m3 m1 mod n– lässt m1 und m2 signieren erhält s1, s2

– berechnet s3 = s1 s2 mod n

-1

-1

Page 273: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 273

5 Asymmetrische Verfahren – RSA-Kryptosystem

Verbesserter aktiver Angriff von Moore (selektiv)• Ziel: Signatur für gewählte Nachricht m2

• Angreifer – wählt r Zn, berechnet r -1 mod n– berechnet m1 = m2 r k mod n– lässt m1 signieren erhält s1

– berechnet s2 = s1 r -1 mod n

• Anwendung der Angriffe auf RSA als Konzelationssystem möglich

*

t

Page 274: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 274

5 Asymmetrische Verfahren – RSA-Kryptosystem

Anmerkung: Blinde Signaturen mit RSA• Ausnutzen des Angriffs von Moore• Empfänger der Signatur möchte Text unterschreiben lassen,

ohne dass der Signierer den Text erfährt• Anwendung z.B. für digitale Zahlungssysteme

• Ziel: blinde Signatur für Nachricht m2

• Teilnehmer– wählt r Zn, berechnet r-1 mod n– „blendet“ m2 durch Multiplikation mit r k : m1 = m2 r k mod n– lässt m1 signieren erhält s1

– berechnet s2 = s1 r-1 mod n

tt

*

Page 275: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 275

5 Asymmetrische Verfahren – RSA-Kryptosystem

Verhinderung der skizzierten Angriffe Konzelationssystem:• Hinzunahme einer Zufallszahl r• Hinzufügen von Redundanz, die nach der Entschlüsselung

geprüft wird: Anwendung einer kollisionsresistenten Hashfunktion h() auf Nachricht und Zufallszahl:

c = (r, m, h(r, m))k

Signatursystem:• Anwendung einer kollisionsresistenten Hashfunktion h() auf

die Nachricht:s = (h(m))k

c

s

Page 276: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 276

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Rabin-Kryptosystem• Michael O. Rabin: Digitalized Signatures and Public-Key

Functions as Intractable as Factorization. MIT/LCS/TR-212, MIT Laboratory for Computer Science, January 1979.

• Beweisbar sicher gegen reine Schlüsseltextangriffe, aber der Beweis liefert auch einen gewählten Schlüsseltext-Angriff

• Sichere Verwendung möglich, Verschlüsselung effizienter als bei RSA

• Verwendung als Konzelations- und Signatursystem

Page 277: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 277

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Mathematische GrundlagenQuadratische Reste modulo p (QRp):

QRp = {x p | y p: y2 x mod p}x: quadratischer Rest, y: Wurzel aus x

-y: ebenfalls Wurzel aus x • Elemente x p , für die diese Kongruenz nicht lösbar ist,

heißen quadratische Nichtreste modulo p

• Für Primzahlen 2 gibt es genau quadratische Reste:

* *

*

∗ 1 2 …1

21

2 … -2 -1

1 4 … 12

12

… 4 1

Page 278: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 278

5 Asymmetrische Verfahren – Rabin-Kryptosystem

• Entscheidung, ob eine Zahl ein quadratischer Rest ist, liefert das Euler-Kriterium:

∈ QR , falls ≡ 1mod

(effizient berechenbar m.H. der Square-and-Multiply-Methode)

• Wurzelziehen für p 3 mod 4:

(für p 1 mod 4 gibt es keine Lösungsformel, aber einen effizienten Algorithmus)

pzyp

mod41

Page 279: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 279

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Quadratische Reste modulo · , (QRn)

• Laut Chinesischem Restsatz gilt: y2 x mod n y2 x mod p y2 x mod q

• Lösbarkeit der quadratischen Kongruenzen modulo p und modulo q mittels Euler-Kriterium überprüfen

• Wurzeln modulo p ( ) und modulo q ( ) bestimmen

• CRA( , ) liefert die vier Wurzeln modulo n:

CRA , mit ≡ mod und ≡ modCRA , mit ≡ mod und ≡ modCRA , mit ≡ mod und ≡ modCRA , mit ≡ mod und ≡ mod

Page 280: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 280

5 Asymmetrische Verfahren – Rabin-Kryptosystem

SchlüsselgenerierungJeder Teilnehmer • wählt zufällig und unabhängig 2 verschiedene Primzahlen p, q

mit ≡ ≡ 3mod4 (vereinfacht die Entschlüsselung)• berechnet n = pq• Öffentlicher Schlüssel: n• Geheimer Schlüssel: p, q

Verschlüsselung• 0, 1, … , : mod

Entschlüsselung• Empfänger bestimmt die vier Quadratwurzeln aus c• Nachteil: unklar, welche Wurzel die Nachricht ist

Page 281: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 281

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Sicherheit• Leicht zu zeigen: Wer faktorisieren kann, kann das Rabin-

Kryptosystem brechen.• Zu zeigen: Wer das Rabin-Kryptosystem brechen kann, kann

faktorisieren.

Annahme: Es gibt einen Algorithmus R, der das Rabin-Kryptosystem bricht R liefert zu jedem c eine Quadratwurzel m R c .

Angreifer: • wählt ∈ • berechnet mod und m‘ R c• ≡ : neues m wählen, Angriff wiederholen• ≢ : fallsggT , 1,liefert der ggT p oder q

nach einem Durchlauf n mit Wahrscheinlichkeit ½ faktorisiert beweisbar sicher gegen diesen Angriff

Page 282: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 282

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Begründung für Möglichkeit der Faktorisierung• tatsächliche Nachricht m ist eine der vier Wurzeln CRA( , )

• berechnetesm‘ R c erfüllt eine der folgenden Bedingungen:(1) ≡ mod ∧ ≡ mod(2) ≡ mod ∧ ≡ mod(3) ≡ mod ∧ ≡ mod(4) ≡ mod ∧ ≡ mod

• damit gilt:

(1) | ∧ ⇔ ⇒ ggT ,(2) | ∧ | ⇒ ggT , p(3) | ∧ | ⇒ ggT , q(4) | ∧ | ⇒ ggT , 1

Page 283: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 283

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Genügt diese beweisbare Sicherheit?• Betrachtet wurde nur ein passiver Angriff• Aus dem Beweis lässt sich jedoch der folgende gewählte

Schlüsseltext-Angriff herleiten:

Angreifer: • wählt ∈ • berechnet mod• lässt sich entschlüsseln Kann mit Wahrscheinlichkeit ½ faktorisieren!

Einführen von Redundanz (SAEP) verhindert diesen aktiven Angriff und erlaubt die Bestimmung der tatsächlichen Nachricht unter den 4 Wurzeln

Page 284: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 284

5 Asymmetrische Verfahren – Rabin-Kryptosystem

Sichere Verwendung des Rabin-Kryptosystems• Dan Boneh: Simplified OAEP for the RSA and Rabin Functions.

CRYPTO 2001, Springer, LNCS 2139, pp. 275-291, 2001.

• SAEP: Rabin, SAEP+: Rabin, RSA

• Verfahren beschreiben das Hinzufügen von Redundanz vor der Verschlüsselung (Padding)

• H, G: Hashfunktionen

• Effizienz: Padding im Vergleich zu den kryptographischen Operationen vernachlässigbar

Abbildung aus [Bone_01]

Page 285: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 285

5 Asymmetrische Verfahren – ECC

Kryptosysteme auf Basis elliptischer Kurven• Elliptic Curve Cryptography (ECC) • V. Miller: Use of Elliptic Curves in Cryptography. Crypto ‘85,

Springer, LNCS 218, 417-426, 1985.• N. Koblitz: Elliptic Curve Cryptosystems. Mathematics of

Computation, 48, 203-209, 1987.

• Grundlage: Auf elliptischen Kurven können (additive) abelsche Gruppendefiniert werden, in denen das diskrete Logarithmus Problem (elliptic curve discrete logarithm problem, ECDLP) sehr schwer zu lösen ist (vermutlich schwerer als in multiplikativen Gruppen von Körpern gleicher Größe).

Page 286: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 286

5 Asymmetrische Verfahren – ECC

Elliptische Kurven über • Eine elliptische Kurve über den reellen Zahlen ist die Menge

aller Punkte x , die eine kubische Gleichung der Form

y2 = x3 + ax + b

mit a, b erfüllen sowie der „Punkt im Unendlichen“ O.

• Bedeutung für Kryptographie: nicht-singuläre elliptische Kurven

Nullstellen des Polynoms dürfen nicht zusammenfallen

Bedingung: Diskriminante 0, d.h.: 4a3 + 27b2 0

Page 287: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 287

5 Asymmetrische Verfahren – ECC

Beispiele für elliptische Kurven über den reellen Zahlen (1)

4 (-7)3 + 27 12 = -1345Diskriminante:

4 (-8)3 + 27 102 = 652

y2 = x3 - 7x + 1 y2 = x3 - 8x + 10

Page 288: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 288

5 Asymmetrische Verfahren – ECC

Beispiele für elliptische Kurven über den reellen Zahlen (2)

4 (-3)3 + 27 22 = 0Diskriminante:

4 (0)3 + 27 02 = 0

y2 = x3 - 3x + 2 y2 = x3

Page 289: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 289

5 Asymmetrische Verfahren – ECC

Definition einer (additiven) abelschen Gruppe• Menge der Punkte, welche die Gleichung erfüllen sowie

„Punkt im Unendlichen“ O als neutrales Element• Operation „+“ auf dieser Menge: Addition von Punkten

E sei eine elliptische Kurve; Punkte P, Q, R E

Folgende Axiome gelten:Abgeschlossenheit: P + Q = RAssoziativität: (P + Q) + R = P + (Q + R)Neutrales Element: P + O = O + P = PInverses Element : P + (-P) = OKommutativität: P + R = R + P

Page 290: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 290

Punktaddition R = P + Q mit Q -P

• Gerade durch P und Q legen• Schnittpunkt der Geraden mit der Kurve ergibt R‘• Spiegelung von R‘ an der x-Achse ergibt R = P + Q

5 Asymmetrische Verfahren – ECC

y2 = x3 - 7x + 0,5

P

Q

R‘

R = P + Q

Page 291: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 291

5 Asymmetrische Verfahren – ECC

Punktaddition R = P + Q mit Q = -P

• Gerade durch P und –P: Parallele zur y-Achse• Kein weiterer Schnittpunkt mit der Kurve• Als Schnittpunkt definiert: O

P

-P

y2 = x3 - 7x + 0,5

R = P + -P = O

Page 292: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 292

Punktaddition R = P + P = 2P mit yP ∫ 0

• Tangente im Punkt P• Schnittpunkt der Tangente mit der Kurve ergibt R‘• Spiegelung von R‘ an der x-Achse ergibt R = 2P

5 Asymmetrische Verfahren – ECC

y2 = x3 - 8x + 10

P R‘

R = 2P

Page 293: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 293

Punktaddition R = P + P = 2P mit yP = 0

• Tangente im Punkt P: Parallele zur y-Achse• Kein Schnittpunkt der Tangente mit der Kurve• Sonderfall von R = P + -P: R = 2P = P + -P = O

5 Asymmetrische Verfahren – ECC

y2 = x3 - 8x + 10

P

R = 2 P = P + - P = O

Page 294: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 294

5 Asymmetrische Verfahren – ECC

Berechnung der Koordinaten des Punktes R = (xR, yR)P + Q = R mit P = (xP, yP), Q = (xQ, yQ); P Q• Anstieg s der Geraden durch P und Q:

s = (yQ – yP)/(xQ – xP) xR = s2 – xP – xQ

yR = - yP + s(xP – xR)

P + P = 2P = R mit P = (xP, yP), yP 0• Anstieg s der Tangente am Punkt P :

s = (3xP + a)/(2yP) xR = s2 – 2xP

yR = - yP + s(xP – xR)

2

Page 295: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 295

5 Asymmetrische Verfahren – ECC

Elliptische Kurven über endlichen Körpern• Für Kryptographie relevant• Möglichkeiten: GF(p) oder GF(2m)

E(p; a, b): y2 = x3 + ax + b mod p; a, b p, p > 3

• Menge aller Punkte, die diese Gleichung erfüllen, sowie O• Rechenoperationen äquivalent (nun jedoch mod p) additive abelsche Gruppe

• Bedingung wiederum: Nullstellen dürfen nicht zusammenfallen (4a3 + 27b2 mod p 0)

Page 296: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 296

5 Asymmetrische Verfahren – ECC

Punkte der elliptischen Kurve E(p; a, b)• Quadratische Reste QR:

QRp = {x p | y p: y2 x mod p}x: quadratischer Rest, y: Wurzel aus x

-y: ebenfalls Wurzel aus x

• Ermitteln der Punkte von E(p; a, b):Berechnung von z = x3 + ax + b mod p für x p

z = 0: (x,0) ist ein Punkt von E(p; a, b)z 0: Prüfen, ob es sich um einen quadratischen Rest handelt

z QRp z = y2 Wurzelziehen(x,y) und (x, -y) sind Punkte von E(p; a, b)

z – QRp keine Punkte von E(p; a, b) gefunden

* *

Page 297: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 297

5 Asymmetrische Verfahren – ECC

Beispiel: y2 = x3 + x + 6 mod 11Diskriminante: 4 �13 + 27 �62 8 mod 11 0

0 6 ‐1

1 8 ‐1

2 5 1 4,7

3 3 1 5,6

4 8 ‐1

5 4 1 2,9

6 8 ‐1

7 4 1 2,9

8 9 1 3,8

9 7 ‐1

10 4 1 2,9

z x3 x 6mod11x Punkte dieser elliptischen Kurve:

{(2,4),(2,7),(3,5),(3,6),(5,2), (5,9),(7,2),(7,9),(8,3),(8,8), (10,2),(10,9),O}

mod mod

Page 298: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 298

5 Asymmetrische Verfahren – ECC

Beispiel: y2 = x3 + x + 6 mod 11• Punkte dieser elliptischen Kurve:

{(2,4), (2,7), (3,5), (3,6), (5,2), (5,9), (7,2), (7,9), (8,3), (8,8), (10,2), (10,9), O}

x

y

Page 299: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 299

5 Asymmetrische Verfahren – ECC

Operationen auf elliptischen Kurven E(p; a, b)• Punktaddition, Punktverdopplung; nun mod p• Berechnung des Vielfachen eines Punktes R = cP:

Double-and-(Add or Subtract)-Algorithmus

Darstellung des Faktors: , ci {-1, 0, 1}R = O;for (i = l-1; i 0; i--) {

R = 2R;if (ci == 1) then R = R + P mod p;

else if (ci == -1) then R = R - P mod p;}

1

02

l

i

iicc

Page 300: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 300

5 Asymmetrische Verfahren – ECC

• Effizienzverbesserung durch Darstellung des Exponenten in nichtadjazenter Form (NAF) es gibt keine zwei aufeinanderfolgenden Stellen 0

• Überführen einer Binärdarstellung in NAF:von rechts beginnend ersetzen

(0, 1, 1, …, 1, 1)

(1, 0, 0, …, 0, -1)

• Darstellung in NAF enthält weniger Einsen weniger Additionen erforderlich

Page 301: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 301

5 Asymmetrische Verfahren – ECC

Problem des diskreten Logarithmus auf elliptischen Kurven• Durch einen Punkt P mit Ordnung n erzeugte additive

zyklische Untergruppe von E(p; a, b): P = {O, P, 2P, 3P, …, (n-1)P}

• Ordnung eines Punktes: order P = n; kleinste natürliche Zahl n mit nP = OGegeben seien – eine elliptische Kurve E über GF(p), – ein Punkt P E(p; a, b) sowie

– ein Punkt Q P.ECDLP: Bestimmung von d mit

Q = dP.

ECDLP

Page 302: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 302

5 Asymmetrische Verfahren – ECC

Parameter für ECC• Öffentlich bekannte Parameter:

Primzahl p, Kurve E(p; a, b), Punkt P und Ordnung n von P• Geheimer Schlüssel: kd mit 1 kd < n• Öffentlicher Schlüssel: Q = kdP (= ke)

• Relevant bzgl. Sicherheit: Ordnung |E(p; a, b)| der elliptischen Kurven (Punktanzahl) sowie Ordnung zufällig gewählter Punkte

|E(p; a, b)| [1, 2p + 1]• Theorem von Hasse:

p + 1 – 2◊p |E(p; a, b)| p + 1 + 2◊p (Hasse-Intervall)• Klassen schwacher Kurven vermeiden

Page 303: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 303

5 Asymmetrische Verfahren – ECC

ECDH: Protokoll für Schlüsselaustausch • Basiert auf Diffie-Hellman-Schlüsselaustausch• Öffentlich bekannte Parameter:

Primzahl p, Kurve E(p; a, b), Punkt P, order P = n

Teilnehmer A Teilnehmer B

kA,B = xAQB mod p kA,B = xB QA mod p

unsicherer Kanal

QA

QB

enc(kA,B, m)

p, E(p; a, b), P, n p, E(p; a, b), P, n

berechnet QA = xA P mod p QB = xB P mod p

wählt xA mit 1 xA n-1(xA geheim)

wählt xB mit 1 xB n-1(xB geheim)

Page 304: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 304

5 Asymmetrische Verfahren – ECC

ElGamal Verschlüsselung mit elliptischen Kurven

Schlüsselgenerierung• Als öffentliche Parameter gegeben:

p, E(p; a, b) über p, P E(p; a, b), order P = n

• Jeder Teilnehmer – wählt als seinen geheimen Dechiffrierschlüssel

zufällige Zahl kd mit 1 kd n-1– berechnet als öffentlichen Schlüssel (ke)

einen Punkt Q auf E(p; a, b) mit Q = kd P mod p

Page 305: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 305

5 Asymmetrische Verfahren – ECC

Verschlüsselung der Nachricht m (B A)• B kennt öffentliche Parameter und Schlüssel Q von A

– stellt m als Punkt M E(p; a, b) dar– wählt Zufallszahl r mit 1 r n-1– berechnet c1 = rP mod p

c2 = M + rQ mod p– sendet c = (c1, c2) an A

Entschlüsselung• A berechnet M = c2 – kd c1 mod p • ermittelt m aus M

• Nachricht muss als Punkt der elliptischen Kurve dargestellt werden

• Expansionsfaktor ~4

Page 306: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 306

5 Asymmetrische Verfahren – ECC

Relevanz von ECC• Vorteil: geringere Schlüssellängen im Vergleich zu anderen

kryptographischen Systemen• Interessant für Einsatz in Umgebungen mit begrenzter

Kapazität (Chipkarten, zusätzlich Punkt(de)kompression)• Alternative zu RSA • In verschiedenen Standards berücksichtigt, z.B.

– ANSI X9.62, – FIPS 186-2, – IEEE 1363-2000, – ISO/IEC 15946-2

• Beispiele:– ECDSA (Elliptic Curve Digital Signature Algorithm)– ECIES (Elliptic Curve Integrated Encryption Scheme)

Page 307: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 307

5 Asymmetrische Verfahren – ECC

Reduktion des Speicherbedarfs für Punkte

E(p; a,b): y2 = x3 + ax + b mod p(x,y) œ E, y2 ª 0 mod p: (x,y1), (x,y2) œ E, y2 ª - y1 mod p

• Punkt-Kompression PK(x,y)

E(p; a,b) \ {O} Zp μ Z2

PK(x,y) = (x, y mod 2)

• Punkt-Dekompression PD(x,i)z = x3 + ax + b mod py = ◊ z mod pif (y ª i mod 2) then PD(x,i) = (x,y)

else PD(x,i) = (x,-y)

Page 308: Kryptographie und Kryptoanalyse - TU Dresden · 2015-07-22 · • Problem: einzelnes Register R hat Möglichkeit für aktiven Angriff • Verbesserung: verschiedene Register verwenden.

Kryptographie und Kryptoanalyse 308

5 Asymmetrische Verfahren – ECC

ECIES (vereinfacht, nur Verschlüsselung)• Öffentlich bekannte Parameter:

Primzahl p, Kurve E(p; a, b), Punkt P und Ordnung n von P• Geheimer Schlüssel: kd mit 1 kd < n• Öffentlicher Schlüssel: Q = kd P

• Verschlüsselung von m œ Zp*

– Sender wählt Zufallszahl r mit 1 r n-1– berechnet c1 = PK(rP mod p)

c2 = m x0 mod p mit (x0, y0) = r Q mod p, x0 ∫0

• Entschlüsselung– PD(c1) = rP mod p– (x0, y0) = kd rP mod p– m = c2 x0 mod p-1