AES-NI(
Advanced Encryption Standard New Instructions)は、2008年3月に
インテルが提唱した、
インテルおよびAMD製
マイクロプロセッサのx86命令セットを拡張したものです。AES(
Advanced Encryption Standard)による暗号化と復号を高速化することを目的としています。
VIA Technologiesのプロセッサに実装されているPadLockも同様の機能です。
命令の一覧
AES-NIには、以下の命令が含まれます。
`AESENC` – AESラウンドの暗号化を実行
`AESDEC` – AESラウンドの復号を実行
`AESENCLAST` – AESラウンドの暗号化の最終ラウンドを実行
`AESDECLAST` – AESラウンドの復号の最終ラウンドを実行
`AESKEYGENASSIST` – AESラウンドキーを生成支援
`AESIMC` – AES暗号鍵の生成支援
AES-NIを実装したCPU
Intel
Westmere世代以降のCPU
Gulftown
Clarkdale(Core i3を除く)
Arrandale(Core i3およびCore i5-4XXMを除く)
Sandy Bridge世代以降のCPU
デスクトップ: Pentium、Celeron、Core i3を除くすべてのプロセッサ
モバイル: Core i7とCore i5のすべて。ただし、ベンダーによってはBIOS設定でAES-NI拡張を無効にして販売している場合があり、その場合はBIOSアップデートが必要です。
Ivy Bridge
Core i5、i7、Xeonとi3-2115C
Haswell
i3-4000m、Pentium、Celeronを除く
Skylake
Intel Core、Pentium、Celeron、Xeon
Intelは、AES-NIをサポートしたプロセッサのリストをウェブサイト上で公開しています。
AMD
Bulldozer
Piledriver
Steamroller
Jaguar
Puma
Ryzen
EPYC
性能
AES-NIを実装することで、AES暗号化のパフォーマンスが大幅に向上します。
Patrick SchmidとAchim Roosによる「AES-NI Performance Analyzed」という記事では、「
インテルのAES-NI機能を利用して最適化した一部のアプリケーションから目覚しい結果が」得られたと述べられています。
セキュリティ
ライブラリのCrypto++を用いた性能分析では、AES-GCMにおいて
Pentium 4との比較で、スループットが約28.0サイクル毎バイトから3.5サイクル毎バイトに向上したという結果が出ています。
AES-NIをサポートするソフトウェア
多くのソフトウェアがAES-NIをサポートしており、以下はその一部です。
Cryptographic Development Kit (CDK) 7.0
Microsoft Cryptography API: Next Generation (CNG)(要Windows 7)
Crypto++ 5.6.1
LinuxのCrypto API
IAIK-JCE version 5.0
Java 7
HotSpot
lambdaWorks crypto
Libgcrypt 1.5.0-beta1
Integrated Performance Primitives (IPP)
Network Security Services (NSS) 3.13以降(FirefoxなどMozillaソフトウェアや
Google Chrome)
OpenSSL
Solaris Cryptographic Framework
TRESOR
wolfSSL
GnuTLS
プログラミング言語
Go
アプリケーション
7-Zip 9.1
AreaGuard Neo 1.7
BestCrypt Volume Encryption
BitLocker
BlackCipher Game hack prevention module
Bloombase Cryptographic Module
Conceal File encryption utility for Windows
Citrix XenClient 1.0以降
DiskCryptor 0.9
DiskSec 1.85
DVDFab Passkey 9
dm-cryptによる
Linuxにおけるディスク全体の暗号化
Embrane Heleos 2.0
FileVault version 2 (
Mac OS X Lion) ディスク全体のAES暗号化
McAfee Endpoint Encryption for PC 6.x
FreeBSDのOpenCrypto API(aesni(4)ドライバー)
Oracle Database 11g Release 2 Patchset 1 (11.2.0.2) 透過的データ暗号化
PGP Whole Disk Encryption Windowsにおいて10.1.0以降およびMac OS Xにおいて10.2.0以降
SafeGuard Enterprise 6.0
SecretAgent 6.1.1
SecureDoc 5.2
TrueCrypt 7.0
VeraCrypt
Vormetric Encryption 5
まとめ
AES-NIは、AES暗号化を高速化するための重要な技術であり、多くのCPUやソフトウェアでサポートされています。AES-NIを活用することで、暗号化処理のパフォーマンスを向上させることができます。