Verschlüsselung Flashcards
Substitutionschiffre: Vorgehensweise
- Teile den Klartext in handliche Einheiten
- Ersetze jeden Buchstaben gemäß einer (bijektiven) Tabelle durch einen anderen Buchstaben oder ein Symbol. Jedes Klartextsysmbol hat genau ein Chiffretextsymbol und umgekehrt. Die Position des Zeichens bleibt unverändert.
Algo: Ersetzungsverfahren
Schlüssel: Tabelle
Substitutionschiffre: Probleme
Ausnutzung von Klartextstatistiken (Buchstabenhäufigkeit, Häufigkeit von Buchstabenkombinationen, Semantik)
-> Bei längeren Chiffretexten automatische und garantiert richtige Entschlüsselung möglich
Transpositionschiffre: Vorgehensweise
- Teile den Klartext in handliche Einheiten (z.B. Buchstaben)
- Ändere Reihenfolge der Buchstaben (z.B. Skytale oder Tabelle). Die Zeichen bleiben unverändert, es ändert sich nur die Position.
Transpositionschiffre: Probleme
Transpositionschiffren sind leicht zu knacken (wenige mögliche Schlüssel). Für sich genommen unsicher.
Vernam-Chiffre: Vorgehensweise
- m XOR k = c (bitweise)
c XOR k = m (bitweise) - Verschlüsselung funktioniert genauso wie Entschlüsselung -> Involutionschiffre
Vernam-Chiffre: Probleme
Die Vernam-Chiffre bietet perfekte Sicherheit, sie kann nicht gebrochen werden, wenn
- der Schlüssel immer mindestens so lang ist wie die Nachricht (bzw. wie alle zu erwartenden Nachrichten)
- Jedes Schlüsselbit darf nur einmal verwendet werden
-> Funktioniert in der Praxis nicht
Vernamchiffre - Angriffe
1)
c1=0101 und c2=1100 sind unter gleichem Schlüssel entstanden. m1 ist 1011. Wie lautet m2?
m1 xor k = c1
k = c1 xor m1
c2 xor k = m2
2)
c1 und c2 sind unter gleichem Schlüssel entstanden. Über m ist nichts bekannt. Was kann der Angreifer über m1 und m2 lernen?
c1 xor c2 = m1 xor k xor m2 xor k
c1 xor c2 = m1 xor m2
Die Positionen, an denen sich die Chiffretexte unterscheiden sind die gleichen, an denen sich die Klartexte unterscheiden. Unter Kenntnis der verwendeten Sprache lassen sich beide Klartexte Stück für Stück rekonstruieren.
Idee von Blockchiffren
Bei Substitutionschiffren über großen Blöcken wird die Häufigkeitsanalyse hinfällig. Sicher, allerdings werden die Tabellen exorbitant groß. Daher wird eine Funktion anstatt einer Tabelle benötigt, die sich effizient berechnen lässt. -> Permutation
Blockchiffre Ek ist eine Permutation über {0,1}^b
DES: Vorgehensweise grob
geg: 56Bit Masterschlüssel
Blocklänge 64 Bit
Feistel-Konstruktion
- Initial Permutation
- 16 Runden f mit XOR R/L
- Initial Permutation^-1
- Rundenschlüssel besteht aus 48 Bits des Masterschlüssels (56Bit) -> key schedule
- Entschlüsselung: Prozess rückwärts
DES: Vorgehensweise f
- Expander erweitert 32 zu 48 Bit-Blöcken durch Wdh
- Vernam: XOR mit ki
- Substitution: S-Boxen - Lookup von 6 auf 4 Bit
Transposition: Bitshuffle
3DES: Vorgehensweise
- mehrfache Ausführung von DES
3DES: Probleme
- Durch MITM-Angriff Sicherheitsniveau 112Bit ungleich Schlüssellänge 168 (3*56)Bit
MITM-Angriff
Das Sicherheitsniveau von DES und 3DES ist ungleich der Schlüssellänge:
Für 2DES: 2⁵⁷ anstatt 2¹¹²
Für 3DES: 2¹¹² anstatt 2¹⁶⁸
- Probiere alle k1 aus und speichere Zwischenergebnis in Tabelle (entspricht Bruteforce auf 1. Hälfte der Chiffre)
- Für k2: Teste, ob DES-¹ in der Tabelle ist. Falls ja: Kandidatenpaar durch Probeentschlüsselung testen. Wenn das klappt, ist der Schlüssel gefunden
MITM - Aufwand 2DES
Aufwand: 2^56+2^56+2^48=2^57
(2^56 DES-Berechnungen und 2^56 Probeentschlüsselungen plus Zusatztests: 2^56 * 1/2^8)
Speicherbedarf: Tabelle mit 2^56 Einträgen
MITM - Aufwand 3DES
Aufwand: 2^56 + 2^112 + 2^104 = 2^112
(2^56 DES-Berechnungen und 2^112 Probeentschlüsselungen plus Zusatztests: 2^112 * 1/2^8)
Speicherbedarf: Tabelle mit 2^56 Einträgen