Pengenalan XAES-256-GCM
- XAES-256-GCM adalah algoritma authenticated encryption (AEAD) yang menggunakan kunci 256-bit dan nonce 192-bit
- Tujuan utama:
- Mendukung nonce yang dibuat secara acak dengan aman
- Mematuhi FIPS 140
- Dapat diimplementasikan dengan mudah di pustaka kriptografi umum
Tujuan desain XAES-256-GCM
- Menggunakan nonce besar agar dapat dibuat secara acak dengan aman untuk jumlah pesan tak terbatas
- Dapat digunakan di berbagai lingkungan melalui kepatuhan FIPS 140
- Mengurangi beban pengguna melalui implementasi yang sederhana
Cara kerja XAES-256-GCM
- Menggunakan struktur nonce yang diperluas berbasis AES-256-GCM
- Menghitung kunci turunan menggunakan kunci masukan dan nonce
- Memproses pesan dengan tiga kali pemanggilan AES-256
Implementasi dan optimisasi
- Implementasi referensi Go terdiri dari kurang dari 100 baris kode
- Hanya menggunakan crypto/cipher dan crypto/aes dari pustaka standar
- Dapat dijelaskan menggunakan NIST SP 800-108r1 KDF dan NIST AES-256-GCM AEAD
Implementasi pihak ketiga dan kompatibilitas
- Terdapat implementasi pihak ketiga di .NET 8+, pyca/cryptography, dan Web Cryptography API
- Jumlah ronde tidak dapat diubah demi kepatuhan FIPS 140
Alternatif dan vektor uji
- Tersedia berbagai alternatif seperti AES-GCM-SIV
- Menyertakan vektor uji untuk jalur kode utama
Ringkasan
- XAES-256-GCM dirancang sebagai AEAD yang aman, patuh, dan interoperabel
- Berperan melengkapi XChaCha20Poly1305 dan AES-GCM-SIV
- Diharapkan dapat ditambahkan ke pustaka standar Go
Opini GN⁺
- XAES-256-GCM menonjol karena meningkatkan keamanan dengan menggunakan nonce besar
- Dapat digunakan di berbagai lingkungan melalui kepatuhan FIPS 140
- Berguna bagi pengembang karena mudah diimplementasikan dalam bahasa seperti Go
- Alternatif seperti AES-GCM-SIV juga layak dipertimbangkan
- Saat mengadopsi teknologi baru, kinerja dan kompatibilitas perlu ditinjau dengan cermat
1 komentar
Komentar Hacker News
Desainnya sangat cerdas: berbasis CMAC, sehingga dapat menurunkan kunci menggunakan AES-CBC ketika primitive level rendah tidak tersedia
Pekerjaan Filippo sangat bagus: ini menyelesaikan masalah bahwa saat menggunakan nonce acak, kunci harus dirotasi setiap sekitar 2^32 pesan
Andai fitur ini sudah ada beberapa tahun lalu saat menulis file system terenkripsi
Semoga fitur ini digunakan dalam age[1] varian patuh FIPS untuk keperluan enkripsi file arsip
Pertanyaan dari non-kriptografer: penasaran mengapa memakai nonce 192-bit dan bukan 256-bit
(risiko tabrakan 2⁻³² pada 2⁸⁰ pesan)