

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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


****  

|  | 
| --- |
| Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi [DynamoDB](legacy-dynamodb-encryption-client.md). | 

Topik berikut memberikan rincian teknis untuk AWS Database Encryption SDK.

## Format deskripsi bahan
<a name="material-description-format"></a>

[Deskripsi materi](concepts.md#material-description) berfungsi sebagai header untuk catatan terenkripsi. Saat Anda mengenkripsi dan menandatangani bidang dengan SDK Enkripsi AWS Database, enkripsi mencatat deskripsi materi saat merakit materi kriptografi dan menyimpan deskripsi materi di bidang baru (`aws_dbe_head`) yang ditambahkan enkripsi ke catatan Anda. Deskripsi materi adalah struktur data berformat portabel yang berisi kunci data terenkripsi dan informasi tentang bagaimana catatan dienkripsi dan ditandatangani. Tabel berikut menjelaskan nilai-nilai yang membentuk deskripsi material. Byte ditambahkan dalam urutan yang ditunjukkan.


| Nilai | Panjang dalam byte | 
| --- | --- | 
| [Version](#format-version) | 1 | 
| [Signatures Enabled](#format-signatures) | 1 | 
| [Record ID](#format-recordID) | 32 | 
| [Encrypt Legend](#format-encrypt-legend) | Variabel | 
| [Encryption Context Length](#format-encrypt-context-length) | 2 | 
| [Encryption Context](#format-encrypt-context) | Variabel | 
| [Encrypted Data Key Count](#format-data-key-count) | 1 | 
| [Encrypted Data Keys](#format-data-keys) | Variabel | 
| [Record Commitment](#format-commitment) | 1 | 

**Versi**  
Versi format `aws_dbe_head` bidang ini.

**Tanda Tangan Diaktifkan**  
Mengkodekan apakah tanda tangan digital ECDSA diaktifkan untuk catatan ini.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/database-encryption-sdk/latest/devguide/reference.html)

**Rekam ID**  
Nilai 256-bit yang dihasilkan secara acak yang mengidentifikasi catatan. ID Rekaman:  
+ Secara unik mengidentifikasi catatan terenkripsi.
+ Mengikat deskripsi material ke catatan terenkripsi.

**Enkripsi Legenda**  
Deskripsi serial bidang yang diautentikasi dienkripsi. Encrypt Legend digunakan untuk menentukan bidang apa metode dekripsi harus mencoba untuk mendekripsi.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/database-encryption-sdk/latest/devguide/reference.html)
Encrypt Legend diserialisasikan sebagai berikut:  

1. Secara leksikografis dengan urutan byte yang mewakili jalur kanonik mereka.

1. Untuk setiap bidang, secara berurutan, tambahkan salah satu nilai byte yang ditentukan di atas untuk menunjukkan apakah bidang itu harus dienkripsi.

**Panjang Konteks Enkripsi**  
Panjang konteks enkripsi. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit. Panjang maksimum adalah 65.535 byte.

**Konteks Enkripsi**  
Satu set pasangan nama-nilai yang berisi data otentikasi tambahan yang arbitrer dan non-rahasia.  
Ketika [tanda tangan digital ECDSA](concepts.md#digital-sigs) diaktifkan, konteks enkripsi berisi pasangan kunci-nilai. `{"aws-crypto-footer-ecdsa-key": Qtxt}` `Qtxt`mewakili titik kurva elips yang `Q` dikompresi menurut [SEC 1 versi 2.0](https://www.secg.org/sec1-v2.pdf) dan kemudian dikodekan base64.

**Hitungan Kunci Data Terenkripsi**  
Jumlah kunci data terenkripsi. Ini adalah nilai 1-byte ditafsirkan sebagai 8-bit unsigned integer yang menentukan jumlah kunci data terenkripsi. Jumlah maksimum kunci data terenkripsi di setiap catatan adalah 255.

**Kunci Data Terenkripsi**  
Urutan kunci data terenkripsi. Panjang urutan ditentukan oleh jumlah kunci data terenkripsi dan panjang masing-masing. Urutan berisi setidaknya satu kunci data terenkripsi.  
Tabel berikut menjelaskan bidang yang membentuk setiap kunci data terenkripsi. Byte ditambahkan dalam urutan yang ditunjukkan.    
**Struktur Kunci Data Terenkripsi**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/database-encryption-sdk/latest/devguide/reference.html)  
**Panjang ID Penyedia Kunci**  
Panjang pengenal penyedia kunci. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit yang menentukan jumlah byte yang berisi ID penyedia kunci.  
**ID Penyedia Kunci**  
Pengidentifikasi penyedia kunci. Ini digunakan untuk menunjukkan penyedia kunci data terenkripsi dan dimaksudkan untuk dapat diperluas.  
**Panjang Informasi Penyedia Kunci**  
Panjang informasi penyedia kunci. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit yang menentukan jumlah byte yang berisi informasi penyedia kunci.  
**Informasi Penyedia Utama**  
Informasi penyedia utama. Itu ditentukan oleh penyedia kunci.  
Bila Anda menggunakan AWS KMS keyring, nilai ini berisi Amazon Resource Name (ARN) dari. AWS KMS key  
**Panjang Kunci Data Terenkripsi**  
Panjang kunci data terenkripsi. Ini adalah nilai 2-byte ditafsirkan sebagai 16-bit unsigned integer yang menentukan jumlah byte yang berisi kunci data terenkripsi.  
**Kunci Data Terenkripsi**  
Kunci data terenkripsi. Ini adalah kunci data yang dienkripsi oleh penyedia kunci.

**Rekam Komitmen**  
Hash 256-bit Hash Based Message Authentication Code (HMAC) yang berbeda dihitung atas semua byte deskripsi material sebelumnya menggunakan kunci komit.

## AWS KMS Rincian teknis keyring hierarkis
<a name="hierarchical-keyring-details"></a>

[Keyring AWS KMS Hierarkis](use-hierarchical-keyring.md) menggunakan kunci data unqiue untuk mengenkripsi setiap bidang dan mengenkripsi setiap kunci data dengan kunci pembungkus unik yang berasal dari kunci cabang aktif. Ini menggunakan [derivasi kunci](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-108r1.pdf) dalam mode counter dengan fungsi pseudorandom dengan HMAC SHA-256 untuk menurunkan kunci pembungkus 32 byte dengan input berikut.
+ Garam acak 16 byte
+ Kunci cabang aktif
+ Nilai yang [dikodekan UTF-8 untuk pengenal](https://en.wikipedia.org/wiki/UTF-8) penyedia kunci "” aws-kms-hierarchy

Keyring Hierarkis menggunakan kunci pembungkus turunan untuk mengenkripsi salinan kunci data teks biasa menggunakan AES-GCM-256 dengan tag otentikasi 16 byte dan input berikut.
+ Kunci pembungkus turunan digunakan sebagai kunci sandi AES-GCM
+ Kunci data digunakan sebagai pesan AES-GCM
+ Vektor inisialisasi acak 12 byte (IV) digunakan sebagai AES-GCM IV
+ Data otentikasi tambahan (AAD) yang berisi nilai serial berikut.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/database-encryption-sdk/latest/devguide/reference.html)