Grundlagen der Verschlüsselung
Mit der zunehmenden Digitalisierung und Vernetzung hat sich die IT-Sicherheit zu einem wichtigen Thema entwickelt. Besonders in Unternehmen ist und bleibt die IT-Sicherheit eine allgegenwärtige Herausforderung. Das Internet sorgt dafür, dass unternehmenswichtige Informationen in Sekundenschnelle um die halbe Welt transportiert werden. Doch interessieren sich nicht nur diejenigen für diese Informationen, die dazu berechtigt sind. In solchen Fällen leistet die Verschlüsselung (Kryptographie) wichtige Dienste. Unter Verschlüsselung versteht man den Vorgang, bei dem ein Klartext, eine Datei oder auch eine Ton- oder Bildaufzeichnung unter Verwendung eines geheimen Schlüssels in eine unverständliche Zeichenfolge gewandelt wird. Sollten also Informationen widerrechtlich in die Hände von Dritten geraten, machen es kryptographische Verfahren nahezu unmöglich, diese zu entschlüsseln, sie bleiben für den unberechtigten Nutzer wertlos.
Die Kryptographie ist alles andere als eine junge Wissenschaft. Kryptographie wurde schon im alten Mesopotamien angewandt. Eine von Archäologen ausgegrabene Tontafel belegt, dass ein mesopotamischer Töpfer etwa 1500 vor Christus das Rezept für eine Glasur in verschlüsselter Form notierte, um es vor neugierigen Blicken der Konkurrenz zu verbergen [1]. Wirtschaftsspionage ist also keine Erfindung der Neuzeit. 3500 Jahre später sind Tontafeln jedoch durch moderne Datenträger wie Festplatten ersetzt worden.
Einfache Verschlüsselungslösungen – allen voran S/MIME und PGP für die E-Mail-Verschlüsselung – sind recht verbreitet. Äußerst beliebt ist auch die Verschlüsselung von Daten in Form sogenannter virtueller privater Netze (VPN). Versteht man die Grundlagen der modernen Kryptographie, lassen sich diese Techniken besser verstehen. In diesem Artikel befassen wir uns u. a. mit den verschiedenen Verschlüsselungsverfahren und Chiffrieralgorithmen.
Ziele der Kryptographie
Bei der modernen Kryptographie geht es darum, die drei Sicherheitsanforderungen zu erfüllen:
- Vertraulichkeit: Die Gewährleistung, dass die Daten vor Unbefugten geheim bleiben.
- Integrität: Die Gewährleistung, dass die Daten während der Übertragung unversehrt bleiben und nicht verändert werden.
- Authentizität: Die Gewährleistung, dass die Daten zweifelsfrei von dem vermeintlichen Absender stammen.
Verschlüsselungsverfahren
Verschlüsselungsverfahren lassen sich in drei Arten gliedern: Die symmetrische Verschlüsselung, die asymmetrische Verschlüsselung und die kombinierte bzw. hybride Verschlüsselung.
Symmetrische Verschlüsselung
Beim symmetrischen Verschlüsselungsverfahren (Private-key-cryptography) gibt es nur einen Schlüssel, der sowohl für die Verschlüsselung als auch für die Entschlüsselung genutzt wird. Ein solcher Schlüssel darf keinesfalls in die Hände von Unbefugten geraten. Das bedeutet, dass Kommunikationspartner, die eine verschlüsselte Nachricht übertragen wollen, den Schlüssel zunächst über einen sicheren Kanal austauschen müssen. Solange zwei Kommunikationspartner immer den gleichen Schlüssel verwenden, ist dieser Aufwand in der Regel akzeptabel. Möchte man jedoch mit vielen Kommunikationspartnern verschlüsselte Nachrichten austauschen, entsteht viel administrativer Aufwand (das sog. "key distribution problem").
Für einen Anwendungsbereich ist das symmetrische Verfahren hervorragend geeignet: zur Verschlüsselung der eigenen Festplatte oder von einzelnen Dateien, die man nicht weiterleiten möchte. Schließlich entfällt hier die riskante Übermittlung des erforderlichen Schlüssels.
Zu den bekanntesten Vertretern symmetrischer Verschlüsselungsverfahren gehören AES, Blowfish, Camellia, DES, RC4 und Twofish.
Die Länge der Schlüssel wird in Bit gemessen. Beispiele für Schlüssellängen sind 128, 256, 512 oder 1024 Bit. Je länger der Schlüssel, desto aufwändiger ist es, ihn in einem Brute-Force-Angriff zu knacken. Bei einem Brute-Force-Angriff werden alle möglichen Schlüssel nacheinander ausprobiert. Die Reihenfolge wird gegebenenfalls nach der Wahrscheinlichkeit ausgesucht. Schon ein handelsüblicher Mittelklasse-Computer kann ohne Probleme mehrere Millionen Schlüssel pro Sekunde ausprobieren.
Kommt der Geheimhaltung der Daten kein sehr hoher Stellenwert zu, reicht z. B. ein 128 Bit langer AES-Schlüssel im Normalfall völlig aus. Wer jedoch Daten hat, die von großer Bedeutung sind, sollte in jedem Fall einen längeren Schlüssel einsetzen. Ein 192 Bit langer AES-Schlüssel beispielsweise hat im Gegensatz zu einem 128 Bit langen Schlüssel ca. 18 Trillionen mehr Kombinationsmöglichkeiten. Die rasante Computerentwicklung macht eine hundertprozentig zuverlässige Prognose für die Sicherheit von Schlüsseln nicht möglich.
Vorteile von Private-Key-Verfahren:
- Leicht zu implementieren,
- für große Datenmengen geeignet,
- kurze Schlüssellängen und
- gute Hardwareimplementierung.
Nachteile von Private-Key-Verfahren:
- Bereits vor dem Austausch verschlüsselter Nachrichten müssen Kommunikationspartner über einen sicheren Kanal einen gemeinsamen geheimen Schlüssel austauschen und
- wenn in einem Netzwerk die einzelnen Kommunikationspartner vertraulich miteinander kommunizieren wollen, wächst die Anzahl der geheimen Schlüssel mit der Anzahl der Teilnehmer. Man benötigt je einen Schlüssel für jedes Paar aus Sender und Empfänger.
Asymmetrische Verschlüsselung
Zum Austausch von E-Mails und Nachrichten zwischen zwei oder mehr Kommunikationspartnern verwendet man meist die asymmetrische Verschlüsselung (Public–key-cryptography). Die asymmetrische Verschlüsselung wurde entwickelt, um die Probleme der Schlüsselverwaltung bei symmetrischen Verfahren zu umgehen. Zum Verschlüsseln einer Nachricht an Empfänger A verwendet Absender B den öffentlichen Schlüssel (Public Key) von A; A wiederum setzt seinen privaten Schlüssel (Private Key oder Secret Key) zum Entschlüsseln der Nachricht ein. Den öffentlichen Schlüssel gibt man allen Kommunikationspartnern, mit denen man verschlüsselte Nachrichten austauschen will, den privaten Schlüssel behält der Anwender für sich. Nachrichten sind nicht mit dem öffentlichen Schlüssel entschlüsselbar. Außerdem lässt sich der private Schlüssel nicht aus dem öffentlichen Schlüssel ableiten.
Der Austausch von öffentlichen Schlüsseln erfolgt in der Regel per E-Mail oder über einen Key-Server. Es genügt, wenn der Schlüssel zu einem Key-Server gesendet wird, da alle Server normalerweise miteinander im Verbund stehen.
Bekanntestes Beispiel für ein asymmetrisches Verfahren ist das sogenannte RSA-Verfahren, dessen kryptographische Widerstandsfähigkeit auf dem schwierigen mathematischen Problem der Primfaktorzerlegung großer Zahlen beruht.
Vorteile von Public-Key-Verfahren:
- Sie sind für digitale Signaturen geeignet,
- geringer Aufwand für die Schlüsselverwaltung und
- öffentliche Schlüssel können gefahrlos über unsichere Kanäle übertragen werden.
Nachteile von Public-Key-Verfahren:
- Große Schlüssellängen (im Vergleich zu Private-Key-Verfahren) und
- sie sind für große Datenmengen nicht geeignet.
Symmetrische Verschlüsselung | Asymmetrische Verschlüsselung | |
Schlüssellänge | Kurze Schlüssellängen | Große Schlüssellängen |
Datenmengen | Für große Datenmengen geeignet | Für kleine Datenmengen geeignet |
Ressourcenverbrauch | Geringer Ressourcenverbrauch | Hoher Ressourcenverbrauch |
Schlüssellängen | 128 oder 256 Bit | RSA 2048 Bit oder höher |
Anzahl der Schlüssel | Einen einzigen Schlüssel zum Ver- und Entschlüsseln | Zwei Schlüssel für die Verschlüsselung und Entschlüsselung |
Geschwindigkeit | Schnell | Langsamer |
Algorithmen | RC4, AES, DES, 3DES und QUAD, Blowfish, Camellia, Twofish | RSA, Diffie-Hellman, ECC-Algorithmen |
Häufige Anwendungsszenarien | Verschlüsselung von Festplatten oder von einzelnen Dateien | Sicherung der Vertraulichkeit von Nachrichten; Nachweis der Identität des Absenders |
Hybride Verschlüsselung
Asymmetrische Verfahren sind sehr rechenintensiv und eignen sich daher nicht zur Verschlüsselung längerer Nachrichten. Besser geeignet sind dafür sogenannte Hybridverfahren, eine Kombination aus symmetrischen und asymmetrischen Verfahren. Die Verschlüsselung der eigentlichen Nutzdaten erfolgt mittels eines symmetrischen Verfahrens (Private-Key-Kryptographie), während die Schlüsselverteilung und gegenseitige Authentisierung asymmetrisch (Public-Key-Kryptographie) ablaufen.
Die sogenannten Hybridverfahren verbinden die Vorteile beider Verfahrenstypen (Private-Key- und Public-Key-Kryptographie). Sie erreichen nahezu die Rechenleistung symmetrischer Verfahren und besitzen zudem die Charakteristik asymmetrischer Verfahren, vertraulich kommunizieren zu können, ohne den Empfänger vorher kontaktieren zu müssen.
Das derzeit bekannteste Beispiel für ein Hybridverfahren aus RSA und IDEA ist das Verschlüsselungskonzept Pretty Good Privacy (PGP). PGP ist ein Standard, der hauptsächlich zur Verschlüsselung elektronischer Nachrichten (E-Mails) verwendet wird.
Vorteile von Hybridverfahren:
- Verbindet die Vorteile von symmetrischen und asymmetrischen Verfahren.
Nachteile von Hybridverfahren:
- Sehr komplex.
Block- und Stromverschlüsselung
Verschlüsselungsverfahren werden in Block- oder Stromchiffren eingeteilt.
Blockverschlüsselung
Bei der Blockverschlüsselung (Blockchiffre) werden Daten eines Klartextes in Blöcke gleicher Länge zerlegt und gemeinsam verschlüsselt. Bei einem Klartext von beispielsweise 20 Zeichen wird die Zeichenkette in 5 gleichlange Blöcke unterteilt, die anschließend unabhängig voneinander chiffriert werden. Die Länge der chiffrierten Blöcke kann sowohl fest als auch variabel sein. Typische Werte für die Blockgrößen sind 128, 192 oder 256 Bit. Ist eine Zeichenkette kürzer als z. B. 128 Bit, so wird sie mit Füll-Bits vervollständigt.
Alle bedeutsamen symmetrischen Verschlüsselungsverfahren verwenden Blockchiffrierungen, weil dadurch im Gegensatz zu den Stromchiffrierungen die Charakteristika des Klartextes besser verborgen werden kann. Bekannte Blockchiffre sind DES, IDEA, AES, Blowfish, Serpent und Twofish.
Stromverschlüsselung
Bei einer Stromverschlüsselung (Stromchiffre) werden die Zeichen des Klartextes einzeln verschlüsselt. Anders als die Blockverschlüsselung ist die Stromverschlüsselung nicht darauf angewiesen, eine bestimmte Anzahl von Klartextdaten (z. B. 128 Bit) zu sammeln. Jedes Bit wird einzeln verschlüsselt, dadurch kann das verschlüsselte Bit sofort an den Empfänger gesendet werden. Besonders für Echtzeitübertragungen z. B. im Mobilfunk sind Stromverschlüsselungen geeignet.
Die Stromchiffren werden oft mithilfe linearer Schieberegister mit Rückkopplung (Erstellung von pseudozufälligen Zeichenfolgen) konstruiert. Die meisten Stromchiffrierungen benutzen einen symmetrischen Schlüssel für die Chiffrierung.
Eine bekannte Stromchiffre ist RC4. RC4 wird/wurde in vielen kryptographischen Protokollen wie zum Beispiel HTTPS, SSH 1 und WEP bzw. WPA verwendet. Im Prinzip ist RC4 ein Pseudo-Zufallszahlengenerator, bei dem die Zahlen mit den zu verschlüsselnden Daten durch XOR verknüpft werden. Inzwischen gilt RC4 als unsicher und wird unter anderem seit 2016 nicht mehr von den großen Webbrowsern für HTTPS-Verbindungen unterstützt [2].
Sicherer Umgang mit geheimen Schlüsseln
Wie sicher ein bestimmtes Verschlüsselungsverfahren ist, hängt im Wesentlichen von dem Verschlüsselungsalgorithmus und der Länge des verwendeten Schlüssels ab. Oftmals wird jedoch unterschätzt, dass die Sicherheit auch auf der korrekten Anwendung und damit auf der Vermeidung von Fehler- und Betrugsmöglichkeiten beruht. Wenn der Benutzer etwa seinen geheimen Schlüssel für Unbefugte zugänglich macht oder schwache Passwörter wählt, kann ein Angreifer in den Besitz des Schlüssels gelangen. Mangelhaftes Schlüsselmanagement kann weitreichende Folgen für den Benutzer haben.
Auch die allgemein empfohlenen IT-Sicherheitsmaßnahmen sind unbedingt zu beachten. Dazu gehört beispielsweise das zügige Einspielen von Sicherheitsupdates, die Installation eines Virenscanners und eine gesunde Skepsis walten zu lassen. Nur so kann verhindert werden, dass z. B. durch Schadsoftware (sog. Keylogger) die Tastatureingaben bei der Eingabe von Passwörtern mitgeschnitten werden.
Kryptographische Hashfunktionen
Hash-Funktionen sind keine Verschlüsselungsverfahren, werden jedoch oft im Zusammenhang mit diesen eingesetzt. Eine Hash-Funktion ist einfach eine Zusammenfassung bzw. eine Art Prüfsumme, die von einem digitalen Dokument erstellt wird, indem ein mathematischer Algorithmus angewandt wird. Eine kleine Änderung des Dokuments bewirkt eine große Änderung des Hash-Wertes. Hash-Funktionen sind "Einbahnstraßen", d. h. es kann zwar ein Hash-Wert eines Dokumentes erstellt werden, aber aus diesem Hash-Wert wiederum kann das Original-Dokument nicht wieder reproduziert werden.
In der Kryptologie werden Hashes dazu benutzt, um herauszufinden, ob sich Dokumente verändert haben bzw. ob Dokumente verändert worden sind.
Ein typischer Anwendungsfall ist das Ausschließen von Man-In-The-Middle-Attacken. Bei einer solchen Attacke manipuliert ein Angreifer die Nachricht vom Sender zum Empfänger auf dem Kommunikationsweg. Während Verschlüsselungen lediglich die Sicherstellung der Vertraulichkeit oder den Nachweis der Identität des Senders erlauben, entdecken Hash-Funktionen Integritätsverletzungen.
Zu den bekanntesten Hashverfahren gehört der Secure Hash Algorithm(SHA). Der ursprüngliche SHA "SHA-1" ist ein 1994 vom National Institute of Standards and Technology (NIST) entwickelter Algorithmus, der aus einer beliebigen Zeichenkette einen 160-Bit-Hashwert liefert. SHA-1 wurde 2013 vom National Institute of Standards and Technology als unsicher eingestuft, ist jedoch noch immer weit verbreitet.
SHA-2 ist der Nachfolger von SHA-1. SHA-2 umfasst fünf Hashfunktionen: SHA-1, SHA-224, SHA-256, SHA-384 und SHA-512, die Hash-Werte mit einer Länge von 224, 256, 384 bzw. 512 Bit erzeugen können. Obwohl es bislang keine erfolgreichen Angriffe auf SHA-2 gab, wurde bereits SHA-3 spezifiziert. SHA-3 basiert auf dem Hashing-Algorithmus Keccak [3]. Es gibt vier Varianten: SHA-3-224, SHA-3-256, SHA-3-384 und SHA-3-512. Zudem erlauben die Funktionen SHAKE128 und SHAKE256 frei wählbare Hash-Längen.
Bekannte Chiffrieralgorithmen
Das Herzstück eines jeden Verschlüsselungstools ist der Chiffrieralgorithmus, mit dem es arbeitet. Die Auswahl an Algorithmen ist inzwischen fast unüberschaubar, einige leistungsfähige Chiffrieralgorithmen heben sich jedoch aus der Masse ab.
Symmetrische Chiffrieralgorithmen
Zu den bekanntesten symmetrischen Verfahren gehören DES (und Triple-DES) und AES, die im Folgenden kurz vorgestellt werden.
- DES (Data Encryption Standard) wurde von IBM im Auftrag der US-Regierung entwickelt und 1977 zum ANSI-Standard (ANSI X392-1981) erhoben [4]. DES ist seitdem eines der am häufigsten eingesetzten symmetrischen Verschlüsselungsverfahren. DES gehört zu den sogenannten Blockchiffren, bei denen der Klartext in gleichlangen Blöcken verarbeitet wird. DES verwendet 56-Bit-Schlüssel zur Verschlüsselung von Blöcken zu je 64 Bits. Die Verschlüsselung eines Datenblocks besteht aus 16 Iterationen bzw. Runden, in denen die Daten und Schlüssel jeweils nach dem Schema Substitution, Transposition bzw. Permutation vermischt werden. Häufig werden auch sogenannte Triple-DES-Varianten (auch 3DES oder DESede genannt) verwendet, die aus der Hintereinanderschaltung dreier DES-Ausführungen mit zwei bzw. drei unabhängigen Schlüsseln bestehen. Die effektive Schlüssellänge beträgt somit 112 bzw. 168 Bits. Triple-DES erhöht zwar die Sicherheit, macht diesen Algorithmus aber deutlich langsamer.
Für die Sprachverschlüsselung wird DES häufig verwendet. Aufgrund der geringen Schlüssellänge gilt DES jedoch für viele Anwendungen als nicht mehr sicher. Wer auf Nummer sicher gehen will, ist z. B. mit dem Verschlüsselungsverfahren AES besser bedient. - AES (Advanced Encryption Standard) ist der Nachfolger von DES. AES wurde 2000 vom NIST nach einem öffentlichen Begutachtungsprozess aus den Vorschlägen einer öffentlichen Ausschreibung gewählt. Diese Auswahl begann 1997 und schloss mit der Wahl des AES-Algorithmus ab [5]. Das AES-Verfahren gehört ebenfalls zu den Blockchiffren, bei denen der Klartext in Blöcken verarbeitet wird. AES verwendet dabei eine Blockgröße von 128 Bit.
Wie bei DES erfolgt die Verschlüsselung in Runden; die Anzahl der Runden hängt von der Schlüssellänge ab. AES wird für den praktischen Einsatz mit Schlüssellängen von 128, 192 oder 256 Bits angeboten. Die zugehörigen AES-Verschlüsselungsvarianten werden auch als AES-128, AES-192 und AES-256 bezeichnet.
Asymmetrische Chiffrieralgorithmen
Zu den wichtigsten asymmetrischen Verschlüsselungsverfahren zählt der RSA-Algorithmus – ein typischer Vertreter der asymmetrischen Verfahren, die meistens auf zahlentheoretischen Problemen beruhen.
- Der RSA-Algorithmus wurde 1978 von den drei Mathematikern Rivest, Shamir und Adleman vorgestellt. RSA ist heutzutage einer der weitesten verbreiteten Verschlüsselungsalgorithmen. Die Sicherheit des Algorithmus beruht auf der Komplexität des Faktorisierungsproblems für ganze Zahlen: Das Bestimmen der Primfaktoren einer Zahl gilt für hinreichend große Zahlen als schwierig. Daher eignet sich die Kenntnis der Primfaktoren einer großen Zahl als privater Schlüssel, während die Zahl selbst Teil des öffentlichen Schlüssels sein kann und die Primfaktoren dennoch nicht aus dem öffentlichen Schlüssel zu ermitteln sind.
Die zusammengesetzte Zahl nennt man auch den RSA-Modul. Zusammen mit dem sogenannten Kodier-Exponenten bildet der Modul den öffentlichen Schlüssel. Der geheime Schlüssel besteht aus den Primfaktoren des Moduls sowie dem sogenannten Decodier-Exponenten.
RSA erlaubt variable Schlüssellängen, wobei die Schlüssellänge durch die Größe des Moduls bestimmt wird. Heutzutage besitzt der Modul in der Regel 2048 Bits. RSA-Schlüssel mit einer Länge von 1024 Bit gelten als unsicher und sollten nicht mehr genutzt werden [6].
Martin
am 09.04.2024