Einführung in die moderne Kryptographie - Cheatsheet
Blockchiffren und Stromchiffren
Definition:
Blockchiffren: Verschlüsseln fixe Blöcke von Daten gleichzeitig. Stromchiffren: Verschlüsseln Daten kontinuierlich, Bit für Bit oder Byte für Byte.
Details:
- Blockchiffren: Daten in Blöcke fester Länge aufgeteilt. Beispiel: DES (64-Bit Blöcke), AES (128, 192, 256-Bit Blöcke).
- Stromchiffren: Erzeugen einen Schlüsselstrom, der mit den Klartextbitfolgen XOR kombiniert wird. Beispiel: RC4, A5/1.
- Modi: ECB, CBC, CTR für Blockchiffren.
- Sicherheit: Abhängig von der Entropie und der Art der Chiffrierung.
Advanced Encryption Standard (AES)
Definition:
Fortgeschrittene Verschlüsselungsmethode, die symmetrische Blockverschlüsselung verwendet. standardisiert als FIPS 197.
Details:
- Blockgröße: 128 Bit
- Schlüssellängen: 128, 192, 256 Bit
- Anzahl der Runden: 10 (128-Bit-Schlüssel), 12 (192-Bit-Schlüssel), 14 (256-Bit-Schlüssel)
- Komponenten: SubBytes, ShiftRows, MixColumns, AddRoundKey
- Sichere gegen zahlreiche Angriffe: lineare und Differentialkryptanalyse
RSA-Algorithmus und seine mathematischen Grundlagen
Definition:
RSA-Algorithmus zur asymmetrischen Verschlüsselung, basiert auf Faktorisierung großer Primzahlen.
Details:
- Verwendung: Sichere Datenübertragung.
- Schlüsselerstellung:
- Wähle zwei große Primzahlen: \( p \) und \( q \)
- Berechne \( n = p \cdot q \)
- Berechne \( \varphi(n) = (p-1) \cdot (q-1) \)
- Wähle öffentliche Exponent \( e \text{ mit } 1 < e < \varphi(n) \)
- Berechne privaten Schlüssel \( d \), sodass \( e \cdot d \equiv 1 \text{(mod } \varphi(n)) \)
- Verschlüsselung: \( c = m^e \mod n \)
- Entschlüsselung: \( m = c^d \mod n \)
- Angriffsmethode: Faktorisieren von \( n \) um \( p \) und \( q \) zu finden.
ElGamal und Diffie-Hellman-Verfahren
Definition:
ElGamal und Diffie-Hellman-Verfahren sind asymmetrische Kryptosysteme, die auf dem diskreten Logarithmusproblem basieren.
Details:
- ElGamal: Verschlüsselungs- und Signaturverfahren
- Diffie-Hellman: Schlüsselaustauschprotokoll
- Gemeinsame Grundlage: Verwendung primitiver Wurzeln und modularer Arithmetik
- Komplexität: Sicherheit basiert auf der Schwierigkeit, den diskreten Logarithmus zu berechnen
- ElGamal-Verschlüsselung: \[c_1 = g^k \, \text{mod} \, p\]\[c_2 = m \cdot y^k \, \text{mod} \, p\]
- Diffie-Hellman-Schlüsselaustausch: \[A \rightarrow B: A = g^a \, \text{mod} \, p\]\[B \rightarrow A: B = g^b \, \text{mod} \, p\]Gemeinsamer Schlüssel: \[s = B^a \equiv A^b \equiv g^{ab} \, \text{mod} \, p\]
Eigenschaften und Verteilung von Primzahlen
Definition:
Eigenschaften und Verteilung von Primzahlen: Wesentlich für kryptographische Algorithmen; Primzahl: Zahl > 1, nur durch 1 und sich selbst teilbar.
Details:
- Satz von Euklid: Unendlich viele Primzahlen
- Fundamentalsatz der Arithmetik: Jede Zahl > 1 eindeutig als Produkt von Primzahlen darstellbar
- Primzahltests: Miller-Rabin, AKS-Algorithmus
- Pi-Funktion \( \pi(x) \): Anzahl der Primzahlen \( \leq x \)
- Primzahlsatz: \( \pi(x) \sim \frac{x}{\log(x)} \)
- Zwillinge: Paare von Primzahlen, Differenz 2
- Goldbachsche Vermutung: Jede gerade Zahl > 2 Summe zweier Primzahlen
ECDSA (Elliptic Curve Digital Signature Algorithm)
Definition:
ECDSA (Elliptic Curve Digital Signature Algorithm) ist ein auf elliptischen Kurven basierendes digitales Signaturverfahren.
Details:
- Schlüsselerzeugung: privater Schlüssel (zufällig) wird zum Erzeugen des öffentlichen Schlüssels genutzt
- Signaturgenerierung: unter Verwendung des privaten Schlüssels und des Hashwerts der Nachricht
- Signaturverifikation: prüft, ob die Signatur mit dem öffentlichen Schlüssel und dem Hashwert der Nachricht übereinstimmt
- Vermeidet Überschwemmungsprobleme des regulären DSA
- Formeln: Berechnung der Signatur \[ r = (kG)_x \]\[ s = k^{-1}(e + xr) \bmod n \]Verifikation: \[ u_1 = e \times s^{-1} \bmod n \]\[ u_2 = r \times s^{-1} \bmod n \]\[ v = (u_1 G + u_2 Q)_x \]
- Wichtiger Parameter: Primzahl \( p \), Ordnung \( n \) der Kurve, Basispunkt \( G \)
Faktorisierungsmethoden: Pollard’s Rho
Definition:
Pollard’s Rho ist eine probabilistische Methode zur Faktorisierung von ganzzahligen Zahlen und wird oft in der Kryptographie verwendet, um große Zahlen zu faktorisieren.
Details:
- Verwendet Iterationen und Zufälligkeit für Effizienz.
- Nutzen der Floyd’s Tortoise and Hare Algorithmus, um Zyklen zu finden.
- Komplexität: ungefähr \(\text{O}(\text{n}^{1/4})\).
- Typische Funktion: \(f(x) = x^2 + c \mod n\).
- Initialisierung: Wähle zufällige Startwerte\(x_0\) und Parameter \(c\).
- Iteriere: Erzeuge Folge \(x_{i+1} = f(x_i)\), bis ein Zyklus erkannt wird.
- Berechnung des gcd, um Faktoren zu identifizieren: \(\text{gcd}(x_i - x_{2i}, n)\).
Elliptische Kurvenkryptographie (ECC)
Definition:
Kryptosystem, das auf den mathematischen Eigenschaften elliptischer Kurven über endlichen Körpern basiert.
Details:
- Schlüsselpaare: Ein geheimer Schlüssel (\textit{Private Key}) und ein öffentlicher Schlüssel (\textit{Public Key}).
- Vorteile: Kürzere Schlüssel, gleiche Sicherheit wie RSA mit kleineren Schlüsseln; effiziente Berechnungen.
- Grundlage: Punkte auf elliptischen Kurven erfüllen die Gleichung: \( y^2 = x^3 + ax + b \) über einem endlichen Körper \( \text{F}_q \).
- Sicherheit: Basiert auf der Schwierigkeit des diskreten Logarithmusproblems auf elliptischen Kurven.
- Anwendungen: ECDSA (Elliptic Curve Digital Signature Algorithm), ECDH (Elliptic Curve Diffie-Hellman).