en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

比较ECDSA和RSA

介绍

最近,关于优缺点的讨论很多。 RSA[01]
ECDSA[02],在加密社区中。 对于初学者,他们是两个
最广泛使用的数字签名算法,但即使对于更多技术
精明,跟上事实可能会非常困难。 这篇文章是
尝试简化两种算法的比较。 虽然,这不是
一篇技术性很强的文章,越有耐心的读者可以查看文章的结尾
快速TL; DR表的文章,其中包含讨论摘要。

需要证书吗? SSL.com已覆盖您。 在这里比较选项 从中找到适合您的选择 S/MIME 以及代码签名证书等等。

马上订购

ECDSA与RSA

ECDSA和RSA是 公钥加密[03]个系统,
提供一种机制 认证。 公钥加密是
设计采用成对密钥的密码系统的科学: 国家
(因此而得名),以及
相应 私钥,只有所有者知道。 认证方式
指验证使用私钥签名的消息是否为
由特定私钥持有者创建。 用于的算法
身份验证统称为 数字签名算法 [04]。

这样的算法依赖于相对简单的复杂数学问题
计算一种方法,尽管要逆转是不切实际的。 这意味着
攻击者在没有任何私人知识的情况下伪造了数字签名
关键,他们必须解决棘手的数学问题,例如整数
分解,目前尚无有效的解决方案[05]。

因此,由于没有有效的解决方案可用于
潜在的数学问题,密码算法的评估可以
仅针对其实施细节与
他们提供的安全级别。 为此,本节介绍了
使用五个(或六个)量化指标对RSA和ECDSA进行比较。 每个指标
在其自己的部分中进行了介绍,以及其对任何人的意义
试图在两种算法之间做出决定。

采用

多年来,RSA一直是公钥加密的行业标准
现在。 大多数SSL /TLS 证书已经(并且仍在)使用RSA密钥签名。
尽管到目前为止,大多数CA已经实现了对基于ECDSA的支持
证书,这种长期的采用只导致了许多旧系统
支持RSA。 因此,如果供应商需要与旧版本向后兼容
客户端软件,他们被迫使用通过RSA签名的证书。 如今,
不过,大多数现代客户已经实现了对ECDSA的支持,
可能会在不久的将来删除此兼容性约束。

标准期限

RSA首先针对SSL /进行了标准化TLS 1994年[06],同时引入了ECDSA
在规范中 TLS v1.2,2008年[07]。 此年龄差异表示
描述以下最佳实践的标准的成熟度方面的差异
每个算法。 虽然,RSA标准已被广泛研究和
经审核,ECDSA并未引起太多关注。 最近,倡导这个
主要CA所采用的加密算法及其在大多数现代SSL /中的采用TLS 客户有
导致发表了更广泛的研究,但仍然是
相对较新的方案。 这为未发现的设计缺陷或
将来会公开错误的实现。

密钥大小与安全级别的比率

安全等级 [08]是密码学的指标,指的是强度
密码基元或函数的名称。 通常用“位”来衡量
表示攻击者需要执行以破坏其性能的操作数量
安全。 此指标可以提供量化方法以比较功效
各种密码系统。 应该强调的是,公钥的大小也是
以位为单位进行度量,但这是一个完全不同的概念,指的是
密钥的物理大小。

在这方面,通用RSA 2048位公用密钥提供了以下安全级别:
112位。 但是,ECDSA仅需要224位大小的公共密钥即可提供
相同的112位安全级别。 密钥大小的显着差异有两个
重大影响。 较小的密钥需要较少的带宽来设置
SSL /TLS 流,这意味着ECDSA证书非常适合移动设备
应用程序。 而且,这样的证书可以存储到设备中
更多限制内存的限制,这一事实使得m /TLS 叠成
无需分配许多资源即可在物联网设备中实现。 已发表
研究甚至表明ECDSA在嵌入式系统中的实施效率更高[09]
设备。

性能和时间复杂度

算法是抽象方法,描述了实现特定目标的方法。
在计算机科学中,其性能是通过计算
达到此预定终点所需的基本操作
健康)状况。 这种指标称为 时间复杂度。 由于输入不同
大小需要不同数量的操作,通常时间复杂度高
表示为输入大小的函数。

两种算法的执行时间都差不多
数学运算,例如除法和乘法。 因此,输入大小
(在这种情况下,这是其密钥的大小)仍然是最重要的
影响其性能的因素。 比较这两种算法,需要
区分消息签名和验证签名。 多数情况
在实际实施中,RSA在以下方面似乎比ECDSA快得多
验证签名,尽管签名时速度较慢。

更高的安全级别使事情变得复杂。 例如,在大多数情况下
常见配置的安全级别为112位,RSA需要2048位
而ECDSA需要224位密钥。 在下一个128位通用级别中,RSA
需要3072位的密钥,而ECDSA仅需要256位。 这导致RSA的
性能急剧下降,而ECDSA仅受到轻微影响。 如
这种扩展问题的结果,尽管RSA在
此刻,安全要求的不断提高很可能会导致
ECDSA是未来的实际解决方案。

后量子抗性

Shor的算法 [10]是一种众所周知的算法,用于使用以下方法破坏RSA密钥
量子计算机。 由于没有(公开)的
这样的机器,以下是对公钥未来的推测
密码学。 在撰写本文时,Shor的最佳实现
该算法可以击败15位密钥RSA加密。 虽然这听起来不对
随着越来越多的研究针对量子计算,RSA
随时可能陷入严重麻烦。

ECDSA的倡导者不应很快庆祝,因为椭圆形
曲线密码学 也很脆弱 [11]修改为Shor's
算法。 因此,如果两个密码都可以被量子计算机破解,
唯一的客观指标是实施这样的解决方案所需的复杂性
攻击。 根据公共研究,RSA 2048位密钥需要4098个量子位
(和5.2万亿个Tofolli门)被击败,而ECDSA 256位密钥
仅需要2330量子位(和126亿个Tofolli门)。 因此,RSA更
使用理论上的量子机器来打破它很昂贵。

结论

尽管这种比较绝非全面,但显然
RSA正确地获得了领先的数字签名地位
适用于大多数证书申请的算法。 但是,由于技术始终
以更加不可预测的方式推进安全意识和需求
增加。 大约十年前,嵌入式设备的安全性
小说和如今的安全通信对于任何现实世界都是必不可少的
应用。 结果,即使ECDSA相对较年轻,它也是任何人的
猜测它是否将取代RSA作为SSL /中认证的标准TLS
实现。

如果您(读者)仍然无法决定选择哪种算法,则有
支持ECDSA和RSA(作为后备机制)的解决方案,直到
加密社区确定了赢家。 查看本文部分,以备将来使用
指南。

TL; DR表

RSA ECDSA
采用 ?  
到期日 ?  
按键大小   ?
性能 ?  
缩放   ?
耐P / Q ?  

参考资料

订阅SSL.com的新闻通讯

不要错过SSL.com上的新文章和更新