论文部分内容阅读
摘要:PGP是现在比较流行的加密軟件,该文主要对PGP的工作过程和密钥管理进行了阐述。
关键词:PGP;公钥;私钥
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)36-3047-02
Brief Analyze PGP
XIA Jing
(Huanggang Polytechnic College, Huanggang 438002, China)
Abstract: PGP is more popular encryption software now, this paper main described the work of the PGP key management and its process.
Key words: PGP; Public key; Private key
1 什么是PGP
PGP(Pretty Good Privacy)是一个基于RSA公钥加密体系的邮件加密软件。我们可以用它对邮件保密以防止非授权者阅读,还可用它对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP的创始人是美国的Phil Zimmermann,他把 RSA 公钥体系的方便和传统加密体系的高速结合起来,并且通过巧妙设计数字签名和密钥认证管理机制让用户可以安全地和从未见过的人们通信,事先并不需要任何保密措施的来传递密钥,因此 PGP 成为目前几乎最流行的加密软件。PGP最初的设计主要是用于邮件加密,如今已经发展到了可以加密整个硬盘、分区、文件、文件夹、集成进邮件软件进行邮件加密,甚至可以对ICQ的聊天信息实时加密!你和对方只要安装了PGP,就可利用其ICQ加密组件在你和对方聊天的同时,加密或解密,和正常使用没有什么差别,最大程度的保证了你和对方的聊天信息不被窃取或监视。
2 PGP的加密算法
PGP不是一种完全的非对称加密体系,它是个混合加密算法,它是由一个对称加密算法(IDEA)、一个非对称加密算法(RSA)、一个单向散列算法(MD5)以及一个随机数产生器组成的,每种算法都是PGP不可分割的组成部分,它集中了的几种加密算法的优点,使它们彼此得到互补。为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法,又称为“对称加密法”。传统加密方法就是用一个密钥加密明文,然后用同样的密钥解密。IDEA是一个有专利的算法,专利持有者是ETH和一个叫Ascom-Tech AG的瑞士公司。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。
3 PGP工作过程
PGP所使用的RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开,一个不告诉任何人。公开的一个称为“公钥” (Public key),另一个叫“私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文只可以用私钥解密;用私钥加密的密文也只可以用公钥来解密。PGP在实际中主要用于加密与数字签名。
1) 加密
用户A、B他们互相知道对方的公钥,用户A要寄信给用户B。A就用B的公钥加密邮件寄出,B收到后就可以用自己的私钥解密出A的原文。即使信件中途被人截获也无法解出原文,因为其它人不知道B的私钥,所以即使是A本人也无法解密那封信,这就解决了信件保密的问题。
2) 数字签名
由于用户B的公钥是公开的,每个人都知道B的公钥,那么他们都可以给B发信,那么B怎么确定来信是不是用户A的呢?这就是数字签名的必要性,用数字签名来确认发信者的身份。用户A用自己的私钥给信件签名,然后发给B,B收到后用A的公钥来验证签名是否是A的签名。虽然其它人也知道A的公钥,可以看到信件的内容,但此关注的是确认信件是不是来自于A,如果能确认则目的达到。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。
3) 加密和数字签名
单纯的数字签名只能鉴别信件的来源,不能保密信件的内容,鉴于此可以将保密和数字签名组合使用。首先A用自己的私钥将信件的128位“报文摘要”加密,附加在邮件后,再用B的公钥将整个邮件加密。这样这份密文被B收到以后,B用自己的私钥将邮件解密,得到A的原文和签名,B的PGP也从原文计算出一个128位的“报文摘要”来和用A的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是A寄来的。特别注意的是在这里要注意次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改签名。
4 密钥管理
一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。比如网络黑们常用的手段之一就是“监听”,如果密钥是通过网络传送就太危险了。对PGP来说公钥本来就要公开,就没有防监听的问题,但公钥的发布中仍然存在安全性问题,例如公钥被篡改,这可能是公钥密码体系中最大的漏洞,为了防止这种情况出现的最好办法是避免让任何其他人有机会篡改公钥,比如直接从发送者手中得到他的公钥,但他如果在千里之外或无法见面的时候,这是不现实的。 PGP 发展了一种公钥介绍机制来解决这个问题。举例来说,如果我和B有一个共同的朋友C,而C知道他手中的B的公钥是正确的,这样C可以用他自己的私钥在B的公钥上数字签名,表示他担保这个公钥属于B。当然我需要用C的公钥来校验C给我的B的公钥,同样C 也可以向B认证我的公钥,这样C就成为我和B之间的“介绍人”。这样B或C就可以放心地把C签过字的B的公钥放到网上让我去拿。这就好比我有二个朋友一个叫张三,一个朋友叫李四,张三想认识李四,于是他想通过我来认识李四,鉴于我认识他们两者,我为张三的公钥签名,于是张三可以直接向李四证明他是我的朋友。
5 结束语
随着网络安全的迅猛发展,使用PGP的人也会越来越多,这也将加速PGP的发展。
参考文献:
[1] 荀殿栋.PGP原理与其服务[J].军事通信技术,1998(3):67-73.
[2] 邱晓理.浅谈PGP与邮件加密[J].华南金融电脑,2005(4):59.
[3] 郝保水.浅析PGP软件及其应用[J].大众科技,2005(8):67-68.
关键词:PGP;公钥;私钥
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)36-3047-02
Brief Analyze PGP
XIA Jing
(Huanggang Polytechnic College, Huanggang 438002, China)
Abstract: PGP is more popular encryption software now, this paper main described the work of the PGP key management and its process.
Key words: PGP; Public key; Private key
1 什么是PGP
PGP(Pretty Good Privacy)是一个基于RSA公钥加密体系的邮件加密软件。我们可以用它对邮件保密以防止非授权者阅读,还可用它对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP的创始人是美国的Phil Zimmermann,他把 RSA 公钥体系的方便和传统加密体系的高速结合起来,并且通过巧妙设计数字签名和密钥认证管理机制让用户可以安全地和从未见过的人们通信,事先并不需要任何保密措施的来传递密钥,因此 PGP 成为目前几乎最流行的加密软件。PGP最初的设计主要是用于邮件加密,如今已经发展到了可以加密整个硬盘、分区、文件、文件夹、集成进邮件软件进行邮件加密,甚至可以对ICQ的聊天信息实时加密!你和对方只要安装了PGP,就可利用其ICQ加密组件在你和对方聊天的同时,加密或解密,和正常使用没有什么差别,最大程度的保证了你和对方的聊天信息不被窃取或监视。
2 PGP的加密算法
PGP不是一种完全的非对称加密体系,它是个混合加密算法,它是由一个对称加密算法(IDEA)、一个非对称加密算法(RSA)、一个单向散列算法(MD5)以及一个随机数产生器组成的,每种算法都是PGP不可分割的组成部分,它集中了的几种加密算法的优点,使它们彼此得到互补。为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法,又称为“对称加密法”。传统加密方法就是用一个密钥加密明文,然后用同样的密钥解密。IDEA是一个有专利的算法,专利持有者是ETH和一个叫Ascom-Tech AG的瑞士公司。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。
3 PGP工作过程
PGP所使用的RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开,一个不告诉任何人。公开的一个称为“公钥” (Public key),另一个叫“私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文只可以用私钥解密;用私钥加密的密文也只可以用公钥来解密。PGP在实际中主要用于加密与数字签名。
1) 加密
用户A、B他们互相知道对方的公钥,用户A要寄信给用户B。A就用B的公钥加密邮件寄出,B收到后就可以用自己的私钥解密出A的原文。即使信件中途被人截获也无法解出原文,因为其它人不知道B的私钥,所以即使是A本人也无法解密那封信,这就解决了信件保密的问题。
2) 数字签名
由于用户B的公钥是公开的,每个人都知道B的公钥,那么他们都可以给B发信,那么B怎么确定来信是不是用户A的呢?这就是数字签名的必要性,用数字签名来确认发信者的身份。用户A用自己的私钥给信件签名,然后发给B,B收到后用A的公钥来验证签名是否是A的签名。虽然其它人也知道A的公钥,可以看到信件的内容,但此关注的是确认信件是不是来自于A,如果能确认则目的达到。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。
3) 加密和数字签名
单纯的数字签名只能鉴别信件的来源,不能保密信件的内容,鉴于此可以将保密和数字签名组合使用。首先A用自己的私钥将信件的128位“报文摘要”加密,附加在邮件后,再用B的公钥将整个邮件加密。这样这份密文被B收到以后,B用自己的私钥将邮件解密,得到A的原文和签名,B的PGP也从原文计算出一个128位的“报文摘要”来和用A的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是A寄来的。特别注意的是在这里要注意次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改签名。
4 密钥管理
一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。比如网络黑们常用的手段之一就是“监听”,如果密钥是通过网络传送就太危险了。对PGP来说公钥本来就要公开,就没有防监听的问题,但公钥的发布中仍然存在安全性问题,例如公钥被篡改,这可能是公钥密码体系中最大的漏洞,为了防止这种情况出现的最好办法是避免让任何其他人有机会篡改公钥,比如直接从发送者手中得到他的公钥,但他如果在千里之外或无法见面的时候,这是不现实的。 PGP 发展了一种公钥介绍机制来解决这个问题。举例来说,如果我和B有一个共同的朋友C,而C知道他手中的B的公钥是正确的,这样C可以用他自己的私钥在B的公钥上数字签名,表示他担保这个公钥属于B。当然我需要用C的公钥来校验C给我的B的公钥,同样C 也可以向B认证我的公钥,这样C就成为我和B之间的“介绍人”。这样B或C就可以放心地把C签过字的B的公钥放到网上让我去拿。这就好比我有二个朋友一个叫张三,一个朋友叫李四,张三想认识李四,于是他想通过我来认识李四,鉴于我认识他们两者,我为张三的公钥签名,于是张三可以直接向李四证明他是我的朋友。
5 结束语
随着网络安全的迅猛发展,使用PGP的人也会越来越多,这也将加速PGP的发展。
参考文献:
[1] 荀殿栋.PGP原理与其服务[J].军事通信技术,1998(3):67-73.
[2] 邱晓理.浅谈PGP与邮件加密[J].华南金融电脑,2005(4):59.
[3] 郝保水.浅析PGP软件及其应用[J].大众科技,2005(8):67-68.