

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS Encryption SDK référence du vecteur d'initialisation
<a name="IV-reference"></a>


|  | 
| --- |
| Les informations de cette page constituent une référence pour le développement de votre propre bibliothèque de chiffrement compatible avec le kit AWS Encryption SDK. Si vous ne créez pas votre propre bibliothèque de chiffrement compatible, vous n'aurez probablement pas besoin de ces informations.<br />Pour utiliser le AWS Encryption SDK dans l'un des langages de programmation pris en charge, voir[Langages de programmation](programming-languages.md).<br />Pour la spécification qui définit les éléments d'une AWS Encryption SDK implémentation appropriée, voir la [AWS Encryption SDK spécification](https://github.com/awslabs/aws-encryption-sdk-specification/) dans GitHub. | 

Le AWS Encryption SDK fournit les [vecteurs d'initialisation](https://en.wikipedia.org/wiki/Initialization_vector) (IV) requis par toutes les suites d'[algorithmes](algorithms-reference.md) prises en charge. Le kit SDK utilise des numéros de séquence de cadre pour construire un vecteur d'initialisation afin qu'il ne soit pas possible que deux cadres du même message puissent avoir le même vecteur d'initialisation. 

Chaque vecteur d'initialisation de 96 bits (12 octets) est construit à partir de deux tableaux d'octets de poids fort concaténés dans l'ordre suivant :
+ 64 bits : 0 (réservé pour une utilisation ultérieure)
+ 32 bits : numéro de séquence du cadre. Pour la balise d'authentification de l'en-tête, cette valeur est uniquement constituée de zéros.

Avant que ne soit disponible la [mise en cache des clés de données](data-key-caching.md), le kit AWS Encryption SDK utilisait toujours une nouvelle clé de données pour chiffrer chaque message, et générait tous les vecteurs d'initialisation de façon aléatoire. Les vecteurs d'initialisation générés de façon aléatoire étaient sûrs dans le cadre du chiffrement, car les clés de données n'étaient jamais été réutilisées. Lorsque le kit SDK a lancé la mise en cache des clés de données, qui réutilise intentionnellement les clés de données, nous avons modifié la façon dont le kit SDK génère les vecteurs d'initialisation. 

Le fait d'utiliser des vecteurs d'initialisation déterministes qui ne peuvent pas se répéter au sein d'un message augmente considérablement le nombre d'appels pouvant être exécutés en toute sécurité dans le cadre d'une seule clé de données. En outre, les clés de données qui sont mises en cache utilisent toujours une suite d'algorithmes avec [une fonction de dérivation de clés](https://en.wikipedia.org/wiki/Key_derivation_function). L'utilisation d'un IV déterministe avec une fonction de dérivation de clé pseudo-aléatoire pour dériver des clés de chiffrement à partir d'une clé de données permet de chiffrer 2^32 AWS Encryption SDK messages sans dépasser les limites cryptographiques. 