Kryptografische Verfahren
-
→ Absicherung eines Kommunikationskanals hinsichtlich der Schutzziele (Ann Schlüssel bereits ausgetauscht)
-
Vergleich zu Steganographie
-
Ziel S: Verstecken des Kommunikationskanals
-
Ziel K: Verstecken des Inhalts übermittelter Nachrichten
-
-
Kerckhoffs' Prinzip: Die Sicherheit eines Verfahrens soll alleine auf der Geheimhaltung eines Schlüssels beruhen
-
→ egal ob Verfahren öffentlich, sonst analysierbar
-
-
Vergleich: digitale Signatur → Unterschrift, SK → Schriftbild, Zertifikat → Personalausweis
-
MitM: Angreifer physikalisch oder logisch zwischen C und S
-
Daten mitlesbar, veränderbar, einbringbar
-
Angriffsziel: C, I
-
-
DH-Schlüsselaustausch
-
A: wählt a, sendet (B analog)
-
berechne → gemeinsames Geheimnis s
-
stellt keine Authentizität sicher, zB. aktiver MitM möglich
-
-
Managementaspekte
-
Parametrisierung (Betriebsmodus + Schlüssellänge) + Pseudozufallszahlengenerator (Entropiequelle)
-
PRNG: normal: gleichförmig, unabhängig, unkorreliert; kryptographisch: nicht prädizierbar
-
Schlüssellänge: Tradeoff zwischen Sicherheit + Benutzbarkeit)
-
Verschlüsselung
-
Schutzziel: C, moderne Verfahren: NP-schwere Probleme, K als Zeuge, sonst P NP bewiesen
-
One-Time-Pad: T K = C, Klartextlänge = Schlüssellänge, K nur einmalig, Problem: unhandlich
-
symmetrisch (selber Schlüssel)
-
DES: 64bit Blocks, Substitution & Permutation, 16 Runden, Schlüssellänge: 56 Bit, Erweiterung: 3DS (K = K1 || K2 || K3)
-
AES: ver. Schlüssellängen, effizienter als 3DS
-
Sicherheit basiert auf "Handwerkskunst" (Sicherheit nicht beweisbar), aber hohe Effizienz
-
-
RSA: N = p q, , e:
-
PK = (N, e), SK = d,
-
Annahme: geg C,e und N: Ermitteln von M schwer (→ Faktorisieren schwer)
-
-
El-Gamal:
-
PK = (p, g, A), SK = a,
-
Annahme: Diffie-Hellman: gegeben , schwer ob → Log schwierig
-
-
meist Kombination in Hybridveschlüsselungen: erst asymm dann symm
Message Authentication Codes (MAC)
-
Schutzziele: A, I
-
Einwegfunktionen
-
f(x) effizient (Polznomialzeit) berechenbar, nicht
-
bei Existenz ist
-
Pseudo: Multiplikation großer Primzahlen (da effizienter Alg zur Zerlegung unbekannt) oder kryptographische Hashfunktionen
-
-
kH:
-
Effizienz: effizient berechenbar
-
Pre-image Resistenz: geg finden von mit schwer
-
2nd Pre-image Resistenz: geg finden von ^
-
Kollisionsresistenz: finden von ^
-
CR → 2PIR → PIR
-
-
Idee: MAC benötigt vorher ausgetauschten symmetrischen Schlüssel
-
HMAC: , aber H erlauben zus angehängte Daten → bek Kollisionen ausnutzbar
-
-
-: komplexes Schlüsselmanagement, keine Verbindlichkeit
Digitale Signaturen
-
Schutzziel: V
-
"sicherer" als reale "Unterschriften" (realen Welt erwarteter Gewinn gering, Risiko hoch, zeitlicher Aufwand)
-
Verfahren: A nutzt SK, A überträgt M + DS, B überprüft mit PK (nicht mit allen asymm sicher)
-
Bspimplementierung: Text → Hashen → RSA-Verschlüsselung
Challenge-Response-Authentifizierung
-
"Basic Authentication": genutzt von HTTP(S)
-
C schickt Geheimnis P an S
-
Angriffsmöglichkeiten: Abhören, Replay-Attacken, MitM, S angreifen
-
-
Challenge-Response-Verfahren
-
C schickt Identifier C, S schickt Zufallszahl R, C verschlüsselt R mit und schickt Ergebnis, S überprüft
-
Angriffsmöglichkeiten: Abhören, Krypto-Analyse, MitM, S angreifen
-
-
PK-Kryptographie
-
C schickt Identifier ID, S schickt Zufallszahl R, C signiert R mit PK und schickt Ergebnis, S überprüft mit PK
-
Angriffsmöglichkeiten: Abhören, Krypto-Analyse, MitM
-
-
Mutual Authentication (MA)
-
S schickt PK, C überprüft PK, C schickt mit PK verschlüsselten Session Key, Rest wie vorher
-
Problem: bei Kompromierung von SK des S, keine C aller bisher übertragener Daten
-
-
Forward Secrecy
-
MA etabliert Session Key, handle 2. Session Key aus, Daten austauschen, 2. Session Key löschen
-
MA + Session Key für A + I, Session Key für C
-
Integritätsprüfung
-
Problem: Angreifer kann einzelne Blöcke unbemerkt löschen (→ keine Completeness aber Correctness)
-
neue Probleme: alle Blöcke vorher bekannt (Verfikation + Änderung)
-
Merkle Hash Trees(MHT): berechne Hashes einzelner Blöcke → baumartiges Hashen der Kindknoten → Signieren von Wurzel-Hash
-
→ bei Änderung muss Wurzel-Hash erneuert werden (nur log(N) Hashes bekannt)
-