AWS Encryption SDK référence aux algorithmes - 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.

AWS Encryption SDK référence aux algorithmes

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 AWS Encryption SDK dans l'un des langages de programmation pris en charge, voirLangages 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 SDK spécification dans GitHub.

Si vous créez votre propre bibliothèque capable de lire et d'écrire des textes chiffrés compatibles avec le AWS Encryption SDK, vous devez comprendre comment elle AWS Encryption SDK implémente les suites d'algorithmes prises en charge pour chiffrer les données brutes.

AWS Encryption SDK prend en charge les suites d'algorithmes suivantes. Toutes les AES suites d'GCMalgorithmes ont un vecteur d'initialisation de 12 octets et une balise d'authentification de 16 octetsAES. GCM La suite d'algorithmes par défaut varie en fonction de la AWS Encryption SDK version et de la politique d'engagement clé sélectionnée. Pour plus de détails, voir Politique d'engagement et suite d'algorithmes.

AWS Encryption SDK Suites d'algorithmes
ID de l'algorithme Version du format du message Algorithme de chiffrement Longueur de la clé de données (bits) Algorithme de dérivation de clé Algorithme de signature Algorithme d'engagement clé Longueur des données de la suite d'algorithmes (octets)
05 78 0x02 AES-GCM 256 HKDFavec SHA -512 ECDSAavec P-384 et SHA -384 HKDFavec SHA -512 32 (engagement clé)
04 78 0x02 AES-GCM 256 HKDFavec SHA -512 Aucun HKDFavec SHA -512 32 (engagement clé)
03 78 0x01 AES-GCM 256 HKDFavec SHA -384 ECDSAavec P-384 et SHA -384 Aucun N/A
03 46 0x01 AES-GCM 192 HKDFavec SHA -384 ECDSAavec P-384 et SHA -384 Aucun N/A
02 14 0x01 AES-GCM 128 HKDFavec SHA -256 ECDSAavec P-256 et SHA -256 Aucun N/A
01 78 0x01 AES-GCM 256 HKDFavec SHA -256 Aucun Aucun N/A
01 46 0x01 AES-GCM 192 HKDFavec SHA -256 Aucun Aucun N/A
01 14 0x01 AES-GCM 128 HKDFavec SHA -256 Aucun Aucun N/A
00 78 0x01 AES-GCM 256 Aucun Aucun Aucun N/A
00 46 0x01 AES-GCM 192 Aucun Aucun Aucun N/A
00 14 0x01 AES-GCM 128 Aucun Aucun Aucun N/A
ID de l'algorithme

Valeur hexadécimale de 2 octets qui identifie de manière unique une implémentation d'algorithme. Cette valeur est enregistrée dans l'en-tête du message chiffré.

Version du format du message

Version du format du message. Les suites d'algorithmes avec engagement clé utilisent le format de message version 2 (0x02). Les suites d'algorithmes sans engagement de clé utilisent le format de message version 1 (0x01).

Longueur des données de la suite d'algorithmes

Longueur en octets des données spécifiques à la suite d'algorithmes. Ce champ n'est pris en charge que dans le format de message version 2 (0x02). Dans le format de message version 2 (0x02), ces données apparaissent dans le Algorithm suite data champ de l'en-tête du message. Les suites d'algorithmes qui prennent en charge l'engagement des clés utilisent 32 octets pour la chaîne d'engagement des clés. Pour plus d'informations, consultez la section Algorithme d'engagement clé dans cette liste.

Longueur de la clé de données

Longueur de la clé de données en bits. Il AWS Encryption SDK prend en charge les clés 256 bits, 192 bits et 128 bits. La clé de données est générée par un trousseau de clés ou une clé principale.

Dans certaines implémentations, cette clé de données est utilisée comme entrée dans une fonction de dérivation de extract-and-expand clé HMAC basée ()HKDF. La sortie de HKDF est utilisée comme clé de chiffrement des données dans l'algorithme de chiffrement. Pour plus d'informations, voir Algorithme de dérivation des clés dans cette liste.

Algorithme de chiffrement

Nom et mode de l'algorithme de chiffrement utilisé. Les suites d'algorithmes AWS Encryption SDK utilisent l'algorithme de cryptage Advanced Encryption Standard (AES) avec Galois/Counter Mode ()GCM.

Algorithme d'engagement clé

Algorithme utilisé pour calculer la chaîne d'engagement clé. La sortie est stockée dans le Algorithm suite data champ de l'en-tête du message et est utilisée pour valider la clé de données pour l'engagement clé.

Pour une explication technique de l'ajout d'un engagement clé à une suite d'algorithmes, voir Key Committing AEADs in Cryptology Archive ePrint .

Algorithme de dérivation de clé

Fonction de dérivation de extract-and-expand clé HMAC basée sur la base (HKDF) utilisée pour dériver la clé de chiffrement des données. Il AWS Encryption SDK utilise la HKDF définition définie dans RFC5869.

Suites d'algorithmes sans engagement de clé (ID d'algorithme 01xx03xx)

  • La fonction de hachage utilisée est SHA -384 ou SHA -256, selon la suite d'algorithmes.

  • Pour l'étape d'extraction :

    • Aucune valeur salt n'est utilisée. Selon leRFC, le sel est réglé sur une chaîne de zéros. La longueur de la chaîne est égale à la longueur de la sortie de la fonction de hachage, qui est de 48 octets pour SHA -384 et de 32 octets pour SHA -256.

    • Le matériel de saisie est la clé de données fournie par le trousseau de clés ou le fournisseur de la clé principale.

  • Pour l'étape de développement :

    • La clé pseudo aléatoire en entrée est la sortie de l'étape d'extraction.

    • Les informations d'entrée sont une concaténation de l'ID de l'algorithme et de l'ID du message (dans cet ordre).

    • La longueur du matériel de saisie de sortie est la longueur de la clé de données. Cette sortie est utilisée comme la clé de chiffrement des données dans l'algorithme de chiffrement.

Suites d'algorithmes avec engagement clé (identifiant d'algorithme 04xx et05xx)

  • La fonction de hachage utilisée est SHA -512.

  • Pour l'étape d'extraction :

    • Le sel est une valeur aléatoire cryptographique de 256 bits. Dans le format de message version 2 (0x02), cette valeur est stockée dans le MessageID champ.

    • Le matériel de saisie initial est la clé de données fournie par le porte-clés ou le fournisseur de la clé principale.

  • Pour l'étape de développement :

    • La clé pseudo aléatoire en entrée est la sortie de l'étape d'extraction.

    • L'étiquette clé correspond aux octets UTF codés en -8 de la DERIVEKEY chaîne dans l'ordre des octets en gros endian.

    • Les informations d'entrée sont une concaténation de l'identifiant de l'algorithme et de l'étiquette clé (dans cet ordre).

    • La longueur du matériel de saisie de sortie est la longueur de la clé de données. Cette sortie est utilisée comme la clé de chiffrement des données dans l'algorithme de chiffrement.

Version du format du message

Version du format de message utilisé avec la suite d'algorithmes. Pour plus de détails, consultez Référence Format des messages du kit.

Algorithme de signature

Algorithme de signature utilisé pour générer une signature numérique sur l'en-tête et le corps du texte chiffré. AWS Encryption SDK utilise l'algorithme de signature numérique à courbe elliptique (ECDSA) avec les spécificités suivantes :

  • La courbe elliptique utilisée est soit la courbe P-384, soit la courbe P-256, comme spécifié par l'ID de l'algorithme. Ces courbes sont définies dans Digital Signature Standard (DSS) (FIPSPUB186-4).

  • La fonction de hachage utilisée est SHA -384 (avec la courbe P-384) ou SHA -256 (avec la courbe P-256).