2012-09-26 88 views
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 
+0

你是怎么测试的?你使用了什么库? –

+0

@BurhanKhalid java标准库,但这是通用实现的问题。什么是DSA的复杂性。 RSA的复杂性是O(n^4)。 – Yoda

回答

1

RSA和DSA同时使用指数生成签名。这是花费最多的时间,所以它们基本上具有相同的复杂性。但差异是关键的长度。

在密码学中,您尝试选择尽可能小的密钥,但要足够大才能获得所需的安全性。

RSA需要相当长的密钥,像2048位或更大。
DSA有一个短(约256位)和一个长密钥(约2048位)。指数不会大于短键。

因此,对于DSA,您必须计算一个2048位数的256位数(以其他数字为模)的功率,对于RSA,您必须计算2048位数的2048位数。这就是为什么RSA比DSA慢得多。

注意事项:如果您为DSA选择一个长度为2048位的短密钥,它将和RSA一样慢。

相关问题