
🌐 Auch auf: English · Français · Español
🌐 Kryptografie in der Praxis
Wer das Internet nutzt, hat ständig mit kryptografischen Systemen zu tun – TLS-Handshakes, Paketsignaturen, SSH-Keys –, ob man es merkt oder nicht.
💡 Bei Kryptografie geht es nicht nur um Geheimhaltung – sondern um Authentizität, Integrität und darum, wie Vertrauen in feindlicher Umgebung verteilt wird.
Im Kern baut moderne Kryptografie auf zwei Grundbausteinen auf:
- Symmetrische Verschlüsselung (gemeinsames Geheimnis)
- Asymmetrische Verschlüsselung (Schlüsselpaare aus Public und Private Key)
🧠 Symmetrische Verschlüsselung
Symmetrische Kryptografie verwendet einen einzigen geheimen Schlüssel zum Ver- und Entschlüsseln. Das ist rechnerisch effizient und bildet das Rückgrat aller Verschlüsselungssysteme mit hohem Durchsatz.
plaintext → [E_k] → ciphertext
ciphertext → [D_k] → plaintext⚡ Vorteile
- O(n)-Performance mit sehr geringem Overhead
- Hardwarebeschleunigung (AES-NI, ARMv8 Crypto Extensions)
- Ideal für große Datenmengen (Festplatten, TLS-Nutzdaten)
⚠️ Das Kernproblem: Schlüsselverteilung
Du brauchst einen sicheren Kanal, um den Schlüssel auszutauschen … was den ganzen Zweck ad absurdum führt, wenn du noch keinen hast.
🔧 Beispiel
- AES-256 (Blockchiffre, 128 Bit Blockgröße)
- Modi: GCM (authentifiziert), CBC (Altlast), CTR
🧬 Asymmetrische Verschlüsselung
Asymmetrische Kryptografie löst das Problem der Schlüsselverteilung, indem sie Identität und Geheimnis trennt:
- Public Key → darf frei verteilt werden
- Private Key → muss geheim bleiben
plaintext → [encrypt with public key] → ciphertext
ciphertext → [decrypt with private key] → plaintext🔐 Die Sicherheit beruht auf schweren mathematischen Problemen (z. B. Faktorisierung bei RSA, diskrete Logarithmen bei ECC).
📐 Algorithmen
- RSA (in die Jahre gekommen, aber immer noch weit verbreitet)
- ECC (Curve25519, Ed25519 → moderner Standard)
⚠️ Der Haken
- Langsamer als symmetrische Kryptografie
- Nicht geeignet, um große Datenmengen direkt zu verschlüsseln
⚙️ Hybride Verschlüsselung (was wirklich passiert)
Systeme in der echten Welt kombinieren beide Ansätze:
- Zufälligen Sitzungsschlüssel erzeugen (symmetrisch)
- Daten mit AES verschlüsseln
- Sitzungsschlüssel mit dem Public Key des Empfängers verschlüsseln
👉 Genau so arbeiten TLS, PGP und moderne Messenger unter der Haube.
🐧 Installation (Debian)
GnuPG ist die Referenzimplementierung von OpenPGP.
sudo apt update
sudo apt install gnupggpg --versionDamit prüfst du dein Krypto-Backend, die unterstützten Algorithmen und die Version.
🛠️ GnuPG und die Schlüsselablage unter der Haube
GnuPG legt das Schlüsselmaterial in einem strukturierten Schlüsselbund ab:
~/.gnupg| Komponente | Zweck |
|---|---|
| private-keys-v1.d/ | die eigentlichen Private-Key-Blobs (geschützt) |
| pubring.kbx | Datenbank der Public Keys (Keybox-Format) |
| trustdb.gpg | Vertrauensgraph / Web of Trust |
🚨 Ist dein Private Key kompromittiert, ist deine gesamte Identität kompromittiert.
🌍 Den eigenen Public Key exportieren
gpg --list-keysgpg --armor --export KEY_ID > publickey.ascASCII Armor ist Base64 plus Header – damit lässt sich der Schlüssel gefahrlos über textbasierte Systeme verschicken.
🔍 Fingerprint (die Vertrauensbasis)
gpg --fingerprint👉 Der Fingerprint ist ein kryptografischer Hash des Public Keys – praktisch seine unveränderliche Identität.
Genau den prüfst du über einen zweiten Kanal (z. B. persönlich, per Signal, auf der Visitenkarte).
🔐 Eine Nachricht verschlüsseln (Schritt für Schritt)
📥 Schlüssel des Empfängers importieren
gpg --import publickey.asc✉️ Datei verschlüsseln
echo "Attack at dawn" > message.txt
gpg --encrypt --recipient "email@example.com" message.txtDas erzeugt eine hybrid verschlüsselte Datei mit:
- verschlüsseltem Sitzungsschlüssel
- verschlüsselten Nutzdaten
- Metadaten (Algorithmus, Key-ID)
📨 Direkt im Terminal verschlüsseln (ASCII Armor)
gpg --armor --encrypt --recipient "email@example.com"Die Eingabe schließt du mit STRG + D ab.
🔓 Entschlüsseln
gpg --decrypt message.txt.gpgVertraue nie einem Schlüssel, ohne seinen Fingerprint geprüft zu haben – sonst bist du anfällig für MITM-Angriffe.
🌐 Den eigenen Schlüssel veröffentlichen
PGP Public Key
Key ID: 75CA893CEF68BC6B
Fingerprint:
15AD 43D9 20A3 BDBA B2EF
AD59 75CA 893C EF68 BC6B
Download:
https://example.com/publickey.asc
Best Practice: selbst hosten und optional auf Keyserver spiegeln.
📡 Keyserver und Verteilung
gpg --send-keys KEY_ID
gpg --recv-keys KEY_IDModerne Keyserver sind append-only → Schlüssel lassen sich nie wirklich löschen.
✍️ Digitale Signaturen
gpg --sign file.txt
gpg --verify file.txt.gpgSignaturen liefern:
- Integrität → Daten wurden nicht verändert
- Authentizität → signiert vom Inhaber des Private Keys
- Nichtabstreitbarkeit → die Urheberschaft lässt sich nicht leugnen
🏛️ Vertrauensmodelle
Zentral (PKI)
- Zertifizierungsstellen (CA)
- Im Einsatz bei HTTPS
Dezentral (Web of Trust)
- Nutzer signieren gegenseitig ihre Schlüssel
- Vertrauen ist transitiv
👉 GPG setzt statt auf eine zentrale Instanz auf einen dezentralen Vertrauensgraphen.
🧾 Fazit
- Symmetrisch → schnell, effizient
- Asymmetrisch → löst Identität und Schlüsselaustausch
- Hybrid → Standard in der Praxis
- GnuPG → praktische Umsetzung von OpenPGP
Kryptografie schafft Vertrauen nicht ab – sie verlagert nur, wem du es schenkst.
📬 Probier es selbst aus
Ich habe alle Beispiele oben selbst durchgespielt, um besser zu verstehen, wie praktische Kryptografie in der echten Welt funktioniert.
Wenn du es selbst ausprobieren willst, lade dir gern meinen Public Key von der Impressumsseite herunter:
🔐 Über eine verschlüsselte Nachricht von dir würde ich mich freuen. Ich antworte so schnell wie möglich – und natürlich ebenfalls verschlüsselt 😉
So kannst du dein Setup prima testen und den kompletten Ablauf der Public-Key-Kryptografie einmal in der Praxis erleben.




