gpg初次尝试

信息安全原理 

作业3 与TA用公私钥交换信息

gpg - OpenPGP encryption and signing tool

就是一个加密和签名的工具

捣鼓了一上午,终于用起来了,说来还把字打错了,pgp真不知道是啥


首先生成一对密钥

amrzs@ubuntu:~$ gpg --gen-key 
gpg (GnuPG) 1.4.14; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 1
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048) 
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 60
密钥于 2014年05月17日 星期六 10时45分02秒 CST 过期
以上正确吗?(y/n) n
密钥的有效期限是?(0) 45
密钥于 2014年05月02日 星期五 10时45分02秒 CST 过期
以上正确吗?(y/n) y

您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
    “Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”

真实姓名: amrzs
电子邮件地址: myemail@gmail.com
注释: rsa for information security course
您选定了这个用户标识:
    “amrzs (rsa for information security course) <myemail@gmail.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? o
您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要267字节)
fdgjhhujhtgertrefdgdeter]gfdgreiil[po4[]op[=owerewrewrewfjhfuhuewewewwwweee 
ewrewweryyruwyruywuqgtght


reretet
.+++++
...+++++
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要92字节)
...+++++
..+++++
gpg: 密钥 340E02B6 被标记为绝对信任
公钥和私钥已经生成并经签名。

gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
gpg: 下次信任度数据库检查将于 2014-05-02 进行
pub   2048R/340E02B6 2014-03-18 [有效至:2014-05-02]
      密钥指纹 = 891E B35E 31D1 F008 0138  0A87 7FC0 656F 340E 02B6
uid                  amrzs (rsa for information security course) <myemail@gmail.com>
sub   2048R/13F9301C 2014-03-18 [有效至:2014-05-02]


做这一堆琐事还真累


下面查看一下生成的密钥

amrzs@ubuntu:~$ gpg --list-keys
/home/amrzs/.gnupg/pubring.gpg
------------------------------
pub   2048R/340E02B6 2014-03-18 [有效至:2014-05-02]
uid                  amrzs (rsa for information security course) <myemail@gmail.com>
sub   2048R/13F9301C 2014-03-18 [有效至:2014-05-02]


导出公钥到文件中 -a为ascii模式

amrzs@ubuntu:~$ gpg --export -a > public_key.rsa 
amrzs@ubuntu:~$ cat public_key.rsa 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.14 (GNU/Linux)

mQENBFMns6EBCADYEMqh+uZ9xXct36e8ypyC6+W+qhge5roJ9E6vYwA7/mE4jKvj
Fi3izHdFCA3t56ggoaa8lSKrr7MapGyVvRVrZVCnqpPIwmUCHTrs2rbV6Zo1X688
B6ww2LJrp9EjsvKgR2G71ZlbjzfpnktgAKZd2DUEeIT17fEhF7Zem2FFuBpmtf4a
fNa02uJCCFuKCeGWyf0gBf29tEIDezXrXm0fBQrJa2ugtMQpV5YGg/KUtxW81Z/1
Exu87HPFQazwSdAU0n8uNJd1VZ9pTuPuHNPCvhcfJj7i5bgDrgjIoHVQOIoKJnoH
x0rc5vTwiJKQAvR7Rarap2uW7m8LE1CpQanDABEBAAG0QmFtcnpzIChyc2EgZm9y
IGluZm9ybWF0aW9uIHNlY3VyaXR5IGNvdXJzZSkgPGFtcnpzemhhbmdAZ21haWwu
Y29tPokBPgQTAQIAKAUCUyezoQIbAwUJADtTgAYLCQgHAwIGFQgCCQoLBBYCAwEC
HgECF4AACgkQf8BlbzQOAraqZgf9HvxjcU1fFMe1oxlndYG962BGZWkKsy/8EHQx
8cRuxGcIgIQ5W+UmzFtWqYVHFlAZcYOe69pkTGx6/bEyLnWRD3ZnaQ9uzM1bsFiF
xKV9+rRzO5S7DvqkOYISCxX8IygDOiYfiExRCgFP9xMLRj3GgUI3D/eprbKycAr1
zV42C20iwuoPtgAVPInX2zde+Qi7FQCGeD/7/yKNeSRhi7zT3KxA8S9L4MxhKS0I
gnR5rvw3paWTfK7MwyP8Cn06E9Rxg/XQqnlOYhMtqKrgWMovJapyFOFXiE8lVjlt
nn30bJz6NK1zNPQw+t4M4J0OnCLv7pm8gVMSL2wigzkNcDYLNLkBDQRTJ7OhAQgA
t4FopDxKKJYeIpjtJ9fZqJV7oR/gu0Yh/aYuWQYPqHE/RNpMtJCPEDoPGcVClq6o
XoEmZswpnfo7AoZLQsWah+Q4ffM0Y8y7HTyjhDDeF7bukBehVOZHaiv8tviA0+bW
MOPhb5bj/H8qi8hrL505SigYcO8uwQieIjmNHB9jk9a+VHZHhUbzB9RPEEaqqPbx
xPBRkTfCnEqq+tGIxKHW6cApQBQYAEP/rFTaLswISMT3+RCCBLPfohX9beqgNUpG
5kQeSPpm+scG6s2Cs7qK0u6MxO3GovUEypxnwTetpsvgsttCRZTc3fjZYB0izY4e
k5VVKuOB0gNu62/i488rPwARAQABiQElBBgBAgAPBQJTJ7OhAhsMBQkAO1OAAAoJ
EH/AZW80DgK2Ru8H/0yoAwC74yLW6Iaod8wwtvwt46A3D4Nh0fJvE1vPWFCE7kmG
l2bmT7UbdP93T6JG02xerYwkV7qw+jxBetmgsBYjuPw8fTz5uLsbcCbIPhqBYJyE
ygzS/JcI11ttQmEvtrp/YyqNJx48wsD0uxNOt7SX9heMB9TGitDT6ohvhQtkq3n9
uemcrB2n3lKOc0eJiMY1gjBoB+m8vm5PJ9iF4r8qFSD1MQko2XTAY08BpNwTaLMD
Frr0VskrjBSNOzW7FavmlfkqApFgbrAGFaxYayMduDrxJ39WyH2h1iTq4KUUv1CO
T+mD6NC3QP9J2JxoHWIWVeaxJ0OzpmRDoUsZb0w=
=h/0I
-----END PGP PUBLIC KEY BLOCK-----

使用gpg来加密解密

amrzs@ubuntu:~$ gpg -r amrzs -e hello.c 

amrzs@ubuntu:~$ gpg -d hello.c.gpg 

您需要输入密码,才能解开这个用户的私钥:“amrzs (rsa for information security course) <myemail@gmail.com>”
2048 位的 RSA 密钥,钥匙号 13F9301C,建立于 2014-03-18 (主钥匙号 340E02B6)

gpg: 由 2048 位的 RSA 密钥加密,钥匙号为 13F9301C、生成于 2014-03-18
      “amrzs (rsa for information security course) <myemail@gmail.com>”
#include <stdio.h>

int main(){

    return 0;
}


其中要输入密码,应该是用来对使用私钥的控制,私钥应该是看不到的。

下面给出gpg的指令简略介绍:

amrzs@ubuntu:~$ gpg --help
gpg (GnuPG) 1.4.14
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
支持的算法:
公钥: RSA, RSA-E, RSA-S, ELG-E, DSA
对称加密: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
                TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
散列: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
压缩: 不压缩, ZIP, ZLIB, BZIP2

语法:gpg [选项] [文件名]
签名、检查、加密或解密
默认的操作依输入数据而定

指令:
 
 -s, --sign [文件名]        生成一份签名
     --clearsign [文件名]   生成一份明文签名
 -b, --detach-sign             生成一份分离的签名
 -e, --encrypt                 加密数据
 -c, --symmetric               仅使用对称加密
 -d, --decrypt                 解密数据(默认)
     --verify                  验证签名
     --list-keys               列出密钥
     --list-sigs               列出密钥和签名
     --check-sigs              列出并检查密钥签名
     --fingerprint             列出密钥和指纹
 -K, --list-secret-keys        列出私钥
     --gen-key                 生成一副新的密钥对
     --delete-keys             从公钥钥匙环里删除密钥
     --delete-secret-keys      从私钥钥匙环里删除密钥
     --sign-key                为某把密钥添加签名
     --lsign-key               为某把密钥添加本地签名
     --edit-key                编辑某把密钥或为其添加签名
     --gen-revoke              生成一份吊销证书
     --export                  导出密钥
     --send-keys               把密钥导出到某个公钥服务器上
     --recv-keys               从公钥服务器上导入密钥
     --search-keys             在公钥服务器上搜寻密钥
     --refresh-keys            从公钥服务器更新所有的本地密钥
     --import                  导入/合并密钥
     --card-status             打印智能卡状态
     --card-edit               更改智能卡上的数据
     --change-pin              更改智能卡的 PIN
     --update-trustdb          更新信任度数据库
     --print-md 算法 [文件]   
                               使用指定的散列算法打印报文散列值

选项:
 
 -a, --armor                   输出经 ASCII 封装
 -r, --recipient 某甲        为收件者“某甲”加密
 -u, --local-user              使用这个用户标识来签名或解密
 -z N                          设定压缩等级为 N (0 表示不压缩)
     --textmode                使用标准的文本模式
 -o, --output                  指定输出文件
 -v, --verbose                 详细模式
 -n, --dry-run                 不做任何改变
 -i, --interactive             覆盖前先询问
     --openpgp                 行为严格遵循 OpenPGP 定义
     --pgp2                    生成与 PGP 2.x 兼容的报文

(请参考在线说明以获得所有命令和选项的完整清单)

范例:

 -se -r Bob [文件名]          为 Bob 这个收件人签名及加密
 --clearsign [文件名]         做出明文签名
 --detach-sign [文件名]       做出分离式签名
 --list-keys [某甲]           显示密钥
 --fingerprint [某甲]         显示指纹

请向 <gnupg-bugs@gnu.org> 报告程序缺陷。
请向 <i18n-zh@googlegroups.com> 反映简体中文翻译的问题。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值