Hier steht der Titel der Power Point Präsentation.sc2/workshop_public.pdf · Schutzziele. Mittels...

Preview:

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

Recommended