2014年7月27日日曜日

CentOS7 の cryptsetup で AES-NI が活用されているか確認する方法

CentOS 7 の cryptsetup には、benchmark オプションが追加されており、これを利用することで、Intel CPU の AES-NI 命令が活用されているか確認できます。わたしの自宅メインマシン ThinkPad T510 (Intel Core i7 M620 2.67G) の場合のデータです。
[root@hoge ~]# grep i7 /proc/cpuinfo 
model name : Intel(R) Core(TM) i7 CPU       M 620  @ 2.67GHz
model name : Intel(R) Core(TM) i7 CPU       M 620  @ 2.67GHz
[root@hoge ~]# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       396586 iterations per second
PBKDF2-sha256     234057 iterations per second
PBKDF2-sha512     156410 iterations per second
PBKDF2-ripemd160  320078 iterations per second
PBKDF2-whirlpool  157349 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   639.9 MiB/s  1498.5 MiB/s
 serpent-cbc   128b    62.0 MiB/s   261.6 MiB/s
 twofish-cbc   128b   151.4 MiB/s   213.0 MiB/s
     aes-cbc   256b   493.1 MiB/s  1194.9 MiB/s
 serpent-cbc   256b    65.2 MiB/s   262.2 MiB/s
 twofish-cbc   256b   155.1 MiB/s   212.9 MiB/s
     aes-xts   256b  1351.7 MiB/s  1344.8 MiB/s
 serpent-xts   256b   230.7 MiB/s   239.1 MiB/s
 twofish-xts   256b   196.6 MiB/s   196.9 MiB/s
     aes-xts   512b  1088.9 MiB/s  1066.1 MiB/s
 serpent-xts   512b   231.7 MiB/s   240.8 MiB/s
 twofish-xts   512b   198.4 MiB/s   196.7 MiB/s
aesni_intel をロードしないようにして、計測すると、次のように数値が下がり、ちゃんと活用されている様子が確認できます。
[root@hoge ~]# grep aesni_intel /etc/modprobe.d/aes.conf 
blacklist aesni_intel
[root@hoge ~]# lsmod | grep aesni_intel
[root@hoge ~]# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       402678 iterations per second
PBKDF2-sha256     234057 iterations per second
PBKDF2-sha512     156597 iterations per second
PBKDF2-ripemd160  319687 iterations per second
PBKDF2-whirlpool  159454 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   165.1 MiB/s   187.2 MiB/s
 serpent-cbc   128b    62.3 MiB/s   263.5 MiB/s
 twofish-cbc   128b   152.1 MiB/s   214.3 MiB/s
     aes-cbc   256b   127.4 MiB/s   139.9 MiB/s
 serpent-cbc   256b    63.4 MiB/s   264.3 MiB/s
 twofish-cbc   256b   155.8 MiB/s   213.9 MiB/s
     aes-xts   256b   187.5 MiB/s   185.2 MiB/s
 serpent-xts   256b   231.2 MiB/s   242.4 MiB/s
 twofish-xts   256b   197.7 MiB/s   197.7 MiB/s
     aes-xts   512b   140.6 MiB/s   140.8 MiB/s
 serpent-xts   512b   232.0 MiB/s   242.6 MiB/s
 twofish-xts   512b   199.1 MiB/s   197.6 MiB/s
この数値だと、SSD 等の高速なディスクに LUKS で暗号化してデータ格納するなら、AES-NI(Intel CPU の暗号化支援命令)によりスループットが大幅に向上しそうですね。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ