AES-NI 是用來加速加解密過程的 CPU 功能,在目前的全部 ec2 instance type 都有支援。
不使用高階函式 -evp(同時也不會使用到 AES-NI)
$ openssl speed -elapsed aes-128-cbc
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128 cbc 112765.34k 122879.02k 125167.36k 126346.92k 126593.71k
強制不使用 AES-NI
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 277520.21k 305234.35k 311621.46k 314812.76k 315200.85k
使用 AES-NI
$ openssl speed -elapsed -evp aes-128-cbc
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 561544.04k 598301.61k 607955.80k 610393.43k 611164.16k
由以上數據可以很明顯看出
- 有用高階函式庫很明顯
- 有 AES-NI 的 CPU 在做 AES 加密時速度快 2 倍。