1
我做了一些测试,结果发现RSA比DSA慢很多。什么是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
我做了一些测试,结果发现RSA比DSA慢很多。什么是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
RSA和DSA同时使用指数生成签名。这是花费最多的时间,所以它们基本上具有相同的复杂性。但差异是关键的长度。
在密码学中,您尝试选择尽可能小的密钥,但要足够大才能获得所需的安全性。
RSA需要相当长的密钥,像2048位或更大。
DSA有一个短(约256位)和一个长密钥(约2048位)。指数不会大于短键。
因此,对于DSA,您必须计算一个2048位数的256位数(以其他数字为模)的功率,对于RSA,您必须计算2048位数的2048位数。这就是为什么RSA比DSA慢得多。
注意事项:如果您为DSA选择一个长度为2048位的短密钥,它将和RSA一样慢。
你是怎么测试的?你使用了什么库? –
@BurhanKhalid java标准库,但这是通用实现的问题。什么是DSA的复杂性。 RSA的复杂性是O(n^4)。 – Yoda