0%

非对称加密

非对称加密,也称为公开密钥加密,是一种加密技术,使用一对密钥:公钥和私钥。公钥可以公开分享(但不意味着发送方和接收方的公钥相同!),而私钥则必须严格保密。

名词解释

非对称加密就是加密和解密使用的不是相同的密钥:只有同一个公钥-私钥对才能正常加解密。非对称加密的典型算法就是RSA算法,它是由Ron Rivest,Adi Shamir,Leonard Adleman这三个哥们一起发明的,所以用他们仨的姓的首字母缩写表示(RSA)。

非对称加密的工作原理

原理1:公钥加密,私钥解密

  1. 密钥生成:接收方生成一对密钥,包括公钥和私钥。
  2. 数据加密:发送方使用接收方的公钥对明文数据进行加密,生成密文。发送方将密文发送给接收方。
  3. 数据解密:接收方使用自己的私钥对收到的密文进行解密,恢复出原始的明文数据。

这种机制确保了只有持有私钥的人能够访问解密后的信息,从而防止了中间人攻击等安全风险。

原理2:私钥加密,公钥验证

  1. 数据准备:发送方准备要发送的数据(明文)。
  2. 生成哈希值:发送方使用哈希函数(如SHA-256)对明文数据进行哈希处理,生成数据的摘要(哈希值)。这个摘要是原始数据的唯一表示。
  3. 私钥加密:发送方使用自己的私钥对生成的哈希值进行加密,得到数字签名。这个签名是针对特定数据的,只有发送方能够生成,因为只有发送方拥有私钥。
  4. 发送数据:发送方将原始数据和数字签名一起发送给接收方。
  5. 接收方接收数据:接收方收到包含原始数据和数字签名的消息。
  6. 验证签名:接收方首先对收到的原始数据使用相同的哈希函数进行哈希处理,计算出新的摘要。然后,接收方使用发送方的公钥对数字签名进行解密,以获取发送方在签名时生成的哈希值。接收方将自己计算出的摘要与解密得到的摘要进行比较。如果两个摘要相同,则说明数据未被篡改,并且确认了数据确实是由持有私钥的发送方所发出。

注意

发送方和接收方的公钥是不相同的!

  • 当发送方希望将信息发送给接收方时,发送方使用接收方的公钥对明文进行加密。这样,只有接收方能够使用其私钥来解密这个信息。
  • 如果接收方想要向发送方回信,接收方会使用发送方的公钥来加密信息,而发送方则使用自己的私钥来解密。

非对称加密的应用

非对称加密不仅用于数据传输的安全,还广泛应用于数字签名和身份验证。具体应用包括:

  • 安全通信:在TLS/SSL协议中(主要发生在TLS握手阶段),非对称加密用于安全地交换会话密钥随后再使用对称加密进行快速的数据传输

  • 数字签名:发送方使用自己的私钥对数据进行签名,接收方可以使用发送方的公钥验证签名的真实性,从而确认数据未被篡改且来源可靠。

优缺点比较

优点

  • 安全性高:由于私钥不需要共享,降低了被截获的风险。
  • 简化了密钥管理:用户只需管理自己的私钥,而不必担心如何安全地共享一个共同的秘密。

缺点

  • 速度较慢:相较于对称加密,非对称加密算法通常较慢,因此不适合大量数据的直接加密。
  • 计算复杂度高:非对称加密算法在计算上比对称算法复杂,需要更多的处理能力。

参考

非对称加密算法