RSA加密算法在加密领域是一个重要的算法。
这是一种非对称加密算法,早在1977年就被发明,用于加密或签署信息。
特别是在加密领域,这一点至关重要,因为它允许对交易请求进行签名,从而使其合法化。
Summary
RSA算法
RSA 是这个算法的三位发明者姓氏的首字母缩写,即 Ronald Rivest、Adi Shamir 和 Leonard Adleman。
RSA算法是一种公钥加密系统。它被称为“非对称”是因为它基于一种加密方法,该方法使用一对数学相关但不同的密钥:私钥和公钥。
公钥与他人共享,而私钥显然必须绝对保密。公钥用于加密数据,但要解密数据则需要使用私钥。
在经典对称加密中,使用单一密钥进行加密和解密,因此该密钥必须保密,不能公开。而非对称加密允许安全地与任何人交换公钥。
安全性
这个方法被认为是安全的,因为它基于一个数学原理,即两个非常大的质数相乘相对简单,但将结果分解为其原始质因数则极其困难(且计算成本高)。
实际上,用户与任何人共享他的公钥,这样任何人都可以使用它来加密消息并发送给他。当收到加密消息时,用户必须使用他的私密私钥来解密它。
这样一来,只有拥有私钥的用户才能读取它,而其他任何人看到的都是加密的,实际上无法解密。
实际上,解密这个信息并非完全不可能,因为如果随机猜中私钥,就可以解密它。但找到私钥是如此困难,以至于要么实际上不可能,要么需要巨大的努力,绝对超出任何人的能力范围。
使用
可能最广泛使用的RSA算法用途是用于在线安全浏览。
如今访问网站时,通常使用的是HTTPS协议,其中最后的S代表“安全”。
这个安全协议使用SSL/TLS协议加密从服务器到用户以及反向传输的数据。这些协议在连接的初始阶段,即称为握手的阶段,使用RSA算法来建立一个安全的通信通道。
特别是,当通过HTTPS连接到网站时(现在几乎总是如此),服务器会发送其SSL/TLS证书,其中包含其公钥,通常使用RSA算法生成。您的浏览器则生成一个用于对称加密的临时密钥,并使用服务器的RSA公钥对其进行加密。
此时,浏览器将加密密钥发送到服务器,服务器使用其私有 RSA 密钥进行解密。这样可以确保浏览器和服务器都拥有相同的密钥,后续的数据包将使用对称加密进行加密,因为对称加密在传输大量数据时更加快速和高效。
RSA算法也用于数字签名。
然而,过程是相反的,即使用私钥进行签名(即加密),使用公钥进行验证(即解密)。
在加密领域的应用
这正是非对称加密算法在加密货币领域的常见用途。
当您想要进行一笔链上交易时,必须对其进行签名,以便节点将其识别为合法交易,即仅来自资金来源地址的所有者。
一旦生成交易,它就会通过哈希函数进行处理,从而创建该交易的唯一数字指纹。
当发送者将其发送到节点进行确认时,实际上是用自己的私钥进行签名,以便有数学证明表明请求仅来自资金的合法所有者。
节点可以使用发送者的公钥验证签名的有效性,该公钥对应于交易发起的钱包地址。如果验证成功,交易将被接受并添加到一个区块中。
此外,不仅仅是节点,所有人都可以进行此验证,因为公钥是众所周知的,因为它对应于交易发送方的公共地址,而该地址本身也是公开的。
ECDSA算法
事实上,许多加密协议,包括Bitcoin和Ethereum,使用另一种非对称加密算法来签署交易。
这涉及到椭圆曲线数字签名算法 (ECDSA),其运作原理在概念上与RSA相同。
ECDSA 被优先于 RSA,因为它更高效且安全,使用更小的密钥,但具有与 RSA 相同的安全级别。例如,256 位的 ECDSA 密钥提供的安全性可与 3072 位的 RSA 密钥相媲美。
通过这种方式,可以减少交易数据的大小,节省区块链上的空间并降低手续费。
此外,使用 ECDSA 的签名和验证操作在计算上比使用 RSA 更快。

