椭圆曲线密码学:它是什么? 它是如何工作的?
椭圆曲线密码术 (ECC) 是一种公钥密码算法,用于执行关键的安全功能,包括加密、身份验证和数字签名。 ECC基于椭圆曲线理论,通过椭圆曲线方程的性质生成密钥,与传统的对非常大的素数进行因式分解的方法相比。
ECC 与 RSA:主要区别
Rivest-Shamir-Adleman (RSA) 加密方法仍然是当今采用最广泛的公钥算法。 它广泛用于加密和验证网站、电子邮件、软件等。
RSA 最初由 Ron Rivest、Adi Shamir 和 Leonard Adleman 于 1977 年发明,它使用质因数分解方法,该方法涉及取两个大的随机质数并将它们相乘以创建公钥。
几十年来,RSA 算法一直很好地服务于安全领域。 然而,分解大数和“破解”RSA 密钥所需的数学和计算能力已经变得越来越容易被攻击者使用和实用。 为了应对高级计算和数学带来的威胁,RSA 密钥大小需要增长,这从长远来看是不可持续的。
近年来,一些研究人员发现了 RSA 公钥中的漏洞。 例如,在 2020 年,Keyfactor 研究人员分析了互联网上超过 7500 万个有效的 RSA 密钥,发现每 172 个使用 RSA 密钥的证书中就有 1 个容易受到称为“分解”的实际攻击。
ECC 被认为比 RSA 更安全,因为 RSA 基于大数因式分解,这是计算机已经解决的问题。 相比之下,椭圆曲线密码学基于离散对数问题,这更难解决。 事实证明,即使使用今天的技术,对使用 ECC 生成的密钥进行逆向工程也需要比宇宙年龄更长的时间。
ECC 密钥也比 RSA 密钥(公钥加密中最常用的密钥类型)短得多,使它们更易于管理和存储。 更短的密钥还意味着加密和解密数据所需的处理能力更少,从而使 ECC 比其他算法更高效。
ECC有什么好处?
一些好处使椭圆曲线加密成为某些应用程序的有吸引力的选择。 首先,如上所述,ECC 需要比其他方法更小的密钥来实现相同级别的安全性。 这在可用存储空间有限的受限环境中可能很重要。
由于 ECC 以较低的计算能力和电池资源使用提供同等的安全性,因此它越来越广泛地用于加密货币平台,包括比特币和以太坊、移动应用程序以及计算能力有限的低功耗设备。
最后,ECC可用于数字签名、密钥交换等用途; 这使它成为适用于许多不同应用的多功能工具。
ECC 是如何工作的?
椭圆曲线是由形式为 y^2 = x^3 + ax + b 的方程定义的平面曲线。 A 和 b 是常量,x 和 y 是变量。 椭圆曲线有许多有趣的数学特性,使它们非常适合密码学。 例如,给定椭圆曲线上的两个点 P 和 Q,存在第三个点 R,使得 P + Q = R。此属性称为“点加法”,如下所示。
密码学的另一个有价值的特性是“点倍增”。 这是当我们在椭圆曲线上取一个点 P 并找到另一个点 2P 使得 P + P = 2P。 如下图所示。
我们可以一直加倍点数,直到到达我们称为“无穷远点”的点,我们将其表示为 O。您可以将此视为 P 和 2P 之间的距离任意接近于零的极限情况。
因此,我们可以随心所欲地在椭圆曲线上添加和加倍点,而永远不会两次获得准确的时刻(O 除外)。
给定椭圆曲线上的任意一点P,将P(包括O)相加、相加,可以得到无限多的点。 因此,可以使用椭圆曲线生成无数个可能的密钥。
如何使用椭圆曲线密码术?
现在我们已经了解了椭圆曲线及其工作原理,让我们看看它们是如何在密码学中使用的。 椭圆曲线密码学通常依赖于椭圆曲线离散对数问题 (ECDLP),它指出如果我们知道 y = g^x mod p 就很难求解 x,其中 g 是某个已知整数,p 是素数。
这个问题很复杂,因为没有已知的方法可以在给定 y 的情况下有效地找到 x(也就是说,不尝试 x 的所有可能值,直到找到一个可行的值)。
由于 DDL 问题难以解决,因此如果我们知道 x = g^y mod p,则 y 也将难以解决。 也就是说,对于不知道秘密指数 y 的人来说,在给定 x 的情况下计算 y 是很困难的(同样,在他们找到一个可行的值之前,不尝试所有可能的值)。
因此,如果我们仔细选择参数 g 和 p,不知道秘密指数 x 的人应该很难在给定 y 的情况下计算 x(反之亦然)。
只要难以计算给定 y 的秘密指数 x(反之亦然),我们就可以将椭圆曲线加密算法用于数字签名和密钥协商协议等事物。
椭圆曲线密码学的实际应用
椭圆曲线密码学在现实世界中有多种实际应用。 一个例子是网上银行和支付。 当您使用借记卡或信用卡进行在线购物时,您的信息通常会在通过互联网发送之前使用 ECC 进行加密。 这可确保您的信息在整个交易过程中保持机密和安全。
ECC 的另一个应用是电子邮件加密。 Pretty Good Privacy (PGP) 是一种流行的电子邮件加密软件,它可以利用 ECC 来保护您的电子邮件不被预期收件人以外的任何人阅读。
PGP 通过为每个用户生成公钥/私钥对来工作。 公钥可以与任何人共享,但私钥必须时刻保密。 要加密电子邮件,您只需要收件人的公钥; 相反,您将需要您的私钥来解密您收到的电子邮件。
启发
ECC 是一个强大的工具,可以在各种应用程序中保护数据、验证连接和验证完整性。 随着我们的生活越来越多地转移到网上,密码学对于确保我们的数据安全至关重要。
椭圆曲线密码术只是可用于此目的的一种密码算法。 随着我们迈向后量子世界,新的算法应运而生,每种算法都有其独特的优势。 IT 和安全领导者必须了解其组织内的应用程序如何使用加密技术,以及随着安全和技术环境的发展需要采取哪些措施来进行调整。