Linux命令学习手册

GPG是加密和数字签名的免费工具,大多用于加密信息的传递。除了仅用密码加密外,GPG最大的不同是提供了“公钥/私钥”对。利用你的“公钥”别人加密信息不再需要告诉你密码,随时随地都能发送加密信息。而这种加密是单向的,只有你的“私钥”能解开加密。数字签名又是另一大使用方向。通过签名认证,别人能确保发布的消息来自你,而且没有经过修改。

[原理]

对称密钥加密常用的算法DES、Triple DES或IDEA加密,MD5。对称密钥加密通信双方持有同样的密钥对密文进行解密。

公共密钥加密在报文和网络方面的应用已成为流行。RSA实际上用于公共密钥加密,它是当前所能得到的最强的公共密钥算法。公共密钥包含两个同属于一方的密钥:一个是公共密钥,它被所有人所共享;另一个是私有密钥,归个人秘密中存。与对称密钥加密不同,公共密钥加密对加密与解密使用两把密钥。一把是秘密的,这是私有密钥,用来对密文解密。密文本身由公共密钥产生,公共密钥分发给要发送加密信息给你的人。其他人如何得到你的公共密钥?很容易,发布它即可。你—私有密钥的所有者,是惟一能对信息进行解密的人。

数字签名常用公共密钥加密来产生签名,如 RSA和DSA。用公共密钥产生数字签名与信息加密的工作相反。信息通过hash函数发送。hash处理后的信息用私有密钥加密。一旦数据用私有密钥加密,任何持有公共密钥的人都能检验,它是用私有密钥产生的,这样,数据就被验证了。因此,任何持有公共密钥的人都可以进行检验。这里的hash函数用于产生数字签名。Hash函数(散列函数)是一个提取信息和产生一个固定长度的信息个性特征的数学函数。无论要进行hash方法的信息有多大,输出的长度都一样。简言之,就是将hash处理后的信息用私钥加密,其它人用公钥解密恢复成功(恢复成的应该是hash处理的结果?)表示加密的人就是你也就是数字签名的验证就成功了。

[举例]

**对称加密和解密

这里,先简单介绍使用gpg进行对称加密和解密,后面重点介绍公钥加密和数字验证。

*对称加密myfile:

#gpg -c myfile

这样,会提示你输入两次密码,然后生成myfile的加密文件myfile.gpg,注意不能对目录加密,可以用-o选项指定输出文件名称。

*解密对称加密的文件:

#gpg -o mydecrypt -d myfile.gpg

这样,会提示你输入解密密码,输入之后,将会解密相应的文件,通过-o指定生成的解密文件,-d指定被解密的文件。

**

**公钥加密相关

*生成钥匙对:

[root@lv-k ~]# gpg --gen-key

输入之后,输出和交互提示如下所示:

#####################以下为输出以及交互##############################

gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.

This program comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it

under certain conditions. See the file COPYING for details.


gpg: 已创建目录‘/root/.gnupg’

gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立

gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用

gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立

gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立

请择您要使用的密钥种类:

(1) DSA 和 ElGamal (默认)

(2) DSA (仅用于签名)

(5) RSA (仅用于签名)

您的择?[Enter] <====输入

DSA 密钥对会有 1024 位。

ELG-E 密钥长度应在 1024 位与 4096 位之间。

您想要用多大的密钥尺寸?(2048)[Enter] <====输入

您所要求的密钥尺寸是 2048 位

请设定这把密钥的效期限。

0 = 密钥永不过期

<n>  = 密钥在 n 天后过期

<n>w = 密钥在 n 周后过期

<n>m = 密钥在 n 月后过期

<n>y = 密钥在 n 年后过期

密钥的效期限是?(0)[Enter]

密钥永远不会过期

以上正确吗?(y/n)y <====输入


您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合

成用户标识,如下所示:

“Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”


真实姓名:linuxidc <====输入

电子邮件地址:quiet_heart000@linuxidc.com <====输入

注释:test <====输入

您定了这个用户标识:

“linuxidc (test) <quiet_heart000@linuxidc.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o <====输入

您需要一个密码来保护您的私钥。


请输入密码:<====输入

请再输入一次密码:<====输入


我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动

鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16825.html