Skip to content

PGP工作原理详解

Published: at 07:59 AM

Table of contents

Open Table of contents

前言

最近在浏览博客的时候发现博主的 PGP Key 页面,虽然之前知道是用于邮件通信加密的,但是具体原理及使用却不太清楚,所以找了时间查阅了相关资料,整理一下 PGP 加密的一些内容。

PGP 定义

Pretty Good Privacy(PGP)是一个加密程序,为数据通信提供加密隐私身份验证。PGP 用于对文本、电子邮件、文件、目录和整个磁盘分区进行签名、加密和解密,并提高电子邮件通信的安全性。PGP 加密使用散列数据压缩对称密钥加密,最后是公钥加密的串行组合。其中最关键的是两种形式的加密的组合:对称密钥加密(Symmetric Cryptography)和非对称密钥加密(Asymmetric cryptography)。

PGP 工作原理

在实现 PGP 加密的过程中,首先使用对称密钥加密算法对原始数据进行加密。对称密钥加密算法包括 DES、AES、Blowfish 等,这些算法能够快速地加密和解密数据,但是需要发送方和接收方之间共享密钥。

为了避免在网络上传输密钥,PGP 使用了公钥加密算法。公钥加密算法是一种使用不同的密钥加密和解密的算法,其中公钥用于加密,而私钥用于解密。公钥加密算法包括 RSA、DSA 等,这些算法具有极高的安全性,但是加密和解密速度比对称密钥加密算法慢得多。

PGP 将对称密钥加密,并使用接收方的公钥进行加密。这种方式可以保证密钥的安全性,同时可以确保只有接收方可以解密对称密钥,从而保护了数据的机密性。接收方使用自己的私钥对加密的对称密钥进行解密,然后使用对称密钥对数据进行解密。这种方式既可以保护数据的安全性,也可以提高加解密的速度。

PGP工作原理示意

PGP 使用两种类型的加密算法来保护数据:对称密钥加密和公钥加密。对称密钥加密是一种使用相同密钥加密和解密的算法,因此在加密和解密之间需要共享密钥。而公钥加密则是一种使用不同的密钥加密和解密的算法,其中公钥用于加密,而私钥用于解密。下面我将简单介绍一下这两种算法的工作原理。

对称密钥加密

对称密钥加密是一种使用相同密钥加密和解密的算法,因此在加密和解密之间需要共享密钥。对称密钥加密的过程如下:

  1. 发送方选择一个加密密钥,并使用它将原始数据加密。
  2. 加密后的数据被发送到接收方。
  3. 接收方使用相同的密钥将加密的数据解密。

尽管对称密钥加密非常高效,但它有一个明显的缺点,即需要在发送方和接收方之间共享密钥。如果这个密钥被黑客或其他人获取,数据将无法得到保护。为了解决这个问题,PGP 使用了另一种加密算法:公钥加密。

公钥加密

公钥加密是一种使用不同的密钥加密和解密的算法,其中公钥用于加密,而私钥用于解密。公钥加密的过程如下:

  1. 发送方获取接收方的公钥,并使用它将对称密钥加密。
  2. 加密后的对称密钥和加密后的数据被发送到接收方。
  3. 接收方使用自己的私钥将加密的对称密钥解密。
  4. 接收方使用解密后的对称密钥将加密的数据解密。

公钥加密允许发送方使用接收方的公钥加密数据,而无需共享对称密钥。这样,即使黑客获得了加密后的数据,也无法使用它,因为他们没有接收方的私钥来解密对称密钥。

PGP 示例

我用常用的加密电子邮件来举个例子,具体的工作流程是:

用户 A 要给用户 B 发送邮件。

  1. 用户 B 生成一对密钥(公钥和私钥),将公钥发送给用户 A。
  2. PGP 软件使用算法生成一个随机的会话密钥,这个密钥是一个很大的数字,而且只使用一次。
  3. 用户 A 用刚刚生成的密钥,加密邮件,并使用用户 B 的公钥对该密钥进行加密。
  4. 最后,用户 A 将加密的邮件及密钥发送给用户 B,用户 B 使用自己的私钥进行解密,得到会话密钥,进而可以解密完整的邮件。

PGP 加密用途

PGP 有三个主要用途:

其中,发送安全电子邮件 - 是迄今为止 PGP 的主要应用。数字签名是一种基于公钥加密的技术,用于证明信息的发送者身份和信息完整性,以及防止信息被篡改。发送方使用自己的私钥对消息的摘要进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并生成消息的摘要,比对两个摘要是否一致,来验证消息的完整性和身份。如果数字签名验证失败,则说明消息可能被篡改或者来自伪造的发送方。

总结

PGP 使用对称密钥加密算法保护数据机密性,使用公钥加密算法保护对称密钥的安全性,使用数字签名技术验证消息的完整性和身份。这种结合了对称密钥和公钥加密的方法,可以在安全性和效率之间取得平衡。PGP 已经成为一种被广泛应用的数据加密和数字签名的标准,保护了用户的隐私和安全。

Reference

Pretty Good Privacy - Wikipedia

What is PGP Encryption and How Does It Work? | Varonis

Public Key Cryptography Simply Explained | Hacker Noon