AWS Encryption SDK referensi algoritma - AWS Encryption SDK

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 di GitHub.

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 01xx03xx)

  • 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).