OpenGPG尝试

OpenGPG尝试

from my csdn blog

信息安全原理 hw3

gpg - OpenPGP encryption and signing tool

一个加密和签名的工具

首先生成一对密钥

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> 反映简体中文翻译的问题。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容