85 lines
3.3 KiB
Markdown
85 lines
3.3 KiB
Markdown
## 🧠 GRUNDLAGEN DER HASHFUNKTIONEN
|
||
### Was ist eine Hashfunktion?
|
||
- Einwegfunktion: beliebig lange Eingabe → fester Hashwert (Ausgabe).
|
||
- Ziel: Aus Hashwert **kann nicht** auf Eingabe geschlossen werden.
|
||
- Ein Hashwert = „digitaler Fingerabdruck“.
|
||
### Eigenschaften einer **kryptografisch sicheren Hashfunktion**
|
||
1. **Einweg-Eigenschaft**: h(M) einfach berechenbar, aber M aus h(M) unberechenbar.
|
||
2. **Kollisionsresistenz**:
|
||
- _Schwach_: Für gegebenes x ist es schwer, x′ ≠ x mit h(x) = h(x′) zu finden.
|
||
- _Stark_: Es ist schwer, zwei beliebige x ≠ x′ mit h(x) = h(x′) zu finden.
|
||
---
|
||
## 🛠️ ANWENDUNGEN
|
||
- **Passwort-Speicherung** (nur Hash, kein Klartext)
|
||
- **Signaturen**: Signiere h(M), nicht M.
|
||
- **Integritätsprüfung**: Prüfsummen, Manipulationserkennung (MIC, MDC)
|
||
- **Authentifizierung**: MAC, HMAC
|
||
---
|
||
## 🔐 HASH-FUNKTIONSTYPEN
|
||
|Typ|Beschreibung|
|
||
|---|---|
|
||
|UHF|Unkeyed Hash Function: h(M)|
|
||
|KHF / MAC|Keyed Hash Function: h(M, k) oder h(M, s)|
|
||
---
|
||
## 📌 MDC & MAC UNTERSCHEIDUNG
|
||
### MDC – Manipulation Detection Code
|
||
- **OWHF**: One-Way Hash Function = Einweg + schwache Kollision
|
||
- **CRHF**: Collision Resistant Hash Function = schwache + starke Kollision
|
||
### MAC – Message Authentication Code
|
||
- nutzt Schlüssel + Nachricht
|
||
- Anforderungen:
|
||
- einfache Berechnung
|
||
- Kompression
|
||
- resistent gegen Manipulation
|
||
---
|
||
## 🔁 AUFBAU EINER HASHFUNKTION
|
||
1. Nachricht in Blöcke fester Länge teilen.
|
||
2. Padding auf Vielfaches der Blocklänge.
|
||
3. Iterative Verarbeitung mit Kompressionsfunktion.
|
||
4. Ergebnis: finaler Hashwert.
|
||
---
|
||
## 📚 HASH-ALGORITHMEN IM VERGLEICH
|
||
|Algorithmus|Hashlänge|Status / Schwächen|
|
||
|---|---|---|
|
||
|**MD2/MD4**|128 Bit|Veraltet, unsicher|
|
||
|**MD5**|128 Bit|Kollisionen bekannt, nicht mehr sicher|
|
||
|**SHA-1**|160 Bit|Kollisionen möglich (ab 2005), deprecated|
|
||
|**SHA-2**|224–512 Bit|Aktuell sicher|
|
||
|**SHA-3**|224–512 Bit|Alternative zu SHA-2 (Keccak)|
|
||
|**RIPEMD-160**|160 Bit|Sicher, europäische Alternative|
|
||
|**WHIRLPOOL**|512 Bit|Sicher, aber wenig untersucht|
|
||
---
|
||
## 🔁 HMAC (Hash-based MAC)
|
||
- **Verwendet Hash + geheimen Schlüssel**
|
||
- Schritte:
|
||
1. Schlüssel ggf. kürzen/padden auf Blockgröße
|
||
2. Zwei Pads: `ipad = 0x36`, `opad = 0x5C`
|
||
3. HMAC = H(opad ⊕ k ∥ H(ipad ⊕ k ∥ M))
|
||
- Einsatz in TLS, IPsec etc.
|
||
- **Sichert Authentizität & Integrität**, **keine digitale Signatur**
|
||
---
|
||
## 💥 ANGRIFFE
|
||
### Geburtstagsparadoxon
|
||
- Wahrscheinlichkeit für Kollision steigt stark mit Anzahl an Inputs.
|
||
- 50%-Kollisionschance bei ca. √(2^n) = 2^(n/2)
|
||
### Angriffstypen
|
||
|Typ|Beschreibung|
|
||
|---|---|
|
||
|**Pre-Image**|Gegeben h(x), finde ein x|
|
||
|**Second Pre-Image**|Gegeben x, finde x′ ≠ x mit h(x) = h(x′)|
|
||
|**Collision**|Finde x, x′ ≠ x mit h(x) = h(x′)|
|
||
---
|
||
## ❌ SICHERHEITSSCHWÄCHEN
|
||
### MD5
|
||
- Viele Kollisionen gefunden (z. B. durch Dobbertin, Wang, Stach)
|
||
- Nicht mehr vertrauenswürdig
|
||
### SHA-1
|
||
- Kollisionen mit 2^63 Berechnungen möglich (statt 2^80)
|
||
- Seit 2010 in den USA und vom BSI abgelehnt
|
||
---
|
||
## 📌 MERKREGELN FÜR DIE KLAUSUR
|
||
- **Hash = Fingerabdruck**, nicht rückrechenbar
|
||
- **Kollision = 2 verschiedene Eingaben → gleicher Hash**
|
||
- **MDC = prüft Integrität**, **MAC = prüft Integrität + Authentizität**
|
||
- **SHA-2 & SHA-3 = derzeit sicher**
|
||
- **HMAC ≠ Signatur**, da symmetrisch! |