web-dev-qa-db-ja.com

opensslがAES-NIアクセラレーションを使用していることを確認するにはどうすればよいですか?

Ubuntu 16.04.1 LTSを実行しています。私のCPUがすべてのCPUでAES-NIアクセラレーションをサポートしていることを確認しました。

johndoe@mycomputer:~$ grep -m1 -o aes /proc/cpuinfo
aes
johndoe@mycomputer:~$ grep -o aes /proc/cpuinfo | wc -l
4
johndoe@mycomputer:~$ lscpu | grep '^CPU(s):'
CPU(s):                4

AES-NIを使用してそのopensslを確認するにはどうすればよいですか?

ありがとう、Luckyrings

4
Luckyrings

自分で答えを見つけました。

OpensslがAES-NIを使用しているかどうかをテストするために、次の情報を見つけました。 AES-NIがopensslで利用可能であることをコンパイル後に見ることはできませんが、その機能の有無にかかわらずパフォーマンステストを実行できます。

デフォルト設定での速度テスト:

openssl speed -elapsed -evp aes-128-cbc

明示的に無効化されたAES-NI機能を使用した速度テスト:

OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc

その結果、最初の行はより高速に実行されます(i7 CPUではほぼ2倍)。そのため、opensslにはデフォルトでAES-NIが使用されます。

5
Luckyrings