我正在执行一些P256 ecdsa签名生成和验证延迟的度量,我原以为签名验证将比签名生成更快,但事实并非如此。是什么使签名生成更快?在签名验证中,计算开销最大的操作是什么?
发布于 2020-11-06 17:48:43
我原以为签名验证比签名生成更快。
因为在RSA中签名验证更快?正如您所看到的,RSA != ECDSA;签名和验证所涉及的操作完全不同。
是什么使签名生成更快?
因为签名生成只需要一个点乘(加上一个模逆运算;比较便宜,但代价不小),而签名验证则涉及两点乘法。
当然,如果您深入到教科书定义的下面,那么双方都有可用的优化:
在签名方:
在验证方面,昂贵的操作是计算u_1 \times G + u_2 \times Q_A。
但是,这两种想法都不会产生与使用预先计算的表进行签名一样快的验证方法。
发布于 2020-11-06 17:50:02
使用符号那里,ECDSA签名生成需要一个椭圆曲线点乘法,k\times G。而朴素签名验证使用两种方法,即在添加u_1\times G和u_2\times Q_A之前先计算它们。点乘通常是签名生成/验证中最慢的操作,可能是散列(签名生成和验证中常见的)。这可以解释观测到的时间差异。
然而,情况远非如此,还有其他原因可以逆转或至少减轻这种情况:
https://crypto.stackexchange.com/questions/86019
复制相似问题