Kryptographie II - Cheatsheet
Symmetrische Verschlüsselungsverfahren: AES, Rijndael
Definition:
Blockchiffre, die für Verschlüsselung und Entschlüsselung denselben Schlüssel verwendet.
Details:
- AES (Advanced Encryption Standard)
- Basierend auf dem Rijndael-Algorithmus
- Blockgröße: 128 Bit
- Schlüsselgrößen: 128, 192 oder 256 Bit
- Operationen: SubBytes, ShiftRows, MixColumns, AddRoundKey
- Rundenanzahl hängt von der Schlüssellänge ab: 10 (128 Bit), 12 (192 Bit), 14 (256 Bit)
Asymmetrische Verschlüsselung: RSA, ElGamal
Definition:
Asymmetrische Verschlüsselungsverfahren, die sowohl für Verschlüsselung als auch für digitale Signaturen verwendet werden.
Details:
- RSA:
- Schlüsselerzeugung: Wähle zwei große Primzahlen p, q. Berechne n = p * q. Wähle e, sodass ggT(e, (p-1)(q-1)) = 1. Berechne d, sodass e * d ≡ 1 (mod (p-1)(q-1)).
- Verschlüsselung: C = M^e mod n
- Entschlüsselung: M = C^d mod n
- ElGamal:
- Schlüsselerzeugung: Wähle eine große Primzahl p und eine Primitivwurzel g mod p. Wähle zufälligen privaten Schlüssel x und berechne den öffentlichen Schlüssel y = g^x mod p.
- Verschlüsselung: Wähle zufälligen k. Berechne c1 = g^k mod p und c2 = M * y^k mod p. Das Chiffretextpaar ist (c1, c2).
- Entschlüsselung: Berechne M = c2 / c1^x mod p
Elliptische Kurven Kryptographie (ECC)
Definition:
Punktoperationen auf elliptischen Kurven: verwendet für Public Key Kryptographie, Schlüsselgenerierung, Verschlüsselung und digitale Signaturen.
Details:
- Mathematische Grundlage: elliptische Kurven über endlichen Körpern
- Gleichung der Form: \[ y^2 = x^3 + ax + b \]
- Schlüsselpaare: \(P, kP)
- Vorteil: kürzere Schlüssel für gleiche Sicherheit im Vergleich zu RSA
- Wichtige Operationen: Punktaddition, Skalarmultiplikation
- AOS: ECDH, ECDSA
- Genutzt in: SSL/TLS, Kryptowährungen
Schlüsselaustausch: Diffie-Hellman
Definition:
Methode zum sicheren Austausch kryptografischer Schlüssel über einen unsicheren Kanal, ohne dass die Schlüssel vorher bekannt sein müssen.
Details:
- Wähle große Primzahl: p
- Wähle Primzahl (Generator): g, 1 < g < p
- Teilnehmer A wählt geheimen Wert: a
- Teilnehmer B wählt geheimen Wert: b
- Öffentliche Werte: A sendet ga mod p an B, B sendet gb mod p an A
- Berechnung gemeinsames Geheimnis: A (gb)a mod p, B (ga)b mod p
- Resultat: gemeinsamer Schlüssel K = gab mod p
Digitale Signaturen: DSA, ECDSA
Definition:
Digitale Signaturen verwenden asymmetrische Kryptographie, um die Authentizität und Integrität von Nachrichten zu sichern.
Details:
- DSA (Digital Signature Algorithm): Standard für digitale Signaturen, verwendet SHA-1 oder SHA-2 als Hash-Funktion und generiert eine Signatur aus zwei Werten, (r, s).
- ECDSA (Elliptic Curve Digital Signature Algorithm): Variante von DSA, die elliptische Kurvenkryptographie nutzt, bietet höhere Sicherheit mit kürzeren Schlüssellängen.
- Signaturerstellung DSA: Signatur (r, s) durch private Schlüssel (x) und zufälligen Wert (k).
- Verifizierung DSA: Überprüfung durch öffentlichen Schlüssel (p, q, g) und Signatur (r, s).
- Signaturerstellung ECDSA: Signatur (r, s) durch private Schlüssel (d) und zufälligen Wert (k), basierend auf elliptischen Kurvenparametern (G, n, H).
- Verifizierung ECDSA: Überprüfung durch öffentlichen Schlüssel (Q) und elliptischen Kurvenparametern (G, n, H).
- Formeln:
- DSA: \[ s = (k^{-1}(H(m) + xr)) \, mod \, q \]
- ECDSA: \[ s = k^{-1}(H(m) + dr) \, mod \, n \]
Zero-Knowledge-Beweise: zk-SNARKs
Definition:
Zero-Knowledge-Beweise (ZKPs) ermöglichen den Beweis der Korrektheit einer Aussage ohne Preisgabe von Details. zk-SNARKs sind eine effiziente Art von ZKPs mit kurzen, schnell verifizierbaren Beweisen.
Details:
- zk-SNARK steht für Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.
- Eigenschaften: Kürze, Schnelligkeit, Nicht-Interaktivität, Zero-Knowledge.
- Hauptkomponenten: Setup, Proving, Verifying.
- Mathematische Basis: Elliptische Kurven, Paarungen.
- Anwendungen: Kryptowährungen (z.B. Zcash), Verifizierbare Berechnungen.
- Sicherheitsannahmen: Knowledge of Exponent Assumption (KEA), Decisional Diffie-Hellman (DDH).
Quanten-resistente Algorithmen: Lattice-based
Definition:
Lattice-basierte Algorithmen sind quantenresistent und nutzen Gitterstrukturen zur Verschlüsselung, um gegen Quantenangriffe sicher zu sein.
Details:
- Grundidee: Schwer lösbare Probleme in Gitterstrukturen nutzen (SVP, CVP)
- Bekannte Methoden: NTRU, Learning with Errors (LWE)
- Wichtige mathematische Probleme: Kürzester Vektor Problem (SVP), Nächstgelegener Vektor Problem (CVP)
- Eigenschaften: Effiziente Algorithmen, hohe Sicherheit gegen Quantenangriffe
- Schlüssellänge: Längere Schlüssel im Vergleich zu klassischen Systemen
- Rechenkomplexität: Basierend auf der Schwierigkeit des Lösen bestimmter Probleme in Gitterstrukturen
- Sicherheit: Basierend auf der Annahme, dass kein effizienter Quantenalgorithmus existiert zur Lösung dieser Gitterprobleme
Kryptographische Angriffe: Brute-Force, Man-in-the-Middle
Definition:
Definition und Erklärung von Brute-Force und Man-in-the-Middle Angriffen in der Kryptographie.
Details:
- Brute-Force Angriff: Versuch, alle möglichen Schlüssel zu testen, bis der richtige gefunden ist.
- Komplexität: \text{O}(2^n) für Schlüssel mit Länge n.
- Man-in-the-Middle Angriff: Angreifer schaltet sich zwischen zwei Kommunikationsteilnehmer, um Daten abzufangen oder zu manipulieren.
- Ziel: Vertraulichkeit und Integrität der Kommunikation untergraben.