浅析PGP软件及其应用

文书君 人气:3.09W
浅析PGP软件及其应用
[摘要]文章主要介绍了PGP软件,对其主要部分和原理进行了阐述,并给出了在电子邮件等方面的应用。

[关键词]PGP;加密;电子邮件

1引言

电子邮件在人们的工作中占据着重要作用。据统计,中国平均每用户每周收到4.4封邮件,发送3.6封邮件。但是电子邮件的主要协议如SMTP等是明文传送的。这些信息在经过不可信的因特网时,有可能会被第三方获得。在重视信息安全的现代社会,显然这并符合要求。如何能将这些信息保密,同时不篡改、不伪造等?本文所介绍的PGP(PrettyGoodPrivacy)就是一种这样的软件,它主要应用于电子邮件和文件的加密解密。

目前PGP获得了广泛的应用。但它本身并不是一种加密算法,相反只是将一些加密算法(如RSA、IDEA、AES等)综合在一起,实现了一个完整的安全软件包。

PGP主要是由ermann开发的,于1991年在Internet上免费发布。他主要做了如下工作:选择比较好的算法,例如RSA、IDEA等作为加密算法的基础构件;将这些算法集成在一个便于用户使用的应用程序中;制作了软件包及其文档,且源代码免费公开,以避隐藏后门之嫌;和公司合作,提供商业版本等。现在用户可以从下载PGP。目前最新版本是9.0。

2原理

PGP结合了一些大部分人认为很安全的算法,包括传统的对称密钥加密算法和公开密钥算法,充分利用这两类加密算法的特性,实现了以下几种服务:鉴别、加密、压缩等。

当发送者PGP加密一段明文时,PGP首先压缩明文,然后PGP建立一个一次性会话密钥,采用传统的对称加密算法(例如AES等)加密刚才压缩后的明文,产生密文。然后用接收者的`公开密钥加密刚才的一次性会话密钥,随同密文一同传输给接收方。接收方首先用私有密钥解密,获得一次性会话密钥,最后用这个密钥解密密文。

2.1数字签名

数字签名能够保证接收者接收的信息没有经过未授权的第三方篡改,并确信报文来自发信者。PGP使用如下步骤实现数字签名:

2.1.1发送者创建报文,然后使用SHA-2等散列算法生成散列代码,然后使用自己的私有密钥采用RSA对散列代码加密,并将结果串接在报文前面。

2.1.2接收者使用发送者的公开密钥,采用RSA解密得到散列代码,然后和根据接收到的报文重新计算的散列代码比较,如果匹配,则接受报文。

目前,PGP使用的散列函数包括:SHA-2(256bit)、SHA-2(384bit)、SHA-2(512bit)、SHA-1(160bit)、RIPEMD(128bit)、MD-5(128bit)等。

2.2压缩

压缩是为了减少网络传输时间和磁盘空间,提高安全性:压缩减少了明文中上下文相关信息。(当然如果文件太短或者压缩性能不好,则不压缩。)

PGP在签名之后加密之前对报文进行压缩。它使用了有Jean-lupGailly,MarkAdler,RichardWales等编写的ZIP压缩算法。
2.3加密

PGP对每次会话的报文进行加密后传输,它采用的加密算法包括:AES-256、AES-192、AES-128、CAST、3DES、IDEA、Twofish等。例如使用AES密钥最长可达256bit,这已经足够安全了。

这里需要指出,PGP结合了常规密钥加密和公开密钥加密算法,一是时间上的考虑,对称加密算法比公开密钥加密速度快大约10000倍;二是公开密钥解决了会话密钥分配问题,因为只有接收者才能用私有密钥解密一次性会话密钥。PGP巧妙的将常规密钥加密和公开密钥加密结合起来,从而使会话安全得到保证。

2.4密钥管理

在PGP里面,最有特色的或许就是它的密钥管理。PGP包含四种密钥:一次性会话密钥、公开密钥、私有密钥和基于口令短语的常规密钥。

用户使用PGP时,应该首先生成一个公开密钥/私有密钥对。其中公开密钥可以公开,而私有密钥绝对不能公开。PGP将公开密钥和私有密钥用两个文件存储,一个用来存储该用户的公开/私有密钥,称为私有密钥环;另一个用来存储其他用户的公开密钥,称为公开密钥环。
TAG标签:PGP 浅析 软件