我跑了openssl speed rsa512
,它会向我显示有多少迹象,并验证它可以在一秒钟内完成。不幸的是,测试没有说明签名的邮件大小。因此,我深入研究了openssl源代码,并在speed.c
中找到了以下行:
ret = RSA_sign(NID_md5_sha1, buf, 36, buf2, rsa_num, rsa_key[testnum]);
查看rsa.h
中的函数,我可以看到以下函数声明:
int RSA_sign(int type, const unsigned char *m, unsigned int m_length,
unsigned char *sigret, unsigned int *siglen, RSA *rsa);
我猜,m
是消息,m_length
是消息的长度。
我是对的,RSA速度测试中的消息大小是36字节吗?
ECDSA也是如此,例如openssl speed ecdsap256
。 speed.c
使用以下行:
ret = ECDSA_sign(0, buf, 20, ecdsasig, ecdsasiglen, ecdsa[testnum]);
我认为ECDSA速度测试中的消息大小是20字节吗?
我的结论:无法比较它们,因为它们会签署不同的消息长度。
答案 0 :(得分:2)
从技术上讲,非对称签名不会签署消息。他们签署消息哈希。
他们的rsa512测试是在SSL" MD5和SHA1"上进行RSA签名填充和转换。值(16 + 20 = 36字节)。所以它产生的数字是它可以做多少RSA pad-and-sign(和应答复制)操作,你需要将它除以散列消息所需的时间。
他们的ecdsap256计算假设摘要是SHA-1(20字节)。同样,您可以将此数字除以散列消息所需的时间。
由于它们都是数据散列的规模,因此它们具有可比性。