为什么公钥算法很慢?

时间:2010-11-28 22:17:31

标签: public-key

我正在研究测试,但我仍然不明白为什么公钥算法比对称算法慢。

3 个答案:

答案 0 :(得分:7)

Public-key cryptographyasymmetric cryptography的一种形式,其中不同之处在于使用额外的加密密钥。

Symmetric algorithms使用“共享密钥”,其中两个系统各使用一个加密密钥来加密解密通信。

公钥加密不使用单个共享密钥,而是使用数学密钥对:公钥和私钥。在该系统中,通信用公钥加密,并用私钥解密。以下是维基百科的更好解释:

  

使用的区别技术   公钥加密是使用   非对称密钥算法,其中   用于加密消息的密钥不是   与用于解密的密钥相同   它。每个用户都有一对   加密密钥 - 公共加密   密钥和私有解密密钥。该   公开的加密密钥是   广泛分布,而私人   解密密钥只有   接受者。消息使用加密   收件人的公钥和可以   只能用。解密   相应的私钥。按键   在数学上是相关的,但是   私钥不可行(即in   实际或预计的实践)   源自公钥。该   发现可能的算法   生成公钥/私钥对   彻底改变了这种做法   密码学从中间开始   20世纪70年代。

计算开销非常明显:公共密钥可用于它所暴露的任何系统(互联网上的公钥系统,例如将公钥暴露给整个互联网)。为了补偿,公钥和私钥都必须非常大,以确保更强的加密级别。然而,结果是更强大的加密级别,因为私有解密密钥(到目前为止)无法从公共加密密钥进行反向设计。

还有更多会影响public-key infrastructure(PKI)的“速度”。由于此系统的一个问题是信任,因此大多数实现涉及certificate authority(CA),这些实体可信任委派密钥对并验证密钥的“身份”。

总结一下:更大的加密密钥大小,两个加密密钥而不是一个加密密钥,并引入了证书颁发机构:额外的DNS查找和服务器响应时间。

正是由于这种额外的开销,大多数实现都受益于hybrid algorithm,其中公钥和私钥用于生成会话密钥(非常类似于对称算法中的共享密钥)以获得两者的最佳效果世界。

答案 1 :(得分:4)

公钥算法依赖于“陷门”计算,这些计算加密计算成本高,并且计算难以用密钥解密。如果第一步太容易(与速度相关),第二步就变得不那么难(更容易破碎)。因此,公钥算法往往是资源密集型的。

私钥算法在加密阶段已经有了秘密,因此它们不必像使用公共秘密的算法那样做。

以上是过度概括,但应该让您了解相对速度差异背后的原因。话虽如此,私钥算法可能很慢,并且公钥算法可能具有有效的实现。魔鬼在细节中: - )

答案 2 :(得分:2)

加密和键控方法是一个非常深刻和复杂的主题,只有世界上最聪明的数学头脑才能完全理解,但大多数人都能理解顶级视图。

主要区别在于对称算法需要比非对称(PKI)方法更小,更小的密钥。因为对称算法在一个“共享密钥”(例如abcd1234)上工作,该密码在可信通信方法中传输(例如,我将打电话给你并要求你提供共享密钥)然后他们不需要依赖其他安全方法(即我相信你不要告诉任何人)。

PK基础设施涉及通过互联网在不受信任的空间上发送“密钥”,并涉及使用大量素数和大量密钥(例如1024位或2048位而不是128位或256位)。 / p>

一般的经验法则是PKI方法比对称密钥慢大约1,000倍。