

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.

# Cómo funciona el cliente de cifrado de DynamoDB
<a name="DDBEC-legacy-how-it-works"></a>

**nota**  
Nuestra biblioteca de cifrado del cliente pasó a [llamarse SDK de cifrado de bases de datos de AWS](DDBEC-rename.md). En el siguiente tema, se presenta información sobre las versiones 1.*x*—2.*x* del cliente de cifrado de DynamoDB para Java y versiones 1.*x*—3.*x* del cliente de cifrado de DynamoDB para Python. Para obtener más información, consulte el [SDK de cifrado de bases de datos de AWS para la compatibilidad de la versión de DynamoDB](legacy-dynamodb-encryption-client.md#legacy-support).

El cliente de cifrado de DynamoDB está diseñado específicamente para proteger los datos que almacena en DynamoDB. Las bibliotecas incluyen implementaciones seguras que puede ampliar o utilizar sin hacer ningún cambio. La mayoría de los elementos se representan mediante elementos abstractos para que pueda crear y utilizar componentes personalizados compatibles.

**Cifrado y firma de elementos de tabla**

La esencia del cliente de cifrado de DynamoDB es un *encriptador de elementos* que cifra, firma, verifica y descifra los elementos de la tabla. Recibe información acerca de los elementos de tabla e instrucciones acerca de qué elementos hay que cifrar y firmar. Obtiene los materiales de cifrado, y las instrucciones sobre su uso, de un [proveedor de materiales criptográficos](DDBEC-legacy-concepts.md#concept-material-provider) que usted selecciona y configura. 

En el siguiente diagrama, se muestra una vista general de este proceso.

![Cifrado y firma de elementos en el cliente de cifrado de DynamoDB](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/images/arch-encrypt.png)


Para cifrar y firmar un elemento de la tabla, el cliente de cifrado de DynamoDB necesita:
+ **Información acerca de la tabla. ** Obtiene información acerca de la tabla de un [contexto de cifrado de DynamoDB](concepts.md#encryption-context) que usted suministra. Algunos elementos auxiliares obtienen la información necesaria de DynamoDB y crean automáticamente el contexto de cifrado de DynamoDB para usted. 
**nota**  
El contexto de cifrado de *DynamoDB en el cliente de cifrado* de DynamoDB no está relacionado con el contexto de cifrado de () y *el*. AWS Key Management Service AWS KMS AWS Encryption SDK
+ **Los atributos que hay que cifrar y firmar.** Obtiene esta información de las [acciones de atributo](DDBEC-legacy-concepts.md#legacy-attribute-actions) que usted suministra.
+ **Materiales de cifrado, incluidas las claves de cifrado y firma.** Los obtiene de un [proveedor de materiales criptográficos](DDBEC-legacy-concepts.md#concept-material-provider) (CMP) que usted selecciona y configura. 
+ **Instrucciones para cifrar y firmar el elemento**. El CMP añade instrucciones de uso de los materiales de cifrado, incluidos los algoritmos de cifrado y firma, a la [descripción de material real](DDBEC-legacy-concepts.md#legacy-material-description).

El [encriptador de elementos](DDBEC-legacy-concepts.md#item-encryptor) utiliza todos estos elementos para cifrar y firmar el elemento. El encriptador de elementos también añade dos atributos al elemento: un [atributo de descripción de material](DDBEC-legacy-concepts.md#legacy-material-description) que contiene las instrucciones de cifrado y firma (la descripción de material real) y un atributo que contiene la firma. Puede interactuar directamente con el encriptador de elementos, o puede utilizar características auxiliares que interactúan con el encriptador de elementos para implementar un comportamiento predeterminado seguro.

El resultado es un elemento de DynamoDB que contiene datos cifrados y firmados.

**Verificación y descifrado de elementos de tabla**

Estos componentes también funcionan juntos para verificar y descifrar el elemento, como se muestra en el siguiente diagrama.

![Verificación y descifrado de elementos en el cliente de cifrado de DynamoDB](http://docs.aws.amazon.com/es_es/database-encryption-sdk/latest/devguide/images/arch-decrypt.png)


Para verificar y descifrar un elemento, el cliente de cifrado de DynamoDB necesita los mismos componentes, componentes con la misma configuración o componentes diseñados especialmente para descifrar los elementos, de la siguiente manera:
+ **Información acerca de la tabla** del [contexto de cifrado de DynamoDB](concepts.md#encryption-context).
+ **Qué atributos verificar y descifrar.** Los obtiene de las [acciones de atributo](DDBEC-legacy-concepts.md#legacy-attribute-actions).
+ **Materiales de descifrado, incluidas las claves de verificación y descifrado**, del [proveedor de materiales criptográficos](DDBEC-legacy-concepts.md#concept-material-provider) (CMP) que usted selecciona y configura.

  El elemento cifrado no incluye ningún registro del CMP que se utilizó para cifrarlo. Debe proporcionar el mismo CMP, un CMP con la misma configuración o un CMP que esté diseñado para descifrar elementos.
+ **Información acerca de cómo el elemento se cifró y firmó**, incluidos los algoritmos de cifrado y firma. El cliente los obtiene del [atributo de descripción de material](DDBEC-legacy-concepts.md#legacy-material-description) del elemento.

El [encriptador de elementos](DDBEC-legacy-concepts.md#item-encryptor) utiliza todos estos elementos para verificar y descifrar el elemento. También elimina los atributos de descripción de material y firma. El resultado es un elemento de DynamoDB como texto no cifrado.