which version of openssl gives better speed?

时间:2015-06-25 09:59:36

标签: performance optimization encryption openssl

I am using openssl for my encryption work in my project where I encrypt files. The encrytion/decryption process takes too much time. So which version of openssl should I use for better speed? Any lighter version available?

I have also observed that openssl-1.0.2a (latest) gives the worst performance regarding speed. But If I build it with O3 optmization, performance is better. But for lower versions, performance doesn't increase in a considerable amount for optimization. Why is it so?

1 个答案:

答案 0 :(得分:1)

  

哪个版本的openssl提供更好的速度?

它依赖于许多东西,包括硬件和算法。

  

加密/解密过程需要花费太多时间。

那是亲戚。

  

我还观察到openssl-1.0.2a(最新版)在速度方面表现最差。

但您没有告诉我们您的硬件,算法选择或向我们展示您的代码......

  

但如果我使用O3 optmization构建它,性能会更好。

我发现-Os通常会提供最佳性能,因为小代码可以让缓存更热。这取决于硬件,但我发现它适用于i386,x86_64和ARM。有许多ARM处理器,但我测试的是那些用于Android(5TE和7 / 7A)的商品。

  

那么我应该使用哪个版本的openssl来提高速度?

它们应该大致相同,以no-asm为模型构建。

此外,您需要使用EVP_* interfaces。不清楚你是否已经这样做了。

EVP_Encrypt(和朋友) 使用 硬件加速(如果有)。这包括x86_64上的AES-NI。

如果你使用AES_encrypt(和朋友),那么它只是一个软件实现, 永远不会使用 硬件加速。

此外,您需要发布openssl speed的数字。这是基准测试的基线。

最后,英特尔在Improving OpenSSL Performance处有一份白皮书。