Symmetrischer Schlüsselalgorithmus - Symmetric-key algorithm

Symmetrische Schlüsselalgorithmen sind Algorithmen für die Kryptografie , die dieselben kryptografischen Schlüssel sowohl für die Verschlüsselung von Klartext als auch für die Entschlüsselung von Geheimtext verwenden . Die Schlüssel können identisch sein, oder es kann eine einfache Transformation zwischen den beiden Schlüsseln geben. In der Praxis stellen die Schlüssel ein gemeinsames Geheimnis zwischen zwei oder mehr Parteien dar, das verwendet werden kann, um eine private Informationsverbindung aufrechtzuerhalten. Die Anforderung, dass beide Parteien Zugriff auf den geheimen Schlüssel haben, ist einer der Hauptnachteile der Verschlüsselung mit symmetrischem Schlüssel im Vergleich zur Verschlüsselung mit öffentlichem Schlüssel (auch bekannt als Verschlüsselung mit asymmetrischem Schlüssel).

Typen

Die Verschlüsselung mit symmetrischen Schlüsseln kann entweder Stromchiffren oder Blockchiffren verwenden .

  • Stromchiffren verschlüsseln die Ziffern (normalerweise Bytes ) oder Buchstaben (in Ersatzchiffren) einer Nachricht nacheinander. Ein Beispiel ist ChaCha20 .
  • Blockchiffren nehmen eine Anzahl von Bits und verschlüsseln sie als eine einzige Einheit, wobei der Klartext auf ein Vielfaches der Blockgröße aufgefüllt wird. Der vom NIST im Dezember 2001 genehmigte Algorithmus Advanced Encryption Standard (AES) verwendet 128-Bit-Blöcke.

Implementierungen

Beispiele für beliebte Algorithmen mit symmetrischen Schlüsseln sind Twofish , Serpent , AES (Rijndael), Camellia , Salsa20 , ChaCha20 , Blowfish , CAST5 , Kuznyechik , RC4 , DES , 3DES , Skipjack , Safer und IDEA .

Als kryptografisches Primitiv verwenden

Symmetrische Chiffren werden häufig verwendet, um andere kryptografische Primitive als nur Verschlüsselung zu erreichen.

Das Verschlüsseln einer Nachricht garantiert nicht, dass sie während der Verschlüsselung unverändert bleibt. Daher wird einem Geheimtext häufig ein Nachrichtenauthentifizierungscode hinzugefügt, um sicherzustellen, dass Änderungen des Geheimtexts vom Empfänger bemerkt werden. Nachrichtenauthentifizierungscodes können aus einer AEAD- Chiffre (zB AES-GCM ) konstruiert werden .

Symmetrische Chiffren können jedoch nicht für Nichtabstreitbarkeitszwecke verwendet werden, außer durch Einbeziehung zusätzlicher Parteien. Siehe die Norm ISO/IEC 13888-2 .

Eine andere Anwendung besteht darin, Hashfunktionen aus Blockchiffren zu erstellen . Beschreibungen einiger solcher Methoden finden Sie unter Einweg-Kompressionsfunktion .

Konstruktion symmetrischer Chiffren

Viele moderne Blockchiffren basieren auf einer von Horst Feistel vorgeschlagenen Konstruktion . Die Konstruktion von Feistel ermöglicht es, invertierbare Funktionen aus anderen Funktionen aufzubauen, die selbst nicht invertierbar sind.

Sicherheit symmetrischer Chiffren

Symmetrische Chiffren waren in der Vergangenheit anfällig für bekannte Klartext-Angriffe , Choled-Plaintext-Angriffe , differenzielle Kryptanalyse und lineare Kryptanalyse . Ein sorgfältiger Aufbau der Funktionen für jede Runde kann die Chancen eines erfolgreichen Angriffs erheblich verringern.

Schlüsselverwaltung

Schlüsseleinrichtung

Symmetrische Schlüsselalgorithmen erfordern, dass sowohl der Absender als auch der Empfänger einer Nachricht denselben geheimen Schlüssel haben. Alle frühen kryptographischen Systeme erforderten entweder, dass der Sender oder der Empfänger irgendwie eine Kopie dieses geheimen Schlüssels über einen physisch sicheren Kanal erhält.

Fast alle modernen kryptografischen Systeme verwenden intern noch symmetrische Schlüsselalgorithmen, um den Großteil der Nachrichten zu verschlüsseln, aber sie machen einen physikalisch sicheren Kanal überflüssig , indem sie den Diffie-Hellman-Schlüsselaustausch oder ein anderes öffentliches Schlüsselprotokoll verwenden, um sicher zu einer Einigung zu kommen einen neuen neuen geheimen Schlüssel für jede Sitzung/Konversation (Weiterleitungsgeheimnis).

Schlüsselgenerierung

Wenn sie mit asymmetrischen Verschlüsselungen für die Schlüsselübertragung verwendet werden, werden fast immer Pseudozufallsschlüsselgeneratoren verwendet, um die symmetrischen Verschlüsselungssitzungsschlüssel zu erzeugen. Der Mangel an Zufälligkeit in diesen Generatoren oder in ihren Initialisierungsvektoren ist jedoch katastrophal und hat in der Vergangenheit zu kryptanalytischen Brüchen geführt. Daher ist es wichtig, dass eine Implementierung eine Quelle hoher Entropie für ihre Initialisierung verwendet.

Reziproke Chiffre

Eine reziproke Chiffre ist eine Chiffre, bei der man, genauso wie man den Klartext in das Kryptographiesystem eingibt , um den Geheimtext zu erhalten , den Geheimtext an derselben Stelle im System eingeben könnte, um den Klartext zu erhalten. Eine reziproke Chiffre wird manchmal auch als selbstreziproke Chiffre bezeichnet .

Praktisch alle mechanischen Chiffriermaschinen implementieren eine reziproke Chiffre, eine mathematische Involution auf jedem eingegebenen Buchstaben. Anstatt zwei Arten von Maschinen zu entwerfen, eine zum Verschlüsseln und eine zum Entschlüsseln, können alle Maschinen identisch sein und auf die gleiche Weise eingerichtet (geschlüsselt) werden.

Beispiele für reziproke Chiffren sind:

Die Mehrheit aller modernen Chiffren kann entweder als Stromchiffre klassifiziert werden , von denen die meisten einen reziproken XOR-Verschlüsselungskombinierer verwenden , oder als Blockchiffre , von denen die meisten eine Feistel-Chiffre oder ein Lai-Massey-Schema mit einer reziproken Transformation in jeder Runde verwenden.

Anmerkungen

Verweise