update to local git repo
This commit is contained in:
87
Semester 6/ITSARCH/Skript_Notizen/Hash-Algorithmen.md
Normal file
87
Semester 6/ITSARCH/Skript_Notizen/Hash-Algorithmen.md
Normal file
@@ -0,0 +1,87 @@
|
||||
## 🧠 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!
|
||||
---
|
||||
Wenn du willst, kann ich dir auch Lernkarten (Flashcards), ein Quiz oder eine Mindmap aus diesem Material erstellen. Sag einfach Bescheid!
|
||||
Reference in New Issue
Block a user