Kryptographie Grundlagen: Symmetrische und Asymmetrische Verfahren einfach erklärt
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 19,93 KB
Kryptographie Grundlagen
Kryptographie (griechisch: kryptos „verborgen“ und graphein „schreiben“) bedeutet wörtlich „verborgene Schrift“ und ist die Kunst der Verschlüsselung und Entschlüsselung von Informationen mithilfe spezieller Techniken. Sie wird häufig verwendet, um einen Austausch von Nachrichten zu ermöglichen, der nur von den vorgesehenen Empfängern gelesen werden kann, ohne dass Dritte ihn entschlüsseln können.
Im Folgenden definieren wir die zentralen Begriffe der Kryptographie.
Wichtige kryptographische Begriffe
- Klartext (Plaintext): Die ursprünglichen, unverschlüsselten Informationen, die durch kryptographische Verfahren in Geheimtext umgewandelt werden.
- Geheimtext (Ciphertext): Die resultierenden Informationen nach der Verschlüsselung eines Klartextes. Diese Information ist unverständlich.
- Verschlüsseln (Encrypt): Die Operation zur Codierung eines Klartextes.
- Entschlüsseln (Decrypt): Der Vorgang, einen Geheimtext (Kryptogramm) mithilfe eines Schlüssels wieder in Klartext umzuwandeln.
- Passwort (Schlüssel): Geheime Information, die zur Kodierung und Dekodierung des Textes verwendet wird. Es ist das „Kennwort“, das die Tür öffnet.
Verschlüsselungstechniken
- Substitution (Ersatz): Hierbei wird die eigentliche Bedeutung der Nachricht geändert, indem Buchstaben, Ziffern oder Symbole ersetzt werden.
- Transposition (Umlagerung): Hierbei werden die vorhandenen Zeichen (Buchstaben, Ziffern oder Symbole) neu angeordnet.
Die überwiegende Mehrheit der modernen Chiffren ist eine Kombination aus diesen beiden Verfahren.
Symmetrische Kryptographie (Symmetrischer Schlüssel-Algorithmus)
Bei symmetrischen Algorithmen wird derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln verwendet. Diese Algorithmen zeichnen sich durch eine sehr schnelle Dekodierung verschlüsselter Daten aus, erhöhen die Informationsmenge kaum und sind – ohne Kenntnis des Schlüssels – nahezu unmöglich zu brechen.
Beispiele für symmetrische Schlüssel-Algorithmen:
- DES: Verwendet einen 56-Bit-Schlüssel, was $2^{56}$ mögliche Schlüssel bedeutet (72.057.594.037.927.936). Ein Computer kann diesen Schlüssel theoretisch in wenigen Tagen oder mit spezialisierter Hardware schneller entschlüsseln.
- 3DES: Verwendet 128-Bit-Schlüssel, was $2^{128}$ Möglichkeiten ergibt. Viele Kreditkarten- und elektronische Zahlungssysteme nutzen 3DES standardmäßig.
- Weitere: AES, LOKI oder GnuPG (GNU Privacy Guard).
Der Erfinder der Feistel-Struktur, auf der viele symmetrische Algorithmen basieren, war Horst Feistel. Er entwickelte diese Methode für den LUCIFER-Algorithmus im Jahr 1970. Im Jahr 1974 schlug er sie der NSA vor, woraus DES entstand. Nicht alle modernen symmetrischen Algorithmen basieren auf der Feistel-Struktur; beispielsweise basiert AES (der aktuelle Weltstandard) auf einem Netzwerk aus Substitution (S-Boxen) und Permutationen.
Kryptographische Angriffe und Kryptoanalyse
Ein kryptographischer Angriff ist eine Methode, um die Sicherheit eines kryptographischen Systems zu umgehen, indem Schwächen im Code, der Chiffre, dem Protokoll oder dem Schlüsselmanagement ausgenutzt werden. Dieser Vorgang wird auch als Kryptoanalyse bezeichnet.
Angriffsarten
- Brute-Force-Angriff: Hierbei wird versucht, durch das systematische Prüfen aller möglichen Schlüsselkombinationen eine Lösung zu finden. Mit Kenntnis des Algorithmus und eines Klartext-/Geheimtext-Paares wird der Klartext durch Verschlüsselung (oder Entschlüsselung) mit jedem möglichen Schlüssel ermittelt. Der Aufwand beträgt im schlimmsten Fall $2^n - 1$ Operationen, wobei $n$ die Schlüssellänge ist (bekannt als Schlüsselraum).
- Wörterbuchangriff (Dictionary Attack): Dies ist ein Verfahren zum Knacken von Passwörtern, bei dem versucht wird, alle Wörter eines vordefinierten Wörterbuchs als Schlüssel einzusetzen. Diese Angriffe sind oft effizienter als Brute-Force, da viele Nutzer leicht zu merkende Wörter verwenden. Programme wie KeePass zeigen automatisch die Passwortstärke an.
Tipps zur Passwortsicherheit
Eine gängige Praxis, um leicht zu merkende Passwörter zu erstellen, die nicht anfällig für Wörterbuchangriffe sind, ist die Verwendung der Initialen jedes Wortes in einem Satz, der für den Benutzer eine besondere Bedeutung hat. Beispiel: Wenn der Satz „Mein erstes Motorrad war eine BMW H210 mir von meinem Großvater Franz“ lautet, wäre das resultierende Passwort: MewMeBH210mvmf. Diese Mischung aus Buchstaben und Zahlen ist relativ lang und schwerer zu knacken, vorausgesetzt, der gewählte Verschlüsselungsalgorithmus ist sicher genug.
Schutz vor Angriffen
Eine einfache Methode zum Schutz gegen Brute-Force- oder Wörterbuchangriffe ist die Begrenzung der maximalen Versuche. Nach einer festgelegten Anzahl von Fehlversuchen wird das System automatisch gesperrt (ähnlich dem Mechanismus bei SIM-Karten, die nach drei falschen PIN-Eingaben sperren).
Um diese Probleme zu lösen und die Systemsicherheit zu erhöhen, werden hybride Verfahren unter Verwendung asymmetrischer Kryptographie eingesetzt.
Asymmetrische Kryptographie (Public-Key-Algorithmus)
Asymmetrische Algorithmen nutzen zwei unterschiedliche Schlüssel: einen öffentlichen Schlüssel (Public Key) zum Verschlüsseln und einen privaten Schlüssel (Private Key) zum Entschlüsseln. Diese Verfahren sind langsamer, benötigen mehr Rechenleistung und erfordern längere Schlüssel, um eine vergleichbare Sicherheit wie symmetrische Algorithmen zu erreichen.
Asymmetrische Algorithmen basieren auf mathematischen Funktionen und Operationen, im Gegensatz zu den bit- und bytebasierten Operationen symmetrischer Verfahren. Die Grundidee nutzt mathematische Probleme, die in eine Richtung leicht lösbar sind, in die andere jedoch nahezu unmöglich (z.B. die Faktorisierung großer Zahlen).
Die Verwendung von zwei Schlüsseln hat große Auswirkungen auf Vertraulichkeit, Schlüsselverteilung und Authentifizierung. Der Prozess läuft grundsätzlich wie folgt ab:
- B erzeugt ein Schlüsselpaar und teilt seinen öffentlichen Schlüssel.
- A verschlüsselt die Nachricht mit dem öffentlichen Schlüssel von B und sendet sie.
- B empfängt die verschlüsselte Nachricht und entschlüsselt sie mit seinem privaten Schlüssel. Nur B kann die Nachricht entschlüsseln.
Ein Vorteil ist, dass das Problem der Schlüsselverteilung gelöst wird. Allerdings sind diese Algorithmen langsamer, weshalb eine Kommunikation, die nur asymmetrisch arbeitet, ineffizient ist. Daher werden häufig hybride Algorithmen verwendet.
Sicherheit und Schlüssellängen
Bei guter asymmetrischer Verschlüsselung liegt die Sicherheit im Schlüssel, nicht im Algorithmus. Die Schlüssellänge ist ein Maß für die Sicherheit, aber man kann die Längen symmetrischer und asymmetrischer Schlüssel nicht direkt vergleichen.
- Bei symmetrischer Verschlüsselung erfordert ein 80-Bit-Schlüssel $2^{80}-1$ Versuche beim Brute-Force-Angriff.
- Bei asymmetrischer Verschlüsselung (z.B. RSA) erfordert ein 512-Bit-Schlüssel die Faktorisierung einer 512-Bit-Zahl (ca. 155 Dezimalstellen).
Während 128 Bit für symmetrische Verfahren als ausreichend gelten, wird aufgrund der heutigen Faktorisierungstechnologien für asymmetrische Verfahren eine Schlüssellänge von 1024 Bit oder mehr empfohlen.
Vorteile und Nachteile der asymmetrischen Verschlüsselung
Der große Vorteil ist die Möglichkeit, mit einem Schlüssel zu ver- und mit dem anderen zu entschlüsseln. Nachteile sind:
Erfordert mehr Verarbeitungszeit bei gleicher Schlüssellänge.
Die Schlüssel müssen deutlich länger sein als bei symmetrischen Verfahren.
Die verschlüsselte Nachricht nimmt mehr Platz ein als das Original.
Die Elliptische-Kurven-Kryptographie (ECC) gilt als preiswertere Alternative für solche Probleme.
Tools wie PGP, SSH oder SSL/TLS nutzen eine hybride Hierarchie: Asymmetrische Kryptographie wird verwendet, um den symmetrischen Sitzungsschlüssel sicher auszutauschen, und die symmetrische Kryptographie wird für die eigentliche Datenübertragung genutzt.
Asymmetrische Algorithmen
Einige gängige Algorithmen für asymmetrische Schlüsseltechniken sind:
Diffie-Hellman
RSA
DSA (Digital Signature Algorithm)
ElGamal
Elliptic Curve Cryptography (ECC)
Andere, heute als unsicher geltende Algorithmen:
Merkle-Hellman-Algorithmen („Knapsack“).
Kryptographische Protokolle
Einige Protokolle, die die oben genannten Algorithmen nutzen:
DSS (Digital Signature Standard) – nutzt DSA.
PGP (Pretty Good Privacy).
GPG (GNU Privacy Guard), eine Implementierung von OpenPGP.
SSH (Secure Shell).
SSL (Secure Sockets Layer), heute ein IETF-Standard.
TLS (Transport Layer Security).
Grundlegende kryptographische Prozesse
Kryptographie bietet mehrere grundlegende Sicherheitsdienste:
- Datenschutz (Confidentiality): Die Fähigkeit, Nicht-Zugriff auf Informationen durch Unbefugte zu gewährleisten. Dies ist der offensichtlichste Dienst der Kryptographie.
- Integrität (Integrity): Die Fähigkeit, dem Empfänger zu garantieren, dass die Information während der Übertragung nicht verändert wurde.
- Authentifizierung (Authentication): Die Fähigkeit, dem Benutzer zu ermöglichen, sich davon zu überzeugen, dass die Information von autorisierten Benutzern generiert wurde.
- Digitale Signaturen (Signatures): Die Möglichkeit, den Empfänger davon zu überzeugen, dass die Information tatsächlich vom angegebenen Absender stammt.
- Nichtabstreitbarkeit (Non-repudiation): Die Fähigkeit, Sender und Empfänger daran zu hindern, ihre Beteiligung an der Kommunikation nachträglich abzustreiten.
- Zugriffskontrolle (Access Control): Die Fähigkeit, den Zugriff von Benutzern auf Informationen im System nur autorisierten Personen zu gestatten.
- Verfügbarkeit (Availability): Die Fähigkeit zu gewährleisten, dass die Informationen autorisierten Benutzern bei Bedarf stets zur Verfügung stehen.
Digitales Zertifikat
Ein digitales Zertifikat (auch Public-Key-Zertifikat genannt) ist ein digitales Dokument, mit dem eine vertrauenswürdige dritte Partei (die Zertifizierungsstelle, CA) die Verbindung zwischen der Identität einer Person oder Organisation (Name, Adresse etc.) und einem öffentlichen Schlüssel bestätigt.
Diese Zertifikate stellen sicher, dass ein öffentlicher Schlüssel tatsächlich zu der angegebenen Entität gehört. Die CA signiert das Zertifikat digital, um die Verknüpfung der Identitätsinformationen mit dem öffentlichen Schlüssel zu bestätigen.
Obwohl es verschiedene Formate gibt, sind die am häufigsten verwendeten durch den ITU-T X.509-Standard geregelt. Ein Zertifikat enthält typischerweise:
Der Name der zertifizierten Entität.
Die Seriennummer.
Das Verfallsdatum.
Eine Kopie des öffentlichen Schlüssels des Zertifikatsinhabers (wird zur Verifizierung der digitalen Signatur verwendet).
Diese Informationen werden digital von der ausstellenden Behörde signiert, sodass der Empfänger die Echtheit der Zuordnung überprüfen kann.
Elektronische Signatur
Eine elektronische Signatur ist eine digitale Signatur, die in einem speziellen Hardware-Träger (meist ein ROM-Chip) gespeichert ist, während eine digitale Signatur auch in Software gespeichert werden kann. Die elektronische Signatur hat den gleichen rechtlichen Wert wie eine handschriftliche Unterschrift.
Man könnte sagen, die elektronische Signatur ist eine digitale Signatur, die in einem unveränderlichen elektronischen Behälter gespeichert ist. Der Unterschied zur digitalen Signatur liegt in der Speicherung: Während eine digitale Signatur auf jedem Speichermedium (auch flüchtigem RAM) gespeichert werden kann, erfordert die elektronische Signatur eine Speicherung in einem nichtflüchtigen, manipulationssicheren physischen Format (wie einem Chip).
Elektronischer Personalausweis (DNIe)
In Spanien wurde im März 2006 eine spezielle Ausweisform, die elektronische ID (DNIe), eingeführt. Diese Entwicklung passt den nationalen Identitätsnachweis an die Informationsgesellschaft an und ermöglicht dem Inhaber die Erbringung bestimmter elektronischer Dienstleistungen.
Zur Nutzung des DNIe sind spezifische Hard- und Softwareelemente erforderlich, um auf den Chip und die darin enthaltenen Zertifikate zugreifen zu können.
a) Hardware-Elemente
Die elektronische ID benötigt folgende physische Einrichtungen:
- Einen PC (z.B. Intel Pentium III oder ähnliche Technologie).
- Einen Smartcard-Leser, der den ISO-7816-Standard erfüllt (integriert in Tastatur, extern über USB oder PCMCIA).
b) Software-Elemente
- Betriebssysteme: Die Karte kann unter verschiedenen Umgebungen betrieben werden (z.B. Microsoft Windows 2000, XP und Vista).
- Browser: Kompatibel mit Microsoft Internet Explorer (Version 6.0 oder höher).
- Kryptographische Controller/Module: Um korrekt mit allgemeinen kryptographischen Karten und insbesondere dem DNIe zu interagieren, muss der Computer kryptographische Module installiert haben.
Unter Microsoft Windows wird hierfür ein Dienst namens Cryptographic Service Provider (CSP) benötigt. Unter UNIX/Linux oder Mac kann ein kryptographisches Modul namens PKCS #11 verwendet werden.
Sowohl der CSP als auch PKCS #11 für spezifische elektronische ID-Karten sind unter www.dnielectronico.es/downloads erhältlich.
Zur Konfiguration des Kartenlesers ist es ratsam, die Anweisungen des Geräteherstellers zu befolgen. In manchen Fällen ist ein spezieller Treiber erforderlich, abhängig vom Lesertyp und Betriebssystem.