本頁使用了標題或全文手工轉換

AES指令集

維基百科,自由的百科全書
跳至導覽 跳至搜尋

進階加密標準指令集現已經整合到許多處理器中。應用程式執行進階加密標準(AES)時,使用該指令集提高加密和解密的速度(以及對側信道攻擊的抵抗能力)。

x86架構[編輯]

進階加密標準指令集(或稱英特爾進階加密標準新指令,簡稱AES-NI)是一個x86指令集架構的擴充,用於IntelAMD微處理器,由Intel在2008年3月提出。[1]該指令集的目的是改進應用程式使用進階加密標準(AES)執行加密和解密的速度。

指令[編輯]

指令 描述[2]
AESENC 執行一輪AES加密流
AESENCLAST 執行最後一輪AES加密流
AESDEC 執行一輪AES解密流
AESDECLAST 執行最後一輪AES解密流
AESKEYGENASSIST 協助生成AES輪迴金鑰
AESIMC 協助AES逆列混合
PCLMULQDQ 無進位乘法(CLMUL英語CLMUL instruction set[3]

Intel[編輯]

Intel支援AES-NI的處理器[4]

  • Intel Westmere架構處理器,具體如下:
    • Intel Westmere-EP (Xeon 56XX)(也稱Gulftown至強5600系列DP伺服器型號)處理器。
    • Intel Clarkdale處理器(酷睿i3、奔騰和賽揚除外)。
    • Intel Arrandale處理器(賽揚、奔騰、酷睿i3、酷睿i5-4XXM除外)。
  • Intel Sandy Bridge處理器。
    • 桌面:全部,奔騰、賽揚、酷睿i3除外[5][6]
    • 移動:酷睿i7和酷睿i5全部。一些供應商發售的BIOS組態已禁用該擴充[7],需要更新BIOS才能啟用它。[8]
  • Intel Ivy Bridge處理器
    • 僅所有i5、i7、至強和i3-2115C[9]
  • Intel Haswell處理器。(i3-4000M[10]、奔騰和賽揚除外)
  • Intel Skylake(和以後)處理器。

AMD[編輯]

其他架構中的硬件加速[編輯]

在最新的SPARC處理器(T4、T5、M5及之後)和最新的ARM處理器中也有非特權的處理器指令提供AES支援。2011年推出的SPARC T4處理器有用戶級指令實現AES輪迴。[12]這些指令補充了更進階別的加密命令。2011年宣佈的ARMv8-A處理器架構也有指令實現AES輪迴,這包括ARM Cortex-A53和A57,但不包括以前的v7處理器(如Cortex A5、7、8、9、11、15)。[13]2012年8月,IBM宣佈[14]即將到來的Power7+架構有望提供AES支援。這些架構中的命令不能直接與AES-NI命令相容,但可實現類似的功能。

IBM z9或更晚的主機處理器支援AES作為單操作碼(KM、KMC)AES ECB/CBC指令,使用IBM的CryptoExpress硬件。[15]這些單指令的AES版本比Intel NI更容易使用,但不能被擴充實現為基於AES輪迴函數的其他演算法,例如Whirlpool雜湊演算法。

x86 CPU的支援[編輯]

VIA x86 CPUAMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基於驅動程式的AES加速處理(另見Crypto API (Linux)英語Crypto API (Linux))。下列產品支援AES硬件加速,雖然不支援AES-NI指令集:

ARM架構[編輯]

其他架構[編輯]

效能[編輯]

在《AES-NI 效能分析》中,Patrick Schmid和Achim Roos 指出:「...少數已使用英特爾 AES-NI 進行最佳化的應用程式表現出了傲人成績」。 [23] 一次使用Crypto++英語Crypto++函數庫執行的效能分析顯示,相比沒有加速的Pentium 4, AES/GCM的吞吐量從大約每位元組28.0周期顯著提升至每位元組3.5周期。 [24][25]

軟件支援[編輯]

大多數現代編譯器能夠利用AES指令。

許多安全和加密軟件支援AES指令集,包括下列核心基礎設施:

參考[編輯]

參考資料[編輯]

  1. ^ Intel Software Network. Intel. [2008-04-05]. (原始內容存檔於2008年4月7日). 
  2. ^ Shay Gueron. Intel Advanced Encryption Standard (AES) Instruction Set White Paper. Intel. 2010 [2012-09-20]. (原始內容存檔於2012-10-29). 
  3. ^ Carry-Less Multiplication. Intel. [2016-05-14]. (原始內容存檔於2016-04-25). 
  4. ^ Intel® Product Specification Advanced Search. [2019-03-22]. (原始內容存檔於2019-09-18). 
  5. ^ AnandTech - The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested. [2016-05-14]. (原始內容存檔於2015-04-24). 
  6. ^ Compare Intel® Products. [2016-05-14]. (原始內容存檔於2016-04-25). 
  7. ^ AES-NI support in TrueCrypt (Sandy Bridge problem). [2016-05-14]. (原始內容存檔於2014-08-08). 
  8. ^ 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.. [2016-05-14]. (原始內容存檔於2011-08-13). 
  9. ^ 存档副本. [2016-05-14]. (原始內容存檔於2016-03-22). 
  10. ^ 存档副本. [2016-05-14]. (原始內容存檔於2017-09-04). 
  11. ^ Following Instructions. AMD. November 22, 2010 [2011-01-04]. (原始內容存檔於2010年11月26日). 
  12. ^ Dan Anderson. SPARC T4 OpenSSL Engine. Oracle. 2011 [2012-09-20]. (原始內容存檔於2012-11-03). 
  13. ^ Richard Grisenthwaite. ARMv8-A Technology Preview (PDF). ARM. 2011 [2012-09-20]. (原始內容 (PDF)存檔於2018-06-10). 
  14. ^ Timothy Prickett Morgan. All the sauce on Big Blue's hot chip: More on Power7+. The Register. 2012 [2012-09-20]. (原始內容存檔於2012-08-24). 
  15. ^ IBM System z10 cryptography. IBM. [2014-01-27]. (原始內容存檔於2014-02-01). 
  16. ^ AMD Geode™ LX Processor Family Technical Specifications. AMD. [2016-05-14]. (原始內容存檔於2014-01-30). 
  17. ^ VIA Padlock Security Engine. VIA. [2011-11-14]. (原始內容存檔於2011-05-15). 
  18. ^ 18.0 18.1 Cryptographic Hardware Accelerators 頁面存檔備份,存於互聯網檔案館 on OpenWRT.org 參照錯誤:帶有name屬性「openwrt」的<ref>標籤用不同內容定義了多次
  19. ^ VIA Eden-N Processors. VIA. [2011-11-14]. (原始內容存檔於2011-11-11). 
  20. ^ VIA C7 Processors. VIA. [2011-11-14]. (原始內容存檔於2007-04-19). 
  21. ^ Security System driver status. [2016-05-14]. (原始內容存檔於2016-05-14). 
  22. ^ Using the XMEGA built-in AES accelerator (PDF). [2014-12-03]. (原始內容存檔 (PDF)於2015-09-23). 
  23. ^ P. Schmid and A. Roos. AES-NI Performance Analyzed. Tom's Hardware. 2010 [2010-08-10]. 
  24. ^ T. Krovetz, W. Dai. How to get fast AES calls?. Crypto++ user group. 2010 [2010-08-11]. (原始內容存檔於2012-11-09). 
  25. ^ Crypto++ 5.6.0 Pentium 4 Benchmarks. Crypto++ Website. 2009 [2010-08-10]. (原始內容存檔於19 September 2010). 
  26. ^ Intel Advanced Encryption Standard Instructions (AES-NI). Intel. March 2, 2010 [2010-07-11]. (原始內容存檔於7 July 2010). 
  27. ^ AES-NI enhancements to NSS on Sandy Bridge systems. 2012-05-02 [2012-11-25]. (原始內容存檔於2014-04-13). 
  28. ^ System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview). Oracle. September 2010 [2012-11-27]. (原始內容存檔於2012-02-07). 
  29. ^ FreeBSD 8.2 Release Notes. FreeBSD.org. 2011-02-24 [2011-12-18]. (原始內容存檔於2011-04-12). 
  30. ^ OpenSSL: CVS Web Interface Archive.is存檔,存檔日期2012-07-07

外部連結[編輯]