‘壹’ 如何用PGP加密
PGP采用公匙加密体系,用加密算法 生成两个密匙,分别作为公匙和私匙。公匙用来加密,是公开的。私匙用来解密,自己保存。 下面介绍PGP的使用: 1 首先生成你的PGP密匙。在DOS命令行输入: pgp-kg 2 程序会提示你一步步进行密匙生成工作: ①选择密匙长度。建议用1024位,安全性相当有保障。 ②输入用户名。要尽量避免混淆。 ③选择口令。和所有密码一样,尽量取得难猜一点。PGP是区分口令大小写的,在生成过程中程序为了得到随机数,会请你随意地在键盘上敲一系列的键,注意尽量多敲些不同的键,时间间隔不要太短。 现在你就拥有自己的一对PGP密匙了。文件SECRING PGP是私匙,PUBRING PGP是公匙。 3 PGP的基本命令 ①加密命令: pgp-e[a]源文件收件人ID[其他收件人ID] 用公匙环中收件人的公匙加密源文件,得到密文。加上a参数后将得到7bits编码的密文( asc后缀),否则是二进制形式密文( pgp后缀)。 ②解密命令: pgp[-d][-p]密文 -d参数用来保留密文(缺省删除密文),-p参数用来恢复源文件加密时的文件名。
‘贰’ PGP&GPG key是什么,有什么用
GPG和PGP是两种加密软件,你可以通过公钥在网上安全的传播自己的文件。我前些日子使用了GPG,感觉很方便,使用中也遇到了一些问题。所以把我的使用经过写出来,目的是让初次使用GPG的朋友少走弯路。
先说说GPG的获得吧,GPG是开放源代码的软件,是完全免费的,大家可以到www.gnupg.org下载。如果使用 Mandrakelinux或Debian发行版可以直接下载。我使用的是Mandrakelinux,只要在终端中输入urpmi gpgp就可以下载和安装。
安装好后我们在终端下输入:gpg --help 可以看到GPG的版本信息和帮助。这表示GPG已经装好了。
下面我们来生成密钥,键入:gpg --gen-key 这时将出现几个选项,需要我们来选择:
gpg (GnuPG) 1.4.0; Copyright (C) 2004 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.
请选择您要使用的密钥种类:
(1) DSA 和 ElGamal (默认)
(2) DSA (仅用于签字)
(5) RSA (仅用于签字)
您的选择? 这个我们一般选择1,gpg默认的也是1。
SA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 这个是密钥的长度,一般输入1024
请设定这把密钥的有效期限。
0 = 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 这个是指定密钥的有效期,你可以自己选择。
您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
“Heinrich Heine (Der Dichter) <[email protected]>”
真实姓名:
电子邮件地址:
注释:
这个是用户标识,你可以输入自己常用的email地址。
请输入密码:
这个需要为你的私钥指定一个保护密码,这个一定要保护好,要不然你的加密文件就会被别人轻易解开了。
好了现在GPG已经产生了你的公钥和私钥。
现在说说GPG能为我们做什么,如果你想给你的朋友发送一篇论文,而不希望第三人看到。你可以这样操作。
在终端输入:gpg --encrypt -r Bob [文件名] Bob表示为这个收件人签字及加密 〔文件名〕为需要加密的文件名。
然后你可以把你的公钥发给你的朋友。导出公钥的方法是:gpg --export>name.asc
你的朋友只要吧你的公钥导入他的GPG,就可以解密你发给他的文件了:
解密方法是 gpg --decrypt [加过密的文件]>〔已经解密的文件〕 >为重定向符,意思是把gpg --decrypt [加过密的文件]的结果保存到〔已经解密的文件〕文件中,这要就可以看到你发的原文了。
‘叁’ 什么是PGP
PGP(Pretty Good Privacy),是一个基于RSA公匙加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。 实际上PGP的功能还包括: PGP可以用来加密文件,还可以用PGP代替UUencode 生成RADIX 64 格式(就是MIME 的 BASE 64格式)的编码文件。 PGP 的创始人是美国的 Phil Zimmermann。他的创造性在于他把RSA公匙体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密匙认证管理机制上有巧妙的设计。因此PGP成为几乎最流行的公匙加密软件包。 1.首先简要介绍PGP加密系统的流程。 PGP加密系统是采用公开密钥加密与传统密钥加密相结合的一种加密技术。它使用一对数学上相关的钥匙,其中一个(公钥)用来加密信息,另一个(私钥)用来解密信息。 PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(sek)。每次使用时,PGP都随机产生一个128位的IDEA会话密钥,用来加密报文。公开密钥加密技术中的公钥和私钥则用来加密会话密钥,并通过它间接地保护报文内容。 PGP中的每个公钥和私钥都伴随着一个密钥证书。它一般包含以下内容: 密钥内容(用长达百位的大数字表示的密钥) 密钥类型(表示该密钥为公钥还是私钥) 密钥长度(密钥的长度,以二进制位表示) 密钥编号(用以唯一标识该密钥) 创建时间 用户标识 (密钥创建人的信息,如姓名、电子邮件等) 密钥指纹(为128位的数字,是密钥内容的提要表示密钥唯一的特征) 中介人签名(中介人的数字签名,声明该密钥及其所有者的真实性,包括中介人的密钥编号和标识信息) PGP把公钥和私钥存放在密钥环(KEYR)文件中。PGP提供有效的算法查找用户需要的密钥。 PGP在多处需要用到口令,它主要起到保护私钥的作用。由于私钥太长且无规律,所以难以记忆。PGP把它用口令加密后存入密钥环,这样用户可以用易记的口令间接使用私钥。 PGP的每个私钥都由一个相应的口令加密。PGP主要在3处需要用户输入口令: 需要解开受到的加密信息时,PGP需要用户输入口令,取出私钥解密信息 当用户需要为文件或信息签字时,用户输入口令,取出私钥加密 对磁盘上的文件进行传统加密时,需要用户输入口令 2.以上介绍了PGP的工作流程,下面将简介与PGP相关的加密、解密方法以及PGP的密钥管理机制。 PGP是一种供大众使用的加密软件。电子邮件通过开放的网络传输,网络上的其他人都可以监听或者截取邮件,来获得邮件的内容,因而邮件的安全问题就比较突出了。保护信息不被第三者获得,这就需要加密技术。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,这就需要数字签名技术。RSA公匙体系的特点使它非常适合用来满足上述两个要求:保密性(Privacy)和认证性(Authentication)。 RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公匙体系。简单地说就是找两个很大的质数,一个公开即公钥,另一个不告诉任何人,即私钥。这两个密匙是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。 假设甲要寄信给乙,他们互相知道对方的公匙。甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于没别人知道乙的私匙,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。这时候就需要用数字签名来认证。 在说明数字签名前先要解释一下什么是“邮件文摘”(message digest)。邮件文摘就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来,一旦邮件有任何改变这个数都会变化,那么这个数加上作者的名字(实际上在作者的密匙里)还有日期等等,就可以作为一个签名了。PGP是用一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message digest 5)。 MD5是一种单向散列算法,它不像CRC校验码,很难找到一份替代的邮件与原件具有同样的MD5特征值。 回到数字签名上来,甲用自己的私匙将上述的128位的特征值加密,附加在邮件后,再用乙的公匙将整个邮件加密。这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公匙解密签名所得到的数比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。 PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份,可以用自己的私匙签名。这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。 PGP用的实际上是RSA和传统加密的杂合算法。因为RSA算法计算量极大在速度上不适合加密大量数据,PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。传统加密,一般说来说就是用一个密匙加密明文,然后用同样的密匙解密。这种方法的代表是DES,也就是乘法加密,它的主要缺点就是密匙的传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成密匙(每次加密不同)用IDEA算法对明文加密,然后用RSA算法对该密匙加密。这样收件人同样是用RSA解密出这个随机密匙,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。PGP利用这种链式加密,既保证了保密性,又保证了加密的速度。 PGP最核心的功能是:文件加密、通信加密和数字签名。下面将简介一些PGP辅助功能,它们虽然不是整个加密系统的核心,但却起到了协调各部分和方便用户的作用。这儿主要介绍PGP的密钥管理机制。 一个成熟的加密体系必然要有一个成熟的密匙管理机制配套。公匙体制的提出就是为了解决传统加密体系的密匙分配过程难以保密的缺点。如果密匙是通过网络传送,那么网络上其他人就可以通过监听得到。举个例子:Novell Netware 的老版本中,用户的密码是以明文在线路中传输的,这样监听者轻易就获得了他人的密码。当然 Netware 4.1 中数据包头的用户密码现在是加密的了。对PGP来说公匙本来就要公开,就没有防监听的问题。但公匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public Key Tampering),这可能是公匙密码体系中最大的漏洞。必须有一种机制保证用户所得到的公钥是正确的,而不是别人伪造的。下面举一个例子来说明这个问题,以及如何正确地用PGP堵住这个漏洞。