Cipher
Was ist eine Cipher?
In der Kryptologie, der Disziplin, die sich mit der Untersuchung kryptografischer Algorithmen befasst, ist eine Cipher (Chiffre) ein Algorithmus zur Ver- und Entschlüsselung von Daten.
Die Verschlüsselung mit symmetrischen Schlüsseln, auch Verschlüsselung mit geheimen Schlüsseln genannt, beruht auf der Verwendung von Chiffren, die symmetrisch funktionieren. Bei symmetrischen Verschlüsselungsalgorithmen wird derselbe Verschlüsselungsschlüssel auf die gleiche Weise auf Daten angewandt, unabhängig davon, ob das Ziel darin besteht, Klartext in Chiffretext oder Chiffretext in Klartext umzuwandeln. Eine Chiffre wandelt Daten um, indem sie die ursprünglichen Klartextzeichen oder andere Daten in Chiffretext umwandelt. Der Chiffretext sollte als Zufallsdaten erscheinen.
Traditionell werden bei Chiffren diese beiden Haupttypen der Umwandlung verwendet:
- Bei Transpositionsverschlüsselungen bleiben alle ursprünglichen Datenbits in einem Byte erhalten, aber ihre Reihenfolge wird vertauscht.
- Substitutionschiffren ersetzen bestimmte Datenfolgen durch andere Datenfolgen. Eine Art der Substitution wäre zum Beispiel die Umwandlung aller Bits mit dem Wert 1 in den Wert 0 und umgekehrt.
Die Daten, die bei beiden Methoden ausgegeben werden, werden als Ciphertext (Chiffretext, Geheimtext) bezeichnet.
Moderne Chiffren ermöglichen die private Kommunikation in vielen verschiedenen Netzwerkprotokollen, darunter das TLS-Protokoll (Transport Layer Security) und andere, die eine Verschlüsselung des Netzwerkverkehrs bieten. Viele Kommunikationstechnologien, darunter Telefone, digitales Fernsehen und Geldautomaten, sind auf Chiffren angewiesen, um Sicherheit und Datenschutz zu gewährleisten.
Wie funktionieren Chiffren?
Eine Cipher verwendet ein System fester Regeln - einen Verschlüsselungsalgorithmus -, um Klartext, eine lesbare Nachricht, in Chiffretext, eine scheinbar zufällige Zeichenfolge, umzuwandeln. Chiffren können so konzipiert sein, dass sie Bits in einem Strom verschlüsseln oder entschlüsseln, so genannte Stromchiffren (Stream Cipher, Stromverschlüsselung). Oder sie können den Chiffriertext in einheitlichen Blöcken mit einer bestimmten Anzahl von Bits verarbeiten, die so genannten Blockchiffren (Block Cipher, Blockverschlüsselung).
Moderne Chiffreimplementierungen hängen vom Algorithmus und einem geheimen Schlüssel ab, der vom Verschlüsselungsalgorithmus verwendet wird, um die Daten während der Verschlüsselung zu verändern. Chiffren, die längere, in Bits gemessene Schlüssel verwenden, sind effektiver gegen Brute-Force-Angriffe. Je länger die Schlüssellänge ist, desto mehr Brute-Force-Versuche sind notwendig, um den Klartext zu entschlüsseln. Obwohl die Stärke der Verschlüsselung nicht immer von der Länge des Schlüssels abhängt, empfehlen Experten, moderne Verschlüsselungen so zu konfigurieren, dass sie je nach Algorithmus und Anwendungsfall Schlüssel von mindestens 128 Bit oder mehr verwenden.
Ein Schlüssel ist ein wesentlicher Bestandteil eines Verschlüsselungsalgorithmus - so sehr, dass in der realen Welt der Schlüssel geheim gehalten wird, nicht der Algorithmus. Starke Verschlüsselungsalgorithmen sind so konzipiert, dass es selbst dann, wenn jemand den Algorithmus kennt, unmöglich sein sollte, den verschlüsselten Text zu entziffern, ohne den entsprechenden Schlüssel zu kennen. Folglich müssen sowohl der Sender als auch der Empfänger über einen Schlüssel oder eine Reihe von Schlüsseln verfügen, bevor eine Chiffre funktionieren kann.
Bei symmetrischen Schlüsselalgorithmen wird derselbe Schlüssel für die Ver- und Entschlüsselung von Daten verwendet. Bei asymmetrischen Schlüsselalgorithmen werden öffentliche und private Schlüssel zum Ver- und Entschlüsseln von Daten verwendet.
Bei der asymmetrischen Kryptografie, auch bekannt als Public-Key-Kryptografie, sind die Schlüssel große Zahlen, die miteinander gepaart wurden, aber nicht identisch sind (asymmetrisch). Zu den Schlüsselpaaren gehören die folgenden:
- Der öffentliche Schlüssel kann mit jedem geteilt werden.
- Der private oder geheime Schlüssel wird geheim gehalten.
Zur Verschlüsselung einer Nachricht kann einer der beiden Schlüssel verwendet werden; zur Entschlüsselung wird der entgegengesetzte Schlüssel des zur Verschlüsselung verwendeten Schlüssels verwendet.
Der private oder geheime Schlüssel des Paares wird vom Eigentümer des Schlüsselpaares zum Ent- oder Verschlüsseln von Daten verwendet, während der öffentliche Schlüssel von jedem verwendet wird, der eine Nachricht verschlüsseln möchte, die nur vom Inhaber des privaten Schlüssels entschlüsselt werden kann.
Wozu werden Cipher verwendet?
Symmetrische Verschlüsselungen werden am häufigsten zur Sicherung der Online-Kommunikation verwendet. Sie werden auch in viele verschiedene Netzwerkprotokolle integriert, die für den Datenaustausch verwendet werden. Secure Sockets Layer (SSL) und TLS beispielsweise verwenden Chiffren zur Verschlüsselung von Daten der Anwendungsschicht, insbesondere bei HTTP Secure (HTTPS).
Virtuelle private Netze (VPNs), die Remote-Mitarbeiter oder Außenstellen mit Unternehmensnetzen verbinden, verwenden Protokolle mit symmetrischen Schlüsselalgorithmen zum Schutz der Datenkommunikation. Symmetrische Chiffren gewährleisten den Datenschutz in den meisten Wi-Fi-Netzen, Online-Banking und E-Commerce-Diensten sowie in der Mobiltelefonie.
Einige Protokolle verwenden asymmetrische Kryptografie zur Verschlüsselung und Authentifizierung der Endpunkte. Sie verwenden sie auch, um den Austausch von symmetrischen Schlüsseln zur Verschlüsselung von Sitzungsdaten zu sichern. Zu diesen Protokollen gehören die folgenden:
- TLS
- HTTPS
- Secure Shell (SSH)
- Open Pretty Good Privacy
- Secure/Multipurpose Internet Mail Extensions (S/MIME)
Die Kryptografie mit öffentlichem Schlüssel gilt zwar als sicherer als die symmetrische Verschlüsselung, ist aber auch rechenintensiver. Aus Leistungsgründen verlassen sich Protokolle häufig auf symmetrische Schlüsselalgorithmen zur Verschlüsselung von Sitzungsdaten.
Unterschied zwischen Codes und Chiffren
Codes und Chiffren sind verschiedene Möglichkeiten, eine Nachricht zu verschlüsseln. Ein Code ist eine Methode zur Veränderung einer Nachricht, bei der jedes Wort durch ein anderes Wort mit einer anderen Bedeutung ersetzt wird.
Eine Chiffre hingegen wandelt die Nachricht mit Hilfe eines Algorithmus um, der die Daten, die die Buchstaben und Wörter in der Nachricht darstellen, umwandelt. Chiffren sind einfacher zu implementieren und mit Computern zu verwenden, da die Algorithmen automatisiert und leicht programmiert werden können.
Arten von Chiffren
Cipher können auf verschiedene Arten charakterisiert werden, darunter die folgenden:
- Block Cipher (Blockchiffren) verschlüsseln Datenblöcke von gleichmäßiger Größe.
- Stream Cipher (Stromchiffren) können auf Datenströme angewendet werden, die oftmals über ein Netz empfangen und gesendet werden.
Chiffren können auf herkömmlichen Schlüsseln beruhen, die direkt zum Verschlüsseln von Chiffretext verwendet werden, oder auf der elliptischen Kurvenkryptographie (ECC). Wenn ECC mit einem 160-Bit-Schlüssel verwendet wird, kann sie die Sicherheit einer herkömmlichen Chiffre bieten, wie sie im RSA-Kryptosystem (Rivest-Shamir-Adleman) mit einem Schlüssel von 1.024 Bit Länge verwendet wird.
Moderne Verschlüsselungsalgorithmen sind so konzipiert, dass sie Angriffen standhalten, selbst wenn der Angreifer weiß, welche Chiffre verwendet wird. In der Vergangenheit waren Chiffren weniger sicher gegen Angriffe, da sie zur manuellen Verschlüsselung von Klartext verwendet wurden und mit Hilfe von Computern leichter analysiert und gebrochen werden konnten.
Beispiele für Chiffren
Zu den bekannten historischen Chiffren gehören die folgenden:
- Cäsar. Diese Chiffre wird Julius Cäsar zugeschrieben, der sie zur sicheren Kommunikation mit seinen Generälen verwendet haben soll. Es handelt sich um eine einfache Substitutionschiffre, bei der jeder Buchstabe des Klartextes um eine bestimmte Anzahl von Stellen im Alphabet verschoben wird. Die von Cäsar verwendete Zahl der Verschiebungen war drei. Bei Substitutionschiffren wird das Alphabet des Klartextes aufgeschrieben, während das Alphabet des Geheimtextes über den Buchstaben des Klartextes geschrieben und um die Zahl verschoben wird, auf die sich die Beteiligten geeinigt haben. Bei einer Verschiebung um drei steht der Buchstabe D über dem Klartext A, E über B und so weiter. Die Anzahl der verschobenen Buchstaben wird als eine einfache Form eines Schlüssels betrachtet.
- Atbash. Bei dieser Chiffre handelt es sich um eine Substitutionschiffre, bei der das Klartextalphabet auf sich selbst abgebildet wird, jedoch in umgekehrter Reihenfolge. Mit anderen Worten: Der Klartextbuchstabe A wird auf den Chiffretext Z abgebildet, B auf Y, C auf X und so weiter. Atbash ist nach den beiden ersten und den beiden letzten Buchstaben des hebräischen Alphabets benannt. Es wird angenommen, dass es seit Hunderten von Jahren in Gebrauch ist.
- Einfache Substitution. Auch dieses Verfahren wird seit Hunderten von Jahren verwendet. Dabei wird jedes Zeichen des Klartextes durch ein anderes Zeichen des Chiffretextes ersetzt, so dass sich ein Schlüssel mit 26 Zeichen ergibt. Sie unterscheidet sich von der Caesar-Chiffre dadurch, dass das Chiffrieralphabet komplett durcheinander gewürfelt und nicht einfach um eine einheitliche Anzahl von Stellen verschoben wird.
- Vigenère. Diese Chiffre ist eine Form der polyalphabetischen Substitution, das heißt, sie basiert auf der Substitution mit mehreren Substitutionsalphabeten. Die Vigenère-Chiffre verwendet eine Reihe miteinander verwobener Cäsarchiffren, die auf den Buchstaben eines Schlüsselworts basieren. Der Originaltext wird mit Hilfe des so genannten Vigenère-Quadrats oder der Vigenère-Tabelle verschlüsselt.
- Homophone Substitution. Bei dieser Substitutionschiffre werden einzelne Buchstaben des Klartextes durch mehrere verschiedene Buchstaben des Chiffretextes ersetzt. Diese Art von Chiffre ist in der Regel sehr viel schwieriger zu knacken als Standard-Substitutions-Chiffren.
Diese historischen Chiffren sind immer noch relevant, weil sie verschiedene grundlegende Komponenten moderner Chiffren verwenden, wie Substitution und Transposition.