自由的加密工具 GPG

爱德华斯诺登说:

说自己不在乎隐私因为没有什么可以隐藏,就跟说自己不在乎自由言论因为没有什么可以说一样。

之前,Peter 介绍了对称加密和非对称加密来实现互联网上的隐私通信的原理,但是现实中总要有一个软件来帮我们实现这些操作,而 GPG 就是我们需要的这个软件。

什么是 GPG ?

GNU Privacy Guard ,简称 GPG ,是一个开源软件,是自由软件基金会的作品。它本身是一个命令行工具,当然很多图形界面工具底层也是使用 GPG 。

GPG 实现了久负盛名的 PGP 标准,以至于 GPG 和很多 PGP 软件是可以互操作的。PGP 在密码学民用道路上久负盛名,是密码圣战的一个标志性项目。

GPG 可以用来签署和加密数据。方便发送和接收方进行数据加密和对方身份的确认。GPG 使用对称加密技术来加密大段内容,而采用非对称加密技术来交换对称加密的秘钥。

工作流程

GPG 工作的前提是这样。通信双方每个人都拥有自己的的非对称加密的秘钥对,也就是公钥和私钥。双方提前共享了各种的公钥给对方。

如果要安全的发送信息,发送方 Alice 需要用自己的私钥和接收方 Bob 的公钥来加密数据。Bob 需要 Alice 的公钥和自己的私钥来解密信息。这样不但可以解密 Alice 的信息,而且可以保证信息的确是 Alice 发出的。熟悉非对称加密的朋友可以看出这个过程同时包含了加密通信和数字签名两个操作。

这就是 GPG 工作的基本流程了。加密后的数据 Alice 可以通过 Email 发送,也可以放到一个地方去让 Bob 下载。

能够完成的功能

下面列出 GPG 能够完成的几个主要功能。

第一,生成非对称加密的秘钥对,命令如下

gpg --full-generate-key

GPG 支持的非对称加密方式包含 RSA 和椭圆曲线等常见非对称加密的算法。

第二,可以用对称加密的方式来对文件进行加密。加密 gpg -c ...和解密 gpg -d ... 用同一个密码即可。支持 AES 这样的算法。

第三,可以用 ZIP 来压缩文件。

这里不一一列出了。

总结

GPG 是知名的开源软件,是可以放心使用的加密手段。通过 GPG 我们就可以很方便的在互联网上进行隐私通信了。可以确信,没有任何中间人可以解密我们的通信内容,这是个人权利的一种体现。很多开源软件大牛的个人网站上都会有自己的 GPG 的 key ,例如 https://stallman.org/gpg.html 。

参考: