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 suites d'algorithmes AES-GCM possèdent un vecteur d'initialisation de 12 octets et une balise d'authentification AES-GCM de 16 octets. 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 HKDF avec SHA-512 ECDSA avec P-384 et SHA-384 HKDF avec SHA-512 32 (engagement clé)
04 78 0x02 AES-GCM 256 HKDF avec SHA-512 Aucun HKDF avec SHA-512 32 (engagement clé)
03 78 0x01 AES-GCM 256 HKDF avec SHA-384 ECDSA avec P-384 et SHA-384 Aucun N/A
03 46 0x01 AES-GCM 192 HKDF avec SHA-384 ECDSA avec P-384 et SHA-384 Aucun N/A
02 14 0x01 AES-GCM 128 HKDF avec SHA-256 ECDSA avec P-256 et SHA-256 Aucun N/A
01 78 0x01 AES-GCM 256 HKDF avec SHA-256 Aucun Aucun N/A
01 46 0x01 AES-GCM 192 HKDF avec SHA-256 Aucun Aucun N/A
01 14 0x01 AES-GCM 128 HKDF avec 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é basée sur HMAC (HKDF). La sortie de la fonction HKDF est utilisée comme la 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 le mode Galois/Counter (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 dans Cryptology ePrint Archive.

Algorithme de dérivation de clé

La fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF) utilisée pour dériver la clé de chiffrement des données. AWS Encryption SDK Utilise le HKDF défini dans la RFC 5869.

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 la RFC, le sel est défini 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 codés en UTF-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 le document Digital Signature Standard (DSS) (FIPS PUB 186-4).

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