热门问题
时间线
聊天
视角
AES指令集
来自维基百科,自由的百科全书
Remove ads
進階加密標準指令集現已經整合到許多處理器中。應用程式執行進階加密標準(AES)時,使用該指令集提高加密和解密的速度(以及對側信道攻擊的抵抗能力)。
x86架構
進階加密標準指令集(或稱英特爾進階加密標準新指令,簡稱AES-NI)是一個x86指令集架構的擴充,用於Intel和AMD微處理器,由Intel在2008年3月提出。[1]該指令集的目的是改進應用程式使用進階加密標準(AES)執行加密和解密的速度。
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處理器。
- Intel Ivy Bridge處理器
- 僅所有i5、i7、至強和i3-2115C[9]。
- Intel Haswell處理器。(i3-4000M[10]、奔騰和賽揚除外)
- Intel Skylake(和以後)處理器。
- AMD
- AMD Ryzen處理器。
- AMD Bulldozer處理器。[11]
- AMD Piledriver處理器。
- AMD Steamroller處理器。
- AMD Jaguar處理器。
- AMD Puma處理器。
其他架構中的硬體加速
在最新的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雜湊演算法。
Remove ads
VIA x86 CPU、AMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基於驅動程式的AES加速處理(另見Crypto API (Linux))。下列產品支援AES硬體加速,雖然不支援AES-NI指令集:
- Atmel xmega [22](並列執行的片上加速器,不是指令)
效能
在《AES-NI 效能分析》中,Patrick Schmid和Achim Roos 指出:「...少數已使用英特爾 AES-NI 進行最佳化的應用程式表現出了傲人成績」。 [23] 一次使用Crypto++函式庫執行的效能分析顯示,相比沒有加速的Pentium 4, AES/GCM的吞吐量從大約每位元組28.0周期顯著提升至每位元組3.5周期。 [24][25]
軟體支援
大多數現代編譯器能夠利用AES指令。
許多安全和加密軟體支援AES指令集,包括下列核心基礎設施:
- Cryptography API: Next Generation (CNG)(Windows)[26]
- Linux的Crypto API
- Java 7 HotSpot
- Network Security Services(NSS)3.13及更高版本 [27](被Firefox和Google Chrome使用)
- Solaris Cryptographic Framework[28]從Solaris 10起。
- FreeBSD的OpenCrypto API(aesni(4) 驅動程式)[29]
- OpenSSL 1.0.1及以上[30]
- FLAM®/FLUC®(頁面存檔備份,存於網際網路檔案館) 5.1.08(2015-08-24發布)及以上
- Bloombase Cryptographic Module [31]
Remove ads
參考
參考資料
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads