欢迎来到天天文库
浏览记录
ID:19137354
大小:17.64 KB
页数:7页
时间:2018-09-29
《浅析PGP软件及其应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅析PGP软件及其应用[摘要]文章主要介绍了PGP软件,对其主要部分和原理进行了阐述,并给出了在电子邮件等方面的应用。[关键词]PGP;加密;电子邮件1引言电子邮件在人们的工作中占据着重要作用。据统计,中国平均每用户每周收到封邮件,发送封邮件。但是电子邮件的主要协议如SMTP等是明文传送的。这些信息在经过不可信的因特网时,有可能会被第三方获得。在重视信息安全的现代社会,显然这并符合要求。如何能将这些信息保密,同时不篡改、不伪造等?本文所介绍的PGP就是一种这样的软件,它主要应用于电子邮件和文件的加密解密。目前PGP获得了
2、广泛的应用。但它本身并不是一种加密算法,相反只是将一些加密算法综合在一起,实现了一个完整的安全软件包。PGP主要是由PhilipR.Zimmermann开发的,于1991年在Internet上免费发布。他主要做了如下工作:选择比较好的算法,例如RSA、IDEA等作为加密算法的基础构件;将这些算法集成在一个便于用户使用的应用程序中;制作了软件包及其文档,且源代码免费公开,以避隐藏后门之嫌;和公司合作,提供商业版本等。现在用户可以从下载PGP。目前最新版本是。2原理PGP结合了一些大部分人认为很安全的算法,包括传统的对称密钥
3、加密算法和公开密钥算法,充分利用这两类加密算法的特性,实现了以下几种服务:鉴别、加密、压缩等。当发送者PGP加密一段明文时,PGP首先压缩明文,然后PGP建立一个一次性会话密钥,采用传统的对称加密算法加密刚才压缩后的明文,产生密文。然后用接收者的公开密钥加密刚才的一次性会话密钥,随同密文一同传输给接收方。接收方首先用私有密钥解密,获得一次性会话密钥,最后用这个密钥解密密文。数字签名数字签名能够保证接收者接收的信息没有经过未授权的第三方篡改,并确信报文来自发信者。PGP使用如下步骤实现数字签名:发送者创建报文,然后使用SH
4、A-2等散列算法生成散列代码,然后使用自己的私有密钥采用RSA对散列代码加密,并将结果串接在报文前面。接收者使用发送者的公开密钥,采用RSA解密得到散列代码,然后和根据接收到的报文重新计算的散列代码比较,如果匹配,则接受报文。目前,PGP使用的散列函数包括:SHA-2、SHA-2、SHA-2、SHA-1、RIPEMD、MD-5等。压缩压缩是为了减少网络传输时间和磁盘空间,提高安全性:压缩减少了明文中上下文相关信息。PGP在签名之后加密之前对报文进行压缩。它使用了有Jean-lupGailly,MarkAdler,Rich
5、ardWales等编写的ZIP压缩算法。加密PGP对每次会话的报文进行加密后传输,它采用的加密算法包括:AES-256、AES-192、AES-128、CAST、3DES、IDEA、Twofish等。例如使用AES密钥最长可达256bit,这已经足够安全了。这里需要指出,PGP结合了常规密钥加密和公开密钥加密算法,一是时间上的考虑,对称加密算法比公开密钥加密速度快大约10000倍;二是公开密钥解决了会话密钥分配问题,因为只有接收者才能用私有密钥解密一次性会话密钥。PGP巧妙的将常规密钥加密和公开密钥加密结合起来,从而使会
6、话安全得到保证。密钥管理在PGP里面,最有特色的或许就是它的密钥管理。PGP包含四种密钥:一次性会话密钥、公开密钥、私有密钥和基于口令短语的常规密钥。用户使用PGP时,应该首先生成一个公开密钥/私有密钥对。其中公开密钥可以公开,而私有密钥绝对不能公开。PGP将公开密钥和私有密钥用两个文件存储,一个用来存储该用户的公开/私有密钥,称为私有密钥环;另一个用来存储其他用户的公开密钥,称为公开密钥环。 为了确保只有该用户可以访问私有密钥环,PGP采用了比较简洁和有效的算法。当用户使用RSA生成一个新的公开/私有密钥对时,输入一
7、个口令短语,然后使用散列算法生成该口令的散列编码,将其作为密钥,采用CAST-128等常规加密算法对私有密钥加密,存储在私有密钥环中。当用户访问私有密钥时,必须提供相应的口令短语,然后PGP根据口令短语获得散列编码,将其作为密钥,对加密的私有密钥解密。通过这种方式,就保证了系统的安全性依赖于口令的安全性。 下面介绍PGP的公开密钥管理。假设A想要获得B的公开密钥,可以采取几种方法,包括拷贝给A、通过电话验证公开密钥是否正确、从双方都信任的人C那里获得、从认证中心获得等。PGP并没有建立认证中心这样的概念,它采用信任机制
8、。公开密钥环上的每个实体都有一个密钥合法性字段,用来标识信任程度。信任级别包括完全信任、少量信任、不可信任和不认识的信任等。当新来一个公开密钥时,根据上面附加的签名来计算信任值的权重和,确定信任程度。双方使用一次性会话密钥对每次会话内容进行加解密。这个密钥本身是基于用户鼠标和键盘击键时间而产生的随机数。注意,每次会话
此文档下载收益归作者所有