1Grundlagen der Kryptographie

Kryptographie ist ein wirksames mathematisches Instrument zum Schutz von Informationen in Computersystemen. Daher verwenden viele Sicherheitsanwendungen kryptographische Verfahren für die Ver- und Entschlüsselung von Daten. Dank der Kryptographie werden sensible Daten über Telekommunikationsnetze auf sichere Weise übertragen, ohne dass sie durch das Abhören und die nachfolgende Beeinträchtigung gefährdet werden. Die Verschlüsselung kann als der Prozess definiert werden, bei dem Informationen nicht entzifferbar und zwecklos gemacht werden, bis sie zum richtigen Empfänger gelangen. Die Entschlüsselung ist die Umwandlung der verschlüsselten Daten in die ursprüngliche, lesbare Form.

Diese Technik wird im Alltagshandeln eingesetzt, wie Telefonieren mit einem Handy, Bezahlen mit einer Kredit- oder Debitkarte, Geldheben von einem Geldautomat, Einloggen in einen Computer mit einem Passwort usw. Die Kryptographie erlaubt die Speicherung von empfindlichen Informationen oder ihre Übertragung über ungesicherte Netzwerke (wie das Internet), so dass sie nur vom geplanten Empfänger gelesen werden können. Die Kryptographie wurde zu einem Industriestandard für die Sicherstellung der Informationssicherheit und ‑vertraulichkeit, Zugriffskontrolle auf Ressourcen und elektronische Transaktionen. Sie kann jedoch nicht allein alle Bedrohungen der Informationssicherheit behandeln.

Ein kryptographischer Algorithmus (auch als Chiffre bezeichnet) ist eine Sequenz von entsprechenden Ver- und Entschlüsselungsprozessen. Es handelt sich um eine mathematische Formel, die speziell für das Verdecken des Dateninhaltes entworfen wurde. Die wirksamsten Verschlüsselungsalgorithmen arbeiten mit einem oder mehreren Schlüsseln zusammen. Der gleiche Klartext kann mit Hilfe von unterschiedlichen Schlüsseln in unterschiedliche Geheimtexte verschlüsselt werden. Ein zuverlässiger kryptographischer Algorithmus muss garantieren, dass keine Möglichkeit besteht, den ursprünglichen Klartext zu entdecken, ohne dass man den Schlüssel kennt. Selbstverständlich gibt es auch Brute-Force-Methoden, die versuchen, alle möglichen Schlüssel auszuprobieren, bis der richtige gefunden wird. Die Sicherheit der verschlüsselten Daten hängt von zwei Faktoren ab: der Stärke des kryptographischen Algorithmus und der Geheimhaltung des Schlüssels.

Die Anzahl möglicher Schlüssel muss so hoch sein, dass es rechnerisch unmöglich ist, den richtigen Schlüssel mit einem Brute-Force-Angriff innerhalb einer angemessenen Frist zu entdecken. Viele Verschlüsselungsalgorithmen steigern ihre Zuverlässigkeit durch Erhöhung der Länge ihrer Schlüssel. Mit der Länge der Schlüssel wird mehr Rechenleistung für die Ver- und Entschlüsselung der Daten benötigt. Daher ist es wichtig, einen solchen Verschlüsselungsalgorithmus zu wählen, der den Mittelweg zwischen der notwendigen Sicherheit und den Rechenkosten der Datensicherung findet.

Moderne kryptographische Algorithmen können nach zwei Kriterien aufgeteilt werden: nach dem Typ des eingesetzten Schlüssels und nach der Art ihrer Arbeit mit Daten.

Nach dem Typ des eingesetzten Schlüssels gibt es:

  1. Algorithmen mit privaten Schlüsseln, symmetrische Kryptographie. Ein symmetrisches Kryptosystem verwendet Verschlüsselungsverfahren, in denen sowohl der Sender als auch der Empfänger den gleichen Schlüssel besitzen (oder seltener, in denen sich ihre Schlüssel unterscheiden, aber rechnerisch einfach voneinander abgeleitet werden können). Ein Beispiel eines symmetrischen Kryptosystems ist der AES-Standard (engl. Advanced Encryption Standard).
  2. Algorithmen mit öffentlichen Schlüsseln, asymmetrische Kryptographie. Diese Kryptographie verwendet zwei Schlüssel: einen öffentlichen Schlüssel zur Verschlüsselung der Daten und einen entsprechenden privaten (geheimen) Schlüssel zur Entschlüsselung der Daten. Offensichtlich gibt es zwischen den beiden Schlüsseln eine mathematische Beziehung - trotzdem ist es rechnerisch unmöglich, den privaten Schlüssel von dem öffentlichen Schlüssel abzuleiten. Der Benutzer oder das Subjekt veröffentlicht seinen öffentlichen Schlüssel und hält den privaten Schlüssel geheim. Jeder, der den öffentlichen Schlüssel hat, kann Informationen verschlüsseln, aber nicht entschlüsseln. Nur die Person, die den entsprechenden privaten Schlüssel hat, kann die Informationen entschlüsseln.

Der Hauptvorteil der Kryptographie mit öffentlichen Schlüsseln besteht darin, dass Subjekte ohne eine vorhandene Sicherheitsregelung Nachrichten auf eine sichere Weise austauschen können. Sowohl der Sender als auch der Empfänger brauchen keine geheimen Schlüssel über sichere Kanäle zu teilen: die Kommunikation umfasst nur öffentliche Schlüssel und kein privater Schlüssel wird übertragen oder geteilt.

Nach der Art, wie die Algorithmen mit Daten arbeiten, können Chiffren wie folgt aufgeteilt werden:

  1. Blockchiffren arbeiten mit Datenblöcken einer fixen Länge mit einer verschlüsselten unveränderlichen Transformation. Sie zerteilen die Nachricht in Blöcke und verschlüsseln jeweils einen Block. Wenn die Blockchiffre als sicher betrachtet werden kann, wird selbstverständlich auch der resultierende Geheimtext eines einzelnen Blocks als sicher angesehen - wenn er individuell analysiert wird. Wenn jedoch mehrere Nachrichten mit demselben Schlüssel verschlüsselt werden, führen identische Blöcke der Daten zu identischen Blöcken des Geheimtextes. Daher kann ein Angreifer eine Wiederholung von Blöcken in der Nachricht leicht erkennen. Deshalb werden Blockchiffren in einer solchen Anwendung nicht empfohlen und es werden dann andere sichere Betriebsmodi verwendet.
  2. Stromchiffren wandeln ein Symbol des Klartextes direkt in ein Symbol des Geheimtextes. Die Transformation basiert auf dem Generieren einer verschlüsselten pseudozufälligen Folge, die als ein kryptographischer Schlüsselstrom arbeitet. Dieser Schlüsselstrom ist grundsätzlich ein Strom von Bits, der mit dem Klartext kombiniert wird, um jeweils ein Bit oder Byte zu verschlüsseln und den Geheimtext zu erzeugen.

Im Modul wird die folgende Terminologie verwendet: