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?
答案 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处有一份白皮书。