Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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 objet TypedArray, ou un objet DataView — la valeur initiale du bloc compteur. Cela doit faire 16 octets (la taille du bloc AES). Les bits length les plus à droite de ce bloc sont utilisés pour le compteur, et le reste est utilisé pour le nombre unique. Par exemple, si length est défini sur 64, alors la première moitié de counter est 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 comporte n blocs et que le compteur a une longueur de m bits, 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