Berikut adalah detail dukungan CPU dan arsitektur untuk Faster AES-XTS

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.

Post a Comment

Lebih baru Lebih lama

Formulir Kontak