使用GPG加密和解密文件的完整指南

本文详细介绍了GnuPG(GPG)加密工具的使用方法,涵盖其核心原理(真实性与不可否认性)、安装步骤以及对称与非对称加密的实践操作,帮助读者有效保护数据隐私和通信安全。

如何使用 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 和类似发行版,输入:

1
sudo apt install gnupg

在 Red Hat Enterprise Linux、Fedora、Rocky 和类似发行版上,输入:

1
sudo dnf -y install gnupg

macOS 用户可以通过输入以下命令使用 Homebrew 软件包管理器安装 GPG:

1
brew install gnupg

macOS 用户也可以使用 GPG Suite 图形应用程序来管理加密。

喜欢 Windows 平台的用户可以通过两种方式访问 GPG:GnuPG 二进制文件是来自 GnuPG 网站的官方安装程序,而 Gpg4win 是图形/命令行应用程序。

如何使用 GPG 进行对称加密

对称加密提供最直接的管理过程。但是,您必须能够安全地将密钥传送到任何需要解密的远程连接处。这种方法最适用于单个系统内或安全环境内的数据加密场景。

加密文件的最简单方法是使用此命令:

1
gpg -c private-file.txt

这将生成一个名为 private-file.txt.gpg 的加密文件。

GPG 会提示您输入密码短语来保护文件。

您可以通过使用以下更复杂的命令来指定更多细节,例如特定文件名:

1
gpg --output new-private-file.txt.gpg --symmetric private-file.txt

然后,要解密 new-private-file.txt.gpg 文件,请输入:

1
gpg --output private-file.txt --decrypt new-private-file.txt.gpg

您可以用 -o-d 标志替代以减少输入。GPG 会自动提示您输入为私钥设置的密码短语。

使用此过程来保护数据备份文件、共享计算机上的机密信息或传输到远程存储设备及从中取出的资源。

请注意,GPG 在加密过程中会生成文件的新版本。原始的非加密文件仍保留在驱动器上。考虑使用诸如 shred 之类的命令安全地删除它。

如何为非对称加密生成密钥对

通过生成公钥-私钥对来开始使用 GPG。这些密钥在数学上相关联。对于非对称加密,如果您用一个密钥加密数据,则必须用另一个密钥解密。以下是两个选项的示例:

  • 保密性:使用公钥加密,使用私钥解密。
  • 数字签名,完整性:使用私钥加密,使用公钥解密。

在 Linux 系统上,输入以下命令生成密钥对:

1
gpg --full-generate-key

您有多种选项可以自定义密钥长度、类型和其他设置。GPG 会提示您输入姓名和电子邮件地址作为密钥身份的一部分。您还可以设置一个强密码短语来保护您的私钥。

您可能需要将您的公钥与其他用户共享,以便他们可以解密使用您的私钥加密的数据。使用以下命令导出所需的公钥信息:

1
gpg --armor --export your-email@example.com > pubkey.asc

如果您收到另一个用户的公钥或需要向接收您公钥的人提供说明,请使用此命令将其导入您的系统:

1
gpg --import pubkey.asc

输入 gpg --list-public-keys 验证密钥是否存在。用户的公钥使您能够解密使用相关私钥加密的数据。

如何使用 GPG 进行非对称加密

要使用另一个用户的公钥加密文件——从而确保只有拥有相关私钥的用户才能解密数据——请输入以下命令:

1
gpg --output secret-file.txt.gpg --encrypt --recipient recipient-email@example.com secret-file.txt

此命令指定加密文件的名称——secret-file.txt.gpg——以及收件人的电子邮件地址——recipient-email@example.com。在此示例中,您正在加密 secret-file.txt 文件。

在数据传输的另一端,用户输入以下命令开始解密过程:

1
gpg --output secret-file.txt --decrypt secret-file.txt.gpg

该用户输入保护其私钥的密码短语以完成该过程。

将 GPG 加密集成到您的日常工作中可以极大地增强数据的安全性。您已经在做备份了,对吧?现在,您可以加密这些备份以获得更高的保密性。您也使用电子邮件进行重要业务往来。学习如何使用 GPG 对消息进行数字签名为通信增加了重要的保护层。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计