Peningkatan performa AES-XTS (XEX-based Tweakable Block Cipher with Ciphertext Stealing)
Puntih - Pada CPU Intel dan AMD, terutama dengan dukungan instruksi seperti AVX-512 dan VAES, telah menjadi fokus pengembangan kriptografi dalam beberapa tahun terakhir. AES-XTS sendiri umumnya digunakan untuk enkripsi data berbasis sektor, seperti enkripsi disk penuh (Full Disk Encryption/FDE).
![]() |
| Credit : Medium |
Berikut adalah detail dukungan CPU dan arsitektur untuk Faster AES-XTS:
1. Instruksi dan Teknologi Kunci:
AES-NI (Advanced Encryption Standard New Instructions): Ini adalah set instruksi dasar yang diperkenalkan oleh Intel (dan kemudian diimplementasikan oleh AMD) yang mempercepat operasi AES secara *hardware*. Ini adalah fondasi untuk performa AES yang lebih baik.
AVX (Advanced Vector Extensions) dan AVX2: Instruksi vektor ini memungkinkan CPU untuk memproses beberapa operasi data secara paralel (SIMD - Single Instruction, Multiple Data). Penggunaan AVX bersama AES-NI dapat memberikan dorongan performa yang signifikan dibandingkan hanya AES-NI saja.
VAES (Vector AES Instructions): Ini adalah ekstensi instruksi yang lebih baru yang secara khusus mengoptimalkan operasi AES pada data vektor. Ini memberikan peningkatan performa yang sangat besar untuk AES, termasuk AES-XTS.
AVX-512: Set instruksi vektor terluas yang tersedia saat ini, memungkinkan operasi data 512-bit tunggal. Ketika digabungkan dengan VAES, AVX-512 dapat memberikan performa AES-XTS yang sangat cepat karena kemampuannya untuk memproses lebih banyak blok data secara paralel.
2. Dukungan pada CPU Intel
CPU Lama (misalnya, Skylake, Cascade Lake): CPU ini mendapatkan peningkatan performa AES-XTS dengan implementasi yang menggunakan AES-NI dan AVX (tanpa VAES). Peningkatan bisa berkisar 4% hingga 31% tergantung ukuran pesan.
Intel Ice Lake dan yang Lebih Baru: Ini adalah CPU Intel pertama yang mendukung ekstensi "VAES". Dengan VAES, peningkatan performa AES-XTS sangat drastis, mencapai 120% hingga 127% pada Ice Lake.
Intel Sapphire Rapids: CPU server ini memiliki dukungan AVX-512 yang kuat dan juga mendapatkan keuntungan besar dari implementasi AES-XTS yang dioptimalkan. Peningkatan performa pada Sapphire Rapids bisa mencapai lebih dari 150% dibandingkan implementasi lama.
AVX-512 dan Frekuensi CPU: Penting untuk dicatat bahwa pada beberapa CPU Intel yang lebih lama, penggunaan AVX-512 dapat menyebabkan penurunan frekuensi CPU (throttling) yang dapat mengurangi keuntungan performa. Namun, pada arsitektur yang lebih baru seperti Sapphire Rapids, dampak ini lebih kecil atau diatasi.
AVX10: Intel memperkenalkan AVX10 sebagai penerus AVX-512, yang bertujuan untuk menyederhanakan deteksi instruksi dan memastikan dukungan AVX-512 yang konsisten di seluruh inti P-core dan E-core di masa depan. Versi awal AVX10 (AVX10.1) setara dengan AVX-512 yang didukung oleh Sapphire Rapids.
3. Dukungan pada CPU AMD
AMD Zen 3 (2020) dan yang Lebih Baru: CPU AMD mulai mendukung ekstensi "VAES" pada arsitektur Zen 3. Ini memberikan dorongan performa yang signifikan untuk AES-XTS.
AMD Zen 4. Ini adalah arsitektur AMD yang paling diuntungkan dari optimasi AES-XTS yang lebih baru, terutama karena dukungan AVX-512 mereka yang tidak terpengaruh oleh penurunan frekuensi seperti beberapa CPU Intel. Peningkatan performa pada AMD Zen 4 bisa mencapai hingga 155% lebih cepat untuk pesan 4096-byte dengan AES-256-XTS. Ini berlaku untuk seluruh jajaran Zen 4, dari Ryzen 7000 series hingga prosesor server EPYC 8004/9004.
AMD Zen 5: Prosesor Zen 5 juga terus mendapatkan optimasi AES-XTS, dengan peningkatan performa sekitar 2% untuk pesan 4096-byte atau 6% untuk pesan 512-byte dibandingkan dengan optimasi sebelumnya.
Mesin Enkripsi AES-XTS Terintegrasi: Prosesor AMD EPYC generasi ke-4 dan ke-5 memiliki mesin enkripsi AES-XTS 256-bit yang terintegrasi langsung ke dalam pengontrol memori. Ini membantu mengurangi dampak performa saat membaca dan menulis memori terenkripsi.
4. Peran Kernel Linux (dan Sistem Operasi Lainnya)
Peningkatan performa AES-XTS ini sebagian besar berasal dari optimasi perangkat lunak pada tingkat kernel. Misalnya, kernel Linux versi 6.10 dan 6.14 telah membawa peningkatan yang signifikan untuk AES-XTS pada CPU modern Intel dan AMD, berkat kerja keras para pengembang seperti Eric Biggers dari Google.
Optimasi ini melibatkan teknik seperti:
Vectorization: Memanfaatkan instruksi AVX/AVX-512 untuk memproses banyak blok secara paralel.Interleaving Data: Mengatur blok di seluruh register AVX-512 512-bit.
Loop Unrolling: Mengurangi overhead kontrol loop untuk buffer besar.
Parallel Tweak Computation Menghasilkan tweak untuk beberapa blok sekaligus.
Runtime Dispatch: Secara otomatis memilih jalur kode yang optimal (misalnya, AVX-512 atau AVX2) berdasarkan dukungan CPU.
Secara ringkas, CPU Intel dan AMD modern dengan dukungan VAES dan/atau AVX-512 menawarkan performa AES-XTS yang jauh lebih cepat berkat instruksi hardware khusus dan optimasi perangkat lunak pada kernel. Ini sangat menguntungkan aplikasi yang mengandalkan enkripsi berbasis blok, seperti enkripsi disk penuh.

Posting Komentar