2017-03-12-使用GPG来加密通信及作品签名

概述

  1. 用于在不安全的网络条件下(通信拦截, 身份伪造),用来让明我就是我。 如果这条短信(邮件,程序)确实是我出自我手。
  2. GPG(RSA) 作用在于1).建立互相信任的通信线路。 2).发布可信任的作品
  3. GPG是RSA 算法的一个应用
  4. 由公钥,私钥组成。私钥,公钥成对使用,公钥可以由私钥生成。公钥可以用来验证签名。

生成自己的密钥

根据提示填写不知道的默认 gpg --gen-key

列出所有密钥

gpg --list-keys

删除指定密钥

gpg --delete-key [用户ID]

生成文本公钥, 私钥

gpg --armor --output public-key.txt --export [用户ID] gpg --armor --output private-key.txt --export-secret-keys

通信方法

比如给用户A发送加密文件 hello.txt 1. 先导入用户A的公钥ID userA_pub_key.asc gpg --import userA_pub_key.asc 1. 查看获得userA的ID gpg --list-key 查到userA的ID为 USERA 1. 用userA的公钥加密hello.txt gpg --recipient USERA --output hello.en.txt --encrypt hello.txt 1. 用常用方式可以是不安全的邮件,IM等发送 hello.en.txt 文件 1. 用户A收到后解密 gpg --decrypt hello.en.txt 或者 gpg hello.en.txt 解密的时候需要输入使用私钥, 私钥的使用的需要输入当时设置的密码。

作品签名与签名校验

签名与作品放在一起

gpg --sign artwork.txt 或者 gpg --clearsign artwork.txt 这一步也要输入密码 ### 签名作品分开 gpg --detach-sign art.exe 或者 gpg --armor --detach-sign art.exe ### 校验 gpg --verify art.txt.asc 或者 gpg --verify art.txt.asc art.txt

先签名后加密

gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt art.txt