Ich versuche, mehr über den GCM-Modus und seine Unterschiede zwischen CBC zu erfahren. Ich weiß bereits, dass GCM einen MAC bereitstellt, der für die Nachrichtenauthentifizierung verwendet wird. Nach dem, was ich gelesen habe und nach den Codefragmenten, die ich gesehen habe, macht GCM eine exklusive oder ähnliche CBC, aber ich bin mir nicht sicher, was die exklusive oder dagegen ist. Im CBC-Modus ist das Exklusiv-Oder Klartext gegenüber dem vorherigen Chiffretext-Block, mit Ausnahme des ersten Blocks, der eine zufällige IV verwendet. Tut GCM dasselbe oder tut es das Exklusive – oder gegen etwas anderes? Wenn ja, kann jemand bitte kurz erklären, wie GCM die IV verwendet und wie das Exklusiv-Oder durchgeführt wird.
Kommentare
- Wenn Sie die Authentifizierung ignorieren, GCM verhält sich wie der CTR-Modus, nicht wie der CBC-Modus. Schlagen Sie diese auf Wikipedia nach.
- Nur weil es nicht ' auf dieser Seite definiert ist … GCM = Galois / Counter Mode und CBC = Cipher Block Chaining … andere Definitionen sind MAC (Nachrichtenauthentifizierungscode), IV (Initialisierungsvektor) und CTR (CounTeR-Modus).
Antwort
GCM- und CBC-Modi funktionieren intern ganz anders. Beide beinhalten eine Blockverschlüsselung und ein Exklusiv-Oder, aber sie verwenden sie auf unterschiedliche Weise.
Im CBC-Modus verschlüsseln Sie einen Datenblock, indem Sie den aktuellen Klartextblock verwenden und Exklusiv-Oring mit dem vorheriger Chiffretextblock (oder IV) und dann Senden des Ergebnisses davon durch die Blockchiffre; Die Ausgabe der Blockverschlüsselung ist der Chiffretextblock.
Der GCM-Modus bietet sowohl Datenschutz (Verschlüsselung) als auch Integrität. Um die Verschlüsselung bereitzustellen, verwaltet GCM einen Zähler. Für jeden Datenblock wird der aktuelle Wert des Zählers über die Blockverschlüsselung gesendet. Dann wird die Ausgabe der Blockverschlüsselung und exklusiv oder „s“ mit dem Klartext verwendet, um den Chiffretext zu bilden.
Beachten Sie zwei Hauptunterschiede:
-
Was ist exklusiv oder bearbeitet? Im CBC-Modus ist der Klartext exklusiv oder mit Daten versehen, die der Angreifer kennt (die IV oder ein vorheriger Chiffretextblock). Daher bietet dies an sich keine inhärente Sicherheit (stattdessen tun wir dies, um die Wahrscheinlichkeit zu minimieren, dass wir denselben Block zweimal durch die Blockverschlüsselung senden). Im GCM-Modus wird der Klartext exklusiv oder mit der Ausgabe der Blockverschlüsselung bearbeitet. Dem Sicherheitsmodell gehört, dass der Angreifer diese Ausgabe nicht erraten kann (es sei denn, er kennt den Klartext und den Chiffretext bereits).
-
Was wird durch die Blockverschlüsselung gesendet? Im CBC-Modus wird der Klartext über die Blockverschlüsselung gesendet (nachdem er mit einem Exklusiv-Oder „randomisiert“ wurde). Im GCM-Modus hängt das, was über die Blockverschlüsselung gesendet wird, nicht von den Daten ab verschlüsselt, aber stattdessen nur im internen Zustand.
Wie GCM eine IV verwendet (ich persönlich halte „nonce“ für einen besseren Begriff für das, was GCM verwendet, da dies die Die Idee, dass Sie mit GCM nicht zweimal dieselbe Nonce für denselben Schlüssel verwenden können, wird zum Initialisieren des Zählers verwendet.
Kommentare
- Sehr interessant … Wenn ich das richtig verstehe, sagen Sie, dass im GCM-Modus der Chiffretext eines Blocks exklusiv ist – oder ' gegen den Klartext, der gerade durch die Chiffre geführt wurde und dieser Block wird dann gesendet. Wenn dies wahr ist, wie wird dieser Block dann entschlüsselt? Ist ' nicht der Chiffretext aus der AES-Verschlüsselung (zum Beispiel), die zum Entschlüsseln der Daten erforderlich ist? wird das erhalten? Auch wenn die o Wenn original verschlüsselter Text erhalten wird, kann er verwendet werden, um den gesendeten Chiffretext exklusiv zu verwenden – oder den gesendeten Chiffretext, der den Klartext zurückgibt und keine weitere Entschlüsselung benötigt … .
- Nein, in GCM nehmen wir einen Zähler, senden diesen durch die Blockchiffre und dann exklusiv – oder den mit dem Klartext, um den Chiffretext zu bilden. Auf der Entschlüsselungsseite behalten wir den gleichen Zähler bei, senden ihn über die Blockverschlüsselung und dann exklusiv – oder den mit dem Chiffretext, um den Klartext zu bilden.
- @poncho In GCM benötigen wir also nicht den Teil der Blockverschlüsselung „entschlüsseln“? Da wir auf beiden Seiten „Verschlüsselung“ verwenden.
- Wenn Sie dieselbe Nonce zweimal mit demselben Schlüssel verwenden, öffnen Sie sich für … welchen Angriff?
- @RobertSiemer: zwei Angriffe: a) Der Angreifer erhält eine erhebliche Menge an Informationen über die beiden Nachrichten, die mit derselben Nonce verschlüsselt sind (möglicherweise genug, um beide Inhalte abzuleiten), und b) der Angriff erhält Informationen, die es ihm ermöglichen würden, Nachrichten zu ändern, ohne entdeckt zu werden