Menu Close

Kryptologie (Vorlesung 8)

Skript-AnfangSkript – Seite 29
Skript-EndeSkript – Seite 32

Praktikum

  • Das was abgegeben wurde ist in Ordnung
  • Wenn etwas nicht stimmt, meldet er sich von selbst

Evaluation

  • Wurde durchgeführt

Datenauthentisierung

  • Garantiert, dass Daten nicht verändert wurden
  • Dazu:
    • Beweisender (B) ist der Sender / Erzeuger von Daten
    • B berechnet mittels eines kryptographischen Schlüssels eine Prüfsumme über die zu authentifizierenden Daten
    • Prüfer (P) überprüft die Prüfsumme mittels eines kryptographischen Schlüssels
  • Wir unterscheiden:
    1. Symmetrische Verfahren (Schlüssel zur Berechnung = Schlüssel zur Prüfung)
    2. Asymmetrische Verfahren (Schlüssel zur Berechnung ≠ Schlüssel zur Prüfung)

Message Authentication Code (MAC)

Erste Idee zur Umsetzung

  • Basierend auf einer Hash-Funktion M:{0,1}* → {0,1}n
  • B und P vereinbaren Schlüssel k ∈ {0,1}128

Erklärung

  • Hashfunktion nach Merkle-Damgard
  • || bedeutet „direkt hintereinander“
  • H(k||m) = Funktion zur Berechnung der Prüfsumme
  • k= Schlüssel
  • m = Nachricht
  • c = Prüfummse

Authentisierung

  • B authentisiert m ∈ {0,1}*
    1. Berechne c = M(k||m)
    2. Sende m und c an P

Prüfung

  • P prüft Authentizität von m
    1. Berechne c‘ = M(k||m)
    2. Prüft ob c=c‘ gilt

Dieses Verfahren ist unsicher

  • Angreifer kann weitere Blöcke an m hängen, Hashwert weiter rechnen und so eine gültige Prüfsumme berechnen
  • Schützt also nur den Anfang einer Nachricht, aber nicht das Ende
    • → „Wir greifen morgen um 10 Uhr an“
    • → „Wir greifen morgen um 10 Uhr an, wenn es nicht regnet“
  • Auch H(m||k) keine gute Idee, denn das schützt auch nur das Ende der Nachricht und nicht den Anfang

Beispiel für eine Length Extension Attack

  • Normalerweise braucht ein Angreifer den Schlüssel um eine neue Prüfsumme zu erzeugen
  • Mit einer Length Extension Attack wird die Prüfsumme wieder in die Hashfunktion eingegeben und man setzt am Ende wieder an
  • Die Länge der ursprünglichen Nachricht muss dafür bekannt sein
  • Neue Prüfsumme und Daten werden übermittelt
OriginalModifiziert
Datacount=10&lat=37.351&user_id=1&long=-119.827&waffle=eggocount=10&lat=37.351&user_id=1&long=-119.827&waffle=eggo&waffle=liege
Signature6d5f807e23db210bc254a28be2d6759a0f5f5d990e41270260895979317fff3898ab85668953aaa2

Sichere MAC-Verfahren

  1. CMAC basiert auf Blockchiffren (C=Chiffre)
  2. HMAC basiert auf Hash-Funktionen (Hash)
    • HMAC(k,m) = H((ko+opad)||H((ko+ipad)||m))
    • opad = 0x5C … 5C (Schlüssellänge)
    • ipad = 0x36 … 36 (Schlüssellänge)
    • H((ko+ipad)||m) → Sichert den Anfang der Nachricht ab
    • H((ko+opad)||H((ko+ipad)||m)) → Sichert das Ende der Nachricht ab

Verschlüsselungsverfahren und MAC-Verfahren

  • Werden häufig zusammen geschaltet
  • Secure Messaging
  • Vertraulicher und authentischer Tunnel / Kanal
  • MAC-Verfahren müssen nicht die Vertraulichkeitgarantieren
  • MAC-Verfahren erfüllen nicht das Schutzziel Nichtabstreitbarkeit
    • Prüfer und und Beweisender verwenden den gleichen Schlüssel
    • Auch P könnte die Daten authentisiert haben
    • Gegenüber Dritten ist nicht nachweisbar, ob B oder P die Daten authentisiert hat
  • Zwei Nebenbedingungen:
    1. Setze für Verschlüsselung und Datenauthentifizierung verschiedener Schlüssel ein („Trenne wo du trennen kannst“)
    2. Erst Verschlüsseln → dann verschlüsselte Daten Authentisieren (Vertraulichkeit ist ein anderes Schutzziel als Authentizität)

Signaturverfahren

  • Sind asymmetrische Authentifizierungsverfahren
  • B nutzt geheimen Schlüssel zur Berechnung der Prüfsumme
  • P prüft mittels öffentlichem Schlüssel
  • Erfüllt auch das Schutzziel Nichtabstreitbarkeit → Prüfsumme nur vom Inhaber des geheimen Schlüssels berechnet werden
  • Zum Beispiel RSA oder Digital Signature Algorithm (DSA)

RSA

  • B nutzt geheimen Schlüssel d um Prüfsumme S = md mod n zu berechnen
  • P nutzt öffentlichen Schlüssel e um m‘ = se mod n zu berechnen
  • Wegen (md)e = mod n = m akzeptiert P, wenn m‘ = m
  • Besteht aus:
    1. Hashfunktion H:{0,1}* → {0,1}n ( Um Sicherheitsniveau 100 Bit zu erreichen muss n >= 200 sein)
    2. Einem Signaturalgorithmus

Problem

  • Es können nur Nachrichten der Länge m ≤ n signiert werden
  • Für n ≈22000 als Bitlänge ≤ 2000

Lösung

  • Nachricht m wird zunächst gehasht
  • Signiert und geprüft wird dann H(m)
  • Dazu wichtig: Hashfunktion muss kollisionsresistent sein
  • Gilt für zwei Nachrichten m und m‘ → H(m) = H(m‘) → dann ist eine gültige Signatur für m auch eine für m‘

DSA

  • Sicherheit beruhrt auf der vermuteten Schwere des Diskreten Logarithmusproblems in bestimmten endlichen Gruppen
  • Diskretes Logarithmusprublem in Z*p = {1, … , p-1}
  • Gegegeben: Zwei Elemente g,h ∈ Z*p
  • Lösung: loggh (d.h. x mit gx = h)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index