Upload
lydat
View
215
Download
0
Embed Size (px)
Citation preview
Workshop Experimente zur Kryptographie
Fakultät Informatik, Institut Systemarchitektur, Professur Datenschutz und Datensicherheit
Sebastian ClaußDresden, 23.03.2011
Alltägliche Anwendungen von Kryptographie
• Login-Prozeduren am PC -> kollisionsresistente Hashfunktionen
• „Sichere“ Webseiten, https://-> Verschlüsselung, Authentikation, digitale Signatur
• Signierte und verschlüsselte E-Mails -> Verschlüsselung, digitale Signatur
• Festplattenverschlüsselung -> besonders zeitkritische Verschlüsselung
23.03.2011 Kryptoexperimente 2
3Kryptoexperimente
Kryptographie ≠ Sicherheit
• Beispiel https://
• Sicher???
23.03.2011
Schutzziele
Mittels Kryptographie erreichbare Schutzziele
• VertraulichkeitInformationen werden nur Berechtigten bekannt
• IntegritätInformationen können nicht unerkannt modifiziert werden
• ZurechenbarkeitDem 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.)
23.03.2011 Kryptoexperimente 4
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.
23.03.2011 Kryptoexperimente 5
Kryptosystem
23.03.2011
c = enc(ke, m) Hallo, ...Hallo, ...
Nachricht
m ∈ M
Nachricht
Vertrauensbereich des Senders (Alice)
Vertrauensbereich des Empfängers (Bob)
Schlüssel
ke ∈ K
g9b02...
Schlüsseltext
c ∈ C
Schlüssel
kd ∈ K
m = dec(kd, c)
Verschlüsse-lungsfkt.
enc ∈ ENC
Entschlüsse-lungsfkt.
dec ∈ DEC
Unsicherer Kanal:
Angriffsbereich
Kryptoexperimente 6
Kerckhoffs‘ Prinzip
Die Sicherheit eines Verfahrens darf nicht von der Geheimhaltung des Verfahrens abhängen, sondern nur von der Geheimhaltung des Schlüssels.
[Auguste Kerckhoffs: La Cryptographie militaire. Journal des SciencesMilitaires, 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
23.03.2011 Kryptoexperimente 7
Symmetrisches Konzelationssystem
23.03.2011
geheimer SchlüsselkA,B
Schlüsseltext c
c = enc(kA,B,m)
geheimer SchlüsselkA,B
Schlüssel-generierung
kA,B := keygen(r)
Zufallszahl r
Angriffsbereich
Entschlüs-selungdec ∈ DEC
Verschlüs-selung enc ∈ ENC
Vertrauensbereich
Sicherer Kanal für Schlüsselaustausch
Nachricht
mNachricht
m = dec(kA,B,c)
öffentlich bekannter Algorithmus
Alice Bob
Kryptoexperimente 8
Symmetrisches Authentikationssystem
23.03.2011
test(kA,B ,a):=
a = auth(kA,B,m)
Alice
Nachricht, MAC (message authenti-cation code) m, a
a = auth(kA,B,m)
kA,B := keygen(r)
Angriffsbereich
MAC testentest ∈ TEST
MAC berechnen auth ∈ AUTH
Bob
Zufallszahl r
Schlüssel-generierung
geheimer SchlüsselkA,B
geheimer SchlüsselkA,B
Nachricht
m
Vertrauensbereich
Sicherer Kanal für Schlüsselaustausch
öffentlich bekannter Algorithmus
Kryptoexperimente 9
Kryptoexperimente
Symmetrische Algorithmen
• Klassische Algorithmen
• Caesar-Chiffre (Bsp. k = 3) A B C D E F …
D E F G H I …
• Vigenere-Chiffre HALLO ( 7 0 11 11 14)+ BGXWT (+ 1 6 23 22 19)= JHJII (= 8 8 8 7 7) mod 26
• Aktuell• (DES)• AES
Klartext
Teilschlüssel-generierungdurcheinanderbringen
+
Schlüssel
durcheinanderbringen
+
Schlüsseltext
+23.03.2011 10
Asymmetrisches Konzelationssystem
23.03.2011
Schlüsselttext c
c = enc(ke,B,m, r’)
kA,B := keygen(r)
Angriffsbereich
Nachricht
m = dec(kd,B,c)
Nachr. m
Zuf.-z. r’
öffentlicher Schlüsselke,B
privater Schlüsselkd,B
Zufallszahl r
Entschlüs-selungdec ∈ DEC
Verschlüs-selung enc ∈ ENC
Schlüssel-generierung
Vertrauensbereich öffentlich bekannter Algorithmus
Alice Bob
Kryptoexperimente 11
Digitales Signatursystem
23.03.2011
test(kt,B , s) ∈
{true, false}
Nachricht, Signaturm, s
s = sign(ks,B,m, r’)
(ks,B, kt,B) := keygen(r)
Angriffsbereich
Signierensign ∈ SIGN
Testen test ∈ TEST
Zufallszahl r
Schlüssel-generierung
öffentlicher Schlüsselkt,B
privater Schlüsselks,B
Nachr. m
Zuf.-z. r’
Vertrauensbereich öffentlich bekannter Algorithmus
Alice Bob
Kryptoexperimente 12
Asymmetrische Algorithmen
• RSA• basierend auf Faktorisierungsannahme
-> Faktorisieren großer Zahlen ist „schwer“• Schlüsselgenerierung
n = p · q (p,q sind große zufällig gewählte Primzahlen) c mit ggT(c, (p-1) · (q-1)) = 1 d = c-1 mod (p-1) · (q-1))
• Öffentlich: n,c geheim: d
• Verschlüsseln: Entschlüsseln: x = mc mod n m = xd mod n = (mc)d mod n
• Weitere Algorithmen: DSA, …• basierend auf diskretem Logarithmus• basierend auf elliptischen Kurven
23.03.2011 Kryptoexperimente 13
Vergleich der Systeme
23.03.2011
Symmetrische Verfahren
Asymmetrische Verfahren
Sicherer Kanal für Schlüsselaustausch erforderlich?
JaNein (allerdings: Zuordnung der öffentlichen Schlüssel)
Performance In der Regel sehr gut Weniger gut
Mögliche Einsatzgebiete
Konzelation Vertraulichkeit
Symmetrische Authentikation (MAC) Integrität
Konzelation Vertraulichkeit
Digitale Signatursysteme Integrität Zurechenbarkeit
14Kryptoexperimente
Hybrides Konzelationssystem
23.03.2011
privater Schlüsselkd,B
öffentlicher Schlüsselke,B
geheimer Schlüssel (session key) kA,B
enc1
enc2
dec1
dec2Nachricht
mNachricht
m = dec2(kA,B,c2)
c2
c1
c1 = enc1(ke,B,kA,B, r’),
kA,B = dec1(kd,B,c1)
Kryptoexperimente 15
c2 = enc2(kA,B,m)
Experimente
• Wie funktioniert ein Kryptosystem?• klassische Verfahren durchrechnen (geht ohne Computer)• Visuelle Kryptographie• Asymmetrische Verfahren (Beispiel RSA) durchrechnen• Verfahren programmieren (zeitaufwendig)
• Aussagen zur Sicherheit bzw. Angriffe auf Kryptosysteme• klassische Verfahren brechen• Schwachstellen bestimmter Verfahren ausnutzen (z.B. RSA naiv)• Brute-Force Angriffe auf schlecht gewählte Schlüssel• Was sagt die Schlüssellänge aus?
• Einsatz von Kryptoverfahren• Installieren, ausprobieren…• Angreifermodell: wer darf was (nicht) wissen/können?
-> was muss das eingesetzte Verfahren leisten?• Schlüsselverteilung:
Verifikation der Zuordnung von Schlüsseln zu Personen
23.03.2011 Kryptoexperimente 16
Visuelle Kryptographie
23.03.2011 Kryptoexperimente 17
Visuelle Kryptographie
Pixel Teil 1 Teil 2 Überlagerung
[Noar, Shamir, 1994]
0.5
0.5
0.5
0.5
23.03.2011 Kryptoexperimente 18
Visuelle Kryptographie
23.03.2011 Kryptoexperimente 19
Cryptool
• Lernprogramm zum Ausprobieren und Veranschaulichen kryptographischer Protokolle und Analysen/Angriffe
• www.cryptool.org• Sehr umfangreich• Ausführen verschiedener Kryptoverfahren• Visualisierung des Ablaufs von Kryptoverfahren
• Klassische Verfahren (Caesar, Vigenere)• AES, DES• RSA• Hybride Verfahren
• Verfahren zur Analyse von Schlüsseltexten etc.• Umfangreiche Hilfe
• Herunterladen (Cryptool 1.4.x) und Installieren unterC:\temp\cryptool
23.03.2011 Kryptoexperimente 20
Cryptool - Ausprobieren
• Caesarchiffre• die README-Datei verschlüsseln/entschlüsseln:
Ver-/Entschlüsseln -> Symmetrisch (klassisch) -> Caesar/Rot13• Schlüsseltext analysieren (Buchstabenhäufigkeit):
Analyse -> Werkzeuge zur Analyse -> Histogramm• Schlüssel ermitteln:
Analyse -> Symmetrisch (klassisch) -> Ciphertext only -> Caesar
Häu
figke
iten
* a b c d e f g h i j k l m n o p q r s t u v w x y z
23.03.2011 Kryptoexperimente 21
A B C D E F …
D E F G H I …
Cryptool - Ausprobieren
• RSA – Beispiel zum selbst rechnen (lassen)• Einzelverfahren -> RSA Kryptosystem -> RSA Demo• Schlüsselgenerierung
n = p · q = 3 · 11 = 33 c = 3 mit ggT(3, (2 · 10)) = 1 d = 7 = 3-1 mod 20 (3 · 7 = 21 = 1 mod 20)
• Öffentlich: n = 33, c = 3 geheim: d = 7
• Verschlüsseln: Entschlüsseln: Nachricht m = 4 x = 43 mod 33 m = 317 mod 33
= 64 mod 33 = (-2)7 mod 33= 31 mod 33 = -128 mod 33
= 4 mod 33
23.03.2011 Kryptoexperimente 22
Cryptool - Ausprobieren
• RSA – jetzt mit langen Zahlen• Z.B. |p|, |q| = 2048 bit
• RSA-Demonstrator: Einzelverfahren -> RSA Kryptosystem -> RSA Demo• Schlüsselerzeugung (Primzahlen generieren)
->langsam ( > 1 Minute)• Öffentlicher Schlüssel: e = (2^16)+1• Kurze Nachricht ver- und entschlüsseln: m = 4
-> schnell• Lange Nachricht verschlüsseln (z.B. Cryptool.exe)
Ver-/Entschlüsseln -> Asymmetrisch -> RSA Verschlüsselung Schlüssel: „RSA-512“, (oder neu erzeugen)-> langsam
zum Vergleich: AES (symmetrisch verschlüsseln) Ver-/Entschlüsseln -> Symmetrisch (modern) -> Rijndael (AES)-> sehr schnell
23.03.2011 Kryptoexperimente 23
Cryptool - Ausprobieren
• (Grundlegende) Sicherheit von RSA
• RSA-Schlüssel unterschiedlicher Länge erzeugen• Einzelverfahren -> RSA Kryptosystem -> RSA Demo• |p|=|q| = 50 bit, |p|=|q| = 100 bit, (in Datei kopieren zum Merken)
• Zahl faktorisieren• Analyse -> Asymmetrische Verfahren -> Faktorisieren einer Zahl• |p|=|q| = 50 bit
-> schnell• |p|=|q| = 100 bit
-> 1 Minute oder mehr• Empfehlung BSI: |p|,|q| = 1024
23.03.2011 Kryptoexperimente 24
Hashfunktionen
• Was ist ein Hash?• Abbildung von beliebig großer Menge auf Menge fester Größe • Schwer umkehrbar• Kollisionsresistent (zwei Werte mit gleichem Hashwert finden ist schwer)
A
B
CD
E
G
FH
IA
C
B
23.03.2011 Kryptoexperimente 25
Hashfunktionen
• Wofür braucht man das?
• Sind beide Schlüssel gleich?
-----BEGIN PGP PUBLIC KEY BLOCK-----mQGiBEcFJrkRBACDnfVuIgwhAGbBCQ5Vn9cu5R2ngY+YmfbcqYgDrJIT0LF0w6u3IzKOd1seHih5zURjsm0KsOz38szvbms8IcJoL6LPs04QI8BJmkDS1qZAzXkdtSuVzF5QdezMczmJHpu4TSVPCrN2PG0OD8k57T4llG78ubEhfWAPPNKQWP9nDwCgwgpz7X7iSOJOWf2j7/exefwPrzED/0ltcZHgotqOBtIdVYWGmScAD2VAi7rFsGq60tIR171c2fvnG2s/GF9V0HHYH+BSoW88E+0vGaApBzDkoSihEm//yoOi/79+5T+Vm7OFMANNBhdNhbBWbkLQGUkrghSBoi+DnMWPBg+EFtdW41o4zrRwCmoiQbuA5GR+2n24dAhCA/9gCsOHNEk+G4lOR65AIBUelZdzRka53fKCkLps48o+zdwPh98juJxE1Oc39I7SydZ8cmUvXO6jjocQmRdypZYIvzqLMwIMSFcQ1412T4fz7x99++e52l6J1UcchJ4F6M9IK9BYbRD1BRMVgNfLFbt2TMaT81eDxqrb7j0nUwcWzbQiSGVpbnJpY2ggSGVpbmUgPEhlaW5yaWNoQGhlaW5lLmRlPohgBBMRAgAgBQJHBSa5AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQkWvbn7lOZLFTCQCghZpkXjFL9qzqYS4RMWrXco+BLvsAnAkvHonVK5C+cMY5JtL2/cEI/Tr+=AgZE-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----mQGiBEcFJrkRBACDnfVuIgwhAGbBCQ5Vn9cu5R2ngY+YmfbcqYgDrJIT0LF0w6u3IzKOd1seHih5zURjsm0KsOz38szvbms8IcJoL6LPs04QI8BJmkDS1qZAzXkdtSuVzF5QdezMczmJHpu4TSVPCrN2PG0OD8k57T4llG78ubEhfWAPPNKQWP9nDwCgwgpz7X7iSOJOWf2j7/exefwPrzED/0ltcZHgotqOBtIdVYWGmScAD2VAi7rFsGq60tIR171c2fvnG2s/GF9V0HHYH+BSoW88E+0vGaApBzDkoSihEm//yoOi/79+5T+Vm7OFMANNBhdNhbBWbkLQGUkrghSBoi+DnMWPBg+EFtdW41o4zrRwCmoiQbuA5GR+2n24dAhCA/9gCsOHNEk+G4lOR65AIBUelZdzRka53fKCkLps48o+zdwPh98juJxE1Oc39I7SydZ8cmUvXO6jjocQmRdypZYIvzqLMwIMSFcQ1412T4fz7x99++e52l6J1UcchJ4F6M9IK9BYbRD1BRMVgNfLFbt2TMaT81eDxqrb7j0nUwcWzbQiSGVpbnJpY2ggSGVpbmUgPEhlaW5yaWNoQGhlaW5lLmRlPohgBBMRAgAgBQJHBSa5AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQkWvbn7lOZLFTCQCghZpkXjFL9qzqYS4RMWrXco+BLvsAnAkvHonVK5C+cMY5JtL2/cEI/Tr+=AgZE-----END PGP PUBLIC KEY BLOCK-----
23.03.2011 Kryptoexperimente 26
Hashfunktionen
• Sind beide Schlüssel gleich?
• Hash 1: B557 3B27 F1D1 1EA6 8BC1 F9C4 899E 6133 A2D5 AD5E• Hash 2: F719 38FB C85E 2B5F 7D86 A106 916B DB9F B94E 64B1
• Zur Verifikation, ob Daten gleich sind• Überprüfen von Downloads• Effizientes Signieren
Signiert wird nur der Hashwert Berechnung des Hashwert geht schnell
• Festlegen auf Geheimnis, ohne es zu verraten
• Ausprobieren mit Cryptool: Einzelverfahren -> Hashverfahren -> Hash Demo• Hashs berechnen• Schauen, wie sich der Hash ändert, wenn die Datei geändert wird• Versuchen, Kollisionen zu finden
Analyse -> Hashverfahren -> Angriff…
23.03.2011 Kryptoexperimente 27
23.03.2011 Kryptoexperimente 28