AesCtrParams
Das AesCtrParams
-Wörterbuch der Web Crypto API repräsentiert das Objekt, das als algorithm
-Parameter an SubtleCrypto.encrypt()
, SubtleCrypto.decrypt()
, SubtleCrypto.wrapKey()
oder SubtleCrypto.unwrapKey()
übergeben werden soll, wenn der AES-CTR-Algorithmus verwendet wird.
AES ist ein Blockverschlüsselungsverfahren, 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 Datenblock eingebracht. Dieser zusätzliche Block wird als "Zählerblock" bezeichnet.
Ein gegebener Zählerblockwert darf niemals mehr als einmal mit demselben Schlüssel verwendet werden:
- Bei einer Nachricht mit n Blöcken muss für jeden Block ein anderer Zählerblock verwendet werden.
- Wenn derselbe Schlüssel verwendet wird, um mehr als eine Nachricht zu verschlüsseln, muss ein anderer Zählerblock für alle Blöcke sämtlicher Nachrichten verwendet werden.
Typischerweise wird dies erreicht, indem der anfängliche Zählerblockwert in zwei zusammengesetzte Teile geteilt wird:
- Ein Nonce (also 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 ein neuer Nonce ausgewählt. Nonces müssen nicht geheim gehalten werden, dürfen jedoch nicht mit demselben Schlüssel wiederverwendet werden.
- Ein Zähler. Dieser Teil des Blocks wird jedes Mal erhöht, wenn ein Block verschlüsselt wird.
Im Wesentlichen: Der Nonce sollte sicherstellen, dass Zählerblöcke nicht von einer Nachricht zur nächsten wiederverwendet werden, während der Zähler sicherstellen sollte, dass Zählerblöcke innerhalb einer einzigen Nachricht nicht wiederverwendet werden.
Hinweis: Weitere Informationen finden Sie in Anhang B des NIST SP800-38A Standards.
Instanzeigenschaften
name
-
Ein String. Dieser sollte auf
AES-CTR
gesetzt werden. counter
-
Ein
ArrayBuffer
, einTypedArray
oder einDataView
— der Anfangswert des Zählerblocks. Dieser muss 16 Bytes lang sein (die AES-Blockgröße). Die rechtestenlength
Bits dieses Blocks werden für den Zähler verwendet, und der Rest wird für den Nonce verwendet. Wenn beispielsweiselength
auf 64 gesetzt ist, dann ist die erste Hälfte descounter
der Nonce und die zweite Hälfte wird für den Zähler verwendet. length
-
Eine
Number
— die Anzahl der Bits im Zählerblock, die für den tatsächlichen Zähler verwendet werden. Der Zähler muss groß genug sein, um nicht zurückzuwickeln: Wenn die Nachrichtn
Blöcke enthält und der Zählerm
Bits lang ist, muss Folgendes wahr sein:n <= 2^m
. Der NIST SP800-38A Standard, der CTR definiert, schlägt vor, dass der Zähler die Hälfte des Zählerblocks einnehmen sollte (siehe Anhang B.2), also wären es bei AES 64.
Beispiele
Siehe die Beispiele für SubtleCrypto.encrypt()
und SubtleCrypto.decrypt()
.
Spezifikationen
Specification |
---|
Web Cryptography API # 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
- Der CTR-Modus ist definiert in Abschnitt 6.5 des NIST SP800-38A Standards.
SubtleCrypto.encrypt()
.SubtleCrypto.decrypt()
.SubtleCrypto.wrapKey()
.SubtleCrypto.unwrapKey()
.