如何使用GPG加密和解密文件
GnuPG,通常被称为GPG,是Pretty Good Privacy加密标准的开源实现。它为静态数据和传输中的数据提供了对称和非对称加密。
本文介绍如何使用GPG,演示其在常见操作系统上的安装,并提供使用说明。
GPG如何保护数据?
加密旨在实现以下三个目标:
- 真实性。保证消息的来源。
- 完整性。保证消息没有意外更改。
- 不可否认性。保证消息的来源。
GPG通过结合对称和非对称加密来保护存储的文件和数字通信,从而满足所有这三个目标。 对称和非对称加密是当今安全和隐私策略的关键组成部分。对称加密使用单个私钥(共享密钥)来加密和解密数据,而非对称加密使用数学上相关的公钥和私钥对。用一个密钥加密的数据只能用另一个密钥解密——例如,使用公钥加密的数据只能使用相关的私钥解密。 GPG结合了这两种方法,使用户能够确保数据隐私、来源和完整性。因此,GPG被广泛使用和支持。
常见的GPG用例
考虑以下使用GPG保护数据存储和传输的方法:
- 加密电子邮件以实现保密性。
- 数字签名电子邮件以确保真实性。
- 加密文件以实现数据保密性。
- 对软件包、脚本和其他应用程序进行数字签名。
- 对Git提交进行数字签名。
请考虑您自己的工作流程,以确定GPG可以保护您信息的其他方式。
安装GPG
GPG是免费的开源软件,有助于确保其安全性和稳定性。它适用于常见平台,包括Linux、macOS和Windows。
大多数Linux发行版默认包含GPG。使用gpg --version命令来验证您是否拥有当前版本。如果GPG不存在,请使用您发行版首选的包管理器。
对于Ubuntu、Debian、Linux Mint和类似的发行版,键入:
|
|
在Red Hat Enterprise Linux、Fedora、Rocky和类似的发行版上,键入:
|
|
macOS用户可以使用Homebrew包管理器通过键入以下命令来安装GPG:
|
|
macOS用户也可以使用GPG Suite图形应用程序来管理加密。 偏好Windows平台的用户可以通过两种方式访问GPG:GnuPG二进制文件是来自GnuPG网站的官方安装程序,而Gpg4win是图形/命令行应用程序。
如何使用GPG进行对称加密
对称加密提供了最直接的管理流程。但是,您必须能够安全地将密钥传送到需要进行解密的任何远程连接点。此方法最适合在单个系统内或安全环境内的数据加密场景。 加密文件最简单的方法是使用以下命令:
|
|
这会生成一个名为private-file.txt.gpg的加密文件。
GPG会提示您输入一个密码短语来保护该文件。
您可以通过使用以下更复杂的命令来指定更多细节,例如特定的文件名:
|
|
然后,要解密new-private-file.txt.gpg文件,请键入:
|
|
您可以用-o和-d标志替代,以减少一些输入。GPG会自动提示您输入为私钥设置的密码短语。
使用此流程来保护数据备份文件、共享计算机上的机密信息或您正在传输到远程存储设备以及从中取出的资源。
请注意,GPG在加密过程中会生成文件的新版本。原始的非加密文件仍保留在驱动器上。请考虑使用诸如shred之类的命令安全地删除它。
如何为不对称加密生成密钥对
通过生成公私钥对来开始使用GPG。这些密钥在数学上是相关的。在非对称加密中,如果您用一个密钥加密数据,则必须用另一个密钥解密。以下是两个选项的示例:
- 保密性:使用公钥加密,使用私钥解密。
- 数字签名,完整性:使用私钥加密,使用公钥解密。
在Linux系统上,键入以下命令来生成密钥对:
|
|
您有多种选项可以自定义密钥长度、类型和其他设置。GPG会提示您输入姓名和电子邮件地址作为您密钥身份的一部分。您还可以设置一个强密码短语来保护您的私钥。 您可能需要与需要解密您使用私钥加密的数据的其他用户共享您的公钥。使用以下命令导出所需的公钥信息:
|
|
如果您收到另一个用户的公钥或需要向您的公钥接收者提供说明,请使用此命令将其导入到您的系统中:
|
|
通过键入gpg --list-public-keys来验证密钥是否存在。用户的公钥使您能够解密使用相关私钥加密的数据。
如何使用GPG进行不对称加密
要使用另一个用户的公钥加密文件——从而确保只有拥有相关私钥的该用户才能解密数据——请键入以下命令:
|
|
此命令指定加密文件的名称——secret-file.txt.gpg——以及收件人的电子邮件地址——recipient-email@example.com。在此示例中,您正在加密secret-file.txt文件。
在数据传输的另一端,用户输入以下命令开始解密过程:
|
|
该用户输入保护其私钥的密码短语来完成该过程。
将GPG加密集成到您的日常工作中可以极大地增强数据的安全性。您已经在做备份了,对吧?现在,您可以加密那些备份以获得更高的机密性。您还使用电子邮件处理重要的业务。学习如何使用GPG对消息进行数字签名,可以为通信增加一层重要的保护。