2014年4月25日金曜日

OpenSSLでのAES-NI性能チェック

OpenSSLでのAES-NI性能チェック

①対応CPUを確認
インテルCPUの場合CPU情報が検索できる ⇒ http://ark.intel.com/
ざっとみた感じだと 第2、第3世代のCore i5, Core i7, Xeonは第2世代から、Core i3は第4世代から対応してる

②OpenSSLでコマンド実行
AES-NI無効
> openssl speed aes-256-cbc
Doing aes-256 cbc for 3s on16 size blocks14818341 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on64 size blocks4047956 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on256 size blocks1036641 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on1024 size blocks258249 aes-256 cbc's in 2.98s
Doing aes-256 cbc for 3s on8192 size blocks32677 aes-256 cbc's in 3.01s
The 'numbers' are in 1000s of bytes per second processed.
BlockSizeKBytes/sec
16 bytes79157.30k
64 bytes86494.23k
256 bytes88601.23k
1024 bytes88751.94k
8192 bytes88909.35k

AES-NI有効
> openssl speed -evp aes-256-cbc
Doing aes-256 cbc for 3s on16 size blocks74060182 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on64 size blocks22091013 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on256 size blocks5640111 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on1024 size blocks1393281 aes-256 cbc's in 2.98s
Doing aes-256 cbc for 3s on8192 size blocks175337 aes-256 cbc's in 3.01s
The 'numbers' are in 1000s of bytes per second processed.
BlockSizeKBytes/sec
16 bytes395618.09k
64 bytes472027.17k
256 bytes487131.97k
1024 bytes473864.29k
8192 bytes479551.11k

だいたい5倍強の性能になってる