Skip to content

Theoretische Grundlagen

Was ist Kryptographie

Kryptographie beschäftigt sich mit dem Schutz von Informationen. Dabei wird der Klartext in einen Geheimtext umgewandelt. Dafür wird ein geheimer Schlüssel verwendet, der nur autorisierten Personen bekannt ist.

Sogenannte Kryptographische Verfahren kommen in nahezu allen digitalen Kommunikations- und Datensicherungssystemen zum Einsatz, z.B. bei E-Mail-Verkehr, Speicherung von sensiblen Daten oder der Authentifizierung von Nutzern/Systemen (Zertifikate).

Verschlüsselungsverfahren

Moderne Kryptographie unterscheidet zwei grundlegende Arten der Verschlüsselung:

  • Symmetrische Verfahren: Sender und Empfänger nutzen denselben geheimen Schlüssel zum Ver- und Entschlüsseln der Daten. Dieses Verfahren ist besonders schnell und effizient, setzt aber voraus, dass der Schlüssel sicher ausgetauscht wird. Beispiel: AES (Advanced Encryption Standard)

alt text Vereinfachter Ablauf symmetrischer Verfahren

  • Asymmetrische Verfahren: Hierbei existieren zwei verschiedene Schlüssel: Ein öffentlicher Schlüssel zum Verschlüsseln und ein geheimer privater Schlüssel zum Entschlüsseln. Der öffentliche Schlüssel kann frei verteilt werden, der private bleibt beim Eigentümer. Beispiele: RSA, ECC (Elliptic Curve Cryptography)

alt text Vereinfachter Ablauf asymmetrische Verfahren

Weitere kryptographische Konzepte

Neben der reinen Verschlüsselung gibt es weitere Verfahren:

  • Hashfunktionen: Hashes erzeugen aus beliebigen Daten einen eindeutigen Wert mit einer festen Länge (z.B. mit SHA-256). Hashes sind nicht umkehrbar und dienen u.a. zur Integritätsprüfung von Dateien und Nachrichten (z.B. checksum einer Linux Distribution).
  • Digitale Signatur: Durch asymmetrische Kryptographie und Hashfunktionen lässt sich nachweisen, dass eine Nachricht von einem bestimmten Absender stammt und nicht verändert wurde.
  • Schlüsselaustausch und Schlüsselmanagement: Damit man öffentlichen Schlüsseln trauen kann, braucht es gewisse Mechanismen:
    • Keyserver: Öffentliche Schlüssel werden zentral gespeichert, aber ohne Echtheitsprüfung.
    • Public-Key-Infrastruktur (PKI): Zertifizierungsstellen bestätigen die Echtheit öffentlicher Schlüssel.
    • Web of Trust (WOT): Nutzer bestätigen gegenseitig ihre Schlüssel. Wird u.a. in GPG verwendet.
    • WKD (Web Key Directory): Schlüssel werden über eine Domainstruktur automatisiert und verifizierbar bereitgeste

Ziele der Kryptographie

Moderne kryptographische Systeme verfolgen insbesondere vier Schutzziele:

  1. Vertraulichkeit: Nur berechtigte Personen können Informationen lesen (z. B. durch Verschlüsselung).
  2. Integrität: Es kann geprüft werden, ob Daten vollständig und unverändert sind (z. B. mit Hashes).
  3. Authentizität: Der Absender oder Urheber von Daten kann eindeutig identifiziert werden (z. B. durch digitale Signaturen).
  4. Verbindlichkeit: Der Nachweis, dass eine Aktion tatsächlich von einer bestimmten Person durchgeführt wurde, kann nicht nachträglich bestritten werden.

Kryptographische Verfahren/Systeme erfüllen nicht unbedingt alle gleichzeitig. Oft werden sie gezielt kombiniert, um den gewünschten Schutz zu gewährleisten.

GPG: The GNU Privacy Guard

GPG (GnuPG) ist ein freies Public-Key-Verschlüsselungsverfahren, das auf dem offenen OpenPGP-Standard basiert. Es ermöglicht die Ver- und Entschlüsselung von Daten sowie das Erzeugen und Prüfen elektronischer Signaturen. GPG wurde 1997 eingeführt und hat sich in vielen Bereichen etabliert, insbesondere in der E-Mail-Verschlüsselung (PGP/MIME) und beim Signieren von Softwarepaketen, wie etwa in den Paketmanagern der meisten Linux-Distributionen.

GPG unterstützt verschiedene Algorithmen zur Verschlüsselung, Signierung und Kompression. Welche konkret zur Verfügung stehen, zeigt der Befehl gpg --version.

Ausgabe von gpg --version (gekürzt)

Terminal window
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Die Pubkey-Algorithmen erzeugen das Schlüsselpaar, Cipher dienen der symmetrischen Verschlüsselung, Hashfunktionen prüfen die Integrität, und Kompression reduziert die Dateigröße vor der Verschlüsselung.

  • Schlüsselverwaltung: Unterstützt Web of Trust, Keyserver, WKD

age: Actually Good Encryption

Age ist ein modernes (2019), minimalistisches Kommandozeilenwerkzeug zur asymmetrischen Datei-Verschlüsselung. Im Gegensatz zu GPG liegt der Fokus von age auf der einfachen und schnellen Verschlüsselung von Dateien, ohne den zusätzlichen Funktionsumfang von GPG. Age setzt auf moderne Kryptographie und zeichnet sich durch seine benutzerfreundliche Handhabung aus.

  • Verschlüsselungsalgorithmen: X25519 + ChaCha20-Poly1305, Scrypt für passwortbasierte Verschlüsselung
  • Schlüsselverwaltung: Nicht integriert

Basierend auf age gibt es eine in Rust implementierte alternative.

Grundbegriffe

  • Klartext: Lesbare und unverschlüsselte Nachricht.
  • Geheimtext: Geheime und verschlüsselte Nachricht.
  • Verschlüsselung: Umwandlung von Klartext in Geheimtext.
  • Schlüssel: Geheimnis eines kryptographischen Verfahrens.
  • AES: Advanced Encryption Standard, basiert auf einem Substitutions-Permutations-Netzwerk.
  • RSA: Erstes asymmetrisches Verschlüsselungsverfahren. Basiert auf Faktorisierungsproblem.
  • ECC: Elliptic Curve Cryptography. Basiert auf dem mathematischen Konstrukt der elliptischen Kurve.
  • Hash: Das Ergebnis einer Hashfunktion.