介绍
公钥加密 (PKC) 也称为非对称加密,是一种同时使用私钥和公钥的框架,而不是对称加密中使用的单个密钥。密钥对的使用为 PKC 提供了一组独特的特性和功能,可用于解决其他加密方法中固有的问题。这种形式的密码学已成为现代计算机安全的重要组成部分,也是不断发展的加密货币生态系统的重要组成部分。
公钥加密如何工作?
在PKC方案中,发送方使用公钥来加密信息,接收方使用私钥来解密信息。由于两个密钥互不相同,因此可以安全地使用公钥,而不会损害私钥的安全性。每对非对称密钥都是唯一的,这确保使用公钥加密的消息只能由拥有相应私钥的人读取。
由于非对称加密算法生成数学上相关的密钥对,因此它们的密钥长度比对称加密算法的密钥长度要大得多。如此大的长度(通常在 1024 到 2048 位之间)使得从其对应的公钥计算私钥变得极其困难。当今最常用的非对称加密算法之一是 RSA。
在 RSA 方案中,密钥是使用两个数字(通常是两个大素数)相乘获得的模数生成的。简而言之,该模块生成两个密钥(一个可以共享的公共密钥,一个应该保密的私有密钥)。 RSA 算法由 Rivest、Shamir 和 Adleman 于 1977 年首次描述(因此称为 RSA),并且至今仍然是公钥密码系统的核心组成部分。
PKC作为加密工具
私钥加密解决了对称算法的古老问题之一,即用于加密和解密的密钥的传输。通过不安全的连接发送此密钥可能会将其暴露给第三方,然后第三方可以读取使用共享密钥加密的任何消息。尽管有密码学方法(例如Diffie-Hellman-Merkle密钥交换协议)可以解决这个问题,但它们仍然容易受到攻击。相反,在私钥加密中,用于加密的密钥可以通过任何连接安全地传输。因此,非对称算法提供比对称算法更高级别的保护。
创建数字签名
非对称加密算法的另一个应用是使用数字签名的数据认证。本质上,数字签名是使用消息中的数据创建的哈希值。当发送此消息时,接收者可以使用发送者的公钥来验证签名。通过这种方式,他们可以识别消息的来源并确保消息未被篡改。在某些情况下,数字签名和加密一起使用,这意味着哈希本身可以作为消息的一部分进行加密。但需要注意的是,并非所有的数字签名方案都使用加密方法。
局限性
尽管 PKC 可用于提高计算机安全性并提供消息完整性检查,但它也有一些局限性。由于与加密和解密相关的复杂数学运算,非对称算法在处理大量数据时可能会非常慢。这种类型的密码学还取决于私钥始终保密的假设。如果私钥被意外共享或泄露,则使用相应私钥加密的所有消息的安全性将受到损害。用户还可能意外丢失私钥,并且无法访问加密数据。
公钥密码技术的应用
许多现代计算机系统都使用这种类型的密码学来确保机密信息的安全。例如,可以使用公钥加密技术对电子邮件进行加密,以保护其内容的机密性。
支持安全连接到网站的安全套接字层 (SSL) 协议也使用非对称加密。 PKC 系统甚至被认为是提供安全电子投票环境的一种手段,有可能允许选民通过家用计算机参与选举。
PKC 在区块链技术和加密货币中也发挥着重要作用。设置新的加密钱包时,会生成一对密钥(公钥和私钥)。钱包地址是使用公钥生成的,可以安全地与他人共享。另一方面,私钥用于创建数字签名和验证交易,因此应该保密。
一旦通过验证数字签名中包含的哈希值验证了交易,该交易就可以添加到区块链分类账中。该数字签名验证系统确保只有拥有与相应加密钱包关联的私钥的人才能转移资金。
应该注意的是,加密货币应用中使用的非对称加密技术与用于计算机安全目的的非对称加密技术不同。例如,比特币和以太坊使用一种特殊的算法来验证交易,称为“椭圆曲线数字签名算法(ECDSA)”。 ECDSA 还可以在不使用加密的情况下创建数字签名。这意味着区块链不需要加密。
结果
公钥密码学在当今数字系统的安全中发挥着重要作用,从计算机安全到加密货币交易的验证。通过使用成对的公钥和私钥,非对称加密算法解决了与对称密码相关的主要安全问题。尽管 PKC 已经使用多年,但新的应用程序和应用程序正在定期为其开发,特别是在区块链和加密货币领域。
