Kryptografie: Grundlagen

In diesem Beitrag möchte ich die Grundlagen zur Kryptografie beschreiben und wichtige Begriffe und Abläufe beschreiben.

Verschlüsselung

Das Verschlüsseln einer Nachricht dient dazu, den Inhalt dieser Nachricht nur berechtigten Personen zugänglich zu machen. Dabei wird die Nachricht durch den Ersteller mit einem Schlüssel verschlüsselt. Der Empfänger der Nachricht muss im Besitz eines passenden Schlüssels sein, um die Nachricht entschlüsseln zu können.

symmetrische Verschlüsselung

Bei der symmetrischen Verschlüsselung ist der Schlüssel zur Verschlüsselung identisch mit dem Schlüssel zur Entschlüsselung. Man unterscheidet zwei Verfahren:

  1. Blockchiffre (z.B. DES, 3DES, AES)
  2. Stromchiffre (Schlüssellänge muss identisch mit Länge des Klartextes sein)

Ablauf der Verschlüsselung:

Der Absender ist im Besitz der Nachricht n und des Schlüssels k. Mit einer gewählten Verschlüsselungsfunktion f() kann er die verschlüsselte Nachricht v erzeugen.

---------------   ---------------               ------------------------------
| Schlüssel k | + | Nachricht n | -> f(k, n) -> | verschlüsselte Nachricht v |
---------------   ---------------               ------------------------------

Ablauf der Entschlüsselung:

Der Empfänger erhält die verschlüselte Nachricht v und kann mit dem Schlüssel k und der Umkehrfunktion f*() die Originalnachricht entschlüsseln.

---------------   ------------------------------                ---------------
| Schlüssel k | + | verschlüsselte Nachricht v | -> f*(k, v) -> | Nachricht n |
---------------   ------------------------------                ---------------

Der Vorteil dieser Verschlüsselung liegt in der Geschwindigkeit. Als Nachteil ist der Schlüsselaustausch zu sehen (persönlich, gesicherte Übertragung).

asymmetrische Verschlüsselung

Bei der asymmetrischen Verschlüsselung wird zwischen privatem und öffentlichem Schlüssel unterschieden. Der private Schlüssel verbleibt im Besitz des Eigentümers und dient zur Entschlüsselung der Nachricht. Der öffentliche Schlüssel wird an alle potentiellen Absender verteilt, damit diese eine Nachricht an den Eigentümer des zugehörigen privaten Schlüssels verfassen können.

Ablauf der Verschlüsselung:

Der Absender der Nachricht ist im Besitzt des öffentlichen Schlüssels h des Empfängers. Damit verschlüsselt er die Nachricht n mit der Verschlüsselungsfunktion V() und sendet die verschlüsselte Nachricht v an dem Empfänger.

----------------------------   ---------------              ------------------------------
| öffentlicher Schlüssel h | + | Nachricht n | -> V(h, n) ->| verschlüsselte Nachricht v |
----------------------------   ---------------              ------------------------------

Ablauf der Entschlüsselung:

Der Empfänger ist im Besitz des privaten Schlüssels k und kann mit der Entschlüsselungsfunktion E() die Nachricht v entschlüsseln.

-----------------------   ------------------------------               ---------------
| private Schlüssel k | + | verschlüsselte Nachricht v | -> E(k, v) -> | Nachricht n |
-----------------------   ------------------------------               ---------------

Ein bekanntes Beispiel für ein asymmetrisches Verschlüsselungsverfahren ist RSA.

Vorteil dieses Verfahrens ist, dass der öffentliche Schlüssel ohne Schutzmaßnahmen verteilt werden kann. Nur der private Schlüssel verbleibt ausschließlich im Besitz des Eigentümers.

Digitale Signatur

Mit einer digitalen Signatur kann ein Absender die Echtheit einer Nachricht garantieren. Weiterhin kann die Identität des Verfassers geprüft werden, da diese personenbezogen ist.

Für eine digitale Signatur nutzt der Ersteller der Nachricht seinen persönlichen privaten Schlüssel und unterschreibt damit seine Nachricht. Sofern der Empfänger der Nachricht im Besitz des öffentlichen Schlüssels (des Absenders) ist, kann er die Signatur und die Integrität der Nachricht prüfen. Sofern während der Übertragung eine Anpassung stattgefunden hätte, würde dies der Empfänger entdecken.

In der Realität wird aber selten eine komplette Nachricht signiert. Es wird statt dessen nur der Hashwert der Nachricht signiert.

Einwegfunktionen

Bei Einwegfunktionen e() handelt es sich um Funktionen, welche nach Möglichkeit nicht invertierbar sind. Weiterhin ergibt das Anwenden auf unterschiedliche Eingangsparameter x unterschiedliche Ergebnisse (Kollisionsfreiheit).

e(x) != e(x*)

Hashfunktionen

Hashfunktionen sind Einwegfunktionen, welche einen Fingerabdruck (Hashwert) eines Eingabeparameters berechnen. Beispiele sind MD5 (veraltet) und SHA.