You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于OpenSSL ECDH代码理解及曲线执行时间基准测试的疑问

关于OpenSSL EC密钥生成时间基准测试的说明

我注意到你在Stack Overflow上看到不少相关主题的帖子(比如"OpenSSL calculate ECDH secret")多数没得到解答,刚好你在用OpenSSL命令做secp256k1曲线的性能测试,这里帮你理清几个关键点:

你的命令实际测量的是什么时间?

你用的命令:

time openssl ecparam -name secp256k1 -genkey -noout -out secp256k1-key.pem

这个命令生成的是完整的EC密钥对——包含私钥和对应的公钥。虽然输出的PEM文件主要存储私钥,但公钥是通过私钥乘以曲线基点计算出来的,这个计算过程已经包含在命令执行的流程里了。所以你得到的时间结果是私钥随机生成 + 公钥推导的总耗时,不是单独的公钥生成时间。

如何单独测量公钥生成的时间?

如果你想单独统计从私钥生成公钥的耗时,可以拆分两步执行:

  1. 先生成纯私钥(这一步主要是生成随机私钥,不做公钥计算):
    time openssl ecparam -name secp256k1 -genkey -noout -out privkey.pem
    
  2. 再从已有的私钥导出公钥,测量这个步骤的时间:
    time openssl ec -in privkey.pem -pubout -out pubkey.pem
    

第二个命令的时间就是单独生成公钥的耗时,你可以拿这个结果和之前的总耗时对比,就能清楚两者的占比了。

补充:ECDH共享密钥计算的时间测试

如果后续你需要测试ECDH共享密钥的计算时间,可以用pkeyutl命令,比如:

time openssl pkeyutl -derive -inkey my-privkey.pem -peerkey their-pubkey.pem -out shared-secret.bin

这个命令的时间就是ECDH密钥交换中计算共享秘密的耗时。

内容的提问来源于stack exchange,提问作者ChanBan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:38:09