Kryptographie

Kryptographische Verfahren existieren schon seit über 2000 Jahren. Sie dienen dazu, Informationen zwischen zwei Parteien auszutauschen ohne das eine dritte Partei diese Informationen mitlesen oder verfälschen kann.

Die Bedeutung der Kryptographie hat in Zeiten des Internets entscheidend zugenommen.

Diese Verfahren dienen einerseits zum Verschlüsseln von Informationen (also Texten), andererseits muss sichergestellt werden, dass die Partei, mit der man kommuniziert, auch wirklich die richtige Partei ist. Dazu dienen sogenannte Signaturen.

Man unterscheidet symmetrische Verschlüsselungsverfahen und asymmetrische Verfahren (Falltür-Verfahren). Bei symmetrischen Verfahren gibt es einen Schlüssel, der beiden Parteien bekannt sein muss. Man kann damit die Information sowohl verschlüsseln als auch entschlüsseln. Der Nachteil: Der Schlüssel muss beiden Parteien bekannt sein. Man muss ihn sicher ausgetauscht haben z.B. bei einem Treffen. Im Internet kennen sich die beiden Parteinen in der Regel nicht. Man muss demzufolge diesen symmetrischen Schlüssel sicher austauschen. Das gelingt mit asymmetrischen Verfahren. Die asymmetrischen Verfahren erfordern viel Zeit. Deshalb wird mit diesen Verfahren nur ein Schlüssel ausgetauscht, mit dem die Informationen symmetrisch verschlüsselt werden.

Beispiel für eine symmetrische Verschlüsselung mit Hilfe der XOR-Verknüpfung:

0 + 0 = 1 + 1 = 0 sowie 0 +1 = 1 + 0 = 1

So wird verschlüsselt:

Schlüssel 1 0 0 1
Text 1 1 0 0
verschlüsselter Text 0 1 0 1

Und nun wird entschlüsselt:

Schlüssel 1 0 0 1
verschlüsselter Text 0 1 0 1
entschlüsselter Text 1 1 0 0

Der Schlüssel 1 0 0 1 kann mit Hilfe eines asymmetrischen Verfahrens ausgetauscht werden.

Häufig werden das RSA-Verfahren (in den 1970ern entwickelt) oder Verfahren mittels elliptischer Funktionen (Beispiel einer elliptischen Funktion: y2 = x3 + a * x + b) verschlüsselt. Ein Schlüssel kann 2048 bit lang sein. Für eine Verschlüsselung mittels elliptischer Funktionen können die Schlüssel kürzer ausfallen (bis 512 bit) - ein Vorzug.

Diese Verfahren sind nach heutigem Stand in dem Sinne sicher, als das Entschlüsseln ohne Kenntnis des Schlüssels nicht in vernünftiger Zeit erfolgen kann. Es existieren aber für Quantentencomputer Algorithmen, die diese Verschlüsselungen in kurzer Zeit brechen können. Sobald also ein funktionsfähiger Quantencomputer existiert (man rechnet mit erforderlichen 2000 QBits beim Quantenrechner), können so verschlüsselte Daten entschlüsselt werden. Es gibt Daten, die auch in 20 Jahren noch interessant sein könnten. Man kann also heute schon verschlüsselte Daten sammeln in der Hoffnung, sie nach Entwicklung eines derartigen Computers zu entschlüsseln. Deshalb sucht man nach Post-Quanten-Verfahren, die auch mit zukünftigen Quantencomputern nicht gebrochen werden können. Das amerikanische NIST (National Institute of Standards and Technology) hat einen Wettbewerb ausgerufen und nach öffentlicher Prüfung der verschiedenen Verfahren einige geeignete Verfahren ausgewählt. Es wird empfohlen, schon heutzutage diese Verfahren anzuwenden, um schon heutige Daten auch zukünftig zu sichern.

Es gibt natürlich keine Garantie, dass sowohl heutige Verfahren als auch Post-Quanten-Verfahren nicht mit konventionellen oder Quantencomputern gebrochen werden können. Allein eine lange Beschäftigung der weltweiten Community mit diesen Verfahren (niemand hat entsprechende Algorithmen veröffentlicht) gibt eine gewisse Sicherheit.


Prinzip einer sicheren Verbindung (mit https)

Der Computer nutzt dafür das TLS-Protokoll (Transport Layer Security) für die Kommunikation mit einem Server. Das geht so:

Paul (Computer) will bei Amazon (Server) einkaufen und startet eine Anfrage (Aufruf der Website von Amazon). Beide Parteien kennen sich im Prinzip nicht. Amazon hat einen öffentlichen (für alle einsehbaren) und einen privaten also geheimen (nur Amazon bekannt) Schlüssel.

1. Schritt: Paul sendet durch seinen Aufruf der Website eine Textnachricht t an Amazon.

2. Schritt: Amazon verschlüsselt die Textnachricht durch seinen privaten Schlüssel zum Text t'. Dies ist eine Signatur des Textes t, denn jeder kann mit mit öffentlichen Schlüssel den Text entschlüsseln.

3. Schritt: Paul entschlüsselt den Text t' mit dem öffentlichen Schlüssel von Amazon zu t'' und stellt dadurch falls t = t'' die Identität von Amazon fest, weil Amazon im Besitz des privaten Schlüssels ist.

4. Schritt: Paul übermittelt an Amazon einen symmetrischen Schlüssel, indem Paul den symmetrischen Schlüssel mit dem öffentlichen Schlüssel von Amazon verschlüsselt.

5. Schritt: Nun können die eigentlich von Paul angeforderten Daten von Amazon mit dem symmetrischen Schlüssel übertragen werden. Um einer möglichen Veränderung der übertragenen Daten durch Dritte vorzubeugen, wird noch eine Prüfsumme (MAC) von Amazon übertragen.

6. Schritt: Paul kann die empfangenen Daten mit dem symmetrischen Schlüssel entschlüsseln und die Prüfsumme kontrollieren. Paul und Amazon können nun mit Hilfe des symmetrischen Schlüssels kommunizieren.


Alternativ kann die Identität von Amazon auch über sogenannte Signaturen erfolgen. Dazu muss eine vertrauenswürdige Instanz die 'Echtheit' des öffentlichen Schlüssels von Amazon mit Hilfe einer Signatur zertifizieren.