Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

AesCtrParams

Das AesCtrParams-Wörterbuch der Web Crypto API repräsentiert das Objekt, das als algorithm-Parameter in SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() oder SubtleCrypto.unwrapKey() übergeben werden sollte, wenn der AES-CTR-Algorithmus verwendet wird.

AES ist ein Blockchiffre, was bedeutet, dass es die Nachricht in Blöcke aufteilt und diese Block für Block verschlüsselt. Im CTR-Modus wird jedes Mal, wenn ein Block der Nachricht verschlüsselt wird, ein zusätzlicher Block von Daten eingemischt. Dieser zusätzliche Block wird "Counter-Block" genannt.

Ein gegebener Counter-Block-Wert darf nicht mehr als einmal mit demselben Schlüssel verwendet werden:

  • Bei einer Nachricht, die n Blöcke lang ist, muss für jeden Block ein anderer Counter-Block verwendet werden.
  • Wenn derselbe Schlüssel zum Verschlüsseln mehrerer Nachrichten verwendet wird, muss für alle Blöcke über alle Nachrichten hinweg ein unterschiedlicher Counter-Block verwendet werden.

Typischerweise wird dies erreicht, indem der anfängliche Counter-Block-Wert in zwei zusammengefügte Teile aufgeteilt wird:

  • Eine Nonce (das heißt, eine Zahl, die nur einmal verwendet werden darf). Der Nonce-Teil des Blocks bleibt für jeden Block in der Nachricht gleich. Jedes Mal, wenn eine neue Nachricht verschlüsselt werden soll, wird eine neue Nonce gewählt. Nonces müssen nicht geheim sein, aber sie dürfen nicht mit demselben Schlüssel wiederverwendet werden.
  • Ein Zähler. Dieser Teil des Blocks wird jedes Mal inkrementiert, wenn ein Block verschlüsselt wird.

Im Wesentlichen sollte die Nonce sicherstellen, dass Counter-Blöcke nicht von einer Nachricht zur nächsten wiederverwendet werden, während der Zähler sicherstellen sollte, dass Counter-Blöcke nicht innerhalb einer einzelnen Nachricht wiederverwendet werden.

Hinweis: Siehe Anhang B des NIST SP800-38A-Standards für weitere Informationen.

Instanz-Eigenschaften

name

Ein String. Dieser sollte auf AES-CTR gesetzt werden.

counter

Ein ArrayBuffer, ein TypedArray, oder eine DataView — Der Anfangswert des Counter-Blocks. Dieser muss 16 Bytes lang sein (die AES-Blockgröße). Die rechtsmost length Bits dieses Blocks werden für den Zähler verwendet, und der Rest wird für die Nonce verwendet. Zum Beispiel, wenn length auf 64 gesetzt ist, dann ist die erste Hälfte von counter die Nonce und die zweite Hälfte wird für den Zähler verwendet.

length

Eine Number — die Anzahl der Bits im Counter-Block, die für den tatsächlichen Zähler verwendet werden. Der Zähler muss groß genug sein, damit er nicht überläuft: Wenn die Nachricht n Blöcke lang ist und der Zähler m Bits lang ist, muss folgendes gelten: n <= 2^m. Der NIST SP800-38A Standard, der CTR definiert, empfiehlt, dass der Zähler die Hälfte des Counter-Blocks einnehmen sollte (siehe Anhang B.2), so dass er für AES 64 wäre.

Beispiele

Siehe die Beispiele für SubtleCrypto.encrypt() und SubtleCrypto.decrypt().

Spezifikationen

Specification
Web Cryptography Level 2
# dfn-AesCtrParams

Browser-Kompatibilität

Browser, die den "AES-CTR"-Algorithmus für die Methoden SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), oder SubtleCrypto.unwrapKey() unterstützen, werden diesen Typ unterstützen.

Siehe auch