AWS Encryption SDK riferimento agli algoritmi - AWS Encryption SDK

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Encryption SDK riferimento agli algoritmi

Le informazioni presenti su questa pagina sono un riferimento per la creazione della tua libreria di crittografia, compatibile con AWS Encryption SDK. Se non stai creando la tua libreria di crittografia compatibile, allora è probabile che queste informazioni non ti serviranno.

Per utilizzare il AWS Encryption SDK in uno dei linguaggi di programmazione supportati, vedereLinguaggi di programmazione.

Per le specifiche che definiscono gli elementi di una corretta AWS Encryption SDK implementazione, vedere la AWS Encryption SDK Specificazione in GitHub.

Se state creando una libreria personale in grado di leggere e scrivere testi cifrati compatibili con AWS Encryption SDK, dovrete capire come AWS Encryption SDK implementa le suite di algoritmi supportate per crittografare i dati grezzi.

AWS Encryption SDK Supporta le seguenti suite di algoritmi. Tutte le suite di algoritmi AES-GCM hanno un vettore di inizializzazione a 12 byte e un tag di autenticazione AES-GCM a 16 byte. La suite di algoritmi predefinita varia a seconda della versione e della politica di impegno chiave selezionata. AWS Encryption SDK Per i dettagli, consulta la politica di impegno e la suite di algoritmi.

AWS Encryption SDK Suite di algoritmi
ID algoritmo Versione del formato dei messaggi Algoritmo di crittografia Lunghezza della chiave dati (bit) Algoritmo di derivazione della chiave Algoritmo di firma Algoritmo di impegno chiave Lunghezza dei dati della suite di algoritmi (byte)
05 78 0x02 AES-GCM 256 HKDF con SHA-512 ECDSA con P-384 e SHA-384 HKDF con SHA-512 32 (impegno chiave)
04 78 0x02 AES-GCM 256 HKDF con SHA-512 Nessuno HKDF con SHA-512 32 (impegno chiave)
03 78 0x01 AES-GCM 256 HKDF con SHA-384 ECDSA con P-384 e SHA-384 Nessuno N/D
03 46 0x01 AES-GCM 192 HKDF con SHA-384 ECDSA con P-384 e SHA-384 Nessuno N/D
02 14 0x01 AES-GCM 128 HKDF con SHA-256 ECDSA con P-256 e SHA-256 Nessuno N/D
01 78 0x01 AES-GCM 256 HKDF con SHA-256 Nessuno Nessuno N/D
01 46 0x01 AES-GCM 192 HKDF con SHA-256 Nessuno Nessuno N/D
01 14 0x01 AES-GCM 128 HKDF con SHA-256 Nessuno Nessuno N/D
00 78 0x01 AES-GCM 256 Nessuno Nessuna Nessuno N/D
00 46 0x01 AES-GCM 192 Nessuno Nessuna Nessuno N/D
00 14 0x01 AES-GCM 128 Nessuno Nessuna Nessuno N/D
ID algoritmo

Un valore esadecimale a 2 byte che identifica in modo univoco l'implementazione di un algoritmo. Questo valore viene memorizzato nell'intestazione del messaggio del testo cifrato.

Versione del formato del messaggio

La versione del formato del messaggio. Le suite di algoritmi con impegno chiave utilizzano il formato dei messaggi versione 2 (0x02). Le suite di algoritmi senza impegno chiave utilizzano il formato dei messaggi versione 1 (0x01).

Lunghezza dei dati della suite di algoritmi

La lunghezza in byte dei dati specifici della suite di algoritmi. Questo campo è supportato solo nella versione 2 del formato di messaggio (0x02). Nella versione 2 del formato di messaggio (0x02), questi dati vengono visualizzati nel Algorithm suite data campo dell'intestazione del messaggio. Le suite di algoritmi che supportano l'impegno delle chiavi utilizzano 32 byte per la stringa di impegno chiave. Per ulteriori informazioni, consulta Key commit algorithm in questo elenco.

Lunghezza chiave dati

La lunghezza della chiave dati in bit. AWS Encryption SDK Supporta chiavi a 256 bit, 192 bit e 128 bit. La chiave dati viene generata da un portachiavi o da una chiave master.

In alcune implementazioni, questa chiave dati viene utilizzata come input per una funzione di derivazione delle extract-and-expand chiavi basata su HMAC (HKDF). L'output dell'HKDF viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia. Per ulteriori informazioni, consulta Algoritmo di derivazione delle chiavi in questo elenco.

Algoritmo di crittografia

Il nome e la modalità dell'algoritmo di crittografia utilizzato. Le suite di algoritmi AWS Encryption SDK utilizzano l'algoritmo di crittografia Advanced Encryption Standard (AES) con Galois/Counter Mode (GCM).

Algoritmo di impegno chiave

L'algoritmo utilizzato per calcolare la stringa di impegno chiave. L'output viene memorizzato nel Algorithm suite data campo dell'intestazione del messaggio e viene utilizzato per convalidare la chiave di dati per l'impegno chiave.

Per una spiegazione tecnica dell'aggiunta dell'impegno chiave a una suite di algoritmi, vedi Key Committing AEAD in Cryptology ePrint Archive.

Algoritmo di derivazione della chiave

La funzione di derivazione delle extract-and-expand chiavi basata su HMAC (HKDF) utilizzata per derivare la chiave di crittografia dei dati. AWS Encryption SDK Utilizza l'HKDF definito nella RFC 5869.

Suite di algoritmi senza impegno chiave (ID dell'algoritmo —) 01xx 03xx

  • La funzione hash utilizzata è SHA-384 o SHA-256, a seconda della suite di algoritmi.

  • Per la fase di estrazione:

    • Non vengono utilizzati salt. Secondo la RFC, il sale è impostato su una stringa di zeri. La lunghezza della stringa è uguale alla lunghezza dell'output della funzione hash, che è di 48 byte per SHA-384 e 32 byte per SHA-256.

    • Il materiale di codifica di input è la chiave dati del portachiavi o del fornitore della chiave principale.

  • Per la fase di espansione:

    • La chiave di input pseudo-casuale è l'output della fase di estrazione.

    • Le informazioni di input sono una concatenazione dell'ID dell'algoritmo e dell'ID del messaggio (in quest'ordine).

    • La lunghezza del materiale di codifica di output è la lunghezza della chiave Data. Questo output viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia.

Suite di algoritmi con impegno chiave (ID dell'algoritmo 04xx e05xx)

  • La funzione hash utilizzata è SHA-512.

  • Per la fase di estrazione:

    • Il sale è un valore casuale crittografico a 256 bit. Nella versione 2 del formato di messaggio (0x02), questo valore viene memorizzato nel campo. MessageID

    • Il materiale di codifica iniziale è la chiave dati del portachiavi o del fornitore della chiave principale.

  • Per la fase di espansione:

    • La chiave di input pseudo-casuale è l'output della fase di estrazione.

    • L'etichetta della chiave è costituita dai byte della stringa con codifica UTF-8 in ordine di byte big endian. DERIVEKEY

    • Le informazioni di input sono una concatenazione dell'ID dell'algoritmo e dell'etichetta della chiave (in quest'ordine).

    • La lunghezza del materiale di codifica di output è la lunghezza della chiave Data. Questo output viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia.

Versione del formato del messaggio

La versione del formato dei messaggi utilizzata con la suite di algoritmi. Per informazioni dettagliate, vedi Riferimenti a formati di messaggi.

Algoritmo di firma

L'algoritmo di firma utilizzato per generare una firma digitale sull'intestazione e sul corpo del testo cifrato. AWS Encryption SDK Utilizza l'Elliptic Curve Digital Signature Algorithm (ECDSA) con le seguenti specifiche:

  • La curva ellittica utilizzata è la curva P-384 o P-256, come specificato dall'ID dell'algoritmo. Queste curve sono definite in Digital Signature Standard (DSS) (FIPS PUB 186-4).

  • La funzione hash utilizzata è SHA-384 (con la curva P-384) o SHA-256 (con la curva P-256).