banner
三文字

方寸之间

居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
github
email
misskey

PGP工作原理详解

前言#

最近在浏览博客的时候发现博主的 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 已经成为一种被广泛应用的数据加密和数字签名的标准,保护了用户的隐私和安全。

参考#

Pretty Good Privacy - Wikipedia

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

Public Key Cryptography Simply Explained | Hacker Noon


欢迎访问我的个人博客:方寸之间

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。