来源:ChinaITLab
2002-12-16 10:22:00
---- 随着网络与计算
,加密技术已经很早就用于
,签证体系也已经成熟。Gn
。但是PGP使用了许多专利
,并且没有使用任何专利加
机技术的发展,数据存储与数据
数据存和数据交换。为了确保网
uPG就是用来加密数据与制作证
算法,属于"臭名昭著"的美国加
密算法,所以使用起来有着更多
交换的安全性已经变得越来越重要
络数据交换时的双方身份的正确性
书的一套工具,其作用与PGP类似
密出口限制之列。GnuPG是GPL软件
的自由。
---- 具体地说,GnuPG
数字签名之用。在功能上,
有许可证的麻烦。但是GnuP
。GnuPG使用非对称加密算
有一对密钥: 公钥和私钥。
便其他人与您通讯。
是实现安全通讯和数据存储的一
它和PGP是一样的。由于PGP使用
G并没有使用这个算法,所以对
法,安全程度比较高。所谓非对
其中,密钥由用户保存,公钥则
系列工具集,可以做加密数据和做
了IDEA专利算法,所以使用PGP会
用户来说使用GnuPG没有任何限制
称加密算法,就是每一个用户都拥
由用户尽可能地散发给其他人,以
---- GnuPG主要有以下特点:
---- 完全兼容 PGP
---- 没有使用任何专利算法,没有专利问题
---- 遵循GNU公共许可证
---- 与OpenPGP兼容
---- 使用广泛,安全性高于PGP2,可以加密校验和PGP5.x格式的信息
---- 支持多种加密算法
---- 支持扩展模块
---- 用户标识遵循标准结构
---- 多语言支持(尚未支持中文)
---- 在线帮助系统
---- 支持匿名信息接收
---- 支持HKP密钥服务
---- 拥有众多的GUI界面支持
---- GnuPG的源代码可
以在http://www.gnu.org/downl
oad.html取得。
GnuPG的安装
---- 首先要取得GnuPG的源代码,然后执行如下操作:
---- 1.解开源代码包:
---- [kerberos@dev9] tar xvzf gn
upg-version.tar.gz
---- [kerberos@dev9] cd gnupg-version
---- [kerberos@dev9 gnupg-versio
n] ./configure
---- 2.编译源代码
---- [kerberos@dev9
gnupg-version] make
---- 3.检验生成的工具
---- [kerberos@dev9 gnupg-versio
n] make check
---- 4.准备安装
---- [kerberos@dev9 gnupg-version] su
---- 5.安装工具包
---- [root@dev9 gnup
g-version] make install
GnuPG命令使用
---- 1.生成密钥对
---- 使用GnuPG之前必
钥对。可按如下步骤操作。
须生成密钥对(公钥和私钥),
参数选项"--gen-key"可以生成密
[root@dev9 /]#gpg --gen-key
gpg (GnuPG) 1.0
.2; Copyright (C) 2000 Free
Software
Foundation, Inc.
This program comes with ABS
OLUTELY NO WARRANTY.
This is free software, and
you are welcome to
redistribute it
under certain c
onditions. See the file COPY
ING for details.
gpg: /root/.gnu
pg: directory created
gpg: /root/.gnupg/options:
new options file created
gpg: you have t
o start GnuPG again, so it c
an read
the new options file
然后重新使用上面的指令。
gpg (GnuPG) 1.0.2
; Copyright (C) 2000 Free So
ftware
Foundation, Inc.
This program comes with ABSOL
UTELY NO WARRANTY.
This is free soft
ware, and you are welcome to
redistribute it
under certain conditions. See
the file COPYING for details.
gpg: /root/.gnupg
: directory created
gpg: /root/.gnupg
/options: new options file c
reated
gpg: you have to start GnuPG
again, so it can read the
new options file
Please select wha
t kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(4) ElGamal (sign and encrypt)
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E
keypair.
minimum keysize is 768 bits
default keysize is 1024 bits
highest suggested keysize is
2048 bits
What keysize do you want? (1024) 2048
Do you really need
such a large keysize? y
Requested keysize is 2048 bits
Please specify how
long the key should be valid
.
0 = key does not expire
< n > = key expires in n days
< n > w = key expires in n weeks
< n > m = key expires in n months
< n > y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct (y/n)? y
---- 这时您需要一个用户ID来标识
E-mail地址产生一个用户ID。
您的密钥,GnuPG可以根据您的真实姓名、注释和
Real name: kerberos
Email address: kerberos@minigui.org
Comment: Unix/Linux consultant
You selected this USER-ID:
"kerberos (Unix/Linux consultant) < kerberos@minigui.org > "
Change (N)ame, (C)omment, (E)ma
il or (O)kay/(Q)uit? o
You need a Passphr
ase to protect your secret k
ey.
Enter passphrase: [
enter a passphrase]
---- 在产生密钥的过
您的系统当前状态中得到,
的随机数。
程中,GnuPG需要得到一些随机
所以这时候,您可以随机敲一下
的数字。这些随机的数字可以 从
键盘或者移动鼠标,来产生高质量
---- 然后,GnuPG要求您输入您要生成的密钥的算法。
Please select wha
t kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(4) ElGamal (sign and encrypt)
Your selection?
---- GnuPG可是生成多
格式。ElGamal密钥对可以
第三种选择可以生成供签证
择是非常方便的。
种密钥对,这里有三种选择。DS
用来加密。第二种选择与第一种
和加密使用的ElGamal密钥对。
A密钥是生成证书的最基本的密钥
相似,但是仅仅生成DSA密钥对,
对大多数用户来说,使用缺省的选
---- 下面要选择密钥的长度,DSA密
则没有限制。
钥的长度在512位~1024位之间,Elmagal密钥的长度
About to generat
e a new ELG-E keypair.
minimum keysize is 768 bits
default keysize is 1024 bits
highest suggeste
d keysize is 2048 bits
What keysize do you want? (1024)
---- 生成一个很长的密钥既有优点
加密的过程变得缓慢,另外,密钥过长,
也有缺点,长的密钥无疑安全性非常高,但是会导致
也会使证书的长度变大。
---- 缺省的密钥长度1
024位已经够用了,确定了密钥
的长度之后,就不能再改变它。
---- 最后,需要指定这个密钥对的
,它们需要指定密钥对的失效日期。
有效日期,如果选择了生成ElGamal或者 DSA密钥对
Please specify how
long the key should be valid
0 = key does not
expire = key expires in n
days
< n > w = key expires in n weeks
< n > m = key expires in n months
< n > y = key expires in n years
Key is valid for? (0)
---- 对于大多数用户来说,密钥对
以改变它的有效日期,但是仍要谨慎选择
用户拥有的您的公钥。
没有失效期限是可以的。虽然在密钥对产生以后,可
这个参数。因为公钥发送出去以后,很难再改变其他
---- 现在需要提供一
真实身份。
个用户标识,在签证的时候,公
钥需要与用户标识绑定以证明您的
---- You need a User-ID to ident
user id from Real Name, Comment and
ify your key; the software constructs the
Email Address in this form:
---- "kerberos (Linux consultant) < kerberos@minigui.org > "
---- Real name: 您的用户名
---- Email address: 输入您的email地址
---- Comment: 输入注释
---- 最后,GnuPG 需要一个私钥,这个私钥由用户自己保存
---- Enter passphrase: 输入密钥口令
---- 这个口令的目的是用来加密您
口令,也无法使用, 这个口令的长度没
很容易被破解的。同样,如果您的口令是
的私钥,这样,即使有人偷走了您的私钥,没有这个
有限制,但是,正如我们所知道的,一个短的口令是
一个单词,也很容易被破解。
---- 2.证书的回收
---- 当您的密钥对生
的口令或者您的私钥丢失或
回收证书的选项是"--gen-r
成之后,您应该立即做一个公钥
者被盗窃,您可以发布这个证书
evoke"。
回收证书,如果您忘记了您的私钥
来声明以前的公钥不再有效。生成
---- [root@dev9 /]# gpg --output
revoke.asc --gen-revoke mykey
---- 其中mykey 参数是可以表示的
一旦回收证书被发放,以前的证书就不能
密钥标识,产生的回收证书放在revoke.asc文件里,
再被其他用户访问,因此以前的公钥也就失效了。
---- 3.密钥列表
---- 列出密钥使用 --list-keys 选项
---- [root@dev9 /]# gpg --list-keys
---- 4.输出公钥
---- 您可以输出您的公钥供您的主
以使用于其他的途径。在您使用此公钥之
能,在使用这个选项时,还必须使用附加
页使用,也可以把它放在密钥服务器上,当然,还可
前您首先要导出它。选项 --export 可以实现这个功
的选项指明您要输出的公钥。
---- 下面的命令表示以二进制格式输出公钥:
---- [root@dev9 /]# gpg --output
kapil.gpg --export kerberos@minigui.org
---- 如下命令表示以ASCII字符格式输出:
---- gpg --output kapil.gpg --export-armor> kerberos-key.asc
---- 5.导入公钥
---- 您可以把从第三方的公钥数据
通讯时使用。
库中得到的公钥导入您的私有数据库,在与他人进行
---- [root@dev9 /]#gpg --import < filename >
---- 其中,参数filename为公钥文件。
---- 例如:导入redha
t的公钥,redhat.asc可以从red
hat的主页上下载。
---- [root@dev9 /]#
gpg --import redhat.asc
---- gpg: key :9B4A4024: public
key imported
---- gpg: /root/.gnupg/trustdb.g
pg: trustdb created
---- gpg: Total number processed: 1
---- gpg: imported: 1
---- 6.确认密钥
---- 导入密钥以后,使用数字签名
--fingerprint 选项。
来验证此证书是否合法。查看数字签名使用
---- [root@dev9 /]# gpg --fingerprint < UID >
---- 其中,UID 为您要验证的公钥。
---- 7.密钥签名
---- 导入密钥之后,可以使用 --si
任这个证书的合法性。
gn-key 选项进行签名,签名的目的是证明您完全信
---- 例如:[root@dev9 /]# gpg --sign-key < UID >
---- 其中,UID 是要签名的公钥。
---- 8.检查签名
---- 我们可以使用 --
check-sigs选项来检查在上面我
们对密钥所作的签名。
---- [root@dev9 /]# gpg --check-sigs < UID >
---- 这个选项可以列出此密钥文件的所有的签名。
---- 9.加密和解密
---- 加密和解密一个文件非常容易
redhat的公钥加密这个文件,并且这个文
,如果您要给redhat发送一个加密文件,您可以使用
件也只有redhat使用自己的密钥才可以解密查看。
---- 加密一个文件可以使用下面的指令
---- [root@dev9 /]#gpg --sear < UID > < file >
---- 其中,UID是对方的公钥,file为您要加密的文件。
---- 如果您要解开一个其他用户发给您的文件可以使用下面的指令:
---- [root@dev9 /]#gpg -d < file >
---- 其中,file是您要解密的文件
的口令,也就是在产生私钥时您所输入的
。解密过程中,GnuPG会提示您输入使用密钥所需要
口令。