RSA 与 ECC:两者最大的区别在于密钥长度

专家预测,RSA 将被 ECC 取代成为现行标准,因为 RSA 的可扩展性正日益成为问题。物联网(IoT)时代已然来临,将有大量不同设备接入互联网。随着这些需求的出现,当我们迈向 2048 位加密时,RSA 的局限性就显露无遗。原本预计 2048 位安全性可支撑到 2030 年,但在计算能力不断增强的背景下,这一预期可能并不充分。

物联网的未来要求海量设备互联,而针对安全信息的攻击水平不断上升,也必然需要更强劲的算法。在这方面,网络世界确实渴望这样一种算法:密钥长度短、安全性强、计算资源消耗低。

RSA —— Rivest-Shamir-Adleman

成熟可靠。 RSA 于上世纪七十年代首次被提出,已被充分理解并广泛用于安全数据传输。作为加密方案,它出色地服务了数十年:公钥用于加密信息,私钥用于解密信息。

RSA 基于大整数分解的难题。 为识别素数而对大整数进行分解非常消耗处理器资源,因此至今仍是有效的防御手段。但它也有开销:例如密钥生成慢、计算机资源消耗大。

可扩展性并非最优。 在我们已知联网设备(物联网)激增、到 2030 年就可能被淘汰的当下,这是一个显著缺陷。RSA 对量子计算机和暴力破解攻击较为脆弱,因此需要一种能在指定安全级别下提供更好性能的新算法。

加密非常快速、非常简单。 RSA 加密基于简单原理,在合适的环境下运行速度可快于 ECC。RSA 虽不可扩展,但在某些场景下(例如内部组织)可能更快。RSA 的可靠性与安全性取决于整数分解的难度。

ECC —— 椭圆曲线密码学

需要特殊适配。 取决于你的受众以及为老旧设备维护系统的能力,你可能需要在尚未准备好的环境中实施 ECC 加密。有一种称为"混合 SSL"的部署方式,可在 RSA 信任根密钥上实现 ECC 密码学,但这需要与你的 CA 和托管服务商沟通。

依赖求解随机椭圆曲线的离散对数。 ECC 算法基于椭圆曲线离散对数问题(ECDLP),对黑客来说极难破解。该方程所构造的椭圆曲线对应的数学问题尚无已知解法,唯一途径是尝试随机数。然而,每 bit 的密钥长度比 RSA 提供更多组合,使得暴力破解几乎不可能成功。

ECC 的短密钥与 RSA 的长密钥一样强健。 这带来更少的网络开销,从而实现更快的性能与更好的用户体验。这也意味着长期来看有更大增长空间,因为每增加一 bit 提供的选项比 RSA 更多,密钥长度随时间增长的幅度更缓,使其在物联网场景中具有更好的可扩展性。

证书体积更小。 验证所需交换的信息量明显少于 RSA,降低了网络开销、提升了性能,从而改善用户体验。由于开销更低,服务器无需改变基础设施即可处理更高流量,进一步提升了可扩展性。

CPU 与内存消耗低。 对客户端和服务器而言这都是更好的体验,简化了连接与流程。ECC 消耗更少的计算能力与电池资源。RSA 证书每秒可处理 450 个请求、平均响应时间 150 毫秒,而 ECC 响应同样数量的请求仅需 75 毫秒。ECC 在服务器到桌面的通信中响应时间表现优异。

ECC 需要混合 SSL 才能工作。 对某些组织而言,网站必须兼容老旧设备,此时每家企业都应考虑混合证书技术,让 ECC 算法即便在 RSA 信任根证书上也能获支持。不过,每家企业都必须评估自身优先级:若长期安全方案是首要关切,ECC 密码学非常合适,因为它极其安全、密钥无破绽;若网络性能与高安全性同样关键,ECC 凭借快速密钥生成与更短密钥长度,再次成为更优选择。

RSA 与 ECC 算法强度对比

安全性取决于具体算法与密钥长度。下表清晰对比了 RSA 与 ECC 算法,展示了随着软硬件升级,密钥长度随时间增长的趋势。企业选择 ECC 的原因,正是它以更短密钥对抗冗长的 RSA 密钥。

安全强度(bit)DSA / RSA 密钥(bit)ECC 密钥(bit)ECC 对 RSA/DSA 比例有效期限
801024160–2231:6至 2010 年
1122048224–2551:9至 2030 年
1283072256–3831:122031 年之后
1927680384–5111:20—
25615360512+1:30—

如果使用 ECC 曲线保护 AES-256 会话,需要 512 位 ECC 密钥,而 RSA 则需要 15360 位密钥,这在当前系统中计算上并不现实。这一巨大差异使 ECC 成为当前嵌入式系统更具潜力、更受青睐的算法。

哪些证书颁发机构提供 ECC 证书?

证书颁发机构(CA)已开始在其 SSL 证书中嵌入 ECC 与 DSA 算法。部分 CA 同时提供 ECC、DSA 与 RSA 算法的证书,并可根据你的需求提供任意组合。

DigiCert 在其 Secure Site Pro 与 Pro with EV SSL 证书中提供 ECC 算法,可在所有现代浏览器中正常工作。Comodo 也提供丰富的 ECC 密码学选项与配置。GlobalSign 同样签发 ECC 证书,它是较新的采用者,于 2015 年才开始签发 ECC 认证。这绝非详尽清单,随着更多 CA 跟进最新的 Web 安全最佳实践,会有更多机构提供各类 ECC 证书。