View a markdown version of this page

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 perpustakaan enkripsi Anda sendiri yang kompatibel dengan AWS Encryption SDK. Jika Anda tidak membangun pustaka enkripsi Anda sendiri yang kompatibel, Anda mungkin tidak memerlukan informasi ini.

Untuk menggunakan salah satu AWS Encryption SDK bahasa pemrograman yang didukung, lihatBahasa pemrograman.

Untuk spesifikasi yang mendefinisikan elemen-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 menerapkan rangkaian algoritma yang didukung untuk mengenkripsi data mentah.

Men AWS Encryption SDK dukung suite algoritma berikut. Semua suite AES-GCM algoritma memiliki vektor inisialisasi 12-byte dan tag otentikasi 16-byte AES-GCM. Rangkaian algoritma default bervariasi dengan AWS Encryption SDK versi dan kebijakan komitmen utama yang dipilih. Untuk detailnya, lihat Kebijakan komitmen dan rangkaian algoritma.

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 suite algoritma (byte)
05 78 0x02 AES-GCM 256 HKDF dengan SHA-512 ECDSA dengan dan P-384 SHA-384 HKDF dengan SHA-512 32 (komitmen utama)
04 78 0x02 AES-GCM 256 HKDF dengan SHA-512 Tidak ada HKDF dengan SHA-512 32 (komitmen utama)
03 78 0x01 AES-GCM 256 HKDF dengan SHA-384 ECDSA dengan dan P-384 SHA-384 Tidak ada N/A
03 46 0x01 AES-GCM 192 HKDF dengan SHA-384 ECDSA dengan dan P-384 SHA-384 Tidak ada N/A
02 14 0x01 AES-GCM 128 HKDF dengan SHA-256 ECDSA dengan dan P-256 SHA-256 Tidak ada N/A
01 78 0x01 AES-GCM 256 HKDF dengan SHA-256 Tidak ada Tidak ada N/A
01 46 0x01 AES-GCM 192 HKDF dengan SHA-256 Tidak ada Tidak ada N/A
01 14 0x01 AES-GCM 128 HKDF dengan 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 Struktur 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 suite algoritma

Panjang dalam byte data khusus untuk rangkaian 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. Suite algoritma yang mendukung komitmen kunci menggunakan 32 byte untuk string komitmen kunci. Untuk informasi selengkapnya, lihat Algoritma komitmen utama dalam daftar ini.

Panjang kunci data

Panjang kunci data dalam bit. Men AWS Encryption SDK dukung kunci 256-bit, 192-bit, dan 128-bit. Kunci data dihasilkan oleh keyring atau kunci master.

Dalam beberapa implementasi, kunci data ini digunakan sebagai input ke fungsi derivasi kunci HMAC-based ekstrak-dan-perluas (HKDF). Output 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. Suite algoritma 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 kunci.

Untuk penjelasan teknis tentang menambahkan komitmen kunci ke rangkaian algoritma, lihat Key Comiting AEAD di Cryptology ePrint Archive.

Algoritma derivasi kunci

Fungsi derivasi HMAC-based kunci ekstrak-dan-perluas (HKDF) digunakan untuk memperoleh kunci enkripsi data. Menggunakan AWS Encryption SDK HKDF yang didefinisikan dalam RFC 5869.

Suite algoritma tanpa komitmen kunci (ID algoritma 01xx -03xx)

  • Fungsi hash yang digunakan adalah salah satu SHA-384 atau SHA-256, tergantung pada rangkaian algoritma.

  • Untuk langkah ekstrak:

    • Tidak ada garam yang digunakan. Menurut RFC, garam diatur ke untaian nol. Panjang string sama dengan panjang output fungsi hash, yaitu 48 byte untuk SHA-384 dan 32 byte untuk SHA-256.

    • Materi kunci input adalah kunci data dari keyring atau penyedia kunci utama.

  • 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 MessageID bidang.

    • Materi kunci awal adalah kunci data dari keyring atau penyedia kunci utama.

  • Untuk langkah perluasan:

    • Kunci pseudorandom input adalah output dari langkah ekstrak.

    • Label kunci adalah UTF-8-encoded byte 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 rangkaian algoritma. Lihat perinciannya di Referensi format pesan.

Algoritma tanda tangan

Algoritma tanda tangan yang digunakan untuk menghasilkan tanda tangan digital di atas header dan body ciphertext. Menggunakan AWS Encryption SDK Elliptic Curve Digital Signature Algorithm (ECDSA) dengan spesifikasi sebagai berikut:

  • Kurva elips yang digunakan adalah P-256 kurva P-384 atau, seperti yang ditentukan oleh ID algoritma. Kurva ini didefinisikan dalam Digital Signature Standard (DSS) (FIPS PUB 186-4).

  • Fungsi hash yang digunakan adalah SHA-384 (dengan P-384 kurva) atau SHA-256 (dengan P-256 kurva).