ชุดคำสั่งเครื่องเออีเอส
ชุดคำสั่งเครื่องเออีเอส (อังกฤษ: 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
ชุดคำสั่ง
คำสั่ง | รายละเอียด |
---|---|
AESENC | เข้ารหัสลับ AES 1 รอบ |
AESENCLAST | เข้ารหัสลับ AES รอบสุดท้าย |
AESDEC | ถอดรหัสลับ AES 1 รอบ |
AESDECLAST | ถอดรหัสลับ AES รอบสุดท้าย |
AESKEYGENASSIST | ช่วยสร้าง AES round key |
AESIMC | ช่วยทำ AES Inverse Mix Columns |
PCLMULQDQ | การคูณโดยไม่ทด - Carryless multiply (CLMUL) |
อินเทล
ซีพียูของอินเทลดังต่อไปนี้สนับสนุนชุดคำสั่งเครื่องเออีเอส
- ซีพียูที่ใช้สถาปัตยกรรมไมโคร Westmere โดยเฉพาะก็คือ
- ซีพียูที่ใช้สถาปัตยกรรมไมโคร 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
- VIA PadLock
สถาปัตยกรรม ARM
- สถาปัตยกรรม ARMv8
- ARM Cortex-A30/50/70 สนับสนุน ARM cryptographic extensions โดยเป็นทางเลือก
- Cryptographic hardware accelerators/engines
สถาปัตยกรรมอื่น ๆ
- Atmel XMEGA (เป็นวงจรเร่งความเร็วบนชิปที่ทำงานอย่างขนาน ไม่ใช่ชุดคำสั่ง )
- SPARC T3 และต่อจากนั้นสนับสนุนขั้นตอนวิธีการเข้ารหัสหลายอย่างในฮาร์ดแวร์รวมทั้งเออีเอส
- ซีพียู Cavium Octeon MIPS ทั้งหมดสนับสนุนขั้นตอนวิธีการเข้ารหัสหลายอย่างในฮาร์ดแวร์รวมทั้งเออีเอสโดยใช้ชุดคำสั่งพิเศษ coprocessor 3
สมรรถนะ/ความเร็ว
ในบทความ "สมรรถนะของ AES-NI วิเคราะห์" นักสื่อข่าวได้พบ "ผลที่น่าประทับใจจากโปรแกรมประยุกต์กำมือหนึ่งที่ได้ทำให้เหมาะสุดเพื่อใช้สมรรถภาพของ AES-NI จากอินเทล" การวิเคราะห์สมรรถนะด้วยคลังโปรแกรมโอเพนซอร์ซ Crypto++ พบปริมาณงาน (throughput) ที่เพิ่มขึ้นเป็น 8 เท่า คือลดไซเคิลซีพียูในการคำนวณจาก 28 ไซเคิลต่อไบต์เหลือแค่ 3.5 ไซเคิลต่อไบต์ เมื่อใช้ AES/GCM โดยเทียบกับเพนเทียม 4[ต้องการแหล่งอ้างอิงดีกว่านี้]
ซอฟต์แวร์ที่สนับสนุน
คอมไพเลอร์ปัจจุบันโดยมากสามารถออกชุดคำสั่งเออีเอส ซอฟต์แวร์ความปลอดภัยและการเข้ารหัสลับโดยมากสนับสนุนชุดคำสั่งนี้ รวมทั้งโครงสร้างพื้นฐานสำคัญ ๆ ดังต่อไปนี้
- 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
เชิงอรรถ
- ในวิทยาการเข้ารหัสลับ side-channel attack หมายถึงการโจมตีใดก็ได้ที่ใช้ข้อมูลจากการทำให้เกิดผลบนเครื่องเข้ารหัสลับ แทนที่จะใช้กำลังล้วน ๆ (brute force) หรือหาจุดอ่อนทางทฤษฎีของขั้นตอนวิธีการเข้ารหัสลับ ยกตัวอย่าง เช่น ข้อมูลเกี่ยวกับช่วงเวลา การใช้พลังงาน การรั่วไหลของรังสีแม่เหล็กไฟฟ้า หรือแม้แต่เสียงก็อาจให้ข้อมูลเพิ่มเพื่อถือโอกาสใช้เจาะทำลายระบบ
อ้างอิง
- . Intel. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2008-04-07. สืบค้นเมื่อ 2008-04-05. Unknown parameter
|deadurl=
ignored (help) - Gueron, Shay (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. สืบค้นเมื่อ 2012-09-20.
- "Carry-Less Multiplication". Intel.
- "Intel® Product Specification Advanced Search". Intel® ARK (Product Specs).
- Shimpi, Anand Lal. "The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested".
- "Intel® Product Specification Comparison".
- "AES-NI support in TrueCrypt (Sandy Bridge problem)". forum.notebookreview.com.
- "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® ARK (Product Specs).
- "Intel® Core™ i3-2115C Processor (3M Cache, 2.00 GHz) Product Specifications". Intel® ARK (Product Specs).
- "Intel® Core™ i3-4000M Processor (3M Cache, 2.40 GHz) Product Specifications". Intel® ARK (Product Specs).
- . AMD. 2010-11-22. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2010-11-26. สืบค้นเมื่อ 2011-01-04. Unknown parameter
|deadurl=
ignored (help) - Anderson, Dan (2011). "SPARC T4 OpenSSL Engine". Oracle. สืบค้นเมื่อ 2012-09-20.
- Grisenthwaite, Richard (2011). "ARMv8-A Technology Preview" (PDF). ARM. สืบค้นเมื่อ 2012-09-20.
- Morgan, Timothy Prickett (2012). "All the sauce on Big Blue's hot chip: More on Power7+". The Register. สืบค้นเมื่อ 2012-09-20.
- "IBM System z10 cryptography". IBM. สืบค้นเมื่อ 2014-01-27.
- "AMD Geode™ LX Processor Family Technical Specifications". AMD.
- "VIA Padlock Security Engine". VIA. สืบค้นเมื่อ 2011-11-14.
- ↑ "Cryptographic Hardware Accelerators". OpenWRT.org.
- . VIA. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2011-11-11. สืบค้นเมื่อ 2011-11-14. Unknown parameter
|deadurl=
ignored (help) - "VIA C7 Processors". VIA. สืบค้นเมื่อ 2011-11-14.
- . sunxi.montjoie.ovh. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2019-01-28. Unknown parameter
|deadurl=
ignored (help) - "Linux Cryptographic Acceleration on an i.MX6" (PDF). Linux Foundation. February 2017.
- "Cryptographic module in Snapdragon 805 is FIPS 140-2 certified". Qualcomm. 2014-11-07.
- "RK3128 - Rockchip Wiki". Rockchip wiki.
- "The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC". AnandTech.
- "Using the XMEGA built-in AES accelerator" (PDF). Atmel. สืบค้นเมื่อ 2014-12-03.
- "Cavium Networks Launches Industry's Broadest Line of Single and Dual Core MIPS64®-based OCTEON™ Processors Targeting Intelligent Next Generation Networks". Cavium. สืบค้นเมื่อ 2016-09-17.
- Schmid, Patrick; Roos, Achim (2010). "AES-NI Performance Analyzed". Tom's Hardware. สืบค้นเมื่อ 2010-08-10.CS1 maint: multiple names: authors list (link)
- T. Krovetz, W. Dai (2010). "How to get fast AES calls?". Crypto++ user group. สืบค้นเมื่อ 2010-08-11.
- . Crypto++ Website. 2009. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2010-09-19. สืบค้นเมื่อ 2010-08-10. Unknown parameter
|deadurl=
ignored (help) - . Intel. 2010-03-02. คลังข้อมูลเก่า เก็บจาก แหล่งเดิม เมื่อ 2010-07-07. สืบค้นเมื่อ 2010-07-11. Unknown parameter
|deadurl=
ignored (help) - "AES-NI enhancements to NSS on Sandy Bridge systems". 2012-05-02. สืบค้นเมื่อ 2012-11-25.
- "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. สืบค้นเมื่อ 2012-11-27.
- "FreeBSD 8.2 Release Notes". FreeBSD.org. 2011-02-24. สืบค้นเมื่อ 2011-12-18.
- OpenSSL: CVS Web Interface[ลิงก์เสีย]
- "www.flam.de :: Products". flam.de.
- "Hardware Acceleration". www.veracrypt.fr.
แหล่งข้อมูลอื่น
- Intel Advanced Encryption Standard Instructions (AES-NI)
- AES instruction set whitepaper (4.4 MB, PDF) from Intel