

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Referencia
<a name="reference"></a>


****  

|  | 
| --- |
| Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de AWS bases de datos. En esta guía para desarrolladores, se sigue proporcionando información sobre el [cliente de cifrado de DynamoDB](legacy-dynamodb-encryption-client.md). | 

En los temas siguientes se proporcionan detalles técnicos del SDK de cifrado de AWS bases de datos.

## Formato de descripción del material
<a name="material-description-format"></a>

La [descripción del material](concepts.md#material-description) sirve como encabezado de un registro cifrado. Al cifrar y firmar campos con el SDK de cifrado de AWS bases de datos, el cifrador registra la descripción del material a medida que reúne los materiales criptográficos y almacena la descripción del material en un nuevo campo (`aws_dbe_head`) que el cifrador añade al registro. La descripción del material es una estructura de datos con formato portátil que contiene la clave de datos cifrados e información sobre cómo se cifró y firmó el registro. En la siguiente tabla, se describen los valores que forman la descripción del material. Los bytes se anexan en el orden mostrado


| Valor | Longitud en bytes | 
| --- | --- | 
| [Version](#format-version) | 1 | 
| [Signatures Enabled](#format-signatures) | 1 | 
| [Record ID](#format-recordID) | 32 | 
| [Encrypt Legend](#format-encrypt-legend) | Variable | 
| [Encryption Context Length](#format-encrypt-context-length) | 2 | 
| [Encryption Context](#format-encrypt-context) | Variable | 
| [Encrypted Data Key Count](#format-data-key-count) | 1 | 
| [Encrypted Data Keys](#format-data-keys) | Variable | 
| [Record Commitment](#format-commitment) | 1 | 

**Versión**  
La versión de este `aws_dbe_head` formato de campo.

**Firmas habilitadas**  
Codifica si las firmas digitales ECDSA están habilitadas para este registro.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/reference.html)

**ID de registro**  
Valor de 256-bits generado de manera aleatoria que identifica el registro. El ID del registro:  
+ Identifica de forma única el registro cifrado.
+ Vincula la descripción del material al registro cifrado.

**Cifrar leyenda**  
Una descripción serializada de los campos autenticados que se cifraron. La leyenda de cifrado se utiliza para determinar qué campos debe intentar descifrar el método de descifrado.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/reference.html)
La leyenda de cifrado se serializa de la siguiente manera:  

1. Lexicográficamente mediante la secuencia de bytes que representa su ruta canónica.

1. Para cada campo, en orden, agregue uno de los valores de bytes especificados anteriormente para indicar si ese campo debe cifrarse.

**Longitud del contexto de cifrado**  
La longitud del contenido cifrado. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits. La longitud máxima es de 65.535 bytes.

**Contexto de cifrado**  
Un conjunto de pares de nombre-valor que contienen datos autenticados adicionales no secretos y arbitrarios.  
Cuando [las firmas digitales ECDSA](concepts.md#digital-sigs) están habilitadas, el contexto de cifrado contiene el par clave-valor. `{"aws-crypto-footer-ecdsa-key": Qtxt}` `Qtxt`representa el punto de la curva elíptica `Q` comprimido según la [versión 2.0 de la SEC 1](https://www.secg.org/sec1-v2.pdf) y, a continuación, codificado en base64.

**Recuento de claves de datos cifrados**  
El número de claves de datos cifradas. Se trata de un valor de 1-byte interpretado como un entero sin signo de 8-bits que especifica el número de claves de datos cifradas. El número máximo de claves de datos cifrados en cada registro es 255.

**Claves de datos cifradas**  
Una secuencia de claves de datos cifradas. La longitud de la secuencia se determina según el número de claves de datos cifradas y la longitud de cada una de ellas. La secuencia contiene al menos una clave de datos cifrada.  
En la siguiente tabla se describen los campos que componen cada clave de datos cifrada. Los bytes se anexan en el orden mostrado    
**Encrypted Data Key Structure**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/reference.html)  
**Longitud del ID del proveedor de claves**  
La longitud del identificador del proveedor de claves. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen el ID del proveedor de claves.  
**ID de proveedor clave**  
El identificador del proveedor de claves. Se utiliza para indicar el proveedor de la clave de datos cifrada y está previsto que sea extensible.  
**Longitud de la información clave del proveedor**  
La longitud de la información del proveedor de claves. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen la información del proveedor de claves.  
**Información clave del proveedor**  
La información del proveedor de claves. Viene determinada por el proveedor de claves.  
Si utiliza un conjunto de AWS KMS claves, este valor contiene el nombre de recurso de Amazon (ARN) del. AWS KMS key  
**Longitud de la clave de datos cifrados**  
La longitud de la clave de datos cifrada. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen la clave de datos cifrada.  
**Clave de datos cifrados**  
La clave de datos cifrada. Se trata de la clave de datos cifrada por el proveedor de claves.

**Compromiso récord**  
Un hash distinto del código de autenticación de mensajes (HMAC) basado en hash de 256 bits que se calcula sobre todos los bytes de descripción del material anteriores mediante la clave de confirmación.

## AWS KMS Detalles técnicos del llavero jerárquico
<a name="hierarchical-keyring-details"></a>

El [conjunto de claves jerárquico AWS KMS](use-hierarchical-keyring.md) utiliza una clave de datos única para cifrar cada campo y cifra cada clave de datos con una clave de encapsulamiento única derivada de una clave de rama activa. Utiliza una [derivación de claves](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-108r1.pdf) en modo contador con una función pseudoaleatoria con el HMAC SHA-256 para obtener la clave de encapsulamiento de 32 bytes con las siguientes entradas.
+ Una sal de asignación al azar de 16 bytes
+ La clave de rama activa
+ El valor [codificado en UTF-8](https://en.wikipedia.org/wiki/UTF-8) para el identificador del proveedor de claves "» aws-kms-hierarchy

El conjunto de claves jerárquico utiliza la clave de encapsulamiento derivada para cifrar una copia de la clave de datos de texto no cifrado mediante el AES-GCM-256 con una etiqueta de autenticación de 16 bytes y las siguientes entradas.
+ La clave de encapsulamiento derivada se utiliza como clave de cifrado AES-GCM
+ La clave de datos se utiliza como mensaje AES-GCM
+ Se utiliza un vector de inicialización aleatoria (IV) de 12 bytes como AES-GCM IV
+ Datos autenticados adicionales (AAD) que contienen los siguientes valores serializados.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/reference.html)