Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Encryption SDK referensi algoritma
Informasi di halaman ini adalah referensi untuk membangun pustaka enkripsi Anda sendiri yang kompatibel dengan file AWS Encryption SDK. Jika Anda tidak membangun pustaka enkripsi kompatibel Anda sendiri, Anda mungkin tidak memerlukan informasi ini. Untuk menggunakan AWS Encryption SDK dalam salah satu bahasa pemrograman yang didukung, lihatBahasa pemrograman. Untuk spesifikasi yang mendefinisikan elemen AWS Encryption SDK implementasi yang tepat, lihat AWS Encryption SDK Spesifikasi |
Jika Anda membangun perpustakaan Anda sendiri yang dapat membaca dan menulis ciphertext yang kompatibel dengan AWS Encryption SDK, Anda harus memahami bagaimana AWS Encryption SDK mengimplementasikan suite algoritme yang didukung untuk mengenkripsi data mentah.
AWS Encryption SDK Mendukung suite algoritma berikut. Semua AES suite GCM algoritma memiliki vektor inisialisasi 12-byte dan tag otentikasi AES GCM 16-byte. Rangkaian algoritme default bervariasi sesuai dengan AWS Encryption SDK versi dan kebijakan komitmen kunci yang dipilih. Untuk detailnya, lihat Kebijakan komitmen dan rangkaian algoritme.
AWS Encryption SDK Suite Algoritma | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID Algoritma | Versi format pesan | Enkripsi algoritme | Panjang kunci data (bit) | Algoritma derivasi kunci | Algoritma tanda tangan | Algoritma komitmen utama | Panjang data rangkaian algoritma (byte) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05 78 |
0x02 | AES-GCM | 256 | HKDFdengan SHA -512 | ECDSAdengan P-384 dan -384 SHA | HKDFdengan SHA -512 | 32 (komitmen utama) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
04 78 |
0x02 | AES-GCM | 256 | HKDFdengan SHA -512 | Tidak ada | HKDFdengan SHA -512 | 32 (komitmen utama) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03 78 |
0x01 | AES-GCM | 256 | HKDFdengan SHA -384 | ECDSAdengan P-384 dan -384 SHA | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03 46 |
0x01 | AES-GCM | 192 | HKDFdengan SHA -384 | ECDSAdengan P-384 dan -384 SHA | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
02 14 |
0x01 | AES-GCM | 128 | HKDFdengan SHA -256 | ECDSAdengan P-256 dan SHA -256 | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
01 78 |
0x01 | AES-GCM | 256 | HKDFdengan SHA -256 | Tidak ada | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
01 46 |
0x01 | AES-GCM | 192 | HKDFdengan SHA -256 | Tidak ada | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
01 14 |
0x01 | AES-GCM | 128 | HKDFdengan SHA -256 | Tidak ada | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
00 78 |
0x01 | AES-GCM | 256 | Tidak ada | Tidak ada | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
00 46 |
0x01 | AES-GCM | 192 | Tidak ada | Tidak ada | Tidak ada | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
00 14 |
0x01 | AES-GCM | 128 | Tidak ada | Tidak ada | Tidak ada | N/A |
- ID Algoritma
-
Nilai heksadesimal 2-byte yang secara unik mengidentifikasi implementasi algoritma. Nilai ini disimpan di header pesan ciphertext.
- Versi format pesan
-
Versi format pesan. Suite algoritma dengan komitmen utama menggunakan format pesan versi 2 (0x02). Suite algoritma tanpa komitmen kunci menggunakan format pesan versi 1 (0x01).
- Panjang data rangkaian algoritma
-
Panjang dalam byte data khusus untuk suite algoritma. Bidang ini hanya didukung dalam format pesan versi 2 (0x02). Dalam format pesan versi 2 (0x02), data ini muncul di
Algorithm suite data
bidang header pesan. Rangkaian algoritma yang mendukung komitmen kunci menggunakan 32 byte untuk string komitmen utama. Untuk informasi selengkapnya, lihat Algoritma komitmen utama dalam daftar ini. - Panjang kunci data
-
Panjang kunci data dalam bit. AWS Encryption SDK Mendukung kunci 256-bit, 192-bit, dan 128-bit. Kunci data dihasilkan oleh keyring atau kunci master.
Dalam beberapa implementasi, kunci data ini digunakan sebagai masukan ke fungsi derivasi extract-and-expand kunci HMAC berbasis ()HKDF. Output dari HKDF digunakan sebagai kunci enkripsi data dalam algoritma enkripsi. Untuk informasi selengkapnya, lihat Algoritma derivasi kunci dalam daftar ini.
- Enkripsi algoritme
-
Nama dan mode algoritma enkripsi yang digunakan. Rangkaian algoritma dalam AWS Encryption SDK menggunakan algoritma enkripsi Advanced Encryption Standard (AES) dengan Galois/Counter Mode (). GCM
- Algoritma komitmen utama
-
Algoritma yang digunakan untuk menghitung string komitmen kunci. Output disimpan di
Algorithm suite data
bidang header pesan dan digunakan untuk memvalidasi kunci data untuk komitmen utama.Untuk penjelasan teknis tentang menambahkan komitmen kunci ke rangkaian algoritme, lihat Key Committing AEADs
in Cryptology ePrint Archive. - Algoritma derivasi kunci
-
Fungsi derivasi extract-and-expand kunci HMAC berbasis (HKDF) digunakan untuk menurunkan kunci enkripsi data. AWS Encryption SDK Penggunaan yang HKDF didefinisikan dalam RFC5869
. Suite algoritma tanpa komitmen kunci (ID algoritma
01xx
—03xx
)-
Fungsi hash yang digunakan adalah SHA -384 atau SHA -256, tergantung pada rangkaian algoritma.
-
Untuk langkah ekstrak:
-
Tidak ada garam yang digunakan. PerRFC, garam diatur ke untaian nol. Panjang string sama dengan panjang output fungsi hash, yaitu 48 byte untuk SHA -384 dan 32 byte untuk -256. SHA
-
Materi kunci input adalah kunci data dari keyring atau penyedia kunci master.
-
-
Untuk langkah perluasan:
-
Kunci pseudorandom input adalah output dari langkah ekstrak.
-
Info input adalah gabungan dari ID algoritma dan ID pesan (dalam urutan itu).
-
Panjang bahan kunci keluaran adalah panjang kunci Data. Output ini digunakan sebagai kunci enkripsi data dalam algoritma enkripsi.
-
Suite algoritma dengan komitmen utama (ID algoritma
04xx
dan05xx
)-
Fungsi hash yang digunakan adalah SHA -512.
-
Untuk langkah ekstrak:
-
Garam adalah nilai acak kriptografi 256-bit. Dalam format pesan versi 2 (0x02), nilai ini disimpan di lapangan.
MessageID
-
Materi kunci awal adalah kunci data dari keyring atau penyedia kunci master.
-
Untuk langkah perluasan:
Kunci pseudorandom input adalah output dari langkah ekstrak.
-
Label kuncinya adalah byte UTF -8 yang dikodekan dari
DERIVEKEY
string dalam urutan byte endian besar. -
Info input adalah gabungan dari ID algoritma dan label kunci (dalam urutan itu).
-
Panjang bahan kunci keluaran adalah panjang kunci Data. Output ini digunakan sebagai kunci enkripsi data dalam algoritma enkripsi.
-
- Versi format pesan
-
Versi format pesan yang digunakan dengan suite algoritma. Untuk detailnya, lihat Referensi format pesan.
- Algoritma tanda tangan
-
Algoritma tanda tangan yang digunakan untuk menghasilkan tanda tangan digital di atas header dan body ciphertext. AWS Encryption SDK Menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) dengan spesifikasi sebagai berikut:
-
Kurva elips yang digunakan adalah kurva P-384 atau P-256, seperti yang ditentukan oleh ID algoritma. Kurva ini didefinisikan dalam Digital Signature Standard (DSS) (FIPSPUB186-4
). -
Fungsi hash yang digunakan adalah SHA -384 (dengan kurva P-384) atau SHA -256 (dengan kurva P-256).
-