Big-O 表示法:加密算法

Posted

技术标签:

【中文标题】Big-O 表示法:加密算法【英文标题】:Big-O Notation: Encryption Algorithms 【发布时间】:2012-04-10 19:02:50 【问题描述】:

我目前正在完成一篇关于通过各种加密算法加密数据的论文。

我花了很多时间阅读期刊和论文,但至今无法找到有关其性能复杂性的任何记录。

有人知道以下算法的 Big-O 复杂度吗?

RSA DES 三重 DES(我希望与 DES 的顺序相同) AES 河豚

提前感谢您;如果您能提供一个有信誉且可引用的来源的链接,我们将不胜感激。

【问题讨论】:

crypto.stackexchange.com你的运气可能会更好 crypto.SE 上的交叉帖子:crypto.stackexchange.com/questions/2338/… 您的博士论文完成了吗?如果您可以分享您的论文链接,您介意吗?我目前正在写一篇关于 RSA 算法的时间复杂度的论文。提前谢谢先生。 【参考方案1】:

部分答案:RSA 实验室提供了此分析,archived from rsa.com,比较了 RSA 操作与 DES。

RSA 算法有多快?

“RSA 操作”,无论是加密、解密、签名还是 验证本质上是模幂运算。这个计算是 通过一系列模乘来执行。

在实际应用中,通常选择小公有 公钥的指数。事实上,整个用户组都可以使用 相同的公共指数,每个都有不同的模数。 (有 公共时对模素数的一些限制 指数是固定的。)这使得加密比解密更快,并且 验证比签名快。与典型的模块化 用于实现 RSA 算法的求幂算法, 公钥操作需要 O(k^2) 步私钥操作需要 O(k^3) 步,密钥生成需要 O(k^4 ) 步骤,其中 k 是 模数中的位数。 ``快速乘法'' 技术,例如基于快速傅里叶变换 (FFT) 的方法, 需要渐近更少的步骤。然而,在实践中,它们并不是 由于它们更大的软件复杂性以及以下事实而变得普遍 对于典型的密钥大小,它们实际上可能会更慢。

许多商用软件的速度和效率 RSA算法的硬件实现正在增加 迅速;最新数据见http://www.rsasecurity.com/。

相比之下,DES(参见第 3.2 节)和其他分组密码要多得多 比 RSA 算法快。 DES 通常至少是 100 倍 在软件中速度快,在软件中快 1,000 到 10,000 倍 硬件,取决于实现。 RSA 的实现 算法可能会在未来几年缩小差距,因为 需求量很大,但分组密码也会变得更快。

【讨论】:

【参考方案2】:

需要注意的一点(取决于您是否正在为您的论文进行编码):大多数现实世界的 RSA 实现实际上会使用 RSA 进行 AES 密钥交换。因此,分别用于加密/解密的 O(k^2) 和 O(k^3) 操作仅用于加密 AES 密钥。 AES 在软件/硬件方面的速度提高了 100-10K 倍,为正在交换的数据提供了实际的分组密码——这样,您就可以利用 PKI(通过 RSA)而无需支付过高的计算成本。

【讨论】:

【参考方案3】:

一个块的对称密码复杂度为 O(1)。

只留下列表中的 RSA,答案非常依赖于实现,具体取决于大整数乘法的实现程度、指数的选择等...

【讨论】:

以上是关于Big-O 表示法:加密算法的主要内容,如果未能解决你的问题,请参考以下文章

加密后的字符串最后有两个“==”是啥加密算法?

base64加密解密算法

Android加密算法总结

网络安全通信(加密算法)

Java编码加密摘要算法异同比较与总结

加密方式区别