KITCTF KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Kryptographie für CTFs Eine Einführung
KITCTF
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de
Kryptographie für CTFsEine Einführung
KITCTFFerdinand Sauer - Kryptographie
Nicht WissenschaftlichDafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“
Die Grundlagen für CTF-Anfänger
11/13/20182
Einführung
“Cryptography is the practice and study of techniques for secure communication in the presence of third parties.” Wikipedia
KITCTFFerdinand Sauer - Kryptographie11/13/20183
Übersicht — Erste Dimension
Symmetrisch
Asymmetrisch
Pseudozufalls- generator
Feistel-netzwerk,Permutation / Substitution,
…
KITCTFFerdinand Sauer - Kryptographie
VerschlüsselungAuthentifizierung („Echtheit“)
Hash-FunktionenPseudozufallsgeneratorenProof-of-KnowledgeCommitments…
11/13/20184
Übersicht — Zweite Dimension
KITCTFFerdinand Sauer - Kryptographie
Caesar-ChiffreJeder Buchstabe wird um festen Werk k verschoben
11/13/20185
Klassiker
Brechen durch ausprobieren oder durch Häufigkeitsanalysen einfach möglichWird heutzutage immer noch verwendet (spiegel.de Paywall)Beispiel für Substitution
k = 3
KITCTFFerdinand Sauer - Kryptographie11/13/20186
KITCTFFerdinand Sauer - Kryptographie
Vigenère-ChiffreWähle Schlüsselwort und verschiebe jeden Buchstaben entsprechend dem Schlüsselbuchstaben
11/13/20187
Klassiker
Schlüssellänge bestimmen und dann Caesar-Chiffre für jede Schlüsselposition einzeln brechenNoch ein Beispiel für Substitution
KITCTFFerdinand Sauer - Kryptographie
BlockchiffrenVerschlüsselt Blöcke fester LängeBetriebsmodus wird zur Verschlüsselung längerer Daten verwendet
StromchiffrenPseudozufälliger Schlüsselstrom wird aus Schlüssel abgeleitet Schlüsselstrom wird mit Klartext kombiniert
11/13/20188
Symmetrische Verschlüsselungen
KITCTFFerdinand Sauer - Kryptographie11/13/20189
Stromchiffren
KITCTFFerdinand Sauer - Kryptographie
RC4, SEAL, Salsa20, CryptMT, …
Mögliche Angriffe:Bekannter Klartext:Aus einem bekannten Klartext m mit passendem Chiffrat c kann der Schlüsselstrom K rekonstruiert werden
K = m ⊕ c
Key-Reuse:Sind c1 und c2 mit dem gleichen Schlüssel verschlüsselt worden, dann kann man m1 ⊕ m2 wie folgt berechnen.
c1 ⊕ c2 = m1 ⊕ m2
11/13/201810
Stromchiffren
KITCTFFerdinand Sauer - Kryptographie
DES, IDEA, RC5, AES, Blowfish, …
Block- und Schlüssellänge
Padding: Erweitern der Nachricht auf Blocklänge
BetriebsmodiElectronic Code Book (ECB)Cipher Block Chaining (CBC)Counter Mode (CTR)…
11/13/201811
Blockchiffren
KITCTFFerdinand Sauer - Kryptographie
Verschlüssle jeden Block einzelnProbleme:
Dateneinfügen möglichDeterministisch
11/13/201812
Electronic Code Book
KITCTFFerdinand Sauer - Kryptographie
Verschlüsseln: Enc(Block XOR dem vorigen Chiffrat-Block)Entschlüsseln: Dec(Chiffrat-Block) XOR vorigem Chiffrat-BlockInitialisierungsvektor zufälligProbleme:
Verlust eines Chiffrat-Blocks führt zu Verlust 2er Klartextblöcke
11/13/201813
Cipher Block Chaining
KITCTFFerdinand Sauer - Kryptographie
Padding: Klartext wird auf Blocklänge aufgefüllt.Bsp.: PKCS#7 x Byte fehlen zum vollen Block. Fülle jedes der Bytes mit dem Wert x.
11/13/201814
CBC Padding Oracle
KITCTFFerdinand Sauer - Kryptographie11/13/201815
CBC Padding Oracle
Über Änderung am vorletzten Block lässt sich über das Paddingorakel der letzte Block komplett bestimmen
KITCTFFerdinand Sauer - Kryptographie
Verschlüsselung:
11/13/201816
Asymmetrische Kryptosysteme
Signatur:
RSAElgamalMcEliece…
RSAElgamalDSA…
KITCTFFerdinand Sauer - Kryptographie
●
11/13/201817
RSA
KITCTFFerdinand Sauer - Kryptographie
●
11/13/201818
RSA
KITCTFFerdinand Sauer - Kryptographie
Bedingung Angriff KomplexitätKeine Faktorisierung exp(log(N)^(1/3)loglog(N)^(2/3))
Kleines d Wiener‘s Attack Polynomiell m < N^(1/4) Wurzel ziehen PolynomiellSenden der gleichen Nachricht an viele Empfänger mit selben
Håstad's broadcast attack
Polynomiell
11/13/201819
Angriffe auf RSA
Und viele mehr!
KITCTFFerdinand Sauer - Kryptographie
Leonard Schönborn für die FolienStefan fürs Organisieren der Folien
11/13/201820
Danke
KITCTFFerdinand Sauer - Kryptographie
ctf.bplaced.net (Crypto 20 + Crypto 30)Picoctf.comcryptopals.comoverthewire.org/wargames/krypton
11/13/201821
Aufgaben