Set instruksi AES
Set instruksi Standar Enkripsi Lanjutan (set instruksi AES) adalah set instruksi yang bertujuan untuk mempercepat enkripsi dan dekripsi Standar Enkripsi Lanjutan (AES), sekaligus melindungi dari serangan saluran samping. Set instruksi ini telah digabungkan ke dalam banyak prosesor. Biasanya, operasi ini diimplementasikan dalam instruksi satu ronde tunggal dan satu ronde terakhir yang sedikit berbeda cara kerjanya.
Prosesor arsitektur x86
suntingAES-NI (Advanced Encryption Standard New Instructions milik Intel) adalah implementasi besar pertama. AES-NI adalah perluasan dari set instruksi x86 untuk mikroprosesor dari Intel dan AMD yang diusulkan oleh Intel pada Maret 2008.[1]
Daftar instruksi
suntingInstruksi | Penjelasan[2] |
---|---|
AESENC
|
Menjalankan satu ronde enkripsi AES |
AESENCLAST
|
Menjalankan ronde terakhir enkripsi AES |
AESDEC
|
Menjalankan satu ronde dekripsi AES |
AESDECLAST
|
Menjalankan ronde terakhir dekripsi AES |
AESKEYGENASSIST
|
Membantu dalam pembuatan kunci ronde AES[catatan 1] |
AESIMC
|
Membantu dalam InverseMixColumns Rijndael |
Intel
suntingProsesor Intel berikut mendukung set instruksi AES-NI:[3]
- Keluarga Westmere, khususnya
- Keluarga Sandy Bridge
- Keluarga Ivy Bridge
- Semua i5, i7, Xeon, dan i3-2115C[8] saja
- Keluarga Haswell (semua, kecuali i3-4000m,[9] Pentium, dan Celeron)
- Keluarga Broadwell (semua, kecuali Pentium dan Celeron)
- Keluarga Silvermont/Airmont (semua, kecuali Bay Trail-D dan Bay Trail-M)
- Keluarga Goldmont (dan seterusnya)
- Keluarga Skylake (dan seterusnya)
AMD
suntingBeberapa prosesor AMD berikut mendukung instruksi AES:
- Keluarga Jaguar dan yang lebih baru
- Keluarga Puma dan yang lebih baru
- Prosesor "Heavy Equipment"
- Keluarga Bulldozer[10]
- Keluarga Piledriver
- Keluarga Steamroller
- Keluarga Excavator dan yang lebih baru
- Keluarga Zen (dan seterusnya)
Percepatan perangkat keras dalam arsitektur lain
suntingBagian ini kosong. Anda bisa membantu dengan melengkapinya. |
Kinerja
suntingDalam AES-NI Performance Analyzed, Patrick Schmid dan Achim Roos menemukan "hasil yang memukau dari aplikasi-aplikasi yang telah dioptimalkan untuk menggunakan kemampuan AES-NI Intel".[11]
Dukungan perangkat lunak
suntingKebanyakan kompilator modern dapat menghasilkan instruksi AES.
Kebanyakan perangkat lunak keamanan dan kriptografi mendukung set instruksi AES:
- BitLocker[12]
- Cryptography API: Next Generation (CNG) milik Microsoft (butuh Windows 7)[13]
- Crypto API milik Linux
- FileVault 2 milik Apple dalam macOS 10.10+
- FLAM/FLUC 5.1.08 (dirilis 24 Agustus 2015) ke atas[14]
- GnuTLS[15]
- Go[16]
- HotSpot di Java 7
- Layanan Keamanan Jaringan (NSS) versi 3.13 ke atas[17] (dipakai oleh Firefox dan Google Chrome)
- Libsodium[18]
- OpenCrypto API milik FreeBSD (pengandar aesni(4))[19]
- OpenSSL 1.0.1 ke atas[20]
- Solaris Cryptographic Framework[21] pada Solaris 10 ke atas
- VeraCrypt[22]
- Bloombase Cryptographic Module
Lihat pula
sunting- Advanced Vector Extensions (AVX)
- Set instruksi CLMUL
- Set instruksi FMA (FMA3, FMA4)
RDRAND
Catatan
sunting- ^ Instruksi ini menghitung 4 perintah paralel perluasan kunci AES dalam empat kata 32 bit dalam double quadword (register SSE) pada bit X[127:96] untuk dan X[63:32] untuk saja. Dua substitusi paralel kotak-S AES dan dipakai dalam AES-256 serta dua perintah dan dipakai dalam AES-128, AES-192, dan AES-256.
Referensi
sunting- ^ "Intel Software Network". Intel. Diarsipkan dari versi asli tanggal 7 April 2008. Diakses tanggal 5 April 2008.
- ^ Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Diakses tanggal 20 September 2012.
- ^ "Intel Product Specification Advanced Search". Intel ARK.
- ^ Shimpi, Anand Lal. "The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested".
- ^ "Intel Product Specification Comparison". Intel ARK.
- ^ "AES-NI support in TrueCrypt (Sandy Bridge problem)".
- ^ "Intel® Core™ i5-2410M Processor (3M Cache, up to 2.90 GHz) Product Specifications".
Some products can support AES New Instructions with a Processor Configuration update, in particular, i7-2630QM/i7-2635QM, i7-2670QM/i7-2675QM, i5-2430M/i5-2435M, i5-2410M/i5-2415M. Please contact OEM for the BIOS that includes the latest Processor configuration update.
- ^ "Intel Core i3-2115C Processor (3M Cache, 2.00 GHz) Product Specifications".
- ^ "Intel Core i3-4000M Processor (3M Cache, 2.40 GHz) Product Specifications". Intel ARK.
- ^ "Following Instructions". AMD. 22 November 2010. Diarsipkan dari versi asli tanggal 26 November 2010. Diakses tanggal 4 Januari 2011.
- ^ P. Schmid dan A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Diakses tanggal 10 Agustus 2010.
- ^ Shimpi, Anand Lal. "The Clarkdale Review: Intel's Core i5 661, i3 540 & i3 530". www.anandtech.com. Diakses tanggal 26 Juni 2020.
- ^ "Intel Advanced Encryption Standard Instructions (AES-NI)". Intel. 2 Maret 2010. Diarsipkan dari versi asli tanggal 7 Juli 2010. Diakses tanggal 11 Juli 2010.
- ^ "www.flam.de :: Products". flam.de.
- ^ "Cryptographic Backend (GnuTLS 3.6.14)". gnutls.org. Diakses tanggal 26 Juni 2020.
- ^ "aes - The Go Programming Language". golang.org. Diakses tanggal 2020-06-26.
- ^ "AES-NI enhancements to NSS on Sandy Bridge systems". 2 Mei 2012. Diakses tanggal 25 November 2012.
- ^ "AES-GCM in libsodium". libsodium.org.
- ^ "FreeBSD 8.2 Release Notes". FreeBSD.org. 24 Februari 2011. Diarsipkan dari versi asli tanggal 2011-04-12. Diakses tanggal 18 Desember 2011.
- ^ "OpenSSL: CVS Web Interface". Diarsipkan dari versi asli tanggal 7 Juli 2012.
- ^ "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Diakses tanggal 27 November 2012.
- ^ "Hardware Acceleration". www.veracrypt.fr.
Pranala luar
sunting- (Inggris) Intel Advanced Encryption Standard Instructions (AES-NI)
- (Inggris) AES instruction set whitepaper (2,93 MiB, PDF) dari Intel