Kryptographie und Kryptoanalyse - Fakultät Informatik

Werbung
Fakultät Informatik
Institut Systemarchitektur
SS 2015
Kryptographie und
Kryptoanalyse
Dr.-Ing. Elke Franz
[email protected]
Professur Datenschutz und Datensicherheit
Überblick über die Vorlesung
Organisatorisches
• Vorlesung:
• Übung:
bzw.
Mittwoch,
Donnerstag,
Freitag,
3. DS, HSZ/103
1. DS, APB/E010 (ab 7.5.)
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
Ü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
Ü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
Kryptographie und Kryptoanalyse
4
Ü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
Kryptographie und Kryptoanalyse
5
1 Einführung – Begriffe
Kryptologie
Kryptographie
Kryptoanalyse
Kryptographie (griech. „kryptos“+ „graphein“)
Wissenschaft von den Methoden der Ver- und
Entschlüsselung von Informationen.
Kryptoanalyse (griech. „kryptos“+ „analyein“)
Wissenschaft vom Entschlüsseln von Nachrichten ohne
Kenntnis dazu notwendiger geheimer Informationen.
Kryptographie und Kryptoanalyse
6
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
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
Kryptographie und Kryptoanalyse
8
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
Kryptographie und Kryptoanalyse
Nicht erkennbar,
aber verhinderbar
Nicht verhinderbar,
aber erkennbar
9
1 Einführung – Schutzziele
Unterteilung der Schutzziele
Unerwünschtes
verhindern
Erwünschtes
leisten
Inhalte
Umstände
Vertraulichkeit
Verdecktheit
Anonymität
Unbeobachtbarkeit
Integrität
Zurechenbarkeit
Verfügbarkeit
Erreichbarkeit
Verbindlichkeit
Kryptographie und Kryptoanalyse
10
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.)
Kryptographie und Kryptoanalyse
11
1 Einführung - Schutzziele
Einordnung von Kryptographie in das Modell der
gestörten Informationsübertragung
Quellenkodierung
Kanalkodierung
Kryptographie
Quelle
Senke
Quellendekodierung
Kryptographie und Kryptoanalyse
Störung
Kanal
Kanaldekodierung
12
Überblick über die Vorlesung
1. Einführung
2. Grundlagen
–
–
–
–
Mathematische Beschreibung
Typen kryptographischer Systeme
Überblick über Angriffe
Sicherheit kryptographischer Systeme
3. Klassische Verfahren
4. Symmetrische Verfahren
5. Asymmetrische Verfahren
Kryptographie und Kryptoanalyse
13
2 Grundlagen – Mathematische Beschreibung
Vertrauensbereich des
Empfängers (Bob)
Vertrauensbereich
des Senders (Alice)
Schlüssel
ke  K
Unsicherer
Kanal:
Schlüssel
kd  K
Angriffsbereich
Nachricht Verschlüsselungsfkt.
mM
enc  ENC
Hallo, ...
Schlüsseltext
cC
c = enc(ke, m)
Entschlüsse- Nachricht
lungsfkt.
dec  DEC
m = dec(kd, c)
Hallo, ...
g9b02...
Kryptographie und Kryptoanalyse
14
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)
Kryptographie und Kryptoanalyse
15
2 Grundlagen – Mathematische Beschreibung
Alphabet
• endliche, nichtleere, totalgeordnete Menge
A = {a0, a1, a2, …, al-1}
Alphabet mit l Elementen
ai: 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
Kryptographie und Kryptoanalyse
16
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 Funktion
f bijektiv  inverse Funktion g = f -1:
" y  Y. g(y) = x mit x  X und f(x) = y
Kryptographie und Kryptoanalyse
17
2 Grundlagen – Mathematische Beschreibung
Ver- und Entschlüsselungsfunktionen
• n, l, o  N; AM, AC , AK Alphabete
l
n
• m  M = AM Nachricht, c  C = AC Schlüsseltext,
kK=
o
AK
Schlüssel
• Verschlüsselung: c = enc(ke,m) bzw. c = enck e(m)
enc  Enc: M μ K  C
• Entschlüsselung: m = dec(kd,c) bzw. m = deck (c)
dec  Dec:
C μ
KM
d
Verhältnis l/n: Expansionsfaktor
n = l: Kryptofunktion heißt längentreu
Kryptographie und Kryptoanalyse
18
2 Grundlagen – Mathematische Beschreibung
Kerckhoffs-Prinzip
Die 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
Kryptographie und Kryptoanalyse
19
2 Grundlagen – Einteilung kryptographischer Systeme
Kriterien für eine Einteilung
• Zweck
– Konzelationssysteme
Systeme zum Schutz der Vertraulichkeit der Daten
– Authentikationssysteme
Systeme zum Schutz der Integrität der Daten
- digitale Signatursysteme (spezielle Authentikationssysteme)
Systeme zur Realisierung von Zurechenbarkeit von Daten
• Schlüsselverteilung
– Symmetrische Verfahren:
– Asymmetrische Verfahren:
Notation:
kA,B:
ke,A/kd,A:
ke = kd
ke  kd
symmetrischer Schlüssel für Kommunikation
zwischen Teilnehmern A und B
Schlüssel zur Ver-/Entschlüsselung des Teilnehmers
A (asymmetrisches System)
Kryptographie und Kryptoanalyse
20
2 Grundlagen – Typen kryptographischer Systeme
Symmetrisches Konzelationssystem
Zufallszahl r
Schlüssel- kA,B ú
generierung keygen(r)
Alice
Bob
geheimer
Schlüssel
geheimer
Schlüssel
Angriffsbereich
kA,B
Nachricht
m
kA,B
Verschlüsselung
enc
Schlüsseltext
c
Entschlüsselung
c ú enc(kA,B, m)
dec
Vertrauensbereich
Sicherer Kanal für Schlüsselaustausch
Kryptographie und Kryptoanalyse
Nachricht
m ú dec(kA,B, c)
öffentlich bekannter Algorithmus
21
2 Grundlagen – Typen kryptographischer Systeme
Symmetrisches Konzelationssystem
Alice
Kryptographie und Kryptoanalyse
Bob
22
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
Kryptographie und Kryptoanalyse
23
2 Grundlagen – Typen kryptographischer Systeme
Symmetrisches
Authentikationssystem
Zufallszahl r
Schlüssel- kA,B ú
generierung keygen(r)
Bob
Alice
Angriffsbereich
geheimer
Schlüssel
kA,B
Nachricht
m
MAC
berechnen
auth
Nachricht, MAC
(message authentication code)
m, MAC
MAC ú auth(kA,B, m)
Vertrauensbereich
Sicherer Kanal für Schlüsselaustausch
Kryptographie und Kryptoanalyse
geheimer
Schlüssel
kA,B
MAC testen
?
auth(kA,B, m) =
MAC
öffentlich bekannter Algorithmus
24
2 Grundlagen – Typen kryptographischer Systeme
Asymmetrisches
Konzelationssystem
Zufallszahl r
Schlüssel- (ke,B, kd,B)ú
generierung keygen(r)
Alice
Bob
öffentlicher
Schlüssel
privater
Schlüssel
Angriffsbereich
ke,B
Nachr. m
Zufallsz. r’
kd,B
Verschlüsselung
enc
Vertrauensbereich
Schlüsseltext
c
Entschlüsselung
c ú enc(ke,B, m, r’)
dec
Nachricht
m ú dec(kd,B, c)
öffentlich bekannter Algorithmus
Zufallszahl r‘: probabilistische bzw. indeterministische Verschlüsselung
Kryptographie und Kryptoanalyse
25
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
Kryptographie und Kryptoanalyse
26
2 Grundlagen – Typen kryptographischer Systeme
Asymmetrisches Authentikationssystem (Digitales Signatursystem)
Zufallszahl r
Schlüssel- (ks,B, kt,B) :=
generierung keygen(r)
Alice
Bob
öffentlicher
Schlüssel
privater
Schlüssel
Angriffsbereich
kt,B
ks,B
Nachricht, Signatur
test(kt,B , m, s)
Testen
m, s
Signieren
 {true, false}
test
s := sign(ks,B, m)
sign
Vertrauensbereich
Kryptographie und Kryptoanalyse
Nachr. m
öffentlich bekannter Algorithmus
27
2 Grundlagen – Typen kryptographischer Systeme
Symmetrische
Authentikationssysteme
Asymmetrische
Authentikationssysteme
(MAC)
(Digitale Signatursysteme)
Schlüssel
Geheimer Schlüssel,
einem Paar von
Kommunikationspartner
zugeordnet
Schlüsselpaar: privater
Signaturschlüssel und
öffentlicher Testschlüssel
Prüfung
MAC für empfangene
Daten berechnen und mit
empfangenem MAC
vergleichen
Testalgorithmus
erforderlich
Schutzziele
Integrität
Kryptographie und Kryptoanalyse
Integrität
Zurechenbarkeit
28
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
Kryptographie und Kryptoanalyse
29
2 Grundlagen – Typen kryptographischer Systeme
• Aufbau eines X.509-Zertifikats [RFC 5280]
• TBSCertificate
–
–
–
–
–
–
–
–
–
–
Version
Seriennummer
Signaturalgorithmus
Aussteller Name
Gültigkeit
Inhaber Name
Inhaber Public Key Info
Aussteller ID
Inhaber ID
Erweiterungen
• Signaturalgorithmus
• Signatur
Kryptographie und Kryptoanalyse
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)
Nur für v2 und v3
Nur für v3, Beispiel:
Key Identifier von CA
Für TBSCertificate
30
2 Grundlagen – Typen kryptographischer Systeme
Symmetrische
Verfahren
Asymmetrische
Verfahren
Sicherer Kanal für
Schlüsselaustausch
erforderlich?
Ja
Nein (allerdings:
Zuordnung der
öffentlichen Schlüssel)
Performance
In der Regel sehr gut
Weniger gut
Konzelation
 Vertraulichkeit
Konzelation
 Vertraulichkeit
Symmetrische
Authentikation (MAC)
 Integrität
Digitale Signatursysteme
 Integrität
 Zurechenbarkeit
Umsetzbare Schutzziele
Kryptographie und Kryptoanalyse
31
2 Grundlagen – Typen kryptographischer Systeme
Hybrides Konzelationssystem
geheimer Schlüssel
(session key) kA,B
enc
Nachricht
m
enc
öffentlicher
Schlüssel
privater
Schlüssel
ke,B
kd,B
c1
dec
c2
kA,B = dec(kd,B, c1)
dec
c1, c2
c1 = enc(ke,B, kA,B), c2 = enc(kA,B, m)
Kryptographie und Kryptoanalyse
Nachricht
m = dec(kA,B, c2)
32
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)
Kryptographie und Kryptoanalyse
33
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
Kryptographie und Kryptoanalyse
34
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
 Angreifermodell
Angabe der maximal berücksichtigten Stärke eines Angreifers, d.h.,
Stärke des Angreifers, gegen die ein bestimmter
Schutzmechanismus gerade noch sicher ist
Kryptographie und Kryptoanalyse
35
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)
Kryptographie und Kryptoanalyse
36
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)
Angreifer, der nur
dieses Wissen
ausnutzt:
passiver Angreifer
• 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
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)
ke
m
enc
kd
c
dec
m
• 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
Kryptographie und Kryptoanalyse
38
2 Grundlagen – Überblick über Angriffe
Übersicht über die Angriffstypen
Konzelationssysteme
Angreifer kennt
System und ...
Passive Angriffe
Aktive Angriffe
Authentikationssysteme
symmetrisch
asymmetrisch
symmetrisch
asymmetrisch
c
c; ke
m, MAC
m, s; kt

Key only attack

Key only attack
Ciphertext only attack

Known plaintext attack
Known message attack
Chosen
plaintext attack

Chosen ciphertext attack
Kryptographie und Kryptoanalyse
Chosen message attack

39
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
Kryptographie und Kryptoanalyse
40
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
Kryptographie und Kryptoanalyse
41
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 posteriori
Wahrscheinlichkeiten 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).
Kryptographie und Kryptoanalyse
42
2 Grundlagen – Sicherheit kryptographischer Systeme
• Berechnung der a posterioi Wahrscheinlichkeiten p(m|c) nach
dem Theorem von Bayes:
pm | c  
p m  pc | m 
p c 
 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.
Kryptographie und Kryptoanalyse
43
2 Grundlagen – Sicherheit kryptographischer Systeme
• Berechnung der Wahrscheinlichkeiten p(cj|mi), p(cj)
Nachrichten
m0
Schlüsseltexte
p(c0|m0)
c0
m1
c1
.
.
.
.
.
.
mi
cj
.
.
.
.
.
.
mn-1
cn-1
p(cj|mi)
Kryptographie und Kryptoanalyse
Wahrscheinlichkeit p(cj|mi),
Schlüsseltext cj bei
Verschlüsselung der
Nachricht mi zu erhalten:
p c j | mi  

kK :c j  enc k , mi 
pk 
Wahrscheinlichkeit des
Schlüsseltextes cj:
n 1
p c j    pmi  p c j | mi 
i 0
44
2 Grundlagen – Sicherheit kryptographischer Systeme
Bedingungen für informationstheoretische Sicherheit
 Beispiel 1:
Nachrichten
Schlüsseltexte
00
00
Verschlüsselung
enc(00, m)
enc(01, m)
01
01
10
10
11
11
 nicht informationstheoretisch sicher
 Anforderungen an die Anzahl der Schlüssel notwendig!
Kryptographie und Kryptoanalyse
45
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-1
mit 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|
Kryptographie und Kryptoanalyse
46
2 Grundlagen – Sicherheit kryptographischer Systeme
 Beispiel 2:
Nachrichten
Schlüsseltexte
m0 = 00
c0 = 00
Verschlüsselung
enc(k0 = 00, m)
enc(k1 = 01, m)
m1 = 01
c1 = 01
enc(k2 = 10, m)
enc(k3 = 11, m)
m2 = 10
c2 = 10
m3 = 11
c3 = 11
als bekannt vorausgesetzt:
Kryptographie und Kryptoanalyse
p(m0) = 0,15
p(m1) = 0,05
p(m2) = 0,50
p(m3) = 0,30
p(k0) = 0,20
p(k1) = 0,70
p(k2) = 0,05
p(k3) = 0,05
47
2 Grundlagen – Sicherheit kryptographischer Systeme
• resultierende Wahrscheinlichkeiten der Schlüsseltexte:
p(c0) = 0,1050
p(c1) = 0,1925
p(c2) = 0,3200
p(c3) = 0,3825
• resultierende a posteriori Wahrscheinlichkeiten:
p(m0|c0) = 0,286
p(m0|c1) = 0,545
p(m0|c2) = 0,023
p(m0|c3) = 0,020
p(m1|c0) = 0,333
p(m1|c1) = 0,013
p(m1|c2) = 0,008
p(m1|c3) = 0,026
p(m2|c0) = 0,238
p(m2|c1) = 0,130
p(m2|c2) = 0,312
p(m2|c3) = 0,915
p(m3|c0) = 0,143
p(m3|c1) = 0,312
p(m3|c2) = 0,656
p(m3|c3) = 0,039
 nicht informationstheoretisch sicher
 Anforderungen an Wahrscheinlichkeiten der Schlüssel notwendig!
Kryptographie und Kryptoanalyse
48
2 Grundlagen – Sicherheit kryptographischer Systeme
(2) Wahrscheinlichkeiten der Schlüssel (für
Nachrichten
|K| = |C| = |M|)
Schlüsseltexte
m0 = 00
c0 = 00
m1 = 01
c1 = 01
m2 = 10
c2 = 10
m3 = 11
c3 = 11
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)
 Schlüssel müssen mit gleicher Wahrscheinlichkeit verwendet
werden
 Resultierende Schlüsseltexte sind ebenfalls gleichwahrscheinlich
Kryptographie und Kryptoanalyse
49
2 Grundlagen – Sicherheit kryptographischer Systeme
 Beispiel 3:
Nachrichten
Schlüsseltexte
m0 = 00
c0 = 00
Verschlüsselung
enc(k0 = 00, m)
enc(k1 = 01, m)
m1 = 01
c1 = 01
enc(k2 = 10, m)
enc(k3 = 11, m)
m2 = 10
c2 = 10
m3 = 11
c3 = 11
p(m0) = 0,15; p(m1) = 0,05; p(m2) = 0,5; p(m3) = 0,3
p(ki) = p(k) = 0,25
 informationstheoretisch sicher
Kryptographie und Kryptoanalyse
50
2 Grundlagen – Sicherheit kryptographischer Systeme
 Beispiel 4: (Nutzung des Kryptosystems aus Beispiel 3)
Verschlüsselung von zwei Nachrichten mit ein und demselben
Schlüssel; Angreifer beobachtet: 0111 = c1c3
Nachrichten
Schlüsseltexte
m0 = 00
Verschlüsselung
enc(k0 = 00, m)
c0 = 00
enc(k1 = 01, m)
m1 = 01
c1 = 01
enc(k2 = 10, m)
enc(k3 = 11, m)
m2 = 10
m3 = 11
c2 = 10
c3 = 11
p(m0) = 0,15; p(m1) = 0,05;
p(m2) = 0,50; p(m3) = 0,30
 Nur vier mögliche Nachrichten: k0: 1101 = m3m1
k1: 0010 = m0m2
Kryptographie und Kryptoanalyse
k2: 0111 = m1m3
k3: 1000 = m2m0
51
2 Grundlagen – Sicherheit kryptographischer Systeme
• Wahrscheinlichkeiten der Nachrichten:
p(m3m1) = 0,015
p(m0m2) = 0,075
p(m1m3) = 0,015
p(m2m0) = 0,075
• resultierende a posteriori Wahrscheinlichkeiten:
p(m3m1|c1c3) = 0,0833
p(m0m2|c1c3) = 0,4167
p(m1m3|c1c3) = 0,0833
p(m2m0|c1c3) = 0,4167
 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
Kryptographie und Kryptoanalyse
52
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!
Kryptographie und Kryptoanalyse
53
2 Grundlagen – Sicherheit kryptographischer Systeme
Erreichbare Sicherheit asymmetrischer Systeme
Bob
Alice
ke,B
m
kd,B
enc
c
dec
m
Angreifer
ke,B
enc
Kryptographie und Kryptoanalyse
 Sicherheit gegen unbeschränkten Angreifer
(informationstheoretische
Sicherheit) nicht möglich.
54
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
Kryptographie und Kryptoanalyse
55
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)
Kryptographie und Kryptoanalyse
56
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
Kryptographie und Kryptoanalyse
57
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]
Kryptographie und Kryptoanalyse
58
2 Grundlagen – Sicherheit kryptographischer Systeme
• 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)
Kryptographie und Kryptoanalyse
59
2 Grundlagen – Sicherheit kryptographischer Systeme
Ununterscheidbarkeit unter CPA
Alice
Schlüsselgenerierung:
kd, ke  keygen(param)
Angreifer
ke
m0, m1
wählt zufällig b  {0,1}
verschlüsselt mb
kennt ke
wählt m0, m1  M
mit length(m0) = length(m1)
cb = enc(ke, mb)
Entscheidung: b = 0 oder b = 1
Kryptographie und Kryptoanalyse
60
2 Grundlagen – Sicherheit kryptographischer Systeme
Ununterscheidbarkeit unter CCA1
Alice
Schlüsselgenerierung:
kd, ke  keygen(param)
Angreifer
ke
kennt ke
ci
entschlüsselt ci
mi = dec(kd, ci)
m0, m1
wählt zufällig b  {0,1}
verschlüsselt mb
beliebig oft
wählt m0, m1  M
mit length(m0) = length(m1)
cb = enc(ke, mb)
Entscheidung: b = 0 oder b = 1
Kryptographie und Kryptoanalyse
61
2 Grundlagen – Sicherheit kryptographischer Systeme
Ununterscheidbarkeit unter CCA2
Alice
Schlüsselgenerierung:
kd, ke  keygen(param)
Angreifer
ke
kennt ke
ci
entschlüsselt ci
mi = dec(kd, ci)
m0, m1
wählt zufällig b  {0,1}
verschlüsselt mb
beliebig oft
wählt m0, m1  M
mit length(m0) = length(m1)
cb = enc(ke, mb)
ci  cb
entschlüsselt ci
mi = dec(kd, ci)
beliebig oft
Entscheidung: b = 0 oder b = 1
Kryptographie und Kryptoanalyse
62
2 Grundlagen – Sicherheit kryptographischer Systeme
Non-Malleability [DoDN_91]
Ein System bietet Sicherheit gegen adaptive aktive Angriffe (NonMalleability), 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
Kryptographie und Kryptoanalyse
63
Überblick über die Vorlesung
1. Einführung
2. Grundlagen
3. Klassische Verfahren
–
–
–
–
Mathematische Grundlagen
Transpositionen
MM-Substitutionen
PM-Substitutionen
4. Symmetrische Verfahren
5. Asymmetrische Verfahren
Kryptographie und Kryptoanalyse
64
3 Klassische Verfahren – Mathematische Grundlagen
Modulare Arithmetik
• Endliche Strukturen (z.B. Gruppen), basierend z.B. auf den
natürlichen oder ganzen Zahlen
Restklassenring modulo n
• n = {0,1,2, …, n-1}
• Kongruenz
a, b  ; n  N, n > 1: n|(a-b)  a, b kongruent
a  b mod n
• Restklasse ā zu jedem a  : ā ú {b   | a  b mod n}
Kryptographie und Kryptoanalyse
65
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
 1
P
 p 1
2
...
p  2  ...
l 

p l  
enck(m) = enck(m1m2m3 … ml) = (mp(1)mp(2)mp(3) … mp(l))
Kryptographie und Kryptoanalyse
66
3 Klassische Verfahren – Transpositionen
 Beispiel
1 2 3 4 5 6 7
P

3
1
4
2
7
5
6


• Matrixtranspositionen
 Beispiel: Spaltenpermutation
Schlüssel: 5x7 Matrix
P = (1,4)(2,5,3,7,6)
P-1 = (4,1)(5,2,6,7,3)
Kryptographie und Kryptoanalyse
67
3 Klassische Verfahren – MM-Substitutionen
MM-Substitution
M
AM
a0
(monoalphabetisch, monographisch)
K
k
a3
k
AC
b3
k
ai
a2
C
b1
bj
b0
k
AM, AC Alphabete, enc: AMl  ACl
m = (m0m1m2 … ml-1), mi  AM, m  AMl, l  N
enck(m) = enck(m0) enck(m1) … enck(ml-1)
Kryptographie und Kryptoanalyse
68
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
Nachricht
a
b c
Schlüsseltext D E F
Kryptographie und Kryptoanalyse
d e
f
g
…
x
y
z
G H I
J
…
A B C
69
3 Klassische Verfahren – MM-Substitutionen
 Beispiel
n = 26, A = {A:Z}, s = 3
:
A
0
B
1
C
2
D
3
E
4
F
5
G
6
H
7
I
8
J
9
K
10
L
11
O
14
P
15
Q
16
R
17
S
18
T
19
U
20
V
21
W
22
X
23
Y
24
Z
25
Kryptographie und Kryptoanalyse
M
12
N
13
70
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
Kryptographie und Kryptoanalyse
71
3 Klassische Verfahren – MM-Substitutionen
s
m
0
1
2
3
4
5
6
7
8
9
10
11
12
FMTKOJVIVGTNZ
ELSJNIUHUFSMY
DKRIMHTGTERLX
CJQHLGSFSDQKW
BIPGKFRERCPJV
AHOFJEQDQBOIU
ZGNEIDPCPANHT
YFMDHCOBOZMGS
XELCGBNANYLFR
WDKBFAMZMXKEQ
VCJAEZLYLWJDP
UBIZDYKXKVICO
TAHYCXJWJUHBN
s
13
14
15
16
17
18
19
20
21
22
23
24
25
m
SZGXBWIVITGAM
RYFWAVHUHSFZL
QXEVZUGTGREYK
PWDUYTFSFQDXJ
OVCTXSEREPCWI
NUBSWRDQDOBVH
MTARVQCPCNAUG
LSZQUPBOBMZTF
KRYPTOANALYSE
JQXOSNZMZKXRD
IPWNRMYLYJWQC
HOVMQLXKXIVPB
GNULPKWJWHUOA
s = 21 ergibt den einzigen sinnvollen Text  s = 21
Kryptographie und Kryptoanalyse
72
3 Klassische Verfahren – MM-Substitutionen
• Schema von Polybios
AM = {A:Z}
AC = {ij | i, j  {1, 2, 3, 4, 5}}
enc:
i
1
2
3
4
5
j
1
A
F
K
P
U
2
B
G
L
Q
V
3
C
H
M
R
W
4
D
I
N
S
X/Y
5
E
J
O
T
Z
 Beispiel
Kryptographie und Kryptoanalyse
73
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
W K
C
R
A
E
L
Z
V
B
X
Kryptographie und Kryptoanalyse
J
U
H
I
S
P
O Y
F
M Q
D
G
N
T
74
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
Polybios:
Permutation (Bsp. F. 74):
Verschiebechiffre (s = 3):
Kryptographie und Kryptoanalyse
m= B E
c = 12 15
c= J W
c= E H
I S P I E L
24 44 41 24 15 32
X
Z
S
X
W
E
L
V
S
L
H
O
75
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 Gleichwahrscheinlichkeit der N Zeichen des Alphabets):
N 1
R = H0(X) – H(X); H  X    pxi  ld
i 0
1
; H 0 X   ld N
p xi 
– 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
Kryptographie und Kryptoanalyse
76
3 Klassische Verfahren – MM-Substitutionen
Zeichenhäufigkeiten (%)
Deutsch
Deutsch
Englisch
* 15.15
19.25
a
4.58 5.40 6.60 8.17
b
1.60 1.89 1.21 1.49
c
2.67 3.15 2.25 2.78
d
4.39 5.17 3.43 4.25
e 15.35 18.10 10.26 12.70
f
1.36 1.60 1.80 2.23
g
2.67 3.15 1.63 2.02
h
4.36 5.14 4.92 6.09
i
6.38 7.52 5.63 6.97
j
0.16 0.19 0.12 0.15
k
0.96 1.13 0.62 0.77
l
2.93 3.45 3.25 4.03
m 2.13 2.51 1.94 2.41
Kryptographie und Kryptoanalyse
n
o
p
q
r
s
t
u
v
w
x
y
z
Englisch
8.84 10.42 5.45
1.90
2.24 6.06
0.50
0.59 1.56
0.01
0.01 0.08
6.86
8.08 4.84
5.39
6.35 5.11
4.73
5.57 7.31
3.48
4.10 2.23
0.72
0.87 0.77
1.42
1.67 1.91
0.01
0.01 0.12
0.02
0.02 1.59
1.42
1.67 0.06
6.75
7.51
1.93
0.10
5.99
6.33
9.06
2.76
0.96
2.36
0.15
1.97
0.07
77
3 Klassische Verfahren – MM-Substitutionen
Häufigkeiten
Zeichenhäufigkeiten (deutsch)
* a b c d e f g h
Kryptographie und Kryptoanalyse
i
j k l m n o p q r s t u v w x y z
78
3 Klassische Verfahren – MM-Substitutionen
Einteilung der Zeichen in Gruppen
Gruppe
Deutsch
Englisch
I
e
e
II
nristdha
taoinshr
III
ulcg
dl
IV
mobzwf
cumwfgypb
V
kvpjyqx
vkjxqz
Kryptographie und Kryptoanalyse
79
3 Klassische Verfahren – MM-Substitutionen
Häufigkeiten von Bi- und Trigrammen
Rang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Rang
EN
ER
CH
ND
EI
DE
IN
ES
TE
IE
UN
GE
ST
IC
HE
TH
HE
IN
ER
AN
RE
ED
ON
ES
ST
EN
AT
TO
NT
HA
EIN
ICH
NDE
DIE
UND
DER
CHE
END
GEN
SCH
CHT
DEN
INE
NGE
NUN
THE
ING
AND
HER
ERE
ENT
THA
NTH
WAS
ETH
FOR
DTH
HAT
SHE
ION
Kryptographie und Kryptoanalyse
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
NE
SE
NG
RE
AU
DI
BE
SS
NS
AN
SI
UE
DA
AS
NI
ND
OU
EA
NG
AS
OR
TI
IS
ET
IT
AR
TE
SE
HI
OF
UNG
DAS
HEN
IND
ENW
ENS
IES
STE
TEN
ERE
LIC
ACH
NDI
SSE
AUS
INT
HIS
STH
ERS
VER
TTH
TER
HES
EDT
EST
THI
HAD
OTH
ALL
ATI
Deutsch
Englisch
80
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
Kryptographie und Kryptoanalyse
81
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
CESVLRHEESUUSLLGANOSGMIHRSTU
CESVLRH EESUUSL LGANOSG MIHRSTU
Reduktion der möglichen Kombinationen:
EVLRSCH, EVRLSCH, …, VELRSCH, ...
Kryptographie und Kryptoanalyse
82
3 Klassische Verfahren – PM-Substitutionen
PM-Substitution (1)
M
AM
(polyalphabetisch, monographisch)
K
b14
a0
AC1
AC2
k1
ai
a3
C
k2
a2
kr
AM, AC1, AC2, …, ACr Alphabete,
enc: AMl  (AC1 » AC2 » … » ACr)l
m = (m1m2 … ml), mi  AM, m  AMl, l  N
enck(m) = enck0(m0) enck1(m1) … enckl (ml), kj  {1:r}
Kryptographie und Kryptoanalyse
b20
br1
ACr
83
3 Klassische Verfahren – PM-Substitutionen
PM-Substitution (2)
M
AM
a0
K
k1
ai
a3
C
k2
k3
a2
Kryptographie und Kryptoanalyse
kr
b3
AC
bj
b0
b1
84
3 Klassische Verfahren – PM-Substitutionen
• Vigenère-Chiffre (1)
klassische Darstellung: Vigenère-Tableau
a
b
c
d
e
f
…
z
A
A
B
C
D
E
F
…
Z
B
B
C
D
E
F
G
…
A
C
C
D
E
F
G
H
…
B
D
D
E
F
G
H
I
…
C
E
E
F
G
H
I
J
…
D
F
F
G
H
I
J
K
…
E
…
…
…
…
…
…
…
…
Z
Z
A
B
C
D
E
Kryptographie und Kryptoanalyse
…
…
…
…
…
Y
85
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) = enck (m0) enck (m1) … enck (mi) enc k (mi+1) … enc k
0
1
r-1
0
(l-1) mod r
(ml-1)
mit
enckj(mi) = -1[( (mi) +  (kj)) mod n],  (mi),  (kj)  {0:n-1}
-1
)
=

[( (ci) -  (kj)) mod n]
dec k(c
i
j
 Beispiel
Kryptographie und Kryptoanalyse
86
3 Klassische Verfahren – PM-Substitutionen
• Binäre Vigenère-Chiffre
A = {0,1}
n=2
Klartextbuchstabe mi, Schlüsselbuchstabe ki:
ci = (mi+ki) mod 2
mi = (ci+ki) mod 2
bzw.
bzw.
ci = mi  ki
mi = ci  ki
• Schlüssel
– sollten Zufallsfolgen sein
– kürzer als Klartext: periodische Wiederholung
– Autokey-Verfahren
Kryptographie und Kryptoanalyse
87
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
Nachrichten
m = dec(ki, ci) = ci  ki
Schlüsseltexte
0
0
Verschlüsselung
enc(0, m)
enc(1, m)
1
Kryptographie und Kryptoanalyse
1
p(k0) = p(k1) = 0,5
88
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
Kryptographie und Kryptoanalyse
89
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
Kryptographie und Kryptoanalyse
90
3 Klassische Verfahren – PM-Substitutionen
m
k
c
= A L B E R T I S K R E I S S C H E I B E N S I N D
= K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K
= 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 R
k ... E Y K E Y K E Y K E Y K E Y K E Y K E Y K E Y K E
c ... I G X I T O V Z O W Q O V R O J M B Q B O V T O V
m ... S C H I E B E C H I F F R E N
k ... 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
Wiederholungen durch Verschlüsselung identischer Klartextabschnitte
zufällige Wiederholungen
Abstände: ‚OVR‘: 33 = 3 11
‚TOV‘: 18 = 2  32
‚MLG‘: 6 = 2  3
ggT(Abstände) = 3
‚CML‘: 35 = 5  7
Kryptographie und Kryptoanalyse
91
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 r
2. Ermittlung des Schlüssels durch Analyse der
MM-Substitutionen
Kryptographie und Kryptoanalyse
92
3 Klassische Verfahren – PM-Substitutionen
Koinzidenzindex I
• Wahrscheinlichkeit, dass zwei unabhängig voneinander
gewählte Zeichen ai übereinstimmen
n 1
I   pi2 , pi  p (ai ), ai  A
i 0
• I minimal, wenn alle Zeichen gleichwahrscheinlich:
pi 
1
1
, i  0,1,..., n  1 : I min 
n
n
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,0762
Nachricht in englischer Sprache: Imax = 0,0655
Kryptographie und Kryptoanalyse
93
3 Klassische Verfahren – PM-Substitutionen
Koinzidenzindex für Beispieltexte (deutsch, nur “A” – “Z”)
Imax = 0,0762
Imin = 0,0385
─
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
Kryptographie und Kryptoanalyse
94
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
Kryptographie und Kryptoanalyse
95
3 Klassische Verfahren – PM-Substitutionen
Wahrscheinlichkeit, ein Paar gleiche Zeichen auszuwählen:
n 1
I p 
i 0
2
i
anz gl  I max  anzv  I min
Anzahl von Buchstabenpaaren
• aus einer gleichen Spalte:
• aus verschiedenen Spalten:
• insgesamt:
Kryptographie und Kryptoanalyse
anzbp
N 
N   1
r

anz gl  
2
N

NN  
r 
anzv  
2
N  N  1
anzbp 
2
96
3 Klassische Verfahren – PM-Substitutionen
Einsetzen und Umformen nach r liefert:
( I max  I min ) N
0, 0377 N
r

( N  1) I  I max  I min N ( N  1) I  0, 0762  0, 0385 N
0, 0377
r
I  0, 0385
für N >> 1
2
anz
(
a
)
1
i
I   pi2  

2
2
N
N
i 0
i 0
n 1
n 1
Kryptographie und Kryptoanalyse
n 1
2
anz
(
a
)

i
i 0
97
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)
Kryptographie und Kryptoanalyse
98
3 Klassische Verfahren – PM-Substitutionen
Vigenère-Tableau für die 10 häufigsten Buchstaben (D):
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
 Ermittlung sinnvoller Kombinationen, Ausschluss …
Kryptographie und Kryptoanalyse
99
3 Klassische Verfahren – PM-Substitutionen
Mögliche Zusammensetzung der Schlüsseltextbuchstaben
A
B
a+a
i+t
C
D
E
F
G
H
I
J
K
i+u a+d a+e n+s d+d a+h e+e r+s s+s e+h
n+n h+u
n+r
n+t
i+s
t+t
r+r
d+h
i+d
e+i
n+u
a+i
r+t
s+t
s+u
r+u
o
P
a+n h+h h+i
t+u
M
e+d
h+ t
N
L
u+u
Q
R
S
T
i+i
a+r
a+s
a+t
d+n e+n
Kryptographie und Kryptoanalyse
U
V
W
X
Y
a+u d+s d+t d+u e+u
d+r
e+r e+s
h+n
i+n
e+t
Z
i+r
h+r h+s
100
3 Klassische Verfahren – PM-Substitutionen
•
Beispiel
m = E
I
N B
I
L D V E R A R B E
k
= D
I
E S T E G A N O G R A P H
c
= H Q R T B P
J
V R
F G
I
I
T U N G S …
I
E E R M …
B T P B Y R X
E …
H: (a+h), (e+d), (n+u)
Q: (i+i), (d+n)
R: (a+r), (e+n)
insgesamt 6 · 3 · 4 = 72
Möglichkeiten, darunter (die, ein)
T: (a+t)
B: (i+t), (h+u)
P: (h+i)
insgesamt 2 · 4 · 2 = 16
Möglichkeiten, keine sinnvolle
Kombination darunter
Kryptographie und Kryptoanalyse
101
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-Angriffs
für Klartext „ohne“ Redundanz nicht möglich;
Reduktion der Redundanz erschwert Kryptoanalyse
Kryptographie und Kryptoanalyse
102
Überblick über die Vorlesung
1.
2.
3.
4.
Einführung
Grundlagen
Klassische Verfahren
Symmetrische Verfahren
–
–
–
–
–
–
Blockchiffren
Feistel-Chiffre
Kryptographische Güte einer Verschlüsselungsfunktion
DES
• Differentielle Kryptoanalyse
• Lineare Kryptoanalyse
AES
Betriebsarten
5. Asymmetrische Verfahren
Kryptographie und Kryptoanalyse
103
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
Kryptographie und Kryptoanalyse
104
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
Kryptographie und Kryptoanalyse
105
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 Reichenfolge
m = dec1(k1, dec2(k2, ... decn-1(kn-1, decn(kn, c)) ... ))
Kryptographie und Kryptoanalyse
106
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
Kryptographie und Kryptoanalyse
107
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
Kryptographie und Kryptoanalyse
108
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
Kryptographie und Kryptoanalyse
109
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:
L0
R0
f
L1
k1
R1
enc(k1, (L0, R0)) = R0, f(R0, k1)  L0 = L1, R1
Kryptographie und Kryptoanalyse
110
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:
L1
k1
R1
f
L0
R0
dec(k1, (L1, R1)) = f(L1, k1)  R1, L1 = L0, R0
Kryptographie und Kryptoanalyse
111
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)
Kryptographie und Kryptoanalyse
112
4 Symmetrische Verfahren – Kryptographische Güte
Vollständigkeit
Eine 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  1
y2 = x1x2  x1x3  x2x3  x1  x3  1
y3 = x1x2  x1x3  x2x3  x1  x2  1
 kein hinreichendes Kriterium
Kryptographie und Kryptoanalyse
113
4 Symmetrische Verfahren – Kryptographische Güte
y1 = x1x2  x1x3  x2x3  x2  x3  1
y2 = x1x2  x1x3  x2x3  x1  x3  1
y3 = x1x2  x1x3  x2x3  x1  x2  1
Input
Output
x3
x2
x1
y3
y2
y1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
Kryptographie und Kryptoanalyse
6 von 8 möglichen
Belegungen des Inputs
werden identisch
ausgegeben!
114
4 Symmetrische Verfahren – Kryptographische Güte
 Beispiel: Vollständigkeit der Feistel-Chiffre (f vollst.)
Output- 7
6
bit j 5
c0 = m = L0, R0
4
3
2
1
0
0 12 34 56 7
Output- 7
6
bit j 5
Output- 7
6
bit j 5
Inputbit i
c2 = L2, R2
4
3
2
1
0
0 12 34 56 7
4
3
2
1
0
0 12 34 56 7
Output- 7
6
bit j 5
Inputbit i
Kryptographie und Kryptoanalyse
c1 = L1, R1
Inputbit i
c3 = L3, R3
4
3
2
1
0
0 12 34 56 7
Inputbit i
115
4 Symmetrische Verfahren – Kryptographische Güte
Avalanche
Eine 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 stets
vollständig.
Kryptographie und Kryptoanalyse
116
4 Symmetrische Verfahren – Kryptographische Güte
 Beispiel (SBsp)
m1 m2 000
000
001
010
2
2
011
2
1
010
2
1
100
101
110
1
101
110
1
4
1
1
1
1
2
1
4
4
1
2
4
1
2
4
2
Gesamtzahl der geänderten Bits
Kryptographie und Kryptoanalyse
4
2
2

6
1
111
111
2
001
011
100
2
6
36
117
4 Symmetrische Verfahren – Kryptographische Güte
Linearität
Eine Funktion f: {0,1}n  {0,1}m ist dann linear, wenn jedes
Output-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 g
Güte der Approximation: Anteil der Funktionswerte, in denen
f und g übereinstimmen
Kryptographie und Kryptoanalyse
118
4 Symmetrische Verfahren – Kryptographische Güte
Korrelationsimmunität
f(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.
Kryptographie und Kryptoanalyse
119
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)
Kryptographie und Kryptoanalyse
120
4 Symmetrische Verfahren – Kryptographische Güte
Eigenschaften von f (xi: Inputbits, yj: Outputbits)
ai,j = 0
 ai,j > 0
ai,j = 1
 yj nicht von xi abhängig; f ist nicht vollständig
Anzahl ai,j mit ai,j > 0: Grad der Vollständigkeit
 f ist vollständig


 j.  i. ai,j  {0,1} 
 i.  j. ai,j  {0,1} 
yj ändert sich bei jeder Änderung von xi
yj hängt linear von xi ab
f ist partiell linear (Spalte aj binärer Vektor)
f ist linear (AM binäre Matrix)
1 1 m n
ai , j  0,5

m n i 1 j 1
 f besitzt Avalanche-Effekt
 i.  j.ai,j  0,5
 f erfüllt striktes Avalanche-Kriterium
Kryptographie und Kryptoanalyse
121
4 Symmetrische Verfahren – Kryptographische Güte
Berechnung der Abhängigkeitsmatrix
exakte Berechnung nur für kleine n, m möglich
näherungsweise Berechnung
 i.  j. ai,j := 0
für „hinreichend viele“ X
wähle zufälligen n-Bit Vektor X
fü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
Kryptographie und Kryptoanalyse
122
4 Symmetrische Verfahren – Kryptographische Güte
 Beispiel (SBsp)
y1
X = 000
y2
y3
x1
0
4
0,5
0
1
4
0,5
0
1
4
0,5
x2
0
1
4
0,5
0
4
0,5
0
1
4
0,5
x3
0
1
4
0,5
0
1
4
0,5
0
4
0,5
X1 = 001
X2 = 010
X3 = 100
V1 = 111  001 = 110
V2 = 111  010 = 101
V3 = 111  100 = 011
X = 001 …
Kryptographie und Kryptoanalyse
123
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
Kryptographie und Kryptoanalyse
124
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
Kryptographie und Kryptoanalyse
125
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ählbar
Teilschlüssel ki, i = 1, …, 16 aus k erzeugt (Länge ki: 48 Bit)
• Permutation vor der ersten und nach der letzten Runde (IP
bzw. IP -1) (kryptographisch nicht relevant)
Kryptographie und Kryptoanalyse
126
4 Symmetrische Verfahren – DES
Struktur des DES
mi
64
k
(56 Bit wählbar)
IP
64
R0
L0
Iterationsrunde 1
L1
L2
..
.
L15
48
k2
R2
R15
Iterationsrunde 16
L16
64
k1
R1
Iterationsrunde 2
ci
48
..
.
48
k16
Teilschlüsselgenerierung
R16
IP-1
Kryptographie und Kryptoanalyse
127
4 Symmetrische Verfahren – DES
Eingangspermutation IP
Folge der Klartextbits:
58
60
62
64
50
52
54
56
42
44
46
48
34
36
38
40
26
28
30
32
18
20
22
24
10
12
14
16
2
4
6
8
linke Hälfte
Kryptographie und Kryptoanalyse
1
9
17
25
33
41
49
57
2
10
18
26
34
42
50
58
3
11
19
27
35
43
51
59
4
12
20
28
36
44
52
60
5
13
21
29
37
45
53
61
6
14
22
30
38
46
54
62
7
15
23
31
39
47
55
63
8
16
24
32
40
48
56
64
57
59
61
63
49
51
53
55
41
43
45
47
33
35
37
39
25
27
29
31
17 9
19 11
21 13
23 15
1
3
5
7
rechte Hälfte
128
4 Symmetrische Verfahren – DES
Iterationsrunde i: Rundenfunktion f
Ri-1
32
f
E
48
6
S1
6
S2
4
ki
48
6
…
S8
4
4
P
32
Kryptographie und Kryptoanalyse
f(Ri-1,ki) = P(S(E(Ri-1) ki))
129
4 Symmetrische Verfahren – DES
Expansionsabbildung E
32
1
2
3
4
1
2
3
4
5
4
Kryptographie und Kryptoanalyse
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
5
6
7
8
5
6
7
8
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
…
9
29 30 31 32
28 29 30 31 32
1
130
4 Symmetrische Verfahren – DES
Substitutionsboxen Si
b5b4b3b2b1b0
S1:
6-Bit Wert
vor der
Substitution
S2:
0
1
2
3
0
1
2
3
0
14
0
4
15
15
3
0
13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
..
.
S8:
..
.
0
1
2
3
13 2 8
1 15 13
7 11 4
2 1 14
Kryptographie und Kryptoanalyse
4
8
1
7
6 15 11 1 10 9 3 14 5 0 12 7
10 3 7 4 12 5 6 11 0 14 9 2
9 12 14 2 0 6 10 13 15 3 5 8
4 10 8 13 15 12 9 0 3 5 6 11
131
4 Symmetrische Verfahren – DES
Permutation P
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
S1
S2
S3
S4
S5
S6
S7
S8
S1
S2
S3
S4
S5
S6
S7
S8
Kryptographie und Kryptoanalyse
132
4 Symmetrische Verfahren – DES
Teilschlüsselgenerierung (Verschlüsselung)
k
64
PC-1
56
28
ki
C
48
28
D
PC-2
Kryptographie und Kryptoanalyse
133
4 Symmetrische Verfahren – DES
Schlüsselpermutation PC-1 (Permuted Choice)
externer Schlüssel k:
57
58
59
60
49
50
51
52
41
42
43
44
33 25 17 9
34 26 18 10
35 27 19 11
36
1
2
3
C
Kryptographie und Kryptoanalyse
1
9
17
25
33
41
49
57
2
10
18
26
34
42
50
58
3
11
19
27
35
43
51
59
4
12
20
28
36
44
52
60
5
13
21
29
37
45
53
61
6
14
22
30
38
46
54
62
7
15
23
31
39
47
55
63
8
16
24
32
40
48
56
64
Paritätsbits
63 55 47 39 31 23 15
62 54 46 38 30 22 14
61 53 45 37 29 21 13
28 20 12
7
6
5
4
D
134
4 Symmetrische Verfahren – DES
Anzahl der Shifts
Verschlüsselung: Links-Shifts
Entschlüsselung: Rechts-Shifts
Runde
Anzahl Links-Shifts:
Anzahl Rechts-Shifts:
1
1
0
2
1
1
3
2
2
4
2
2
5
2
2
6
2
2
7
2
2
8
2
2
11
21
16
31
33
46
24
10
7
37
48
42
1
23
27
47
44
50
5
19
20
55
49
36
9 10 11 12 13 14 15 16
1 2 2 2 2 2 2 1
1 2 2 2 2 2 2 1
Schlüsselauswahl: PC-2
14
15
26
41
51
34
Kryptographie und Kryptoanalyse
17
6
8
52
45
53
3
12
13
30
39
29
28
4
2
40
56
32
135
4 Symmetrische Verfahren – DES
Bewertung der Schlüssel
Bis 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:
externer Schlüssel k
01
FE
1F
E0
01
FE
1F
E0
01
FE
1F
E0
01
FE
1F
E0
01
FE
0E
F1
01
FE
0E
F1
01
FE
0E
F1
Kryptographie und Kryptoanalyse
D
C
01
FE
0E
F1
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
0
F
F
0
0
F
F
0
0
F
F
0
0
F
F
0
0
F
F
0
0
F
F
0
0
F
F
0
136
4 Symmetrische Verfahren – DES
12 semi-schwache Schlüssel, die jeweils nur 2 verschiedene
Teilschlüssel erzeugen:
externer Schlüssel k
01
FE
1F
E0
01
E0
1F
FE
01
1F
E0
FE
FE
01
E0
1F
E0
01
FE
1F
1F
01
FE
E0
01
FE
1F
E0
01
E0
1F
FE
01
1F
E0
FE
FE
01
E0
1F
E0
01
FE
1F
1F
01
FE
E0
01
FE
0E
F1
01
F1
0E
FE
01
0E
F1
FE
FE
01
F1
0E
F1
01
FE
0E
0E
01
FE
F1
01
FE
0E
F1
01
F1
0E
FE
01
0E
F1
FE
Kryptographie und Kryptoanalyse
D
C
FE
01
F1
0E
F1
01
FE
0E
0E
01
FE
F1
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
A
5
A
5
A
5
0
0
F
F
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
A
5
5
A
0
0
F
F
A
5
A
5
137
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
Kryptographie und Kryptoanalyse
138
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)))
Kryptographie und Kryptoanalyse
139
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
Kryptographie und Kryptoanalyse
140
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Differentielle Kryptoanalyse
• E. Biham and A. Shamir: Differential Cryptanalysis of DESlike 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
Kryptographie und Kryptoanalyse
141
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Notation (1)
• Eingangs- und Ausgangspermutation haben keinen
Einfluss – weggelassen
• Lm, Rm: linke bzw. rechte
Hälfte des Klartextes
• Lc, Rc: linke bzw. rechte
Hälfte des Schlüsseltextes
• xi / yi: Input / Output der
Rundenfunktion in Runde i
• x, x*: zusammengehörige
Zwischenwerte
• x‘ = x  x*: Differenz
Klartext m = (Lm, Rm)
y1
y2
f
f
x1
x2
k1
k2
...
y16
f
x16
k16
Schlüsseltext c = (Lc, Rc)
Kryptographie und Kryptoanalyse
142
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Notation (2)
ki
xi
48
32
f
E
48
S1Ki S2Ki S3Ki … S8Ki
S1Ei S2Ei S3Ei … S8Ei
S1Ii
S2Ii
6
S1
S8Ii
6
…
S2
6
S8
4
4
4
S1Oi
S2Oi
S8Oi
P
32
Kryptographie und Kryptoanalyse
yi
143
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*)
Klartext m = (L
• Verknüpfung von Zwischenwerten
(Input und Output aufeinander
y
f
folgender Rundenfunktionen):
(x  y)  (x*  y*) =
(x  x*)  (y  y*)
y
m,
1
2
f
Rm)
k1
x1
x2
k2
...
Kryptographie und Kryptoanalyse
144
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
• Substitutionsboxen Si
– Nichtlinear  komplexe Beziehungen zwischen Eingabeund Ausgabedifferenzen
Differenz:
Eingabe:
SiI
SiI‘ = SiI  SiI*
SiI*
6
6
Si
Si
4
Ausgabe:
SiO
4
SiO*
SiO‘ = SiO  SiO*
– 26·24 mögliche Tupel von Eingabe- und
Ausgabedifferenzen
– nicht alle möglichen Ausgabedifferenzen SiO‘ existieren
– existierende SiO‘ sind nicht gleichwahrscheinlich
Kryptographie und Kryptoanalyse
145
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Beschreibung der Differenzen – Differenzentabelle
Differenzentabelle für S1, Eingabediff. S1I‘ = 1101002 = 34x
S1I
S1I* =
S1O‘ = S1O  S1O*
S1I  S1I‘
0000 0001 0010 0011 … 1101 1110 1111
000000
110100
000001
.
.
.
110101
.
.
.
111110
001010
1
111111
001011
1
1
.
.
.
Differenzenverteilung:
S1:
0
1
2
3
0 1 2
14 4 13
0 15 7
4 1 14
15 12 8
0
3
1
4
8
2
Kryptographie und Kryptoanalyse
.
.
.
8
.
.
.
16
.
.
.
6
…
.
.
.
8
4 5 6 7 8 9 10 11 12 13
2 15 11 8 3 10 6 12 5 9
14 2 13 1 10 6 12 11 9 5
13 6 2 11 15 12 9 7 3 10
4 9 1 7 5 11 3 14 10 0
.
.
.
0
14
0
3
5
6
6
15
7
8
0
13
146
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Differenzenverteilungstabelle von S1
Eingabediff. S1I’
0
1
2
3
Ausgabedifferenzen S1O’
0
64
0
0
14
1
0
0
0
4
2
0
0
0
2
3
0
6
8
2
4
0
0
0
10
5
0
2
4
6
6
0
4
4
4
..
.
33
34
35
9 A
0 0
10 12
6 8
4 4
B
0
4
6
0
C D
0 0
10 6
12 6
2 2
E
0
2
4
2
F
0
4
2
0
..
.
4
0
2
4
8
2
6
16
4
2
6
0
10
2
8
8
0
0
4
0
0
2 4
12 6
0 14
0
0
4
2
0
6
2
0
8
4
0
0
6
8
2
0
4
14
4
6
0
4
2
2
0
0
4
4
2
8
0
0
8
12
8
6
4
4
2
4
4
2
..
.
..
.
3D
3E
3F
8
0
0
0
6
7
0
4
4
2
0
0
4
8
8
8
6
2
4
2
2
2
2
2
4
6
4
0
0
4
2
8
14
4
4
4
4
S1I‘  S1O‘, z.B.: 34x  1x, 34x  2x, 34x  5x
Kryptographie und Kryptoanalyse
147
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Analyse der Rundenfunktion (1)
gewählt: x, x*  x‘
gesucht: k
f
E
S1K S2K S3K … S8K
S1E S2E S3E … S8E
S1E‘, S2E‘, …, S8E‘
S1I‘
S2I‘
S1
S2
S1O, S1O* S2O , S2O*
S1O‘
S2O‘
S8I‘
…
P
S8
S8O , S8O*
S8O‘
beobachtet: y, y*  y‘
Kryptographie und Kryptoanalyse
148
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 InputVektoren 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;
Kryptographie und Kryptoanalyse
S1O‘ = 0Dx
149
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Mögliche Inputpaare für S1I‘ = 34x
Outputdifferenzen 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
Kryptographie und Kryptoanalyse
150
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Mögliche Schlüsselbits S1K
1. Paar:
S1E = 01x,
S1E* = 35x
 S1I‘ = 34x
 S1O‘ = 0Dx
S1I, S1I*
Mögliche Schlüsselbits
06, 32
07, 33
10, 24
11, 25
16, 22
17, 23
1C, 28
1D, 29
2. Paar:
S1E = 21x,
S1E* = 15x
 S1I‘ = 34x
 S1O‘ = 03x
S1I, S1I*
Mögliche Schlüsselbits
01, 35
20, 14
02, 36
23, 17
15, 21
34, 00
Kryptographie und Kryptoanalyse
151
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Analyse des DES mit 3 Runden
m = (Lm , Rm)
Outputdifferenz der
3. Runde bestimmen:
y1
L C = y 3  x2
f
x1 = Rm
k1
LC = y 3  Lm  y 1
y 3 = Lc  Lm  y 1
y3* = Lc*  Lm*  y1*
y3‘ = Lc‘  Lm‘  y1‘
Rm‘ = 0  y1‘ = 0
y2
y3
f
f
x2
x3 = Rc
k2
k3
c = (Lc , Rc)
Kryptographie und Kryptoanalyse
152
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:
8
P ( f , x'  y ' )   P ( Si, SiI '  SiO ' )
i 1
• Verfolgen von Differenzen und Wahrscheinlichkeiten über
mehrere Runden: Charakteristik
Kryptographie und Kryptoanalyse
153
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
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 c
On= L c  In-1
2  i n-1: Oi = Ii-1  Ii+1
Kryptographie und Kryptoanalyse
Klartext m
y1
y2
f
f
x1
x2
k1
k2
...
y15
y16
f
f
x15
x16
k15
k16
Schlüsseltext c
154
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
n
p    pi
i 1
• 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
Kryptographie und Kryptoanalyse
155
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
1-Runden-Charakteristik mit p = 1
einziger möglicher Fall: Ii = (00 00 00 00)
m = (L m, 00 00 00 00)
p = 1
y1‘ = (00 00 00 00)
f
x1‘ = (00 00 00 00)
k1
c = (L m , 00 00 00 00)
Kryptographie und Kryptoanalyse
156
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
1-Runden-Charakteristik mitIi ∫ 0
• Ziel: p möglichst groß
– SiI’  0 für nur eine S-Box: nur die mittleren Bits dürfen mit 1
belegt sein
S1E:
32
1
2
3
4
1
2
3
4
5
 SiI’ = 000100 001000  001100 = 04x  08x  0Cx
– Wahrscheinlichkeit für SiI’  SiO’ maximal (S1: bei 0Cx  Ex)
14
• 1-Runden-Charakteristik mit p = 64
für
S1: 0Cx  Ex mit Wahrscheinlichkeit
14
64
S2, …, S8: 00x  0x mit Wahrscheinlichkeit 1
Kryptographie und Kryptoanalyse
157
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
14
1-Runden-Charakteristik mit p = 64
m = (L m, 60 00 00 00)
p = 14
64
y1‘ = (00 80 82 00)
= P(E0 00 00 00)
f
x1‘ = (60 00 00 00)
k1
c = (L m  00 80 82 00, 60 00 00 00)
P(E0 00 00 00):
Kryptographie und Kryptoanalyse
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
158
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
Konkatenation von n-Runden Charakteristiken
a = (m,a, ,a, c,a) sei n-Runden-Charakteristik,
b = (m,b, ,b, c,b) sei m-Runden-Charakteristik
m,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
 = ab = (m,a, , c,b)
mit  = (a1, a2, …, an, b1, b2, …, bm)
Kryptographie und Kryptoanalyse
159
4 Symmetrische Verfahren – Differentielle Kryptoanalyse
3-Runden-Charakteristik mit p =
14
64
2
 0,05
m = (00 80 82 00 60 00 00 00)
p = 14
1
y1‘ = (00 80 82 00)
64
p = 1
y2‘ = (00 00 00 00)
2
p = 14
3
y3‘ = (00 80 82 00)
64
f
f
f
x1‘ = (60 00 00 00)
x2‘ = (00 00 00 00)
x3‘ = (60 00 00 00)
k1
k2
k3
c = (00 80 82 00 60 00 00 00)
Kryptographie und Kryptoanalyse
160
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
m = (L m,00 00 00 00)
p = 1
y1‘ = (00 00 00 00)
1
p
y2‘ = (00 00 00 00)
2
f
f
x1‘ = (00 00 00 00)
x2‘ = (L m)
k1
k2
c = (00 00 00 00, L m)
Kryptographie und Kryptoanalyse
161
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
Kryptographie und Kryptoanalyse
162
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
Kryptographie und Kryptoanalyse
163
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Grundlagen
• Körper:
Menge F2 = {0, 1}, Addition , Multiplikation ·
• Vektorraum:
Menge F2n  {(b1 , b2 ,..., bn ) | bi  F2 }
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)
Kryptographie und Kryptoanalyse
164
4 Symmetrische Verfahren – Lineare Kryptoanalyse
• Matrixdarstellung einer linearen Abbildung
L : F26  F24 ; e  (e1e2 e3e4 e5e6 )  F26 ; a  (a1a2 a3a4 )  F24
 e1 
 
 l11 l12 l13 l14 l15 l16   e2 
 a1 

  
 
 l21 l22 l23 l24 l25 l26   e3 
 a2 


 a   L ( e)   l
l
l
l
l
l
e 
 31 32 33 34 35 36   4 
 3
a 
l
 e
l
l
l
l
l
 4
 41 42 43 44 45 46   5 
e 
 6
 l11e1

l e
  21 1
l e
 31 1
l e
 41 1
 l12 e2
 l22 e2
 l32 e2
 l42 e2
Kryptographie und Kryptoanalyse
 ...  l16 e6 

 ...  l26 e6 
 ...  l36 e6 

 ...  l46 e6 
165
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]?
6
 gesucht: Funktionen  : F2  F2 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, …]
Kryptographie und Kryptoanalyse
166
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)
T
T
mit u SiI = v SiO
 nicht vorhanden (Ausnahme u = 000000, v = 0000)
• Affine Abbildungen
T
T
Auswahlvektoren u, v, bei denen u SiI und v SiO stets unterschiedlich
T
T
Nutzen für Analyse: u SiI = v SiO  1
 nicht vorhanden
 Approximation notwendig
Güte pA der Approximation  der Funktion S: Anteil der Argumente,
in denen die Funktionswerte übereinstimmen
Kryptographie und Kryptoanalyse
167
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Beste lineare Approximation von S5O[1]
Substitution
Lineare Abbildung (Auswahlvektor u)
S5I
S5O
000000
110111
…
111110
111111
000000
0010
0
0
…
0
…
0
0
000001
1110
0
1
…
1
…
0
1
000010
1100
0
0
…
1
…
1
1
000011
1011
0
1
…
0
…
1
0
000100
0100
0
0
…
1
…
1
1
..
.
..
.
..
.
..
.
..
.
..
.
111101
0101
0
1
…
0
…
0
1
111110
1110
0
0
…
0
…
1
1
111111
0011
0
1
…
1
…
1
0
32
32
…
44
…
34
34
Häufigkeit:
Kryptographie und Kryptoanalyse
000001 …
..
.
168
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Approximationsmatrix von S5
Ausw.vektor u
000000
000001
000010
000011
Auswahlvektor v
0
64
32
32
32
1
32
32
36
32
2
32
32
30
30
3
32
32
34
38
4
32
32
30
30
5
32
32
34
30
6
32
32
28
36
8
32
32
36
32
7
32
32
32
28
9
32
32
32
32
A
32
32
34
30
B
32
32
30
38
C
32
32
34
30
D
32
32
30
30
E
32
32
32
36
F
32
32
28
28
..
.
..
.
001111
010000
010001
32 30 30 40 38 36 32 34 34 36 40 30 40 26 34 32
32 34 30 32 32 30 26 24 32 30 30 28 32 34 42 12
32 34 30 32 36 34 30 28 36 34 34 32 24 26 34 36
..
.
..
.
111101
111110
111111
32 36 34 34 36 36 30 34 30 42 32 32 34 34 36 32
32 28 36 28 34 34 30 34 34 30 30 30 36 28 32 36
32 28 28 28 46 38 26 30 34 30 38 30 32 32 28 32
Kryptographie und Kryptoanalyse
169
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Bestimmung von Schlüsselbits
m
mit pA = 0,81:
6
k
6
S5I
bzw.
S5
S5O
(010000)Tm  (010000)Tk
= (1111)Tc  1
m[2]  k[2] = c[1,2,3,4]  1
4
c
Umstellen nach k[2]:
k[2] = m[2]  c[1,2,3,4]  1
 Analyse von genügend KlartextSchlüsseltext-Paaren liefert k[2]
Kryptographie und Kryptoanalyse
170
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
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
 Approximationsgleichung für Rundenfunktion
Kryptographie und Kryptoanalyse
171
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Allgemeines Vorgehen
Vorbereitung:
Auswahlvektoren u, v, w bestimmen mit:
T
T
T
w k = u m  v c oder
T
T
T
w k=u mv c1
Güte der Approximation pA > 0,5
1. Schritt:
Untersuchung von N Klartext-Schlüsseltext-Paaren
Z: Anzahl von Paaren, für die die rechte Seite der entsprechenden
Gleichung 0 ist
2. Schritt:
T
Z > N/2: w k = 0
T
Z < N/2: w k = 1
Kryptographie und Kryptoanalyse
172
4 Symmetrische Verfahren – Lineare Kryptoanalyse
Analyse des DES mit 3 Runden
m = (Lm , Rm)
k1[26] =
y 1 = L m  x2
x[17]  y[3,8,14,25]  1
1
1
y2
[26]
k3
=
x[17]  y[3,8,14,25]  1
3
f
x1 = Rm
k1
y 3 = L c  x2
f
f
x2
x3 = Rc
k2
k3
3
c = (Lc , Rc)
Kryptographie und Kryptoanalyse
173
4 Symmetrische Verfahren – AES
AES (Advanced Encryption Standard)
• 1997 Ausschreibung eines öffentlichen Wettbewerbs für die
Einreichung eines kryptographischen Algorithmus “AES” als
Nachfolger 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
Kryptographie und Kryptoanalyse
174
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 FeistelNetzwerk 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
Kryptographie und Kryptoanalyse
175
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
Kryptographie und Kryptoanalyse
176
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 Bit
128 Bit
10
12
14
192 Bit
12
12
14
256 Bit
14
14
14
Kryptographie und Kryptoanalyse
177
4 Symmetrische Verfahren – AES
Struktur des AES
mi
k
nb
Iterationsrunde 1
Iterationsrunde 2
nb
k0
nb
k1
..
.
..
.
Iterationsrunde r
ci
k2
nb
nb
nk
Teilschlüsselgenerierung
kr
nb
Kryptographie und Kryptoanalyse
178
4 Symmetrische Verfahren – AES
Struktur der Iterationsrunden
si
sr
si,a
sr,a
SubBytes
SubBytes
si,b
sr,b
ShiftRow
ShiftRow
sr,c
si,c
MixColumn
si,d
kr
ki
si+1
Runde i, i = 1, 2, …, r-1
Kryptographie und Kryptoanalyse
Runde r
179
4 Symmetrische Verfahren – AES
Notation
• Darstellung eines Bytes als Folge von Bits:
a = {a7a6a5a4a3a2a1a0}2, ai  {0,1}
• Darstellung als Polynom:
7
a   ai x i
i 0
• Darstellung als Hexadezimalzahl
Kryptographie und Kryptoanalyse
180
4 Symmetrische Verfahren – AES
Darstellung der Operanden
Byte-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
Schlüssel für
Schlüssellänge
128 , 192 , 256
Bit
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
Kryptographie und Kryptoanalyse
181
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)
Kryptographie und Kryptoanalyse
182
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)

Kryptographie und Kryptoanalyse
183
4 Symmetrische Verfahren – AES
c(x) = c6x6 + c5x5 + c4x4 + c3x3 + c2x2 + c1x + c0
c0 =
c1 =
c2 =
c3 =
c4 =
c5 =
c6 =
(a0
(a1
(a2
(a3
(a3
(a3
(a3
b )
 bb ))  (a(a  bb ))  (a b )



 bb ))  (a(a  bb ))  (a(a  bb ))  (a  b )
 b )  (a  b ) 


b )
0
0
0
1
0
1
1
0
2
0
2
1
1
2
1
2
2
1
3
2
2
3
0
3
3
mit xi mod (x4+1) = xi mod 4: d(x) = d3x3 + d2x2 + d1x + d0
d0 =
d1 =
d2 =
d3 =
(a0
(a1
(a2
(a3
 bb ))  (a(a  bb ))  (a(a  bb ))  (a(a  bb ))
 b )  (a  b )  (a  b )  (a  b )




 b )  (a  b )  (a  b )  (a  b )
0
3
1
2
2
1
3
0
0
1
3
2
2
3
0
1
1
0
2
3
3
0
2
1
1
2
0
3
(oftmals Matrixschreibweise)
Kryptographie und Kryptoanalyse
184
4 Symmetrische Verfahren – AES
Schritt 1: SubBytes
• Alle Bytes einer Matrix werden unabhängig voneinander
substituiert
• Nichtlinearität
bi,j := S8(ai,j)
si,a =
a0,0 a0,1 a0,2 a0,3
b0,0 b0,1 b0,2 b0,3
a1,0 a1,1
1,1 a1,2 a1,3
b1,0 b1,1
1,1 b1,2 b1,3
a2,0 a2,1 a2,2 a2,3
b2,0 b2,1 b2,2 b2,3
a3,0 a3,1 a3,2 a3,3
b3,0 b3,1 b3,2 b3,3
Kryptographie und Kryptoanalyse
= si,b
185
4 Symmetrische Verfahren – AES
Substitutionsbox S8(a7a6a5a4a3a2a1a0)
a 7a 6a 5a 4
0
1
2
3
4
5
6
7
a 3a 2a 1a 0
0
63
CA
B7
04
09
53
D0
51
1
7C
82
FD
C7
83
D1
EF
A3
2
77
C9
93
23
2C
00
AA
40
3
7B
7D
26
C3
1A
ED
FB
8F
4
F2
FA
36
18
1B
20
43
92
5
6B
59
3F
96
6E
FC
4D
9D
6
6F
47
F7
05
5A
B1
33
38
7
C5
F0
CC
9A
A0
5B
85
F5
..
.
C
D
E
F
8
30
AD
34
07
52
6A
45
BC
9
01
D4
A5
12
3B
CB
F9
B6
A
67
A2
E5
80
D6
BE
02
DA
B
2B
AF
F1
E2
B3
39
7F
21
C
FE
9C
71
EB
29
4A
50
10
D
D7
A4
D8
27
E3
4C
3C
FF
E
AB
72
31
B2
2F
58
9F
F3
F
76
C0
15
75
84
CF
A8
D2
DD
35
1E
99
74
57
87
2D
1F
B9
E9
0F
4B
86
CE
B0
BD
C1
55
54
8B
1D
28
BB
8A
9E
DF
16
..
.
BA
70
E1
8C
78
3E
F8
A1
25
B5
98
89
2E
66
11
0D
Kryptographie und Kryptoanalyse
1C
48
69
BF
A6
03
D9
E6
B4
F6
8E
42
C6
0E
94
68
E8
61
9B
41
186
4 Symmetrische Verfahren – AES
Schritt 2: ShiftRow
• Zyklische Verschiebung der Zeilen nach links
• Diffusion
si,b =
Zeile
0
1
2
3
Nb = 4
0
1
2
3
Nb = 6
0
1
2
3
Nb = 8
0
1
3
4
b0,0 b0,1 b0,2 b0,3
c0,0 c0,1 c0,2 c0,3
b1,0 b1,1 b1,2 b1,3
c1,0 c1,1 c1,2 c1,3
b2,0 b2,1 b2,2 b2,3
c2,0 c2,1 c2,2 c2,3
b3,0 b3,1 b3,2 b3,3
c3,0 c3,1 c3,2 c3,3
Kryptographie und Kryptoanalyse
= si,c
187
4 Symmetrische Verfahren – AES
Schritt 3: MixColumn
• Operiert jeweils auf Spalten der Matrix (32-Bit Substitution)
• Diffusion
di := a(x)  ci mod (x4+ 1)
si,c =
c0,0 cc0,1
0,1 c0,2 c0,3
d0,0 d
d0,1
0,1 d0,2 d0,3
c1,0 cc1,1
1,1 c1,2 c1,3
d1,0 d
d1,1
1,1 d1,2 d1,3
c2,0 cc2,1
2,1 c2,2 c2,3
d2,0 d
d2,1
2,1 d2,2 d2,3
c3,0 cc3,1
3,1 c3,2 c3,3
d3,0 d
d3,1
3,1 d3,2 d3,3
Kryptographie und Kryptoanalyse
= si,d
188
4 Symmetrische Verfahren – AES
di := a(x)  ci mod (x4+1)
a(x) = {03} x3 + {01} x2 + {01} x + {02}
d0,i
02 03
d1,i
01 02
d2,i = 01 01
d3,i
03 01
d0,i
d1,i
d2,i
d3,i
01
03
02
01
01
01
03
02
c0,i
c1,i
c2,i
c3,i
= ({02}·c0,i) ({03}·c1,i) 
c2,i  
c3,i
=
c0,i  ({02}·c1,i)  ({03}·c2,i) 
c3,i
=
c0,i 
c1,i  ({02}·c2,i)  ({03}·c3,i)
= ({03}·c0,i)
c1,i 
c2,i  ({02}·c3,i)
Kryptographie und Kryptoanalyse
189
4 Symmetrische Verfahren – AES
Schritt 4: AddRoundKey
• Macht Iterationsrunden schlüsselabhängig
• Länge des Rundenschlüssels ki: nb
si,d
ki
si+1,a
d0,0 d0,1 d0,2 d0,3
k0,0 k0,1 k0,2 k0,3
a0,0 a0,1 a0,2 a0,3
d1,0 d1,1 d1,2 d1,3
k1,0 k1,1 k1,2 k1,3
a1,0 a1,1 a1,2 a1,3
d2,0 d2,1 d2,2 d2,3
k2,0 k2,1 k2,2 k2,3
d3,0 d3,1 d3,2 d3,3
k3,0 k3,1 k3,2 k3,3
Kryptographie und Kryptoanalyse
=
a2,0 a2,1 a2,2 a2,3
a3,0 a3,1 a3,2 a3,3
190
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 Bit
128 Bit
16·11
24·13
32·15
192 Bit
16·13
24·13
32·15
256 Bit
16·15
24·15
32·15
Kryptographie und Kryptoanalyse
191
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 … wNb*(r+1)-1
• Auswahl der Rundenschlüssel:
w0 w1 w2 … wNb -1 wNb wNb+1 …
k0
Kryptographie und Kryptoanalyse
k1
192
4 Symmetrische Verfahren – AES
Schlüsselexpansion für Nk = 4
k[0:3]
w0
k[4:7]
w1
k[8:11]
w2
k[12:15]
Rcon[1]
w3
Rot
SubWord
w4
w5
w6
Rcon[2]
w7
Rot
…
…
Kryptographie und Kryptoanalyse
…
…
SubWord
193
4 Symmetrische Verfahren – AES
Schlüsselexpansion – Verwendete Funktionen
• Rot: zyklische Verschiebung
Rot([a0, a1, a2, a3]) = [a1, a2, a3, a0]
• SubWord: byteweise Substitution unter Nutzung von S8
SubWord([a0, a1, a2, a3]) = [S8(a0), S8(a1), S8(a2), S8(a3)]
• Rcon: Konstante für die betreffenden Runden
Rcon[j = i/Nk] = [xj-1, {00}, {00}, {00}]
Kryptographie und Kryptoanalyse
194
4 Symmetrische Verfahren – AES
Entschlüsselung
• Umgekehrte Reihenfolge, inverse Funktionen
si+1
kr
sr,c
si -1
ShiftRow
sr,b
SubBytes-1
sr,a
sr
ki
si,d
MixColumn-1
si,c
ShiftRow-1
si,b
SubBytes-1
si,a
si
Runde r
Runde i, i = r-1, r-2, …, 1
• Zum Schluss Addition des Rundenschlüssels k0
Kryptographie und Kryptoanalyse
195
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}
Kryptographie und Kryptoanalyse
196
4 Symmetrische Verfahren – AES
Entschlüsselung in äquivalenter Reihenfolge
• SubBytes(ShiftRow(si)) = ShiftRow(SubBytes(si))
und
SubBytes-1(ShiftRow-1(si)) = ShiftRow-1(SubBytes-1(si))
• MixColumn(si  ki) = MixColumn(si)  MixColumn(ki)
und
MixColumn-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
Kryptographie und Kryptoanalyse
197
4 Symmetrische Verfahren – AES
Entschlüsselung in äquivalenter Reihenfolge
• Addition des Rundenschlüssels kr
si+1
s1
si,a
s1,a
SubBytes-1
SubBytes-1
si,b
s1,b
ShiftRow-1
ShiftRow-1
s1,c
si,c
MixColumn-1
si,d
k0
ki‘
si
Runde i, i = r-1, r-2, …, 1
Kryptographie und Kryptoanalyse
198
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
4 Symmetrische Verfahren – Betriebsarten
Betriebsarten
 Verschlüsselung längerer Nachrichten, Authentikation
Beispiele für Betriebsarten:
– Verschlüsselung:
• Electronic Code Book (ECB)
1981 für DES
• Cipher Block Chaining (CBC)
standardisiert
• Cipher Feedback (CFB)
(FIPS 81)
• 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
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 Klartextoder 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
Kryptographie und Kryptoanalyse
201
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)
Sender
Empfänger
enc
–
dec
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)
Kryptographie und Kryptoanalyse
202
4 Symmetrische Verfahren – Betriebsarten
Electronic Codebook (ECB)
Verschlüsselung
Entschlüsselung
k
mi
l
enc
k
l
ci
ci
l
dec
l
mi
ci = enc(k, mi), 1 < i ≤ n
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)
Kryptographie und Kryptoanalyse
203
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)
Kryptographie und Kryptoanalyse
204
4 Symmetrische Verfahren – Betriebsarten
Cipher Block Chaining (CBC) – Verschlüsselung
k
mi
l
l
ci
enc
1
ci-1  IV
c1 = enc(k, (m1  IV )); IV: Initialisierungsvektor
ci = enc(k, (mi  ci-1)), 1 < i ≤ n
…
l
Speicher für
Schlüsseltextblock
ci-1 bzw. IV
c = enc(k, (m1IV)) enc(k, (m2c1)) enc(k, (m3c2)) … enc(k, (mncn-1))
Kryptographie und Kryptoanalyse
205
4 Symmetrische Verfahren – Betriebsarten
Cipher Block Chaining (CBC) – Entschlüsselung
k
ci
l
l
dec
mi
ci-1  IV
1
m1 = dec(k, c1)  IV
mi = dec(k, ci)  ci-1, 1 < i ≤ n
…
l
Speicher für
Schlüsseltextblock
ci-1 bzw. IV
m = dec(k, c1)  IV dec(k, c2)  c1 dec(k, c3)  c2 … dec(k, cn )  cn-1
Kryptographie und Kryptoanalyse
206
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
Kryptographie und Kryptoanalyse
207
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
Kryptographie und Kryptoanalyse
208
4 Symmetrische Verfahren – Betriebsarten
CBC zur Authentikation (CBC-MAC)
k
ci
enc
1
ci-1  IV
…
l
IV = 0…0
letzter
Schlüsseltextblock cn
mi
letzter Schlüsseltextblock wird als MAC angehängt: m1 m2 m3 … mn cn
Empfänger berechnet ebenfalls cn und vergleicht mit erhaltenem cn
Kryptographie und Kryptoanalyse
209
4 Symmetrische Verfahren – Betriebsarten
Cipher Feedback (CFB) – Verschlüsselung
l
r+1 r
…
…
1
Schieberegister A
ai Inhalt zum Zeitpunkt i
a1 = IV
ai = LSBl-r(ai-1)|ci-1
k
enc
select
mi
r
r
Ausgabeblock B
bi Ausgabe zum Zeitpunkt i
r
ci
ci = mi  selectr (enc(k, ai))
für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1
Kryptographie und Kryptoanalyse
210
4 Symmetrische Verfahren – Betriebsarten
Cipher Feedback (CFB) – Entschlüsselung
l
r+1 r
…
…
1
Schieberegister A
ai Inhalt zum Zeitpunkt i
a1 = IV
ai = LSBl-r(ai-1)|ci-1
k
enc
select
ci
r
r
r
mi
mi = ci  selectr (enc(k, ai))
für l = 64, r = 8: ai = ci-8 ci-7 ci-6 … ci-2 ci-1
Kryptographie und Kryptoanalyse
211
4 Symmetrische Verfahren – Betriebsarten
Cipher Feedback (CFB) – Eigenschaften
l 
• Selbstsynchronisierend (Abhängigkeit von  r  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
Kryptographie und Kryptoanalyse
212
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
Kryptographie und Kryptoanalyse
213
4 Symmetrische Verfahren – Betriebsarten
Output Feedback (OFB) – Ver-/Entschlüsselung
l
…
1
Eingabeblock A
ai Inhalt zum Zeitpunkt i
a1 = IV
k
enc
l
l
mi
ci
ci = mi  enc(k, ai)
mi = ci  enc(k, ai)
Kryptographie und Kryptoanalyse
…
1
l
ci
mi
Anmerkung: in FIPS 81 Länge der
verarbeiteten Einheiten frei wählbar
214
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
Kryptographie und Kryptoanalyse
215
4 Symmetrische Verfahren – Betriebsarten
Counter Mode (CTR) – Ver-/Entschlüsselung
l
…
1
k
enc
l
mi
ci
ci = mi  enc(k, Ti)
mi = ci  enc(k, Ti)
Kryptographie und Kryptoanalyse
…
Ti Zähler zum Zeitpunkt i
T1 Startwert des Zählers
Ti = inc(Ti - 1)
1
ci
mi
216
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
Kryptographie und Kryptoanalyse
217
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
m*n ggf. aufgefüllt
m2
m1
k1, falls m*n
k
enc
k
k
enc
…
Kryptographie und Kryptoanalyse
enc
kompletter
Block /
k2 sonst
cn[1:Tlen]
218
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
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
Überblick über die Vorlesung
1.
2.
3.
4.
5.
Einführung
Grundlagen
Klassische Verfahren
Symmetrische Verfahren
Asymmetrische Verfahren
–
–
–
–
–
Grundlagen
Diffie-Hellman-Schlüsselaustausch
ElGamal
RSA
Kryptosysteme auf Basis elliptischer Kurven
Kryptographie und Kryptoanalyse
221
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-Einwegfunktion
A, B Mengen
f:
A  B heißt Einwegfunktion, wenn gilt:
f:
A  B leicht berechenbar für alle a  A, aber
f -1: B  A schwierig oder nicht berechenbar für fast alle b  B
Trapdoor-Eigenschaft:
Berechnung von f -1(b) durch Kenntnis bestimmter Zusatzparameter
ebenfalls leicht berechenbar.
Kryptographie und Kryptoanalyse
222
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:
Kryptographie und Kryptoanalyse
Φ(p∏q)=(p-1)(q-1)
223
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 = 1
u = a-1 mit aa-1  1 mod n
Kryptographie und Kryptoanalyse
224
5 Asymmetrische Verfahren – Grundlagen
EEA: a,b  N, b > a  ggT(a,b), ggT(a,b) = u∏ a + v∏ b
r
Initialisierung
Abbruch:
rk = 0
q
s
t
-2
b
1
0
-1
a
0
1
0
b mod a
b div a
s-2 – q0∏ s-1
t-2 – q0∏ t-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
 ggT(a,b) = rk-1, u = tk-1, v = sk-1
 Beispiel
Kryptographie und Kryptoanalyse
225
5 Asymmetrische Verfahren – Grundlagen
• Erzeugung von Primzahlen
1. Wahl einer Zufallszahl p als Kandidat für die Primzahl
2. Test, ob p prim ist
3. Wiederholung von 1. und 2., bis Primzahl gefunden
• Primzahltest nach Rabin-Miller für p  3 mod 4
p-1
* 2
p prim:  a  Zp: a  1 mod p
falls 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
-l
Wahrscheinlichkeit  1 – 4
Kryptographie und Kryptoanalyse
226
5 Asymmetrische Verfahren – Grundlagen
• Kleiner Satz von Fermat
Für alle x Z p* 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 a e = 1 (e > 0)
zyklische Gruppe: order g = |G| (Ordnung von G)
– Multiplikative Gruppe Zp* = {1, 2, …, p-1} (p prim) ist zyklisch:
Zp* = <g> = {g i mod p | i = 0, 1, …, (p)-1}
Kryptographie und Kryptoanalyse
227
5 Asymmetrische Verfahren – Grundlagen
Z7* = {1,2,3,4,5,6}
30 = 1
31 = 30 ∏ 3 = 3
= ∏ 3 = 9 ª 2 mod 7
33 = 32 ∏ 3 = 6
34 = 33 ∏ 3 = 18 ª 4 mod 7
35 = 34 ∏ 3 = 12 ª 5 mod 7
32
36
31
=
35
∏ 3 = 15 ª 1 mod 7
…
x
y = 3 mod 7
6
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
10
11
12
x
36 ª 1 mod 7  order 3 = 6  3 ist Generator von Z7*
Kryptographie und Kryptoanalyse
228
5 Asymmetrische Verfahren – Grundlagen
Z7* = {1,2,3,4,5,6}
20 = 1
21 = 20 ∏ 2 = 2
22
=
21
∏2= 4
y = 2x mod 7
6
5
23 = 22 ∏ 2 = 8 ª 1 mod 7
24 = 23 ∏ 2 = 2
25 = 24 ∏ 2 = 4
4
26 = 25 ∏ 2 = 8 ª 1 mod 7
…
0
3
2
1
0
1
2
3
4
5
6
7
8
9
10
11
12
x
23 ª 1 mod 7  order 2 = 3  2 ist kein Generator von Z7*
Kryptographie und Kryptoanalyse
229
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
e
e
e
– Benötigt: n = |G|, Primfaktorzerlegung n  p1 1 p2 2 ... pk k
– Wahl eines zufälligen Elements a  G
– Für i = 1, 2, … k:
n
b  a pi
b = 1: a kein Generator, Wahl eines anderen Elements aus G
Kryptographie und Kryptoanalyse
230
5 Asymmetrische Verfahren – Grundlagen
• Problem für G = Z*p
– Algorithmus benötigt Primfaktorzerlegung von |G|
|Zp*| = Φ(p) = p-1  Faktorisierung schwierig
 Algorithmus für spezielle Primzahlen:
sichere Primzahl: p = 2q + 1, q prim
• Algorithmus zum Finden von g  Z*p 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
Kryptographie und Kryptoanalyse
231
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-Algorithmus
Binä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;
}
Kryptographie und Kryptoanalyse
232
5 Asymmetrische Verfahren – Grundlagen
• Diskreter Logarithmus
– Für jede Zahl y  Zp* 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 g
modulo p genannt:
x = logg y mod p
Bestimmen 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
Kryptographie und Kryptoanalyse
233
5 Asymmetrische Verfahren – Grundlagen
• Beispiel: Diskreter Logarithmus für p = 229, g = 6
y = log6 x mod 229
200
150
100
50
50
Kryptographie und Kryptoanalyse
100
150
200
x
234
5 Asymmetrische Verfahren – Grundlagen
• Berechnung des diskreten Logarithmus mit dem
Babystep-Giantstep-Algorithmus: x = logg y mod p
, |G|: Ordnung der Gruppe
Ansatz: x = qm + r, 0 § r < m
Algorithmus berechnet q und r
y = gx 
y = g qm + r
(g m)q = y g -r
Babystep-Liste: B = {(i, y (g i) -1 mod p), 0 § i < m}
Giantstep-Liste: G = {(j, (g m) j mod p), 0 § j < m}
r
q
Berechnung der Elemente von G, bis (g m) j als zweite
Komponente eines Elements in B gefunden.
Kryptographie und Kryptoanalyse
235
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!
Kryptographie und Kryptoanalyse
236
5 Asymmetrische Verfahren – DH-Schlüsselaustausch
Diffie-Hellman-Schlüsselaustausch
Öffentlich bekannt: Primzahl p, Generator g
Teilnehmer A
Teilnehmer B
unsicherer Kanal
p, g
p, g
wählt xA mit 0  xA  p-2
wählt xB mit 0  xB  p-2
(xA geheim)
(xB geheim)
x
berechnet yA = g A mod p
yA
berechnet yB = g
xB
mod p
yB
x
kA,B = yB A mod p
Kryptographie und Kryptoanalyse
enc (kA,B , m)
kA,B = yAx B mod p
237
5 Asymmetrische Verfahren – DH-Schlüsselaustausch
Sicherheit des Diffie-Hellman-Schlüsselaustauschs
• Diffie-Hellman-Problem:
x
x
Geg.: p, g, yA = g A mod p und yB = g B mod p
Problem: bestimme g
xA xB
mod p
• Angreifer beobachtet yA, yB, kann er
xA = logg yA mod p oder
xB = logg yB mod p
berechnen, kann er das Geheimnis kAB = g
xA x B
mod p ermitteln.
• sicher gegen passive Angriffe
• aber: unsicher gegen aktive Angriffe
Kryptographie und Kryptoanalyse
238
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
Kanal
Angreifer C
Kanal
Teilnehmer B
p, g
p, g
p, g
wählt xA
wählt xC
wählt xB
yA = g xA mod p
yA
yC = g x C mod p
yB = g xB mod p
yC
yB
yC
x
kA,C = yCxA mod p
kA,C = yA C mod p
enc (kA,C , m) kB,C = yBx C mod p
Kryptographie und Kryptoanalyse
enc (kB,C , m)
kB,C = yCxB mod p
239
5 Asymmetrische Verfahren – DH-Schlüsselaustausch
Abhilfe: Vertrauenswürdige Instanz
2.
Teilnehmer A
p, g
Vertrauenswürdige
Instanz
yA, yB, yC
3.
wählt xA
1.
yA = g xA mod p
kAB = yBxA mod p
enc (kA,B, m)
4.
Teilnehmer B
5.
p, g
wählt xB
yB = g x B mod p
kAB = yAx B mod p
Angreifer C
p, g
wählt xC
yC = g x C mod p
Kryptographie und Kryptoanalyse
240
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)
Kryptographie und Kryptoanalyse
241
5 Asymmetrische Verfahren – ElGamal-Kryptosystem
ElGamal als Konzelationssystem
Schlüsselgenerierung
Jeder Teilnehmer
• wählt Primzahl p und Generator g  Z*p
• wählt zufällige Zahl kd mit 0  kd  p-2
• berechnet ke = g kd mod p
• Öffentlicher Schlüssel: (p, g, ke)
• Privater Schlüssel: kd
Kryptographie und Kryptoanalyse
242
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 p
c2 = m k er mod p
– sendet c = (c1, c2) an A
Entschlüsselung
p-1-kd
kd -1
• A berechnet m = c1
c2 mod p bzw. m = (c1 ) c2 mod p
Kryptographie und Kryptoanalyse
243
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 Nachrichten
 Gewählter Schlüsseltext-Klartext-Angriff möglich  Angriff
vereiteln
Kryptographie und Kryptoanalyse
244
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,1 = c2,1 = g r mod p
c1,2 = m1 ker mod p
c2,2 = m2 k er mod p
-1
-1
m1 bekannt: c1,2 c2,2 = m1 m2 mod p
-1
m2 = m1 c1,2 c2,2 mod p
Kryptographie und Kryptoanalyse
245
5 Asymmetrische Verfahren – ElGamal-Kryptosystem
Gewählter Schlüsseltext-Klartext-Angriff
• Ziel: Ermittlung von m aus beobachtetem c = (c1, c2)
• Angreifer
– sendet c‘ = (c1, c‘2 ) an Empfänger (c‘2 beliebig)
• Empfänger
– entschlüsselt:
-k
m‘ = c1 d c‘2 mod p
• Angreifer
– berechnet:
– entschlüsselt:
c1 d = c‘2 (m’)-1 mod p
-k
m = c1d c2 mod p
Kryptographie und Kryptoanalyse
k
246
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 p
c2 = m* ker mod p
• Überprüfung der Redundanz beim Empfänger:
Entschlüsselung liefert m* = m, x
Nachricht wird nur ausgegeben, wenn x = h(m)
• Anmerkung: Verwendung unterschiedlicher Zufallszahlen
( unterschiedliche c1) reicht nicht:
c1 kann unkenntlich gemacht werden
Kryptographie und Kryptoanalyse
247
5 Asymmetrische Verfahren – ElGamal-Kryptosystem
ElGamal als Signatursystem
Schlüsselgenerierung
Wie beim Konzelationssystem – jeder Teilnehmer
• wählt Primzahl p und Generator g  Z*p
• wählt zufällige Zahl ks mit 0  ks  p-2
• berechnet kt = g k s mod p
• Öffentlicher Schlüssel: (p, g, kt)
• Privater Schlüssel: ks
Kryptographie und Kryptoanalyse
248
5 Asymmetrische Verfahren – ElGamal-Kryptosystem
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*p-1
– berechnet r
-1
-1
mit r r  1 mod (p-1)
– berechnet s = (s1, s2) mit
s1 = g r mod p
s2 = r -1 (h(m) - ks s1) mod (p-1)
– sendet m, (s1, s2)
Kryptographie und Kryptoanalyse
249
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
s1 s2
– 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)
Kryptographie und Kryptoanalyse
250
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,1 = s2,1 = g r mod p
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)
-1
ks = s1,1 (h(m1) – s1,2 r) mod (p-1)
Kryptographie und Kryptoanalyse
251
5 Asymmetrische Verfahren – ElGamal-Kryptosystem
Existentielles Brechen
• nachrichtenbezogenes Brechen für irgendeine Nachricht m
• Verifikationskongruenz (ohne Hashfunktion):
s1 s2
m
kt s1  g mod p
u
v
s1 = g kt mod p mit u, v  Z, ggT(v, p-1) = 1
• Ersetzen:
s + v s2
 kt 1
m - u s2
 g
mod p
• Exponenten = 0 ermöglicht das Bestimmen von s2 und m:
linke Seite:
rechte Seite:
s2 = - s1 v -1 mod (p-1)
m = s2 u mod (p-1)
Kryptographie und Kryptoanalyse
252
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:
s s
s
s u -s
kt1s12  kt 1g 2 kt 1  g m mod p
 (s1, s2) ist gültige Signatur für m = s2 u mod (p-1)
 Verwendung einer Hashfunktion:
nur Signaturen für h(m) berechenbar
Kryptographie und Kryptoanalyse
253
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
Kryptographie und Kryptoanalyse
254
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*p mit order g = q
• Jeder Teilnehmer
– wählt zufällig ks mit 0 < ks < q
– berechnet kt = g ks mod p
Kryptographie und Kryptoanalyse
255
5 Asymmetrische Verfahren – ElGamal / DSA
Signieren
• A führt die folgenden Schritte aus:
– wählt Zufallszahl r  Z*q
– berechnet r
-1
-1
mit r r  1 mod q
– berechnet s = (s1, s2) mit
s1 = (g r mod p) mod q
s2 = r -1 (h(m) + ks s1) mod q
– sendet m, (s1, s2)
Kryptographie und Kryptoanalyse
256
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 q
v2 = s1 s2-1 mod q
– akzeptiert Signatur, wenn (g v1 kt v2 mod p) mod q ª s1
• Berechnungen in einer Untergruppe von Z*p der Ordnung q
durchgeführt  kürzere Signaturen
Kryptographie und Kryptoanalyse
257
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
Kryptographie und Kryptoanalyse
258
5 Asymmetrische Verfahren – RSA-Kryptosystem
Mathematische Grundlagen
• Berechnung von n = p q 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  n
•
Zerlegung n = x2 – y2 = (x + y)(x – y)
•
Start mit x 
•
Berechnung von x2 – n, (x + 1)2 – n, (x + 2)2 – n, …
 n
bis Ergebnis eine Quadratzahl ist (y2 = x2 – n)
•
Faktoren von n: p = x + y, q = x - y
Kryptographie und Kryptoanalyse
259
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 – 1
n F ak – 1  d = ggT(ak – 1, n) echter Teiler von n
(1 < d < n)
•
Kandidaten für k: Produkte aller Primzahlpotenzen  B
Kryptographie und Kryptoanalyse
260
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  xT ±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)
Kryptographie und Kryptoanalyse
261
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 q
d.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
Kryptographie und Kryptoanalyse
262
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 = p q
• wählt zufällige Zahl ke mit 1 < ke < (n), ggT(ke, (n)) = 1
-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
Kryptographie und Kryptoanalyse
263
5 Asymmetrische Verfahren – RSA-Kryptosystem
RSA als Konzelationssystem (unsichere Variante)
Teilnehmer A
unsicherer Kanal
Teilnehmer B
Schlüsselgenerierung
öffentlich: n, ke
privat: p, q, kd
bekannt: n, ke
Verschlüsselung
c
c = mke mod n (m < n)
Entschlüsselung
m = ckd mod n
 Nachzuweisen: m  Ζ n
Kryptographie und Kryptoanalyse
 
: m
ke k d
 m ke kd  m mod n
264
5 Asymmetrische Verfahren – RSA-Kryptosystem
RSA als Signatursystem (unsichere Variante)
Teilnehmer A
unsicherer Kanal
Teilnehmer B
Schlüsselgenerierung
öffentlich: n, kt
privat: p, q, ks
bekannt: n, kt
Signieren
s = mk s mod n (m < n)
m, s
Testen
m = skt mod n?
Kryptographie und Kryptoanalyse
265
5 Asymmetrische Verfahren – RSA-Kryptosystem
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:
-1
kd,p ke
kd,p = ke mod (p-1)  (c )  c mod p
kd,q ke
-1
kd,q = ke mod (q-1)  (c )  c mod q
• Entschlüsselung eines Schlüsseltextes c:
k
yp = c d,p mod p
k
yq = c d,q mod q
m = CRA(yp, yq)
Kryptographie und Kryptoanalyse
266
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 indeterministische
Verschlüsselung
 Verhinderung aktiver Angriffe durch Hinzufügen von Redundanz
Kryptographie und Kryptoanalyse
267
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 = mke mod n1 = m3 mod n1
c2 = mke mod n2 = m3 mod n2
c3 = mke mod n3 = m3 mod n3
Kryptographie und Kryptoanalyse
268
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:
Konzelationssystem:
Kryptographie und Kryptoanalyse
kt = 3
ke = 216+1
269
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“)
k
c = (r, m) e mod n
– PKCS #1 v 1.5 (verwendet in SSL v 3.0): 1998 von
Bleichenbacher gebrochen (gewählter Schlüsseltext-KlartextAngriff)
– PKCS #1 v 2.1 basierend auf OAEP (Optimal Asymmetric
Encryption Padding, Bellare und Rogaway 1995)
Kryptographie und Kryptoanalyse
270
5 Asymmetrische Verfahren – RSA-Kryptosystem
• Signatursystem
– Angreifer: Wahl einer Signatur, Berechnung der zugehörigen
k
Nachricht mit m = s t 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)
Kryptographie und Kryptoanalyse
271
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ür
Nachricht 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
-1
– wählt m1 und berechnet m1 mod n
-1
– berechnet m2 = m3 m1 mod n
– lässt m1 und m2 signieren  erhält s1, s2
– berechnet s3 = s1 s2 mod n
Kryptographie und Kryptoanalyse
272
5 Asymmetrische Verfahren – RSA-Kryptosystem
Verbesserter aktiver Angriff von Moore (selektiv)
• Ziel: Signatur für gewählte Nachricht m2
• Angreifer
-1
– wählt r  Zn*, berechnet r mod n
k
– berechnet m1 = m2 r t mod n
– lässt m1 signieren  erhält s1
-1
– berechnet s2 = s1 r mod n
• Anwendung der Angriffe auf RSA als Konzelationssystem
möglich
Kryptographie und Kryptoanalyse
273
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
-1
*
– wählt r  Zn, berechnet r mod n
k
k
– „blendet“ m2 durch Multiplikation mit r t : m1 = m2 r t mod n
– lässt m1 signieren  erhält s1
-1
– berechnet s2 = s1 r mod n
Kryptographie und Kryptoanalyse
274
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))kc
Signatursystem:
• Anwendung einer kollisionsresistenten Hashfunktion h() auf
die Nachricht:
s = (h(m))ks
Kryptographie und Kryptoanalyse
275
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
Kryptographie und Kryptoanalyse
276
5 Asymmetrische Verfahren – Rabin-Kryptosystem
Mathematische Grundlagen
Quadratische 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
1
1
2
4
Kryptographie und Kryptoanalyse
…
…
quadratische Reste:
1
1
2
2
1
2
1
2
…
-2
-1
…
4
1
277
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:
y z
p 1
4
mod p
(für p  1 mod 4 gibt es keine Lösungsformel, aber einen effizienten
Algorithmus)
Kryptographie und Kryptoanalyse
278
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 (
• CRA(
CRA
CRA
CRA
CRA
,
) und modulo q (
) bestimmen
) liefert die vier Wurzeln modulo n:
,
,
,
,
mit
mit
mit
mit
Kryptographie und Kryptoanalyse
≡ ≡ ≡
≡
mod
mod
mod
mod
und
und
und
und
≡ ≡
≡ ≡
mod
mod
mod
mod
279
5 Asymmetrische Verfahren – Rabin-Kryptosystem
Schlüsselgenerierung
Jeder Teilnehmer
• wählt zufällig und unabhängig 2 verschiedene Primzahlen p, q
mit ≡ ≡ 3mod4 (vereinfacht die Entschlüsselung)
• berechnet n = p q
• Ö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
Kryptographie und Kryptoanalyse
280
5 Asymmetrische Verfahren – Rabin-Kryptosystem
Sicherheit
• Leicht zu zeigen: Wer faktorisieren kann, kann das RabinKryptosystem 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
Kryptographie und Kryptoanalyse
281
5 Asymmetrische Verfahren – Rabin-Kryptosystem
Begründung für Möglichkeit der Faktorisierung
• tatsächliche Nachricht m ist eine der vier Wurzeln CRA(
,
)
• berechnetes m‘ R c erfüllt eine der folgenden Bedingungen:
(1)
(2)
(3)
(4)
≡ ≡ ≡
≡
mod
mod
mod
mod
∧
∧
∧
∧
≡ ≡
≡ ≡
mod
mod
mod
mod
• damit gilt:
(1)
(2)
(3)
(4)
|
|
|
|
∧
∧ |
∧ |
∧ |
Kryptographie und Kryptoanalyse
⇔
⇒ ggT
⇒ ggT
⇒ ggT
⇒ ggT
,
,
,
,
p
q
1
282
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
Kryptographie und Kryptoanalyse
283
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]
Kryptographie und Kryptoanalyse
284
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 Gruppen
definiert 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).
Kryptographie und Kryptoanalyse
285
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
Kryptographie und Kryptoanalyse
286
5 Asymmetrische Verfahren – ECC
Beispiele für elliptische Kurven über den reellen Zahlen (1)
y2 = x3 - 7x + 1
y2 = x3 - 8x + 10
Diskriminante:
4 (-7)3 + 27 12 = -1345
Kryptographie und Kryptoanalyse
4 (-8)3 + 27 102 = 652
287
5 Asymmetrische Verfahren – ECC
Beispiele für elliptische Kurven über den reellen Zahlen (2)
y2 = x3 - 3x + 2
y2 = x 3
Diskriminante:
4 (-3)3 + 27 22 = 0
Kryptographie und Kryptoanalyse
4 (0)3 + 27 02 = 0
288
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:
Inverses Element :
P+Q=R
(P + Q) + R = P + (Q + R)
P+O=O+P=P
P + (-P) = O
Kommutativität:
P+R=R+P
Assoziativität:
Neutrales Element:
Kryptographie und Kryptoanalyse
289
5 Asymmetrische Verfahren – ECC
Punktaddition R = P + Q mit Q  -P
R‘
Q
P
y2 = x3 - 7x + 0,5
R=P+Q
• 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
Kryptographie und Kryptoanalyse
290
5 Asymmetrische Verfahren – ECC
Punktaddition R = P + Q mit Q = -P
P
R = P + -P = O
-P
y2 = x3 - 7x + 0,5
• Gerade durch P und –P: Parallele zur y-Achse
• Kein weiterer Schnittpunkt mit der Kurve
• Als Schnittpunkt definiert: O
Kryptographie und Kryptoanalyse
291
5 Asymmetrische Verfahren – ECC
Punktaddition R = P + P = 2 P mit yP ∫ 0
P
R‘
R = 2P
y2 = x3 - 8x + 10
• Tangente im Punkt P
• Schnittpunkt der Tangente mit der Kurve ergibt R‘
• Spiegelung von R‘ an der x-Achse ergibt R = 2 P
Kryptographie und Kryptoanalyse
292
5 Asymmetrische Verfahren – ECC
Punktaddition R = P + P = 2 P mit yP = 0
R=2P=P+-P=O
P
y2 = x3 - 8x + 10
• Tangente im Punkt P: Parallele zur y-Achse
• Kein Schnittpunkt der Tangente mit der Kurve
• Sonderfall von R = P + -P: R = 2 P = P + -P = O
Kryptographie und Kryptoanalyse
293
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 = s 2 – xP – xQ
 yR = - yP + s(xP – xR)
P + P = 2 P = R mit P = (xP, yP), yP  0
• Anstieg s der Tangente am Punkt P :
2
s = (3xP + a)/(2yP)
 xR = s2 – 2xP
 yR = - yP + s(xP – xR)
Kryptographie und Kryptoanalyse
294
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)
Kryptographie und Kryptoanalyse
295
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
Kryptographie und Kryptoanalyse
296
5 Asymmetrische Verfahren – ECC
Beispiel: y2 = x3 + x + 6 mod 11
Diskriminante: 4 13 + 27 62  8 mod 11  0
x
z x3 x 6mod11
mod
mod
0
6
‐1
1
8
‐1
2
5
1
4,7
3
3
1
5,6
4
8
‐1
5
4
1
6
8
‐1
7
4
1
2,9
8
9
1
3,8
9
7
‐1
10
4
1
Kryptographie und Kryptoanalyse
2,9
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}
2,9
297
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}
y
x
Kryptographie und Kryptoanalyse
298
5 Asymmetrische Verfahren – ECC
Operationen auf elliptischen Kurven E(p; a, b)
• Punktaddition, Punktverdopplung; nun mod p
• Berechnung des Vielfachen eines Punktes R = c P:
Double-and-(Add or Subtract)-Algorithmus
Darstellung des Faktors: c 
R = O;
l 1
i
c
2
 i , ci  {-1, 0, 1}
i 0
for (i = l-1; i  0; i--) {
R = 2 R;
if (ci == 1) then R = R + P mod p;
else if (ci == -1) then R = R - P mod p;
}
Kryptographie und Kryptoanalyse
299
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
Kryptographie und Kryptoanalyse
300
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 n P = O
Gegeben seien
ECDLP
E über GF(p),
– ein Punkt P  E(p; a, b) sowie
– ein Punkt Q  P.
ECDLP: Bestimmung von d   mit
Q = dP.
– eine elliptische Kurve
Kryptographie und Kryptoanalyse
301
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 = kd P (= 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
Kryptographie und Kryptoanalyse
302
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
unsicherer Kanal
p, E(p; a, b), P, n
wählt xA mit 1  xA  n-1
(xA geheim)
berechnet QA = xA P mod p
Teilnehmer B
p, E(p; a, b), P, n
wählt xB mit 1  xB  n-1
(xB geheim)
QA
QB = xB P mod p
QB
kA,B = xA QB mod p
Kryptographie und Kryptoanalyse
enc(kA,B, m)
kA,B = xB QA mod p
303
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
Kryptographie und Kryptoanalyse
304
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 = r P mod p
c2 = M + r Q 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
Kryptographie und Kryptoanalyse
305
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)
Kryptographie und Kryptoanalyse
306
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 p
y = ◊ z mod p
if (y ª i mod 2) then PD(x,i) = (x,y)
else PD(x,i) = (x,-y)
Kryptographie und Kryptoanalyse
307
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(r P mod p)
c2 = m x0 mod p mit (x0, y0) = r Q mod p, x0 ∫0
• Entschlüsselung
– PD(c1) = r P mod p
– (x0, y0) = kd r P mod p
– m = c2 x0-1 mod p
Kryptographie und Kryptoanalyse
308
Herunterladen