Référence Vecteur d'initialisation du kit AWS Encryption SDK - AWS Encryption SDK

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.

Référence Vecteur d'initialisation du kit AWS Encryption SDK

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.

Pour utiliser le kit AWS Encryption SDK dans l'un des langages de programmation pris en charge, consultez Langages de programmation.

Pour la spécification qui définit les éléments d'une AWS Encryption SDK implémentation appropriée, voir la AWS Encryption SDKspécification dans GitHub.

Le kit AWS Encryption SDK fournit les vecteurs d'initialisation qui sont requis par toutes les suites d'algorithmes 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, 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. Le fait d'utiliser un vecteur d'initialisation déterministe avec une fonction de dérivation de clés pseudo-aléatoire pour déterminer des clés de chiffrement à partir d'une clé de données permet au kit AWS Encryption SDK de chiffrer 2^32 messages sans dépasser les limites de chiffrement.