我正在将mbedTLS集成到STM32H753的一个项目中。 环境是STM32CubeIDE(arm-none-eabi-gcc)。我已经在-Ofast中编译了。
我正在比较RSA2048 PKCS1和ECDSA224(曲线SECP224R1)签名验证的计算时间。
我重用了mbedTLS中的示例代码(在mbedTLS \ programs \ pkey \ ecdsa.c和rsa_verify.c中),我没有进行任何修改。
我使用DBG_CYCCNT测量了函数mbedtls_rsa_pkcs1_verify
和mbed_ecdsa_read_signature
的计算时间,没有任何异常或中断。它不包括SHA256的计算。
这是我得到的结果:
RSA 2048签名验证:850 000个周期
ECDSA 224签名验证:2亿个周期
我不明白其中的区别。我确实期望ECDSA的计算时间比RSA的计算时间略长。但是这里的速度要慢200倍以上。另一方面,正如预期的那样,使用ECDSA可以更快地生成签名。
这有意义吗?
是否有我可能错过的可以解释差异的设置?