【问题标题】:What is DSA complexity?什么是 DSA 复杂性?
【发布时间】:2012-09-17 16:05:34
【问题描述】:

我做了一些测试,结果发现 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

【问题讨论】:

  • 你是如何测试的?您使用了哪些库?
  • @BurhanKhalid java 标准库,但这是通用实现的一般问题。 DSA 的复杂性是什么。 RSA 的复杂度是 O(n^4)。

标签: rsa complexity-theory dsa


【解决方案1】:

RSA 和 DSA 同时使用幂运算来生成签名。这是最耗时的,因此它们基本上具有相同的复杂性。但不同的是密钥长度。

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

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

因此,对于 DSA,您必须计算 2048 位数的 256 位数的幂(以其他数为模),而对于 RSA,您必须计算 2048 位数的其他 2048 位数的幂。 这就是 RSA 比 DSA 慢得多的原因。

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

【讨论】:

    猜你喜欢
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多