我目前正在开发一个涉及RSA的系统,并注意到RSA签名/解密非常慢。但是,有些东西我无法完全理解:
使用OpenSSL“speed”命令在特定系统上测量RSA-2048速度时,我得到以下信息:
sign verify sign/s verify/s
rsa 2048 bits 0.003656s 0.000105s 273.5 9514.4
在我自己的应用程序中测量速度时(使用gettimeofday()并使用OpenSSL的RSA_sign()100次签名),我得到44ms(相比之下3.7ms)。
我不明白这是多么合理。这比OpenSSL自己的基准测试工具要长10倍。他们用什么神奇的功能来达到这个速度?
我也尝试过LibTomCrypt库,我到达那里的最好(与TomsFastMath结合)是10ms。与3.7毫秒相比仍然很多。对于我测试的其他系统也是如此。
为什么这里存在如此巨大的差异?
答案 0 :(得分:1)
好的,事实证明我编译了OpenSSL库而没有首先运行“./config”,所以它是在没有任何特定于平台的优化的情况下构建的(令人惊讶的是这样的差异可以做到这一点)。当使用该构建中的基准测试工具时,我得到的效果与我自己的应用程序相同。