View a markdown version of this page

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 specifica in GitHub.

Se stai creando la tua libreria in grado di leggere e scrivere testi cifrati compatibili con AWS Encryption SDK, dovrai 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 AES-GCM algoritmi hanno un vettore di inizializzazione a 12 byte e un tag di autenticazione a 16 AES-GCM byte. La suite di algoritmi predefinita varia in base alla AWS Encryption SDK versione e alla politica di impegno chiave selezionata. Per i dettagli, consulta la Politica di impegno e la suite di algoritmi.

AWS Encryption SDK Algorithm Suite
ID algoritmo Versione del formato del messaggio Algoritmo di crittografia Lunghezza della chiave di 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 e P-384 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 e P-384 SHA-384 Nessuno N/A
03 46 0x01 AES-GCM 192 HKDF con SHA-384 ECDSA con e P-384 SHA-384 Nessuno N/A
02 14 0x01 AES-GCM 128 HKDF con SHA-256 ECDSA con e P-256 SHA-256 Nessuno N/A
01 78 0x01 AES-GCM 256 HKDF con SHA-256 Nessuno Nessuno N/A
01 46 0x01 AES-GCM 192 HKDF con SHA-256 Nessuno Nessuno N/A
01 14 0x01 AES-GCM 128 HKDF con SHA-256 Nessuno Nessuno N/A
00 78 0x01 AES-GCM 256 Nessuno Nessuna Nessuno N/A
00 46 0x01 AES-GCM 192 Nessuno Nessuna Nessuno N/A
00 14 0x01 AES-GCM 128 Nessuno Nessuna Nessuno N/A
ID algoritmo

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

Versione del formato del messaggio

La versione del formato del messaggio. Le suite di algoritmi con key commitment utilizzano il formato dei messaggi versione 2 (0x02). Le suite di algoritmi senza key commitment 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 nel formato messaggio versione 2 (0x02). Nel formato messaggio versione 2 (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, vedi Algoritmo di impegno chiave in questo elenco.

Lunghezza chiave dati

La lunghezza della chiave di 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. Portachiavi e fornitori di chiavi principali

In alcune implementazioni, questa chiave dati viene utilizzata come input per una HMAC-based funzione di derivazione della chiave di estrazione ed espansione (HKDF). L'output dell'HKDF viene usato come chiave di crittografia dei dati nell'algoritmo di crittografia. Per ulteriori informazioni, vedere 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 utilizzate utilizzano l'algoritmo di crittografia Advanced Encryption Standard (AES) with 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 di key commit a una suite di algoritmi, vedi Key Committing AEads in Cryptology ePrint Archive.

Algoritmo di derivazione della chiave

La funzione di derivazione della chiave HMAC-based di estrazione ed espansione (HKDF) utilizzata per derivare la chiave di crittografia dei dati. Utilizza AWS Encryption SDK l'HKDF definito nella RFC 5869. https://tools.ietf.org/html/rfc5869

Suite di algoritmi senza impegno chiave (ID 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 l'RFC, il salt è impostato su una stringa di zeri. La lunghezza della stringa è uguale alla lunghezza dell'output della funzione hash, che è 48 byte per SHA-384 e 32 byte per. SHA-256

    • Il materiale di immissione è la chiave dati del fornitore del portachiavi o della chiave master.

  • 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 in uscita è 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 salt è un valore casuale crittografico a 256 bit. Nel formato messaggio versione 2 (0x02), questo valore viene memorizzato nel campo. MessageID

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

  • Per la fase di espansione:

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

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

    • 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 in uscita è 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 del messaggio utilizzato 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 P-256 curva P-384 or, 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 P-384 curva) o SHA-256 (con la P-256 curva).