跳转至

GPG 简介

本文仅是“简介”,想要获取详细内容、原理性知识,可以合理使用搜索引擎

加密与解密

加密即对信息进行特定的处理,从而杜绝信息在传播过程中被泄漏。

Info

加密与生活密切相关。除去非常明显的使用场景外,还有很多其他场景。 例如,平时登录社交软件时,我们输入密码来验证身份,但是实际上,大多数时候,服务器上储存的并非我们的密码本身,而是密码作为字符串产生的哈希(也就是指纹),我们向远端发送的也是指纹。 另外,你或许有注意到,浏览器访问 http 开头的网站时会提示“不安全”,而 https 开头的网站很多时候则不会提示,但有时也会因为“证书过期”而告诉你“危险”。这与“证书”以及“信任”有关。如果感兴趣,建议读完本章后上网搜索。

对称加密与非对称加密

对称加密中,加密解密使用同一个密钥

非对称加密中,密钥是一个密钥对,分为私钥和公钥

私钥个人持有,公钥广而告之

私钥加密的文件只有公钥能解密,公钥加密的文件只有私钥能解密

散列算法

将一个文件通过特殊算法映射为一段数字,这段数字称为该文件的”指纹“,当原文件具有微小改变时,该指纹即产生变化。

通过指纹反推原文件内容几乎完全不可能(需要付出极大的时间或算力代价),通过特定方式修改文件来凑出相同指纹也几乎不可能。

因此一般情况下,可以认为:指纹一致,则文件无改变。

好奇背后原理,可以合理使用搜索引擎

下载文件后,用安全散列算法软件产生该文件的指纹,然后与官方给出的指纹进行对比,如果不一致,说明下载到的文件可能有问题 虽然很可能是自己弄错指纹了

密钥的使用

加密

互联网上,B 得知了 A 的公钥,B 就可以利用 A 的公钥对文件进行加密,然后发给 A;如果文件被 C 截获,那么 C 不具有解密的能力,无法得知其内容。

签名

A 编辑了一份文件,然后产生文件的指纹,用私钥对指纹进行加密,加密后的指纹即是”签名“。

其他所有人都可以验证,即:用 A 的公钥进行解密,然后对比指纹,如果二者一致,则可以认为文件没有被修改,仍保持为 A 签名时刻的内容。

GPG

OpenPGP

一种协议,来定义以上密钥的类型和各种操作的标准。

GPG

即 GnuPG(GNU Privacy Guard),是一个软件,用于用户自行管理密钥。

拥有自己的密钥对

你可以使用 gpg --gen-key 来产生一个密钥对。

你可以非常容易在搜索引擎中查到如何: - 加密文件 - 签名文件 - 导出公钥 - 导出私钥 - 将公钥上传至公钥服务器 - 导出撤销证书(用于上传至公钥服务器,从而声明你不再使用该密钥对)

如果你在 Windows 环境下使用,你可以下载 gpg4win。事情会更加简单,因为图形化界面将被提供。