AES-NI

AES-NI (Advanced Encryption Standard New Instructions)とは



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を活用することで、暗号化処理のパフォーマンスを向上させることができます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。