Modern processors support hardware acceleration for various crypto functions such as
AES directly, or general vector operations which can be used in crypto functions, such as
SSE SSE2 SSSE3 AVX.
On my machine, I can see the difference in speed between
AES in software and in hardware, which gives speeds up to 5 times faster:
openssl speed -evp aes-256-cbc openssl speed aes-256-cbc
(Note: I am using OpenSSL here only as an example, because it is easy to demonstrate.)
Also, the Linux kernel can be compiled with support for these functions as well. If so, all encryption in kernel space (for example
dm-crypt) can take advantage of these fast hardware instructions.
Again, the kernel compiled with
AES-NI support is many times faster when uisng aes in software only.
I have noticed that there is also hardware support for the
Camellia cipher and it looks as if
Camellia could use the same instructions as
However, I am unable to test/confirm this.
openssl speed camellia-256-cbc openssl speed -evp camellia-256-cbc
I see no difference in speed when tested with
OpenSSL and I suspect the hardware acceleration is not being used for
My cpu supports all above mentioned instructions:
AES SSE SSE2 SSSE3 AVX.
Is it possible to speed up
Camellia by using hardware instructions on supported cpu, same as with