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

  • AMD
    • AMD Ryzen处理器。
    • AMD Bulldozer处理器。[11]
    • AMD Piledriver处理器。
    • AMD Steamroller处理器。
    • AMD Jaguar处理器。
    • AMD Puma英语Puma (microarchitecture)处理器。

其他架构中的硬件加速

在最新的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++函式庫执行的性能分析显示,相比没有加速的Pentium 4, AES/GCM英语Galois/Counter_Mode的吞吐量从大约每字节28.0周期显著提升至每字节3.5周期。 [24][25]

软件支持

大多数现代编译器能够利用AES指令。

许多安全和加密软件支持AES指令集,包括下列核心基础设施:

参考

参考资料

  1. ^ Intel Software Network. Intel. [2008-04-05]. (原始内容存档于2008-04-07). 
  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
  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]. (原始内容存档于2010-09-19). 
  26. ^ Intel Advanced Encryption Standard Instructions (AES-NI). Intel. March 2, 2010 [2010-07-11]. (原始内容存档于2010-07-07). 
  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. [2020-12-07]. (原始内容存档于2012-07-07). 
  31. ^ Bloombase StoreSafe Intelligent Storage Firewall. [2023-11-14]. (原始内容存档于2024-05-03). 

外部链接

  • Intel®高级加密标准指令(AES-NI)(页面存档备份,存于互联网档案馆
  • AES指令集白皮书(页面存档备份,存于互联网档案馆) (4.4 Mbyte, pdf) // Intel
精簡指令集(RISC)
多媒體加速擴展指令集 (MAX)
MDMX · MIPS-3D · MSA
龙芯多媒体扩展指令集 (LoongMMI) · 龙芯向量扩展指令集(LoongSX) · 龙芯高级向量扩展指令集(LoongASX)
動態視訊指令集 (MVI)
NEON
複雜指令集(CISC)
x86/x86-64
MMX · 3DNow! · 流式單指令流多資料流擴展指令集 (SSE) · SSE2 · SSE3 · 擴展SSE3 (SSSE3) · SSE4 · SSE4a · SSE5 → XOP、F16C/CVT16、FMA(包括FMA4、FMA3) · 進階加密標準指令集 (AES) · 進階矢量擴展指令集 (AVX、AVX1.1、AVX2、AVX-512) · 位操作指令集 (ABM、BMI1、BMI2、TBM)
指令集 = 被取代或取消
常见加密算法
次常见加密算法
  • Camellia
  • CAST-128英语CAST-128
  • IDEA
  • RC2英语RC2
  • RC5
  • SEED英语SEED
  • Skipjack英语Skipjack
  • TEA
  • XTEA
其他加密算法
  • 3-Way英语3-Way
  • ABC英语ABC (cipher)
  • Akelarre英语Akelarre (cipher)
  • Anubis英语Anubis (cipher)
  • ARIA英语ARIA (cipher)
  • BaseKing英语BaseKing
  • BassOmatic英语BassOmatic
  • BATON英语BATON
  • BEAR and LION英语BEAR and LION ciphers
  • CAST-256英语CAST-256
  • CIKS-1英语CIKS-1
  • CIPHERUNICORN-A英语CIPHERUNICORN-A
  • CIPHERUNICORN-E英语CIPHERUNICORN-E
  • CLEFIA英语CLEFIA
  • CMEA英语Cellular Message Encryption Algorithm
  • Cobra英语Cobra ciphers
  • COCONUT98英语COCONUT98
  • Crab英语Crab (cipher)
  • Cryptomeria/C2英语Cryptomeria cipher
  • CRYPTON英语CRYPTON (cipher)
  • CS-Cipher英语CS-Cipher
  • DEAL英语DEAL
  • DES-X英语DES-X
  • DFC英语DFC (cipher)
  • E2英语E2 (cipher)
  • FEAL英语FEAL
  • FEA-M英语FEA-M
  • FROG英语FROG
  • G-DES英语GDES
  • GOST英语GOST (block cipher)
  • Grand Cru英语Grand Cru (cipher)
  • Hasty Pudding cipher英语Hasty Pudding cipher
  • Hierocrypt英语Hierocrypt
  • ICE英语ICE (cipher)
  • IDEA NXT英语Idea NXT
  • Intel Cascade Cipher英语Intel Cascade Cipher
  • Iraqi英语Iraqi block cipher
  • KASUMI英语KASUMI (block cipher)
  • KeeLoq英语KeeLoq
  • KHAZAD英语KHAZAD
  • Khufu and Khafre英语Khufu and Khafre
  • KN-Cipher英语KN-Cipher
  • Ladder-DES英语Ladder-DES
  • Libelle英语Libelle (cipher)
  • LOKI97英语LOKI97
  • LOKI89/91英语LOKI
  • Lucifer英语Lucifer (cipher)
  • M6英语M6 (cipher)
  • M8英语M8 (cipher)
  • MacGuffin英语MacGuffin (cipher)
  • Madryga英语Madryga
  • MAGENTA英语MAGENTA
  • MARS英语MARS (cipher)
  • Mercy英语Mercy (cipher)
  • MESH英语MESH (cipher)
  • MISTY1英语MISTY1
  • MMB英语MMB
  • MULTI2英语MULTI2
  • MultiSwap英语MultiSwap
  • New Data Seal英语New Data Seal
  • NewDES英语NewDES
  • Nimbus英语Nimbus (cipher)
  • NOEKEON英语NOEKEON
  • NUSH英语NUSH
  • Q英语Q (cipher)
  • RC6
  • REDOC英语REDOC
  • Red Pike英语Red Pike (cipher)
  • S-1英语S-1 block cipher
  • SAFER英语SAFER
  • SAVILLE英语SAVILLE
  • SC2000英语SC2000
  • SHACAL英语SHACAL
  • SHARK
  • SM4
  • Speck
  • Spectr-H64英语Spectr-H64
  • Square英语Square (cipher)
  • SXAL/MBAL英语SXAL/MBAL
  • Threefish英语Threefish
  • Treyfer英语Treyfer
  • UES英语UES (cipher)
  • Xenon英语Xenon (cipher)
  • xmx英语xmx
  • XXTEA
  • Zodiac英语Zodiac (cipher)
密码设计
攻击(密码分析
  • 穷举攻击/蛮力攻击EFF DES破解机
  • 中途相遇攻击Biclique攻击英语Biclique attack · 三子集中途相遇攻击英语Biclique attack
  • 线性密码分析英语Linear cryptanalysis堆积引理英语Piling-up lemma
  • 差分密码分析不可能差分密码分析英语Impossible differential cryptanalysis
  • 截断差分分析英语Truncated differential cryptanalysis
  • 高阶差分分析英语Higher-order differential cryptanalysis
  • 差分-线性攻击英语Differential-linear
  • 区分攻击英语Distinguishing attack已知密钥区分攻击英语Known-key distinguishing attack
  • 积分密码分析英语Integral cryptanalysis
  • 回力镖攻击英语Boomerang attack
  • n密码分析英语Mod n cryptanalysis
  • 相关密钥攻击英语Related-key attack
  • 滑动攻击英语Slide attack
  • 回旋密码分析英语Rotational cryptanalysis
  • 計時攻擊英语Timing attack
  • XSL攻击英语XSL attack
  • 插值攻擊
  • Partitioning英语Partitioning cryptanalysis
  • 戴维斯攻击英语Davies' attack
  • 回弹攻击英语Rebound attack
  • 弱密钥英语Weak key
  • 肯德尔等级相关系数英语Kendall tau rank correlation coefficient
  • 卡方检验
  • 时间、内存、数据取舍攻击英语Time/memory/data tradeoff attack
密码标准
工作方式