Suites d'algorithmes prises en charge dans le 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.

Suites d'algorithmes prises en charge dans le kit AWS Encryption SDK

Une suite d'algorithmes est un ensemble d'algorithmes de chiffrement et de valeurs connexes. Les systèmes de chiffrement utilisent l'implémentation de l'algorithme pour générer le message du texte chiffré.

La suite d'algorithmes du kit AWS Encryption SDK utilise l'algorithme AES (Advanced Encryption Standard) en mode GCM (Galois Counter Mode), connu sous le nom de AES-GCM, pour chiffrer les données brutes. LeAWS Encryption SDKprend en charge uniquement les clés de chiffrement 256, 192 et 128 bits. La longueur du vecteur d'initialisation (IV) est toujours de 12 octets. La longueur de la balise d'authentification est toujours de 16 octets.

Par défaut, leAWS Encryption SDKutilise une suite d'algorithmes avec AES-GCM avec un système HMACextract-and-expandfonction de dérivation des clés (HKDF), la signature et une clé de chiffrement 256 bits. Si l'icônepolitique d'engagementa besoinEngagement clé, leAWS Encryption SDKsélectionne une suite d'algorithmes qui prend également en charge l'engagement clé ; sinon, elle sélectionne une suite d'algorithmes avec dérivation et signature de clés, mais pas un engagement clé.

LeAWS Encryption SDKrecommande une suite d'algorithmes qui dérive une clé de chiffrement AES-GCM en fournissant une clé de chiffrement de données 256 bits à la base HMACextract-and-expandfonction de dérivation des clés (HKDF). LeAWS Encryption SDKajoute une signature ECDSA (Elliptic Curve Digital Signature Algorithm). Pour prendre en chargeEngagement clé, cette suite d'algorithmes dérive également unchaîne d'engagement clé— un identifiant de clé de données non secret — qui est stocké dans les métadonnées du message chiffré. Cette chaîne d'engagement de clé est également dérivée via HKDF à l'aide d'une procédure similaire à la dérivation de la clé de chiffrement des données.

AWS Encryption SDKSuite d'algorithmes
Algorithme de chiffrement Longueur de la clé de chiffrement des données (en bits) Algorithme de dérivation de clé Algorithme de signature Engagement clé
AES-GCM 256 HKDF avec SHA-384 ECDSA avec P-384 et SHA-384 HKDF avec SHA-512

La clé HKDF vous permet d'éviter la réutilisation accidentelle d'une clé de chiffrement des données et réduit le risque de surutilisation d'une clé de données.

Pour la signature, cette suite d'algorithmes utilise ECDSA avec un algorithme de fonction de hachage chiffré (SHA-384). ECDSA est utilisé par défaut, même lorsqu'il n'est pas spécifié par la stratégie pour la clé principale sous-jacente. Signature des messagesvérifie que l'expéditeur du message a été autorisé à chiffrer les messages et qu'il n'a pas de répudiation. Cela s'avère particulièrement utile lorsque la stratégie d'autorisation pour une clé principale autorise un ensemble d'utilisateurs à chiffrer des données et un autre ensemble d'utilisateurs à déchiffrer des données.

Les suites d'algorithmes avec engagement clé garantissent que chaque texte chiffré ne décrypte qu'un seul texte brut. Pour ce faire, ils valident l'identité de la clé de données utilisée comme entrée dans l'algorithme de chiffrement. Lors du chiffrement, ces suites d'algorithmes dérivent une chaîne d'engagement clé. Avant de déchiffrer, ils vérifient que la clé de données correspond à la chaîne d'engagement de clé. Si ce n'est pas le cas, l'appel de déchiffrement échoue.

Autres suites d'algorithmes prises en charge

Le kit AWS Encryption SDK prend en charge les suites d'algorithme alternatif suivantes pour assurer la compatibilité descendante. En général, nous vous déconseillons ces suites d'algorithme. Cependant, nous reconnaissons que la signature peut entraver considérablement les performances, c'est pourquoi nous proposons une suite d'engagement clé avec dérivation des clés pour ces cas. Pour les applications qui doivent comporter des compromis plus importants sur les performances, nous continuons d'offrir des suites qui manquent de signature, d'engagement clé et de dérivées clés.

AES-GCM sans engagement clé

Les suites d'algorithmes sans engagement de clé ne valident pas la clé de données avant le déchiffrement. Par conséquent, ces suites d'algorithmes peuvent déchiffrer un seul texte chiffré en différents messages en texte brut. Cependant, parce que les suites d'algorithmes avec un engagement clé produisent unmessage chiffré légèrement plus grand (+30 octets)et ils prennent plus de temps à traiter, ils ne sont peut-être pas le meilleur choix pour chaque application.

LeAWS Encryption SDKprend en charge une suite d'algorithmes avec dérivation de clé, engagement clé, signature et une suite avec dérivation de clé et engagement clé, mais pas de signature. Nous ne recommandons pas d'utiliser une suite d'algorithmes sans engagement clé. Si nécessaire, nous recommandons une suite d'algorithmes avec dérivation de clés et engagement de clé, mais pas de signature. Toutefois, si le profil de performances de votre application prend en charge l'utilisation d'une suite d'algorithmes, l'utilisation d'une suite d'algorithmes avec engagement clé, dérivation de clés et signature est une bonne pratique.

AES-GCM sans signature

Les suites d'algorithmes sans signature ne disposent pas de la signature ECDSA qui fournit l'authenticité et la non-répudiation. Utilisez ces suites uniquement lorsque les utilisateurs qui chiffrent les données et ceux qui déchiffrent font l'objet d'une même approbation.

Lorsque vous utilisez une suite d'algorithmes sans signature, nous vous recommandons d'en choisir une avec la dérivation de clés et l'engagement de clé.

AES-GCM sans dérivation de clé

Les suites d'algorithmes sans dérivation de clé utilisent la clé de chiffrement des données en tant que clé de chiffrement AES-GCM, au lieu d'utiliser une fonction de dérivation de clé pour dériver une clé unique. Nous déconseillons d'utiliser cette suite pour générer un texte chiffré, mais leAWS Encryption SDKle prend en charge pour des raisons de compatibilité.

Pour plus d'informations sur la façon dont ces suites sont représentées et utilisées dans la bibliothèque, consultez AWS Encryption SDK référence aux algorithmes.