AES-NI指令集
AES-NI是一个x86指令集架构的扩展,用于Intel和AMD微处理器,由Intel在2008年3月提出。[1]该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。这项技术在从企业级的大数据、区块链到个人用的NAS等都用得上.
如何检查cpu是否支持该功能
$ cat /proc/cpuinfo | grep aes | wc -l
如果支持,应该是4核,得出的统计结果也是4
//我家15年的占美移动i5-4200U CPU @ 1.60GHz 居然也支持;但是13年的笔记本上不支持
//工作笔记本i5-5200U不支持
成功的对比测试
用了openssl命令,终于发现开启aes-ni有明显区别。版本:OpenSSL 1.0.2g 1 Mar 2016
$ openssl speed -elapsed -evp aes-256-cbc
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-256-cbc
$ openssl speed -elapsed -evp aes-128-cbc
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc
|是否开启|type |16 bytes | 64 bytes | 256 bytes | 1024 bytes |8192 bytes|
|———–|—————–|————-|—————|—————|——————-|—————|
|是 |aes-256-cbc | 364209.02k| 398876.69k | 401026.39k | 398883.84k | 411863.72k|
|否 |aes-256-cbc | 167362.41k | 183630.57k | 188587.43k | 181141.16k | 192430.08k|
|是 |aes-128-cbc | 496741.25k | 549389.38k | 541275.99k | 568249.34k | 557129.73k|
|否 |aes-128-cbc | 228221.45k