我做了一些测试,结果发现RSA比DSA慢很多。
通常DSA时间复杂度是多少?
RSA[ms] DSA [ms]
1125 218 1KiB
1047 188 2KiB
594 17 4KiB
641 234 8KiB
2938 406 16KiB
9063 937 32KiB
39344 3406 64KiB
答案 0 :(得分:1)
RSA和DSA使用指数生成签名。这是花费最多时间的成本,因此它们基本上具有相同的复杂性。但不同的是关键长度。
在加密中,您尝试选择尽可能小的密钥,但要足够大以获得所需的安全性。
RSA需要很长的密钥,某事。像2048位或更大。
DSA有一个短(大约256位)和一个长键(大约2048位)。指数不会大于短键。
因此,对于DSA,您必须计算一个2048位数到256位数的模数(模数为另一个数),对于RSA,您必须计算一个2048位数到另一个2048位数的幂。 这就是RSA比DSA慢得多的原因。
注意:如果您为DSA选择长度为2048位的短密钥,它将与RSA一样慢。