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。事情会更加简单,因为图形化界面将被提供。