ชุดคำสั่งเครื่องเออีเอส

ชุดคำสั่งเครื่องเออีเอส (Advanced Encryption Standard instruction set, AES instruction set, AES-NI) ปัจจุบันได้ประกอบเข้ากับซีพียูหลายอย่าง
เพื่อเร่งความเร็วให้แก่โปรแกรมประยุกต์ที่เข้ารหัสลับและถอดรหัสลับโดยใช้ Advanced Encryption Standard (AES) และเพื่อให้ทนการโจมตีแบบ side-channel attack
ปกติจะทำให้เกิดผลโดยเป็นชุดคำสั่งเครื่องซึ่งคำนวณ AES รอบหนึ่ง โดยรอบสุดท้ายมีวิธีพิเศษที่ต่างกันเล็กน้อย

**ซีพียูสถาปัตยกรรม x86**
AES-NI (หรือ Advanced Encryption Standard New Instructions AES-NI ของอินเทล) เป็นการทำให้เกิดผลซึ่งชุดคำสั่งเครื่องเออีเอสเป็นอันแรก
AES-NI เป็นชุดคำสั่งเพิ่ม (extension) ของ x86 instruction set architecture สำหรับไมโครโพรเซสเซอร์ของอินเทลและของเอเอ็มดี เป็นชุดคำสั่งที่อินเทลเป็นผู้เสนอในเดือนมีนาคม 2008 

**ชุดคำสั่ง**

**อินเทล**
ซีพียูของอินเทลดังต่อไปนี้สนับสนุนชุดคำสั่งเครื่องเออีเอส- ซีพียูที่ใช้สถาปัตยกรรมไมโคร Westmere โดยเฉพาะก็คือ
** ซีพียู Westmere-EP (Xeon 56xx) (หรือที่รู้จักว่า Gulftown Xeon 5600-series DP server model) 
** ซีพียู Clarkdale (ยกเว้น เพนเทียม, เซเลรอน, Core i3)
** ซีพียู Arrandale (ยกเว้น เพนเทียม, เซเลรอน, Core i3, Core i5-4XXM)- ซีพียูที่ใช้สถาปัตยกรรมไมโคร Sandy Bridge รวมทั้ง 
** คอมพิวเตอร์แบบตั้งโต๊ะ - ทั้งหมดยกเว้นเพนเทียม, เซเลรอน, Core i3
** คอมพิวเตอร์แบบเคลื่อนที่ (mobile) : Core i7 และ Core i5 ทั้งหมด แต่มีผู้จำหน่ายผลิตภัณฑ์ซึ่งมีไบออสที่ระงับชุดคำสั่งไม่ให้ทำงาน จึงต้องอัปเดตไบออสเพื่อเปิดชุดคำสั่ง- ซีพียู Ivy Bridge 
** i5, i7 และ Xeon ทั้งหมดแต่ i3-2115C เท่านั้น- ซีพียู Haswell (ทั้งหมดยกเว้น i3-4000m, เพนเทียมและเซเลรอน)- ซีพียู Broadwell (ทั้งหมดยกเว้นเพนเทียมและเซเลรอน)- ซีพียู Silvermont/Airmont (ทั้งหมดยกเว้น Bay Trail-D และ Bay Trail-M)- ซีพียู Goldmont- ซีพียู Skylake - ซีพียู Kaby Lake - ซีพียู Coffee Lake 

**เอเอ็มดี**
มีซีพียูเอเอ็มดีหลายอย่างที่สนับสนุนชุดคำสั่งเครื่องเออีเอส- ซีพียูที่ใช้สถาปัตยกรรมไมโคร Jaguar และที่ใหม่กว่านั้น- ซีพียู Puma และที่ใหม่กว่านั้น- ซีพียู "Heavy Equipment" (ที่ใช้ชื่อเป็นเครื่อง/อุปกรณ์ก่อสร้าง)
** ซีพียู Bulldozer
** ซีพียู Piledriver
** ซีพียู Steamroller
** ซีพียู Excavator และที่ใหม่กว่า- ซีพียู Zen- ซีพียู Zen+

**การเร่งความเร็วในฮาร์ดแวร์ของสถาปัตยกรรมอื่น ๆ**
ซีพียู SPARC (T3, T4, T5, M5 และต่อจากนั้น) และซีพียู ARM ล่าสุด ๆ ล้วนสนับสนุนเออีเอ็สด้วยชุดคำสั่งที่ไม่ต้องมีเอกสิทธิ์ (unprivileged processor instructions) 
ซีพียู SPARC T4 ที่วางตลาดในปี 2011 มีชุดคำสั่งระดับผู้ใช้ (user-level instruction) ซึ่งช่วยคำนวณรอบ AES
โดยเป็นชุดคำสั่งนอกเหนือไปจากคำสั่งเข้ารหัส (encryption commands) ในระดับสูงกว่านั้น 
สถาปัตยกรรมซีพียู ARMv8-A ที่ประกาศในปี 2011 รวมทั้ง ARM Cortex-A53 และ A57 
(แต่ไม่รวมซีพียู v7 ก่อนหน้านั้น เช่น Cortex A5, 7, 8, 9, 11, 15)
ก็มีชุดคำสั่งระดับผู้ใช้ซึ่งช่วยคำนวณรอบเออีเอส
ในเดือนสิงหาคม 2012 ไอบีเอ็มประกาศว่า
ซีพียู Power7+ ที่กำลังออกวางตลาดจะมีชุดคำสั่งสนับสนุนเออีเอส
แต่ก็ใช้แทนซึ่งกันและกันกับชุดคำสั่ง AES-NI ไม่ได้ แม้จะมีฟังก์ชันคล้าย ๆ กัน
ซีพียูเมนเฟรมคอมพิวเตอร์ไอบีเอ็ม z9 และต่อจากนั้นสนับสนุนเออีเอสด้วยอ็อปโค๊ด (opcode) เดี่ยว ๆ ผ่านฮาร์ดแวร์ CryptoExpress
จึงใช้ง่ายกว่าชุดคำสั่งของอินเทล แต่ก็ไม่อาจต่อเติมเพื่อทำให้เกิดผลซึ่งขั้นตอนวิธีที่พึ่ง AES round functions อื่น ๆ (เช่น ฟังก์ชันแฮช Whirlpool )

**ซีพียู x86 อื่น ๆ**
ซีพียู VIA x86, AMD Geode และ Marvell Kirkwood (ARM, mv_cesa สำหรับลินุกซ์) สนับสนุนการเร่งคำนวณเออีเอสด้วยโปรแกรมขับแทน (driver-based)
ซีพียูต่อไปนี้แม้จะมีชุดคำสั่งเร่งการคำนวณเออีเอส แต่ก็ไม่สนับสนุน AES-NI- ซีพียู AMD Geode LX- VIA
** VIA PadLock
*** ซีพียู VIA C3 Nehemiah C5P (Eden-N)
*** ซีพียู VIA C7 Esther C5J

**สถาปัตยกรรม ARM**
 สถาปัตยกรรม ARMv8
** ARM Cortex-A30/50/70 สนับสนุน ARM cryptographic extensions โดยเป็นทางเลือก- Cryptographic hardware accelerators/engines
** Allwinner
*** A10, A20, A30, A31, A80, A83T, H3 และ A64 โดยใช้ Security System
** Broadcom
*** BCM5801/BCM5805/BCM5820 โดยใช้ Security Processor
** NXP Semiconductors
*** i.MX6 และต่อจากนั้น
** ควอลคอมม์
*** Snapdragon 805 และต่อจากนั้น
** Rockchip
*** RK30xx series และต่อจากนั้น
** ซัมซุง
*** Exynos 3 series และต่อจากนั้น

**สถาปัตยกรรมอื่น ๆ**
 Atmel XMEGA (เป็นวงจรเร่งความเร็วบนชิปที่ทำงานอย่างขนาน ไม่ใช่ชุดคำสั่ง )- SPARC T3 และต่อจากนั้นสนับสนุนขั้นตอนวิธีการเข้ารหัสหลายอย่างในฮาร์ดแวร์รวมทั้งเออีเอส- ซีพียู Cavium Octeon MIPS ทั้งหมดสนับสนุนขั้นตอนวิธีการเข้ารหัสหลายอย่างในฮาร์ดแวร์รวมทั้งเออีเอสโดยใช้ชุดคำสั่งพิเศษ coprocessor 3

**สมรรถนะ/ความเร็ว**
ในบทความ "สมรรถนะของ AES-NI วิเคราะห์" นักสื่อข่าวได้พบ "ผลที่น่าประทับใจจากโปรแกรมประยุกต์กำมือหนึ่งที่ได้ทำให้เหมาะสุดเพื่อใช้สมรรถภาพของ AES-NI จากอินเทล"
การวิเคราะห์สมรรถนะด้วยคลังโปรแกรมโอเพนซอร์ซ Crypto++ พบปริมาณงาน (throughput) ที่เพิ่มขึ้นเป็น 8 เท่า คือลดไซเคิลซีพียูในการคำนวณจาก 28 ไซเคิลต่อไบต์เหลือแค่ 3.5 ไซเคิลต่อไบต์ เมื่อใช้ AES/ Galois/Counter Mode  โดยเทียบกับเพนเทียม 4 date = December 2017

**ซอฟต์แวร์ที่สนับสนุน**
คอมไพเลอร์ปัจจุบันโดยมากสามารถออกชุดคำสั่งเออีเอส
ซอฟต์แวร์ความปลอดภัยและการเข้ารหัสลับโดยมากสนับสนุนชุดคำสั่งนี้ รวมทั้งโครงสร้างพื้นฐานสำคัญ ๆ ดังต่อไปนี้- Cryptography API: Next Generation (CNG) (ต้องใช้ไมโครซอฟท์ วินโดวส์)- Crypto API (ลินุกซ์)- จาวา 7 HotSpot- Network Security Services (NSS) เวอร์ชัน 3.13 และต่อจากนั้น (ซึ่งมอซิลลา ไฟร์ฟอกซ์ และกูเกิล โครม ใช้)- Solaris Cryptographic Framework สำหรับโซลาริส 10 และต่อจากนั้น- OpenCrypto API (aesni (4) driver) สำหรับฟรีบีเอสดี- OpenSSL 1.0.1 และต่อจากนั้น- GnuTLS- FLAM/FLUC 5.1.08 (ฉบับ 2015-08-24) และต่อจากนั้น- VeraCrypt- Bloombase

**เชิงอรรถ**

**อ้างอิง**

**แหล่งข้อมูลอื่น**
  Intel Advanced Encryption Standard Instructions (AES-NI)-  AES instruction set whitepaper (4.4 MB, PDF) from Intel
หมวดหมู่:X86 architecture
หมวดหมู่:X86 instructions	
หมวดหมู่:Advanced Micro Devices technologies
หมวดหมู่:เออีเอส