AesCtrParams
Le dictionnaire AesCtrParams de l'API Web Crypto représente l'objet qui doit être passé en tant que paramètre algorithm dans SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), ou SubtleCrypto.unwrapKey(), lors de l'utilisation de l'algorithme AES-CTR.
AES est un chiffrement par blocs, ce qui signifie qu'il divise le message en blocs et chiffre chaque bloc individuellement. En mode CTR, chaque fois qu'un bloc du message est chiffré, un bloc supplémentaire de données est mélangé. Ce bloc supplémentaire est appelé le « bloc compteur ».
Une valeur de bloc compteur donnée ne doit jamais être utilisée plus d'une fois avec la même clé :
- Étant donné un message de n blocs, un bloc compteur différent doit être utilisé pour chaque bloc.
- Si la même clé est utilisée pour chiffrer plusieurs messages, un bloc compteur différent doit être utilisé pour tous les blocs de tous les messages.
En général, c'est réalisé en divisant la valeur initiale du bloc compteur en deux parties concaténées :
- Un nombre unique (c'est-à-dire un nombre qui ne peut être utilisé qu'une seule fois). La partie nombre unique du bloc reste la même pour chaque bloc du message. Chaque fois qu'un nouveau message doit être chiffré, un nouveau nombre unique est choisi. Les nombres uniques n'ont pas besoin d'être secrets, mais ils ne doivent pas être réutilisés avec la même clé.
- Un compteur. Cette partie du bloc est incrémentée chaque fois qu'un bloc est chiffré.
Essentiellement : le nombre unique doit garantir que les blocs compteur ne sont pas réutilisés d'un message à l'autre, tandis que le compteur doit garantir que les blocs compteur ne sont pas réutilisés au sein d'un même message.
Note : Voir l'annexe B du standard NIST SP800-38A (angl.) pour plus d'informations.
Propriétés d'instance
name-
Une chaîne de caractères. Cela doit être défini sur
AES-CTR. counter-
Un objet
ArrayBuffer, un objetTypedArray, ou un objetDataView— la valeur initiale du bloc compteur. Cela doit faire 16 octets (la taille du bloc AES). Les bitslengthles plus à droite de ce bloc sont utilisés pour le compteur, et le reste est utilisé pour le nombre unique. Par exemple, silengthest défini sur 64, alors la première moitié decounterest le nombre unique et la seconde moitié est utilisée pour le compteur. length-
Un objet
Number— le nombre de bits du bloc de compteur utilisés pour le compteur proprement dit. Le compteur doit être suffisamment grand pour éviter tout dépassement : si le message comportenblocs et que le compteur a une longueur dembits, alors la condition suivante doit être vérifiée :n <= 2^m. Le standard NIST SP800-38A (angl.), qui définit le CTR, recommande que le compteur occupe la moitié du bloc de comptage (voir Annexe B.2 (angl.)), ce qui correspond à 64 pour l'AES.
Exemples
Voir les exemples pour SubtleCrypto.encrypt() et SubtleCrypto.decrypt().
Spécifications
| Spécification |
|---|
| Web Cryptography Level 2> # dfn-AesCtrParams> |
Compatibilité des navigateurs
Les navigateurs qui prennent en charge l'algorithme « AES-CTR » pour les méthodes SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), ou SubtleCrypto.unwrapKey() prennent en charge ce type.
Voir aussi
- Le mode CBC est défini dans la section 6.2 du standard NIST SP800-38A (angl.)
- La méthode
SubtleCrypto.encrypt() - La méthode
SubtleCrypto.decrypt() - La méthode
SubtleCrypto.wrapKey() - La méthode
SubtleCrypto.unwrapKey()