[Kryptografischer Algorithmus 3] Analyse des Arbeitsmodus der Blockverschlüsselung (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)

1. Was ist der Blockverschlüsselungsmodus?

  Die symmetrischen Verschlüsselungsalgorithmen DES, 3DES, AES usw. gehören alle zu Blockchiffren. Sie können nur Klartext mit fester Länge verschlüsseln. Im wirklichen Leben müssen Menschen jedoch normalerweise Dateien (Daten) verschlüsseln, die kein einzelner Klartext von 8 Bytes sind oder 16 Bytes. Stattdessen muss eine große Datei oder E-Mail usw. verschlüsselt werden. Für diese Art von Klartext, der mit beliebiger Länge verschlüsselt werden muss, ist eine Iteration der Blockverschlüsselung erforderlich. Die Iterationsmethode der Blockverschlüsselung wird als „Modus“ der Blockchiffre bezeichnet.
  Es gibt viele Arten von Blockchiffren, die hauptsächlich in die folgenden Kategorien unterteilt sind:

Modell Anmerkung
EZB Elektronischer Codebuchmodus
CBC Cipher Block Chaining-Modus (Block-Chiffre-Chaining-Modus)
CFB Chiffre-Feedback-Modus (Cipher-Feedback-Modus)
VON B Ausgabe-Feedback-Modus
CTR Zählermodus
XTS XEX (XOR Encrypt XOR) Optimierbare Blockchiffre mit Chiffretext-Stealing

  Klartextpaket : Bezieht sich auf den Klartext, der als Verschlüsselungsobjekt im Blockverschlüsselungsalgorithmus verwendet wird. Die Länge des Klartextblocks ist dieselbe wie die des Blockverschlüsselungsalgorithmus (z. B. beträgt die Blocklänge von AES 128 Bit und der entsprechende Klartext). Die Blocklänge beträgt ebenfalls 128 Bit.
  Chiffretextblock : Bezieht sich auf den Chiffretext, der durch die Verschlüsselung des Klartextblocks mithilfe des Blockverschlüsselungsalgorithmus generiert wird. Die Länge des Chiffretextblocks stimmt auch mit der Blocklänge des Blockverschlüsselungsalgorithmus überein.

2. ECB-Modus

2.1 Was ist der ECB-Modus?

  Der ECB-Modus (Electronic Code Book) ist die direkteste und einfachste Möglichkeit, Nachrichten zu verschlüsseln. Im ECB-Modus wird der Chiffretext direkt nach der Verschlüsselung des Klartexts abgerufen, und der Klartext wird direkt nach der Entschlüsselung desselben Chiffretexts abgerufen.
Passt auf: Die Klartextlänge muss ein ganzzahliges Vielfaches der „Paketlänge“ sein. Wenn es sich nicht um ein ganzzahliges Vielfaches handelt, muss sie vor der Verschlüsselung mit einem „ganzzahligen Vielfachen“ aufgefüllt werden
Fügen Sie hier eine Bildbeschreibung ein

2.2 Funktionen

  • ( 优点) Die Paketsynchronisierung zwischen dem Verschlüsseler und dem Entschlüsseler ist nicht erforderlich. Das heißt, wenn der Empfänger aufgrund von Übertragungsproblemen nicht alle verschlüsselten Pakete empfängt, werden die empfangenen Pakete nicht beeinträchtigt.
  • ( 优点) Da zwischen den Gruppen keine Korrelation besteht, kann die Funktionsweise der EZB parallelisiert werden;
  • ( 缺点) Dieselbe Klartextgruppe wird immer in derselben Chiffretextgruppe verschlüsselt, wodurch der Verschlüsselungsprozess leicht angegriffen oder geknackt werden kann.

3. CBC-Modus

3.1 Was ist der CBC-Modus?

  Der vollständige Name des CBC-Modus ist Cipher Block Chaining-Modus (Block Cipher L Chaining Mode). Sein Arbeitsmechanismus basiert hauptsächlich auf zwei Ideen: 1) Die Verschlüsselung aller Blöcke ist miteinander verknüpft, sodass der Chiffretext eines bestimmten Blocks nicht mehr vorhanden
  ist hängt nur von ab Der Klartext der Gruppe hängt von allen Klartextgruppen vor der Gruppe ab (einschließlich der Gruppe);
  2) Der Verschlüsselungsprozess verwendet den Initialisierungsvektor (IV) zur Randomisierung.
  Im CBC-Modus werden die Klartextgruppe und der Chiffretext der vorherigen Gruppe zunächst einer „XOR“-Operation unterzogen, und dann wird die Verschlüsselungsoperation durchgeführt.
Fügen Sie hier eine Bildbeschreibung ein

3.2 Funktionen

  • ( 优点) Jede Verschlüsselung erfordert die Beteiligung des vorherigen Chiffretextblocks, und eine kleine Änderung im Klartext ändert alle nachfolgenden Chiffretexte;
  • ( 优点) kann das Gesetz des Klartextes nicht aus dem Chiffretext erkennen. Die Sicherheit wird verbessert. Derzeit ist CBC der am häufigsten verwendete Arbeitsmodus;
  • ( 优点) Das Ändern eines bestimmten Chiffretextblocks wirkt sich nur auf den aktuellen und nächsten entschlüsselten Klartext aus und hat keinen Einfluss auf den nachfolgenden Entschlüsselungsprozess.
  • ( 缺点) Da jede Verschlüsselung die Beteiligung des vorherigen Chiffretextes erfordert, kann sie nicht parallel, sondern nur seriell verschlüsselt werden, und die Verschlüsselungsgeschwindigkeit ist begrenzt;解密是可以并行进行的

4. CFB-Modus

4.1 Was ist der CFB-Modus?

  Der vollständige Name des CFB-Modus lautet Cipher FeedBack (Ciphertext-Feedback-Modus). Im CFB-Modus wird der vorherige Chiffretextblock an den Eingang des Chiffrieralgorithmus zurückgesendet. Das sogenannte Feedback bedeutet die Rückkehr zum Input.
  Anders als im ECB- und CBC-Modus verschlüsselt CFB nicht den Klartext, sondern den „Chiffretext der vorherigen Gruppe“. Der Chiffretext der Gruppe.
Fügen Sie hier eine Bildbeschreibung ein

4.2 Funktionen

  1) Der Arbeitsmodus des CFB-Modus ist dem des One-Time-Pads sehr ähnlich. Das One-Time-Pad erzeugt den Chiffretext durch XOR-Verknüpfung des „Klartextes“ und der „zufälligen Bitfolge“, während der CFB-Modus den Chiffretext generiert bis „„Klartextblock“ und die Ausgabe des „Verschlüsselungsalgorithmus“ werden XOR-verknüpft, um einen „Verschlüsselungstextblock“ zu erzeugen. An diesem Punkt der Verschlüsselung per XOR sind sich beide sehr ähnlich.
  2) Im CFB-Modus entspricht die Ausgabe des kryptografischen Algorithmus der zufälligen Bitfolge des One-Time-Pads. Da die Ausgabe des kryptografischen Algorithmus jedoch berechnet und keine echte Zufallszahl ist, kann der CFB-Modus nicht wie a sein One-Time-Pad. Das wäre theoretisch nicht zu entziffern.
  3) Bei der Entschlüsselung im CFB-Modus ist zu beachten, dass der Blockverschlüsselungsalgorithmus weiterhin Verschlüsselungsvorgänge durchführt, da der Schlüsselstrom durch Verschlüsselungsvorgänge erhalten wird.
  4) Der CFB-Modus erfordert nicht, dass der zu verschlüsselnde Klartext ein ganzzahliges Vielfaches der „Klartext-Blocklänge“ sein muss.

5. OFB-Modus

5.1 Was ist der OFB-Modus?

  Der vollständige Name des OFB-Modus lautet Output-FeedBack-Modus (Ausgangsrückkopplungsmodus). Im OFB-Modus wird die Ausgabe des kryptografischen Algorithmus an die Eingabe des kryptografischen Algorithmus zurückgekoppelt.
  Der OFB-Modus verschlüsselt den Klartext nicht direkt durch einen kryptografischen Algorithmus, sondern führt eine XOR-Operation am „Klartextblock“ und „der Ausgabe des kryptografischen Algorithmus“ durch, um einen „Chiffretextblock“ zu generieren. In dieser Hinsicht ist der OFB-Modus dem CFB-Modus sehr ähnlich.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

5.2 Vergleich der OFB- und CFB-Modi

  Der Unterschied zwischen dem OFB-Modus und dem CFB-Modus besteht lediglich darin, dass die Eingabe des kryptografischen Algorithmus unterschiedlich ist: Im CFB-Modus ist die Eingabe des kryptografischen Algorithmus der vorherige Chiffretextblock, im OFB-Modus die Eingabe des kryptografischen Algorithmus ist die vorherige Ausgabe des kryptografischen Algorithmus.
Fügen Sie hier eine Bildbeschreibung ein

6. CTR-Modus

6.1 Was ist der CTR-Modus?

  Der vollständige Name des CTR-Modus lautet CounteR-Modus (Zählermodus). Der CTR-Modus ist eine Stream-Verschlüsselung, die durch Verschlüsselung mit einem Zähler, der sich sukzessive ansammelt, einen Verschlüsselungsstrom erzeugt.
  Im CTR-Modus entspricht jede Gruppe einem Zähler, der nacheinander akkumuliert wird, und der Schlüsselstrom wird durch Verschlüsselung des Zählers generiert, und die endgültige Chiffretextgruppe wird durch Ausführen einer XOR-Operation an der Bitfolge erhalten, die durch Verschlüsselung des Zählers und des Klartexts erhalten wird .
  CTR模式无IV参与运算
Fügen Sie hier eine Bildbeschreibung ein

6.2 Vergleich zwischen CTR-Modus und OFB-Modus

  1) Beide gehören zu Stream-Chiffren.
  2) OFB leitet die Ausgabe an die Eingabe weiter und CTR verwendet den Wert des Zählers als Eingabe
Fügen Sie hier eine Bildbeschreibung ein

6.3 Funktionen

  1) Verschlüsselung und Entschlüsselung im CTR-Modus verwenden dieselbe Struktur;
  2) Da der bei der Ent- und Entschlüsselung verwendete „Zähler“ direkt aus dem Wert von Nonce und der Seriennummer des Pakets berechnet wird, können die Pakete in beliebiger Reihenfolge verarbeitet werden CTR-Modus Verschlüsselung oder Entschlüsselung;
  3) Da es keine Reihenfolge für Verschlüsselung und Entschlüsselung gibt, wird der CTR-Modus unterstützt 并行计算.

7. XTS-Modus

7.1 Was ist der XTS-Modus?

  Der vollständige Name von XTS ist XEX (XOR Encrypt XOR) Tweakable Block Cipher with Ciphertext Stealing, ein anpassbarer Blockverschlüsselungsalgorithmus. Auf den AES-Algorithmus angewendet.
  1) Es gibt zwei SCHLÜSSEL, von denen SCHLÜSSEL1 zum Verschlüsseln des Klartexts und SCHLÜSSEL2 zum Verschlüsseln des Tweak-Werts verwendet wird.
  2) Der durch aj dargestellte „Finite-Field“-Algorithmus.
Fügen Sie hier eine Bildbeschreibung ein
Anmerkungen : Das obige Bild ist zitiert unter: https://www.zhihu.com/question/26452995 . Wenn ein Verstoß vorliegt, kontaktieren Sie mich bitte, um es zu löschen. Vielen Dank.

7.2 Funktionen

  1) Es gibt zwei Schlüssel, von denen einer zur Durchführung der AES-Paketverschlüsselung und der andere zur Verschlüsselung des Anpassungswerts (Tweak) verwendet wird. Diese Verschlüsselungsanpassung verwendet endliche Felder und XOR-Operationen, sodass dasselbe Paket nicht geändert wird Jedes Mal wird derselbe Chiffretext erhalten, was die Sicherheit gewährleistet.
  2) Im Vergleich zu ECB und CBC löst XTS zwei Probleme: Der von demselben Datenblock erhaltene Chiffretext kann nicht derselbe sein (ECB); verschiedene Datenblöcke können unabhängig voneinander verschlüsselt und entschlüsselt werden (CBC).

8. Zusammenfassung

  Vergleich von Betriebsobjekten in verschiedenen Modi:

Modell Anzahl der SCHLÜSSEL IV verschlüsseltes Objekt Parallelverarbeitung
EZB 1 keiner Klartextpaket Support (Verschlüsselung, Entschlüsselung)
CBC 1 haben Der Wert nach „XOR“ der Klartextgruppe und der vorherigen Chiffretextgruppe (oder Initialisierungsvektor IV) Nur Entschlüsselung unterstützt
CFB 1 haben Geheimtextblock (oder I-Initialisierungsvektor IV) Nur Entschlüsselung unterstützt
VON B 1 haben IV-Wert, die Ausgabe der IV-Verschlüsselung wird als Eingabe der nächsten Verschlüsselung verwendet und so weiter nicht unterstützt
CTR 1 keiner Zähler-CTR-Wert Support (Verschlüsselung, Entschlüsselung)
XTS 2 keiner Klartext und Optimierungswert Support (Verschlüsselung, Entschlüsselung)

  Vergleich der Vor- und Nachteile verschiedener Modi:
Fügen Sie hier eine Bildbeschreibung ein
Referenz: „Graphic Cryptography Technology (Third Edition)“

Die Linkadressen verschiedener Algorithmen lauten wie folgt:
[Kryptografischer Algorithmus Null] Symmetrische Algorithmen (DES, 3DES, AES, DM5, HMAC, CMAC, SHAxx, SM3, SM4), asymmetrische Algorithmen (RSA, ECC, ECDSA, ECDH, SM2, SM9). ...)

Ich denke du magst

Origin blog.csdn.net/KXue0703/article/details/120095804
Empfohlen
Rangfolge